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

Diff for /mandoc/chars.c between version 1.23 and 1.27

version 1.23, 2010/07/18 12:10:08 version 1.27, 2010/08/20 01:02:07
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * 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   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 33  struct ln {
Line 33  struct ln {
         struct ln        *next;          struct ln        *next;
         const char       *code;          const char       *code;
         const char       *ascii;          const char       *ascii;
         size_t            asciisz;  
         int               unicode;          int               unicode;
         int               type;          int               type;
 #define CHARS_CHAR       (1 << 0)  #define CHARS_CHAR       (1 << 0)
Line 41  struct ln {
Line 40  struct ln {
 #define CHARS_BOTH       (CHARS_CHAR | CHARS_STRING)  #define CHARS_BOTH       (CHARS_CHAR | CHARS_STRING)
 };  };
   
 #define LINES_MAX         370  #define LINES_MAX         369
   
 #define CHAR(in, ch, chsz, code) \  #define CHAR(in, ch, code) \
         { NULL, (in), (ch), (chsz), (code), CHARS_CHAR },          { NULL, (in), (ch), (code), CHARS_CHAR },
 #define STRING(in, ch, chsz, code) \  #define STRING(in, ch, code) \
         { NULL, (in), (ch), (chsz), (code), CHARS_STRING },          { NULL, (in), (ch), (code), CHARS_STRING },
 #define BOTH(in, ch, chsz, code) \  #define BOTH(in, ch, code) \
         { NULL, (in), (ch), (chsz), (code), CHARS_BOTH },          { NULL, (in), (ch), (code), CHARS_BOTH },
   
 #define CHAR_TBL_START    static struct ln lines[LINES_MAX] = {  #define CHAR_TBL_START    static struct ln lines[LINES_MAX] = {
 #define CHAR_TBL_END      };  #define CHAR_TBL_END      };
Line 95  chars_init(enum chars type)
Line 94  chars_init(enum chars type)
         tab = malloc(sizeof(struct tbl));          tab = malloc(sizeof(struct tbl));
         if (NULL == tab) {          if (NULL == tab) {
                 perror(NULL);                  perror(NULL);
                 exit(EXIT_FAILURE);                  exit(MANDOCLEVEL_SYSERR);
         }          }
   
         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) {
                 perror(NULL);                  perror(NULL);
                 exit(EXIT_FAILURE);                  exit(MANDOCLEVEL_SYSERR);
         }          }
   
         for (i = 0; i < LINES_MAX; i++) {          for (i = 0; i < LINES_MAX; i++) {
Line 165  chars_spec2str(void *arg, const char *p, size_t sz, si
Line 164  chars_spec2str(void *arg, const char *p, size_t sz, si
         if (NULL == ln)          if (NULL == ln)
                 return(NULL);                  return(NULL);
   
         *rsz = ln->asciisz;          *rsz = strlen(ln->ascii);
         return(ln->ascii);          return(ln->ascii);
 }  }
   
Line 182  chars_res2str(void *arg, const char *p, size_t sz, siz
Line 181  chars_res2str(void *arg, const char *p, size_t sz, siz
         if (NULL == ln)          if (NULL == ln)
                 return(NULL);                  return(NULL);
   
         *rsz = ln->asciisz;          *rsz = strlen(ln->ascii);
         return(ln->ascii);          return(ln->ascii);
 }  }
   

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.27

CVSweb