projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BSD 4 release
[unix-history]
/
usr
/
src
/
cmd
/
who.c
diff --git
a/usr/src/cmd/who.c
b/usr/src/cmd/who.c
index
194fe96
..
41a0fd3
100644
(file)
--- 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
*/
/*
* who
*/
@@
-5,24
+6,32
@@
#include <stdio.h>
#include <utmp.h>
#include <pwd.h>
#include <stdio.h>
#include <utmp.h>
#include <pwd.h>
+#include <whoami.h>
+#include <ctype.h>
+
+#define NMAX sizeof(utmp.ut_name)
+#define LMAX sizeof(utmp.ut_line)
+
struct utmp utmp;
struct passwd *pw;
struct passwd *getpwuid();
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;
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)
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: "?");
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) {
}
while (fread((char *)&utmp, sizeof(utmp), 1, fi) == 1) {
if(argc==3) {
+ static char myname[]=sysname;
if (strcmp(utmp.ut_line, tp))
continue;
if (strcmp(utmp.ut_line, tp))
continue;
-#ifdef interdata
-
printf("(Interdata) "
);
-#endif
+ if (islower(*myname))
+
*myname = toupper(*myname
);
+ printf("(%s) ",myname);
putline();
exit(0);
}
putline();
exit(0);
}
@@
-56,7
+66,7
@@
putline()
{
register char *cbuf;
{
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);
}
cbuf = ctime(&utmp.ut_time);
printf("%.12s\n", cbuf+4);
}