* acct [ -w wtmp ] [ -d ] [ -p ] [ people ]
while (--argc
> 0 && **++argv
== '-')
if ((wf
= fopen(wtmp
, "r")) == NULL
) {
if (fread((char *)&ibuf
, sizeof(ibuf
), 1, wf
) != 1)
if(isdigit(c
) || isalpha(c
)) {
register struct tbuf
*tp
;
register struct ubuf
*up
;
if(ibuf
.ut_line
[0] == '|') {
if(ibuf
.ut_line
[0] == '}') {
for(tp
= tbuf
; tp
< &tbuf
[TSIZE
]; tp
++)
tp
->ttime
+= ibuf
.ut_time
-dtime
;
if (lastime
>ibuf
.ut_time
|| lastime
+(1.5*day
)<ibuf
.ut_time
)
if (byday
&& ibuf
.ut_time
> midnight
) {
for (up
=ubuf
; up
< &ubuf
[USIZE
]; up
++)
if (ibuf
.ut_line
[0] == '~') {
if (ibuf
.ut_line
[0]=='t')
i
= (ibuf
.ut_line
[3]-'0')*10 + (ibuf
.ut_line
[4]-'0');
for (i
=0; i
<USIZE
; i
++) {
if (pflag
&& ubuf
[i
].utime
> 0) {
printf("\t%-8.8s%6.2f\n",
ubuf
[i
].uname
, ubuf
[i
].utime
/3600.);
printf("\ttotal%9.2f\n", ttime
/3600.);
register struct tbuf
*tp
;
for (tp
=tbuf
; tp
< &tbuf
[TSIZE
]; tp
++)
if (t1
>0 && t1
< 1.5*day
)
if (ibuf
.ut_name
[0]=='\0') {
for (up
=ubuf
; up
< &ubuf
[USIZE
]; up
++) {
if (up
->uname
[0] == '\0')
for (j
=0; j
<8 && up
->uname
[j
]==ibuf
.ut_name
[j
]; j
++);
up
->uname
[j
] = ibuf
.ut_name
[j
];
for (j
=0; j
<pcount
; j
++) {
if (*p
== ubuf
[i
].uname
[k
]) {
midnight
= 60*(long)tb
.timezone
;
if (localtime(&ttime
)->tm_isdst
)
while (midnight
<= ibuf
.ut_time
)
printf("%.6s", ctime(&x
)+4);