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
Bell 32V development
[unix-history]
/
usr
/
src
/
cmd
/
wall.c
diff --git
a/usr/src/cmd/wall.c
b/usr/src/cmd/wall.c
index
003ff7c
..
e174cc9
100644
(file)
--- a/
usr/src/cmd/wall.c
+++ b/
usr/src/cmd/wall.c
@@
-3,15
+3,17
@@
#define USERS 50
char mesg[3000];
#define USERS 50
char mesg[3000];
-int msize;
+int msize
,sline
;
struct utmp utmp[USERS];
char *strcpy();
char *strcat();
struct utmp utmp[USERS];
char *strcpy();
char *strcat();
+char who[9] = "???";
main(argc, argv)
char *argv[];
{
register i;
main(argc, argv)
char *argv[];
{
register i;
+ register char c;
register struct utmp *p;
FILE *f;
register struct utmp *p;
FILE *f;
@@
-23,6
+25,7
@@
char *argv[];
fclose(f);
f = stdin;
if(argc >= 2) {
fclose(f);
f = stdin;
if(argc >= 2) {
+ /* take message from unix file instead of standard input */
if((f = fopen(argv[1], "r")) == NULL) {
fprintf(stderr,"Cannot open %s\n", argv[1]);
exit(1);
if((f = fopen(argv[1], "r")) == NULL) {
fprintf(stderr,"Cannot open %s\n", argv[1]);
exit(1);
@@
-30,6
+33,12
@@
char *argv[];
}
while((i = getc(f)) != EOF) mesg[msize++] = i;
fclose(f);
}
while((i = getc(f)) != EOF) mesg[msize++] = i;
fclose(f);
+ sline = ttyslot(2); /* 'utmp' slot no. of sender */
+ if (sline) {
+ for (i=0;c=utmp[sline].ut_name[i];i++)
+ who[i]=c;
+ who[i] = '\0'; /* sender initials */
+ }
for(i=0; i<USERS; i++) {
p = &utmp[i];
if(p->ut_name[0] == 0)
for(i=0; i<USERS; i++) {
p = &utmp[i];
if(p->ut_name[0] == 0)
@@
-62,7
+71,8
@@
char *tty;
exit(1);
}
setbuf(f, buf);
exit(1);
}
setbuf(f, buf);
- fprintf(f, "
\a
\a
\a
Broadcast Message ...\n\n");
+ fprintf(f, "
\a
\a
\a
Broadcast Message from %s (%s) ...\n\n",who,
+ utmp[sline].ut_line);
fwrite(mesg, msize, 1, f);
exit(0);
}
fwrite(mesg, msize, 1, f);
exit(0);
}