* mandoc: Consistently treat character escape sequences as operators, not
@ 2017-06-23 23:00 schwarze
0 siblings, 0 replies; only message in thread
From: schwarze @ 2017-06-23 23:00 UTC (permalink / raw)
To: source
Log Message:
-----------
Consistently treat character escape sequences as operators,
not as letters, even if their names contain letters.
This is certainly not perfect, but code to recognize that \(*a is
not an operator but a letter would need a huge table, or Unicode
character property support, which won't happen at this time.
Modified Files:
--------------
mandoc:
eqn_html.c
Revision Data
-------------
Index: eqn_html.c
===================================================================
RCS file: /home/cvs/mandoc/mandoc/eqn_html.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -Leqn_html.c -Leqn_html.c -u -p -r1.13 -r1.14
--- eqn_html.c
+++ eqn_html.c
@@ -34,7 +34,7 @@ eqn_box(struct html *p, const struct eqn
{
struct tag *post, *row, *cell, *t;
const struct eqn_box *child, *parent;
- const unsigned char *cp;
+ const char *cp;
size_t i, j, rows;
enum htmltag tag;
enum eqn_fontt font;
@@ -143,22 +143,28 @@ eqn_box(struct html *p, const struct eqn
if (bp->text != NULL) {
assert(post == NULL);
tag = TAG_MI;
- cp = (unsigned char *)bp->text;
- if (isdigit(cp[0]) || (cp[0] == '.' && isdigit(cp[1]))) {
+ cp = bp->text;
+ if (isdigit((unsigned char)cp[0]) ||
+ (cp[0] == '.' && isdigit((unsigned char)cp[1]))) {
tag = TAG_MN;
while (*++cp != '\0') {
- if (*cp != '.' && !isdigit(*cp)) {
+ if (*cp != '.' &&
+ isdigit((unsigned char)*cp) == 0) {
tag = TAG_MI;
break;
}
}
- } else if (*cp != '\0' && isalpha(*cp) == 0) {
+ } else if (*cp != '\0' && isalpha((unsigned char)*cp) == 0) {
tag = TAG_MO;
- while (*++cp != '\0') {
- if (isalnum(*cp)) {
+ while (*cp != '\0') {
+ if (cp[0] == '\\' && cp[1] != '\0') {
+ cp++;
+ mandoc_escape(&cp, NULL, NULL);
+ } else if (isalnum((unsigned char)*cp)) {
tag = TAG_MI;
break;
- }
+ } else
+ cp++;
}
}
font = bp->font;
--
To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-06-23 23:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-23 23:00 mandoc: Consistently treat character escape sequences as operators, not schwarze
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).