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

Diff for /src/usr.bin/tr/tr.c between version 1.19 and 1.20

version 1.19, 2015/10/09 01:37:09 version 1.20, 2021/11/02 15:45:52
Line 85 
Line 85 
 main(int argc, char *argv[])  main(int argc, char *argv[])
 {  {
         int ch, cnt, lastch, *p;          int ch, cnt, lastch, *p;
         int cflag, dflag, sflag, isstring2;          int cflag, dflag, sflag;
   
         if (pledge("stdio", NULL) == -1)          if (pledge("stdio", NULL) == -1)
                 err(1, "pledge");                  err(1, "pledge");
Line 110 
Line 110 
         argc -= optind;          argc -= optind;
         argv += optind;          argv += optind;
   
         switch(argc) {          if (argc < 1 || argc > 2)
         case 0:  
         default:  
                 usage();                  usage();
                 /* NOTREACHED */  
         case 1:  
                 isstring2 = 0;  
                 break;  
         case 2:  
                 isstring2 = 1;  
                 break;  
         }  
   
         /*          /*
          * tr -ds [-Cc] string1 string2           * tr -ds [-Cc] string1 string2
Line 129 
Line 119 
          * Squeeze all characters in string2.           * Squeeze all characters in string2.
          */           */
         if (dflag && sflag) {          if (dflag && sflag) {
                 if (!isstring2)                  if (argc != 2)
                         usage();                          usage();
   
                 setup(string1, argv[0], &s1, cflag);                  setup(string1, argv[0], &s1, cflag);
Line 148 
Line 138 
          * Delete all characters (or complemented characters) in string1.           * Delete all characters (or complemented characters) in string1.
          */           */
         if (dflag) {          if (dflag) {
                 if (isstring2)                  if (argc != 1)
                         usage();                          usage();
   
                 setup(string1, argv[0], &s1, cflag);                  setup(string1, argv[0], &s1, cflag);
Line 163 
Line 153 
          * tr -s [-Cc] string1           * tr -s [-Cc] string1
          * Squeeze all characters (or complemented characters) in string1.           * Squeeze all characters (or complemented characters) in string1.
          */           */
         if (sflag && !isstring2) {          if (sflag && argc == 1) {
                 setup(string1, argv[0], &s1, cflag);                  setup(string1, argv[0], &s1, cflag);
   
                 for (lastch = OOBCH; (ch = getchar()) != EOF;)                  for (lastch = OOBCH; (ch = getchar()) != EOF;)
Line 180 
Line 170 
          * the character in the same position in string2.  If the -s option is           * the character in the same position in string2.  If the -s option is
          * specified, squeeze all the characters in string2.           * specified, squeeze all the characters in string2.
          */           */
         if (!isstring2)          if (argc != 2)
                 usage();                  usage();
   
         s1.str = (unsigned char *)argv[0];          s1.str = (unsigned char *)argv[0];

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20