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

Diff for /src/usr.bin/vacation/vacation.c between version 1.11 and 1.12

version 1.11, 1999/02/12 01:21:07 version 1.12, 1999/06/03 20:20:26
Line 90 
Line 90 
   
 DB *db;  DB *db;
 char from[MAXLINE];  char from[MAXLINE];
   char subj[MAXLINE];
   
 int junkmail __P((void));  int junkmail __P((void));
 int nsearch __P((char *, char *));  int nsearch __P((char *, char *));
Line 219 
Line 220 
                 case 'F':               /* "From " */                  case 'F':               /* "From " */
                         cont = 0;                          cont = 0;
                         if (!strncmp(buf, "From ", 5)) {                          if (!strncmp(buf, "From ", 5)) {
                                 for (p = buf + 5; *p && *p != ' '; ++p);                                  for (p = buf + 5; *p && *p != ' '; ++p)
                                           ;
                                 *p = '\0';                                  *p = '\0';
                                 (void)strcpy(from, buf + 5);                                  (void)strcpy(from, buf + 5);
                                 if (p = strchr(from, '\n'))                                  if (p = strchr(from, '\n'))
Line 234 
Line 236 
                                         sizeof("Return-Path:")-1) ||                                          sizeof("Return-Path:")-1) ||
                             buf[12] != ' ' && buf[12] != '\t')                              buf[12] != ' ' && buf[12] != '\t')
                                 break;                                  break;
                         for (p = buf + 12; *p && isspace(*p); ++p);                          for (p = buf + 12; *p && isspace(*p); ++p)
                                   ;
                         if (strlcpy(from, p, sizeof from ) > sizeof from) {                          if (strlcpy(from, p, sizeof from ) > sizeof from) {
                                 syslog(LOG_NOTICE,                                  syslog(LOG_NOTICE,
                                        "Return-Path %s exceeds limits", p);                                         "Return-Path %s exceeds limits", p);
Line 260 
Line 263 
                             !strncasecmp(p, "list", 4))                              !strncasecmp(p, "list", 4))
                                 exit(0);                                  exit(0);
                         break;                          break;
                   case 'S':               /* Subject: */
                           cont = 0;
                           if (strncasecmp(buf, "Subject:",
                                           sizeof("Subject:")-1) ||
                               buf[8] != ' ' && buf[8] != '\t')
                                   break;
                           for (p = buf + 8; *p && isspace(*p); ++p)
                                   ;
                           if (strlcpy(subj, p, sizeof subj ) > sizeof subj) {
                                   syslog(LOG_NOTICE,
                                          "Subject %s exceeds limits", p);
                                   exit(1);
                           }
                           if (p = strchr(subj, '\n'))
                                   *p = '\0';
                           break;
                 case 'C':               /* "Cc:" */                  case 'C':               /* "Cc:" */
                         if (strncmp(buf, "Cc:", 3))                          if (strncmp(buf, "Cc:", 3))
                                 break;                                  break;
Line 334 
Line 353 
                                 ++p;                                  ++p;
                         else                          else
                                 p = from;                                  p = from;
                         for (; *p; ++p);                          for (; *p; ++p)
                                   ;
                 }                  }
         len = p - from;          len = p - from;
         for (cur = ignore; cur->name; ++cur)          for (cur = ignore; cur->name; ++cur)
Line 452 
Line 472 
         close(pvect[0]);          close(pvect[0]);
         sfp = fdopen(pvect[1], "w");          sfp = fdopen(pvect[1], "w");
         fprintf(sfp, "To: %s\n", from);          fprintf(sfp, "To: %s\n", from);
         while (fgets(buf, sizeof buf, mfp))          while (fgets(buf, sizeof buf, mfp)) {
                 fputs(buf, sfp);                  char *s = strstr(buf, "$SUBJECT");
                   if ( s ) {
                           *s = 0;
                           fputs(buf, sfp);
                           fputs(subj, sfp);
                           fputs(s+8, sfp);
                   } else {
                           fputs(buf, sfp);
                   }
           }
         fclose(mfp);          fclose(mfp);
         fclose(sfp);          fclose(sfp);
 }  }

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12