From ad29d8dbe925e8f0d680007ebf3c95aec8351f84 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Thu, 8 Jun 2017 12:54:58 +0000 Subject: make the internal a2roffsu() interface more powerful by returning a pointer to the end of the parsed data, making it easier to parse subsequent bytes --- term.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'term.c') diff --git a/term.c b/term.c index ebc1e4ef..2e917c8f 100644 --- a/term.c +++ b/term.c @@ -479,7 +479,7 @@ term_word(struct termp *p, const char *word) p->flags |= (TERMP_NOSPACE | TERMP_NONEWLINE); continue; case ESCAPE_HORIZ: - if (a2roffsu(seq, &su, SCALE_EM) == 0) + if (a2roffsu(seq, &su, SCALE_EM) == NULL) continue; uc = term_hspan(p, &su) / 24; if (uc > 0) @@ -500,7 +500,7 @@ term_word(struct termp *p, const char *word) } continue; case ESCAPE_HLINE: - if (a2roffsu(seq, &su, SCALE_EM) == 0) + if ((seq = a2roffsu(seq, &su, SCALE_EM)) == NULL) continue; uc = term_hspan(p, &su) / 24; if (uc <= 0) { @@ -509,16 +509,7 @@ term_word(struct termp *p, const char *word) lsz = p->tcol->rmargin - p->tcol->offset; } else lsz = uc; - while (sz && - strchr(" %&()*+-./0123456789:<=>", *seq)) { - seq++; - sz--; - } - if (sz && strchr("cifMmnPpuv", *seq)) { - seq++; - sz--; - } - if (sz == 0) + if (*seq == '\0') uc = -1; else if (*seq == '\\') { seq++; @@ -739,7 +730,7 @@ term_setwidth(struct termp *p, const char *wstr) default: break; } - if (a2roffsu(wstr, &su, SCALE_MAX)) + if (a2roffsu(wstr, &su, SCALE_MAX) != NULL) width = term_hspan(p, &su); else iop = 0; -- cgit