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

Diff for /mandoc/term_ascii.c between version 1.36 and 1.39

version 1.36, 2014/10/26 18:12:28 version 1.39, 2014/10/28 18:49:33
Line 19 
Line 19 
   
 #include <sys/types.h>  #include <sys/types.h>
   
   #include <assert.h>
 #if HAVE_WCHAR  #if HAVE_WCHAR
 #include <locale.h>  #include <locale.h>
 #endif  #endif
Line 36 
Line 37 
 #include "term.h"  #include "term.h"
 #include "main.h"  #include "main.h"
   
 static  struct termp     *ascii_init(enum termenc, char *);  static  struct termp     *ascii_init(enum termenc,
                                   const struct mchars *, char *);
 static  double            ascii_hspan(const struct termp *,  static  double            ascii_hspan(const struct termp *,
                                 const struct roffsu *);                                  const struct roffsu *);
 static  size_t            ascii_width(const struct termp *, int);  static  size_t            ascii_width(const struct termp *, int);
Line 56  static size_t    locale_width(const struct termp *, in
Line 58  static size_t    locale_width(const struct termp *, in
   
   
 static struct termp *  static struct termp *
 ascii_init(enum termenc enc, char *outopts)  ascii_init(enum termenc enc, const struct mchars *mchars, char *outopts)
 {  {
         const char      *toks[5];          const char      *toks[5];
         char            *v;          char            *v;
Line 64  ascii_init(enum termenc enc, char *outopts)
Line 66  ascii_init(enum termenc enc, char *outopts)
   
         p = mandoc_calloc(1, sizeof(struct termp));          p = mandoc_calloc(1, sizeof(struct termp));
   
           p->symtab = mchars;
         p->tabwidth = 5;          p->tabwidth = 5;
         p->defrmargin = p->lastrmargin = 78;          p->defrmargin = p->lastrmargin = 78;
   
Line 131  ascii_init(enum termenc enc, char *outopts)
Line 134  ascii_init(enum termenc enc, char *outopts)
 }  }
   
 void *  void *
 ascii_alloc(char *outopts)  ascii_alloc(const struct mchars *mchars, char *outopts)
 {  {
   
         return(ascii_init(TERMENC_ASCII, outopts));          return(ascii_init(TERMENC_ASCII, mchars, outopts));
 }  }
   
 void *  void *
 utf8_alloc(char *outopts)  utf8_alloc(const struct mchars *mchars, char *outopts)
 {  {
   
         return(ascii_init(TERMENC_UTF8, outopts));          return(ascii_init(TERMENC_UTF8, mchars, outopts));
 }  }
   
 void *  void *
 locale_alloc(char *outopts)  locale_alloc(const struct mchars *mchars, char *outopts)
 {  {
   
         return(ascii_init(TERMENC_LOCALE, outopts));          return(ascii_init(TERMENC_LOCALE, mchars, outopts));
 }  }
   
 static void  static void
Line 290  ascii_uc2str(int uc)
Line 293  ascii_uc2str(int uc)
         "<88>", "<89>", "<8A>", "<8B>", "<8C>", "<8D>", "<8E>", "<8F>",          "<88>", "<89>", "<8A>", "<8B>", "<8C>", "<8D>", "<8E>", "<8F>",
         "<90>", "<91>", "<92>", "<93>", "<94>", "<95>", "<96>", "<97>",          "<90>", "<91>", "<92>", "<93>", "<94>", "<95>", "<96>", "<97>",
         "<99>", "<99>", "<9A>", "<9B>", "<9C>", "<9D>", "<9E>", "<9F>",          "<99>", "<99>", "<9A>", "<9B>", "<9C>", "<9D>", "<9E>", "<9F>",
         nbrsp,  "!",    "c",    "GBP",  "$?",   "Y=",   "|",    "<sec>",          nbrsp,  "!",    "/\bc", "GBP",  "o\bx", "=\bY", "|",    "<sec>",
         "\"",   "(C)",  "a.",   "<<",   "<not>","",     "(R)",  "-",          "\"",   "(C)",  "_\ba", "<<",   "~",    "",     "(R)",  "-",
         "<deg>","+-",   "^2",   "^3",   "'",    "<my>", "<par>","*",          "<deg>","+-",   "2",    "3",    "'",    ",\bu", "<par>",".",
         ",",    "^1",   "o.",   ">>",   "1/4",  "1/2",  "3/4",  "?",          ",",    "1",    "_\bo", ">>",   "1/4",  "1/2",  "3/4",  "?",
         "A",    "A",    "A",    "A",    "Ae",   "Aa",   "AE",   "C",          "`\bA", "'\bA", "^\bA", "~\bA", "\"\bA","o\bA", "AE",   ",\bC",
         "E",    "E",    "E",    "E",    "I",    "I",    "I",    "I",          "`\bE", "'\bE", "^\bE", "\"\bE","`\bI", "'\bI", "^\bI", "\"\bI",
         "D",    "N",    "O",    "O",    "O",    "O",    "Oe",   "*",          "-\bD", "~\bN", "`\bO", "'\bO", "^\bO", "~\bO", "\"\bO","x",
         "Oe",   "U",    "U",    "U",    "Ue",   "Y",    "Th",   "ss",          "/\bO", "`\bU", "'\bU", "^\bU", "\"\bU","'\bY", "Th",   "ss",
         "a",    "a",    "a",    "a",    "ae",   "aa",   "ae",   "c",          "`\ba", "'\ba", "^\ba", "~\ba", "\"\ba","o\ba", "ae",   ",\bc",
         "e",    "e",    "e",    "e",    "i",    "i",    "i",    "i",          "`\be", "'\be", "^\be", "\"\be","`\bi", "'\bi", "^\bi", "\"\bi",
         "d",    "n",    "o",    "o",    "o",    "o",    "oe",   "/",          "d",    "~\bn", "`\bo", "'\bo", "^\bo", "~\bo", "\"\bo","-:-",
         "oe",   "u",    "u",    "u",    "ue",   "y",    "th",   "y",          "/\bo", "`\bu", "'\bu", "^\bu", "\"\bu","'\by", "th",   "\"\by",
         "A",    "a",    "A",    "a",    "A",    "a",    "C",    "c",          "A",    "a",    "A",    "a",    "A",    "a",    "'\bC", "'\bc",
         "C",    "c",    "C",    "c",    "C",    "c",    "D",    "d",          "^\bC", "^\bc", "C",    "c",    "C",    "c",    "D",    "d",
         "D",    "d",    "E",    "e",    "E",    "e",    "E",    "e",          "/\bD", "/\bd", "E",    "e",    "E",    "e",    "E",    "e",
         "E",    "e",    "E",    "e",    "G",    "g",    "G",    "g",          "E",    "e",    "E",    "e",    "^\bG", "^\bg", "G",    "g",
         "G",    "g",    "G",    "g",    "H",    "h",    "H",    "h",          "G",    "g",    ",\bG", ",\bg", "^\bH", "^\bh", "/\bH", "/\bh",
         "I",    "i",    "I",    "i",    "I",    "i",    "I",    "i",          "~\bI", "~\bi", "I",    "i",    "I",    "i",    "I",    "i",
         "I",    "i",    "IJ",   "ij",   "J",    "j",    "K",    "k",          "I",    "i",    "IJ",   "ij",   "^\bJ", "^\bj", ",\bK", ",\bk",
         "q",    "L",    "l",    "L",    "l",    "L",    "l",    "L",          "q",    "'\bL", "'\bl", ",\bL", ",\bl", "L",    "l",    "L",
         "l",    "L",    "l",    "N",    "n",    "N",    "n",    "N",          "l",    "/\bL", "/\bl", "'\bN", "'\bn", ",\bN", ",\bn", "N",
         "n",    "'n",   "Ng",   "ng",   "O",    "o",    "O",    "o",          "n",    "'n",   "Ng",   "ng",   "O",    "o",    "O",    "o",
         "O",    "o",    "OE",   "oe",   "R",    "r",    "R",    "r",          "O",    "o",    "OE",   "oe",   "'\bR", "'\br", ",\bR", ",\br",
         "R",    "r",    "S",    "s",    "S",    "s",    "S",    "s",          "R",    "r",    "'\bS", "'\bs", "^\bS", "^\bs", ",\bS", ",\bs",
         "S",    "s",    "T",    "t",    "T",    "t",    "T",    "t",          "S",    "s",    ",\bT", ",\bt", "T",    "t",    "/\bT", "/\bt",
         "U",    "u",    "U",    "u",    "U",    "u",    "U",    "u",          "~\bU", "~\bu", "U",    "u",    "U",    "u",    "U",    "u",
         "U",    "u",    "U",    "u",    "W",    "w",    "Y",    "y",          "U",    "u",    "U",    "u",    "^\bW", "^\bw", "^\bY", "^\by",
         "Y",    "Z",    "z",    "Z",    "z",    "Z",    "z",    "s",          "\"\bY","'\bZ", "'\bz", "Z",    "z",    "Z",    "z",    "s",
         "b",    "B",    "B",    "b",    "6",    "6",    "O",    "C",          "b",    "B",    "B",    "b",    "6",    "6",    "O",    "C",
         "c",    "D",    "D",    "D",    "d",    "d",    "3",    "@",          "c",    "D",    "D",    "D",    "d",    "d",    "3",    "@",
         "E",    "F",    "f",    "G",    "G",    "hv",   "I",    "I",          "E",    "F",    ",\bf", "G",    "G",    "hv",   "I",    "/\bI",
         "K",    "k",    "l",    "l",    "W",    "N",    "n",    "O",          "K",    "k",    "/\bl", "l",    "W",    "N",    "n",    "~\bO",
         "O",    "o",    "OI",   "oi",   "P",    "p",    "YR",   "2",          "O",    "o",    "OI",   "oi",   "P",    "p",    "YR",   "2",
         "2",    "SH",   "sh",   "t",    "T",    "t",    "T",    "U",          "2",    "SH",   "sh",   "t",    "T",    "t",    "T",    "U",
         "u",    "Y",    "V",    "Y",    "y",    "Z",    "z",    "ZH",          "u",    "Y",    "V",    "Y",    "y",    "/\bZ", "/\bz", "ZH",
         "ZH",   "zh",   "zh",   "2",    "5",    "5",    "ts",   "w",          "ZH",   "zh",   "zh",   "/\b2", "5",    "5",    "ts",   "w",
         "|",    "||",   "|=",   "!",    "DZ",   "Dz",   "dz",   "LJ",          "|",    "||",   "|=",   "!",    "DZ",   "Dz",   "dz",   "LJ",
         "Lj",   "lj",   "NJ",   "Nj",   "nj",   "A",    "a",    "I",          "Lj",   "lj",   "NJ",   "Nj",   "nj",   "A",    "a",    "I",
         "i",    "O",    "o",    "U",    "u",    "U",    "u",    "U",          "i",    "O",    "o",    "U",    "u",    "U",    "u",    "U",
         "u",    "U",    "u",    "U",    "u",    "@",    "A",    "a",          "u",    "U",    "u",    "U",    "u",    "@",    "A",    "a",
         "A",    "a",    "AE",   "ae",   "G",    "g",    "G",    "g",          "A",    "a",    "AE",   "ae",   "/\bG", "/\bg", "G",    "g",
         "K",    "k",    "O",    "o",    "O",    "o",    "ZH",   "zh",          "K",    "k",    "O",    "o",    "O",    "o",    "ZH",   "zh",
         "j",    "DZ",   "D",    "dz",   "G",    "g",    "HV",   "W",          "j",    "DZ",   "Dz",   "dz",   "'\bG", "'\bg", "HV",   "W",
         "N",    "n",    "A",    "a",    "AE",   "ae",   "O",    "o"};          "`\bN", "`\bn", "A",    "a",    "'\bAE","'\bae","O",    "o"};
   
         if (uc < 0)          assert(uc >= 0);
                 return("<?>");  
         if ((size_t)uc < sizeof(tab)/sizeof(tab[0]))          if ((size_t)uc < sizeof(tab)/sizeof(tab[0]))
                 return(tab[uc]);                  return(tab[uc]);
         return(mchars_uc2str(uc));          return(mchars_uc2str(uc));

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.39

CVSweb