* mdocml: Remove function calls to res() and so forth in term_word().
@ 2011-05-15 22:29 kristaps
0 siblings, 0 replies; only message in thread
From: kristaps @ 2011-05-15 22:29 UTC (permalink / raw)
To: source
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 <string.h>
#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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2011-05-15 22:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-15 22:29 mdocml: Remove function calls to res() and so forth in term_word() kristaps
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).