- register int i, k;
- int bl, wtmp;
- char *ct;
- register struct utmp *bp;
- long otime;
- struct stat stb;
- int print;
- char * crmsg = (char *)0;
- long crtime;
- long outrec = 0;
- long maxrec = 0x7fffffffL;
-
- time(&buf[0].ut_time);
- ac--, av++;
- nameargs = argc = ac;
- argv = av;
- for (i = 0; i < argc; i++) {
- if (argv[i][0] == '-' &&
- argv[i][1] >= '0' && argv[i][1] <= '9') {
- maxrec = atoi(argv[i]+1);
- nameargs--;
+ register struct utmp *bp; /* current structure */
+ register TTYS *T; /* table entry */
+ register long maxrec = -1; /* records to display */
+ register int indx; /* array offsets */
+ struct stat stb; /* stat of file for size */
+ long delta, /* time difference */
+ atol(), lseek(), time();
+ int bl, /* reads to do */
+ bytes, /* bytes read */
+ wtmp, /* wtmp file descriptor */
+ onintr();
+ char *ct, /* ctime return */
+ *crmsg, /* crash message */
+ *file, /* user specified file */
+ *asctime(), *ctime(), *strspl();
+
+ file = "/usr/adm/wtmp";
+ for (--argc,sargs = argv = ++argv,indx = 0;indx < argc;++indx) {
+ if (argv[indx][0] == '-' && isdigit(argv[indx][1])) {
+ if ((maxrec = atol(argv[indx] + 1)) <= 0) {
+ fputs("last: bad line count value.\n",stderr);
+ exit(1);
+ }
+ ++sargs;
+ continue;
+ }
+ if (!strncmp(argv[indx],"-f",2)) {
+ if (argv[indx][2]) {
+ file = argv[indx] + 2;
+ ++sargs;
+ }
+ else if (++indx == argc) {
+ fputs("last: option requires an argument -- f\n",stderr);
+ exit(1);
+ }
+ else {
+ file = argv[indx];
+ sargs += 2;
+ }