]> git.cameronkatri.com Git - mandoc.git/blobdiff - chars.c
First, remove the catman(8) jobstart() stuff. It only copies files.
[mandoc.git] / chars.c
diff --git a/chars.c b/chars.c
index 369aac2fe1085cc695fc74a5c0629e7fadda7433..ce03347b5d83f86794f721034408c8718fd3a1e3 100644 (file)
--- a/chars.c
+++ b/chars.c
@@ -1,6 +1,6 @@
-/*     $Id: chars.c,v 1.48 2011/07/21 15:21:13 kristaps Exp $ */
+/*     $Id: chars.c,v 1.52 2011/11/08 00:15:23 kristaps Exp $ */
 /*
 /*
- * Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -37,7 +37,7 @@ struct        ln {
        int               unicode;
 };
 
        int               unicode;
 };
 
-#define        LINES_MAX         325
+#define        LINES_MAX         328
 
 #define CHAR(in, ch, code) \
        { NULL, (in), (ch), (code) },
 
 #define CHAR(in, ch, code) \
        { NULL, (in), (ch), (code) },
@@ -51,7 +51,8 @@ struct        mchars {
        struct ln       **htab;
 };
 
        struct ln       **htab;
 };
 
-static const struct ln  *find(struct mchars *, const char *, size_t);
+static const struct ln  *find(const struct mchars *, 
+                               const char *, size_t);
 
 void
 mchars_free(struct mchars *arg)
 
 void
 mchars_free(struct mchars *arg)
@@ -96,7 +97,7 @@ mchars_alloc(void)
 }
 
 int
 }
 
 int
-mchars_spec2cp(struct mchars *arg, const char *p, size_t sz)
+mchars_spec2cp(const struct mchars *arg, const char *p, size_t sz)
 {
        const struct ln *ln;
 
 {
        const struct ln *ln;
 
@@ -113,7 +114,8 @@ mchars_num2char(const char *p, size_t sz)
 
        if ((i = mandoc_strntoi(p, sz, 10)) < 0)
                return('\0');
 
        if ((i = mandoc_strntoi(p, sz, 10)) < 0)
                return('\0');
-       return(isprint(i) ? i : '\0');
+       return(i > 0 && i < 256 && isprint(i) ? 
+                       /* LINTED */ i : '\0');
 }
 
 int
 }
 
 int
@@ -128,22 +130,25 @@ mchars_num2uc(const char *p, size_t sz)
 }
 
 const char *
 }
 
 const char *
-mchars_spec2str(struct mchars *arg, const char *p, size_t sz, size_t *rsz)
+mchars_spec2str(const struct mchars *arg, 
+               const char *p, size_t sz, size_t *rsz)
 {
        const struct ln *ln;
 
        ln = find(arg, p, sz);
 {
        const struct ln *ln;
 
        ln = find(arg, p, sz);
-       if (NULL == ln)
+       if (NULL == ln) {
+               *rsz = 1;
                return(NULL);
                return(NULL);
+       }
 
        *rsz = strlen(ln->ascii);
        return(ln->ascii);
 }
 
 static const struct ln *
 
        *rsz = strlen(ln->ascii);
        return(ln->ascii);
 }
 
 static const struct ln *
-find(struct mchars *tab, const char *p, size_t sz)
+find(const struct mchars *tab, const char *p, size_t sz)
 {
 {
-       struct ln        *pp;
+       const struct ln  *pp;
        int               hash;
 
        assert(p);
        int               hash;
 
        assert(p);