[BACK]Return to what.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / what

Diff for /src/usr.bin/what/what.c between version 1.2 and 1.3

version 1.2, 1996/06/26 05:42:52 version 1.3, 1996/06/26 06:40:11
Line 47 
Line 47 
 static char rcsid[] = "$OpenBSD$";  static char rcsid[] = "$OpenBSD$";
 #endif /* not lint */  #endif /* not lint */
   
   #include <sys/types.h>
   #include <sys/utsname.h>
 #include <stdio.h>  #include <stdio.h>
   #include <ctype.h>
   
 void search __P((void));  void search __P((char *));
   
 /*  /*
  * what   * what
Line 60 
Line 63 
         int argc;          int argc;
         char **argv;          char **argv;
 {  {
           struct utsname utsn;
           char match[256];
   
           if (uname(&utsn) == -1)
                   err(1, "uname");
           strncpy(match, utsn.sysname, sizeof match);
   
         if (!*++argv)          if (!*++argv)
                 search();                  search(match);
         else do {          else do {
                 if (!freopen(*argv, "r", stdin)) {                  if (!freopen(*argv, "r", stdin)) {
                         perror(*argv);                          perror(*argv);
                         exit(1);                          exit(1);
                 }                  }
                 printf("%s\n", *argv);                  printf("%s\n", *argv);
                 search();                  search(match);
         } while(*++argv);          } while(*++argv);
         exit(0);          exit(0);
 }  }
   
 void  void
 search()  search(match)
           char *match;
 {  {
         register int c;          register int c;
           int i;
   
         while ((c = getchar()) != EOF) {          while ((c = getchar()) != EOF) {
 loop:           if (c != '@')  loop:           if (c == '$') {
                           for (i = 0; match[i]; i++)
                                   if ((c = getchar()) != match[i])
                                           goto loop;
                           printf("$%s", match);
                           while (isprint(c = getchar()))
                                   putchar(c);
                           putchar('\n');
                           goto loop;
                   }
                   if (c != '@')
                         continue;                          continue;
                 if ((c = getchar()) != '(')                  if ((c = getchar()) != '(')
                         goto loop;                          goto loop;

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3