English Language flag
// Log In
// CVSweb
Project: FreeWRT
// Summary // Activity // Search // Tracker // Lists // News // SCM // Wiki

SCM Repository

ViewVC logotype

Diff of /branches/common-nfo/tools/nfotiser/parser.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3455 by tg, Thu Aug 9 13:10:50 2007 UTC revision 3456 by tg, Thu Aug 9 13:18:23 2007 UTC
# Line 88  nfo_parse(int fd, const struct parser_ke Line 88  nfo_parse(int fd, const struct parser_ke
88          struct parser_result *res;          struct parser_result *res;
89          struct parser_res *entry;          struct parser_res *entry;
90          const struct parser_keywords *kwp;          const struct parser_keywords *kwp;
91          char ch, *cp, *t, *tp, *buf, *buf_base;          char *cp, *t, *tp, *buf, *buf_base;
92          size_t len, n;          size_t len, n;
93          struct stat sb;          struct stat sb;
94          char *entry_multi;          char *entry_multi;
# Line 151  nfo_parse(int fd, const struct parser_ke Line 151  nfo_parse(int fd, const struct parser_ke
151          while (*t != '\n')          while (*t != '\n')
152                  ++t;                  ++t;
153          t = str_nsave(buf, t - buf + /* NL */ 1);          t = str_nsave(buf, t - buf + /* NL */ 1);
  loop_addline:  
154          if (cp != NULL) {          if (cp != NULL) {
155                  if (*(tp = cp + strlen(cp) - 2) == '\\')                  if (*(tp = cp + strlen(cp) - 2) == '\\')
156                          *tp = '\0';                          *tp = '\0';
# Line 206  nfo_parse(int fd, const struct parser_ke Line 205  nfo_parse(int fd, const struct parser_ke
205                                  ++zp;                                  ++zp;
206                          if (zp == np)                          if (zp == np)
207                                  errx(1, "syntax error: iterator expected");                                  errx(1, "syntax error: iterator expected");
208                          if (*zp != kwp->kwtype == KWT_ITERATED ? '\0' : '_')                          if (*zp != (char)(kwp->kwtype == KWT_ITERATED ?
209                                '\0' : '_'))
210                                  errx(1, "syntax error: %s expected,"                                  errx(1, "syntax error: %s expected,"
211                                      " got 0x%02X", kwp->kwtype == KWT_ITERATED ?                                      " got 0x%02X", kwp->kwtype == KWT_ITERATED ?
212                                      "tab" : "underscore", *zp);                                      "tab" : "underscore", *zp);
# Line 255  parser_getkwbynum(parser_kwords num, con Line 255  parser_getkwbynum(parser_kwords num, con
255  }  }
256    
257  void  void
258  nfo_parser_dump(struct parser_res *entry, const struct parser_keywords *kws)  parser_dump(struct parser_res *entry, const struct parser_keywords *kws)
259  {  {
260          const struct parser_keywords *kwp;          const struct parser_keywords *kwp;
261    
262            kwp = parser_getkwbynum(entry->keyword, kws);
263          printf("keyword %s (type %s)",          printf("keyword %s (type %s)",
264              (kwp = parser_getkwbynum(entry->keyword, kws)) == NULL ?              kwp == NULL ? "<unknown>" : kwp->kwprefix,
             "<unknown>" : kwp->kwprefix,  
265              kwp == NULL ? "invalid" :              kwp == NULL ? "invalid" :
266              kwp->kwtype == KWT_NORMAL ? "normal" :              kwp->kwtype == KWT_NORMAL ? "normal" :
267              kwp->kwtype == KWT_MULTI ? "multi" :              kwp->kwtype == KWT_MULTI ? "multi" :

Legend:
Removed from v.3455  
changed lines
  Added in v.3456

root@freewrt.org:443
ViewVC Help
Powered by ViewVC 1.1.20