version 1.53, 2019/04/28 15:03:29 |
version 1.59, 2019/05/02 11:58:18 |
Line 97 static const struct alias aliases[] = { |
|
Line 97 static const struct alias aliases[] = { |
|
{ "imageobject", NODE_IGNORE }, |
{ "imageobject", NODE_IGNORE }, |
{ "indexterm", NODE_DELETE }, |
{ "indexterm", NODE_DELETE }, |
{ "informaltable", NODE_TABLE }, |
{ "informaltable", NODE_TABLE }, |
|
{ "jobtitle", NODE_IGNORE }, |
{ "keycap", NODE_KEYSYM }, |
{ "keycap", NODE_KEYSYM }, |
{ "keycode", NODE_IGNORE }, |
{ "keycode", NODE_IGNORE }, |
|
{ "keycombo", NODE_IGNORE }, |
{ "mediaobject", NODE_BLOCKQUOTE }, |
{ "mediaobject", NODE_BLOCKQUOTE }, |
|
{ "orgdiv", NODE_IGNORE }, |
{ "orgname", NODE_IGNORE }, |
{ "orgname", NODE_IGNORE }, |
{ "othercredit", NODE_AUTHOR }, |
{ "othercredit", NODE_AUTHOR }, |
{ "othername", NODE_PERSONNAME }, |
{ "othername", NODE_PERSONNAME }, |
Line 129 static const struct alias aliases[] = { |
|
Line 132 static const struct alias aliases[] = { |
|
{ "trademark", NODE_IGNORE }, |
{ "trademark", NODE_IGNORE }, |
{ "ulink", NODE_LINK }, |
{ "ulink", NODE_LINK }, |
{ "userinput", NODE_LITERAL }, |
{ "userinput", NODE_LITERAL }, |
{ "year", NODE_IGNORE }, |
|
{ NULL, NODE_IGNORE } |
{ NULL, NODE_IGNORE } |
}; |
}; |
|
|
Line 268 xml_text(struct parse *p, const char *word, int sz) |
|
Line 270 xml_text(struct parse *p, const char *word, int sz) |
|
|
|
n = pnode_alloc(p->cur); |
n = pnode_alloc(p->cur); |
n->node = NODE_TEXT; |
n->node = NODE_TEXT; |
n->flags = ((p->flags & PFLAG_LINE) ? NFLAG_LINE : 0) | |
if (p->flags & PFLAG_LINE && TAILQ_PREV(n, pnodeq, child) != NULL) |
((p->flags & PFLAG_SPC) ? NFLAG_SPC : 0); |
n->flags |= NFLAG_LINE; |
|
if (p->flags & PFLAG_SPC) |
|
n->flags |= NFLAG_SPC; |
p->flags &= ~(PFLAG_LINE | PFLAG_SPC); |
p->flags &= ~(PFLAG_LINE | PFLAG_SPC); |
|
|
/* |
/* |
Line 352 pnode_closetext(struct parse *p, int check_last_word) |
|
Line 356 pnode_closetext(struct parse *p, int check_last_word) |
|
|
|
while (cp > n->b && !isspace((unsigned char)cp[-1])) |
while (cp > n->b && !isspace((unsigned char)cp[-1])) |
cp--; |
cp--; |
|
last_word = cp; |
|
while (cp > n->b && isspace((unsigned char)cp[-1])) |
|
cp--; |
if (cp == n->b) |
if (cp == n->b) |
return; |
return; |
|
*cp = '\0'; |
|
|
last_word = cp; |
|
while (cp > n->b && isspace((unsigned char)cp[-1])) |
|
*--cp = '\0'; |
|
|
|
/* Move the last word into its own node, for use with .Pf. */ |
/* Move the last word into its own node, for use with .Pf. */ |
|
|
n = pnode_alloc(p->cur); |
n = pnode_alloc_text(p->cur, last_word); |
n->node = NODE_TEXT; |
|
n->flags |= NFLAG_SPC; |
n->flags |= NFLAG_SPC; |
n->b = xstrdup(last_word); |
|
} |
} |
|
|
static void |
static void |
Line 435 xml_entity(struct parse *p, const char *name) |
|
Line 437 xml_entity(struct parse *p, const char *name) |
|
n->b = xstrdup(entity->roff); |
n->b = xstrdup(entity->roff); |
done: |
done: |
n->node = NODE_ESCAPE; |
n->node = NODE_ESCAPE; |
n->flags = ((p->flags & PFLAG_LINE) ? NFLAG_LINE : 0) | |
if (p->flags & PFLAG_LINE && TAILQ_PREV(n, pnodeq, child) != NULL) |
((p->flags & PFLAG_SPC) ? NFLAG_SPC : 0); |
n->flags |= NFLAG_LINE; |
|
if (p->flags & PFLAG_SPC) |
|
n->flags |= NFLAG_SPC; |
p->flags &= ~(PFLAG_LINE | PFLAG_SPC); |
p->flags &= ~(PFLAG_LINE | PFLAG_SPC); |
} |
} |
|
|
Line 508 xml_elem_start(struct parse *p, const char *name) |
|
Line 512 xml_elem_start(struct parse *p, const char *name) |
|
} |
} |
|
|
n = pnode_alloc(p->cur); |
n = pnode_alloc(p->cur); |
|
if (p->flags & PFLAG_LINE && p->cur != NULL && |
|
TAILQ_PREV(n, pnodeq, child) != NULL) |
|
n->flags |= NFLAG_LINE; |
|
p->flags &= ~PFLAG_LINE; |
|
|
/* |
/* |
* Some elements are self-closing. |
* Some elements are self-closing. |
Line 528 xml_elem_start(struct parse *p, const char *name) |
|
Line 536 xml_elem_start(struct parse *p, const char *name) |
|
switch (pnode_class(p->ncur)) { |
switch (pnode_class(p->ncur)) { |
case CLASS_LINE: |
case CLASS_LINE: |
case CLASS_ENCL: |
case CLASS_ENCL: |
n->flags = ((p->flags & PFLAG_LINE) ? NFLAG_LINE : 0) | |
if (p->flags & PFLAG_SPC) |
((p->flags & PFLAG_SPC) ? NFLAG_SPC : 0); |
n->flags |= NFLAG_SPC; |
break; |
break; |
case CLASS_NOFILL: |
case CLASS_NOFILL: |
p->nofill++; |
p->nofill++; |