]> git.cameronkatri.com Git - mandoc.git/blobdiff - chars.c
Slightly tweak www section/subsections.
[mandoc.git] / chars.c
diff --git a/chars.c b/chars.c
index d0fd8724250f73616975f39abc4ebe401328f0d0..91db80ef6fa3ac8c86e1000a972498b7a20bef03 100644 (file)
--- a/chars.c
+++ b/chars.c
@@ -1,4 +1,4 @@
-/*     $Id: chars.c,v 1.47 2011/07/07 06:41:50 kristaps Exp $ */
+/*     $Id: chars.c,v 1.50 2011/07/31 11:24:39 schwarze Exp $ */
 /*
  * Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -37,7 +37,7 @@ struct        ln {
        int               unicode;
 };
 
-#define        LINES_MAX         325
+#define        LINES_MAX         328
 
 #define CHAR(in, ch, code) \
        { NULL, (in), (ch), (code) },
@@ -111,9 +111,9 @@ mchars_num2char(const char *p, size_t sz)
 {
        int               i;
 
-       if ((i = mandoc_strntou(p, sz, 10)) < 0)
+       if ((i = mandoc_strntoi(p, sz, 10)) < 0)
                return('\0');
-       return(isprint(i) ? i : '\0');
+       return(i > 0 && i < 256 && isprint(i) ? i : '\0');
 }
 
 int
@@ -121,7 +121,7 @@ mchars_num2uc(const char *p, size_t sz)
 {
        int               i;
 
-       if ((i = mandoc_strntou(p, sz, 16)) < 0)
+       if ((i = mandoc_strntoi(p, sz, 16)) < 0)
                return('\0');
        /* FIXME: make sure we're not in a bogus range. */
        return(i > 0x80 && i <= 0x10FFFF ? i : '\0');
@@ -133,8 +133,10 @@ mchars_spec2str(struct mchars *arg, const char *p, size_t sz, size_t *rsz)
        const struct ln *ln;
 
        ln = find(arg, p, sz);
-       if (NULL == ln)
+       if (NULL == ln) {
+               *rsz = 1;
                return(NULL);
+       }
 
        *rsz = strlen(ln->ascii);
        return(ln->ascii);