From 139db33f2237425871b8fb211859f6f58a771aac Mon Sep 17 00:00:00 2001 From: Ian Dowse Date: Fri, 1 Mar 2002 21:12:19 +0000 Subject: [PATCH] Add a new "-y" flag which causes the year to be included in the session start time. This is useful when looking at old or long-running wtmp files. PR: bin/12982 Obtained from: KOJIMA Hajime , keramida Reviewed by: keramida MFC after: 1 week --- usr.bin/last/last.1 | 5 ++++- usr.bin/last/last.c | 13 +++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/usr.bin/last/last.1 b/usr.bin/last/last.1 index fcdb1414409b..c1f68dc99062 100644 --- a/usr.bin/last/last.1 +++ b/usr.bin/last/last.1 @@ -32,7 +32,7 @@ .\" @(#)last.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd May 2, 2001 +.Dd March 1, 2002 .Dt LAST 1 .Os .Sh NAME @@ -41,6 +41,7 @@ .Sh SYNOPSIS .Nm .Op Fl Ns Ar n +.Op Fl y .Oo .Fl d .Sm off @@ -161,6 +162,8 @@ equivalent to .It Fl w Widen the duration field to show seconds, as well as the default days, hours and minutes. +.It Fl y +Report the year in the session start time. .El .Pp If multiple arguments are given, diff --git a/usr.bin/last/last.c b/usr.bin/last/last.c index f54865149982..eed36f542993 100644 --- a/usr.bin/last/last.c +++ b/usr.bin/last/last.c @@ -90,6 +90,7 @@ static long currentout, /* current logout value */ static const char *file = _PATH_WTMP; /* wtmp file */ static int sflag = 0; /* show delta in seconds */ static int width = 5; /* show seconds in delta */ +static int yflag; /* show year */ static int d_first; static int snapfound = 0; /* found snapshot entry? */ static time_t snaptime; /* if != 0, we will only @@ -112,7 +113,7 @@ void usage(void) { (void)fprintf(stderr, -"usage: last [-#] [-d [[CC]YY][MMDD]hhmm[.SS]] [-f file] [-h hostname]\n" +"usage: last [-#] [-y] [-d [[CC]YY][MMDD]hhmm[.SS]] [-f file] [-h host]\n" "\t[-t tty] [-s|w] [user ...]\n"); exit(1); } @@ -130,7 +131,7 @@ main(argc, argv) maxrec = -1; snaptime = 0; - while ((ch = getopt(argc, argv, "0123456789d:f:h:st:w")) != -1) + while ((ch = getopt(argc, argv, "0123456789d:f:h:st:wy")) != -1) switch (ch) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': @@ -167,6 +168,9 @@ main(argc, argv) case 'w': width = 8; break; + case 'y': + yflag++; + break; case '?': default: usage(); @@ -334,8 +338,9 @@ printentry(bp, tt) exit(0); t = _int_to_time(bp->ut_time); tm = localtime(&t); - (void) strftime(ct, sizeof(ct), d_first ? "%a %e %b %R" : - "%a %b %e %R", tm); + (void) strftime(ct, sizeof(ct), d_first ? + (yflag ? "%a %e %b %Y %R" : "%a %e %b %R") : + (yflag ? "%a %b %e %Y %R" : "%a %b %e %R"), tm); printf("%-*.*s %-*.*s %-*.*s %s%c", UT_NAMESIZE, UT_NAMESIZE, bp->ut_name, UT_LINESIZE, UT_LINESIZE, bp->ut_line,