From 93f397c19641e0c1da7ab41cbd91c57b0a750f9a Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Mon, 17 Nov 2014 00:04:58 +0100 Subject: code-style, ugly test-code (remove later) --- TODO | 9 +++++++++ xml.c | 30 +++++++++++++++++++++--------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/TODO b/TODO index 7c04881..8011deb 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,12 @@ +[ ] check read errors: + ferror, return code of fread, fwrite, fclose... + +[x] handle invalid value in strtoul. +[x] compile with -Wextra and use (void) to ignore unused parameters? +[x] use uint32_t for codepointtoutf8? + +[ ] separate codepointtoutf8 and entity handling from sfeed.c into xml.c? + [ ] test again on: - Linux (glibc+gcc, musl-gcc, clang, tcc). - OpenBSD diff --git a/xml.c b/xml.c index 70b1c5e..0e91cad 100644 --- a/xml.c +++ b/xml.c @@ -1,13 +1,20 @@ +#include #include -#include #include -#include +#include #include "xml.h" static __inline__ int /* like getc(), but do some smart buffering */ -xmlparser_getnext(XMLParser *x) { - return fgetc(x->fp); +xmlparser_getnext(XMLParser *x) +{ + int c; + if(ferror(x->fp)) + return EOF; + if(feof(x->fp)) + return EOF; + c = fgetc(x->fp); + return c; #if 0 if(x->readoffset >= x->readlastbytes) { x->readoffset = 0; @@ -19,7 +26,8 @@ xmlparser_getnext(XMLParser *x) { } static __inline__ void -xmlparser_parseattrs(XMLParser *x) { +xmlparser_parseattrs(XMLParser *x) +{ size_t namelen = 0, valuelen; int c, endsep, endname = 0; @@ -113,7 +121,8 @@ xmlparser_parseattrs(XMLParser *x) { } static __inline__ void -xmlparser_parsecomment(XMLParser *x) { +xmlparser_parsecomment(XMLParser *x) +{ size_t datalen = 0, i = 0; int c; @@ -158,7 +167,8 @@ xmlparser_parsecomment(XMLParser *x) { * */ static __inline__ void -xmlparser_parsecdata(XMLParser *x) { +xmlparser_parsecdata(XMLParser *x) +{ size_t datalen = 0, i = 0; int c; @@ -195,13 +205,15 @@ xmlparser_parsecdata(XMLParser *x) { } void -xmlparser_init(XMLParser *x, FILE *fp) { +xmlparser_init(XMLParser *x, FILE *fp) +{ memset(x, 0, sizeof(XMLParser)); x->fp = fp; } void -xmlparser_parse(XMLParser *x) { +xmlparser_parse(XMLParser *x) +{ int c, ispi; size_t datalen, tagdatalen, taglen; -- cgit v1.2.3