From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from krisdoz.my.domain (kristaps@localhost [127.0.0.1]) by krisdoz.my.domain (8.14.3/8.14.3) with ESMTP id p4FEo2LL021008 for ; Sun, 15 May 2011 10:50:02 -0400 (EDT) Received: (from kristaps@localhost) by krisdoz.my.domain (8.14.3/8.14.3/Submit) id p4FEo19r010597; Sun, 15 May 2011 10:50:01 -0400 (EDT) Date: Sun, 15 May 2011 10:50:01 -0400 (EDT) Message-Id: <201105151450.p4FEo19r010597@krisdoz.my.domain> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: kristaps@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Use strcspn() in term_strlen(). X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Use strcspn() in term_strlen(). Clarifies the code. Modified Files: -------------- mdocml: term.c Revision Data ------------- Index: term.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/term.c,v retrieving revision 1.188 retrieving revision 1.189 diff -Lterm.c -Lterm.c -u -p -r1.188 -r1.189 --- term.c +++ term.c @@ -606,8 +606,8 @@ term_strlen(const struct termp *p, const { size_t sz, rsz, i; int ssz; - enum mandoc_esc esc; const char *seq, *rhs; + static const char rej[] = { '\\', ASCII_HYPH, ASCII_NBRSP, '\0' }; /* * Account for escaped sequences within string length @@ -616,15 +616,17 @@ term_strlen(const struct termp *p, const */ sz = 0; - while ('\0' != *cp) + while ('\0' != *cp) { + rsz = strcspn(cp, rej); + for (i = 0; i < rsz; i++) + sz += (*p->width)(p, *cp++); + switch (*cp) { case ('\\'): - ++cp; - esc = mandoc_escape(&cp, &seq, &ssz); - if (ESCAPE_ERROR == esc) + cp++; + switch (mandoc_escape(&cp, &seq, &ssz)) { + case (ESCAPE_ERROR): return(sz); - - switch (esc) { case (ESCAPE_PREDEF): rhs = mchars_res2str (p->symtab, seq, ssz, &rsz); @@ -659,14 +661,13 @@ term_strlen(const struct termp *p, const cp++; break; default: - sz += (*p->width)(p, *cp++); break; } + } return(sz); } - /* ARGSUSED */ size_t term_vspan(const struct termp *p, const struct roffsu *su) @@ -702,7 +703,6 @@ term_vspan(const struct termp *p, const return(/* LINTED */(size_t) r); } - size_t term_hspan(const struct termp *p, const struct roffsu *su) -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv