diff options
author | Hiltjo Posthuma <hiltjo@codemadness.org> | 2015-01-05 19:56:12 +0100 |
---|---|---|
committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2015-01-05 19:56:12 +0100 |
commit | 1c689217b143d16a824e818b2cfe942a934b30c2 (patch) | |
tree | 39e6568c6e86704502e3dcef3c88d80ab044bbdd | |
parent | 1f75e9bc3f49ada6ebdbe9812a8dc92cb75b8afa (diff) |
remove some TODOs, style
-rw-r--r-- | TODO | 7 | ||||
-rw-r--r-- | sfeed.c | 17 | ||||
-rw-r--r-- | sfeed_frames.c | 2 |
3 files changed, 12 insertions, 14 deletions
@@ -1,10 +1,9 @@ +[ ] grep -H -n *.c 'TODO:' +[ ] rewrite xml.{c,h} [ ] check truncation (strlcpy, snprintf etc), especially for paths. [x] fix timezone in slashdot.xml [x] string_append: make sure some fields can only be set once (first field counts?). [ ] test new parsetime and gettimetz code. -[ ] grep -H -n *.c 'TODO:' -[ ] sfeed.c: document ctx.iscontent and ctx.iscontenttag. -[ ] rewrite xml.{c,h} [ ] xml: check read errors: ferror, return code of fread, fwrite, fclose... [ ] separate codepointtoutf8 and entity handling from sfeed.c into xml.c? @@ -17,8 +16,8 @@ [ ] sfeed_opml_export [ ] feeds file: empty tab (encoding can't be detected?) [ ] optimize + [ ] benchmark / profile callstack. [ ] gettag() lookup. [ ] namedentitytostr lookup. [ ] xml parser, etc. [?] add sfeed_atom ? to aggregate feeds? - @@ -674,7 +674,8 @@ xml_handler_data_entity(XMLParser *p, const char *data, size_t datalen) char buffer[16]; size_t len; - /* try to translate entity, else just pass as data */ + /* try to translate entity, else just pass as data to + * xml_data_handler */ if((len = entitytostr(data, buffer, sizeof(buffer))) > 0) xml_handler_data(p, buffer, len); else @@ -688,22 +689,21 @@ xml_handler_end_element(XMLParser *p, const char *name, size_t namelen, int issh if(ctx.iscontent) { ctx.attrcount = 0; - /* TODO: optimize */ tagid = gettag(ctx.item.feedtype, name, namelen); - if(ctx.tagid == tagid) { /* close content */ + /* close content */ + if(ctx.tagid == tagid) { ctx.iscontent = 0; ctx.iscontenttag = 0; + ctx.tag[0] = '\0'; + ctx.taglen = 0; + ctx.tagid = TagUnknown; p->xmldataentity = xml_handler_data_entity; p->xmlattrstart = NULL; p->xmlattrend = NULL; p->xmltagstartparsed = NULL; - ctx.tag[0] = '\0'; /* unset tag */ - ctx.taglen = 0; - ctx.tagid = TagUnknown; - - return; /* TODO: not sure if !isshort check below should be skipped */ + return; } if(!isshort) { xml_handler_data(p, "</", 2); @@ -715,7 +715,6 @@ xml_handler_end_element(XMLParser *p, const char *name, size_t namelen, int issh if(ctx.item.feedtype == FeedTypeNone) return; /* end of RSS or Atom entry / item */ - /* TODO: optimize, use gettag() ? to tagid? */ if((ctx.item.feedtype == FeedTypeAtom && istag(name, namelen, STRP("entry"))) || /* Atom */ (ctx.item.feedtype == FeedTypeRSS && diff --git a/sfeed_frames.c b/sfeed_frames.c index 97ada7d..0af29e0 100644 --- a/sfeed_frames.c +++ b/sfeed_frames.c @@ -140,7 +140,7 @@ main(int argc, char *argv[]) { struct feed *f, *fcur = NULL; char *fields[FieldLast]; - char name[64]; /* TODO: bigger size? */ + char name[256]; /* buffer for feedname */ char dirpath[PATH_MAX], filepath[PATH_MAX]; char reldirpath[PATH_MAX], relfilepath[PATH_MAX]; char *feedname = "", *basepath = "."; |