Bell 32V development
[unix-history] / usr / src / cmd / wall.c
index 003ff7c..e174cc9 100644 (file)
@@ -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\aBroadcast Message ...\n\n");
+       fprintf(f, "\a\a\aBroadcast 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);
 }