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

Diff for /mandoc/chars.c between version 1.75 and 1.79

version 1.75, 2018/08/21 01:59:22 version 1.79, 2020/02/13 16:18:29
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2011, 2014, 2015, 2017, 2018, 2020
    *               Ingo Schwarze <schwarze@openbsd.org>
  *   *
  * 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 23 
Line 24 
 #include <ctype.h>  #include <ctype.h>
 #include <stddef.h>  #include <stddef.h>
 #include <stdint.h>  #include <stdint.h>
   #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
   
Line 46  static struct ln lines[] = {
Line 48  static struct ln lines[] = {
         /* Spacing. */          /* Spacing. */
         { " ",                  ascii_nbrsp,    0x00a0  },          { " ",                  ascii_nbrsp,    0x00a0  },
         { "~",                  ascii_nbrsp,    0x00a0  },          { "~",                  ascii_nbrsp,    0x00a0  },
         { "0",                  " ",            0x2002  },          { "0",                  ascii_nbrsp,    0x00a0  },
         { "|",                  "",             0       },  
         { "^",                  "",             0       },  
         { "&",                  "",             0       },  
         { ")",                  "",             0       },  
         { "%",                  "",             0       },  
         { ":",                  ascii_break,    0       },          { ":",                  ascii_break,    0       },
         /* XXX The following three do not really belong here. */  
         { "t",                  "",             0       },  
         { "c",                  "",             0       },  
         { "}",                  "",             0       },  
   
         /* Lines. */          /* Lines. */
         { "ba",                 "|",            0x007c  },          { "ba",                 "|",            0x007c  },
         { "br",                 "|",            0x2502  },          { "br",                 "|",            0x2502  },
         { "ul",                 "_",            0x005f  },          { "ul",                 "_",            0x005f  },
           { "_",                  "_",            0x005f  },
         { "ru",                 "_",            0x005f  },          { "ru",                 "_",            0x005f  },
         { "rn",                 "-",            0x203e  },          { "rn",                 "-",            0x203e  },
         { "bb",                 "|",            0x00a6  },          { "bb",                 "|",            0x00a6  },
Line 83  static struct ln lines[] = {
Line 77  static struct ln lines[] = {
         { "sh",                 "#",            0x0023  },          { "sh",                 "#",            0x0023  },
         { "CR",                 "<cr>",         0x21b5  },          { "CR",                 "<cr>",         0x21b5  },
         { "OK",                 "\\/",          0x2713  },          { "OK",                 "\\/",          0x2713  },
         { "CL",                 "<club>",       0x2663  },          { "CL",                 "C",            0x2663  },
         { "SP",                 "<spade>",      0x2660  },          { "SP",                 "S",            0x2660  },
         { "HE",                 "<heart>",      0x2665  },          { "HE",                 "H",            0x2665  },
         { "DI",                 "<diamond>",    0x2666  },          { "DI",                 "D",            0x2666  },
   
         /* Legal symbols. */          /* Legal symbols. */
         { "co",                 "(C)",          0x00a9  },          { "co",                 "(C)",          0x00a9  },
Line 363  static struct ln lines[] = {
Line 357  static struct ln lines[] = {
         { "Eu",                 "EUR",          0x20ac  },          { "Eu",                 "EUR",          0x20ac  },
         { "eu",                 "EUR",          0x20ac  },          { "eu",                 "EUR",          0x20ac  },
         { "Ye",                 "=\bY",         0x00a5  },          { "Ye",                 "=\bY",         0x00a5  },
         { "Po",                 "GBP",          0x00a3  },          { "Po",                 "-\bL",         0x00a3  },
         { "Cs",                 "o\bx",         0x00a4  },          { "Cs",                 "o\bx",         0x00a4  },
         { "Fn",                 ",\bf",         0x0192  },          { "Fn",                 ",\bf",         0x0192  },
   
Line 464  mchars_spec2cp(const char *p, size_t sz)
Line 458  mchars_spec2cp(const char *p, size_t sz)
   
         end = p + sz;          end = p + sz;
         ln = ohash_find(&mchars, ohash_qlookupi(&mchars, p, &end));          ln = ohash_find(&mchars, ohash_qlookupi(&mchars, p, &end));
         return ln != NULL ? ln->unicode : sz == 1 ? (unsigned char)*p : -1;          return ln != NULL ? ln->unicode : -1;
 }  }
   
 int  int
Line 494  mchars_spec2str(const char *p, size_t sz, size_t *rsz)
Line 488  mchars_spec2str(const char *p, size_t sz, size_t *rsz)
   
         end = p + sz;          end = p + sz;
         ln = ohash_find(&mchars, ohash_qlookupi(&mchars, p, &end));          ln = ohash_find(&mchars, ohash_qlookupi(&mchars, p, &end));
         if (ln == NULL) {          if (ln == NULL)
                 *rsz = 1;                  return NULL;
                 return sz == 1 ? p : NULL;  
         }  
   
         *rsz = strlen(ln->ascii);          *rsz = strlen(ln->ascii);
         return ln->ascii;          return ln->ascii;

Legend:
Removed from v.1.75  
changed lines
  Added in v.1.79

CVSweb