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 3486 by tg, Thu Aug 9 16:52:10 2007 UTC revision 3487 by tg, Mon Aug 13 14:55:59 2007 UTC
# Line 269  nfo_parse(int fd, const struct parser_ke Line 269  nfo_parse(int fd, const struct parser_ke
269          }          }
270          if (kwp->kwprefix == NULL)          if (kwp->kwprefix == NULL)
271                  errx(1, "unknown keyword '%s'", cp);                  errx(1, "unknown keyword '%s'", cp);
272          entry = xmalloc(sizeof (struct parser_res));          if (entry_type == KWT_INVALID)
         bzero(entry, sizeof (struct parser_res));  
         entry->keyword = kwp->kwnum;  
         if ((entry->itype = entry_type) == KWT_INVALID)  
273                  syntaxerr("internal error: invalid entry type");                  syntaxerr("internal error: invalid entry type");
274          entry->kw_multi = entry_multi;          entry = parser_new(kwp->kwnum, entry_type, entry_multi, entry_iter,
275          entry->kw_iter = entry_iter;              str_save(tp));
         entry->value = str_save(tp);  
276          CIRCLEQ_INSERT_TAIL(res, entry, e);          CIRCLEQ_INSERT_TAIL(res, entry, e);
277          free(cp);          free(cp);
278          ++lineno;          ++lineno;
# Line 385  syntaxerr_(size_t lno, const char *fmt, Line 381  syntaxerr_(size_t lno, const char *fmt,
381          verrx(1, fmt, args);          verrx(1, fmt, args);
382          va_end(args);          va_end(args);
383  }  }
384    
385    struct parser_res *
386    parser_new(parser_kwords entry_kw, enum parser_kwtype entry_type,
387        char *entry_multi, unsigned entry_iter, char *value)
388    {
389            struct parser_res *entry;
390    
391            entry = xmalloc(sizeof (struct parser_res));
392            bzero(entry, sizeof (struct parser_res));
393            entry->keyword = entry_kw;
394            entry->itype = entry_type;
395            entry->kw_multi = entry_multi;
396            entry->kw_iter = entry_iter;
397            entry->value = value;
398            return (entry);
399    }

Legend:
Removed from v.3486  
changed lines
  Added in v.3487

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