From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id bfec987b for ; Tue, 23 Apr 2019 09:02:26 -0500 (EST) Date: Tue, 23 Apr 2019 09:02:26 -0500 (EST) X-Mailinglist: mandoc-source Reply-To: source@mandoc.bsd.lv MIME-Version: 1.0 From: schwarze@mandoc.bsd.lv To: source@mandoc.bsd.lv Subject: docbook2mdoc: translate decimal character entities to Unicode escapes X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Message-ID: Log Message: ----------- translate decimal character entities to Unicode escapes Modified Files: -------------- docbook2mdoc: parse.c Revision Data ------------- Index: parse.c =================================================================== RCS file: /home/cvs/mdocml/docbook2mdoc/parse.c,v retrieving revision 1.48 retrieving revision 1.49 diff -Lparse.c -Lparse.c -u -p -r1.48 -r1.49 --- parse.c +++ parse.c @@ -383,6 +383,7 @@ xml_entity(struct parse *p, const char * struct pnode *n; const char *ccp; char *cp; + unsigned int codepoint; enum pstate pstate; if (p->del > 0) @@ -427,6 +428,16 @@ xml_entity(struct parse *p, const char * return; } } + if (*name == '#') { + codepoint = strtonum(name + 1, 0, 0x10ffff, &ccp); + if (ccp == NULL) { + if ((n = pnode_alloc(p->cur)) == NULL || + asprintf(&n->b, "\\[u%4.4X]", + codepoint) < 0) + fatal(p); + goto done; + } + } error_msg(p, "unknown entity &%s;", name); return; } @@ -435,6 +446,7 @@ xml_entity(struct parse *p, const char * if ((n = pnode_alloc(p->cur)) == NULL || (n->b = strdup(entity->roff)) == NULL) fatal(p); +done: n->node = NODE_ESCAPE; n->spc = (p->flags & PFLAG_SPC) != 0; p->flags &= ~PFLAG_SPC; -- To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv