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

Diff for /src/usr.bin/tr/str.c between version 1.8 and 1.9

version 1.8, 2003/06/03 02:56:20 version 1.9, 2004/09/15 22:12:19
Line 124 
Line 124 
   
         switch (s->str[1]) {          switch (s->str[1]) {
         case ':':                               /* "[:class:]" */          case ':':                               /* "[:class:]" */
                 if ((p = strstr(s->str + 2, ":]")) == NULL)                  if ((p = strstr((char *)s->str + 2, ":]")) == NULL)
                         return (0);                          return (0);
                 *p = '\0';                  *p = '\0';
                 s->str += 2;                  s->str += 2;
                 genclass(s);                  genclass(s);
                 s->str = p + 2;                  s->str = (unsigned char *)p + 2;
                 return (1);                  return (1);
         case '=':                               /* "[=equiv=]" */          case '=':                               /* "[=equiv=]" */
                 if ((p = strstr(s->str + 2, "=]")) == NULL)                  if ((p = strstr((char *)s->str + 2, "=]")) == NULL)
                         return (0);                          return (0);
                 s->str += 2;                  s->str += 2;
                 genequiv(s);                  genequiv(s);
                 return (1);                  return (1);
         default:                                /* "[\###*n]" or "[#*n]" */          default:                                /* "[\###*n]" or "[#*n]" */
                 if ((p = strpbrk(s->str + 2, "*]")) == NULL)                  if ((p = strpbrk((char *)s->str + 2, "*]")) == NULL)
                         return (0);                          return (0);
                 if (p[0] != '*' || strchr(p, ']') == NULL)                  if (p[0] != '*' || strchr(p, ']') == NULL)
                         return (0);                          return (0);
Line 178 
Line 178 
         CLASS *cp, tmp;          CLASS *cp, tmp;
         int *p;          int *p;
   
         tmp.name = s->str;          tmp.name = (char *)s->str;
         if ((cp = (CLASS *)bsearch(&tmp, classes, sizeof(classes) /          if ((cp = (CLASS *)bsearch(&tmp, classes, sizeof(classes) /
             sizeof(CLASS), sizeof(CLASS), c_class)) == NULL)              sizeof(CLASS), sizeof(CLASS), c_class)) == NULL)
                 errx(1, "unknown class %s", s->str);                  errx(1, "unknown class %s", s->str);
Line 231 
Line 231 
         STR *s;          STR *s;
 {  {
         int stopval;          int stopval;
         char *savestart;          unsigned char *savestart;
   
         savestart = s->str;          savestart = s->str;
         stopval = *++s->str == '\\' ? backslash(s) : *s->str++;          stopval = *++s->str == '\\' ? backslash(s) : *s->str++;
Line 271 
Line 271 
                 break;                  break;
         default:          default:
                 if (isdigit(*s->str)) {                  if (isdigit(*s->str)) {
                         s->cnt = strtol(s->str, &ep, 0);                          s->cnt = strtol((char *)s->str, &ep, 0);
                         if (*ep == ']') {                          if (*ep == ']') {
                                 s->str = ep + 1;                                  s->str = (unsigned char *)ep + 1;
                                 break;                                  break;
                         }                          }
                 }                  }

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9