[BACK]Return to compile.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libterminfo

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/lib/libterminfo/compile.c between version 1.3 and 1.4

version 1.3, 2010/03/01 01:59:48 version 1.4, 2010/03/02 14:11:11
Line 413  encode_string(const char *term, const ch
Line 413  encode_string(const char *term, const ch
         return 0;          return 0;
 }  }
   
 static char *  char *
 get_token(char **cap)  _ti_get_token(char **cap, char sep)
 {  {
         char *token;          char esc, *token;
         int esc;  
   
         while (isspace((unsigned char)**cap))          while (isspace((unsigned char)**cap))
                 (*cap)++;                  (*cap)++;
Line 425  get_token(char **cap)
Line 424  get_token(char **cap)
                 return NULL;                  return NULL;
   
         /* We can't use stresep(3) as ^ we need two escape chars */          /* We can't use stresep(3) as ^ we need two escape chars */
         esc = 0;          esc = '\0';
         for (token = *cap;          for (token = *cap;
              **cap != '\0' && (esc == 1 || **cap != ',');               **cap != '\0' && (esc != '\0' || **cap != sep);
              (*cap)++)               (*cap)++)
         {          {
                 if (esc == 0) {                  if (esc == '\0') {
                         if (**cap == '\\' || **cap == '^')                          if (**cap == '\\' || **cap == '^')
                                 esc = 1;                                  esc = **cap;
                 } else                  } else {
                         esc = 0;                          /* termcap /E/ is valid */
                           if (sep == ':' && esc == '\\' && **cap == 'E')
                                   esc = 'x';
                           else
                                   esc = '\0';
                   }
         }          }
   
         if (**cap != '\0')          if (**cap != '\0')
Line 456  _ti_compile(char *cap, int flags)
Line 460  _ti_compile(char *cap, int flags)
   
         _DIAGASSERT(cap != NULL);          _DIAGASSERT(cap != NULL);
   
         name = get_token(&cap);          name = _ti_get_token(&cap, ',');
         if (name == NULL) {          if (name == NULL) {
                 dowarn(flags, "no seperator found: %s", cap);                  dowarn(flags, "no seperator found: %s", cap);
                 return NULL;                  return NULL;
Line 489  _ti_compile(char *cap, int flags)
Line 493  _ti_compile(char *cap, int flags)
                         goto error;                          goto error;
         }          }
   
         for (token = get_token(&cap);          for (token = _ti_get_token(&cap, ',');
              token != NULL && *token != '\0';               token != NULL && *token != '\0';
              token = get_token(&cap))               token = _ti_get_token(&cap, ','))
         {          {
                 /* Skip commented caps */                  /* Skip commented caps */
                 if (!(flags & TIC_COMMENT) && token[0] == '.')                  if (!(flags & TIC_COMMENT) && token[0] == '.')

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

CVSweb <webmaster@jp.NetBSD.org>