version 1.62, 2019/03/22 17:42:53 |
version 1.63, 2019/03/22 18:02:07 |
Line 268 xml_char(void *arg, const XML_Char *p, int sz) |
|
Line 268 xml_char(void *arg, const XML_Char *p, int sz) |
|
dat = calloc(1, sizeof(struct pnode)); |
dat = calloc(1, sizeof(struct pnode)); |
if (NULL == dat) { |
if (NULL == dat) { |
perror(NULL); |
perror(NULL); |
exit(EXIT_FAILURE); |
exit(1); |
} |
} |
|
|
dat->node = ps->node = NODE_TEXT; |
dat->node = ps->node = NODE_TEXT; |
Line 286 xml_char(void *arg, const XML_Char *p, int sz) |
|
Line 286 xml_char(void *arg, const XML_Char *p, int sz) |
|
ps->cur->bsz + (size_t)sz); |
ps->cur->bsz + (size_t)sz); |
if (NULL == ps->cur->b) { |
if (NULL == ps->cur->b) { |
perror(NULL); |
perror(NULL); |
exit(EXIT_FAILURE); |
exit(1); |
} |
} |
memcpy(ps->cur->b + ps->cur->bsz, p, sz); |
memcpy(ps->cur->b + ps->cur->bsz, p, sz); |
ps->cur->bsz += (size_t)sz; |
ps->cur->bsz += (size_t)sz; |
Line 366 xml_elem_start(void *arg, const XML_Char *name, const |
|
Line 366 xml_elem_start(void *arg, const XML_Char *name, const |
|
|
|
if (NULL == (dat = calloc(1, sizeof(struct pnode)))) { |
if (NULL == (dat = calloc(1, sizeof(struct pnode)))) { |
perror(NULL); |
perror(NULL); |
exit(EXIT_FAILURE); |
exit(1); |
} |
} |
|
|
dat->node = ps->node = node->node; |
dat->node = ps->node = node->node; |
Line 504 pnode_getattr(struct pnode *pn, enum attrkey key) |
|
Line 504 pnode_getattr(struct pnode *pn, enum attrkey key) |
|
TAILQ_FOREACH(ap, &pn->attrq, child) |
TAILQ_FOREACH(ap, &pn->attrq, child) |
if (ap->key == key) |
if (ap->key == key) |
return ap->val; |
return ap->val; |
return(ATTRVAL__MAX); |
return ATTRVAL__MAX; |
} |
} |
|
|
/* |
/* |
Line 520 pnode_getattr_raw(struct pnode *pn, enum attrkey key, |
|
Line 520 pnode_getattr_raw(struct pnode *pn, enum attrkey key, |
|
if (ap->key == key) |
if (ap->key == key) |
return ATTRVAL__MAX == ap->val ? ap->rawval : |
return ATTRVAL__MAX == ap->val ? ap->rawval : |
attrvals[ap->val]; |
attrvals[ap->val]; |
return(defval); |
return defval; |
} |
} |
|
|
/* |
/* |
Line 547 bufappend(struct parse *p, struct pnode *pn) |
|
Line 547 bufappend(struct parse *p, struct pnode *pn) |
|
p->mbsz = p->bsz + pn->bsz + 1; |
p->mbsz = p->bsz + pn->bsz + 1; |
if (NULL == (p->b = realloc(p->b, p->mbsz))) { |
if (NULL == (p->b = realloc(p->b, p->mbsz))) { |
perror(NULL); |
perror(NULL); |
exit(EXIT_FAILURE); |
exit(1); |
} |
} |
} |
} |
memcpy(p->b + p->bsz, pn->b, pn->bsz); |
memcpy(p->b + p->bsz, pn->b, pn->bsz); |
Line 588 pnode_findfirst(struct pnode *pn, enum nodeid node) |
|
Line 588 pnode_findfirst(struct pnode *pn, enum nodeid node) |
|
break; |
break; |
} |
} |
|
|
return(res); |
return res; |
} |
} |
|
|
#define MACROLINE_NORM 0 |
#define MACROLINE_NORM 0 |
Line 1719 readfile(XML_Parser xp, int fd, |
|
Line 1719 readfile(XML_Parser xp, int fd, |
|
pnode_print(&p, p.root); |
pnode_print(&p, p.root); |
pnode_free(p.root); |
pnode_free(p.root); |
free(p.b); |
free(p.b); |
return(0 != rc && ! p.stop); |
return rc != 0 && p.stop == 0; |
} |
} |
|
|
/* Read error has occured. */ |
/* Read error has occured. */ |
perror(fn); |
perror(fn); |
pnode_free(p.root); |
pnode_free(p.root); |
free(p.b); |
free(p.b); |
return(0); |
return 0; |
} |
} |
|
|
int |
int |
Line 1747 main(int argc, char *argv[]) |
|
Line 1747 main(int argc, char *argv[]) |
|
fname = "-"; |
fname = "-"; |
xp = NULL; |
xp = NULL; |
buf = NULL; |
buf = NULL; |
rc = 0; |
rc = 1; |
|
|
while (-1 != (ch = getopt(argc, argv, "W"))) |
while (-1 != (ch = getopt(argc, argv, "W"))) |
switch (ch) { |
switch (ch) { |
Line 1783 main(int argc, char *argv[]) |
|
Line 1783 main(int argc, char *argv[]) |
|
perror(NULL); |
perror(NULL); |
else if (NULL == (xp = XML_ParserCreate(NULL))) |
else if (NULL == (xp = XML_ParserCreate(NULL))) |
perror(NULL); |
perror(NULL); |
else if ( ! readfile(xp, fd, buf, 4096, fname)) |
else if (readfile(xp, fd, buf, 4096, fname)) |
rc = 1; |
rc = 0; |
|
|
XML_ParserFree(xp); |
XML_ParserFree(xp); |
free(buf); |
free(buf); |
if (STDIN_FILENO != fd) |
if (STDIN_FILENO != fd) |
close(fd); |
close(fd); |
return(rc ? EXIT_SUCCESS : EXIT_FAILURE); |
return rc; |
|
|
usage: |
usage: |
fprintf(stderr, "usage: %s [-W] [input_filename]\n", progname); |
fprintf(stderr, "usage: %s [-W] [input_filename]\n", progname); |
return(EXIT_FAILURE); |
return 1; |
} |
} |