* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley Software License Agreement
* specifies the terms and conditions for redistribution.
static char *sccsid
= "@(#)hist.c 5.2 (Berkeley) %G%";
register struct Hist
*hp
, *np
;
register int histlen
= 0;
/* throw away null lines */
if (sp
->next
->word
[0] == '\n')
histlen
= histlen
* 10 + *p
++ - '0';
for (hp
= &Histlist
; np
= hp
->Hnext
;)
if (eventno
- np
->Href
>= histlen
|| histlen
== 0)
hp
->Hnext
= np
->Hnext
, hfree(np
);
(void) enthist(++eventno
, sp
, 1);
enthist(event
, lp
, docopy
)
register struct wordent
*lp
;
register struct Hist
*np
;
np
= (struct Hist
*) xalloc(sizeof *np
);
np
->Hnum
= np
->Href
= event
;
np
->Hlex
.next
= lp
->next
;
lp
->next
->prev
= &np
->Hlex
;
np
->Hlex
.prev
= lp
->prev
;
lp
->prev
->next
= &np
->Hlex
;
np
->Hnext
= Histlist
.Hnext
;
register struct Hist
*hp
;
int n
, rflg
= 0, hflg
= 0;
if (getn(value("history")) == 0)
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT
));
while (*++vp
&& **vp
== '-') {
case '-': /* ignore multiple '-'s */
printf("Unknown flag: -%c\n", *vp2
);
error("Usage: history [-rh] [# number of events]");
n
= getn(value("history"));
dohist1(Histlist
.Hnext
, &n
, rflg
, hflg
);
dohist1(hp
, np
, rflg
, hflg
)
dohist1(hp
->Hnext
, np
, rflg
, hflg
);
register struct Hist
*hp
;
printf("%6d\t", hp
->Hnum
);