X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/a68924a6e07d69bc4b8d6106b3af0ac5a7490905..31cef89cb428866f787983e68246030321893df4:/usr/src/cmd/who.c diff --git a/usr/src/cmd/who.c b/usr/src/cmd/who.c index 194fe965bb..41a0fd3e7e 100644 --- a/usr/src/cmd/who.c +++ b/usr/src/cmd/who.c @@ -1,3 +1,4 @@ +static char *sccsid = "@(#)who.c 4.2 (Berkeley) 11/1/80"; /* * who */ @@ -5,24 +6,32 @@ #include #include #include +#include +#include + +#define NMAX sizeof(utmp.ut_name) +#define LMAX sizeof(utmp.ut_line) + struct utmp utmp; struct passwd *pw; struct passwd *getpwuid(); -char *ttyname(), *rindex(), *ctime(), *strcpy(), *index(); +char *ttyname(), *rindex(), *ctime(), *strcpy(); main(argc, argv) char **argv; { register char *tp, *s; register FILE *fi; + extern char _sobuf[]; + setbuf(stdout, _sobuf); s = "/etc/utmp"; if(argc == 2) s = argv[1]; if (argc==3) { tp = ttyname(0); if (tp) - tp = index(tp+1, '/') + 1; + tp = rindex(tp, '/') + 1; else { /* no tty - use best guess from passwd file */ pw = getpwuid(getuid()); strcpy(utmp.ut_name, pw?pw->pw_name: "?"); @@ -38,11 +47,12 @@ char **argv; } while (fread((char *)&utmp, sizeof(utmp), 1, fi) == 1) { if(argc==3) { + static char myname[]=sysname; if (strcmp(utmp.ut_line, tp)) continue; -#ifdef interdata - printf("(Interdata) "); -#endif + if (islower(*myname)) + *myname = toupper(*myname); + printf("(%s) ",myname); putline(); exit(0); } @@ -56,7 +66,7 @@ putline() { register char *cbuf; - printf("%-8.8s %-8.8s", utmp.ut_name, utmp.ut_line); + printf("%-*.*s %-*.*s", NMAX, NMAX, utmp.ut_name, LMAX, LMAX, utmp.ut_line); cbuf = ctime(&utmp.ut_time); printf("%.12s\n", cbuf+4); }