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 p4FMTpci018849 for ; Sun, 15 May 2011 18:29:51 -0400 (EDT) Received: (from kristaps@localhost) by krisdoz.my.domain (8.14.3/8.14.3/Submit) id p4FMToZ6007627; Sun, 15 May 2011 18:29:50 -0400 (EDT) Date: Sun, 15 May 2011 18:29:50 -0400 (EDT) Message-Id: <201105152229.p4FMToZ6007627@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: Remove function calls to res() and so forth in term_word(). X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Remove function calls to res() and so forth in term_word(). These were only used once and simply bloated the binary. Also fix mchars_num2char to correctly render the character instead of using atoi(). This makes the conversation more strict, but it's more correct. Modified Files: -------------- mdocml: chars.c term.c Revision Data ------------- Index: term.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/term.c,v retrieving revision 1.190 retrieving revision 1.191 diff -Lterm.c -Lterm.c -u -p -r1.190 -r1.191 --- term.c +++ term.c @@ -33,12 +33,9 @@ #include "term.h" #include "main.h" -static void spec(struct termp *, const char *, size_t); -static void res(struct termp *, const char *, size_t); -static void bufferc(struct termp *, char); -static void adjbuf(struct termp *p, int); -static void encode(struct termp *, const char *, size_t); - +static void adjbuf(struct termp *p, int); +static void bufferc(struct termp *, char); +static void encode(struct termp *, const char *, size_t); void term_free(struct termp *p) @@ -344,43 +341,6 @@ term_vspace(struct termp *p) (*p->endline)(p); } - -static void -numbered(struct termp *p, const char *word, size_t len) -{ - char c; - - if ('\0' != (c = mchars_num2char(word, len))) - encode(p, &c, 1); -} - - -static void -spec(struct termp *p, const char *word, size_t len) -{ - const char *rhs; - size_t sz; - - rhs = mchars_spec2str(p->symtab, word, len, &sz); - if (rhs) - encode(p, rhs, sz); - else if (1 == len) - encode(p, word, len); -} - - -static void -res(struct termp *p, const char *word, size_t len) -{ - const char *rhs; - size_t sz; - - rhs = mchars_res2str(p->symtab, word, len, &sz); - if (rhs) - encode(p, rhs, sz); -} - - void term_fontlast(struct termp *p) { @@ -445,7 +405,6 @@ term_fontpop(struct termp *p) p->fonti--; } - /* * Handle pwords, partial words, which may be either a single word or a * phrase that cannot be broken down (such as a literal string). This @@ -454,7 +413,8 @@ term_fontpop(struct termp *p) void term_word(struct termp *p, const char *word) { - const char *seq; + const char *seq, *cp; + char c; int sz; size_t ssz; enum mandoc_esc esc; @@ -492,13 +452,20 @@ term_word(struct termp *p, const char *w switch (esc) { case (ESCAPE_NUMBERED): - numbered(p, seq, sz); + if ('\0' != (c = mchars_num2char(seq, sz))) + encode(p, &c, 1); break; case (ESCAPE_PREDEF): - res(p, seq, sz); + cp = mchars_res2str(p->symtab, seq, sz, &ssz); + if (NULL != cp) + encode(p, cp, ssz); break; case (ESCAPE_SPECIAL): - spec(p, seq, sz); + cp = mchars_spec2str(p->symtab, seq, sz, &ssz); + if (NULL != cp) + encode(p, cp, ssz); + else if (1 == ssz) + encode(p, seq, sz); break; case (ESCAPE_FONTBOLD): term_fontrepl(p, TERMFONT_BOLD); @@ -522,7 +489,6 @@ term_word(struct termp *p, const char *w } } - static void adjbuf(struct termp *p, int sz) { @@ -536,7 +502,6 @@ adjbuf(struct termp *p, int sz) (p->buf, sizeof(int) * (size_t)p->maxcols); } - static void bufferc(struct termp *p, char c) { @@ -547,7 +512,6 @@ bufferc(struct termp *p, char c) p->buf[p->col++] = c; } - static void encode(struct termp *p, const char *word, size_t sz) { @@ -591,7 +555,6 @@ encode(struct termp *p, const char *word p->buf[p->col++] = word[i]; } } - size_t term_len(const struct termp *p, size_t sz) Index: chars.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/chars.c,v retrieving revision 1.42 retrieving revision 1.43 diff -Lchars.c -Lchars.c -u -p -r1.42 -r1.43 --- chars.c +++ chars.c @@ -26,6 +26,7 @@ #include #include "mandoc.h" +#include "libmandoc.h" #define PRINT_HI 126 #define PRINT_LO 32 @@ -148,11 +149,9 @@ mchars_num2char(const char *p, size_t sz { int i; - if (sz > 3) + if ((i = mandoc_strntou(p, sz, 10)) < 0) return('\0'); - i = atoi(p); - /* LINTED */ return(isprint(i) ? i : '\0'); } -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv