[BACK]Return to chars.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/chars.c between version 1.5 and 1.15

version 1.5, 2009/09/22 23:34:14 version 1.15, 2010/01/05 19:51:10
Line 14 
Line 14 
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */   */
   #ifdef HAVE_CONFIG_H
   #include "config.h"
   #endif
   
 #include <assert.h>  #include <assert.h>
 #include <err.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
   
Line 35  struct ln {
Line 39  struct ln {
         int               type;          int               type;
 #define CHARS_CHAR       (1 << 0)  #define CHARS_CHAR       (1 << 0)
 #define CHARS_STRING     (1 << 1)  #define CHARS_STRING     (1 << 1)
 #define CHARS_BOTH       (0x03)  #define CHARS_BOTH       (CHARS_CHAR | CHARS_STRING)
 };  };
   
 #define LINES_MAX         302  #define LINES_MAX         350
   
 #define CHAR(w, x, y, z, a, b) \  #define CHAR(w, x, y, z, a, b) \
         { NULL, (w), (y), (a), (x), (z), (b), CHARS_CHAR },          { NULL, (w), (y), (a), (x), (z), (b), CHARS_CHAR },
Line 47  struct ln {
Line 51  struct ln {
 #define BOTH(w, x, y, z, a, b) \  #define BOTH(w, x, y, z, a, b) \
         { NULL, (w), (y), (a), (x), (z), (b), CHARS_BOTH },          { NULL, (w), (y), (a), (x), (z), (b), CHARS_BOTH },
   
 static  struct ln lines[LINES_MAX] = {  #define CHAR_TBL_START    static struct ln lines[LINES_MAX] = {
   #define CHAR_TBL_END      };
   
 #include "chars.in"  #include "chars.in"
 };  
   
 struct  tbl {  struct  tbl {
         enum chars        type;          enum chars        type;
Line 89  chars_init(enum chars type)
Line 94  chars_init(enum chars type)
          * (they're in-line re-ordered during lookup).           * (they're in-line re-ordered during lookup).
          */           */
   
         if (NULL == (tab = malloc(sizeof(struct tbl))))          tab = malloc(sizeof(struct tbl));
                 err(1, "malloc");          if (NULL == tab) {
         tab->type = type;                  perror(NULL);
                   exit(EXIT_FAILURE);
           }
   
         htab = calloc(PRINT_HI - PRINT_LO + 1, sizeof(struct ln **));          htab = calloc(PRINT_HI - PRINT_LO + 1, sizeof(struct ln **));
         if (NULL == htab)          if (NULL == htab) {
                 err(1, "malloc");                  perror(NULL);
                   exit(EXIT_FAILURE);
           }
   
         for (i = 0; i < LINES_MAX; i++) {          for (i = 0; i < LINES_MAX; i++) {
                 hash = (int)lines[i].code[0] - PRINT_LO;                  hash = (int)lines[i].code[0] - PRINT_LO;
Line 111  chars_init(enum chars type)
Line 120  chars_init(enum chars type)
         }          }
   
         tab->htab = htab;          tab->htab = htab;
           tab->type = type;
         return(tab);          return(tab);
 }  }
   

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.15

CVSweb