]> git.cameronkatri.com Git - mandoc.git/blobdiff - chars.c
OpenBSD src/sbin was used as a tool to hunt bugs in mandoc.
[mandoc.git] / chars.c
diff --git a/chars.c b/chars.c
index b0fcc1652415b355f2bbb136adc1f5f166a3540c..a0731e9985cabcb9351692a58485c1752c652848 100644 (file)
--- a/chars.c
+++ b/chars.c
@@ -1,6 +1,6 @@
-/*     $Id: chars.c,v 1.22 2010/07/17 09:21:39 kristaps Exp $ */
+/*     $Id: chars.c,v 1.25 2010/07/31 23:52:58 schwarze Exp $ */
 /*
 /*
- * Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -33,7 +33,6 @@ struct        ln {
        struct ln        *next;
        const char       *code;
        const char       *ascii;
        struct ln        *next;
        const char       *code;
        const char       *ascii;
-       size_t            asciisz;
        int               unicode;
        int               type;
 #define        CHARS_CHAR       (1 << 0)
        int               unicode;
        int               type;
 #define        CHARS_CHAR       (1 << 0)
@@ -43,12 +42,12 @@ struct      ln {
 
 #define        LINES_MAX         370
 
 
 #define        LINES_MAX         370
 
-#define CHAR(in, ch, chsz, code) \
-       { NULL, (in), (ch), (chsz), (code), CHARS_CHAR },
-#define STRING(in, ch, chsz, code) \
-       { NULL, (in), (ch), (chsz), (code), CHARS_STRING },
-#define BOTH(in, ch, chsz, code) \
-       { NULL, (in), (ch), (chsz), (code), CHARS_BOTH },
+#define CHAR(in, ch, code) \
+       { NULL, (in), (ch), (code), CHARS_CHAR },
+#define STRING(in, ch, code) \
+       { NULL, (in), (ch), (code), CHARS_STRING },
+#define BOTH(in, ch, code) \
+       { NULL, (in), (ch), (code), CHARS_BOTH },
 
 #define        CHAR_TBL_START    static struct ln lines[LINES_MAX] = {
 #define        CHAR_TBL_END      };
 
 #define        CHAR_TBL_START    static struct ln lines[LINES_MAX] = {
 #define        CHAR_TBL_END      };
@@ -165,7 +164,7 @@ chars_spec2str(void *arg, const char *p, size_t sz, size_t *rsz)
        if (NULL == ln)
                return(NULL);
 
        if (NULL == ln)
                return(NULL);
 
-       *rsz = ln->asciisz;
+       *rsz = strlen(ln->ascii);
        return(ln->ascii);
 }
 
        return(ln->ascii);
 }
 
@@ -182,7 +181,7 @@ chars_res2str(void *arg, const char *p, size_t sz, size_t *rsz)
        if (NULL == ln)
                return(NULL);
 
        if (NULL == ln)
                return(NULL);
 
-       *rsz = ln->asciisz;
+       *rsz = strlen(ln->ascii);
        return(ln->ascii);
 }
 
        return(ln->ascii);
 }
 
@@ -195,7 +194,8 @@ find(struct tbl *tab, const char *p, size_t sz, int type)
        int               hash;
 
        assert(p);
        int               hash;
 
        assert(p);
-       assert(sz > 0);
+       if (0 == sz)
+               return(NULL);
 
        if (p[0] < PRINT_LO || p[0] > PRINT_HI)
                return(NULL);
 
        if (p[0] < PRINT_LO || p[0] > PRINT_HI)
                return(NULL);