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

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

version 1.2, 1996/06/11 12:53:33 version 1.3, 1997/07/13 21:21:09
Line 1 
Line 1 
 /*      $OpenBSD$       */  /*      $OpenBSD$       */
 /*      $NetBSD: cmd2.c,v 1.5 1996/06/08 19:48:13 christos Exp $        */  /*      $NetBSD: cmd2.c,v 1.7 1997/05/17 19:55:10 pk Exp $      */
   
 /*  /*
  * Copyright (c) 1980, 1993   * Copyright (c) 1980, 1993
Line 70 
Line 70 
         if (*msgvec != NULL) {          if (*msgvec != NULL) {
   
                 /*                  /*
                  * If some messages were supplied, find the                   * If some messages were supplied, find the
                  * first applicable one following dot using                   * first applicable one following dot using
                  * wrap around.                   * wrap around.
                  */                   */
Line 99 
Line 99 
                         if (*ip2 == NULL)                          if (*ip2 == NULL)
                                 ip2 = msgvec;                                  ip2 = msgvec;
                 } while (ip2 != ip);                  } while (ip2 != ip);
                 printf("No messages applicable\n");                  puts("No messages applicable");
                 return(1);                  return(1);
         }          }
   
Line 120 
Line 120 
                 if ((mp->m_flag & (MDELETED|MSAVED)) == 0)                  if ((mp->m_flag & (MDELETED|MSAVED)) == 0)
                         break;                          break;
         if (mp >= &message[msgCount]) {          if (mp >= &message[msgCount]) {
                 printf("At EOF\n");                  puts("At EOF");
                 return(0);                  return(0);
         }          }
         dot = mp;          dot = mp;
Line 144 
Line 144 
 {  {
         char *str = v;          char *str = v;
   
         return save1(str, 1, "save", saveignore);          return(save1(str, 1, "save", saveignore));
 }  }
   
 /*  /*
Line 156 
Line 156 
 {  {
         char *str = v;          char *str = v;
   
         return save1(str, 0, "copy", saveignore);          return(save1(str, 0, "copy", saveignore));
 }  }
   
 /*  /*
Line 176 
Line 176 
         int f, *msgvec;          int f, *msgvec;
         FILE *obuf;          FILE *obuf;
   
         msgvec = (int *) salloc((msgCount + 2) * sizeof *msgvec);          msgvec = (int *) salloc((msgCount + 2) * sizeof(*msgvec));
         if ((file = snarf(str, &f)) == NOSTR)          if ((file = snarf(str, &f)) == NOSTR)
                 return(1);                  return(1);
         if (!f) {          if (!f) {
Line 198 
Line 198 
         else          else
                 disp = "[New file]";                  disp = "[New file]";
         if ((obuf = Fopen(file, "a")) == NULL) {          if ((obuf = Fopen(file, "a")) == NULL) {
                 perror(NOSTR);                  warn(NOSTR);
                 return(1);                  return(1);
         }          }
         for (ip = msgvec; *ip && ip-msgvec < msgCount; ip++) {          for (ip = msgvec; *ip && ip-msgvec < msgCount; ip++) {
Line 206 
Line 206 
                 touch(mp);                  touch(mp);
                 if (send(mp, obuf, ignore, NOSTR) < 0) {                  if (send(mp, obuf, ignore, NOSTR) < 0) {
                         perror(file);                          perror(file);
                         Fclose(obuf);                          (void)Fclose(obuf);
                         return(1);                          return(1);
                 }                  }
                 if (mark)                  if (mark)
Line 215 
Line 215 
         fflush(obuf);          fflush(obuf);
         if (ferror(obuf))          if (ferror(obuf))
                 perror(file);                  perror(file);
         Fclose(obuf);          (void)Fclose(obuf);
         printf("%s\n", disp);          printf("%s\n", disp);
         return(0);          return(0);
 }  }
Line 230 
Line 230 
 {  {
         char *str = v;          char *str = v;
   
         return save1(str, 1, "write", ignoreall);          return(save1(str, 1, "write", ignoreall));
 }  }
   
 /*  /*
Line 267 
Line 267 
         while (cp > linebuf && !isspace(*cp))          while (cp > linebuf && !isspace(*cp))
                 cp--;                  cp--;
         if (*cp == '\0') {          if (*cp == '\0') {
                 printf("No file specified.\n");                  puts("No file specified.");
                 return(NOSTR);                  return(NOSTR);
         }          }
         if (isspace(*cp))          if (isspace(*cp))
Line 286 
Line 286 
 {  {
         int *msgvec = v;          int *msgvec = v;
         delm(msgvec);          delm(msgvec);
         return 0;          return(0);
 }  }
   
 /*  /*
Line 308 
Line 308 
                         list[1] = NULL;                          list[1] = NULL;
                         return(type(list));                          return(type(list));
                 }                  }
                 printf("At EOF\n");                  puts("At EOF");
         } else          } else
                 printf("No more messages\n");                  puts("No more messages");
         return(0);          return(0);
 }  }
   
Line 372 
Line 372 
                 dot = mp;                  dot = mp;
                 mp->m_flag &= ~MDELETED;                  mp->m_flag &= ~MDELETED;
         }          }
         return 0;          return(0);
 }  }
   
 /*  /*
Line 393 
Line 393 
                 abort();                  abort();
                 _exit(1);                  _exit(1);
         }          }
         printf("Okie dokie");          fputs("Okie dokie", stdout);
         fflush(stdout);          fflush(stdout);
         wait_child(pid);          wait_child(pid);
         if (wait_status.w_coredump)          if (wait_status.w_coredump)
                 printf(" -- Core dumped.\n");                  puts(" -- Core dumped.");
         else          else
                 printf(" -- Can't dump core.\n");                  puts(" -- Can't dump core.");
         return 0;          return(0);
 }  }
   
 /*  /*
Line 418 
Line 418 
         else          else
                 times = (atoi(argv[0]) + 511) / 512;                  times = (atoi(argv[0]) + 511) / 512;
         clob1(times);          clob1(times);
         return 0;          return(0);
 }  }
   
 /*  /*
Line 448 
Line 448 
 {  {
         char **list = v;          char **list = v;
   
         return ignore1(list, ignore + 1, "retained");          return(ignore1(list, ignore + 1, "retained"));
 }  }
   
 /*  /*
Line 461 
Line 461 
 {  {
         char **list = v;          char **list = v;
   
         return ignore1(list, ignore, "ignored");          return(ignore1(list, ignore, "ignored"));
 }  }
   
 int  int
Line 470 
Line 470 
 {  {
         char **list = v;          char **list = v;
   
         return ignore1(list, saveignore + 1, "retained");          return(ignore1(list, saveignore + 1, "retained"));
 }  }
   
 int  int
Line 479 
Line 479 
 {  {
         char **list = v;          char **list = v;
   
         return ignore1(list, saveignore, "ignored");          return(ignore1(list, saveignore, "ignored"));
 }  }
   
 int  int
Line 488 
Line 488 
         struct ignoretab *tab;          struct ignoretab *tab;
         char *which;          char *which;
 {  {
         char field[BUFSIZ];          char field[LINESIZE];
         register int h;          register int h;
         register struct ignore *igp;          register struct ignore *igp;
         char **ap;          char **ap;
   
         if (*list == NOSTR)          if (*list == NOSTR)
                 return igshow(tab, which);                  return(igshow(tab, which));
         for (ap = list; *ap != 0; ap++) {          for (ap = list; *ap != 0; ap++) {
                 istrcpy(field, *ap);                  istrcpy(field, *ap);
                 if (member(field, tab))                  if (member(field, tab))
                         continue;                          continue;
                 h = hash(field);                  h = hash(field);
                 igp = (struct ignore *) calloc(1, sizeof (struct ignore));                  igp = (struct ignore *) calloc(1, sizeof(struct ignore));
                 igp->i_field = calloc((unsigned) strlen(field) + 1,                  igp->i_field = calloc((unsigned) strlen(field) + 1,
                         sizeof (char));                          sizeof(char));
                 strcpy(igp->i_field, field);                  strcpy(igp->i_field, field);
                 igp->i_link = tab->i_head[h];                  igp->i_link = tab->i_head[h];
                 tab->i_head[h] = igp;                  tab->i_head[h] = igp;
                 tab->i_count++;                  tab->i_count++;
         }          }
         return 0;          return(0);
 }  }
   
 /*  /*
Line 525 
Line 525 
   
         if (tab->i_count == 0) {          if (tab->i_count == 0) {
                 printf("No fields currently being %s.\n", which);                  printf("No fields currently being %s.\n", which);
                 return 0;                  return(0);
         }          }
         ring = (char **) salloc((tab->i_count + 1) * sizeof (char *));          ring = (char **) salloc((tab->i_count + 1) * sizeof(char *));
         ap = ring;          ap = ring;
         for (h = 0; h < HSHSIZE; h++)          for (h = 0; h < HSHSIZE; h++)
                 for (igp = tab->i_head[h]; igp != 0; igp = igp->i_link)                  for (igp = tab->i_head[h]; igp != 0; igp = igp->i_link)
                         *ap++ = igp->i_field;                          *ap++ = igp->i_field;
         *ap = 0;          *ap = 0;
         qsort(ring, tab->i_count, sizeof (char *), igcomp);          qsort(ring, tab->i_count, sizeof(char *), igcomp);
         for (ap = ring; *ap != 0; ap++)          for (ap = ring; *ap != 0; ap++)
                 printf("%s\n", *ap);                  puts(*ap);
         return 0;          return(0);
 }  }
   
 /*  /*
Line 546 
Line 546 
 igcomp(l, r)  igcomp(l, r)
         const void *l, *r;          const void *l, *r;
 {  {
         return (strcmp(*(char **)l, *(char **)r));          return(strcmp(*(char **)l, *(char **)r));
 }  }

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