summaryrefslogtreecommitdiffstats
path: root/contrib/groff/src
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2005-10-20 10:47:26 +0000
committerru <ru@FreeBSD.org>2005-10-20 10:47:26 +0000
commita46effd45406e471462ec7bf493d86451cfa6e6a (patch)
tree0cc226b6c08790482f5bf91217129863d419b66c /contrib/groff/src
parentb22adb8e7c253c75fb05127eeeaef2968232b32a (diff)
downloadFreeBSD-src-a46effd45406e471462ec7bf493d86451cfa6e6a.zip
FreeBSD-src-a46effd45406e471462ec7bf493d86451cfa6e6a.tar.gz
This commit was generated by cvs2svn to compensate for changes in r151500,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/groff/src')
-rw-r--r--contrib/groff/src/include/groff-getopt.h68
-rw-r--r--contrib/groff/src/libs/libgroff/progname.cpp1
-rw-r--r--contrib/groff/src/roff/troff/glyphuni.cpp503
-rw-r--r--contrib/groff/src/roff/troff/symbol.cpp154
-rw-r--r--contrib/groff/src/roff/troff/symbol.h80
-rw-r--r--contrib/groff/src/roff/troff/unicode.cpp67
-rw-r--r--contrib/groff/src/roff/troff/unicode.h26
-rw-r--r--contrib/groff/src/roff/troff/uniglyph.cpp503
-rw-r--r--contrib/groff/src/roff/troff/uniuni.cpp1994
-rw-r--r--contrib/groff/src/xditview/ChangeLog520
-rw-r--r--contrib/groff/src/xditview/DESC9
-rw-r--r--contrib/groff/src/xditview/Dvi.c573
-rw-r--r--contrib/groff/src/xditview/Dvi.h46
-rw-r--r--contrib/groff/src/xditview/DviChar.c662
-rw-r--r--contrib/groff/src/xditview/DviChar.h37
-rw-r--r--contrib/groff/src/xditview/DviP.h233
-rw-r--r--contrib/groff/src/xditview/FontMap17
-rw-r--r--contrib/groff/src/xditview/GXditview-ad.h52
-rw-r--r--contrib/groff/src/xditview/GXditview.ad57
-rw-r--r--contrib/groff/src/xditview/INSTALL20
-rw-r--r--contrib/groff/src/xditview/Imakefile.in120
-rw-r--r--contrib/groff/src/xditview/Menu.h46
-rw-r--r--contrib/groff/src/xditview/README14
-rw-r--r--contrib/groff/src/xditview/TODO17
-rw-r--r--contrib/groff/src/xditview/XFontName.c256
-rw-r--r--contrib/groff/src/xditview/XFontName.h45
-rw-r--r--contrib/groff/src/xditview/ad2c62
-rw-r--r--contrib/groff/src/xditview/device.c600
-rw-r--r--contrib/groff/src/xditview/device.h21
-rw-r--r--contrib/groff/src/xditview/draw.c725
-rw-r--r--contrib/groff/src/xditview/font.c471
-rw-r--r--contrib/groff/src/xditview/gray1.bm4
-rw-r--r--contrib/groff/src/xditview/gray2.bm4
-rw-r--r--contrib/groff/src/xditview/gray3.bm4
-rw-r--r--contrib/groff/src/xditview/gray4.bm4
-rw-r--r--contrib/groff/src/xditview/gray5.bm4
-rw-r--r--contrib/groff/src/xditview/gray6.bm4
-rw-r--r--contrib/groff/src/xditview/gray7.bm4
-rw-r--r--contrib/groff/src/xditview/gray8.bm4
-rw-r--r--contrib/groff/src/xditview/gxditview.man249
-rw-r--r--contrib/groff/src/xditview/lex.c103
-rw-r--r--contrib/groff/src/xditview/page.c88
-rw-r--r--contrib/groff/src/xditview/parse.c340
-rw-r--r--contrib/groff/src/xditview/xdit.bm14
-rw-r--r--contrib/groff/src/xditview/xdit_mask.bm14
-rw-r--r--contrib/groff/src/xditview/xditview.c596
-rw-r--r--contrib/groff/src/xditview/xtotroff.c311
47 files changed, 0 insertions, 9746 deletions
diff --git a/contrib/groff/src/include/groff-getopt.h b/contrib/groff/src/include/groff-getopt.h
deleted file mode 100644
index a30e197..0000000
--- a/contrib/groff/src/include/groff-getopt.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// -*- C++ -*-
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
- Written by Werner Lemberg (wl@gnu.org)
-
-This file is part of groff.
-
-groff is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-groff is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with groff; see the file COPYING. If not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-/*
- This file has to be included from within lib.h instead of getopt.h
- to avoid problems with picky C++ compilers.
-*/
-
-#ifndef _GROFF_GETOPT_H
-#define _GROFF_GETOPT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern char *optarg;
-extern int optind;
-extern int opterr;
-extern int optopt;
-
-struct option
-{
- const char *name;
- int has_arg;
- int *flag;
- int val;
-};
-
-#define no_argument 0
-#define required_argument 1
-#define optional_argument 2
-
-extern int getopt(int, // __argc
- char *const *, // __argv
- const char *); // __shortopts
-extern int getopt_long(int, // __argc
- char *const *, // __argv
- const char *, // __shortopts
- const struct option *, // __longopts
- int *); // __longind
-extern int getopt_long_only(int, // __argc
- char *const *, // __argv
- const char *, // __shortopts
- const struct option *, // __longopts
- int *); // __longind
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _GROFF_GETOPT_H */
diff --git a/contrib/groff/src/libs/libgroff/progname.cpp b/contrib/groff/src/libs/libgroff/progname.cpp
deleted file mode 100644
index a70e341..0000000
--- a/contrib/groff/src/libs/libgroff/progname.cpp
+++ /dev/null
@@ -1 +0,0 @@
-const char *program_name = 0;
diff --git a/contrib/groff/src/roff/troff/glyphuni.cpp b/contrib/groff/src/roff/troff/glyphuni.cpp
deleted file mode 100644
index 7e242ce..0000000
--- a/contrib/groff/src/roff/troff/glyphuni.cpp
+++ /dev/null
@@ -1,503 +0,0 @@
-// -*- C++ -*-
-/* Copyright (C) 2002, 2003
- Free Software Foundation, Inc.
- Written by Werner Lemberg <wl@gnu.org>
-
-This file is part of groff.
-
-groff is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-groff is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with groff; see the file COPYING. If not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include "lib.h"
-#include "stringclass.h"
-#include "ptable.h"
-
-#include "unicode.h"
-
-struct glyph_to_unicode {
- char *value;
-};
-
-declare_ptable(glyph_to_unicode)
-implement_ptable(glyph_to_unicode)
-
-PTABLE(glyph_to_unicode) glyph_to_unicode_table;
-
-struct {
- const char *key;
- const char *value;
-} glyph_to_unicode_list[] = {
- { "!", "0021" },
- { "\"", "0022" },
- { "dq", "0022" },
- { "#", "0023" },
- { "sh", "0023" },
- { "$", "0024" },
- { "Do", "0024" },
- { "%", "0025" },
- { "&", "0026" },
- { "aq", "0027" },
- { "(", "0028" },
- { ")", "0029" },
- { "*", "002A" },
- { "+", "002B" },
- { "pl", "002B" },
- { ",", "002C" },
- { ".", "002E" },
- { "/", "002F" },
- { "sl", "002F" },
- { "0", "0030" },
- { "1", "0031" },
- { "2", "0032" },
- { "3", "0033" },
- { "4", "0034" },
- { "5", "0035" },
- { "6", "0036" },
- { "7", "0037" },
- { "8", "0038" },
- { "9", "0039" },
- { ":", "003A" },
- { ";", "003B" },
- { "<", "003C" },
- { "=", "003D" },
- { "eq", "003D" },
- { ">", "003E" },
- { "?", "003F" },
- { "@", "0040" },
- { "at", "0040" },
- { "A", "0041" },
- { "B", "0042" },
- { "C", "0043" },
- { "D", "0044" },
- { "E", "0045" },
- { "F", "0046" },
- { "G", "0047" },
- { "H", "0048" },
- { "I", "0049" },
- { "J", "004A" },
- { "K", "004B" },
- { "L", "004C" },
- { "M", "004D" },
- { "N", "004E" },
- { "O", "004F" },
- { "P", "0050" },
- { "Q", "0051" },
- { "R", "0052" },
- { "S", "0053" },
- { "T", "0054" },
- { "U", "0055" },
- { "V", "0056" },
- { "W", "0057" },
- { "X", "0058" },
- { "Y", "0059" },
- { "Z", "005A" },
-//{ "[", "005B" },
- { "lB", "005B" },
-//{ "\\", "005C" },
- { "rs", "005C" },
-//{ "]", "005D" },
- { "rB", "005D" },
- { "a^", "005E" },
- { "^", "005E" },
- { "ha", "005E" },
- { "_", "005F" },
- { "ru", "005F" },
- { "ul", "005F" },
-//{ "\\`", "0060" },
- { "ga", "0060" },
- { "a", "0061" },
- { "b", "0062" },
- { "c", "0063" },
- { "d", "0064" },
- { "e", "0065" },
- { "f", "0066" },
- { "ff", "0066_0066" },
- { "Fi", "0066_0066_0069" },
- { "Fl", "0066_0066_006C" },
- { "fi", "0066_0069" },
- { "fl", "0066_006C" },
- { "g", "0067" },
- { "h", "0068" },
- { "i", "0069" },
- { "j", "006A" },
- { "k", "006B" },
- { "l", "006C" },
- { "m", "006D" },
- { "n", "006E" },
- { "o", "006F" },
- { "p", "0070" },
- { "q", "0071" },
- { "r", "0072" },
- { "s", "0073" },
- { "t", "0074" },
- { "u", "0075" },
- { "v", "0076" },
- { "w", "0077" },
- { "x", "0078" },
- { "y", "0079" },
- { "z", "007A" },
- { "lC", "007B" },
- { "{", "007B" },
- { "ba", "007C" },
- { "or", "007C" },
- { "|", "007C" },
- { "rC", "007D" },
- { "}", "007D" },
- { "a~", "007E" },
- { "~", "007E" },
- { "ti", "007E" },
- { "r!", "00A1" },
- { "ct", "00A2" },
- { "Po", "00A3" },
- { "Cs", "00A4" },
- { "Ye", "00A5" },
- { "bb", "00A6" },
- { "sc", "00A7" },
- { "ad", "00A8" },
- { "co", "00A9" },
- { "Of", "00AA" },
- { "Fo", "00AB" },
- { "no", "00AC" },
- { "tno", "00AC" },
- { "shc", "00AD" },
- { "rg", "00AE" },
- { "a-", "00AF" },
- { "de", "00B0" },
- { "+-", "00B1" },
- { "t+-", "00B1" },
- { "S2", "00B2" },
- { "S3", "00B3" },
- { "aa", "00B4" },
-//{ "\\'", "00B4" },
- { "mc", "00B5" },
- { "ps", "00B6" },
- { "pc", "00B7" },
- { "ac", "00B8" },
- { "S1", "00B9" },
- { "Om", "00BA" },
- { "Fc", "00BB" },
- { "14", "00BC" },
- { "12", "00BD" },
- { "34", "00BE" },
- { "r?", "00BF" },
- { "`A", "00C0" },
- { "'A", "00C1" },
- { "^A", "00C2" },
- { "~A", "00C3" },
- { ":A", "00C4" },
- { "oA", "00C5" },
- { "AE", "00C6" },
- { ",C", "00C7" },
- { "`E", "00C8" },
- { "'E", "00C9" },
- { "^E", "00CA" },
- { ":E", "00CB" },
- { "`I", "00CC" },
- { "'I", "00CD" },
- { "^I", "00CE" },
- { ":I", "00CF" },
- { "-D", "00D0" },
- { "~N", "00D1" },
- { "`O", "00D2" },
- { "'O", "00D3" },
- { "^O", "00D4" },
- { "~O", "00D5" },
- { ":O", "00D6" },
- { "mu", "00D7" },
- { "tmu", "00D7" },
- { "/O", "00D8" },
- { "`U", "00D9" },
- { "'U", "00DA" },
- { "^U", "00DB" },
- { ":U", "00DC" },
- { "'Y", "00DD" },
- { "TP", "00DE" },
- { "ss", "00DF" },
- { "`a", "00E0" },
- { "'a", "00E1" },
- { "^a", "00E2" },
- { "~a", "00E3" },
- { ":a", "00E4" },
- { "oa", "00E5" },
- { "ae", "00E6" },
- { ",c", "00E7" },
- { "`e", "00E8" },
- { "'e", "00E9" },
- { "^e", "00EA" },
- { ":e", "00EB" },
- { "`i", "00EC" },
- { "'i", "00ED" },
- { "^i", "00EE" },
- { ":i", "00EF" },
- { "Sd", "00F0" },
- { "~n", "00F1" },
- { "`o", "00F2" },
- { "'o", "00F3" },
- { "^o", "00F4" },
- { "~o", "00F5" },
- { ":o", "00F6" },
- { "di", "00F7" },
- { "tdi", "00F7" },
- { "/o", "00F8" },
- { "`u", "00F9" },
- { "'u", "00FA" },
- { "^u", "00FB" },
- { ":u", "00FC" },
- { "'y", "00FD" },
- { "Tp", "00FE" },
- { ":y", "00FF" },
- { "'C", "0106" },
- { "'c", "0107" },
- { ".i", "0131" },
- { "IJ", "0132" },
- { "ij", "0133" },
- { "/L", "0141" },
- { "/l", "0142" },
- { "OE", "0152" },
- { "oe", "0153" },
- { "vS", "0160" },
- { "vs", "0161" },
- { ":Y", "0178" },
- { "vZ", "017D" },
- { "vz", "017E" },
- { "Fn", "0192" },
- { "ah", "02C7" },
- { "ab", "02D8" },
- { "a.", "02D9" },
- { "ao", "02DA" },
- { "ho", "02DB" },
- { "a\"", "02DD" },
- { "*A", "0391" },
- { "*B", "0392" },
- { "*G", "0393" },
- { "*D", "0394" },
- { "*E", "0395" },
- { "*Z", "0396" },
- { "*Y", "0397" },
- { "*H", "0398" },
- { "*I", "0399" },
- { "*K", "039A" },
- { "*L", "039B" },
- { "*M", "039C" },
- { "*N", "039D" },
- { "*C", "039E" },
- { "*O", "039F" },
- { "*P", "03A0" },
- { "*R", "03A1" },
- { "*S", "03A3" },
- { "*T", "03A4" },
- { "*U", "03A5" },
- { "*F", "03A6" },
- { "*X", "03A7" },
- { "*Q", "03A8" },
- { "*W", "03A9" },
- { "*a", "03B1" },
- { "*b", "03B2" },
- { "*g", "03B3" },
- { "*d", "03B4" },
- { "*e", "03B5" },
- { "*z", "03B6" },
- { "*y", "03B7" },
- { "*h", "03B8" },
- { "*i", "03B9" },
- { "*k", "03BA" },
- { "*l", "03BB" },
- { "*m", "03BC" },
- { "*n", "03BD" },
- { "*c", "03BE" },
- { "*o", "03BF" },
- { "*p", "03C0" },
- { "*r", "03C1" },
- { "ts", "03C2" },
- { "*s", "03C3" },
- { "*t", "03C4" },
- { "*u", "03C5" },
- { "*f", "03C6" },
- { "*x", "03C7" },
- { "*q", "03C8" },
- { "*w", "03C9" },
- { "+h", "03D1" },
- { "+f", "03D5" },
- { "+p", "03D6" },
- { "+e", "03F5" },
- { "-", "2010" },
- { "hy", "2010" },
- { "en", "2013" },
- { "em", "2014" },
- { "`", "2018" },
- { "oq", "2018" },
- { "'", "2019" },
- { "cq", "2019" },
- { "bq", "201A" },
- { "lq", "201C" },
- { "rq", "201D" },
- { "Bq", "201E" },
- { "dg", "2020" },
- { "dd", "2021" },
- { "bu", "2022" },
- { "%0", "2030" },
- { "fm", "2032" },
- { "sd", "2033" },
- { "fo", "2039" },
- { "fc", "203A" },
- { "rn", "203E" },
- { "f/", "2044" },
- { "eu", "20AC" },
- { "Eu", "20AC" },
- { "-h", "210F" },
- { "hbar", "210F" },
- { "Im", "2111" },
- { "wp", "2118" },
- { "Re", "211C" },
- { "tm", "2122" },
- { "Ah", "2135" },
- { "18", "215B" },
- { "38", "215C" },
- { "58", "215D" },
- { "78", "215E" },
- { "<-", "2190" },
- { "ua", "2191" },
- { "->", "2192" },
- { "da", "2193" },
- { "<>", "2194" },
- { "va", "2195" },
- { "CR", "21B5" },
- { "lA", "21D0" },
- { "uA", "21D1" },
- { "rA", "21D2" },
- { "dA", "21D3" },
- { "hA", "21D4" },
- { "vA", "21D5" },
- { "fa", "2200" },
- { "pd", "2202" },
- { "te", "2203" },
- { "es", "2205" },
- { "gr", "2207" },
- { "mo", "2208" },
- { "nm", "2209" },
- { "st", "220B" },
- { "product", "220F" },
- { "sum", "2211" },
-//{ "\\-", "2212" },
- { "mi", "2212" },
- { "-+", "2213" },
- { "**", "2217" },
- { "sr", "221A" },
- { "pt", "221D" },
- { "if", "221E" },
- { "/_", "2220" },
- { "AN", "2227" },
- { "OR", "2228" },
- { "ca", "2229" },
- { "cu", "222A" },
- { "is", "222B" },
- { "integral", "222B" },
- { "tf", "2234" },
- { "3d", "2234" },
- { "ap", "223C" },
- { "|=", "2243" },
- { "=~", "2245" },
- { "~~", "2248" },
- { "~=", "2248" },
- { "!=", "2260" },
- { "==", "2261" },
- { "ne", "2262" },
- { "<=", "2264" },
- { ">=", "2265" },
- { ">>", "226A" },
- { "<<", "226B" },
- { "sb", "2282" },
- { "sp", "2283" },
- { "nb", "2284" },
- { "nc", "2285" },
- { "ib", "2286" },
- { "ip", "2287" },
- { "c+", "2295" },
- { "c*", "2297" },
- { "pp", "22A5" },
- { "md", "22C5" },
- { "lc", "2308" },
- { "rc", "2309" },
- { "lf", "230A" },
- { "rf", "230B" },
- { "parenlefttp", "239B" },
- { "parenleftex", "239C" },
- { "parenleftbt", "239D" },
- { "parenrighttp", "239E" },
- { "parenrightex", "239F" },
- { "parenrightbt", "23A0" },
- { "bracketlefttp", "23A1" },
- { "bracketleftex", "23A2" },
- { "bracketleftbt", "23A3" },
- { "bracketrighttp", "23A4" },
- { "bracketrightex", "23A5" },
- { "bracketrightbt", "23A6" },
- { "lt", "23A7" },
- { "bracelefttp", "23A7" },
- { "lk", "23A8" },
- { "braceleftmid", "23A8" },
- { "lb", "23A9" },
- { "braceleftbt", "23A9" },
- { "bv", "23AA" },
- { "braceex", "23AA" },
- { "braceleftex", "23AA" },
- { "bracerightex", "23AA" },
- { "rt", "23AB" },
- { "bracerighttp", "23AB" },
- { "rk", "23AC" },
- { "bracerightmid", "23AC" },
- { "rb", "23AD" },
- { "bracerightbt", "23AD" },
- { "an", "23AF" },
- { "br", "2502" },
- { "rk", "251D" },
- { "lk", "2525" },
- { "lt", "256D" },
- { "rt", "256E" },
- { "rb", "256F" },
- { "lb", "2570" },
- { "sq", "25A1" },
- { "lz", "25CA" },
- { "ci", "25CB" },
- { "lh", "261C" },
- { "rh", "261E" },
- { "SP", "2660" },
- { "CL", "2663" },
- { "HE", "2665" },
- { "DI", "2666" },
- { "OK", "2713" },
- { "la", "27E8" },
- { "ra", "27E9" },
-};
-
-// global constructor
-static struct glyph_to_unicode_init {
- glyph_to_unicode_init();
-} _glyph_to_unicode_init;
-
-glyph_to_unicode_init::glyph_to_unicode_init() {
- for (unsigned int i = 0;
- i < sizeof(glyph_to_unicode_list)/sizeof(glyph_to_unicode_list[0]);
- i++) {
- glyph_to_unicode *gtu = new glyph_to_unicode[1];
- gtu->value = (char *)glyph_to_unicode_list[i].value;
- glyph_to_unicode_table.define(glyph_to_unicode_list[i].key, gtu);
- }
-}
-
-const char *glyph_name_to_unicode(const char *s)
-{
- glyph_to_unicode *result = glyph_to_unicode_table.lookup(s);
- return result ? result->value : 0;
-}
diff --git a/contrib/groff/src/roff/troff/symbol.cpp b/contrib/groff/src/roff/troff/symbol.cpp
deleted file mode 100644
index 09f4c98..0000000
--- a/contrib/groff/src/roff/troff/symbol.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-// -*- C++ -*-
-/* Copyright (C) 1989, 1990, 1991, 1992, 2002 Free Software Foundation, Inc.
- Written by James Clark (jjc@jclark.com)
-
-This file is part of groff.
-
-groff is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-groff is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with groff; see the file COPYING. If not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-#include "troff.h"
-#include "symbol.h"
-
-const char **symbol::table = 0;
-int symbol::table_used = 0;
-int symbol::table_size = 0;
-char *symbol::block = 0;
-int symbol::block_size = 0;
-
-const symbol NULL_SYMBOL;
-const symbol EMPTY_SYMBOL("");
-
-#ifdef BLOCK_SIZE
-#undef BLOCK_SIZE
-#endif
-
-const int BLOCK_SIZE = 1024;
-// the table will increase in size as necessary
-// the size will be chosen from the following array
-// add some more if you want
-static const unsigned int table_sizes[] = {
- 101, 503, 1009, 2003, 3001, 4001, 5003, 10007, 20011, 40009, 80021,
- 160001, 500009, 1000003, 1500007, 2000003, 0
-};
-const double FULL_MAX = 0.3; // don't let the table get more than this full
-
-static unsigned int hash_string(const char *p)
-{
- // compute a hash code; this assumes 32-bit unsigned ints
- // see p436 of Compilers by Aho, Sethi & Ullman
- // give special treatment to two-character names
- unsigned int hc = 0, g;
- if (*p != 0) {
- hc = *p++;
- if (*p != 0) {
- hc <<= 7;
- hc += *p++;
- for (; *p != 0; p++) {
- hc <<= 4;
- hc += *p;
- if ((g = (hc & 0xf0000000)) == 0) {
- hc ^= g >> 24;
- hc ^= g;
- }
- }
- }
- }
- return hc;
-}
-
-// Tell compiler that a variable is intentionally unused.
-inline void unused(void *) { }
-
-symbol::symbol(const char *p, int how)
-{
- if (p == 0) {
- s = 0;
- return;
- }
- if (*p == 0) {
- s = "";
- return;
- }
- if (table == 0) {
- table_size = table_sizes[0];
- table = (const char **)new char*[table_size];
- for (int i = 0; i < table_size; i++)
- table[i] = 0;
- table_used = 0;
- }
- unsigned int hc = hash_string(p);
- const char **pp;
- for (pp = table + hc % table_size;
- *pp != 0;
- (pp == table ? pp = table + table_size - 1 : --pp))
- if (strcmp(p, *pp) == 0) {
- s = *pp;
- return;
- }
- if (how == MUST_ALREADY_EXIST) {
- s = 0;
- return;
- }
- if (table_used >= table_size - 1 || table_used >= table_size*FULL_MAX) {
- const char **old_table = table;
- unsigned int old_table_size = table_size;
- int i;
- for (i = 1; table_sizes[i] <= old_table_size; i++)
- if (table_sizes[i] == 0)
- fatal("too many symbols");
- table_size = table_sizes[i];
- table_used = 0;
- table = (const char **)new char*[table_size];
- for (i = 0; i < table_size; i++)
- table[i] = 0;
- for (pp = old_table + old_table_size - 1;
- pp >= old_table;
- --pp) {
- symbol temp(*pp, 1); /* insert it into the new table */
- unused(&temp);
- }
- a_delete old_table;
- for (pp = table + hc % table_size;
- *pp != 0;
- (pp == table ? pp = table + table_size - 1 : --pp))
- ;
- }
- ++table_used;
- if (how == DONT_STORE) {
- s = *pp = p;
- }
- else {
- int len = strlen(p)+1;
- if (block == 0 || block_size < len) {
- block_size = len > BLOCK_SIZE ? len : BLOCK_SIZE;
- block = new char [block_size];
- }
- (void)strcpy(block, p);
- s = *pp = block;
- block += len;
- block_size -= len;
- }
-}
-
-symbol concat(symbol s1, symbol s2)
-{
- char *buf = new char [strlen(s1.contents()) + strlen(s2.contents()) + 1];
- strcpy(buf, s1.contents());
- strcat(buf, s2.contents());
- symbol res(buf);
- a_delete buf;
- return res;
-}
diff --git a/contrib/groff/src/roff/troff/symbol.h b/contrib/groff/src/roff/troff/symbol.h
deleted file mode 100644
index 5b7c9b1..0000000
--- a/contrib/groff/src/roff/troff/symbol.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// -*- C++ -*-
-/* Copyright (C) 1989, 1990, 1991, 1992, 2002 Free Software Foundation, Inc.
- Written by James Clark (jjc@jclark.com)
-
-This file is part of groff.
-
-groff is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-groff is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with groff; see the file COPYING. If not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define DONT_STORE 1
-#define MUST_ALREADY_EXIST 2
-
-class symbol {
- static const char **table;
- static int table_used;
- static int table_size;
- static char *block;
- static int block_size;
- const char *s;
-public:
- symbol(const char *p, int how = 0);
- symbol();
- unsigned long hash() const;
- int operator ==(symbol) const;
- int operator !=(symbol) const;
- const char *contents() const;
- int is_null() const;
- int is_empty() const;
-};
-
-
-extern const symbol NULL_SYMBOL;
-extern const symbol EMPTY_SYMBOL;
-
-inline symbol::symbol() : s(0)
-{
-}
-
-inline int symbol::operator==(symbol p) const
-{
- return s == p.s;
-}
-
-inline int symbol::operator!=(symbol p) const
-{
- return s != p.s;
-}
-
-inline unsigned long symbol::hash() const
-{
- return (unsigned long)s;
-}
-
-inline const char *symbol::contents() const
-{
- return s;
-}
-
-inline int symbol::is_null() const
-{
- return s == 0;
-}
-
-inline int symbol::is_empty() const
-{
- return s != 0 && *s == 0;
-}
-
-symbol concat(symbol, symbol);
diff --git a/contrib/groff/src/roff/troff/unicode.cpp b/contrib/groff/src/roff/troff/unicode.cpp
deleted file mode 100644
index 2117463..0000000
--- a/contrib/groff/src/roff/troff/unicode.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// -*- C++ -*-
-/* Copyright (C) 2002
- Free Software Foundation, Inc.
- Written by Werner Lemberg <wl@gnu.org>
-
-This file is part of groff.
-
-groff is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-groff is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with groff; see the file COPYING. If not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include "lib.h"
-#include "cset.h"
-#include "stringclass.h"
-
-#include "unicode.h"
-
-const char *check_unicode_name(const char *u)
-{
- if (*u != 'u')
- return 0;
- const char *p = ++u;
- for (;;) {
- int val = 0;
- const char *start = p;
- for (;;) {
- // only uppercase hex digits allowed
- if (!csxdigit(*p))
- return 0;
- if (csdigit(*p))
- val = val*0x10 + (*p-'0');
- else if (csupper(*p))
- val = val*0x10 + (*p-'A'+10);
- else
- return 0;
- // biggest Unicode value is U+10FFFF
- if (val > 0x10FFFF)
- return 0;
- p++;
- if (*p == '\0' || *p == '_')
- break;
- }
- // surrogates not allowed
- if ((val >= 0xD800 && val <= 0xDBFF) || (val >= 0xDC00 && val <= 0xDFFF))
- return 0;
- if (val > 0xFFFF) {
- if (*start == '0') // no leading zeros allowed if > 0xFFFF
- return 0;
- }
- else if (p - start != 4) // otherwise, check for exactly 4 hex digits
- return 0;
- if (*p == '\0')
- break;
- p++;
- }
- return u;
-}
diff --git a/contrib/groff/src/roff/troff/unicode.h b/contrib/groff/src/roff/troff/unicode.h
deleted file mode 100644
index 846a70e..0000000
--- a/contrib/groff/src/roff/troff/unicode.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// -*- C++ -*-
-/* Copyright (C) 2002
- Free Software Foundation, Inc.
- Written by Werner Lemberg <wl@gnu.org>
-
-This file is part of groff.
-
-groff is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-groff is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with groff; see the file COPYING. If not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-extern const char *glyph_name_to_unicode(const char *);
-extern const char *unicode_to_glyph_name(const char *);
-extern const char *decompose_unicode(const char *);
-
-extern const char *check_unicode_name(const char *);
diff --git a/contrib/groff/src/roff/troff/uniglyph.cpp b/contrib/groff/src/roff/troff/uniglyph.cpp
deleted file mode 100644
index 3428605..0000000
--- a/contrib/groff/src/roff/troff/uniglyph.cpp
+++ /dev/null
@@ -1,503 +0,0 @@
-// -*- C++ -*-
-/* Copyright (C) 2002, 2003
- Free Software Foundation, Inc.
- Written by Werner Lemberg <wl@gnu.org>
-
-This file is part of groff.
-
-groff is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-groff is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with groff; see the file COPYING. If not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include "lib.h"
-#include "stringclass.h"
-#include "ptable.h"
-
-#include "unicode.h"
-
-struct unicode_to_glyph {
- char *value;
-};
-
-declare_ptable(unicode_to_glyph)
-implement_ptable(unicode_to_glyph)
-
-PTABLE(unicode_to_glyph) unicode_to_glyph_table;
-
-struct {
- const char *key;
- const char *value;
-} unicode_to_glyph_list[] = {
- { "0021", "!" },
-//{ "0022", "\"" },
- { "0022", "dq" },
-//{ "0023", "#" },
- { "0023", "sh" },
-//{ "0024", "$" },
- { "0024", "Do" },
- { "0025", "%" },
- { "0026", "&" },
- { "0027", "aq" },
- { "0028", "(" },
- { "0029", ")" },
- { "002A", "*" },
-//{ "002B", "+" },
- { "002B", "pl" },
- { "002C", "," },
- { "002E", "." },
-//{ "002F", "/" },
- { "002F", "sl" },
- { "0030", "0" },
- { "0031", "1" },
- { "0032", "2" },
- { "0033", "3" },
- { "0034", "4" },
- { "0035", "5" },
- { "0036", "6" },
- { "0037", "7" },
- { "0038", "8" },
- { "0039", "9" },
- { "003A", ":" },
- { "003B", ";" },
- { "003C", "<" },
-//{ "003D", "=" },
- { "003D", "eq" },
- { "003D_0338", "!=" },
- { "003E", ">" },
- { "003F", "?" },
-//{ "0040", "@" },
- { "0040", "at" },
- { "0041", "A" },
- { "0041_0300", "`A" },
- { "0041_0301", "'A" },
- { "0041_0302", "^A" },
- { "0041_0303", "~A" },
- { "0041_0308", ":A" },
- { "0041_030A", "oA" },
- { "0042", "B" },
- { "0043", "C" },
- { "0043_0301", "'C" },
- { "0043_0327", ",C" },
- { "0044", "D" },
- { "0045", "E" },
- { "0045_0300", "`E" },
- { "0045_0301", "'E" },
- { "0045_0302", "^E" },
- { "0045_0308", ":E" },
- { "0046", "F" },
- { "0047", "G" },
- { "0048", "H" },
- { "0049", "I" },
- { "0049_0300", "`I" },
- { "0049_0301", "'I" },
- { "0049_0302", "^I" },
- { "0049_0308", ":I" },
- { "004A", "J" },
- { "004B", "K" },
- { "004C", "L" },
- { "004D", "M" },
- { "004E", "N" },
- { "004E_0303", "~N" },
- { "004F", "O" },
- { "004F_0300", "`O" },
- { "004F_0301", "'O" },
- { "004F_0302", "^O" },
- { "004F_0303", "~O" },
- { "004F_0308", ":O" },
- { "0050", "P" },
- { "0051", "Q" },
- { "0052", "R" },
- { "0053", "S" },
- { "0053_030C", "vS" },
- { "0054", "T" },
- { "0055", "U" },
- { "0055_0300", "`U" },
- { "0055_0301", "'U" },
- { "0055_0302", "^U" },
- { "0055_0308", ":U" },
- { "0056", "V" },
- { "0057", "W" },
- { "0058", "X" },
- { "0059", "Y" },
- { "0059_0301", "'Y" },
- { "0059_0308", ":Y" },
- { "005A", "Z" },
- { "005A_030C", "vZ" },
- { "005B", "lB" },
-//{ "005B", "[" },
- { "005C", "rs" },
-//{ "005C", "\\" },
- { "005D", "rB" },
-//{ "005D", "]" },
-//{ "005E", "^" },
-//{ "005E", "a^" },
- { "005E", "ha" },
-//{ "005F", "_" },
-//{ "005F", "ru" },
- { "005F", "ul" },
- { "0060", "ga" },
-//{ "0060", "\\`" },
- { "0061", "a" },
- { "0061_0300", "`a" },
- { "0061_0301", "'a" },
- { "0061_0302", "^a" },
- { "0061_0303", "~a" },
- { "0061_0308", ":a" },
- { "0061_030A", "oa" },
- { "0062", "b" },
- { "0063", "c" },
- { "0063_0301", "'c" },
- { "0063_0327", ",c" },
- { "0064", "d" },
- { "0065", "e" },
- { "0065_0300", "`e" },
- { "0065_0301", "'e" },
- { "0065_0302", "^e" },
- { "0065_0308", ":e" },
- { "0066", "f" },
- { "0066_0066", "ff" },
- { "0066_0066_0069", "Fi" },
- { "0066_0066_006C", "Fl" },
- { "0066_0069", "fi" },
- { "0066_006C", "fl" },
- { "0067", "g" },
- { "0068", "h" },
- { "0069", "i" },
- { "0069_0300", "`i" },
- { "0069_0301", "'i" },
- { "0069_0302", "^i" },
- { "0069_0308", ":i" },
- { "006A", "j" },
- { "006B", "k" },
- { "006C", "l" },
- { "006D", "m" },
- { "006E", "n" },
- { "006E_0303", "~n" },
- { "006F", "o" },
- { "006F_0300", "`o" },
- { "006F_0301", "'o" },
- { "006F_0302", "^o" },
- { "006F_0303", "~o" },
- { "006F_0308", ":o" },
- { "0070", "p" },
- { "0071", "q" },
- { "0072", "r" },
- { "0073", "s" },
- { "0073_030C", "vs" },
- { "0074", "t" },
- { "0075", "u" },
- { "0075_0300", "`u" },
- { "0075_0301", "'u" },
- { "0075_0302", "^u" },
- { "0075_0308", ":u" },
- { "0076", "v" },
- { "0077", "w" },
- { "0078", "x" },
- { "0079", "y" },
- { "0079_0301", "'y" },
- { "0079_0308", ":y" },
- { "007A", "z" },
- { "007A_030C", "vz" },
- { "007B", "lC" },
-//{ "007B", "{" },
- { "007C", "ba" },
-//{ "007C", "or" },
-//{ "007C", "|" },
- { "007D", "rC" },
-//{ "007D", "}" },
-//{ "007E", "a~" },
- { "007E", "ti" },
-//{ "007E", "~" },
- { "00A1", "r!" },
- { "00A2", "ct" },
- { "00A3", "Po" },
- { "00A4", "Cs" },
- { "00A5", "Ye" },
- { "00A6", "bb" },
- { "00A7", "sc" },
- { "00A8", "ad" },
- { "00A9", "co" },
- { "00AA", "Of" },
- { "00AB", "Fo" },
- { "00AC", "no" },
-//{ "00AC", "tno" },
- { "00AD", "shc" },
- { "00AE", "rg" },
- { "00AF", "a-" },
- { "00B0", "de" },
- { "00B1", "+-" },
-//{ "00B1", "t+-" },
- { "00B2", "S2" },
- { "00B3", "S3" },
- { "00B4", "aa" },
-//{ "00B4", "\\'" },
- { "00B5", "mc" },
- { "00B6", "ps" },
- { "00B7", "pc" },
- { "00B8", "ac" },
- { "00B9", "S1" },
- { "00BA", "Om" },
- { "00BB", "Fc" },
- { "00BC", "14" },
- { "00BD", "12" },
- { "00BE", "34" },
- { "00BF", "r?" },
- { "00C6", "AE" },
- { "00D0", "-D" },
- { "00D7", "mu" },
-//{ "00D7", "tmu" },
- { "00D8", "/O" },
- { "00DE", "TP" },
- { "00DF", "ss" },
- { "00E6", "ae" },
- { "00F0", "Sd" },
- { "00F7", "di" },
-//{ "00F7", "tdi" },
- { "00F8", "/o" },
- { "00FE", "Tp" },
- { "0131", ".i" },
- { "0132", "IJ" },
- { "0133", "ij" },
- { "0141", "/L" },
- { "0142", "/l" },
- { "0152", "OE" },
- { "0153", "oe" },
- { "0192", "Fn" },
- { "02C7", "ah" },
- { "02D8", "ab" },
- { "02D9", "a." },
- { "02DA", "ao" },
- { "02DB", "ho" },
- { "02DD", "a\"" },
- { "0391", "*A" },
- { "0392", "*B" },
- { "0393", "*G" },
- { "0394", "*D" },
- { "0395", "*E" },
- { "0396", "*Z" },
- { "0397", "*Y" },
- { "0398", "*H" },
- { "0399", "*I" },
- { "039A", "*K" },
- { "039B", "*L" },
- { "039C", "*M" },
- { "039D", "*N" },
- { "039E", "*C" },
- { "039F", "*O" },
- { "03A0", "*P" },
- { "03A1", "*R" },
- { "03A3", "*S" },
- { "03A4", "*T" },
- { "03A5", "*U" },
- { "03A6", "*F" },
- { "03A7", "*X" },
- { "03A8", "*Q" },
- { "03A9", "*W" },
- { "03B1", "*a" },
- { "03B2", "*b" },
- { "03B3", "*g" },
- { "03B4", "*d" },
- { "03B5", "*e" },
- { "03B6", "*z" },
- { "03B7", "*y" },
- { "03B8", "*h" },
- { "03B9", "*i" },
- { "03BA", "*k" },
- { "03BB", "*l" },
- { "03BC", "*m" },
- { "03BD", "*n" },
- { "03BE", "*c" },
- { "03BF", "*o" },
- { "03C0", "*p" },
- { "03C1", "*r" },
- { "03C2", "ts" },
- { "03C3", "*s" },
- { "03C4", "*t" },
- { "03C5", "*u" },
- { "03C6", "*f" },
- { "03C7", "*x" },
- { "03C8", "*q" },
- { "03C9", "*w" },
- { "03D1", "+h" },
- { "03D5", "+f" },
- { "03D6", "+p" },
- { "03F5", "+e" },
-//{ "2010", "-" },
- { "2010", "hy" },
- { "2013", "en" },
- { "2014", "em" },
-//{ "2018", "`" },
- { "2018", "oq" },
-//{ "2019", "'" },
- { "2019", "cq" },
- { "201A", "bq" },
- { "201C", "lq" },
- { "201D", "rq" },
- { "201E", "Bq" },
- { "2020", "dg" },
- { "2021", "dd" },
- { "2022", "bu" },
- { "2030", "%0" },
- { "2032", "fm" },
- { "2033", "sd" },
- { "2039", "fo" },
- { "203A", "fc" },
- { "203E", "rn" },
- { "2044", "f/" },
- { "20AC", "Eu" },
-//{ "20AC", "eu" },
- { "210F", "-h" },
-//{ "210F", "hbar" },
- { "2111", "Im" },
- { "2118", "wp" },
- { "211C", "Re" },
- { "2122", "tm" },
- { "2135", "Ah" },
- { "215B", "18" },
- { "215C", "38" },
- { "215D", "58" },
- { "215E", "78" },
- { "2190", "<-" },
- { "2191", "ua" },
- { "2192", "->" },
- { "2193", "da" },
- { "2194", "<>" },
- { "2195", "va" },
- { "21B5", "CR" },
- { "21D0", "lA" },
- { "21D1", "uA" },
- { "21D2", "rA" },
- { "21D3", "dA" },
- { "21D4", "hA" },
- { "21D5", "vA" },
- { "2200", "fa" },
- { "2202", "pd" },
- { "2203", "te" },
- { "2205", "es" },
- { "2207", "gr" },
- { "2208", "mo" },
- { "2208_0338", "nm" },
- { "220B", "st" },
- { "220F", "product" },
- { "2211", "sum" },
- { "2212", "mi" },
-//{ "2212", "\\-" },
- { "2213", "-+" },
- { "2217", "**" },
- { "221A", "sr" },
- { "221D", "pt" },
- { "221E", "if" },
- { "2220", "/_" },
- { "2227", "AN" },
- { "2228", "OR" },
- { "2229", "ca" },
- { "222A", "cu" },
- { "222B", "is" },
-//{ "222B", "integral" },
-//{ "2234", "3d" },
- { "2234", "tf" },
- { "223C", "ap" },
- { "2243", "|=" },
- { "2245", "=~" },
-//{ "2248", "~=" },
- { "2248", "~~" },
- { "2261", "==" },
- { "2261_0338", "ne" },
- { "2264", "<=" },
- { "2265", ">=" },
- { "226A", ">>" },
- { "226B", "<<" },
- { "2282", "sb" },
- { "2282_0338", "nb" },
- { "2283", "sp" },
- { "2283_0338", "nc" },
- { "2286", "ib" },
- { "2287", "ip" },
- { "2295", "c+" },
- { "2297", "c*" },
- { "22A5", "pp" },
- { "22C5", "md" },
- { "2308", "lc" },
- { "2309", "rc" },
- { "230A", "lf" },
- { "230B", "rf" },
- { "239B", "parenlefttp" },
- { "239C", "parenleftex" },
- { "239D", "parenleftbt" },
- { "239E", "parenrighttp" },
- { "239F", "parenrightex" },
- { "23A0", "parenrightbt" },
-//{ "23A1", "bracketlefttp" },
- { "23A2", "bracketleftex" },
-//{ "23A3", "bracketleftbt" },
-//{ "23A4", "bracketrighttp" },
- { "23A5", "bracketrightex" },
-//{ "23A6", "bracketrightbt" },
- { "23A7", "lt" },
-//{ "23A7", "bracelefttp" },
- { "23A8", "lk" },
-//{ "23A8", "braceleftmid" },
- { "23A9", "lb" },
-//{ "23A9", "braceleftbt" },
- { "23AA", "bv" },
-//{ "23AA", "braceex" },
-//{ "23AA", "braceleftex" },
-//{ "23AA", "bracerightex" },
- { "23AB", "rt" },
-//{ "23AB", "bracerighttp" },
- { "23AC", "rk" },
-//{ "23AC", "bracerightmid" },
- { "23AD", "rb" },
-//{ "23AD", "bracerightbt" },
- { "23AF", "an" },
- { "2502", "br" },
- { "251D", "rk" },
- { "2525", "lk" },
- { "256D", "lt" },
- { "256E", "rt" },
- { "256F", "rb" },
- { "2570", "lb" },
- { "25A1", "sq" },
- { "25CA", "lz" },
- { "25CB", "ci" },
- { "261C", "lh" },
- { "261E", "rh" },
- { "2660", "SP" },
- { "2663", "CL" },
- { "2665", "HE" },
- { "2666", "DI" },
- { "2713", "OK" },
- { "27E8", "la" },
- { "27E9", "ra" },
-};
-
-// global constructor
-static struct unicode_to_glyph_init {
- unicode_to_glyph_init();
-} _unicode_to_glyph_init;
-
-unicode_to_glyph_init::unicode_to_glyph_init() {
- for (unsigned int i = 0;
- i < sizeof(unicode_to_glyph_list)/sizeof(unicode_to_glyph_list[0]);
- i++) {
- unicode_to_glyph *utg = new unicode_to_glyph[1];
- utg->value = (char *)unicode_to_glyph_list[i].value;
- unicode_to_glyph_table.define(unicode_to_glyph_list[i].key, utg);
- }
-}
-
-const char *unicode_to_glyph_name(const char *s)
-{
- unicode_to_glyph *result = unicode_to_glyph_table.lookup(s);
- return result ? result->value : 0;
-}
diff --git a/contrib/groff/src/roff/troff/uniuni.cpp b/contrib/groff/src/roff/troff/uniuni.cpp
deleted file mode 100644
index 3f4baa4..0000000
--- a/contrib/groff/src/roff/troff/uniuni.cpp
+++ /dev/null
@@ -1,1994 +0,0 @@
-// -*- C++ -*-
-/* Copyright (C) 2002, 2003
- Free Software Foundation, Inc.
- Written by Werner Lemberg <wl@gnu.org>
-
-This file is part of groff.
-
-groff is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-groff is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with groff; see the file COPYING. If not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-// This code has been algorithmically derived from the file
-// UnicodeData-3.2.0.txt, available from unicode.org.
-
-#include "lib.h"
-#include "stringclass.h"
-#include "ptable.h"
-
-#include "unicode.h"
-
-struct unicode_decompose {
- char *value;
-};
-
-declare_ptable(unicode_decompose)
-implement_ptable(unicode_decompose)
-
-PTABLE(unicode_decompose) unicode_decompose_table;
-
-// the first digit in the composite string gives the number of composites
-
-struct {
- const char *key;
- const char *value;
-} unicode_decompose_list[] = {
- { "00C0", "20041_0300" },
- { "00C1", "20041_0301" },
- { "00C2", "20041_0302" },
- { "00C3", "20041_0303" },
- { "00C4", "20041_0308" },
- { "00C5", "20041_030A" },
- { "00C7", "20043_0327" },
- { "00C8", "20045_0300" },
- { "00C9", "20045_0301" },
- { "00CA", "20045_0302" },
- { "00CB", "20045_0308" },
- { "00CC", "20049_0300" },
- { "00CD", "20049_0301" },
- { "00CE", "20049_0302" },
- { "00CF", "20049_0308" },
- { "00D1", "2004E_0303" },
- { "00D2", "2004F_0300" },
- { "00D3", "2004F_0301" },
- { "00D4", "2004F_0302" },
- { "00D5", "2004F_0303" },
- { "00D6", "2004F_0308" },
- { "00D9", "20055_0300" },
- { "00DA", "20055_0301" },
- { "00DB", "20055_0302" },
- { "00DC", "20055_0308" },
- { "00DD", "20059_0301" },
- { "00E0", "20061_0300" },
- { "00E1", "20061_0301" },
- { "00E2", "20061_0302" },
- { "00E3", "20061_0303" },
- { "00E4", "20061_0308" },
- { "00E5", "20061_030A" },
- { "00E7", "20063_0327" },
- { "00E8", "20065_0300" },
- { "00E9", "20065_0301" },
- { "00EA", "20065_0302" },
- { "00EB", "20065_0308" },
- { "00EC", "20069_0300" },
- { "00ED", "20069_0301" },
- { "00EE", "20069_0302" },
- { "00EF", "20069_0308" },
- { "00F1", "2006E_0303" },
- { "00F2", "2006F_0300" },
- { "00F3", "2006F_0301" },
- { "00F4", "2006F_0302" },
- { "00F5", "2006F_0303" },
- { "00F6", "2006F_0308" },
- { "00F9", "20075_0300" },
- { "00FA", "20075_0301" },
- { "00FB", "20075_0302" },
- { "00FC", "20075_0308" },
- { "00FD", "20079_0301" },
- { "00FF", "20079_0308" },
- { "0100", "20041_0304" },
- { "0101", "20061_0304" },
- { "0102", "20041_0306" },
- { "0103", "20061_0306" },
- { "0104", "20041_0328" },
- { "0105", "20061_0328" },
- { "0106", "20043_0301" },
- { "0107", "20063_0301" },
- { "0108", "20043_0302" },
- { "0109", "20063_0302" },
- { "010A", "20043_0307" },
- { "010B", "20063_0307" },
- { "010C", "20043_030C" },
- { "010D", "20063_030C" },
- { "010E", "20044_030C" },
- { "010F", "20064_030C" },
- { "0112", "20045_0304" },
- { "0113", "20065_0304" },
- { "0114", "20045_0306" },
- { "0115", "20065_0306" },
- { "0116", "20045_0307" },
- { "0117", "20065_0307" },
- { "0118", "20045_0328" },
- { "0119", "20065_0328" },
- { "011A", "20045_030C" },
- { "011B", "20065_030C" },
- { "011C", "20047_0302" },
- { "011D", "20067_0302" },
- { "011E", "20047_0306" },
- { "011F", "20067_0306" },
- { "0120", "20047_0307" },
- { "0121", "20067_0307" },
- { "0122", "20047_0327" },
- { "0123", "20067_0327" },
- { "0124", "20048_0302" },
- { "0125", "20068_0302" },
- { "0128", "20049_0303" },
- { "0129", "20069_0303" },
- { "012A", "20049_0304" },
- { "012B", "20069_0304" },
- { "012C", "20049_0306" },
- { "012D", "20069_0306" },
- { "012E", "20049_0328" },
- { "012F", "20069_0328" },
- { "0130", "20049_0307" },
- { "0134", "2004A_0302" },
- { "0135", "2006A_0302" },
- { "0136", "2004B_0327" },
- { "0137", "2006B_0327" },
- { "0139", "2004C_0301" },
- { "013A", "2006C_0301" },
- { "013B", "2004C_0327" },
- { "013C", "2006C_0327" },
- { "013D", "2004C_030C" },
- { "013E", "2006C_030C" },
- { "0143", "2004E_0301" },
- { "0144", "2006E_0301" },
- { "0145", "2004E_0327" },
- { "0146", "2006E_0327" },
- { "0147", "2004E_030C" },
- { "0148", "2006E_030C" },
- { "014C", "2004F_0304" },
- { "014D", "2006F_0304" },
- { "014E", "2004F_0306" },
- { "014F", "2006F_0306" },
- { "0150", "2004F_030B" },
- { "0151", "2006F_030B" },
- { "0154", "20052_0301" },
- { "0155", "20072_0301" },
- { "0156", "20052_0327" },
- { "0157", "20072_0327" },
- { "0158", "20052_030C" },
- { "0159", "20072_030C" },
- { "015A", "20053_0301" },
- { "015B", "20073_0301" },
- { "015C", "20053_0302" },
- { "015D", "20073_0302" },
- { "015E", "20053_0327" },
- { "015F", "20073_0327" },
- { "0160", "20053_030C" },
- { "0161", "20073_030C" },
- { "0162", "20054_0327" },
- { "0163", "20074_0327" },
- { "0164", "20054_030C" },
- { "0165", "20074_030C" },
- { "0168", "20055_0303" },
- { "0169", "20075_0303" },
- { "016A", "20055_0304" },
- { "016B", "20075_0304" },
- { "016C", "20055_0306" },
- { "016D", "20075_0306" },
- { "016E", "20055_030A" },
- { "016F", "20075_030A" },
- { "0170", "20055_030B" },
- { "0171", "20075_030B" },
- { "0172", "20055_0328" },
- { "0173", "20075_0328" },
- { "0174", "20057_0302" },
- { "0175", "20077_0302" },
- { "0176", "20059_0302" },
- { "0177", "20079_0302" },
- { "0178", "20059_0308" },
- { "0179", "2005A_0301" },
- { "017A", "2007A_0301" },
- { "017B", "2005A_0307" },
- { "017C", "2007A_0307" },
- { "017D", "2005A_030C" },
- { "017E", "2007A_030C" },
- { "01A0", "2004F_031B" },
- { "01A1", "2006F_031B" },
- { "01AF", "20055_031B" },
- { "01B0", "20075_031B" },
- { "01CD", "20041_030C" },
- { "01CE", "20061_030C" },
- { "01CF", "20049_030C" },
- { "01D0", "20069_030C" },
- { "01D1", "2004F_030C" },
- { "01D2", "2006F_030C" },
- { "01D3", "20055_030C" },
- { "01D4", "20075_030C" },
- { "01D5", "30055_0308_0304" },
- { "01D6", "30075_0308_0304" },
- { "01D7", "30055_0308_0301" },
- { "01D8", "30075_0308_0301" },
- { "01D9", "30055_0308_030C" },
- { "01DA", "30075_0308_030C" },
- { "01DB", "30055_0308_0300" },
- { "01DC", "30075_0308_0300" },
- { "01DE", "30041_0308_0304" },
- { "01DF", "30061_0308_0304" },
- { "01E0", "30041_0307_0304" },
- { "01E1", "30061_0307_0304" },
- { "01E2", "200C6_0304" },
- { "01E3", "200E6_0304" },
- { "01E6", "20047_030C" },
- { "01E7", "20067_030C" },
- { "01E8", "2004B_030C" },
- { "01E9", "2006B_030C" },
- { "01EA", "2004F_0328" },
- { "01EB", "2006F_0328" },
- { "01EC", "3004F_0328_0304" },
- { "01ED", "3006F_0328_0304" },
- { "01EE", "201B7_030C" },
- { "01EF", "20292_030C" },
- { "01F0", "2006A_030C" },
- { "01F4", "20047_0301" },
- { "01F5", "20067_0301" },
- { "01F8", "2004E_0300" },
- { "01F9", "2006E_0300" },
- { "01FA", "30041_030A_0301" },
- { "01FB", "30061_030A_0301" },
- { "01FC", "200C6_0301" },
- { "01FD", "200E6_0301" },
- { "01FE", "200D8_0301" },
- { "01FF", "200F8_0301" },
- { "0200", "20041_030F" },
- { "0201", "20061_030F" },
- { "0202", "20041_0311" },
- { "0203", "20061_0311" },
- { "0204", "20045_030F" },
- { "0205", "20065_030F" },
- { "0206", "20045_0311" },
- { "0207", "20065_0311" },
- { "0208", "20049_030F" },
- { "0209", "20069_030F" },
- { "020A", "20049_0311" },
- { "020B", "20069_0311" },
- { "020C", "2004F_030F" },
- { "020D", "2006F_030F" },
- { "020E", "2004F_0311" },
- { "020F", "2006F_0311" },
- { "0210", "20052_030F" },
- { "0211", "20072_030F" },
- { "0212", "20052_0311" },
- { "0213", "20072_0311" },
- { "0214", "20055_030F" },
- { "0215", "20075_030F" },
- { "0216", "20055_0311" },
- { "0217", "20075_0311" },
- { "0218", "20053_0326" },
- { "0219", "20073_0326" },
- { "021A", "20054_0326" },
- { "021B", "20074_0326" },
- { "021E", "20048_030C" },
- { "021F", "20068_030C" },
- { "0226", "20041_0307" },
- { "0227", "20061_0307" },
- { "0228", "20045_0327" },
- { "0229", "20065_0327" },
- { "022A", "3004F_0308_0304" },
- { "022B", "3006F_0308_0304" },
- { "022C", "3004F_0303_0304" },
- { "022D", "3006F_0303_0304" },
- { "022E", "2004F_0307" },
- { "022F", "2006F_0307" },
- { "0230", "3004F_0307_0304" },
- { "0231", "3006F_0307_0304" },
- { "0232", "20059_0304" },
- { "0233", "20079_0304" },
- { "0340", "10300" },
- { "0341", "10301" },
- { "0343", "10313" },
- { "0344", "20308_0301" },
- { "0374", "102B9" },
- { "037E", "1003B" },
- { "0385", "200A8_0301" },
- { "0386", "20391_0301" },
- { "0387", "100B7" },
- { "0388", "20395_0301" },
- { "0389", "20397_0301" },
- { "038A", "20399_0301" },
- { "038C", "2039F_0301" },
- { "038E", "203A5_0301" },
- { "038F", "203A9_0301" },
- { "0390", "303B9_0308_0301" },
- { "03AA", "20399_0308" },
- { "03AB", "203A5_0308" },
- { "03AC", "203B1_0301" },
- { "03AD", "203B5_0301" },
- { "03AE", "203B7_0301" },
- { "03AF", "203B9_0301" },
- { "03B0", "303C5_0308_0301" },
- { "03CA", "203B9_0308" },
- { "03CB", "203C5_0308" },
- { "03CC", "203BF_0301" },
- { "03CD", "203C5_0301" },
- { "03CE", "203C9_0301" },
- { "03D3", "203D2_0301" },
- { "03D4", "203D2_0308" },
- { "0400", "20415_0300" },
- { "0401", "20415_0308" },
- { "0403", "20413_0301" },
- { "0407", "20406_0308" },
- { "040C", "2041A_0301" },
- { "040D", "20418_0300" },
- { "040E", "20423_0306" },
- { "0419", "20418_0306" },
- { "0439", "20438_0306" },
- { "0450", "20435_0300" },
- { "0451", "20435_0308" },
- { "0453", "20433_0301" },
- { "0457", "20456_0308" },
- { "045C", "2043A_0301" },
- { "045D", "20438_0300" },
- { "045E", "20443_0306" },
- { "0476", "20474_030F" },
- { "0477", "20475_030F" },
- { "04C1", "20416_0306" },
- { "04C2", "20436_0306" },
- { "04D0", "20410_0306" },
- { "04D1", "20430_0306" },
- { "04D2", "20410_0308" },
- { "04D3", "20430_0308" },
- { "04D6", "20415_0306" },
- { "04D7", "20435_0306" },
- { "04DA", "204D8_0308" },
- { "04DB", "204D9_0308" },
- { "04DC", "20416_0308" },
- { "04DD", "20436_0308" },
- { "04DE", "20417_0308" },
- { "04DF", "20437_0308" },
- { "04E2", "20418_0304" },
- { "04E3", "20438_0304" },
- { "04E4", "20418_0308" },
- { "04E5", "20438_0308" },
- { "04E6", "2041E_0308" },
- { "04E7", "2043E_0308" },
- { "04EA", "204E8_0308" },
- { "04EB", "204E9_0308" },
- { "04EC", "2042D_0308" },
- { "04ED", "2044D_0308" },
- { "04EE", "20423_0304" },
- { "04EF", "20443_0304" },
- { "04F0", "20423_0308" },
- { "04F1", "20443_0308" },
- { "04F2", "20423_030B" },
- { "04F3", "20443_030B" },
- { "04F4", "20427_0308" },
- { "04F5", "20447_0308" },
- { "04F8", "2042B_0308" },
- { "04F9", "2044B_0308" },
- { "0622", "20627_0653" },
- { "0623", "20627_0654" },
- { "0624", "20648_0654" },
- { "0625", "20627_0655" },
- { "0626", "2064A_0654" },
- { "06C0", "206D5_0654" },
- { "06C2", "206C1_0654" },
- { "06D3", "206D2_0654" },
- { "0929", "20928_093C" },
- { "0931", "20930_093C" },
- { "0934", "20933_093C" },
- { "0958", "20915_093C" },
- { "0959", "20916_093C" },
- { "095A", "20917_093C" },
- { "095B", "2091C_093C" },
- { "095C", "20921_093C" },
- { "095D", "20922_093C" },
- { "095E", "2092B_093C" },
- { "095F", "2092F_093C" },
- { "09CB", "209C7_09BE" },
- { "09CC", "209C7_09D7" },
- { "09DC", "209A1_09BC" },
- { "09DD", "209A2_09BC" },
- { "09DF", "209AF_09BC" },
- { "0A33", "20A32_0A3C" },
- { "0A36", "20A38_0A3C" },
- { "0A59", "20A16_0A3C" },
- { "0A5A", "20A17_0A3C" },
- { "0A5B", "20A1C_0A3C" },
- { "0A5E", "20A2B_0A3C" },
- { "0B48", "20B47_0B56" },
- { "0B4B", "20B47_0B3E" },
- { "0B4C", "20B47_0B57" },
- { "0B5C", "20B21_0B3C" },
- { "0B5D", "20B22_0B3C" },
- { "0B94", "20B92_0BD7" },
- { "0BCA", "20BC6_0BBE" },
- { "0BCB", "20BC7_0BBE" },
- { "0BCC", "20BC6_0BD7" },
- { "0C48", "20C46_0C56" },
- { "0CC0", "20CBF_0CD5" },
- { "0CC7", "20CC6_0CD5" },
- { "0CC8", "20CC6_0CD6" },
- { "0CCA", "20CC6_0CC2" },
- { "0CCB", "30CC6_0CC2_0CD5" },
- { "0D4A", "20D46_0D3E" },
- { "0D4B", "20D47_0D3E" },
- { "0D4C", "20D46_0D57" },
- { "0DDA", "20DD9_0DCA" },
- { "0DDC", "20DD9_0DCF" },
- { "0DDD", "30DD9_0DCF_0DCA" },
- { "0DDE", "20DD9_0DDF" },
- { "0F43", "20F42_0FB7" },
- { "0F4D", "20F4C_0FB7" },
- { "0F52", "20F51_0FB7" },
- { "0F57", "20F56_0FB7" },
- { "0F5C", "20F5B_0FB7" },
- { "0F69", "20F40_0FB5" },
- { "0F73", "20F71_0F72" },
- { "0F75", "20F71_0F74" },
- { "0F76", "20FB2_0F80" },
- { "0F78", "20FB3_0F80" },
- { "0F81", "20F71_0F80" },
- { "0F93", "20F92_0FB7" },
- { "0F9D", "20F9C_0FB7" },
- { "0FA2", "20FA1_0FB7" },
- { "0FA7", "20FA6_0FB7" },
- { "0FAC", "20FAB_0FB7" },
- { "0FB9", "20F90_0FB5" },
- { "1026", "21025_102E" },
- { "1E00", "20041_0325" },
- { "1E01", "20061_0325" },
- { "1E02", "20042_0307" },
- { "1E03", "20062_0307" },
- { "1E04", "20042_0323" },
- { "1E05", "20062_0323" },
- { "1E06", "20042_0331" },
- { "1E07", "20062_0331" },
- { "1E08", "30043_0327_0301" },
- { "1E09", "30063_0327_0301" },
- { "1E0A", "20044_0307" },
- { "1E0B", "20064_0307" },
- { "1E0C", "20044_0323" },
- { "1E0D", "20064_0323" },
- { "1E0E", "20044_0331" },
- { "1E0F", "20064_0331" },
- { "1E10", "20044_0327" },
- { "1E11", "20064_0327" },
- { "1E12", "20044_032D" },
- { "1E13", "20064_032D" },
- { "1E14", "30045_0304_0300" },
- { "1E15", "30065_0304_0300" },
- { "1E16", "30045_0304_0301" },
- { "1E17", "30065_0304_0301" },
- { "1E18", "20045_032D" },
- { "1E19", "20065_032D" },
- { "1E1A", "20045_0330" },
- { "1E1B", "20065_0330" },
- { "1E1C", "30045_0327_0306" },
- { "1E1D", "30065_0327_0306" },
- { "1E1E", "20046_0307" },
- { "1E1F", "20066_0307" },
- { "1E20", "20047_0304" },
- { "1E21", "20067_0304" },
- { "1E22", "20048_0307" },
- { "1E23", "20068_0307" },
- { "1E24", "20048_0323" },
- { "1E25", "20068_0323" },
- { "1E26", "20048_0308" },
- { "1E27", "20068_0308" },
- { "1E28", "20048_0327" },
- { "1E29", "20068_0327" },
- { "1E2A", "20048_032E" },
- { "1E2B", "20068_032E" },
- { "1E2C", "20049_0330" },
- { "1E2D", "20069_0330" },
- { "1E2E", "30049_0308_0301" },
- { "1E2F", "30069_0308_0301" },
- { "1E30", "2004B_0301" },
- { "1E31", "2006B_0301" },
- { "1E32", "2004B_0323" },
- { "1E33", "2006B_0323" },
- { "1E34", "2004B_0331" },
- { "1E35", "2006B_0331" },
- { "1E36", "2004C_0323" },
- { "1E37", "2006C_0323" },
- { "1E38", "3004C_0323_0304" },
- { "1E39", "3006C_0323_0304" },
- { "1E3A", "2004C_0331" },
- { "1E3B", "2006C_0331" },
- { "1E3C", "2004C_032D" },
- { "1E3D", "2006C_032D" },
- { "1E3E", "2004D_0301" },
- { "1E3F", "2006D_0301" },
- { "1E40", "2004D_0307" },
- { "1E41", "2006D_0307" },
- { "1E42", "2004D_0323" },
- { "1E43", "2006D_0323" },
- { "1E44", "2004E_0307" },
- { "1E45", "2006E_0307" },
- { "1E46", "2004E_0323" },
- { "1E47", "2006E_0323" },
- { "1E48", "2004E_0331" },
- { "1E49", "2006E_0331" },
- { "1E4A", "2004E_032D" },
- { "1E4B", "2006E_032D" },
- { "1E4C", "3004F_0303_0301" },
- { "1E4D", "3006F_0303_0301" },
- { "1E4E", "3004F_0303_0308" },
- { "1E4F", "3006F_0303_0308" },
- { "1E50", "3004F_0304_0300" },
- { "1E51", "3006F_0304_0300" },
- { "1E52", "3004F_0304_0301" },
- { "1E53", "3006F_0304_0301" },
- { "1E54", "20050_0301" },
- { "1E55", "20070_0301" },
- { "1E56", "20050_0307" },
- { "1E57", "20070_0307" },
- { "1E58", "20052_0307" },
- { "1E59", "20072_0307" },
- { "1E5A", "20052_0323" },
- { "1E5B", "20072_0323" },
- { "1E5C", "30052_0323_0304" },
- { "1E5D", "30072_0323_0304" },
- { "1E5E", "20052_0331" },
- { "1E5F", "20072_0331" },
- { "1E60", "20053_0307" },
- { "1E61", "20073_0307" },
- { "1E62", "20053_0323" },
- { "1E63", "20073_0323" },
- { "1E64", "30053_0301_0307" },
- { "1E65", "30073_0301_0307" },
- { "1E66", "30053_030C_0307" },
- { "1E67", "30073_030C_0307" },
- { "1E68", "30053_0323_0307" },
- { "1E69", "30073_0323_0307" },
- { "1E6A", "20054_0307" },
- { "1E6B", "20074_0307" },
- { "1E6C", "20054_0323" },
- { "1E6D", "20074_0323" },
- { "1E6E", "20054_0331" },
- { "1E6F", "20074_0331" },
- { "1E70", "20054_032D" },
- { "1E71", "20074_032D" },
- { "1E72", "20055_0324" },
- { "1E73", "20075_0324" },
- { "1E74", "20055_0330" },
- { "1E75", "20075_0330" },
- { "1E76", "20055_032D" },
- { "1E77", "20075_032D" },
- { "1E78", "30055_0303_0301" },
- { "1E79", "30075_0303_0301" },
- { "1E7A", "30055_0304_0308" },
- { "1E7B", "30075_0304_0308" },
- { "1E7C", "20056_0303" },
- { "1E7D", "20076_0303" },
- { "1E7E", "20056_0323" },
- { "1E7F", "20076_0323" },
- { "1E80", "20057_0300" },
- { "1E81", "20077_0300" },
- { "1E82", "20057_0301" },
- { "1E83", "20077_0301" },
- { "1E84", "20057_0308" },
- { "1E85", "20077_0308" },
- { "1E86", "20057_0307" },
- { "1E87", "20077_0307" },
- { "1E88", "20057_0323" },
- { "1E89", "20077_0323" },
- { "1E8A", "20058_0307" },
- { "1E8B", "20078_0307" },
- { "1E8C", "20058_0308" },
- { "1E8D", "20078_0308" },
- { "1E8E", "20059_0307" },
- { "1E8F", "20079_0307" },
- { "1E90", "2005A_0302" },
- { "1E91", "2007A_0302" },
- { "1E92", "2005A_0323" },
- { "1E93", "2007A_0323" },
- { "1E94", "2005A_0331" },
- { "1E95", "2007A_0331" },
- { "1E96", "20068_0331" },
- { "1E97", "20074_0308" },
- { "1E98", "20077_030A" },
- { "1E99", "20079_030A" },
- { "1E9B", "2017F_0307" },
- { "1EA0", "20041_0323" },
- { "1EA1", "20061_0323" },
- { "1EA2", "20041_0309" },
- { "1EA3", "20061_0309" },
- { "1EA4", "30041_0302_0301" },
- { "1EA5", "30061_0302_0301" },
- { "1EA6", "30041_0302_0300" },
- { "1EA7", "30061_0302_0300" },
- { "1EA8", "30041_0302_0309" },
- { "1EA9", "30061_0302_0309" },
- { "1EAA", "30041_0302_0303" },
- { "1EAB", "30061_0302_0303" },
- { "1EAC", "30041_0323_0302" },
- { "1EAD", "30061_0323_0302" },
- { "1EAE", "30041_0306_0301" },
- { "1EAF", "30061_0306_0301" },
- { "1EB0", "30041_0306_0300" },
- { "1EB1", "30061_0306_0300" },
- { "1EB2", "30041_0306_0309" },
- { "1EB3", "30061_0306_0309" },
- { "1EB4", "30041_0306_0303" },
- { "1EB5", "30061_0306_0303" },
- { "1EB6", "30041_0323_0306" },
- { "1EB7", "30061_0323_0306" },
- { "1EB8", "20045_0323" },
- { "1EB9", "20065_0323" },
- { "1EBA", "20045_0309" },
- { "1EBB", "20065_0309" },
- { "1EBC", "20045_0303" },
- { "1EBD", "20065_0303" },
- { "1EBE", "30045_0302_0301" },
- { "1EBF", "30065_0302_0301" },
- { "1EC0", "30045_0302_0300" },
- { "1EC1", "30065_0302_0300" },
- { "1EC2", "30045_0302_0309" },
- { "1EC3", "30065_0302_0309" },
- { "1EC4", "30045_0302_0303" },
- { "1EC5", "30065_0302_0303" },
- { "1EC6", "30045_0323_0302" },
- { "1EC7", "30065_0323_0302" },
- { "1EC8", "20049_0309" },
- { "1EC9", "20069_0309" },
- { "1ECA", "20049_0323" },
- { "1ECB", "20069_0323" },
- { "1ECC", "2004F_0323" },
- { "1ECD", "2006F_0323" },
- { "1ECE", "2004F_0309" },
- { "1ECF", "2006F_0309" },
- { "1ED0", "3004F_0302_0301" },
- { "1ED1", "3006F_0302_0301" },
- { "1ED2", "3004F_0302_0300" },
- { "1ED3", "3006F_0302_0300" },
- { "1ED4", "3004F_0302_0309" },
- { "1ED5", "3006F_0302_0309" },
- { "1ED6", "3004F_0302_0303" },
- { "1ED7", "3006F_0302_0303" },
- { "1ED8", "3004F_0323_0302" },
- { "1ED9", "3006F_0323_0302" },
- { "1EDA", "3004F_031B_0301" },
- { "1EDB", "3006F_031B_0301" },
- { "1EDC", "3004F_031B_0300" },
- { "1EDD", "3006F_031B_0300" },
- { "1EDE", "3004F_031B_0309" },
- { "1EDF", "3006F_031B_0309" },
- { "1EE0", "3004F_031B_0303" },
- { "1EE1", "3006F_031B_0303" },
- { "1EE2", "3004F_031B_0323" },
- { "1EE3", "3006F_031B_0323" },
- { "1EE4", "20055_0323" },
- { "1EE5", "20075_0323" },
- { "1EE6", "20055_0309" },
- { "1EE7", "20075_0309" },
- { "1EE8", "30055_031B_0301" },
- { "1EE9", "30075_031B_0301" },
- { "1EEA", "30055_031B_0300" },
- { "1EEB", "30075_031B_0300" },
- { "1EEC", "30055_031B_0309" },
- { "1EED", "30075_031B_0309" },
- { "1EEE", "30055_031B_0303" },
- { "1EEF", "30075_031B_0303" },
- { "1EF0", "30055_031B_0323" },
- { "1EF1", "30075_031B_0323" },
- { "1EF2", "20059_0300" },
- { "1EF3", "20079_0300" },
- { "1EF4", "20059_0323" },
- { "1EF5", "20079_0323" },
- { "1EF6", "20059_0309" },
- { "1EF7", "20079_0309" },
- { "1EF8", "20059_0303" },
- { "1EF9", "20079_0303" },
- { "1F00", "203B1_0313" },
- { "1F01", "203B1_0314" },
- { "1F02", "303B1_0313_0300" },
- { "1F03", "303B1_0314_0300" },
- { "1F04", "303B1_0313_0301" },
- { "1F05", "303B1_0314_0301" },
- { "1F06", "303B1_0313_0342" },
- { "1F07", "303B1_0314_0342" },
- { "1F08", "20391_0313" },
- { "1F09", "20391_0314" },
- { "1F0A", "30391_0313_0300" },
- { "1F0B", "30391_0314_0300" },
- { "1F0C", "30391_0313_0301" },
- { "1F0D", "30391_0314_0301" },
- { "1F0E", "30391_0313_0342" },
- { "1F0F", "30391_0314_0342" },
- { "1F10", "203B5_0313" },
- { "1F11", "203B5_0314" },
- { "1F12", "303B5_0313_0300" },
- { "1F13", "303B5_0314_0300" },
- { "1F14", "303B5_0313_0301" },
- { "1F15", "303B5_0314_0301" },
- { "1F18", "20395_0313" },
- { "1F19", "20395_0314" },
- { "1F1A", "30395_0313_0300" },
- { "1F1B", "30395_0314_0300" },
- { "1F1C", "30395_0313_0301" },
- { "1F1D", "30395_0314_0301" },
- { "1F20", "203B7_0313" },
- { "1F21", "203B7_0314" },
- { "1F22", "303B7_0313_0300" },
- { "1F23", "303B7_0314_0300" },
- { "1F24", "303B7_0313_0301" },
- { "1F25", "303B7_0314_0301" },
- { "1F26", "303B7_0313_0342" },
- { "1F27", "303B7_0314_0342" },
- { "1F28", "20397_0313" },
- { "1F29", "20397_0314" },
- { "1F2A", "30397_0313_0300" },
- { "1F2B", "30397_0314_0300" },
- { "1F2C", "30397_0313_0301" },
- { "1F2D", "30397_0314_0301" },
- { "1F2E", "30397_0313_0342" },
- { "1F2F", "30397_0314_0342" },
- { "1F30", "203B9_0313" },
- { "1F31", "203B9_0314" },
- { "1F32", "303B9_0313_0300" },
- { "1F33", "303B9_0314_0300" },
- { "1F34", "303B9_0313_0301" },
- { "1F35", "303B9_0314_0301" },
- { "1F36", "303B9_0313_0342" },
- { "1F37", "303B9_0314_0342" },
- { "1F38", "20399_0313" },
- { "1F39", "20399_0314" },
- { "1F3A", "30399_0313_0300" },
- { "1F3B", "30399_0314_0300" },
- { "1F3C", "30399_0313_0301" },
- { "1F3D", "30399_0314_0301" },
- { "1F3E", "30399_0313_0342" },
- { "1F3F", "30399_0314_0342" },
- { "1F40", "203BF_0313" },
- { "1F41", "203BF_0314" },
- { "1F42", "303BF_0313_0300" },
- { "1F43", "303BF_0314_0300" },
- { "1F44", "303BF_0313_0301" },
- { "1F45", "303BF_0314_0301" },
- { "1F48", "2039F_0313" },
- { "1F49", "2039F_0314" },
- { "1F4A", "3039F_0313_0300" },
- { "1F4B", "3039F_0314_0300" },
- { "1F4C", "3039F_0313_0301" },
- { "1F4D", "3039F_0314_0301" },
- { "1F50", "203C5_0313" },
- { "1F51", "203C5_0314" },
- { "1F52", "303C5_0313_0300" },
- { "1F53", "303C5_0314_0300" },
- { "1F54", "303C5_0313_0301" },
- { "1F55", "303C5_0314_0301" },
- { "1F56", "303C5_0313_0342" },
- { "1F57", "303C5_0314_0342" },
- { "1F59", "203A5_0314" },
- { "1F5B", "303A5_0314_0300" },
- { "1F5D", "303A5_0314_0301" },
- { "1F5F", "303A5_0314_0342" },
- { "1F60", "203C9_0313" },
- { "1F61", "203C9_0314" },
- { "1F62", "303C9_0313_0300" },
- { "1F63", "303C9_0314_0300" },
- { "1F64", "303C9_0313_0301" },
- { "1F65", "303C9_0314_0301" },
- { "1F66", "303C9_0313_0342" },
- { "1F67", "303C9_0314_0342" },
- { "1F68", "203A9_0313" },
- { "1F69", "203A9_0314" },
- { "1F6A", "303A9_0313_0300" },
- { "1F6B", "303A9_0314_0300" },
- { "1F6C", "303A9_0313_0301" },
- { "1F6D", "303A9_0314_0301" },
- { "1F6E", "303A9_0313_0342" },
- { "1F6F", "303A9_0314_0342" },
- { "1F70", "203B1_0300" },
- { "1F71", "203B1_0301" },
- { "1F72", "203B5_0300" },
- { "1F73", "203B5_0301" },
- { "1F74", "203B7_0300" },
- { "1F75", "203B7_0301" },
- { "1F76", "203B9_0300" },
- { "1F77", "203B9_0301" },
- { "1F78", "203BF_0300" },
- { "1F79", "203BF_0301" },
- { "1F7A", "203C5_0300" },
- { "1F7B", "203C5_0301" },
- { "1F7C", "203C9_0300" },
- { "1F7D", "203C9_0301" },
- { "1F80", "303B1_0313_0345" },
- { "1F81", "303B1_0314_0345" },
- { "1F82", "403B1_0313_0300_0345" },
- { "1F83", "403B1_0314_0300_0345" },
- { "1F84", "403B1_0313_0301_0345" },
- { "1F85", "403B1_0314_0301_0345" },
- { "1F86", "403B1_0313_0342_0345" },
- { "1F87", "403B1_0314_0342_0345" },
- { "1F88", "30391_0313_0345" },
- { "1F89", "30391_0314_0345" },
- { "1F8A", "40391_0313_0300_0345" },
- { "1F8B", "40391_0314_0300_0345" },
- { "1F8C", "40391_0313_0301_0345" },
- { "1F8D", "40391_0314_0301_0345" },
- { "1F8E", "40391_0313_0342_0345" },
- { "1F8F", "40391_0314_0342_0345" },
- { "1F90", "303B7_0313_0345" },
- { "1F91", "303B7_0314_0345" },
- { "1F92", "403B7_0313_0300_0345" },
- { "1F93", "403B7_0314_0300_0345" },
- { "1F94", "403B7_0313_0301_0345" },
- { "1F95", "403B7_0314_0301_0345" },
- { "1F96", "403B7_0313_0342_0345" },
- { "1F97", "403B7_0314_0342_0345" },
- { "1F98", "30397_0313_0345" },
- { "1F99", "30397_0314_0345" },
- { "1F9A", "40397_0313_0300_0345" },
- { "1F9B", "40397_0314_0300_0345" },
- { "1F9C", "40397_0313_0301_0345" },
- { "1F9D", "40397_0314_0301_0345" },
- { "1F9E", "40397_0313_0342_0345" },
- { "1F9F", "40397_0314_0342_0345" },
- { "1FA0", "303C9_0313_0345" },
- { "1FA1", "303C9_0314_0345" },
- { "1FA2", "403C9_0313_0300_0345" },
- { "1FA3", "403C9_0314_0300_0345" },
- { "1FA4", "403C9_0313_0301_0345" },
- { "1FA5", "403C9_0314_0301_0345" },
- { "1FA6", "403C9_0313_0342_0345" },
- { "1FA7", "403C9_0314_0342_0345" },
- { "1FA8", "303A9_0313_0345" },
- { "1FA9", "303A9_0314_0345" },
- { "1FAA", "403A9_0313_0300_0345" },
- { "1FAB", "403A9_0314_0300_0345" },
- { "1FAC", "403A9_0313_0301_0345" },
- { "1FAD", "403A9_0314_0301_0345" },
- { "1FAE", "403A9_0313_0342_0345" },
- { "1FAF", "403A9_0314_0342_0345" },
- { "1FB0", "203B1_0306" },
- { "1FB1", "203B1_0304" },
- { "1FB2", "303B1_0300_0345" },
- { "1FB3", "203B1_0345" },
- { "1FB4", "303B1_0301_0345" },
- { "1FB6", "203B1_0342" },
- { "1FB7", "303B1_0342_0345" },
- { "1FB8", "20391_0306" },
- { "1FB9", "20391_0304" },
- { "1FBA", "20391_0300" },
- { "1FBB", "20391_0301" },
- { "1FBC", "20391_0345" },
- { "1FBE", "103B9" },
- { "1FC1", "200A8_0342" },
- { "1FC2", "303B7_0300_0345" },
- { "1FC3", "203B7_0345" },
- { "1FC4", "303B7_0301_0345" },
- { "1FC6", "203B7_0342" },
- { "1FC7", "303B7_0342_0345" },
- { "1FC8", "20395_0300" },
- { "1FC9", "20395_0301" },
- { "1FCA", "20397_0300" },
- { "1FCB", "20397_0301" },
- { "1FCC", "20397_0345" },
- { "1FCD", "21FBF_0300" },
- { "1FCE", "21FBF_0301" },
- { "1FCF", "21FBF_0342" },
- { "1FD0", "203B9_0306" },
- { "1FD1", "203B9_0304" },
- { "1FD2", "303B9_0308_0300" },
- { "1FD3", "303B9_0308_0301" },
- { "1FD6", "203B9_0342" },
- { "1FD7", "303B9_0308_0342" },
- { "1FD8", "20399_0306" },
- { "1FD9", "20399_0304" },
- { "1FDA", "20399_0300" },
- { "1FDB", "20399_0301" },
- { "1FDD", "21FFE_0300" },
- { "1FDE", "21FFE_0301" },
- { "1FDF", "21FFE_0342" },
- { "1FE0", "203C5_0306" },
- { "1FE1", "203C5_0304" },
- { "1FE2", "303C5_0308_0300" },
- { "1FE3", "303C5_0308_0301" },
- { "1FE4", "203C1_0313" },
- { "1FE5", "203C1_0314" },
- { "1FE6", "203C5_0342" },
- { "1FE7", "303C5_0308_0342" },
- { "1FE8", "203A5_0306" },
- { "1FE9", "203A5_0304" },
- { "1FEA", "203A5_0300" },
- { "1FEB", "203A5_0301" },
- { "1FEC", "203A1_0314" },
- { "1FED", "200A8_0300" },
- { "1FEE", "200A8_0301" },
- { "1FEF", "10060" },
- { "1FF2", "303C9_0300_0345" },
- { "1FF3", "203C9_0345" },
- { "1FF4", "303C9_0301_0345" },
- { "1FF6", "203C9_0342" },
- { "1FF7", "303C9_0342_0345" },
- { "1FF8", "2039F_0300" },
- { "1FF9", "2039F_0301" },
- { "1FFA", "203A9_0300" },
- { "1FFB", "203A9_0301" },
- { "1FFC", "203A9_0345" },
- { "1FFD", "100B4" },
- { "2000", "12002" },
- { "2001", "12003" },
- { "2126", "103A9" },
- { "212A", "1004B" },
- { "212B", "20041_030A" },
- { "219A", "22190_0338" },
- { "219B", "22192_0338" },
- { "21AE", "22194_0338" },
- { "21CD", "221D0_0338" },
- { "21CE", "221D4_0338" },
- { "21CF", "221D2_0338" },
- { "2204", "22203_0338" },
- { "2209", "22208_0338" },
- { "220C", "2220B_0338" },
- { "2224", "22223_0338" },
- { "2226", "22225_0338" },
- { "2241", "2223C_0338" },
- { "2244", "22243_0338" },
- { "2247", "22245_0338" },
- { "2249", "22248_0338" },
- { "2260", "2003D_0338" },
- { "2262", "22261_0338" },
- { "226D", "2224D_0338" },
- { "226E", "2003C_0338" },
- { "226F", "2003E_0338" },
- { "2270", "22264_0338" },
- { "2271", "22265_0338" },
- { "2274", "22272_0338" },
- { "2275", "22273_0338" },
- { "2278", "22276_0338" },
- { "2279", "22277_0338" },
- { "2280", "2227A_0338" },
- { "2281", "2227B_0338" },
- { "2284", "22282_0338" },
- { "2285", "22283_0338" },
- { "2288", "22286_0338" },
- { "2289", "22287_0338" },
- { "22AC", "222A2_0338" },
- { "22AD", "222A8_0338" },
- { "22AE", "222A9_0338" },
- { "22AF", "222AB_0338" },
- { "22E0", "2227C_0338" },
- { "22E1", "2227D_0338" },
- { "22E2", "22291_0338" },
- { "22E3", "22292_0338" },
- { "22EA", "222B2_0338" },
- { "22EB", "222B3_0338" },
- { "22EC", "222B4_0338" },
- { "22ED", "222B5_0338" },
- { "2329", "13008" },
- { "232A", "13009" },
- { "2ADC", "22ADD_0338" },
- { "304C", "2304B_3099" },
- { "304E", "2304D_3099" },
- { "3050", "2304F_3099" },
- { "3052", "23051_3099" },
- { "3054", "23053_3099" },
- { "3056", "23055_3099" },
- { "3058", "23057_3099" },
- { "305A", "23059_3099" },
- { "305C", "2305B_3099" },
- { "305E", "2305D_3099" },
- { "3060", "2305F_3099" },
- { "3062", "23061_3099" },
- { "3065", "23064_3099" },
- { "3067", "23066_3099" },
- { "3069", "23068_3099" },
- { "3070", "2306F_3099" },
- { "3071", "2306F_309A" },
- { "3073", "23072_3099" },
- { "3074", "23072_309A" },
- { "3076", "23075_3099" },
- { "3077", "23075_309A" },
- { "3079", "23078_3099" },
- { "307A", "23078_309A" },
- { "307C", "2307B_3099" },
- { "307D", "2307B_309A" },
- { "3094", "23046_3099" },
- { "309E", "2309D_3099" },
- { "30AC", "230AB_3099" },
- { "30AE", "230AD_3099" },
- { "30B0", "230AF_3099" },
- { "30B2", "230B1_3099" },
- { "30B4", "230B3_3099" },
- { "30B6", "230B5_3099" },
- { "30B8", "230B7_3099" },
- { "30BA", "230B9_3099" },
- { "30BC", "230BB_3099" },
- { "30BE", "230BD_3099" },
- { "30C0", "230BF_3099" },
- { "30C2", "230C1_3099" },
- { "30C5", "230C4_3099" },
- { "30C7", "230C6_3099" },
- { "30C9", "230C8_3099" },
- { "30D0", "230CF_3099" },
- { "30D1", "230CF_309A" },
- { "30D3", "230D2_3099" },
- { "30D4", "230D2_309A" },
- { "30D6", "230D5_3099" },
- { "30D7", "230D5_309A" },
- { "30D9", "230D8_3099" },
- { "30DA", "230D8_309A" },
- { "30DC", "230DB_3099" },
- { "30DD", "230DB_309A" },
- { "30F4", "230A6_3099" },
- { "30F7", "230EF_3099" },
- { "30F8", "230F0_3099" },
- { "30F9", "230F1_3099" },
- { "30FA", "230F2_3099" },
- { "30FE", "230FD_3099" },
- { "F900", "18C48" },
- { "F901", "166F4" },
- { "F902", "18ECA" },
- { "F903", "18CC8" },
- { "F904", "16ED1" },
- { "F905", "14E32" },
- { "F906", "153E5" },
- { "F907", "19F9C" },
- { "F908", "19F9C" },
- { "F909", "15951" },
- { "F90A", "191D1" },
- { "F90B", "15587" },
- { "F90C", "15948" },
- { "F90D", "161F6" },
- { "F90E", "17669" },
- { "F90F", "17F85" },
- { "F910", "1863F" },
- { "F911", "187BA" },
- { "F912", "188F8" },
- { "F913", "1908F" },
- { "F914", "16A02" },
- { "F915", "16D1B" },
- { "F916", "170D9" },
- { "F917", "173DE" },
- { "F918", "1843D" },
- { "F919", "1916A" },
- { "F91A", "199F1" },
- { "F91B", "14E82" },
- { "F91C", "15375" },
- { "F91D", "16B04" },
- { "F91E", "1721B" },
- { "F91F", "1862D" },
- { "F920", "19E1E" },
- { "F921", "15D50" },
- { "F922", "16FEB" },
- { "F923", "185CD" },
- { "F924", "18964" },
- { "F925", "162C9" },
- { "F926", "181D8" },
- { "F927", "1881F" },
- { "F928", "15ECA" },
- { "F929", "16717" },
- { "F92A", "16D6A" },
- { "F92B", "172FC" },
- { "F92C", "190CE" },
- { "F92D", "14F86" },
- { "F92E", "151B7" },
- { "F92F", "152DE" },
- { "F930", "164C4" },
- { "F931", "16AD3" },
- { "F932", "17210" },
- { "F933", "176E7" },
- { "F934", "18001" },
- { "F935", "18606" },
- { "F936", "1865C" },
- { "F937", "18DEF" },
- { "F938", "19732" },
- { "F939", "19B6F" },
- { "F93A", "19DFA" },
- { "F93B", "1788C" },
- { "F93C", "1797F" },
- { "F93D", "17DA0" },
- { "F93E", "183C9" },
- { "F93F", "19304" },
- { "F940", "19E7F" },
- { "F941", "18AD6" },
- { "F942", "158DF" },
- { "F943", "15F04" },
- { "F944", "17C60" },
- { "F945", "1807E" },
- { "F946", "17262" },
- { "F947", "178CA" },
- { "F948", "18CC2" },
- { "F949", "196F7" },
- { "F94A", "158D8" },
- { "F94B", "15C62" },
- { "F94C", "16A13" },
- { "F94D", "16DDA" },
- { "F94E", "16F0F" },
- { "F94F", "17D2F" },
- { "F950", "17E37" },
- { "F951", "1964B" },
- { "F952", "152D2" },
- { "F953", "1808B" },
- { "F954", "151DC" },
- { "F955", "151CC" },
- { "F956", "17A1C" },
- { "F957", "17DBE" },
- { "F958", "183F1" },
- { "F959", "19675" },
- { "F95A", "18B80" },
- { "F95B", "162CF" },
- { "F95C", "16A02" },
- { "F95D", "18AFE" },
- { "F95E", "14E39" },
- { "F95F", "15BE7" },
- { "F960", "16012" },
- { "F961", "17387" },
- { "F962", "17570" },
- { "F963", "15317" },
- { "F964", "178FB" },
- { "F965", "14FBF" },
- { "F966", "15FA9" },
- { "F967", "14E0D" },
- { "F968", "16CCC" },
- { "F969", "16578" },
- { "F96A", "17D22" },
- { "F96B", "153C3" },
- { "F96C", "1585E" },
- { "F96D", "17701" },
- { "F96E", "18449" },
- { "F96F", "18AAA" },
- { "F970", "16BBA" },
- { "F971", "18FB0" },
- { "F972", "16C88" },
- { "F973", "162FE" },
- { "F974", "182E5" },
- { "F975", "163A0" },
- { "F976", "17565" },
- { "F977", "14EAE" },
- { "F978", "15169" },
- { "F979", "151C9" },
- { "F97A", "16881" },
- { "F97B", "17CE7" },
- { "F97C", "1826F" },
- { "F97D", "18AD2" },
- { "F97E", "191CF" },
- { "F97F", "152F5" },
- { "F980", "15442" },
- { "F981", "15973" },
- { "F982", "15EEC" },
- { "F983", "165C5" },
- { "F984", "16FFE" },
- { "F985", "1792A" },
- { "F986", "195AD" },
- { "F987", "19A6A" },
- { "F988", "19E97" },
- { "F989", "19ECE" },
- { "F98A", "1529B" },
- { "F98B", "166C6" },
- { "F98C", "16B77" },
- { "F98D", "18F62" },
- { "F98E", "15E74" },
- { "F98F", "16190" },
- { "F990", "16200" },
- { "F991", "1649A" },
- { "F992", "16F23" },
- { "F993", "17149" },
- { "F994", "17489" },
- { "F995", "179CA" },
- { "F996", "17DF4" },
- { "F997", "1806F" },
- { "F998", "18F26" },
- { "F999", "184EE" },
- { "F99A", "19023" },
- { "F99B", "1934A" },
- { "F99C", "15217" },
- { "F99D", "152A3" },
- { "F99E", "154BD" },
- { "F99F", "170C8" },
- { "F9A0", "188C2" },
- { "F9A1", "18AAA" },
- { "F9A2", "15EC9" },
- { "F9A3", "15FF5" },
- { "F9A4", "1637B" },
- { "F9A5", "16BAE" },
- { "F9A6", "17C3E" },
- { "F9A7", "17375" },
- { "F9A8", "14EE4" },
- { "F9A9", "156F9" },
- { "F9AA", "15BE7" },
- { "F9AB", "15DBA" },
- { "F9AC", "1601C" },
- { "F9AD", "173B2" },
- { "F9AE", "17469" },
- { "F9AF", "17F9A" },
- { "F9B0", "18046" },
- { "F9B1", "19234" },
- { "F9B2", "196F6" },
- { "F9B3", "19748" },
- { "F9B4", "19818" },
- { "F9B5", "14F8B" },
- { "F9B6", "179AE" },
- { "F9B7", "191B4" },
- { "F9B8", "196B8" },
- { "F9B9", "160E1" },
- { "F9BA", "14E86" },
- { "F9BB", "150DA" },
- { "F9BC", "15BEE" },
- { "F9BD", "15C3F" },
- { "F9BE", "16599" },
- { "F9BF", "16A02" },
- { "F9C0", "171CE" },
- { "F9C1", "17642" },
- { "F9C2", "184FC" },
- { "F9C3", "1907C" },
- { "F9C4", "19F8D" },
- { "F9C5", "16688" },
- { "F9C6", "1962E" },
- { "F9C7", "15289" },
- { "F9C8", "1677B" },
- { "F9C9", "167F3" },
- { "F9CA", "16D41" },
- { "F9CB", "16E9C" },
- { "F9CC", "17409" },
- { "F9CD", "17559" },
- { "F9CE", "1786B" },
- { "F9CF", "17D10" },
- { "F9D0", "1985E" },
- { "F9D1", "1516D" },
- { "F9D2", "1622E" },
- { "F9D3", "19678" },
- { "F9D4", "1502B" },
- { "F9D5", "15D19" },
- { "F9D6", "16DEA" },
- { "F9D7", "18F2A" },
- { "F9D8", "15F8B" },
- { "F9D9", "16144" },
- { "F9DA", "16817" },
- { "F9DB", "17387" },
- { "F9DC", "19686" },
- { "F9DD", "15229" },
- { "F9DE", "1540F" },
- { "F9DF", "15C65" },
- { "F9E0", "16613" },
- { "F9E1", "1674E" },
- { "F9E2", "168A8" },
- { "F9E3", "16CE5" },
- { "F9E4", "17406" },
- { "F9E5", "175E2" },
- { "F9E6", "17F79" },
- { "F9E7", "188CF" },
- { "F9E8", "188E1" },
- { "F9E9", "191CC" },
- { "F9EA", "196E2" },
- { "F9EB", "1533F" },
- { "F9EC", "16EBA" },
- { "F9ED", "1541D" },
- { "F9EE", "171D0" },
- { "F9EF", "17498" },
- { "F9F0", "185FA" },
- { "F9F1", "196A3" },
- { "F9F2", "19C57" },
- { "F9F3", "19E9F" },
- { "F9F4", "16797" },
- { "F9F5", "16DCB" },
- { "F9F6", "181E8" },
- { "F9F7", "17ACB" },
- { "F9F8", "17B20" },
- { "F9F9", "17C92" },
- { "F9FA", "172C0" },
- { "F9FB", "17099" },
- { "F9FC", "18B58" },
- { "F9FD", "14EC0" },
- { "F9FE", "18336" },
- { "F9FF", "1523A" },
- { "FA00", "15207" },
- { "FA01", "15EA6" },
- { "FA02", "162D3" },
- { "FA03", "17CD6" },
- { "FA04", "15B85" },
- { "FA05", "16D1E" },
- { "FA06", "166B4" },
- { "FA07", "18F3B" },
- { "FA08", "1884C" },
- { "FA09", "1964D" },
- { "FA0A", "1898B" },
- { "FA0B", "15ED3" },
- { "FA0C", "15140" },
- { "FA0D", "155C0" },
- { "FA10", "1585A" },
- { "FA12", "16674" },
- { "FA15", "151DE" },
- { "FA16", "1732A" },
- { "FA17", "176CA" },
- { "FA18", "1793C" },
- { "FA19", "1795E" },
- { "FA1A", "17965" },
- { "FA1B", "1798F" },
- { "FA1C", "19756" },
- { "FA1D", "17CBE" },
- { "FA1E", "17FBD" },
- { "FA20", "18612" },
- { "FA22", "18AF8" },
- { "FA25", "19038" },
- { "FA26", "190FD" },
- { "FA2A", "198EF" },
- { "FA2B", "198FC" },
- { "FA2C", "19928" },
- { "FA2D", "19DB4" },
- { "FA30", "14FAE" },
- { "FA31", "150E7" },
- { "FA32", "1514D" },
- { "FA33", "152C9" },
- { "FA34", "152E4" },
- { "FA35", "15351" },
- { "FA36", "1559D" },
- { "FA37", "15606" },
- { "FA38", "15668" },
- { "FA39", "15840" },
- { "FA3A", "158A8" },
- { "FA3B", "15C64" },
- { "FA3C", "15C6E" },
- { "FA3D", "16094" },
- { "FA3E", "16168" },
- { "FA3F", "1618E" },
- { "FA40", "161F2" },
- { "FA41", "1654F" },
- { "FA42", "165E2" },
- { "FA43", "16691" },
- { "FA44", "16885" },
- { "FA45", "16D77" },
- { "FA46", "16E1A" },
- { "FA47", "16F22" },
- { "FA48", "1716E" },
- { "FA49", "1722B" },
- { "FA4A", "17422" },
- { "FA4B", "17891" },
- { "FA4C", "1793E" },
- { "FA4D", "17949" },
- { "FA4E", "17948" },
- { "FA4F", "17950" },
- { "FA50", "17956" },
- { "FA51", "1795D" },
- { "FA52", "1798D" },
- { "FA53", "1798E" },
- { "FA54", "17A40" },
- { "FA55", "17A81" },
- { "FA56", "17BC0" },
- { "FA57", "17DF4" },
- { "FA58", "17E09" },
- { "FA59", "17E41" },
- { "FA5A", "17F72" },
- { "FA5B", "18005" },
- { "FA5C", "181ED" },
- { "FA5D", "18279" },
- { "FA5E", "18279" },
- { "FA5F", "18457" },
- { "FA60", "18910" },
- { "FA61", "18996" },
- { "FA62", "18B01" },
- { "FA63", "18B39" },
- { "FA64", "18CD3" },
- { "FA65", "18D08" },
- { "FA66", "18FB6" },
- { "FA67", "19038" },
- { "FA68", "196E3" },
- { "FA69", "197FF" },
- { "FA6A", "1983B" },
- { "FB1D", "205D9_05B4" },
- { "FB1F", "205F2_05B7" },
- { "FB2A", "205E9_05C1" },
- { "FB2B", "205E9_05C2" },
- { "FB2C", "305E9_05BC_05C1" },
- { "FB2D", "305E9_05BC_05C2" },
- { "FB2E", "205D0_05B7" },
- { "FB2F", "205D0_05B8" },
- { "FB30", "205D0_05BC" },
- { "FB31", "205D1_05BC" },
- { "FB32", "205D2_05BC" },
- { "FB33", "205D3_05BC" },
- { "FB34", "205D4_05BC" },
- { "FB35", "205D5_05BC" },
- { "FB36", "205D6_05BC" },
- { "FB38", "205D8_05BC" },
- { "FB39", "205D9_05BC" },
- { "FB3A", "205DA_05BC" },
- { "FB3B", "205DB_05BC" },
- { "FB3C", "205DC_05BC" },
- { "FB3E", "205DE_05BC" },
- { "FB40", "205E0_05BC" },
- { "FB41", "205E1_05BC" },
- { "FB43", "205E3_05BC" },
- { "FB44", "205E4_05BC" },
- { "FB46", "205E6_05BC" },
- { "FB47", "205E7_05BC" },
- { "FB48", "205E8_05BC" },
- { "FB49", "205E9_05BC" },
- { "FB4A", "205EA_05BC" },
- { "FB4B", "205D5_05B9" },
- { "FB4C", "205D1_05BF" },
- { "FB4D", "205DB_05BF" },
- { "FB4E", "205E4_05BF" },
- { "1D15E", "21D157_1D165" },
- { "1D15F", "21D158_1D165" },
- { "1D160", "31D158_1D165_1D16E" },
- { "1D161", "31D158_1D165_1D16F" },
- { "1D162", "31D158_1D165_1D170" },
- { "1D163", "31D158_1D165_1D171" },
- { "1D164", "31D158_1D165_1D172" },
- { "1D1BB", "21D1B9_1D165" },
- { "1D1BC", "21D1BA_1D165" },
- { "1D1BD", "31D1B9_1D165_1D16E" },
- { "1D1BE", "31D1BA_1D165_1D16E" },
- { "1D1BF", "31D1B9_1D165_1D16F" },
- { "1D1C0", "31D1BA_1D165_1D16F" },
- { "2F800", "14E3D" },
- { "2F801", "14E38" },
- { "2F802", "14E41" },
- { "2F803", "120122" },
- { "2F804", "14F60" },
- { "2F805", "14FAE" },
- { "2F806", "14FBB" },
- { "2F807", "15002" },
- { "2F808", "1507A" },
- { "2F809", "15099" },
- { "2F80A", "150E7" },
- { "2F80B", "150CF" },
- { "2F80C", "1349E" },
- { "2F80D", "12063A" },
- { "2F80E", "1514D" },
- { "2F80F", "15154" },
- { "2F810", "15164" },
- { "2F811", "15177" },
- { "2F812", "12051C" },
- { "2F813", "134B9" },
- { "2F814", "15167" },
- { "2F815", "1518D" },
- { "2F816", "12054B" },
- { "2F817", "15197" },
- { "2F818", "151A4" },
- { "2F819", "14ECC" },
- { "2F81A", "151AC" },
- { "2F81B", "151B5" },
- { "2F81C", "1291DF" },
- { "2F81D", "151F5" },
- { "2F81E", "15203" },
- { "2F81F", "134DF" },
- { "2F820", "1523B" },
- { "2F821", "15246" },
- { "2F822", "15272" },
- { "2F823", "15277" },
- { "2F824", "13515" },
- { "2F825", "152C7" },
- { "2F826", "152C9" },
- { "2F827", "152E4" },
- { "2F828", "152FA" },
- { "2F829", "15305" },
- { "2F82A", "15306" },
- { "2F82B", "15317" },
- { "2F82C", "15349" },
- { "2F82D", "15351" },
- { "2F82E", "1535A" },
- { "2F82F", "15373" },
- { "2F830", "1537D" },
- { "2F831", "1537F" },
- { "2F832", "1537F" },
- { "2F833", "1537F" },
- { "2F834", "120A2C" },
- { "2F835", "17070" },
- { "2F836", "153CA" },
- { "2F837", "153DF" },
- { "2F838", "120B63" },
- { "2F839", "153EB" },
- { "2F83A", "153F1" },
- { "2F83B", "15406" },
- { "2F83C", "1549E" },
- { "2F83D", "15438" },
- { "2F83E", "15448" },
- { "2F83F", "15468" },
- { "2F840", "154A2" },
- { "2F841", "154F6" },
- { "2F842", "15510" },
- { "2F843", "15553" },
- { "2F844", "15563" },
- { "2F845", "15584" },
- { "2F846", "15584" },
- { "2F847", "15599" },
- { "2F848", "155AB" },
- { "2F849", "155B3" },
- { "2F84A", "155C2" },
- { "2F84B", "15716" },
- { "2F84C", "15606" },
- { "2F84D", "15717" },
- { "2F84E", "15651" },
- { "2F84F", "15674" },
- { "2F850", "15207" },
- { "2F851", "158EE" },
- { "2F852", "157CE" },
- { "2F853", "157F4" },
- { "2F854", "1580D" },
- { "2F855", "1578B" },
- { "2F856", "15832" },
- { "2F857", "15831" },
- { "2F858", "158AC" },
- { "2F859", "1214E4" },
- { "2F85A", "158F2" },
- { "2F85B", "158F7" },
- { "2F85C", "15906" },
- { "2F85D", "1591A" },
- { "2F85E", "15922" },
- { "2F85F", "15962" },
- { "2F860", "1216A8" },
- { "2F861", "1216EA" },
- { "2F862", "159EC" },
- { "2F863", "15A1B" },
- { "2F864", "15A27" },
- { "2F865", "159D8" },
- { "2F866", "15A66" },
- { "2F867", "136EE" },
- { "2F868", "12136A" },
- { "2F869", "15B08" },
- { "2F86A", "15B3E" },
- { "2F86B", "15B3E" },
- { "2F86C", "1219C8" },
- { "2F86D", "15BC3" },
- { "2F86E", "15BD8" },
- { "2F86F", "15BE7" },
- { "2F870", "15BF3" },
- { "2F871", "121B18" },
- { "2F872", "15BFF" },
- { "2F873", "15C06" },
- { "2F874", "15F33" },
- { "2F875", "15C22" },
- { "2F876", "13781" },
- { "2F877", "15C60" },
- { "2F878", "15C6E" },
- { "2F879", "15CC0" },
- { "2F87A", "15C8D" },
- { "2F87B", "121DE4" },
- { "2F87C", "15D43" },
- { "2F87D", "121DE6" },
- { "2F87E", "15D6E" },
- { "2F87F", "15D6B" },
- { "2F880", "15D7C" },
- { "2F881", "15DE1" },
- { "2F882", "15DE2" },
- { "2F883", "1382F" },
- { "2F884", "15DFD" },
- { "2F885", "15E28" },
- { "2F886", "15E3D" },
- { "2F887", "15E69" },
- { "2F888", "13862" },
- { "2F889", "122183" },
- { "2F88A", "1387C" },
- { "2F88B", "15EB0" },
- { "2F88C", "15EB3" },
- { "2F88D", "15EB6" },
- { "2F88E", "15ECA" },
- { "2F88F", "12A392" },
- { "2F890", "15EFE" },
- { "2F891", "122331" },
- { "2F892", "122331" },
- { "2F893", "18201" },
- { "2F894", "15F22" },
- { "2F895", "15F22" },
- { "2F896", "138C7" },
- { "2F897", "1232B8" },
- { "2F898", "1261DA" },
- { "2F899", "15F62" },
- { "2F89A", "15F6B" },
- { "2F89B", "138E3" },
- { "2F89C", "15F9A" },
- { "2F89D", "15FCD" },
- { "2F89E", "15FD7" },
- { "2F89F", "15FF9" },
- { "2F8A0", "16081" },
- { "2F8A1", "1393A" },
- { "2F8A2", "1391C" },
- { "2F8A3", "16094" },
- { "2F8A4", "1226D4" },
- { "2F8A5", "160C7" },
- { "2F8A6", "16148" },
- { "2F8A7", "1614C" },
- { "2F8A8", "1614E" },
- { "2F8A9", "1614C" },
- { "2F8AA", "1617A" },
- { "2F8AB", "1618E" },
- { "2F8AC", "161B2" },
- { "2F8AD", "161A4" },
- { "2F8AE", "161AF" },
- { "2F8AF", "161DE" },
- { "2F8B0", "161F2" },
- { "2F8B1", "161F6" },
- { "2F8B2", "16210" },
- { "2F8B3", "1621B" },
- { "2F8B4", "1625D" },
- { "2F8B5", "162B1" },
- { "2F8B6", "162D4" },
- { "2F8B7", "16350" },
- { "2F8B8", "122B0C" },
- { "2F8B9", "1633D" },
- { "2F8BA", "162FC" },
- { "2F8BB", "16368" },
- { "2F8BC", "16383" },
- { "2F8BD", "163E4" },
- { "2F8BE", "122BF1" },
- { "2F8BF", "16422" },
- { "2F8C0", "163C5" },
- { "2F8C1", "163A9" },
- { "2F8C2", "13A2E" },
- { "2F8C3", "16469" },
- { "2F8C4", "1647E" },
- { "2F8C5", "1649D" },
- { "2F8C6", "16477" },
- { "2F8C7", "13A6C" },
- { "2F8C8", "1654F" },
- { "2F8C9", "1656C" },
- { "2F8CA", "12300A" },
- { "2F8CB", "165E3" },
- { "2F8CC", "166F8" },
- { "2F8CD", "16649" },
- { "2F8CE", "13B19" },
- { "2F8CF", "16691" },
- { "2F8D0", "13B08" },
- { "2F8D1", "13AE4" },
- { "2F8D2", "15192" },
- { "2F8D3", "15195" },
- { "2F8D4", "16700" },
- { "2F8D5", "1669C" },
- { "2F8D6", "180AD" },
- { "2F8D7", "143D9" },
- { "2F8D8", "16717" },
- { "2F8D9", "1671B" },
- { "2F8DA", "16721" },
- { "2F8DB", "1675E" },
- { "2F8DC", "16753" },
- { "2F8DD", "1233C3" },
- { "2F8DE", "13B49" },
- { "2F8DF", "167FA" },
- { "2F8E0", "16785" },
- { "2F8E1", "16852" },
- { "2F8E2", "16885" },
- { "2F8E3", "12346D" },
- { "2F8E4", "1688E" },
- { "2F8E5", "1681F" },
- { "2F8E6", "16914" },
- { "2F8E7", "13B9D" },
- { "2F8E8", "16942" },
- { "2F8E9", "169A3" },
- { "2F8EA", "169EA" },
- { "2F8EB", "16AA8" },
- { "2F8EC", "1236A3" },
- { "2F8ED", "16ADB" },
- { "2F8EE", "13C18" },
- { "2F8EF", "16B21" },
- { "2F8F0", "1238A7" },
- { "2F8F1", "16B54" },
- { "2F8F2", "13C4E" },
- { "2F8F3", "16B72" },
- { "2F8F4", "16B9F" },
- { "2F8F5", "16BBA" },
- { "2F8F6", "16BBB" },
- { "2F8F7", "123A8D" },
- { "2F8F8", "121D0B" },
- { "2F8F9", "123AFA" },
- { "2F8FA", "16C4E" },
- { "2F8FB", "123CBC" },
- { "2F8FC", "16CBF" },
- { "2F8FD", "16CCD" },
- { "2F8FE", "16C67" },
- { "2F8FF", "16D16" },
- { "2F900", "16D3E" },
- { "2F901", "16D77" },
- { "2F902", "16D41" },
- { "2F903", "16D69" },
- { "2F904", "16D78" },
- { "2F905", "16D85" },
- { "2F906", "123D1E" },
- { "2F907", "16D34" },
- { "2F908", "16E2F" },
- { "2F909", "16E6E" },
- { "2F90A", "13D33" },
- { "2F90B", "16ECB" },
- { "2F90C", "16EC7" },
- { "2F90D", "123ED1" },
- { "2F90E", "16DF9" },
- { "2F90F", "16F6E" },
- { "2F910", "123F5E" },
- { "2F911", "123F8E" },
- { "2F912", "16FC6" },
- { "2F913", "17039" },
- { "2F914", "1701E" },
- { "2F915", "1701B" },
- { "2F916", "13D96" },
- { "2F917", "1704A" },
- { "2F918", "1707D" },
- { "2F919", "17077" },
- { "2F91A", "170AD" },
- { "2F91B", "120525" },
- { "2F91C", "17145" },
- { "2F91D", "124263" },
- { "2F91E", "1719C" },
- { "2F91F", "143AB" },
- { "2F920", "17228" },
- { "2F921", "17235" },
- { "2F922", "17250" },
- { "2F923", "124608" },
- { "2F924", "17280" },
- { "2F925", "17295" },
- { "2F926", "124735" },
- { "2F927", "124814" },
- { "2F928", "1737A" },
- { "2F929", "1738B" },
- { "2F92A", "13EAC" },
- { "2F92B", "173A5" },
- { "2F92C", "13EB8" },
- { "2F92D", "13EB8" },
- { "2F92E", "17447" },
- { "2F92F", "1745C" },
- { "2F930", "17471" },
- { "2F931", "17485" },
- { "2F932", "174CA" },
- { "2F933", "13F1B" },
- { "2F934", "17524" },
- { "2F935", "124C36" },
- { "2F936", "1753E" },
- { "2F937", "124C92" },
- { "2F938", "17570" },
- { "2F939", "12219F" },
- { "2F93A", "17610" },
- { "2F93B", "124FA1" },
- { "2F93C", "124FB8" },
- { "2F93D", "125044" },
- { "2F93E", "13FFC" },
- { "2F93F", "14008" },
- { "2F940", "176F4" },
- { "2F941", "1250F3" },
- { "2F942", "1250F2" },
- { "2F943", "125119" },
- { "2F944", "125133" },
- { "2F945", "1771E" },
- { "2F946", "1771F" },
- { "2F947", "1771F" },
- { "2F948", "1774A" },
- { "2F949", "14039" },
- { "2F94A", "1778B" },
- { "2F94B", "14046" },
- { "2F94C", "14096" },
- { "2F94D", "12541D" },
- { "2F94E", "1784E" },
- { "2F94F", "1788C" },
- { "2F950", "178CC" },
- { "2F951", "140E3" },
- { "2F952", "125626" },
- { "2F953", "17956" },
- { "2F954", "12569A" },
- { "2F955", "1256C5" },
- { "2F956", "1798F" },
- { "2F957", "179EB" },
- { "2F958", "1412F" },
- { "2F959", "17A40" },
- { "2F95A", "17A4A" },
- { "2F95B", "17A4F" },
- { "2F95C", "12597C" },
- { "2F95D", "125AA7" },
- { "2F95E", "125AA7" },
- { "2F95F", "17AAE" },
- { "2F960", "14202" },
- { "2F961", "125BAB" },
- { "2F962", "17BC6" },
- { "2F963", "17BC9" },
- { "2F964", "14227" },
- { "2F965", "125C80" },
- { "2F966", "17CD2" },
- { "2F967", "142A0" },
- { "2F968", "17CE8" },
- { "2F969", "17CE3" },
- { "2F96A", "17D00" },
- { "2F96B", "125F86" },
- { "2F96C", "17D63" },
- { "2F96D", "14301" },
- { "2F96E", "17DC7" },
- { "2F96F", "17E02" },
- { "2F970", "17E45" },
- { "2F971", "14334" },
- { "2F972", "126228" },
- { "2F973", "126247" },
- { "2F974", "14359" },
- { "2F975", "1262D9" },
- { "2F976", "17F7A" },
- { "2F977", "12633E" },
- { "2F978", "17F95" },
- { "2F979", "17FFA" },
- { "2F97A", "18005" },
- { "2F97B", "1264DA" },
- { "2F97C", "126523" },
- { "2F97D", "18060" },
- { "2F97E", "1265A8" },
- { "2F97F", "18070" },
- { "2F980", "12335F" },
- { "2F981", "143D5" },
- { "2F982", "180B2" },
- { "2F983", "18103" },
- { "2F984", "1440B" },
- { "2F985", "1813E" },
- { "2F986", "15AB5" },
- { "2F987", "1267A7" },
- { "2F988", "1267B5" },
- { "2F989", "123393" },
- { "2F98A", "12339C" },
- { "2F98B", "18201" },
- { "2F98C", "18204" },
- { "2F98D", "18F9E" },
- { "2F98E", "1446B" },
- { "2F98F", "18291" },
- { "2F990", "1828B" },
- { "2F991", "1829D" },
- { "2F992", "152B3" },
- { "2F993", "182B1" },
- { "2F994", "182B3" },
- { "2F995", "182BD" },
- { "2F996", "182E6" },
- { "2F997", "126B3C" },
- { "2F998", "182E5" },
- { "2F999", "1831D" },
- { "2F99A", "18363" },
- { "2F99B", "183AD" },
- { "2F99C", "18323" },
- { "2F99D", "183BD" },
- { "2F99E", "183E7" },
- { "2F99F", "18457" },
- { "2F9A0", "18353" },
- { "2F9A1", "183CA" },
- { "2F9A2", "183CC" },
- { "2F9A3", "183DC" },
- { "2F9A4", "126C36" },
- { "2F9A5", "126D6B" },
- { "2F9A6", "126CD5" },
- { "2F9A7", "1452B" },
- { "2F9A8", "184F1" },
- { "2F9A9", "184F3" },
- { "2F9AA", "18516" },
- { "2F9AB", "1273CA" },
- { "2F9AC", "18564" },
- { "2F9AD", "126F2C" },
- { "2F9AE", "1455D" },
- { "2F9AF", "14561" },
- { "2F9B0", "126FB1" },
- { "2F9B1", "1270D2" },
- { "2F9B2", "1456B" },
- { "2F9B3", "18650" },
- { "2F9B4", "1865C" },
- { "2F9B5", "18667" },
- { "2F9B6", "18669" },
- { "2F9B7", "186A9" },
- { "2F9B8", "18688" },
- { "2F9B9", "1870E" },
- { "2F9BA", "186E2" },
- { "2F9BB", "18779" },
- { "2F9BC", "18728" },
- { "2F9BD", "1876B" },
- { "2F9BE", "18786" },
- { "2F9BF", "14D57" },
- { "2F9C0", "187E1" },
- { "2F9C1", "18801" },
- { "2F9C2", "145F9" },
- { "2F9C3", "18860" },
- { "2F9C4", "18863" },
- { "2F9C5", "127667" },
- { "2F9C6", "188D7" },
- { "2F9C7", "188DE" },
- { "2F9C8", "14635" },
- { "2F9C9", "188FA" },
- { "2F9CA", "134BB" },
- { "2F9CB", "1278AE" },
- { "2F9CC", "127966" },
- { "2F9CD", "146BE" },
- { "2F9CE", "146C7" },
- { "2F9CF", "18AA0" },
- { "2F9D0", "18AED" },
- { "2F9D1", "18B8A" },
- { "2F9D2", "18C55" },
- { "2F9D3", "127CA8" },
- { "2F9D4", "18CAB" },
- { "2F9D5", "18CC1" },
- { "2F9D6", "18D1B" },
- { "2F9D7", "18D77" },
- { "2F9D8", "127F2F" },
- { "2F9D9", "120804" },
- { "2F9DA", "18DCB" },
- { "2F9DB", "18DBC" },
- { "2F9DC", "18DF0" },
- { "2F9DD", "1208DE" },
- { "2F9DE", "18ED4" },
- { "2F9DF", "18F38" },
- { "2F9E0", "1285D2" },
- { "2F9E1", "1285ED" },
- { "2F9E2", "19094" },
- { "2F9E3", "190F1" },
- { "2F9E4", "19111" },
- { "2F9E5", "12872E" },
- { "2F9E6", "1911B" },
- { "2F9E7", "19238" },
- { "2F9E8", "192D7" },
- { "2F9E9", "192D8" },
- { "2F9EA", "1927C" },
- { "2F9EB", "193F9" },
- { "2F9EC", "19415" },
- { "2F9ED", "128BFA" },
- { "2F9EE", "1958B" },
- { "2F9EF", "14995" },
- { "2F9F0", "195B7" },
- { "2F9F1", "128D77" },
- { "2F9F2", "149E6" },
- { "2F9F3", "196C3" },
- { "2F9F4", "15DB2" },
- { "2F9F5", "19723" },
- { "2F9F6", "129145" },
- { "2F9F7", "12921A" },
- { "2F9F8", "14A6E" },
- { "2F9F9", "14A76" },
- { "2F9FA", "197E0" },
- { "2F9FB", "12940A" },
- { "2F9FC", "14AB2" },
- { "2F9FD", "129496" },
- { "2F9FE", "1980B" },
- { "2F9FF", "1980B" },
- { "2FA00", "19829" },
- { "2FA01", "1295B6" },
- { "2FA02", "198E2" },
- { "2FA03", "14B33" },
- { "2FA04", "19929" },
- { "2FA05", "199A7" },
- { "2FA06", "199C2" },
- { "2FA07", "199FE" },
- { "2FA08", "14BCE" },
- { "2FA09", "129B30" },
- { "2FA0A", "19B12" },
- { "2FA0B", "19C40" },
- { "2FA0C", "19CFD" },
- { "2FA0D", "14CCE" },
- { "2FA0E", "14CED" },
- { "2FA0F", "19D67" },
- { "2FA10", "12A0CE" },
- { "2FA11", "14CF8" },
- { "2FA12", "12A105" },
- { "2FA13", "12A20E" },
- { "2FA14", "12A291" },
- { "2FA15", "19EBB" },
- { "2FA16", "14D56" },
- { "2FA17", "19EF9" },
- { "2FA18", "19EFE" },
- { "2FA19", "19F05" },
- { "2FA1A", "19F0F" },
- { "2FA1B", "19F16" },
- { "2FA1C", "19F3B" },
- { "2FA1D", "12A600" },
-};
-
-// global constructor
-
-static struct unicode_decompose_init {
- unicode_decompose_init();
-} _unicode_decompose_init;
-
-unicode_decompose_init::unicode_decompose_init() {
- for (unsigned int i = 0;
- i < sizeof(unicode_decompose_list)/sizeof(unicode_decompose_list[0]);
- i++) {
- unicode_decompose *dec = new unicode_decompose[1];
- dec->value = (char *)unicode_decompose_list[i].value;
- unicode_decompose_table.define(unicode_decompose_list[i].key, dec);
- }
-}
-
-const char *decompose_unicode(const char *s)
-{
- unicode_decompose *result = unicode_decompose_table.lookup(s);
- return result ? result->value : 0;
-}
diff --git a/contrib/groff/src/xditview/ChangeLog b/contrib/groff/src/xditview/ChangeLog
deleted file mode 100644
index a63d984..0000000
--- a/contrib/groff/src/xditview/ChangeLog
+++ /dev/null
@@ -1,520 +0,0 @@
-Version 1.19 released
-=====================
-
-2003-03-03 Werner LEMBERG <wl@gnu.org>
-
- * Imakefile.in (extraclean): Added gxditview._man.
-
-2003-01-28 Werner LEMBERG <wl@gnu.org>
-
- * Imakefile.in (SEP): New variable; set to @PATH_SEPARATOR@.
- (GROFF_FONTPATH): Use it.
-
-2003-01-07 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (Adobe_Symbol_map): Add `sqrt'.
-
-2003-01-06 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (Adobe_Symbol_map): Add `integral'.
-
-2002-12-29 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (ISO_8859_1_map): Remove `ap' and `eq'.
-
-2002-12-20 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (Adobe_Symbol_map): Don't include `or'.
- * draw.c (AdjustCharDeltas): Apply correction only if nadj > 1.
- (DoCharacter): Call FlushCharCache if font size and font number
- differ.
- Reset `dw->dvi.cache.adjustable' properly.
-
-2002-12-09 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (ISO_8859_1_map): Use `tno' symbol instead of `no'.
-
-2002-12-01 Werner LEMBERG <wl@gnu.org>
-
- * Imakefile.in: Use `InstallAppDefaultsLong' instead of
- `InstallAppDefaults' to make it work if build directory isn't
- $srcdir.
-
-2002-11-24 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (Adobe_Symbol_map): Add glyph `braceex'.
-
-2002-11-14 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (ISO_8859_1_map): Don't include `or'.
-
-Version 1.18.1 released
-=======================
-
-2002-09-16 Werner LEMBERG <wl@gnu.org>
-
- * Imakefile.in (GROFF_LOCALFONTDIR): New variable.
- (GROFF_FONTPATH): Use it.
- Remove /usr/local/lib/font.
-
-Version 1.18.0 released
-=======================
-
-2002-06-22 Werner LEMBERG <wl@gnu.org>
-
- * gxditview.c (main): Handle `-help' and `--help' correctly.
-
-2002-06-17 Colin Watson <cjwatson@debian.org>
-
- * Imakefile.in: s/@top_builddir@/@groff_top_builddir@/.
-
-2002-04-06 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (ISO_8859_1_map, Adobe_Symbol_map): Remove all
- characters > 0x80.
- * parse.c (ParseInput): Ignore `m' command.
- (ParseDrawFunction): Don't move for unknown drawing functions.
- Don't move for `f' drawing function.
-
-2002-03-25 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (ISO_8859_1_map): Use `t+-', `tmu', and `tdi' symbols
- instead of `+-', `mu', and `di', respectively.
-
-2002-02-23 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c (ISO_8859_1_map): Add `mc' symbol.
-
-2001-09-22 Werner LEMBERG <wl@gnu.org>
-
- * Imakefile.in: Redefine `ProgramTargetHelper' as
- `ProgramTargetHelperNoMan' and add a call to `InstallManPageLong'
- to make the `install.man' target work if the build directory isn't
- $srcdir.
-
-Version 1.17.2 released
-=======================
-
-Version 1.17.1 released
-=======================
-
-2001-04-21 Albert Chin-A-Young <china@thewrittenword.com>
-
- * Imakefile.in: Add support for recent HP architectures.
-
-Version 1.17 released
-=====================
-
-2001-01-04 Rob Daasch <daasch@ece.pdx.edu>
-
- * parse.c (ParseInput): Added 'F' to command switch to swallow
- filename strings as ignored comments.
-
-2000-12-02 Werner LEMBERG <wl@gnu.org>
-
- * device.c (find_file): Remove home directory in search path.
-
-2000-11-14 Werner LEMBERG <wl@gnu.org>
-
- * device.c (open_device_file): Remove `path' parameter.
- (find_file): Construct font path similar to groff: First the contents
- of GROFF_FONT_PATH, then the home directory, and finally the default
- font path.
- * Imakefile.in: Fix GROFF_DATAPROGRAMDIR and GROFF_FONTPATH.
-
-2000-10-23 Werner LEMBERG <wl@gnu.org>
-
- Change installation structure for data files from .../groff/... to
- .../groff/<version><revision>/... to be conform with other GNU
- programs.
-
- * Imakefile.in: Implement it.
-
-Version 1.16.1 released
-=======================
-
-Version 1.16 released
-=====================
-
-2000-05-18 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c: Adding `cq' as an alias for "'" in latin-1 map.
-
-2000-05-03 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c: Adding `dq' as an alias for `"' in latin-1 map.
-
-2000-04-28 Werner LEMBERG <wl@gnu.org>
-
- * DviChar.c: Replacing `md' glyph name with `pc' in latin-1 map to
- make it distinct from the `md' glyph in the symbol font.
-
-2000-03-03 Werner LEMBERG <wl@gnu.org>
-
- * Imakefile replaced with Imakefile.in which will be configured by
- the main configure script of groff. This will set the correct font
- path, and it will make it possible to build xditview in a directory
- different from $srcdir.
-
-2000-03-01 Colin Phipps <crp22@cam.ac.uk>
-
- * Dvi.c (OpenFile): Use tmpdir() for security reasons.
- * xtotroff.c (MapFont): Avoid race while opening file.
-
-2000-02-06 Werner LEMBERG <wl@gnu.org>
-
- * Imakefile: Adapted to new directory structure.
-
- * README: Updated.
-
-Version 1.15 released
-=====================
-
-1999-12-21 Werner LEMBERG <wl@gnu.org>
-
- * README: Fixed ftp GNU address.
-
-1999-12-13 Werner LEMBERG <wl@gnu.org>
-
- * device.c: Use extern declarations of strtok(), strchr(), and
- getenv() only if not defined as macros.
-
-1999-11-18 Larry Jones <larry.jones@sdrc.com>
-
- * xditview.c: Add fallback_resources to allow running without
- access to the app-defaults file.
-
- * Imakefile: Added rule to create app-defaults to a C header file.
-
- * GXditview-ad.h: New file containing fallback default resources.
-
- * ad2c: New file to do the app-defaults -> C header file
- conversion.
-
-1999-10-27 Larry Jones <larry.jones@sdrc.com>
-
- * font.c (DisposeFontSizes): If there's a problem loading a font,
- xditview will fall-back and use the default font, but it hasn't
- checked before unloading fonts which could result in unloading the
- default font (possibly multiple times) and then X errors.
-
-1999-09-13 Werner LEMBERG <wl@gnu.org>
-
- * Imakefile (extraclean): Added Makefile.
-
- * xditview.c (main, MakePrompt): Fixing compilation warnings.
-
- * TODO: Imakefile should be replaced with a configure script.
-
-1999-09-13 Werner LEMBERG <wl@gnu.org>
-
- * Makefile: Removed.
-
-1999-09-12 Werner LEMBERG <wl@gnu.org>
-
- * Imakefile (GROFF_FONTPATH): Another addition.
-
- * device.c (FONTPATH): Update to match current groff version.
-
-1999-09-11 Larry Jones <larry.jones@sdrc.com>
-
- * Imakefile (GROFF_LIBDIR, GROFF_FONTPATH): Update to match
- current groff version.
-
- * Dvi.c (Realize, Destroy), DviP.h, draw.c (setFillGC), gray*.bm:
- Allow 8 levels of gray rather than just 1.
-
- * draw.c (DrawFilledCircle, DrawFilledEllipse, DrawFilledPolygon):
- Draw outlines to prevent gaps between abutting figures.
-
-1999-05-27 Werner LEMBERG <wl@gnu.org>
-
- * xtotroff.c (usage): Fixed typo.
-
-Mon Sep 11 10:40:33 1995 James Clark <jjc@jclark.com>
-
- * device.c (INT_MIN, INT_MAX): Don't define if already defined.
-
-Mon Aug 8 11:14:11 1994 James Clark (jjc@jclark.com)
-
- * DviChar.c (Adobe_Symbol_map): Use \(nb for notsubset.
-
-Tue Apr 19 04:41:16 1994 James Clark (jjc@jclark.com)
-
- * Dvi.c (resources): Change default for background and foreground
- to "XtDefaultBackground" and "XtDefaultForeground".
-
-Sat Feb 12 10:38:47 1994 James Clark (jjc@jclark.com)
-
- * DviChar.c (Adobe_Symbol_map): Rename radicalex to rn.
-
-Thu May 27 20:30:12 1993 James Clark (jjc@jclark.com)
-
- * device.c (isascii): Define if necessary.
- (canonicalize_name): Cast argument to isdigit() to unsigned char.
-
-Thu Apr 29 18:36:57 1993 James Clark (jjc at jclark.com)
-
- * xditview.c: Include <X11/Xos.h>.
- (NewFile): Don't declare rindex(). Use strrchr() rather than
- rindex().
-
-Tue Mar 30 15:12:09 1993 James Clark (jjc at jclark)
-
- * draw.c (charExists): Check that fi->per_char is not NULL.
-
-Sat Dec 12 17:42:40 1992 James Clark (jjc at jclark)
-
- * Dvi.c (SetGeometry): Cast XtMakeGeometryRequest arguments.
-
- * draw.c (DrawPolygon, DrawFilledPolygon): Cast Xtfree argument.
-
- * font.c (DisposeFontSizes): Add declaration.
-
- * draw.c (FakeCharacter): Add declaration.
-
-Wed Oct 28 13:24:00 1992 James Clark (jjc at jclark)
-
- * Imakefile (install.dev): Deleted.
- (fonts): New target.
-
-Mon Oct 12 10:50:44 1992 James Clark (jjc at jclark)
-
- * Imakefile (install.dev): Say when we're installing devX*-12.
-
- * Imakefile (install.dev): Depends on DESC and FontMap.
-
-Thu Oct 1 20:03:45 1992 James Clark (jjc at jclark)
-
- * xditview.c (Syntax): Mention -filename option.
-
-Sat Aug 15 12:56:39 1992 James Clark (jjc at jclark)
-
- * GXditview.ad: Bind space and return to NextPage. Bind backspace
- and delete to previous page.
-
- * DviChar.c (Adobe_Symbol_map): Add `an'.
-
- * DviChar.c (Adobe_Symbol_map): Add arrowvertex, arrowverttp, and
- arrowvertbt.
-
-Mon Aug 10 11:54:27 1992 James Clark (jjc at jclark)
-
- * FontMap: Add m/p fields to the fonts names.
-
-Sat Aug 8 12:00:28 1992 James Clark (jjc at jclark)
-
- * DESC: Leave font positions 5-9 blank.
-
-Tue Jul 28 11:37:05 1992 James Clark (jjc at jclark)
-
- * Imakefile: Don't use gendef. Pass definition of FONTPATH using
- DEFINES.
- (path.h): Deleted.
- (device.c): Don't include path.h. Provide default definition of
- FONTPATH.
-
-Mon Jul 6 14:06:53 1992 James Clark (jjc at jclark)
-
- * Imakefile: Don't install tmac.X and tmac.Xps.
- * tmac.X, tmac.Xps: Moved to ../macros.
-
- * Imakefile: Don't install eqnchar.
- * eqnchar: Deleted.
-
-Sun Jun 14 12:55:02 1992 James Clark (jjc@jclark)
-
- * tmac.Xps: Handle OE, oe, lq, rq.
- * draw.c (FakeCharacter): Don't handle these.
-
- * draw.c (FakeCharacter): Don't handle f/.
-
-Mon Jun 8 11:46:37 1992 James Clark (jjc@jclark)
-
- * tmac.X: Translate char160 to space.
-
-Sun Jun 7 14:39:53 1992 James Clark (jjc@jclark)
-
- * tmac.X: Do `mso tmac.psic' before restoring compatibility mode.
-
- * tmac.X: Add \(OE, \(oe, \(ah, \(ao, \(ho.
-
- * tmac.Xps: Make it work in compatibility mode.
- Redo existing character definitions with .Xps-char.
- Add more character definitions.
- (Xps-char): New macro.
-
-Sat Jun 6 21:46:03 1992 James Clark (jjc@jclark)
-
- * DviChar.c (Adobe_Symbol_map): Add +h, +f, +p, Fn, lz.
- * tmac.X: Add \(bq, \(Bq, \(aq.
- * tmac.Xps: Handle \(aq, \(bq, \(Bq, \(Fn.
-
-Wed Jun 3 11:11:15 1992 James Clark (jjc@jclark)
-
- * DviChar.c (Adobe_Symbol_map): Add wp.
-
-Tue Apr 21 09:21:59 1992 James Clark (jjc at jclark)
-
- * GXditview.ad: Bind n, p, q keys to NextPage, PreviousPage and
- Quit actions.
-
- * xditview.c (RerasterizeAction): New function.
- (xditview_actions): Add RerasterizeAction.
- * GXditview.ad: Bind r key to Rerasterize action.
-
-Fri Apr 17 08:25:36 1992 James Clark (jjc at jclark)
-
- * xditview.c: Add -filename option.
- (main): Copy any -filename argument into current_file_name.
-
-Mon Mar 16 10:21:58 1992 James Clark (jjc at jclark)
-
- * tmac.X: Load tmac.pspic.
-
-Sun Mar 8 11:27:19 1992 James Clark (jjc at jclark)
-
- * Lex.c (GetLine, GetWord, GetNumber): Rewrite.
-
-Sat Oct 12 22:58:52 1991 James Clark (jjc at jclark)
-
- * Dvi.c (SetDevice): If the size change request is refused but a
- larger geometry is offered, request that.
-
-Wed Oct 9 12:27:48 1991 James Clark (jjc at jclark)
-
- * font.c (InstallFontSizes): Ignore FontNameAverageWidth component.
-
- * Dvi.c (default_font_map): Add `adobe' to font names to avoid
- ambiguity.
-
- * FontMap: New file.
- * FontMap.X100, FontMap.X75: Deleted.
- * xtotroff.c (main, usage): Add -s and -r options.
- (MapFont): Change the font pattern to have the selected resolution and
- size.
- * Imakefile (install.dev): Use FontMap and supply appropriate -s
- and -r options.
-
- * xtotroff.c (MapFont): Check for ambiguity by comparing canonicalized
- font names.
-
- * DviP.h (DviFontList): Add initialized and scalable members.
- (font.c): Add support for scalable fonts based on R5 xditview.
-
- * DviChar.c: Use xmalloc rather than malloc.
- * xditview.c (xmalloc): New function.
- * xtotroff.c (xmalloc): New function.
- * other files: Use XtMalloc and XtFree instead of malloc and free.
-
-Thu Aug 29 20:15:31 1991 James Clark (jjc at jclark)
-
- * draw.c (setGC): Do multiplication in floating point to avoid
- overflow.
-
-Tue Aug 13 12:04:41 1991 James Clark (jjc at jclark)
-
- * draw.c (FakeCharacter): Remove casts in defintion of pack2.
-
-Tue Jul 30 11:42:39 1991 James Clark (jjc at jclark)
-
- * tmac.Xps: New file.
- * Imakefile (install): Install tmac.Xps.
-
-Tue Jul 2 09:31:37 1991 James Clark (jjc at jclark)
-
- * xtotroff.c (main): Pass argv[0] to usage().
-
-Sun Jun 30 12:34:06 1991 James Clark (jjc at jclark)
-
- * xtotroff.c (MapFont): Handle the case where XLoadQueryFont
- returns NULL.
-
-Sat Jun 29 12:32:52 1991 James Clark (jjc at jclark)
-
- * Imakefile: Use ../gendef to generate path.h.
-
-Sun Jun 16 13:26:34 1991 James Clark (jjc at jclark)
-
- * Imakefile (depend.o): Change to device.o.
-
-Sun Jun 2 12:17:56 1991 James Clark (jjc at jclark)
-
- * Imakefile: Remove spaces from the beginning of variable
- assignment lines.
-
-Sun May 26 14:14:01 1991 James Clark (jjc at jclark)
-
- * xditview.c (Syntax): Update.
-
- * Dvi.c (DviSaveToFile, SaveToFile): New functions.
- (FindPage): Check that we're not readingTmp before checking for
- end of file of normal input file.
- (ClassPartInitialize): New function.
- * Dvi.h: Add declaration of DviSaveToFile.
- * DviP.h: Add save method to DviClassPart. Declare
- InheritSaveToFile.
- * xditview.c (DoPrint, Print, PrintAction): New functions.
- * xditview.c: Add print menu entry.
- * xditview.c: Provide printCommand application resource.
- * lex.c: Don't output EOF to temporary file.
-
- * Dvi.c (QueryGeometry): Check request->request_mode.
-
- * Dvi.c (SetDevice): New function.
- (SetDeviceResolution): Deleted.
-
- * Dvi.c: Add resolution resource.
- * DviP.h: Add definitions of XtNResolution and XtCResolution.
- * xditview.c: Add -resolution argument.
- * GXditview.ad: Add default for GXditview.height.
- * Dvi.c (Initialize, SetDevice): Use default_resolution.
-
- * Dvi.c: Make MY_HEIGHT and MY_WIDTH use the paperlength and
- paperwidth commands in the DESC file.
-
- * Dvi.c: Add SS font to default font map.
-
- * draw.c: Rewritten so as not to assume device and display
- resolution is the same.
- * DviP.h: Include device.h. Add device_font member to DviFontList.
- Add adjustable array to DviCharCache. Add text_x_width,
- text_device_width, word_flag, device_font, device_font_number,
- device, native, device_resolution, display_resolution,
- paperlength, paperwidth, scale_factor, sizescale members.
- * Dvi.c (Initialize): Initialize new variable used by draw.c.
- (Destroy): Call device_destroy.
- * font.c (MaxFontPosition): New function.
- (LookupFontSizeBySize): Handle sizescale.
- (InstallFont): Load the device font.
- (ForgetFonts): New function.
- (QueryDeviceFont): New function.
- * parse.c (ParseInput): Handle t and u commands. Split off
- character output into draw.c.
- (ParseDeviceControl): Ignore res command. Use the device argument
- to the T command.
-
- * font.c (MapXNameToDviName): Ifdefed out.
-
- * path.h: New file.
- * device.c, device.h: New files.
-
- * DviChar.c: Add entries for lB, rB, oq, lC, rC, md.
-
- * INSTALL: New file.
-
- * libxdvi: Merged into main directory.
- * xtotroff.c, xditview.c: Change includes accordingly.
-
- * devX75, devX100: Merged into main directory.
- * xditview.man: Renamed to gxditview.man.
-
- * Xditview.ad: Renamed to GXditview.ad.
- * xditview.c (main): Use class of GXditview rather than xditview.
-
- * Imakefile: New file.
- * Makefile: Deleted.
-
- * xtotroff.c (MapFont): Unlink output file before opening it.
-
- * Started separate ChangeLog.
diff --git a/contrib/groff/src/xditview/DESC b/contrib/groff/src/xditview/DESC
deleted file mode 100644
index 172170c..0000000
--- a/contrib/groff/src/xditview/DESC
+++ /dev/null
@@ -1,9 +0,0 @@
-styles R I B BI
-fonts 6 0 0 0 0 0 S
-sizes 8 10 12 14 18 24 0
-res 75
-X11
-hor 1
-vert 1
-unitwidth 10
-postpro gxditview
diff --git a/contrib/groff/src/xditview/Dvi.c b/contrib/groff/src/xditview/Dvi.c
deleted file mode 100644
index 08eb810..0000000
--- a/contrib/groff/src/xditview/Dvi.c
+++ /dev/null
@@ -1,573 +0,0 @@
-#ifndef SABER
-#ifndef lint
-static char Xrcsid[] = "$XConsortium: Dvi.c,v 1.9 89/12/10 16:12:25 rws Exp $";
-#endif /* lint */
-#endif /* SABER */
-
-/*
- * Dvi.c - Dvi display widget
- *
- */
-
-#define XtStrlen(s) ((s) ? strlen(s) : 0)
-
- /* The following are defined for the reader's convenience. Any
- Xt..Field macro in this code just refers to some field in
- one of the substructures of the WidgetRec. */
-
-#include <X11/IntrinsicP.h>
-#include <X11/StringDefs.h>
-#include <X11/Xmu/Converters.h>
-#include <stdio.h>
-#include <ctype.h>
-#include "DviP.h"
-
-/****************************************************************
- *
- * Full class record constant
- *
- ****************************************************************/
-
-/* Private Data */
-
-static char default_font_map[] = "\
-TR -adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
-TI -adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
-TB -adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
-TBI -adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
-CR -adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
-CI -adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
-CB -adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
-CBI -adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
-HR -adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
-HI -adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
-HB -adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
-HBI -adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
-NR -adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
-NI -adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
-NB -adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
-NBI -adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
-S -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
-SS -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
-";
-
-#define offset(field) XtOffset(DviWidget, field)
-
-#define MY_WIDTH(dw) ((int)(dw->dvi.paperwidth * dw->dvi.scale_factor + .5))
-#define MY_HEIGHT(dw) ((int)(dw->dvi.paperlength * dw->dvi.scale_factor + .5))
-
-static XtResource resources[] = {
- {XtNfontMap, XtCFontMap, XtRString, sizeof (char *),
- offset(dvi.font_map_string), XtRString, default_font_map},
- {XtNforeground, XtCForeground, XtRPixel, sizeof (unsigned long),
- offset(dvi.foreground), XtRString, "XtDefaultForeground"},
- {XtNbackground, XtCBackground, XtRPixel, sizeof (unsigned long),
- offset(dvi.background), XtRString, "XtDefaultBackground"},
- {XtNpageNumber, XtCPageNumber, XtRInt, sizeof (int),
- offset(dvi.requested_page), XtRString, "1"},
- {XtNlastPageNumber, XtCLastPageNumber, XtRInt, sizeof (int),
- offset (dvi.last_page), XtRString, "0"},
- {XtNfile, XtCFile, XtRFile, sizeof (FILE *),
- offset (dvi.file), XtRFile, (char *) 0},
- {XtNseek, XtCSeek, XtRBoolean, sizeof (Boolean),
- offset(dvi.seek), XtRString, "false"},
- {XtNfont, XtCFont, XtRFontStruct, sizeof (XFontStruct *),
- offset(dvi.default_font), XtRString, "xtdefaultfont"},
- {XtNbackingStore, XtCBackingStore, XtRBackingStore, sizeof (int),
- offset(dvi.backing_store), XtRString, "default"},
- {XtNnoPolyText, XtCNoPolyText, XtRBoolean, sizeof (Boolean),
- offset(dvi.noPolyText), XtRString, "false"},
- {XtNresolution, XtCResolution, XtRInt, sizeof(int),
- offset(dvi.default_resolution), XtRString, "75"},
-};
-
-#undef offset
-
-static void ClassInitialize ();
-static void ClassPartInitialize();
-static void Initialize(), Realize (), Destroy (), Redisplay ();
-static Boolean SetValues (), SetValuesHook ();
-static XtGeometryResult QueryGeometry ();
-static void ShowDvi ();
-static void CloseFile (), OpenFile ();
-static void FindPage ();
-
-static void SaveToFile ();
-
-DviClassRec dviClassRec = {
-{
- &widgetClassRec, /* superclass */
- "Dvi", /* class_name */
- sizeof(DviRec), /* size */
- ClassInitialize, /* class_initialize */
- ClassPartInitialize, /* class_part_initialize */
- FALSE, /* class_inited */
- Initialize, /* initialize */
- NULL, /* initialize_hook */
- Realize, /* realize */
- NULL, /* actions */
- 0, /* num_actions */
- resources, /* resources */
- XtNumber(resources), /* resource_count */
- NULLQUARK, /* xrm_class */
- FALSE, /* compress_motion */
- TRUE, /* compress_exposure */
- TRUE, /* compress_enterleave */
- FALSE, /* visible_interest */
- Destroy, /* destroy */
- NULL, /* resize */
- Redisplay, /* expose */
- SetValues, /* set_values */
- SetValuesHook, /* set_values_hook */
- NULL, /* set_values_almost */
- NULL, /* get_values_hook */
- NULL, /* accept_focus */
- XtVersion, /* version */
- NULL, /* callback_private */
- 0, /* tm_table */
- QueryGeometry, /* query_geometry */
- NULL, /* display_accelerator */
- NULL /* extension */
-},{
- SaveToFile, /* save */
-},
-};
-
-WidgetClass dviWidgetClass = (WidgetClass) &dviClassRec;
-
-static void ClassInitialize ()
-{
- XtAddConverter( XtRString, XtRBackingStore, XmuCvtStringToBackingStore,
- NULL, 0 );
-}
-
-/****************************************************************
- *
- * Private Procedures
- *
- ****************************************************************/
-
-/* ARGSUSED */
-static void Initialize(request, new)
- Widget request, new;
-{
- DviWidget dw = (DviWidget) new;
-
- dw->dvi.current_page = 0;
- dw->dvi.font_map = 0;
- dw->dvi.cache.index = 0;
- dw->dvi.text_x_width = 0;
- dw->dvi.text_device_width = 0;
- dw->dvi.word_flag = 0;
- dw->dvi.file = 0;
- dw->dvi.tmpFile = 0;
- dw->dvi.state = 0;
- dw->dvi.readingTmp = 0;
- dw->dvi.cache.char_index = 0;
- dw->dvi.cache.font_size = -1;
- dw->dvi.cache.font_number = -1;
- dw->dvi.cache.adjustable[0] = 0;
- dw->dvi.file_map = 0;
- dw->dvi.fonts = 0;
- dw->dvi.seek = False;
- dw->dvi.device_resolution = dw->dvi.default_resolution;
- dw->dvi.display_resolution = dw->dvi.default_resolution;
- dw->dvi.paperlength = dw->dvi.default_resolution*11;
- dw->dvi.paperwidth = (dw->dvi.default_resolution*8
- + dw->dvi.default_resolution/2);
- dw->dvi.scale_factor = 1.0;
- dw->dvi.sizescale = 1;
- dw->dvi.line_thickness = -1;
- dw->dvi.line_width = 1;
- dw->dvi.fill = DVI_FILL_MAX;
- dw->dvi.device_font = 0;
- dw->dvi.device_font_number = -1;
- dw->dvi.device = 0;
- dw->dvi.native = 0;
-}
-
-#include "gray1.bm"
-#include "gray2.bm"
-#include "gray3.bm"
-#include "gray4.bm"
-#include "gray5.bm"
-#include "gray6.bm"
-#include "gray7.bm"
-#include "gray8.bm"
-
-static void
-Realize (w, valueMask, attrs)
- Widget w;
- XtValueMask *valueMask;
- XSetWindowAttributes *attrs;
-{
- DviWidget dw = (DviWidget) w;
- XGCValues values;
-
- if (dw->dvi.backing_store != Always + WhenMapped + NotUseful) {
- attrs->backing_store = dw->dvi.backing_store;
- *valueMask |= CWBackingStore;
- }
- XtCreateWindow (w, (unsigned)InputOutput, (Visual *) CopyFromParent,
- *valueMask, attrs);
- values.foreground = dw->dvi.foreground;
- values.cap_style = CapRound;
- values.join_style = JoinRound;
- values.line_width = dw->dvi.line_width;
- dw->dvi.normal_GC = XCreateGC (XtDisplay (w), XtWindow (w),
- GCForeground|GCCapStyle|GCJoinStyle
- |GCLineWidth,
- &values);
- dw->dvi.gray[0] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
- gray1_bits,
- gray1_width, gray1_height);
- dw->dvi.gray[1] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
- gray2_bits,
- gray2_width, gray2_height);
- dw->dvi.gray[2] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
- gray3_bits,
- gray3_width, gray3_height);
- dw->dvi.gray[3] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
- gray4_bits,
- gray4_width, gray4_height);
- dw->dvi.gray[4] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
- gray5_bits,
- gray5_width, gray5_height);
- dw->dvi.gray[5] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
- gray6_bits,
- gray6_width, gray6_height);
- dw->dvi.gray[6] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
- gray7_bits,
- gray7_width, gray7_height);
- dw->dvi.gray[7] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
- gray8_bits,
- gray8_width, gray8_height);
- values.background = dw->dvi.background;
- values.stipple = dw->dvi.gray[5];
- dw->dvi.fill_GC = XCreateGC (XtDisplay (w), XtWindow (w),
- GCForeground|GCBackground|GCStipple,
- &values);
-
- dw->dvi.fill_type = 9;
-
- if (dw->dvi.file)
- OpenFile (dw);
- ParseFontMap (dw);
-}
-
-static void
-Destroy(w)
- Widget w;
-{
- DviWidget dw = (DviWidget) w;
-
- XFreeGC (XtDisplay (w), dw->dvi.normal_GC);
- XFreeGC (XtDisplay (w), dw->dvi.fill_GC);
- XFreePixmap (XtDisplay (w), dw->dvi.gray[0]);
- XFreePixmap (XtDisplay (w), dw->dvi.gray[1]);
- XFreePixmap (XtDisplay (w), dw->dvi.gray[2]);
- XFreePixmap (XtDisplay (w), dw->dvi.gray[3]);
- XFreePixmap (XtDisplay (w), dw->dvi.gray[4]);
- XFreePixmap (XtDisplay (w), dw->dvi.gray[5]);
- XFreePixmap (XtDisplay (w), dw->dvi.gray[6]);
- XFreePixmap (XtDisplay (w), dw->dvi.gray[7]);
- DestroyFontMap (dw->dvi.font_map);
- DestroyFileMap (dw->dvi.file_map);
- device_destroy (dw->dvi.device);
-}
-
-/*
- * Repaint the widget window
- */
-
-/* ARGSUSED */
-static void
-Redisplay(w, event, region)
- Widget w;
- XEvent *event;
- Region region;
-{
- DviWidget dw = (DviWidget) w;
- XRectangle extents;
-
- XClipBox (region, &extents);
- dw->dvi.extents.x1 = extents.x;
- dw->dvi.extents.y1 = extents.y;
- dw->dvi.extents.x2 = extents.x + extents.width;
- dw->dvi.extents.y2 = extents.y + extents.height;
- ShowDvi (dw);
-}
-
-/*
- * Set specified arguments into widget
- */
-/* ARGSUSED */
-static Boolean
-SetValues (current, request, new)
- DviWidget current, request, new;
-{
- Boolean redisplay = FALSE;
- char *new_map;
- int cur, req;
-
- if (current->dvi.font_map_string != request->dvi.font_map_string) {
- new_map = XtMalloc (strlen (request->dvi.font_map_string) + 1);
- if (new_map) {
- redisplay = TRUE;
- strcpy (new_map, request->dvi.font_map_string);
- new->dvi.font_map_string = new_map;
- if (current->dvi.font_map_string)
- XtFree (current->dvi.font_map_string);
- current->dvi.font_map_string = 0;
- ParseFontMap (new);
- }
- }
-
- req = request->dvi.requested_page;
- cur = current->dvi.requested_page;
- if (cur != req) {
- if (!request->dvi.file)
- req = 0;
- else {
- if (req < 1)
- req = 1;
- if (current->dvi.last_page != 0 &&
- req > current->dvi.last_page)
- req = current->dvi.last_page;
- }
- if (cur != req)
- redisplay = TRUE;
- new->dvi.requested_page = req;
- if (current->dvi.last_page == 0 && req > cur)
- FindPage (new);
- }
-
- return redisplay;
-}
-
-/*
- * use the set_values_hook entry to check when
- * the file is set
- */
-
-static Boolean
-SetValuesHook (dw, args, num_argsp)
- DviWidget dw;
- ArgList args;
- Cardinal *num_argsp;
-{
- Cardinal i;
-
- for (i = 0; i < *num_argsp; i++) {
- if (!strcmp (args[i].name, XtNfile)) {
- CloseFile (dw);
- OpenFile (dw);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-static void CloseFile (dw)
- DviWidget dw;
-{
- if (dw->dvi.tmpFile)
- fclose (dw->dvi.tmpFile);
- ForgetPagePositions (dw);
-}
-
-static void OpenFile (dw)
- DviWidget dw;
-{
- dw->dvi.tmpFile = 0;
- if (!dw->dvi.seek)
- dw->dvi.tmpFile = tmpfile();
- dw->dvi.requested_page = 1;
- dw->dvi.last_page = 0;
-}
-
-static XtGeometryResult
-QueryGeometry (w, request, geometry_return)
- Widget w;
- XtWidgetGeometry *request, *geometry_return;
-{
- XtGeometryResult ret;
- DviWidget dw = (DviWidget) w;
-
- ret = XtGeometryYes;
- if (((request->request_mode & CWWidth)
- && request->width < MY_WIDTH(dw))
- || ((request->request_mode & CWHeight)
- && request->height < MY_HEIGHT(dw)))
- ret = XtGeometryAlmost;
- geometry_return->width = MY_WIDTH(dw);
- geometry_return->height = MY_HEIGHT(dw);
- geometry_return->request_mode = CWWidth|CWHeight;
- return ret;
-}
-
-SetDevice (dw, name)
- DviWidget dw;
- char *name;
-{
- XtWidgetGeometry request, reply;
- XtGeometryResult ret;
-
- ForgetFonts (dw);
- dw->dvi.device = device_load (name);
- if (!dw->dvi.device)
- return;
- dw->dvi.sizescale = dw->dvi.device->sizescale;
- dw->dvi.device_resolution = dw->dvi.device->res;
- dw->dvi.native = dw->dvi.device->X11;
- dw->dvi.paperlength = dw->dvi.device->paperlength;
- dw->dvi.paperwidth = dw->dvi.device->paperwidth;
- if (dw->dvi.native) {
- dw->dvi.display_resolution = dw->dvi.device_resolution;
- dw->dvi.scale_factor = 1.0;
- }
- else {
- dw->dvi.display_resolution = dw->dvi.default_resolution;
- dw->dvi.scale_factor = ((double)dw->dvi.display_resolution
- / dw->dvi.device_resolution);
- }
- request.request_mode = CWWidth|CWHeight;
- request.width = MY_WIDTH(dw);
- request.height = MY_HEIGHT(dw);
- ret = XtMakeGeometryRequest ((Widget)dw, &request, &reply);
- if (ret == XtGeometryAlmost
- && reply.height >= request.height
- && reply.width >= request.width) {
- request.width = reply.width;
- request.height = reply.height;
- XtMakeGeometryRequest ((Widget)dw, &request, &reply);
- }
-}
-
-static void
-ShowDvi (dw)
- DviWidget dw;
-{
- if (!dw->dvi.file) {
- static char Error[] = "No file selected";
-
- XSetFont (XtDisplay(dw), dw->dvi.normal_GC,
- dw->dvi.default_font->fid);
- XDrawString (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
- 20, 20, Error, strlen (Error));
- return;
- }
-
- FindPage (dw);
-
- dw->dvi.display_enable = 1;
- ParseInput (dw);
- if (dw->dvi.last_page && dw->dvi.requested_page > dw->dvi.last_page)
- dw->dvi.requested_page = dw->dvi.last_page;
-}
-
-static void
-FindPage (dw)
- DviWidget dw;
-{
- int i;
- long file_position;
-
- if (dw->dvi.requested_page < 1)
- dw->dvi.requested_page = 1;
-
- if (dw->dvi.last_page != 0 && dw->dvi.requested_page > dw->dvi.last_page)
- dw->dvi.requested_page = dw->dvi.last_page;
-
- file_position = SearchPagePosition (dw, dw->dvi.requested_page);
- if (file_position != -1) {
- FileSeek(dw, file_position);
- dw->dvi.current_page = dw->dvi.requested_page;
- } else {
- for (i=dw->dvi.requested_page; i > 0; i--) {
- file_position = SearchPagePosition (dw, i);
- if (file_position != -1)
- break;
- }
- if (file_position == -1)
- file_position = 0;
- FileSeek (dw, file_position);
-
- dw->dvi.current_page = i;
-
- dw->dvi.display_enable = 0;
- while (dw->dvi.current_page != dw->dvi.requested_page) {
- dw->dvi.current_page = ParseInput (dw);
- /*
- * at EOF, seek back to the beginning of this page.
- */
- if (!dw->dvi.readingTmp && feof (dw->dvi.file)) {
- file_position = SearchPagePosition (dw,
- dw->dvi.current_page);
- if (file_position != -1)
- FileSeek (dw, file_position);
- dw->dvi.requested_page = dw->dvi.current_page;
- break;
- }
- }
- }
-}
-
-void DviSaveToFile(w, fp)
- Widget w;
- FILE *fp;
-{
- XtCheckSubclass(w, dviWidgetClass, NULL);
- (*((DviWidgetClass) XtClass(w))->command_class.save)(w, fp);
-}
-
-static
-void SaveToFile(w, fp)
- Widget w;
- FILE *fp;
-{
- DviWidget dw = (DviWidget)w;
- long pos;
- int c;
-
- if (dw->dvi.tmpFile) {
- pos = ftell(dw->dvi.tmpFile);
- if (dw->dvi.ungot) {
- pos--;
- dw->dvi.ungot = 0;
- /* The ungot character is in the tmpFile, so we don't
- want to read it from file. */
- (void)getc(dw->dvi.file);
- }
- }
- else
- pos = ftell(dw->dvi.file);
- FileSeek(dw, 0L);
- while (DviGetC(dw, &c) != EOF)
- if (putc(c, fp) == EOF) {
- /* XXX print error message */
- break;
- }
- FileSeek(dw, pos);
-}
-
-static
-void ClassPartInitialize(widget_class)
- WidgetClass widget_class;
-{
- DviWidgetClass wc = (DviWidgetClass)widget_class;
- DviWidgetClass super = (DviWidgetClass) wc->core_class.superclass;
- if (wc->command_class.save == InheritSaveToFile)
- wc->command_class.save = super->command_class.save;
-}
-
-/*
-Local Variables:
-c-indent-level: 8
-c-continued-statement-offset: 8
-c-brace-offset: -8
-c-argdecl-indent: 8
-c-label-offset: -8
-c-tab-always-indent: nil
-End:
-*/
diff --git a/contrib/groff/src/xditview/Dvi.h b/contrib/groff/src/xditview/Dvi.h
deleted file mode 100644
index 5aab7d8..0000000
--- a/contrib/groff/src/xditview/Dvi.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-* $XConsortium: Dvi.h,v 1.4 89/07/21 14:22:06 jim Exp $
-*/
-
-#ifndef _XtDvi_h
-#define _XtDvi_h
-
-/***********************************************************************
- *
- * Dvi Widget
- *
- ***********************************************************************/
-
-/* Parameters:
-
- Name Class RepType Default Value
- ---- ----- ------- -------------
- background Background pixel White
- foreground Foreground Pixel Black
- fontMap FontMap char * ...
- pageNumber PageNumber int 1
-*/
-
-#define XtNfontMap "fontMap"
-#define XtNpageNumber "pageNumber"
-#define XtNlastPageNumber "lastPageNumber"
-#define XtNnoPolyText "noPolyText"
-#define XtNseek "seek"
-#define XtNresolution "resolution"
-
-#define XtCFontMap "FontMap"
-#define XtCPageNumber "PageNumber"
-#define XtCLastPageNumber "LastPageNumber"
-#define XtCNoPolyText "NoPolyText"
-#define XtCSeek "Seek"
-#define XtCResolution "Resolution"
-
-typedef struct _DviRec *DviWidget; /* completely defined in DviPrivate.h */
-typedef struct _DviClassRec *DviWidgetClass; /* completely defined in DviPrivate.h */
-
-extern WidgetClass dviWidgetClass;
-
-extern void DviSaveToFile();
-
-#endif /* _XtDvi_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/contrib/groff/src/xditview/DviChar.c b/contrib/groff/src/xditview/DviChar.c
deleted file mode 100644
index ac4d7ce..0000000
--- a/contrib/groff/src/xditview/DviChar.c
+++ /dev/null
@@ -1,662 +0,0 @@
-/*
- * DviChar.c
- *
- * Map DVI (ditroff output) character names to
- * font indexes and back
- */
-
-#include "DviChar.h"
-
-extern char *xmalloc();
-
-#define allocHash() ((DviCharNameHash *) xmalloc (sizeof (DviCharNameHash)))
-
-struct map_list {
- struct map_list *next;
- DviCharNameMap *map;
-};
-
-static struct map_list *world;
-
-static int standard_maps_loaded = 0;
-static void load_standard_maps ();
-static int hash_name ();
-static dispose_hash(), compute_hash();
-
-DviCharNameMap *
-DviFindMap (encoding)
- char *encoding;
-{
- struct map_list *m;
-
- if (!standard_maps_loaded)
- load_standard_maps ();
- for (m = world; m; m=m->next)
- if (!strcmp (m->map->encoding, encoding))
- return m->map;
- return 0;
-}
-
-void
-DviRegisterMap (map)
- DviCharNameMap *map;
-{
- struct map_list *m;
-
- if (!standard_maps_loaded)
- load_standard_maps ();
- for (m = world; m; m = m->next)
- if (!strcmp (m->map->encoding, map->encoding))
- break;
- if (!m) {
- m = (struct map_list *) xmalloc (sizeof *m);
- m->next = world;
- world = m;
- }
- dispose_hash (map);
- m->map = map;
- compute_hash (map);
-}
-
-static
-dispose_hash (map)
- DviCharNameMap *map;
-{
- DviCharNameHash **buckets;
- DviCharNameHash *h, *next;
- int i;
-
- buckets = map->buckets;
- for (i = 0; i < DVI_HASH_SIZE; i++) {
- for (h = buckets[i]; h; h=next) {
- next = h->next;
- free (h);
- }
- }
-}
-
-static int
-hash_name (name)
- char *name;
-{
- int i = 0;
-
- while (*name)
- i = (i << 1) ^ *name++;
- if (i < 0)
- i = -i;
- return i;
-}
-
-static
-compute_hash (map)
- DviCharNameMap *map;
-{
- DviCharNameHash **buckets;
- int c, s, i;
- DviCharNameHash *h;
-
- buckets = map->buckets;
- for (i = 0; i < DVI_HASH_SIZE; i++)
- buckets[i] = 0;
- for (c = 0; c < DVI_MAP_SIZE; c++)
- for (s = 0; s < DVI_MAX_SYNONYMS; s++) {
- if (!map->dvi_names[c][s])
- break;
- i = hash_name (map->dvi_names[c][s]) % DVI_HASH_SIZE;
- h = allocHash ();
- h->next = buckets[i];
- buckets[i] = h;
- h->name = map->dvi_names[c][s];
- h->position = c;
- }
-
-}
-
-int
-DviCharIndex (map, name)
- DviCharNameMap *map;
- char *name;
-{
- int i;
- DviCharNameHash *h;
-
- i = hash_name (name) % DVI_HASH_SIZE;
- for (h = map->buckets[i]; h; h=h->next)
- if (!strcmp (h->name, name))
- return h->position;
- return -1;
-}
-
-static DviCharNameMap ISO8859_1_map = {
- "iso8859-1",
- 0,
-{
-{ 0, /* 0 */},
-{ 0, /* 1 */},
-{ 0, /* 2 */},
-{ 0, /* 3 */},
-{ 0, /* 4 */},
-{ 0, /* 5 */},
-{ 0, /* 6 */},
-{ 0, /* 7 */},
-{ 0, /* 8 */},
-{ 0, /* 9 */},
-{ 0, /* 10 */},
-{ 0, /* 11 */},
-{ 0, /* 12 */},
-{ 0, /* 13 */},
-{ 0, /* 14 */},
-{ 0, /* 15 */},
-{ 0, /* 16 */},
-{ 0, /* 17 */},
-{ 0, /* 18 */},
-{ 0, /* 19 */},
-{ 0, /* 20 */},
-{ 0, /* 21 */},
-{ 0, /* 22 */},
-{ 0, /* 23 */},
-{ 0, /* 24 */},
-{ 0, /* 25 */},
-{ 0, /* 26 */},
-{ 0, /* 27 */},
-{ 0, /* 28 */},
-{ 0, /* 29 */},
-{ 0, /* 30 */},
-{ 0, /* 31 */},
-{ 0, /* 32 */},
-{ "!", /* 33 */},
-{ "\"", "dq", /* 34 */},
-{ "#", "sh", /* 35 */},
-{ "$", "Do", /* 36 */},
-{ "%", /* 37 */},
-{ "&", /* 38 */},
-{ "'", "cq", /* 39 */},
-{ "(", /* 40 */},
-{ ")", /* 41 */},
-{ "*", /* 42 */},
-{ "+", /* 43 */},
-{ ",", /* 44 */},
-{ "\\-", /* 45 */},
-{ ".", /* 46 */},
-{ "/", "sl", /* 47 */},
-{ "0", /* 48 */},
-{ "1", /* 49 */},
-{ "2", /* 50 */},
-{ "3", /* 51 */},
-{ "4", /* 52 */},
-{ "5", /* 53 */},
-{ "6", /* 54 */},
-{ "7", /* 55 */},
-{ "8", /* 56 */},
-{ "9", /* 57 */},
-{ ":", /* 58 */},
-{ ";", /* 59 */},
-{ "<", /* 60 */},
-{ "=", /* 61 */},
-{ ">", /* 62 */},
-{ "?", /* 63 */},
-{ "@", "at", /* 64 */},
-{ "A", /* 65 */},
-{ "B", /* 66 */},
-{ "C", /* 67 */},
-{ "D", /* 68 */},
-{ "E", /* 69 */},
-{ "F", /* 70 */},
-{ "G", /* 71 */},
-{ "H", /* 72 */},
-{ "I", /* 73 */},
-{ "J", /* 74 */},
-{ "K", /* 75 */},
-{ "L", /* 76 */},
-{ "M", /* 77 */},
-{ "N", /* 78 */},
-{ "O", /* 79 */},
-{ "P", /* 80 */},
-{ "Q", /* 81 */},
-{ "R", /* 82 */},
-{ "S", /* 83 */},
-{ "T", /* 84 */},
-{ "U", /* 85 */},
-{ "V", /* 86 */},
-{ "W", /* 87 */},
-{ "X", /* 88 */},
-{ "Y", /* 89 */},
-{ "Z", /* 90 */},
-{ "[", "lB", /* 91 */},
-{ "\\", "rs", /* 92 */},
-{ "]", "rB", /* 93 */},
-{ "^", "a^", "ha", /* 94 */},
-{ "_", /* 95 */},
-{ "`", "oq", /* 96 */},
-{ "a", /* 97 */},
-{ "b", /* 98 */},
-{ "c", /* 99 */},
-{ "d", /* 100 */},
-{ "e", /* 101 */},
-{ "f", /* 102 */},
-{ "g", /* 103 */},
-{ "h", /* 104 */},
-{ "i", /* 105 */},
-{ "j", /* 106 */},
-{ "k", /* 107 */},
-{ "l", /* 108 */},
-{ "m", /* 109 */},
-{ "n", /* 110 */},
-{ "o", /* 111 */},
-{ "p", /* 112 */},
-{ "q", /* 113 */},
-{ "r", /* 114 */},
-{ "s", /* 115 */},
-{ "t", /* 116 */},
-{ "u", /* 117 */},
-{ "v", /* 118 */},
-{ "w", /* 119 */},
-{ "x", /* 120 */},
-{ "y", /* 121 */},
-{ "z", /* 122 */},
-{ "{", "lC", /* 123 */},
-{ "|", "ba", /* 124 */},
-{ "}", "rC", /* 125 */},
-{ "~", "a~", "ti", /* 126 */},
-{ 0, /* 127 */},
-{ 0, /* 128 */},
-{ 0, /* 129 */},
-{ 0, /* 130 */},
-{ 0, /* 131 */},
-{ 0, /* 132 */},
-{ 0, /* 133 */},
-{ 0, /* 134 */},
-{ 0, /* 135 */},
-{ 0, /* 136 */},
-{ 0, /* 137 */},
-{ 0, /* 138 */},
-{ 0, /* 139 */},
-{ 0, /* 140 */},
-{ 0, /* 141 */},
-{ 0, /* 142 */},
-{ 0, /* 143 */},
-{ 0, /* 144 */},
-{ 0, /* 145 */},
-{ 0, /* 146 */},
-{ 0, /* 147 */},
-{ 0, /* 148 */},
-{ 0, /* 149 */},
-{ 0, /* 150 */},
-{ 0, /* 151 */},
-{ 0, /* 152 */},
-{ 0, /* 153 */},
-{ 0, /* 154 */},
-{ 0, /* 155 */},
-{ 0, /* 156 */},
-{ 0, /* 157 */},
-{ 0, /* 158 */},
-{ 0, /* 159 */},
-{ 0, /* 160 */},
-{ "r!", /* 161 */},
-{ "ct", /* 162 */},
-{ "Po", /* 163 */},
-{ "Cs", /* 164 */},
-{ "Ye", /* 165 */},
-{ "bb", /* 166 */},
-{ "sc", /* 167 */},
-{ "ad", /* 168 */},
-{ "co", /* 169 */},
-{ "Of", /* 170 */},
-{ "Fo", /* 171 */},
-{ "tno", /* 172 */},
-{ "-", "hy", /* 173 */},
-{ "rg", /* 174 */},
-{ "a-", /* 175 */},
-{ "de", /* 176 */},
-{ "t+-", /* 177 */},
-{ "S2", /* 178 */},
-{ "S3", /* 179 */},
-{ "aa", /* 180 */},
-{ "mc", /* 181 */},
-{ "ps", /* 182 */},
-{ "pc", /* 183 */},
-{ "ac", /* 184 */},
-{ "S1", /* 185 */},
-{ "Om", /* 186 */},
-{ "Fc", /* 187 */},
-{ "14", /* 188 */},
-{ "12", /* 189 */},
-{ "34", /* 190 */},
-{ "r?", /* 191 */},
-{ "`A", /* 192 */},
-{ "'A", /* 193 */},
-{ "^A", /* 194 */},
-{ "~A", /* 195 */},
-{ ":A", /* 196 */},
-{ "oA", /* 197 */},
-{ "AE", /* 198 */},
-{ ",C", /* 199 */},
-{ "`E", /* 200 */},
-{ "'E", /* 201 */},
-{ "^E", /* 202 */},
-{ ":E", /* 203 */},
-{ "`I", /* 204 */},
-{ "'I", /* 205 */},
-{ "^I", /* 206 */},
-{ ":I", /* 207 */},
-{ "-D", /* 208 */},
-{ "~N", /* 209 */},
-{ "`O", /* 210 */},
-{ "'O", /* 211 */},
-{ "^O", /* 212 */},
-{ "~O", /* 213 */},
-{ ":O", /* 214 */},
-{ "tmu", /* 215 */},
-{ "/O", /* 216 */},
-{ "`U", /* 217 */},
-{ "'U", /* 218 */},
-{ "^U", /* 219 */},
-{ ":U", /* 220 */},
-{ "'Y", /* 221 */},
-{ "TP", /* 222 */},
-{ "ss", /* 223 */},
-{ "`a", /* 224 */},
-{ "'a", /* 225 */},
-{ "^a", /* 226 */},
-{ "~a", /* 227 */},
-{ ":a", /* 228 */},
-{ "oa", /* 229 */},
-{ "ae", /* 230 */},
-{ ",c", /* 231 */},
-{ "`e", /* 232 */},
-{ "'e", /* 233 */},
-{ "^e", /* 234 */},
-{ ":e", /* 235 */},
-{ "`i", /* 236 */},
-{ "'i", /* 237 */},
-{ "^i", /* 238 */},
-{ ":i", /* 239 */},
-{ "Sd", /* 240 */},
-{ "~n", /* 241 */},
-{ "`o", /* 242 */},
-{ "'o", /* 243 */},
-{ "^o", /* 244 */},
-{ "~o", /* 245 */},
-{ ":o", /* 246 */},
-{ "tdi", /* 247 */},
-{ "/o", /* 248 */},
-{ "`u", /* 249 */},
-{ "'u", /* 250 */},
-{ "^u", /* 251 */},
-{ ":u", /* 252 */},
-{ "'y", /* 253 */},
-{ "Tp", /* 254 */},
-{ ":y", /* 255 */},
-}};
-
-static DviCharNameMap Adobe_Symbol_map = {
- "adobe-fontspecific",
- 1,
-{
-{ 0, /* 0 */},
-{ 0, /* 1 */},
-{ 0, /* 2 */},
-{ 0, /* 3 */},
-{ 0, /* 4 */},
-{ 0, /* 5 */},
-{ 0, /* 6 */},
-{ 0, /* 7 */},
-{ 0, /* 8 */},
-{ 0, /* 9 */},
-{ 0, /* 10 */},
-{ 0, /* 11 */},
-{ 0, /* 12 */},
-{ 0, /* 13 */},
-{ 0, /* 14 */},
-{ 0, /* 15 */},
-{ 0, /* 16 */},
-{ 0, /* 17 */},
-{ 0, /* 18 */},
-{ 0, /* 19 */},
-{ 0, /* 20 */},
-{ 0, /* 21 */},
-{ 0, /* 22 */},
-{ 0, /* 23 */},
-{ 0, /* 24 */},
-{ 0, /* 25 */},
-{ 0, /* 26 */},
-{ 0, /* 27 */},
-{ 0, /* 28 */},
-{ 0, /* 29 */},
-{ 0, /* 30 */},
-{ 0, /* 31 */},
-{ 0, /* 32 */},
-{ "!", /* 33 */},
-{ "fa", /* 34 */},
-{ "#", "sh", /* 35 */},
-{ "te", /* 36 */},
-{ "%", /* 37 */},
-{ "&", /* 38 */},
-{ "st", /* 39 */},
-{ "(", /* 40 */},
-{ ")", /* 41 */},
-{ "**", /* 42 */},
-{ "+", "pl", /* 43 */},
-{ ",", /* 44 */},
-{ "\\-", "mi", /* 45 */},
-{ ".", /* 46 */},
-{ "/", "sl", /* 47 */},
-{ "0", /* 48 */},
-{ "1", /* 49 */},
-{ "2", /* 50 */},
-{ "3", /* 51 */},
-{ "4", /* 52 */},
-{ "5", /* 53 */},
-{ "6", /* 54 */},
-{ "7", /* 55 */},
-{ "8", /* 56 */},
-{ "9", /* 57 */},
-{ ":", /* 58 */},
-{ ";", /* 59 */},
-{ "<", /* 60 */},
-{ "=", "eq", /* 61 */},
-{ ">", /* 62 */},
-{ "?", /* 63 */},
-{ "=~", /* 64 */},
-{ "*A", /* 65 */},
-{ "*B", /* 66 */},
-{ "*X", /* 67 */},
-{ "*D", /* 68 */},
-{ "*E", /* 69 */},
-{ "*F", /* 70 */},
-{ "*G", /* 71 */},
-{ "*Y", /* 72 */},
-{ "*I", /* 73 */},
-{ "+h", /* 74 */},
-{ "*K", /* 75 */},
-{ "*L", /* 76 */},
-{ "*M", /* 77 */},
-{ "*N", /* 78 */},
-{ "*O", /* 79 */},
-{ "*P", /* 80 */},
-{ "*H", /* 81 */},
-{ "*R", /* 82 */},
-{ "*S", /* 83 */},
-{ "*T", /* 84 */},
-{ 0, /* 85 */},
-{ "ts", /* 86 */},
-{ "*W", /* 87 */},
-{ "*C", /* 88 */},
-{ "*Q", /* 89 */},
-{ "*Z", /* 90 */},
-{ "[", "lB", /* 91 */},
-{ "tf", "3d", /* 92 */},
-{ "]", "rB", /* 93 */},
-{ "pp", /* 94 */},
-{ "_", /* 95 */},
-{ "radicalex", /* 96 */},
-{ "*a", /* 97 */},
-{ "*b", /* 98 */},
-{ "*x", /* 99 */},
-{ "*d", /* 100 */},
-{ "*e", /* 101 */},
-{ "*f", /* 102 */},
-{ "*g", /* 103 */},
-{ "*y", /* 104 */},
-{ "*i", /* 105 */},
-{ "+f", /* 106 */},
-{ "*k", /* 107 */},
-{ "*l", /* 108 */},
-{ "*m", /* 109 */},
-{ "*n", /* 110 */},
-{ "*o", /* 111 */},
-{ "*p", /* 112 */},
-{ "*h", /* 113 */},
-{ "*r", /* 114 */},
-{ "*s", /* 115 */},
-{ "*t", /* 116 */},
-{ "*u", /* 117 */},
-{ "+p", /* 118 */},
-{ "*w", /* 119 */},
-{ "*c", /* 120 */},
-{ "*q", /* 121 */},
-{ "*z", /* 122 */},
-{ "lC", "{", /* 123 */},
-{ "ba", "|", /* 124 */},
-{ "rC", "}", /* 125 */},
-{ "ap", /* 126 */},
-{ 0, /* 127 */},
-{ 0, /* 128 */},
-{ 0, /* 129 */},
-{ 0, /* 130 */},
-{ 0, /* 131 */},
-{ 0, /* 132 */},
-{ 0, /* 133 */},
-{ 0, /* 134 */},
-{ 0, /* 135 */},
-{ 0, /* 136 */},
-{ 0, /* 137 */},
-{ 0, /* 138 */},
-{ 0, /* 139 */},
-{ 0, /* 140 */},
-{ 0, /* 141 */},
-{ 0, /* 142 */},
-{ 0, /* 143 */},
-{ 0, /* 144 */},
-{ 0, /* 145 */},
-{ 0, /* 146 */},
-{ 0, /* 147 */},
-{ 0, /* 148 */},
-{ 0, /* 149 */},
-{ 0, /* 150 */},
-{ 0, /* 151 */},
-{ 0, /* 152 */},
-{ 0, /* 153 */},
-{ 0, /* 154 */},
-{ 0, /* 155 */},
-{ 0, /* 156 */},
-{ 0, /* 157 */},
-{ 0, /* 158 */},
-{ 0, /* 159 */},
-{ 0, /* 160 */},
-{ "*U", /* 161 */},
-{ "fm", /* 162 */},
-{ "<=", /* 163 */},
-{ "f/", /* 164 */},
-{ "if", /* 165 */},
-{ "Fn", /* 166 */},
-{ "CL", /* 167 */},
-{ "DI", /* 168 */},
-{ "HE", /* 169 */},
-{ "SP", /* 170 */},
-{ "<>", /* 171 */},
-{ "<-", /* 172 */},
-{ "ua", "arrowverttp", /* 173 */},
-{ "->", /* 174 */},
-{ "da", "arrowvertbt", /* 175 */},
-{ "de", /* 176 */},
-{ "+-", /* 177 */},
-{ "sd", /* 178 */},
-{ ">=", /* 179 */},
-{ "mu", /* 180 */},
-{ "pt", /* 181 */},
-{ "pd", /* 182 */},
-{ "bu", /* 183 */},
-{ "di", /* 184 */},
-{ "!=", /* 185 */},
-{ "==", /* 186 */},
-{ "~=", "~~", /* 187 */},
-{ 0, /* 188 */},
-{ "arrowvertex", /* 189 */},
-{ "an", /* 190 */},
-{ "CR", /* 191 */},
-{ "Ah", /* 192 */},
-{ "Im", /* 193 */},
-{ "Re", /* 194 */},
-{ "wp", /* 195 */},
-{ "c*", /* 196 */},
-{ "c+", /* 197 */},
-{ "es", /* 198 */},
-{ "ca", /* 199 */},
-{ "cu", /* 200 */},
-{ "sp", /* 201 */},
-{ "ip", /* 202 */},
-{ "nb", /* 203 */},
-{ "sb", /* 204 */},
-{ "ib", /* 205 */},
-{ "mo", /* 206 */},
-{ "nm", /* 207 */},
-{ "/_", /* 208 */},
-{ "gr", /* 209 */},
-{ "rg", /* 210 */},
-{ "co", /* 211 */},
-{ "tm", /* 212 */},
-{ 0, /* 213 */},
-{ "sr", "sqrt", /* 214 */},
-{ "md", /* 215 */},
-{ "no", /* 216 */},
-{ "AN", /* 217 */},
-{ "OR", /* 218 */},
-{ "hA", /* 219 */},
-{ "lA", /* 220 */},
-{ "uA", /* 221 */},
-{ "rA", /* 222 */},
-{ "dA", /* 223 */},
-{ "lz", /* 224 */},
-{ "la", /* 225 */},
-{ 0, /* 226 */},
-{ 0, /* 227 */},
-{ 0, /* 228 */},
-{ 0, /* 229 */},
-{ "parenlefttp", /* 230 */},
-{ "parenleftex", /* 231 */},
-{ "parenleftbt", /* 232 */},
-{ "bracketlefttp", "lc", /* 233 */},
-{ "bracketleftex", /* 234 */},
-{ "bracketleftbt", "lf", /* 235 */},
-{ "bracelefttp", "lt", /* 236 */},
-{ "braceleftmid", "lk", /* 237 */},
-{ "braceleftbt", "lb", /* 238 */},
-{ "bracerightex", "braceleftex", "braceex", "bv", /* 239 */},
-{ 0, /* 240 */},
-{ "ra", /* 241 */},
-{ "is", "integral", /* 242 */},
-{ 0, /* 243 */},
-{ 0, /* 244 */},
-{ 0, /* 245 */},
-{ "parenrighttp", /* 246 */},
-{ "parenrightex", /* 247 */},
-{ "parenrightbt", /* 248 */},
-{ "bracketrighttp", "rc", /* 249 */},
-{ "bracketrightex", /* 250 */},
-{ "bracketrightbt", "rf", /* 251 */},
-{ "bracerighttp", "rt", /* 252 */},
-{ "bracerightmid", "rk", /* 253 */},
-{ "bracerightbt", "rb", /* 254 */},
-{ 0, /* 255 */},
-}};
-
-
-static void
-load_standard_maps ()
-{
- standard_maps_loaded = 1;
- DviRegisterMap (&ISO8859_1_map);
- DviRegisterMap (&Adobe_Symbol_map);
-}
diff --git a/contrib/groff/src/xditview/DviChar.h b/contrib/groff/src/xditview/DviChar.h
deleted file mode 100644
index b075240..0000000
--- a/contrib/groff/src/xditview/DviChar.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * DviChar.h
- *
- * descriptions for mapping dvi names to
- * font indexes and back. Dvi fonts are all
- * 256 elements (actually only 256-32 are usable).
- *
- * The encoding names are taken from X -
- * case insensitive, a dash separating the
- * CharSetRegistry from the CharSetEncoding
- */
-
-# define DVI_MAX_SYNONYMS 10
-# define DVI_MAP_SIZE 256
-# define DVI_HASH_SIZE 256
-
-typedef struct _dviCharNameHash {
- struct _dviCharNameHash *next;
- char *name;
- int position;
-} DviCharNameHash;
-
-typedef struct _dviCharNameMap {
- char *encoding;
- int special;
- char *dvi_names[DVI_MAP_SIZE][DVI_MAX_SYNONYMS];
- DviCharNameHash *buckets[DVI_HASH_SIZE];
-} DviCharNameMap;
-
-extern DviCharNameMap *DviFindMap ( /* char *encoding */ );
-extern void DviRegisterMap ( /* DviCharNameMap *map */ );
-#ifdef NOTDEF
-extern char *DviCharName ( /* DviCharNameMap *map, int index, int synonym */ );
-#else
-#define DviCharName(map,index,synonym) ((map)->dvi_names[index][synonym])
-#endif
-extern int DviCharIndex ( /* DviCharNameMap *map, char *name */ );
diff --git a/contrib/groff/src/xditview/DviP.h b/contrib/groff/src/xditview/DviP.h
deleted file mode 100644
index 851fdfe..0000000
--- a/contrib/groff/src/xditview/DviP.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * $XConsortium: DviP.h,v 1.5 89/07/22 19:44:08 keith Exp $
- */
-
-/*
- * DviP.h - Private definitions for Dvi widget
- */
-
-#ifndef _XtDviP_h
-#define _XtDviP_h
-
-#include "Dvi.h"
-#include "DviChar.h"
-#include "device.h"
-
-/***********************************************************************
- *
- * Dvi Widget Private Data
- *
- ***********************************************************************/
-
-/************************************
- *
- * Class structure
- *
- ***********************************/
-
-/* Type for save method. */
-
-typedef void (*DviSaveProc)();
-
-/*
- * New fields for the Dvi widget class record
- */
-
-
-typedef struct _DviClass {
- DviSaveProc save;
-} DviClassPart;
-
-/*
- * Full class record declaration
- */
-
-typedef struct _DviClassRec {
- CoreClassPart core_class;
- DviClassPart command_class;
-} DviClassRec;
-
-extern DviClassRec dviClassRec;
-
-/***************************************
- *
- * Instance (widget) structure
- *
- **************************************/
-
-/*
- * a list of fonts we've used for this widget
- */
-
-typedef struct _dviFontSizeList {
- struct _dviFontSizeList *next;
- int size;
- char *x_name;
- XFontStruct *font;
- int doesnt_exist;
-} DviFontSizeList;
-
-typedef struct _dviFontList {
- struct _dviFontList *next;
- char *dvi_name;
- char *x_name;
- int dvi_number;
- Boolean initialized;
- Boolean scalable;
- DviFontSizeList *sizes;
- DviCharNameMap *char_map;
- DeviceFont *device_font;
-} DviFontList;
-
-typedef struct _dviFontMap {
- struct _dviFontMap *next;
- char *dvi_name;
- char *x_name;
-} DviFontMap;
-
-#define DVI_TEXT_CACHE_SIZE 256
-#define DVI_CHAR_CACHE_SIZE 1024
-
-typedef struct _dviCharCache {
- XTextItem cache[DVI_TEXT_CACHE_SIZE];
- char adjustable[DVI_TEXT_CACHE_SIZE];
- char char_cache[DVI_CHAR_CACHE_SIZE];
- int index;
- int max;
- int char_index;
- int font_size;
- int font_number;
- XFontStruct *font;
- int start_x, start_y;
- int x, y;
-} DviCharCache;
-
-typedef struct _dviState {
- struct _dviState *next;
- int font_size;
- int font_number;
- int x;
- int y;
-} DviState;
-
-typedef struct _dviFileMap {
- struct _dviFileMap *next;
- long position;
- int page_number;
-} DviFileMap;
-
-/*
- * New fields for the Dvi widget record
- */
-
-typedef struct {
- /*
- * resource specifiable items
- */
- char *font_map_string;
- unsigned long foreground;
- unsigned long background;
- int requested_page;
- int last_page;
- XFontStruct *default_font;
- FILE *file;
- Boolean noPolyText;
- Boolean seek; /* file is "seekable" */
- int default_resolution;
- /*
- * private state
- */
- FILE *tmpFile; /* used when reading stdin */
- char readingTmp; /* reading now from tmp */
- char ungot; /* have ungetc'd a char */
- GC normal_GC;
- GC fill_GC;
- DviFileMap *file_map;
- DviFontList *fonts;
- DviFontMap *font_map;
- int current_page;
- int font_size;
- int font_number;
- DeviceFont *device_font;
- int device_font_number;
- Device *device;
- int native;
- int device_resolution;
- int display_resolution;
- int paperlength;
- int paperwidth;
- double scale_factor; /* display res / device res */
- int sizescale;
- int line_thickness;
- int line_width;
-
-#define DVI_FILL_MAX 1000
-
- int fill;
-#define DVI_FILL_WHITE 0
-#define DVI_FILL_GRAY 1
-#define DVI_FILL_BLACK 2
- int fill_type;
- Pixmap gray[8];
- int backing_store;
- XFontStruct *font;
- int display_enable;
- struct ExposedExtents {
- int x1, y1, x2, y2;
- } extents;
- DviState *state;
- DviCharCache cache;
- int text_x_width;
- int text_device_width;
- int word_flag;
-} DviPart;
-
-#define DviGetIn(dw,cp)\
- (dw->dvi.tmpFile ? (\
- DviGetAndPut (dw, cp) \
- ) :\
- (*cp = getc (dw->dvi.file))\
-)
-
-#define DviGetC(dw, cp)\
- (dw->dvi.readingTmp ? (\
- ((*cp = getc (dw->dvi.tmpFile)) == EOF) ? (\
- fseek (dw->dvi.tmpFile, 0l, 2),\
- (dw->dvi.readingTmp = 0),\
- DviGetIn (dw,cp)\
- ) : (\
- *cp\
- )\
- ) : (\
- DviGetIn(dw,cp)\
- )\
-)
-
-#define DviUngetC(dw, c)\
- (dw->dvi.readingTmp ? (\
- ungetc (c, dw->dvi.tmpFile)\
- ) : ( \
- (dw->dvi.ungot = 1),\
- ungetc (c, dw->dvi.file)))
-
-/*
- * Full widget declaration
- */
-
-typedef struct _DviRec {
- CorePart core;
- DviPart dvi;
-} DviRec;
-
-#define InheritSaveToFile ((DviSaveProc)_XtInherit)
-
-extern XFontStruct *QueryFont ();
-
-extern DviCharNameMap *QueryFontMap ();
-
-extern DeviceFont *QueryDeviceFont ();
-
-extern char *GetWord(), *GetLine();
-#endif /* _XtDviP_h */
-
-
diff --git a/contrib/groff/src/xditview/FontMap b/contrib/groff/src/xditview/FontMap
deleted file mode 100644
index 90911f0..0000000
--- a/contrib/groff/src/xditview/FontMap
+++ /dev/null
@@ -1,17 +0,0 @@
-TR -adobe-times-medium-r-normal--*-*-*-*-p-*-iso8859-1
-TI -adobe-times-medium-i-normal--*-*-*-*-p-*-iso8859-1
-TB -adobe-times-bold-r-normal--*-*-*-*-p-*-iso8859-1
-TBI -adobe-times-bold-i-normal--*-*-*-*-p-*-iso8859-1
-CR -adobe-courier-medium-r-normal--*-*-*-*-m-*-iso8859-1
-CI -adobe-courier-medium-o-normal--*-*-*-*-m-*-iso8859-1
-CB -adobe-courier-bold-r-normal--*-*-*-*-m-*-iso8859-1
-CBI -adobe-courier-bold-o-normal--*-*-*-*-m-*-iso8859-1
-HR -adobe-helvetica-medium-r-normal--*-*-*-*-p-*-iso8859-1
-HI -adobe-helvetica-medium-o-normal--*-*-*-*-p-*-iso8859-1
-HB -adobe-helvetica-bold-r-normal--*-*-*-*-p-*-iso8859-1
-HBI -adobe-helvetica-bold-o-normal--*-*-*-*-p-*-iso8859-1
-NR -adobe-new century schoolbook-medium-r-normal--*-*-*-*-p-*-iso8859-1
-NI -adobe-new century schoolbook-medium-i-normal--*-*-*-*-p-*-iso8859-1
-NB -adobe-new century schoolbook-bold-r-normal--*-*-*-*-p-*-iso8859-1
-NBI -adobe-new century schoolbook-bold-i-normal--*-*-*-*-p-*-iso8859-1
-S -adobe-symbol-medium-r-normal--*-*-*-*-p-*-adobe-fontspecific
diff --git a/contrib/groff/src/xditview/GXditview-ad.h b/contrib/groff/src/xditview/GXditview-ad.h
deleted file mode 100644
index d9be3da..0000000
--- a/contrib/groff/src/xditview/GXditview-ad.h
+++ /dev/null
@@ -1,52 +0,0 @@
-"GXditview.height: 840",
-"GXditview.paned.allowResize: true",
-"GXditview.paned.viewport.allowVert: true",
-"GXditview.paned.viewport.allowHoriz: true",
-"GXditview.paned.viewport.skipAdjust: false",
-"GXditview.paned.viewport.width: 600",
-"GXditview.paned.viewport.height: 800",
-"GXditview.paned.viewport.showGrip: false",
-"GXditview.paned.label.skipAdjust: true",
-"GXditview.paned.viewport.dvi.translations: #augment \
- <Btn1Down>: XawPositionSimpleMenu(menu) MenuPopup(menu)\\n\
- <Key>Next: NextPage()\\n\
- <Key>n: NextPage()\\n\
- <Key>space: NextPage()\\n\
- <Key>Return: NextPage()\\n\
- <Key>Prior: PreviousPage()\\n\
- <Key>p: PreviousPage()\\n\
- <Key>BackSpace: PreviousPage()\\n\
- <Key>Delete: PreviousPage()\\n\
- <Key>Select: SelectPage()\\n\
- <Key>Find: OpenFile()\\n\
- <Key>r: Rerasterize()\\n\
- <Key>q: Quit()",
-"GXditview.paned.label.translations: #augment \
- <Btn1Down>: XawPositionSimpleMenu(menu) MenuPopup(menu)\\n\
- <Key>Next: NextPage()\\n\
- <Key>n: NextPage()\\n\
- <Key>space: NextPage()\\n\
- <Key>Return: NextPage()\\n\
- <Key>Prior: PreviousPage()\\n\
- <Key>p: PreviousPage()\\n\
- <Key>BackSpace: PreviousPage()\\n\
- <Key>Delete: PreviousPage()\\n\
- <Key>Select: SelectPage()\\n\
- <Key>Find: OpenFile()\\n\
- <Key>r: Rerasterize()\\n\
- <Key>q: Quit()",
-"GXditview.menu.nextPage.label: Next Page",
-"GXditview.menu.previousPage.label: Previous Page",
-"GXditview.menu.selectPage.label: Select Page",
-"GXditview.menu.print.label: Print",
-"GXditview.menu.openFile.label: Open",
-"GXditview.menu.quit.label: Quit",
-"GXditview.promptShell.allowShellResize: true",
-"GXditview.promptShell.promptDialog.value.translations: #override \
- <Key>Return: Accept()",
-"GXditview.promptShell.promptDialog.accept.label: Accept",
-"GXditview.promptShell.promptDialog.accept.translations: #override \
- <BtnUp>: Accept() unset()",
-"GXditview.promptShell.promptDialog.cancel.label: Cancel",
-"GXditview.promptShell.promptDialog.cancel.translations: #override \
- <BtnUp>: Cancel() unset()",
diff --git a/contrib/groff/src/xditview/GXditview.ad b/contrib/groff/src/xditview/GXditview.ad
deleted file mode 100644
index e99ff5e..0000000
--- a/contrib/groff/src/xditview/GXditview.ad
+++ /dev/null
@@ -1,57 +0,0 @@
-GXditview.height: 840
-
-GXditview.paned.allowResize: true
-GXditview.paned.viewport.allowVert: true
-GXditview.paned.viewport.allowHoriz: true
-GXditview.paned.viewport.skipAdjust: false
-GXditview.paned.viewport.width: 600
-GXditview.paned.viewport.height: 800
-GXditview.paned.viewport.showGrip: false
-GXditview.paned.label.skipAdjust: true
-
-GXditview.paned.viewport.dvi.translations: #augment \
- <Btn1Down>: XawPositionSimpleMenu(menu) MenuPopup(menu)\n\
- <Key>Next: NextPage()\n\
- <Key>n: NextPage()\n\
- <Key>space: NextPage()\n\
- <Key>Return: NextPage()\n\
- <Key>Prior: PreviousPage()\n\
- <Key>p: PreviousPage()\n\
- <Key>BackSpace: PreviousPage()\n\
- <Key>Delete: PreviousPage()\n\
- <Key>Select: SelectPage()\n\
- <Key>Find: OpenFile()\n\
- <Key>r: Rerasterize()\n\
- <Key>q: Quit()
-GXditview.paned.label.translations: #augment \
- <Btn1Down>: XawPositionSimpleMenu(menu) MenuPopup(menu)\n\
- <Key>Next: NextPage()\n\
- <Key>n: NextPage()\n\
- <Key>space: NextPage()\n\
- <Key>Return: NextPage()\n\
- <Key>Prior: PreviousPage()\n\
- <Key>p: PreviousPage()\n\
- <Key>BackSpace: PreviousPage()\n\
- <Key>Delete: PreviousPage()\n\
- <Key>Select: SelectPage()\n\
- <Key>Find: OpenFile()\n\
- <Key>r: Rerasterize()\n\
- <Key>q: Quit()
-GXditview.menu.nextPage.label: Next Page
-GXditview.menu.previousPage.label: Previous Page
-GXditview.menu.selectPage.label: Select Page
-GXditview.menu.print.label: Print
-GXditview.menu.openFile.label: Open
-GXditview.menu.quit.label: Quit
-
-GXditview.promptShell.allowShellResize: true
-GXditview.promptShell.promptDialog.value.translations: #override \
- <Key>Return: Accept()
-
-GXditview.promptShell.promptDialog.accept.label: Accept
-GXditview.promptShell.promptDialog.accept.translations: #override \
- <BtnUp>: Accept() unset()
-
-GXditview.promptShell.promptDialog.cancel.label: Cancel
-GXditview.promptShell.promptDialog.cancel.translations: #override \
- <BtnUp>: Cancel() unset()
diff --git a/contrib/groff/src/xditview/INSTALL b/contrib/groff/src/xditview/INSTALL
deleted file mode 100644
index 144118f..0000000
--- a/contrib/groff/src/xditview/INSTALL
+++ /dev/null
@@ -1,20 +0,0 @@
-This version of gxditview uses imake.
-
-Here are the steps needed to install gxditview:
-
-- edit the Imakefile if necessary
-
-- xmkmf
-
-- make depend
-
-- make
-
-- make install
-
-- make install.man (installs the man page)
-
-The gxditview binary will be installed in the usual place for X
-binaries (eg /usr/bin/X11). Previous versions of gxditview were
-installed along with the other groff binaries (eg in /usr/local/bin);
-you will need to remove these by hand.
diff --git a/contrib/groff/src/xditview/Imakefile.in b/contrib/groff/src/xditview/Imakefile.in
deleted file mode 100644
index 1f64fe0..0000000
--- a/contrib/groff/src/xditview/Imakefile.in
+++ /dev/null
@@ -1,120 +0,0 @@
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-VPATH=@srcdir@
-top_builddir=@groff_top_builddir@
-SEP=@PATH_SEPARATOR@
-
-version=`cat $(top_srcdir)/VERSION`
-# No additional number if revision is zero
-revision=`sed -e 's/^0$$//' -e 's/^[1-9].*$$/.&/' $(top_srcdir)/REVISION`
-
-GROFF_PREFIX = @prefix@
-GROFF_DATADIR = $(GROFF_PREFIX)/share
-GROFF_DATAPROGRAMDIR = $(GROFF_DATADIR)/groff
-GROFF_DATASUBDIR = $(GROFF_DATAPROGRAMDIR)/$(version)$(revision)
-GROFF_FONTDIR = $(GROFF_DATASUBDIR)/font
-GROFF_LOCALFONTDIR = $(GROFF_DATAPROGRAMDIR)/site-font
-GROFF_FONTPATH = $(GROFF_FONTDIR)$(SEP)$(GROFF_LOCALFONTDIR)$(SEP)/usr/lib/font
-DPIS = 75 100
-
-PROGRAMS = \
- gxditview \
- xtotroff
-DEPLIBS = XawClientDepLibs
-#if defined(HPArchitecture) && (OSMajorVersion > 9)
-LOCAL_LIBRARIES = -L/usr/contrib/X11R6/lib XawClientLibs
-#else
-LOCAL_LIBRARIES = XawClientLibs
-#endif
-SRCS1 = \
- $(srcdir)/xditview.c \
- $(srcdir)/Dvi.c \
- $(srcdir)/draw.c \
- $(srcdir)/font.c \
- $(srcdir)/lex.c \
- $(srcdir)/page.c \
- $(srcdir)/parse.c \
- $(srcdir)/XFontName.c \
- $(srcdir)/DviChar.c \
- $(srcdir)/device.c
-OBJS1 = \
- xditview.o \
- Dvi.o \
- draw.o \
- font.o \
- lex.o \
- page.o \
- parse.o \
- XFontName.o \
- DviChar.o \
- device.o
-SRCS2 = \
- $(srcdir)/xtotroff.c \
- $(srcdir)/XFontName.c \
- $(srcdir)/DviChar.c
-OBJS2 = \
- xtotroff.o \
- XFontName.o \
- DviChar.o
-#if defined(HPArchitecture) && (OSMajorVersion > 9)
-INCLUDES = \
- -I/usr/contrib/X11R6/include \
- -I$(TOOLKITSRC) \
- -I$(TOP)
-#else
-INCLUDES = \
- -I$(TOOLKITSRC) \
- -I$(TOP)
-#endif
-MATHLIB = -lm
-DEFINES = \
- $(SIGNAL_DEFINES) \
- -DFONTPATH=\"$(GROFF_FONTPATH)\" # -DX_NOT_STDC_ENV
-
-DEVDIR = $(top_builddir)/font
-MKINSTALLDIRS = $(top_srcdir)/mkinstalldirs
-
-#undef ProgramTargetHelper
-#define ProgramTargetHelper ProgramTargetHelperNoMan
-ComplexProgramTarget_1(gxditview,$(LOCAL_LIBRARIES),$(MATHLIB))
-InstallManPageLong($(srcdir)/gxditview,$(MANDIR),gxditview)
-NormalProgramTarget(xtotroff,$(OBJS2),$(DEPXLIB),$(XLIB), /**/)
-
-InstallAppDefaultsLong($(srcdir)/GXditview,GXditview)
-
-fonts: xtotroff $(srcdir)/DESC $(srcdir)/FontMap
- @dir=`pwd`; \
- fonts=`sed -e 's/[ ].*//' $(srcdir)/FontMap`; \
- for dpi in $(DPIS); do \
- echo Making devX$$dpi; \
- test -d $(DEVDIR)/devX$$dpi || \
- $(MKINSTALLDIRS) $(DEVDIR)/devX$$dpi; \
- rm -f $(DEVDIR)/devX$$dpi/DESC; \
- sed -e "s/res 75/res $$dpi/" $(srcdir)/DESC \
- >$(DEVDIR)/devX$$dpi/DESC; \
- (cd $(DEVDIR)/devX$$dpi; \
- rm -f Makefile.sub; \
- echo DEV=X$$dpi >Makefile.sub; \
- echo DEVFILES=DESC $$fonts >>Makefile.sub; \
- $$dir/xtotroff -g -r $$dpi -s 10 $(srcdir)/FontMap); \
- echo Making devX$$dpi-12; \
- test -d $(DEVDIR)/devX$$dpi-12 || \
- $(MKINSTALLDIRS) $(DEVDIR)/devX$$dpi-12; \
- rm -f $(DEVDIR)/devX$$dpi-12/DESC; \
- sed -e "s/res 75/res $$dpi/" \
- -e 's/unitwidth 10/unitwidth 12/' $(srcdir)/DESC \
- >$(DEVDIR)/devX$$dpi-12/DESC; \
- (cd $(DEVDIR)/devX$$dpi-12; \
- rm -f Makefile.sub; \
- echo DEV=X$$dpi-12 >Makefile.sub; \
- echo DEVFILES=DESC $$fonts >>Makefile.sub; \
- $$dir/xtotroff -g -r $$dpi -s 12 $(srcdir)/FontMap); \
- done
-
-GXditview-ad.h: $(srcdir)/GXditview.ad
- /bin/sh $(srcdir)/ad2c $(srcdir)/GXditview.ad >GXditview-ad.h
-
-extraclean: clean
- -rm -f junk tmp grot old Makefile Imakefile $(srcdir)/gxditview._man
-
-FORCE:
diff --git a/contrib/groff/src/xditview/Menu.h b/contrib/groff/src/xditview/Menu.h
deleted file mode 100644
index c306b27..0000000
--- a/contrib/groff/src/xditview/Menu.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * $XConsortium: Menu.h,v 1.2 89/07/21 14:22:10 jim Exp $
- */
-
-#ifndef _XtMenu_h
-#define _XtMenu_h
-
-/***********************************************************************
- *
- * Menu Widget
- *
- ***********************************************************************/
-
-/* Parameters:
-
- Name Class RepType Default Value
- ---- ----- ------- -------------
- background Background pixel White
- border BorderColor pixel Black
- borderWidth BorderWidth int 1
- height Height int 120
- mappedWhenManaged MappedWhenManaged Boolean True
- reverseVideo ReverseVideo Boolean False
- width Width int 120
- x Position int 0
- y Position int 0
-
-*/
-
-#define XtNmenuEntries "menuEntries"
-#define XtNhorizontalPadding "horizontalPadding"
-#define XtNverticalPadding "verticalPadding"
-#define XtNselection "Selection"
-
-#define XtCMenuEntries "MenuEntries"
-#define XtCPadding "Padding"
-#define XtCSelection "Selection"
-
-typedef struct _MenuRec *MenuWidget; /* completely defined in MenuPrivate.h */
-typedef struct _MenuClassRec *MenuWidgetClass; /* completely defined in MenuPrivate.h */
-
-extern WidgetClass menuWidgetClass;
-
-extern Widget XawMenuCreate ();
-#endif /* _XtMenu_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/contrib/groff/src/xditview/README b/contrib/groff/src/xditview/README
deleted file mode 100644
index b18f64a..0000000
--- a/contrib/groff/src/xditview/README
+++ /dev/null
@@ -1,14 +0,0 @@
-This is gxditview, a X11 previewer for groff based on MIT's xditview.
-This version can be used with the output of gtroff -Tps as well as
-with -TX75 and -TX100. You will need X11R5 or newer to install it (it
-might work on X11R4, but I haven't tested it.)
-
-See the file INSTALL in this directory for installation instructions.
-
-xditview is copyrighted by MIT under the usual X terms (see
-gxditview.man); my changes to it are in the public domain.
-
-Please report bugs to bug-groff@gnu.org.
-
-James Clark
-jjc@jclark.com
diff --git a/contrib/groff/src/xditview/TODO b/contrib/groff/src/xditview/TODO
deleted file mode 100644
index 161a7cf..0000000
--- a/contrib/groff/src/xditview/TODO
+++ /dev/null
@@ -1,17 +0,0 @@
-Replace Imakefile with a configure script.
-
-Better error handling.
-
-Resource and command-line option to specify font path.
-
-Resource to specify name of environment variable from which to get the
-font path.
-
-Have character substitutions (currently done in draw.c:FakeCharacter)
-specified in a resource (similar format to FontMap).
-
-The initial width of the dialog box should expand to accommodate the
-default value.
-
-Option in Print dialog to specify that only the current page should be
-printed.
diff --git a/contrib/groff/src/xditview/XFontName.c b/contrib/groff/src/xditview/XFontName.c
deleted file mode 100644
index 5ca9bb8..0000000
--- a/contrib/groff/src/xditview/XFontName.c
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * XFontName.c
- *
- * build/parse X Font name strings
- */
-
-#include <X11/Xlib.h>
-#include <X11/Xos.h>
-#include "XFontName.h"
-#include <ctype.h>
-
-static char *
-extractStringField (name, buffer, size, attrp, bit)
- char *name;
- char *buffer;
- int size;
- unsigned int *attrp;
- unsigned int bit;
-{
- char *buf = buffer;
-
- if (!*name)
- return 0;
- while (*name && *name != '-' && size > 0) {
- *buf++ = *name++;
- --size;
- }
- if (size <= 0)
- return 0;
- *buf = '\0';
- if (buffer[0] != '*' || buffer[1] != '\0')
- *attrp |= bit;
- if (*name == '-')
- return name+1;
- return name;
-}
-
-static char *
-extractUnsignedField (name, result, attrp, bit)
- char *name;
- unsigned int *result;
- unsigned int *attrp;
- unsigned int bit;
-{
- char buf[256];
- char *c;
- unsigned int i;
-
- name = extractStringField (name, buf, sizeof (buf), attrp, bit);
- if (!name)
- return 0;
- if (!(*attrp & bit))
- return name;
- i = 0;
- for (c = buf; *c; c++) {
- if (!isdigit (*c))
- return 0;
- i = i * 10 + (*c - '0');
- }
- *result = i;
- return name;
-}
-
-Bool
-XParseFontName (fontNameString, fontName, fontNameAttributes)
- XFontNameString fontNameString;
- XFontName *fontName;
- unsigned int *fontNameAttributes;
-{
- char *name = fontNameString;
- XFontName temp;
- unsigned int attributes = 0;
-
-#define GetString(field,bit)\
- if (!(name = extractStringField \
- (name, temp.field, sizeof (temp.field),\
- &attributes, bit))) \
- return False;
-
-#define GetUnsigned(field,bit)\
- if (!(name = extractUnsignedField \
- (name, &temp.field, \
- &attributes, bit))) \
- return False;
-
- GetString (Registry, FontNameRegistry)
- GetString (Foundry, FontNameFoundry)
- GetString (FamilyName, FontNameFamilyName)
- GetString (WeightName, FontNameWeightName)
- GetString (Slant, FontNameSlant)
- GetString (SetwidthName, FontNameSetwidthName)
- GetString (AddStyleName, FontNameAddStyleName)
- GetUnsigned (PixelSize, FontNamePixelSize)
- GetUnsigned (PointSize, FontNamePointSize)
- GetUnsigned (ResolutionX, FontNameResolutionX)
- GetUnsigned (ResolutionY, FontNameResolutionY)
- GetString (Spacing, FontNameSpacing)
- GetUnsigned (AverageWidth, FontNameAverageWidth)
- GetString (CharSetRegistry, FontNameCharSetRegistry)
- if (!*name) {
- temp.CharSetEncoding[0] = '\0';
- attributes |= FontNameCharSetEncoding;
- } else {
- GetString (CharSetEncoding, FontNameCharSetEncoding)
- }
- *fontName = temp;
- *fontNameAttributes = attributes;
- return True;
-}
-
-static char *
-utoa (u, s, size)
- unsigned int u;
- char *s;
- int size;
-{
- char *t;
-
- t = s + size;
- *--t = '\0';
- do
- *--t = (u % 10) + '0';
- while (u /= 10);
- return t;
-}
-
-Bool
-XFormatFontName (fontName, fontNameAttributes, fontNameString)
- XFontName *fontName;
- unsigned int fontNameAttributes;
- XFontNameString fontNameString;
-{
- XFontNameString tmp;
- char *name = tmp, *f;
- int left = sizeof (tmp) - 1;
- char number[32];
-
-#define PutString(field, bit)\
- f = (fontNameAttributes & bit) ? \
- fontName->field \
- : "*"; \
- if ((left -= strlen (f)) < 0) \
- return False; \
- while (*f) \
- if ((*name++ = *f++) == '-') \
- return False;
-#define PutHyphen()\
- if (--left < 0) \
- return False; \
- *name++ = '-';
-
-#define PutUnsigned(field, bit) \
- f = (fontNameAttributes & bit) ? \
- utoa (fontName->field, number, sizeof (number)) \
- : "*"; \
- if ((left -= strlen (f)) < 0) \
- return False; \
- while (*f) \
- *name++ = *f++;
-
- PutString (Registry, FontNameRegistry)
- PutHyphen ();
- PutString (Foundry, FontNameFoundry)
- PutHyphen ();
- PutString (FamilyName, FontNameFamilyName)
- PutHyphen ();
- PutString (WeightName, FontNameWeightName)
- PutHyphen ();
- PutString (Slant, FontNameSlant)
- PutHyphen ();
- PutString (SetwidthName, FontNameSetwidthName)
- PutHyphen ();
- PutString (AddStyleName, FontNameAddStyleName)
- PutHyphen ();
- PutUnsigned (PixelSize, FontNamePixelSize)
- PutHyphen ();
- PutUnsigned (PointSize, FontNamePointSize)
- PutHyphen ();
- PutUnsigned (ResolutionX, FontNameResolutionX)
- PutHyphen ();
- PutUnsigned (ResolutionY, FontNameResolutionY)
- PutHyphen ();
- PutString (Spacing, FontNameSpacing)
- PutHyphen ();
- PutUnsigned (AverageWidth, FontNameAverageWidth)
- PutHyphen ();
- PutString (CharSetRegistry, FontNameCharSetRegistry)
- PutHyphen ();
- PutString (CharSetEncoding, FontNameCharSetEncoding)
- *name = '\0';
- strcpy (fontNameString, tmp);
- return True;
-}
-
-Bool
-XCompareFontName (name1, name2, fontNameAttributes)
- XFontName *name1, *name2;
- unsigned int fontNameAttributes;
-{
-#define CompareString(field,bit) \
- if (fontNameAttributes & bit) \
- if (strcmp (name1->field, name2->field)) \
- return False;
-
-#define CompareUnsigned(field,bit) \
- if (fontNameAttributes & bit) \
- if (name1->field != name2->field) \
- return False;
-
- CompareString (Registry, FontNameRegistry)
- CompareString (Foundry, FontNameFoundry)
- CompareString (FamilyName, FontNameFamilyName)
- CompareString (WeightName, FontNameWeightName)
- CompareString (Slant, FontNameSlant)
- CompareString (SetwidthName, FontNameSetwidthName)
- CompareString (AddStyleName, FontNameAddStyleName)
- CompareUnsigned (PixelSize, FontNamePixelSize)
- CompareUnsigned (PointSize, FontNamePointSize)
- CompareUnsigned (ResolutionX, FontNameResolutionX)
- CompareUnsigned (ResolutionY, FontNameResolutionY)
- CompareString (Spacing, FontNameSpacing)
- CompareUnsigned (AverageWidth, FontNameAverageWidth)
- CompareString (CharSetRegistry, FontNameCharSetRegistry)
- CompareString (CharSetEncoding, FontNameCharSetEncoding)
- return True;
-}
-
-XCopyFontName (name1, name2, fontNameAttributes)
- XFontName *name1, *name2;
- unsigned int fontNameAttributes;
-{
-#define CopyString(field,bit) \
- if (fontNameAttributes & bit) \
- strcpy (name2->field, name1->field);
-
-#define CopyUnsigned(field,bit) \
- if (fontNameAttributes & bit) \
- name2->field = name1->field;
-
- CopyString (Registry, FontNameRegistry)
- CopyString (Foundry, FontNameFoundry)
- CopyString (FamilyName, FontNameFamilyName)
- CopyString (WeightName, FontNameWeightName)
- CopyString (Slant, FontNameSlant)
- CopyString (SetwidthName, FontNameSetwidthName)
- CopyString (AddStyleName, FontNameAddStyleName)
- CopyUnsigned (PixelSize, FontNamePixelSize)
- CopyUnsigned (PointSize, FontNamePointSize)
- CopyUnsigned (ResolutionX, FontNameResolutionX)
- CopyUnsigned (ResolutionY, FontNameResolutionY)
- CopyString (Spacing, FontNameSpacing)
- CopyUnsigned (AverageWidth, FontNameAverageWidth)
- CopyString (CharSetRegistry, FontNameCharSetRegistry)
- CopyString (CharSetEncoding, FontNameCharSetEncoding)
- return True;
-}
diff --git a/contrib/groff/src/xditview/XFontName.h b/contrib/groff/src/xditview/XFontName.h
deleted file mode 100644
index efe9eb1..0000000
--- a/contrib/groff/src/xditview/XFontName.h
+++ /dev/null
@@ -1,45 +0,0 @@
-typedef struct _xFontName {
- char Registry[256];
- char Foundry[256];
- char FamilyName[256];
- char WeightName[256];
- char Slant[3];
- char SetwidthName[256];
- char AddStyleName[256];
- unsigned int PixelSize;
- unsigned int PointSize;
- unsigned int ResolutionX;
- unsigned int ResolutionY;
- char Spacing[2];
- unsigned int AverageWidth;
- char CharSetRegistry[256];
- char CharSetEncoding[256];
-} XFontName;
-
-#define FontNameRegistry (1<<0)
-#define FontNameFoundry (1<<1)
-#define FontNameFamilyName (1<<2)
-#define FontNameWeightName (1<<3)
-#define FontNameSlant (1<<4)
-#define FontNameSetwidthName (1<<5)
-#define FontNameAddStyleName (1<<6)
-#define FontNamePixelSize (1<<7)
-#define FontNamePointSize (1<<8)
-#define FontNameResolutionX (1<<9)
-#define FontNameResolutionY (1<<10)
-#define FontNameSpacing (1<<11)
-#define FontNameAverageWidth (1<<12)
-#define FontNameCharSetRegistry (1<<13)
-#define FontNameCharSetEncoding (1<<14)
-
-#define SlantRoman "R"
-#define SlantItalic "I"
-#define SlantOblique "O"
-#define SlantReverseItalic "RI"
-#define SlantReverseOblique "RO"
-
-#define SpacingMonoSpaced "M"
-#define SpacingProportional "P"
-#define SpacingCharacterCell "C"
-
-typedef char XFontNameString[256];
diff --git a/contrib/groff/src/xditview/ad2c b/contrib/groff/src/xditview/ad2c
deleted file mode 100644
index 651ab8c..0000000
--- a/contrib/groff/src/xditview/ad2c
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh
-#
-# ad2c : Convert app-defaults file to C strings decls.
-#
-# George Ferguson, ferguson@cs.rcohester.edu, 12 Nov 1990.
-# 19 Mar 1991: gf
-# Made it self-contained.
-# 6 Jan 1992: mycroft@gnu.ai.mit.edu (Charles Hannum)
-# Removed use of "-n" and ":read" label since Gnu and
-# IBM sed print pattern space on "n" command. Still works
-# with Sun sed, of course.
-# 7 Jan 1992: matthew@sunpix.East.Sun.COM (Matthew Stier)
-# Escape quotes after escaping backslashes.
-# 8 Jul 1992: Version 1.6
-# Manpage fixes.
-# 19 Apr 1993: Version 1.7
-# Remove comments that were inside the sed command since
-# some versions of sed don't like them. The comments are
-# now given here in the header.
-#
-# Comments on the script by line:
-# /^!/d Remove comments
-# /^$/d Remove blanks
-# s/\\/\\\\/g Escape backslashes...
-# s/\\$//g ...except the line continuation ones
-# s/"/\\"/g Escape quotes
-# s/^/"/ Add leading quote
-# : test Establish label for later branch
-# /\\$/b slash Branch to label "slash" if line ends in backslash
-# s/$/",/ Otherwise add closing quote and comma...
-# p ...output the line...
-# d ...and clear the pattern space so it's not printed again
-# : slash Branch comes here if line ends in backslash
-# n Read next line, append to pattern space
-# [...] The "d" and "s" commands that follow just delete
-# comments and blank lines and escape control sequences
-# b test Branch up to see if the line ends in backslash or not
-#
-
-sed '
-/^!/d
-/^$/d
-s/\\/\\\\/g
-s/\\$//g
-s/"/\\"/g
-s/^/"/
-: test
-/\\$/b slash
-s/$/",/
-p
-d
-: slash
-n
-/^!/d
-/^$/d
-s/"/\\"/g
-s/\\\\/\\/g
-s/\\n/\\\\n/g
-s/\\t/\\\\t/g
-s/\\f/\\\\f/g
-s/\\b/\\\\b/g
-b test' "$@"
diff --git a/contrib/groff/src/xditview/device.c b/contrib/groff/src/xditview/device.c
deleted file mode 100644
index 264f681..0000000
--- a/contrib/groff/src/xditview/device.c
+++ /dev/null
@@ -1,600 +0,0 @@
-/* device.c */
-
-#include <stdio.h>
-#include <ctype.h>
-
-#include <X11/Xos.h>
-#include <X11/Intrinsic.h>
-
-#include "device.h"
-
-#ifndef FONTPATH
-#define FONTPATH "/usr/local/share/groff/font:/usr/local/lib/font:/usr/lib/font"
-#endif
-
-#ifndef isascii
-#define isascii(c) (1)
-#endif
-
-extern void exit();
-#ifndef strtok
-extern char *strtok();
-#endif
-#ifndef strchr
-extern char *strchr();
-#endif
-#ifndef getenv
-extern char *getenv();
-#endif
-
-/* Name of environment variable containing path to be used for
-searching for device and font description files. */
-#define FONTPATH_ENV_VAR "GROFF_FONT_PATH"
-
-#define WS " \t\r\n"
-
-#ifndef INT_MIN
-/* Minimum and maximum values a `signed int' can hold. */
-#define INT_MIN (-INT_MAX-1)
-#define INT_MAX 2147483647
-#endif
-
-#define CHAR_TABLE_SIZE 307
-
-struct _DeviceFont {
- char *name;
- int special;
- DeviceFont *next;
- Device *dev;
- struct charinfo *char_table[CHAR_TABLE_SIZE];
- struct charinfo *code_table[256];
-};
-
-struct charinfo {
- int width;
- int code;
- struct charinfo *next;
- struct charinfo *code_next;
- char name[1];
-};
-
-static char *current_filename = 0;
-static int current_lineno = -1;
-
-static void error();
-static FILE *open_device_file();
-static DeviceFont *load_font();
-static Device *new_device();
-static DeviceFont *new_font();
-static void delete_font();
-static unsigned hash_name();
-static struct charinfo *add_char();
-static int read_charset_section();
-static char *canonicalize_name();
-
-static
-Device *new_device(name)
- char *name;
-{
- Device *dev;
-
- dev = XtNew(Device);
- dev->sizescale = 1;
- dev->res = 0;
- dev->unitwidth = 0;
- dev->fonts = 0;
- dev->X11 = 0;
- dev->paperlength = 0;
- dev->paperwidth = 0;
- dev->name = XtNewString(name);
- return dev;
-}
-
-void device_destroy(dev)
- Device *dev;
-{
- DeviceFont *f;
-
- if (!dev)
- return;
- f = dev->fonts;
- while (f) {
- DeviceFont *tem = f;
- f = f->next;
- delete_font(tem);
- }
-
- XtFree(dev->name);
- XtFree((char *)dev);
-}
-
-Device *device_load(name)
- char *name;
-{
- Device *dev;
- FILE *fp;
- int err = 0;
- char buf[256];
-
- fp = open_device_file(name, "DESC", &current_filename);
- if (!fp)
- return 0;
- dev = new_device(name);
- current_lineno = 0;
- while (fgets(buf, sizeof(buf), fp)) {
- char *p;
- current_lineno++;
- p = strtok(buf, WS);
- if (p) {
- int *np = 0;
- char *q;
-
- if (strcmp(p, "charset") == 0)
- break;
- if (strcmp(p, "X11") == 0)
- dev->X11 = 1;
- else if (strcmp(p, "sizescale") == 0)
- np = &dev->sizescale;
- else if (strcmp(p, "res") == 0)
- np = &dev->res;
- else if (strcmp(p, "unitwidth") == 0)
- np = &dev->unitwidth;
- else if (strcmp(p, "paperwidth") == 0)
- np = &dev->paperwidth;
- else if (strcmp(p, "paperlength") == 0)
- np = &dev->paperlength;
-
- if (np) {
- q = strtok((char *)0, WS);
- if (!q || sscanf(q, "%d", np) != 1 || *np <= 0) {
- error("bad argument");
- err = 1;
- break;
- }
- }
- }
- }
- fclose(fp);
- current_lineno = -1;
- if (!err) {
- if (dev->res == 0) {
- error("missing res line");
- err = 1;
- }
- else if (dev->unitwidth == 0) {
- error("missing unitwidth line");
- err = 1;
- }
- }
- if (dev->paperlength == 0)
- dev->paperlength = dev->res*11;
- if (dev->paperwidth == 0)
- dev->paperwidth = dev->res*8 + dev->res/2;
- if (err) {
- device_destroy(dev);
- dev = 0;
- }
- XtFree(current_filename);
- current_filename = 0;
- return dev;
-}
-
-
-DeviceFont *device_find_font(dev, name)
- Device *dev;
- char *name;
-{
- DeviceFont *f;
-
- if (!dev)
- return 0;
- for (f = dev->fonts; f; f = f->next)
- if (strcmp(f->name, name) == 0)
- return f;
- return load_font(dev, name);
-}
-
-static
-DeviceFont *load_font(dev, name)
- Device *dev;
- char *name;
-{
- FILE *fp;
- char buf[256];
- DeviceFont *f;
- int special = 0;
-
- fp = open_device_file(dev->name, name, &current_filename);
- if (!fp)
- return 0;
- current_lineno = 0;
- for (;;) {
- char *p;
-
- if (!fgets(buf, sizeof(buf), fp)) {
- error("no charset line");
- return 0;
- }
- current_lineno++;
- p = strtok(buf, WS);
- /* charset must be on a line by itself */
- if (p && strcmp(p, "charset") == 0 && strtok((char *)0, WS) == 0)
- break;
- if (p && strcmp(p, "special") == 0)
- special = 1;
- }
- f = new_font(name, dev);
- f->special = special;
- if (!read_charset_section(f, fp)) {
- delete_font(f);
- f = 0;
- }
- else {
- f->next = dev->fonts;
- dev->fonts = f;
- }
- fclose(fp);
- XtFree(current_filename);
- current_filename = 0;
- return f;
-}
-
-static
-DeviceFont *new_font(name, dev)
- char *name;
- Device *dev;
-{
- int i;
- DeviceFont *f;
-
- f = XtNew(DeviceFont);
- f->name = XtNewString(name);
- f->dev = dev;
- f->special = 0;
- f->next = 0;
- for (i = 0; i < CHAR_TABLE_SIZE; i++)
- f->char_table[i] = 0;
- for (i = 0; i < 256; i++)
- f->code_table[i] = 0;
- return f;
-}
-
-static
-void delete_font(f)
- DeviceFont *f;
-{
- int i;
-
- if (!f)
- return;
- XtFree(f->name);
- for (i = 0; i < CHAR_TABLE_SIZE; i++) {
- struct charinfo *ptr = f->char_table[i];
- while (ptr) {
- struct charinfo *tem = ptr;
- ptr = ptr->next;
- XtFree((char *)tem);
- }
- }
- XtFree((char *)f);
-}
-
-
-static
-unsigned hash_name(name)
- char *name;
-{
- unsigned n = 0;
- /* XXX do better than this */
- while (*name)
- n = (n << 1) ^ *name++;
-
- return n;
-}
-
-static
-int scale_round(n, x, y)
- int n, x, y;
-{
- int y2;
-
- if (x == 0)
- return 0;
- y2 = y/2;
- if (n >= 0) {
- if (n <= (INT_MAX - y2)/x)
- return (n*x + y2)/y;
- }
- else if (-(unsigned)n <= (-(unsigned)INT_MIN - y2)/x)
- return (n*x - y2)/y;
- return (int)(n*(double)x/(double)y + .5);
-}
-
-static
-char *canonicalize_name(s)
- char *s;
-{
- static char ch[2];
- if (s[0] == 'c' && s[1] == 'h' && s[2] == 'a' && s[3] == 'r') {
- char *p;
- int n;
-
- for (p = s + 4; *p; p++)
- if (!isascii(*p) || !isdigit((unsigned char)*p))
- return s;
- n = atoi(s + 4);
- if (n >= 0 && n <= 0xff) {
- ch[0] = (char)n;
- return ch;
- }
- }
- return s;
-}
-
-/* Return 1 if the character is present in the font; widthp gets the
-width if non-null. */
-
-int device_char_width(f, ps, name, widthp)
- DeviceFont *f;
- int ps;
- char *name;
- int *widthp;
-{
- struct charinfo *p;
-
- name = canonicalize_name(name);
- for (p = f->char_table[hash_name(name) % CHAR_TABLE_SIZE];; p = p->next) {
- if (!p)
- return 0;
- if (strcmp(p->name, name) == 0)
- break;
- }
- *widthp = scale_round(p->width, ps, f->dev->unitwidth);
- return 1;
-}
-
-int device_code_width(f, ps, code, widthp)
- DeviceFont *f;
- int ps;
- int code;
- int *widthp;
-{
- struct charinfo *p;
-
- for (p = f->code_table[code & 0xff];; p = p->code_next) {
- if (!p)
- return 0;
- if (p->code == code)
- break;
- }
- *widthp = scale_round(p->width, ps, f->dev->unitwidth);
- return 1;
-}
-
-char *device_name_for_code(f, code)
- DeviceFont *f;
- int code;
-{
- static struct charinfo *state = 0;
- if (f)
- state = f->code_table[code & 0xff];
- for (; state; state = state->code_next)
- if (state->code == code && state->name[0] != '\0') {
- char *name = state->name;
- state = state->code_next;
- return name;
- }
- return 0;
-}
-
-int device_font_special(f)
- DeviceFont *f;
-{
- return f->special;
-}
-
-static
-struct charinfo *add_char(f, name, width, code)
- DeviceFont *f;
- char *name;
- int width, code;
-{
- struct charinfo **pp;
- struct charinfo *ci;
-
- name = canonicalize_name(name);
- if (strcmp(name, "---") == 0)
- name = "";
-
- ci = (struct charinfo *)XtMalloc(XtOffsetOf(struct charinfo, name[0])
- + strlen(name) + 1);
-
- strcpy(ci->name, name);
- ci->width = width;
- ci->code = code;
-
- if (*name != '\0') {
- pp = &f->char_table[hash_name(name) % CHAR_TABLE_SIZE];
- ci->next = *pp;
- *pp = ci;
- }
- pp = &f->code_table[code & 0xff];
- ci->code_next = *pp;
- *pp = ci;
- return ci;
-}
-
-/* Return non-zero for success. */
-
-static
-int read_charset_section(f, fp)
- DeviceFont *f;
- FILE *fp;
-{
- struct charinfo *last_charinfo = 0;
- char buf[256];
-
- while (fgets(buf, sizeof(buf), fp)) {
- char *name;
- int width;
- int code;
- char *p;
-
- current_lineno++;
- name = strtok(buf, WS);
- if (!name)
- continue; /* ignore blank lines */
- p = strtok((char *)0, WS);
- if (!p) /* end of charset section */
- break;
- if (strcmp(p, "\"") == 0) {
- if (!last_charinfo) {
- error("first line of charset section cannot use `\"'");
- return 0;
- }
- else
- (void)add_char(f, name,
- last_charinfo->width, last_charinfo->code);
- }
- else {
- char *q;
- if (sscanf(p, "%d", &width) != 1) {
- error("bad width field");
- return 0;
- }
- p = strtok((char *)0, WS);
- if (!p) {
- error("missing type field");
- return 0;
- }
- p = strtok((char *)0, WS);
- if (!p) {
- error("missing code field");
- return 0;
- }
- code = (int)strtol(p, &q, 0);
- if (q == p) {
- error("bad code field");
- return 0;
- }
- last_charinfo = add_char(f, name, width, code);
- }
- }
- return 1;
-}
-
-static
-FILE *find_file(file, result)
- char *file, **result;
-{
- char *buf = NULL;
- int bufsiz = 0;
- int flen;
- FILE *fp;
- char *path;
- char *env;
-
- env = getenv(FONTPATH_ENV_VAR);
- path = XtMalloc(((env && *env) ? strlen(env) + 1 : 0)
- + strlen(FONTPATH) + 1);
- *path = '\0';
- if (env && *env) {
- strcat(path, env);
- strcat(path, ":");
- }
- strcat(path, FONTPATH);
-
- *result = NULL;
-
- if (file == NULL)
- return NULL;
- if (*file == '\0')
- return NULL;
-
- if (*file == '/') {
- fp = fopen(file, "r");
- if (fp)
- *result = XtNewString(file);
- return fp;
- }
-
- flen = strlen(file);
-
- while (*path) {
- int len;
- char *start, *end;
-
- start = path;
- end = strchr(path, ':');
- if (end)
- path = end + 1;
- else
- path = end = strchr(path, '\0');
- if (start >= end)
- continue;
- if (end[-1] == '/')
- --end;
- len = (end - start) + 1 + flen + 1;
- if (len > bufsiz) {
- if (buf)
- buf = XtRealloc(buf, len);
- else
- buf = XtMalloc(len);
- bufsiz = len;
- }
- memcpy(buf, start, end - start);
- buf[end - start] = '/';
- strcpy(buf + (end - start) + 1, file);
- fp = fopen(buf, "r");
- if (fp) {
- *result = buf;
- return fp;
- }
- }
- XtFree(buf);
- return NULL;
-}
-
-static
-FILE *open_device_file(device_name, file_name, result)
- char *device_name, *file_name, **result;
-{
- char *buf, *path;
- FILE *fp;
-
- buf = XtMalloc(3 + strlen(device_name) + 1 + strlen(file_name) + 1);
- sprintf(buf, "dev%s/%s", device_name, file_name);
- fp = find_file(buf, result);
- if (!fp) {
- fprintf(stderr, "can't find device file `%s'\n", file_name);
- fflush(stderr);
- }
- XtFree(buf);
- return fp;
-}
-
-static
-void error(s)
- char *s;
-{
- if (current_filename) {
- fprintf(stderr, "%s:", current_filename);
- if (current_lineno > 0)
- fprintf(stderr, "%d:", current_lineno);
- putc(' ', stderr);
- }
- fputs(s, stderr);
- putc('\n', stderr);
- fflush(stderr);
-}
-
-/*
-Local Variables:
-c-indent-level: 4
-c-continued-statement-offset: 4
-c-brace-offset: -4
-c-argdecl-indent: 4
-c-label-offset: -4
-c-tab-always-indent: nil
-End:
-*/
diff --git a/contrib/groff/src/xditview/device.h b/contrib/groff/src/xditview/device.h
deleted file mode 100644
index 2b9a64b..0000000
--- a/contrib/groff/src/xditview/device.h
+++ /dev/null
@@ -1,21 +0,0 @@
-
-typedef struct _DeviceFont DeviceFont;
-
-typedef struct _Device {
- char *name;
- int sizescale;
- int res;
- int unitwidth;
- int paperlength;
- int paperwidth;
- int X11;
- DeviceFont *fonts;
-} Device;
-
-extern void device_destroy();
-extern Device *device_load();
-extern DeviceFont *device_find_font();
-extern int device_char_width();
-extern char *device_name_for_code();
-extern int device_code_width();
-extern int device_font_special();
diff --git a/contrib/groff/src/xditview/draw.c b/contrib/groff/src/xditview/draw.c
deleted file mode 100644
index fe7c80f..0000000
--- a/contrib/groff/src/xditview/draw.c
+++ /dev/null
@@ -1,725 +0,0 @@
-/*
- * draw.c
- *
- * accept dvi function calls and translate to X
- */
-
-#include <X11/Xos.h>
-#include <X11/IntrinsicP.h>
-#include <X11/StringDefs.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <math.h>
-
-/* math.h on a Sequent doesn't define M_PI, apparently */
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-#include "DviP.h"
-
-#define DeviceToX(dw, n) ((int)((n) * (dw)->dvi.scale_factor + .5))
-#define XPos(dw) (DeviceToX((dw), (dw)->dvi.state->x - \
- (dw)->dvi.text_device_width) + (dw)->dvi.text_x_width)
-#define YPos(dw) (DeviceToX((dw), (dw)->dvi.state->y))
-
-static int FakeCharacter();
-
-HorizontalMove(dw, delta)
- DviWidget dw;
- int delta;
-{
- dw->dvi.state->x += delta;
-}
-
-HorizontalGoto(dw, NewPosition)
- DviWidget dw;
- int NewPosition;
-{
- dw->dvi.state->x = NewPosition;
-}
-
-VerticalMove(dw, delta)
- DviWidget dw;
- int delta;
-{
- dw->dvi.state->y += delta;
-}
-
-VerticalGoto(dw, NewPosition)
- DviWidget dw;
- int NewPosition;
-{
- dw->dvi.state->y = NewPosition;
-}
-
-AdjustCacheDeltas (dw)
- DviWidget dw;
-{
- int extra;
- int nadj;
- int i;
-
- nadj = 0;
- extra = DeviceToX(dw, dw->dvi.text_device_width)
- - dw->dvi.text_x_width;
- if (extra == 0)
- return;
- for (i = 0; i <= dw->dvi.cache.index; i++)
- if (dw->dvi.cache.adjustable[i])
- ++nadj;
- dw->dvi.text_x_width += extra;
- if (nadj <= 1)
- return;
- for (i = 0; i <= dw->dvi.cache.index; i++)
- if (dw->dvi.cache.adjustable[i]) {
- int x;
- int *deltap;
-
- x = extra/nadj;
- deltap = &dw->dvi.cache.cache[i].delta;
-#define MIN_DELTA 2
- if (*deltap > 0 && x + *deltap < MIN_DELTA) {
- x = MIN_DELTA - *deltap;
- if (x <= 0)
- *deltap = MIN_DELTA;
- else
- x = 0;
- }
- else
- *deltap += x;
- extra -= x;
- --nadj;
- dw->dvi.cache.adjustable[i] = 0;
- }
-}
-
-FlushCharCache (dw)
- DviWidget dw;
-{
- if (dw->dvi.cache.char_index != 0) {
- AdjustCacheDeltas (dw);
- XDrawText (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
- dw->dvi.cache.start_x, dw->dvi.cache.start_y,
- dw->dvi.cache.cache, dw->dvi.cache.index + 1);
- }
- dw->dvi.cache.index = 0;
- dw->dvi.cache.max = DVI_TEXT_CACHE_SIZE;
-#if 0
- if (dw->dvi.noPolyText)
- dw->dvi.cache.max = 1;
-#endif
- dw->dvi.cache.char_index = 0;
- dw->dvi.cache.cache[0].nchars = 0;
- dw->dvi.cache.start_x = dw->dvi.cache.x = XPos (dw);
- dw->dvi.cache.start_y = dw->dvi.cache.y = YPos (dw);
-}
-
-Newline (dw)
- DviWidget dw;
-{
- FlushCharCache (dw);
- dw->dvi.text_x_width = dw->dvi.text_device_width = 0;
- dw->dvi.word_flag = 0;
-}
-
-Word (dw)
- DviWidget dw;
-{
- dw->dvi.word_flag = 1;
-}
-
-#define charWidth(fi,c) (\
- (fi)->per_char ?\
- (fi)->per_char[(c) - (fi)->min_char_or_byte2].width\
- :\
- (fi)->max_bounds.width\
-)
-
-
-static
-int charExists (fi, c)
- XFontStruct *fi;
- int c;
-{
- XCharStruct *p;
-
- if (fi->per_char == NULL ||
- c < fi->min_char_or_byte2 || c > fi->max_char_or_byte2)
- return 0;
- p = fi->per_char + (c - fi->min_char_or_byte2);
- return (p->lbearing != 0 || p->rbearing != 0 || p->width != 0
- || p->ascent != 0 || p->descent != 0 || p->attributes != 0);
-}
-
-static
-DoCharacter (dw, c, wid)
- DviWidget dw;
- int c;
- int wid; /* width in device units */
-{
- register XFontStruct *font;
- register XTextItem *text;
- int x, y;
-
- x = XPos(dw);
- y = YPos(dw);
-
- /*
- * quick and dirty extents calculation:
- */
- if (!(y + 24 >= dw->dvi.extents.y1
- && y - 24 <= dw->dvi.extents.y2
-#if 0
- && x + 24 >= dw->dvi.extents.x1
- && x - 24 <= dw->dvi.extents.x2
-#endif
- ))
- return;
-
- if (y != dw->dvi.cache.y
- || dw->dvi.cache.char_index >= DVI_CHAR_CACHE_SIZE) {
- FlushCharCache (dw);
- x = dw->dvi.cache.x;
- dw->dvi.cache.adjustable[dw->dvi.cache.index] = 0;
- }
- /*
- * load a new font, if the current block is not empty,
- * step to the next.
- */
- if (dw->dvi.cache.font_size != dw->dvi.state->font_size ||
- dw->dvi.cache.font_number != dw->dvi.state->font_number)
- {
- FlushCharCache (dw);
- x = dw->dvi.cache.x;
- dw->dvi.cache.font_size = dw->dvi.state->font_size;
- dw->dvi.cache.font_number = dw->dvi.state->font_number;
- dw->dvi.cache.font = QueryFont (dw,
- dw->dvi.cache.font_number,
- dw->dvi.cache.font_size);
- if (dw->dvi.cache.cache[dw->dvi.cache.index].nchars != 0) {
- ++dw->dvi.cache.index;
- if (dw->dvi.cache.index >= dw->dvi.cache.max)
- FlushCharCache (dw);
- dw->dvi.cache.cache[dw->dvi.cache.index].nchars = 0;
- dw->dvi.cache.adjustable[dw->dvi.cache.index] = 0;
- }
- }
- if (x != dw->dvi.cache.x || dw->dvi.word_flag) {
- if (dw->dvi.cache.cache[dw->dvi.cache.index].nchars != 0) {
- ++dw->dvi.cache.index;
- if (dw->dvi.cache.index >= dw->dvi.cache.max)
- FlushCharCache (dw);
- dw->dvi.cache.cache[dw->dvi.cache.index].nchars = 0;
- dw->dvi.cache.adjustable[dw->dvi.cache.index] = 0;
- }
- dw->dvi.cache.adjustable[dw->dvi.cache.index]
- = dw->dvi.word_flag;
- dw->dvi.word_flag = 0;
- }
- font = dw->dvi.cache.font;
- text = &dw->dvi.cache.cache[dw->dvi.cache.index];
- if (text->nchars == 0) {
- text->chars = &dw->dvi.cache.char_cache[dw->dvi.cache.char_index];
- text->delta = x - dw->dvi.cache.x;
- if (font != dw->dvi.font) {
- text->font = font->fid;
- dw->dvi.font = font;
- } else
- text->font = None;
- dw->dvi.cache.x += text->delta;
- }
- if (charExists(font, c)) {
- int w;
- dw->dvi.cache.char_cache[dw->dvi.cache.char_index++] = (char) c;
- ++text->nchars;
- w = charWidth(font, c);
- dw->dvi.cache.x += w;
- if (wid != 0) {
- dw->dvi.text_x_width += w;
- dw->dvi.text_device_width += wid;
- }
- }
-}
-
-static
-int FindCharWidth (dw, buf, widp)
- DviWidget dw;
- char *buf;
- int *widp;
-{
- int maxpos;
- int i;
-
- if (dw->dvi.device_font == 0
- || dw->dvi.state->font_number != dw->dvi.device_font_number) {
- dw->dvi.device_font_number = dw->dvi.state->font_number;
- dw->dvi.device_font
- = QueryDeviceFont (dw, dw->dvi.device_font_number);
- }
- if (dw->dvi.device_font
- && device_char_width (dw->dvi.device_font,
- dw->dvi.state->font_size, buf, widp))
- return 1;
-
- maxpos = MaxFontPosition (dw);
- for (i = 1; i <= maxpos; i++) {
- DeviceFont *f = QueryDeviceFont (dw, i);
- if (f && device_font_special (f)
- && device_char_width (f, dw->dvi.state->font_size,
- buf, widp)) {
- dw->dvi.state->font_number = i;
- return 1;
- }
- }
- return 0;
-}
-
-/* Return the width of the character in device units. */
-
-int PutCharacter (dw, buf)
- DviWidget dw;
- char *buf;
-{
- int prevFont;
- int c = -1;
- int wid = 0;
- DviCharNameMap *map;
-
- if (!dw->dvi.display_enable)
- return 0; /* The width doesn't matter in this case. */
- prevFont = dw->dvi.state->font_number;
- if (!FindCharWidth (dw, buf, &wid))
- return 0;
- map = QueryFontMap (dw, dw->dvi.state->font_number);
- if (map)
- c = DviCharIndex (map, buf);
- if (c >= 0)
- DoCharacter (dw, c, wid);
- else
- (void) FakeCharacter (dw, buf, wid);
- dw->dvi.state->font_number = prevFont;
- return wid;
-}
-
-/* Return 1 if we can fake it; 0 otherwise. */
-
-static
-int FakeCharacter (dw, buf, wid)
- DviWidget dw;
- char *buf;
- int wid;
-{
- int oldx, oldw;
- char ch[2];
- char *chars = 0;
-
- if (buf[0] == '\0' || buf[1] == '\0' || buf[2] != '\0')
- return 0;
-#define pack2(c1, c2) (((c1) << 8) | (c2))
-
- switch (pack2(buf[0], buf[1])) {
- case pack2('f', 'i'):
- chars = "fi";
- break;
- case pack2('f', 'l'):
- chars = "fl";
- break;
- case pack2('f', 'f'):
- chars = "ff";
- break;
- case pack2('F', 'i'):
- chars = "ffi";
- break;
- case pack2('F', 'l'):
- chars = "ffl";
- break;
- }
- if (!chars)
- return 0;
- oldx = dw->dvi.state->x;
- oldw = dw->dvi.text_device_width;
- ch[1] = '\0';
- for (; *chars; chars++) {
- ch[0] = *chars;
- dw->dvi.state->x += PutCharacter (dw, ch);
- }
- dw->dvi.state->x = oldx;
- dw->dvi.text_device_width = oldw + wid;
- return 1;
-}
-
-PutNumberedCharacter (dw, c)
- DviWidget dw;
- int c;
-{
- char *name;
- int wid;
- DviCharNameMap *map;
-
- if (!dw->dvi.display_enable)
- return;
-
- if (dw->dvi.device_font == 0
- || dw->dvi.state->font_number != dw->dvi.device_font_number) {
- dw->dvi.device_font_number = dw->dvi.state->font_number;
- dw->dvi.device_font
- = QueryDeviceFont (dw, dw->dvi.device_font_number);
- }
-
- if (dw->dvi.device_font == 0
- || !device_code_width (dw->dvi.device_font,
- dw->dvi.state->font_size, c, &wid))
- return;
- if (dw->dvi.native) {
- DoCharacter (dw, c, wid);
- return;
- }
- map = QueryFontMap (dw, dw->dvi.state->font_number);
- if (!map)
- return;
- for (name = device_name_for_code (dw->dvi.device_font, c);
- name;
- name = device_name_for_code ((DeviceFont *)0, c)) {
- int code = DviCharIndex (map, name);
- if (code >= 0) {
- DoCharacter (dw, code, wid);
- break;
- }
- if (FakeCharacter (dw, name, wid))
- break;
- }
-}
-
-ClearPage (dw)
- DviWidget dw;
-{
- XClearWindow (XtDisplay (dw), XtWindow (dw));
-}
-
-static
-setGC (dw)
- DviWidget dw;
-{
- int desired_line_width;
-
- if (dw->dvi.line_thickness < 0)
- desired_line_width = (int)(((double)dw->dvi.device_resolution
- * dw->dvi.state->font_size)
- / (10.0*72.0*dw->dvi.sizescale));
- else
- desired_line_width = dw->dvi.line_thickness;
-
- if (desired_line_width != dw->dvi.line_width) {
- XGCValues values;
- values.line_width = DeviceToX(dw, desired_line_width);
- if (values.line_width == 0)
- values.line_width = 1;
- XChangeGC(XtDisplay (dw), dw->dvi.normal_GC,
- GCLineWidth, &values);
- dw->dvi.line_width = desired_line_width;
- }
-}
-
-static
-setFillGC (dw)
- DviWidget dw;
-{
- int fill_type;
- unsigned long mask = GCFillStyle | GCForeground;
-
- fill_type = (dw->dvi.fill * 10) / (DVI_FILL_MAX + 1);
- if (dw->dvi.fill_type != fill_type) {
- XGCValues values;
- if (fill_type <= 0) {
- values.foreground = dw->dvi.background;
- values.fill_style = FillSolid;
- } else if (fill_type >= 9) {
- values.foreground = dw->dvi.foreground;
- values.fill_style = FillSolid;
- } else {
- values.foreground = dw->dvi.foreground;
- values.fill_style = FillOpaqueStippled;
- values.stipple = dw->dvi.gray[fill_type - 1];
- mask |= GCStipple;
- }
- XChangeGC(XtDisplay (dw), dw->dvi.fill_GC, mask, &values);
- dw->dvi.fill_type = fill_type;
- }
-}
-
-DrawLine (dw, x, y)
- DviWidget dw;
- int x, y;
-{
- int xp, yp;
-
- AdjustCacheDeltas (dw);
- setGC (dw);
- xp = XPos (dw);
- yp = YPos (dw);
- XDrawLine (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
- xp, yp,
- xp + DeviceToX (dw, x), yp + DeviceToX (dw, y));
-}
-
-DrawCircle (dw, diam)
- DviWidget dw;
- int diam;
-{
- int d;
-
- AdjustCacheDeltas (dw);
- setGC (dw);
- d = DeviceToX (dw, diam);
- XDrawArc (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
- XPos (dw), YPos (dw) - d/2,
- d, d, 0, 64*360);
-}
-
-DrawFilledCircle (dw, diam)
- DviWidget dw;
- int diam;
-{
- int d;
-
- AdjustCacheDeltas (dw);
- setFillGC (dw);
- d = DeviceToX (dw, diam);
- XFillArc (XtDisplay (dw), XtWindow (dw), dw->dvi.fill_GC,
- XPos (dw), YPos (dw) - d/2,
- d, d, 0, 64*360);
- XDrawArc (XtDisplay (dw), XtWindow (dw), dw->dvi.fill_GC,
- XPos (dw), YPos (dw) - d/2,
- d, d, 0, 64*360);
-}
-
-DrawEllipse (dw, a, b)
- DviWidget dw;
- int a, b;
-{
- AdjustCacheDeltas (dw);
- setGC (dw);
- XDrawArc (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
- XPos (dw), YPos (dw) - DeviceToX (dw, b/2),
- DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
-}
-
-DrawFilledEllipse (dw, a, b)
- DviWidget dw;
- int a, b;
-{
- AdjustCacheDeltas (dw);
- setFillGC (dw);
- XFillArc (XtDisplay (dw), XtWindow (dw), dw->dvi.fill_GC,
- XPos (dw), YPos (dw) - DeviceToX (dw, b/2),
- DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
- XDrawArc (XtDisplay (dw), XtWindow (dw), dw->dvi.fill_GC,
- XPos (dw), YPos (dw) - DeviceToX (dw, b/2),
- DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
-}
-
-DrawArc (dw, x0, y0, x1, y1)
- DviWidget dw;
- int x0, y0, x1, y1;
-{
- int angle1, angle2;
- int rad = (int)((sqrt ((double)x0*x0 + (double)y0*y0)
- + sqrt ((double)x1*x1 + (double)y1*y1) + 1.0)/2.0);
- if ((x0 == 0 && y0 == 0) || (x1 == 0 && y1 == 0))
- return;
- angle1 = (int)(atan2 ((double)y0, (double)-x0)*180.0*64.0/M_PI);
- angle2 = (int)(atan2 ((double)-y1, (double)x1)*180.0*64.0/M_PI);
-
- angle2 -= angle1;
- if (angle2 < 0)
- angle2 += 64*360;
-
- AdjustCacheDeltas (dw);
- setGC (dw);
-
- rad = DeviceToX (dw, rad);
- XDrawArc (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
- XPos (dw) + DeviceToX (dw, x0) - rad,
- YPos (dw) + DeviceToX (dw, y0) - rad,
- rad*2, rad*2, angle1, angle2);
-}
-
-DrawPolygon (dw, v, n)
- DviWidget dw;
- int *v;
- int n;
-{
- XPoint *p;
- int i;
- int dx, dy;
-
- n /= 2;
-
- AdjustCacheDeltas (dw);
- setGC (dw);
- p = (XPoint *)XtMalloc((n + 2)*sizeof(XPoint));
- p[0].x = XPos (dw);
- p[0].y = YPos (dw);
- dx = 0;
- dy = 0;
- for (i = 0; i < n; i++) {
- dx += v[2*i];
- p[i + 1].x = DeviceToX (dw, dx) + p[0].x;
- dy += v[2*i + 1];
- p[i + 1].y = DeviceToX (dw, dy) + p[0].y;
- }
- p[n+1].x = p[0].x;
- p[n+1].y = p[0].y;
- XDrawLines (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
- p, n + 2, CoordModeOrigin);
- XtFree((char *)p);
-}
-
-
-DrawFilledPolygon (dw, v, n)
- DviWidget dw;
- int *v;
- int n;
-{
- XPoint *p;
- int i;
- int dx, dy;
-
- n /= 2;
- if (n < 2)
- return;
-
- AdjustCacheDeltas (dw);
- setFillGC (dw);
- p = (XPoint *)XtMalloc((n + 2)*sizeof(XPoint));
- p[0].x = p[n+1].x = XPos (dw);
- p[0].y = p[n+1].y = YPos (dw);
- dx = 0;
- dy = 0;
- for (i = 0; i < n; i++) {
- dx += v[2*i];
- p[i + 1].x = DeviceToX (dw, dx) + p[0].x;
- dy += v[2*i + 1];
- p[i + 1].y = DeviceToX (dw, dy) + p[0].y;
- }
- XFillPolygon (XtDisplay (dw), XtWindow (dw), dw->dvi.fill_GC,
- p, n + 1, Complex, CoordModeOrigin);
- XDrawLines (XtDisplay (dw), XtWindow (dw), dw->dvi.fill_GC,
- p, n + 2, CoordModeOrigin);
- XtFree((char *)p);
-}
-
-#define POINTS_MAX 10000
-
-static
-appendPoint(points, pointi, x, y)
- XPoint *points;
- int *pointi;
- int x, y;
-{
- if (*pointi < POINTS_MAX) {
- points[*pointi].x = x;
- points[*pointi].y = y;
- *pointi += 1;
- }
-}
-
-#define FLATNESS 1
-
-static
-flattenCurve(points, pointi, x2, y2, x3, y3, x4, y4)
- XPoint *points;
- int *pointi;
- int x2, y2, x3, y3, x4, y4;
-{
- int x1, y1, dx, dy, n1, n2, n;
-
- x1 = points[*pointi - 1].x;
- y1 = points[*pointi - 1].y;
-
- dx = x4 - x1;
- dy = y4 - y1;
-
- n1 = dy*(x2 - x1) - dx*(y2 - y1);
- n2 = dy*(x3 - x1) - dx*(y3 - y1);
- if (n1 < 0)
- n1 = -n1;
- if (n2 < 0)
- n2 = -n2;
- n = n1 > n2 ? n1 : n2;
-
- if (n*n / (dy*dy + dx*dx) <= FLATNESS*FLATNESS)
- appendPoint (points, pointi, x4, y4);
- else {
- flattenCurve (points, pointi,
- (x1 + x2)/2, (y1 + y2)/2,
- (x1 + x2*2 + x3)/4, (y1 + y2*2 + y3)/4,
- (x1 +3*x2 + 3*x3 + x4)/8, (y1 +3*y2 + 3*y3 + y4)/8);
- flattenCurve (points, pointi,
- (x2 + x3*2 + x4)/4, (y2 + y3*2 + y4)/4,
- (x3 + x4)/2, (y3 + y4)/2,
- x4, y4);
- }
-}
-
-
-DrawSpline (dw, v, n)
- DviWidget dw;
- int *v;
- int n;
-{
- int sx, sy, tx, ty;
- int ox, oy, dx, dy;
- int i;
- int pointi;
- XPoint points[POINTS_MAX];
-
- if (n == 0 || (n & 1) != 0)
- return;
- AdjustCacheDeltas (dw);
- setGC (dw);
- ox = XPos (dw);
- oy = YPos (dw);
- dx = v[0];
- dy = v[1];
- sx = ox;
- sy = oy;
- tx = sx + DeviceToX (dw, dx);
- ty = sy + DeviceToX (dw, dy);
-
- pointi = 0;
-
- appendPoint (points, &pointi, sx, sy);
- appendPoint (points, &pointi, (sx + tx)/2, (sy + ty)/2);
-
- for (i = 2; i < n; i += 2) {
- int ux = ox + DeviceToX (dw, dx += v[i]);
- int uy = oy + DeviceToX (dw, dy += v[i+1]);
- flattenCurve (points, &pointi,
- (sx + tx*5)/6, (sy + ty*5)/6,
- (tx*5 + ux)/6, (ty*5 + uy)/6,
- (tx + ux)/2, (ty + uy)/2);
- sx = tx;
- sy = ty;
- tx = ux;
- ty = uy;
- }
-
- appendPoint (points, &pointi, tx, ty);
-
- XDrawLines (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
- points, pointi, CoordModeOrigin);
-}
-
-
-/*
-Local Variables:
-c-indent-level: 8
-c-continued-statement-offset: 8
-c-brace-offset: -8
-c-argdecl-indent: 8
-c-label-offset: -8
-c-tab-always-indent: nil
-End:
-*/
diff --git a/contrib/groff/src/xditview/font.c b/contrib/groff/src/xditview/font.c
deleted file mode 100644
index 2e028aa..0000000
--- a/contrib/groff/src/xditview/font.c
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
- * font.c
- *
- * map dvi fonts to X fonts
- */
-
-#include <X11/Xos.h>
-#include <X11/IntrinsicP.h>
-#include <X11/StringDefs.h>
-#include <stdio.h>
-#include <ctype.h>
-#include "DviP.h"
-#include "XFontName.h"
-
-static DisposeFontSizes();
-
-static char *
-savestr (s)
- char *s;
-{
- char *n;
-
- if (!s)
- return 0;
- n = XtMalloc (strlen (s) + 1);
- if (n)
- strcpy (n, s);
- return n;
-}
-
-static DviFontList *
-LookupFontByPosition (dw, position)
- DviWidget dw;
- int position;
-{
- DviFontList *f;
-
- for (f = dw->dvi.fonts; f; f = f->next)
- if (f->dvi_number == position)
- break;
- return f;
-}
-
-int
-MaxFontPosition (dw)
- DviWidget dw;
-{
- DviFontList *f;
- int n = -1;
-
- for (f = dw->dvi.fonts; f; f = f->next)
- if (f->dvi_number > n)
- n = f->dvi_number;
- return n;
-}
-
-static DviFontSizeList *
-LookupFontSizeBySize (dw, f, size)
- DviWidget dw;
- DviFontList *f;
- int size;
-{
- DviFontSizeList *fs, *best = 0, *smallest = 0;
- int bestsize = 0;
- XFontName fontName;
- unsigned int fontNameAttributes;
- char fontNameString[2048];
- int decipointsize;
-
- if (f->scalable) {
- decipointsize = (10*size)/dw->dvi.sizescale;
- for (best = f->sizes; best; best = best->next)
- if (best->size == decipointsize)
- return best;
- best = (DviFontSizeList *) XtMalloc(sizeof *best);
- best->next = f->sizes;
- best->size = decipointsize;
- f->sizes = best;
- XParseFontName (f->x_name, &fontName, &fontNameAttributes);
- fontNameAttributes &= ~(FontNamePixelSize|FontNameAverageWidth);
- fontNameAttributes |= FontNameResolutionX;
- fontNameAttributes |= FontNameResolutionY;
- fontNameAttributes |= FontNamePointSize;
- fontName.ResolutionX = dw->dvi.display_resolution;
- fontName.ResolutionY = dw->dvi.display_resolution;
- fontName.PointSize = decipointsize;
- XFormatFontName (&fontName, fontNameAttributes, fontNameString);
- best->x_name = savestr (fontNameString);
- best->doesnt_exist = 0;
- best->font = 0;
- return best;
- }
- for (fs = f->sizes; fs; fs=fs->next) {
- if (dw->dvi.sizescale*fs->size <= 10*size
- && fs->size >= bestsize) {
- best = fs;
- bestsize = fs->size;
- }
- if (smallest == 0 || fs->size < smallest->size)
- smallest = fs;
- }
- return best ? best : smallest;
-}
-
-static char *
-SkipFontNameElement (n)
- char *n;
-{
- while (*n != '-')
- if (!*++n)
- return 0;
- return n+1;
-}
-
-# define SizePosition 8
-# define EncodingPosition 13
-
-static
-ConvertFontNameToSize (n)
- char *n;
-{
- int i, size;
-
- for (i = 0; i < SizePosition; i++) {
- n = SkipFontNameElement (n);
- if (!n)
- return -1;
- }
- size = atoi (n);
- return size;
-}
-
-static char *
-ConvertFontNameToEncoding (n)
- char *n;
-{
- int i;
- for (i = 0; i < EncodingPosition; i++) {
- n = SkipFontNameElement (n);
- if (!n)
- return 0;
- }
- return n;
-}
-
-DviFontSizeList *
-InstallFontSizes (dw, x_name, scalablep)
- DviWidget dw;
- char *x_name;
- Boolean *scalablep;
-{
- char fontNameString[2048];
- char **fonts;
- int i, count;
- int size;
- DviFontSizeList *sizes, *new;
- XFontName fontName;
- unsigned int fontNameAttributes;
-
- *scalablep = FALSE;
- if (!XParseFontName (x_name, &fontName, &fontNameAttributes))
- return 0;
- fontNameAttributes &= ~(FontNamePixelSize|FontNamePointSize
- |FontNameAverageWidth);
- fontNameAttributes |= FontNameResolutionX;
- fontNameAttributes |= FontNameResolutionY;
- fontName.ResolutionX = dw->dvi.display_resolution;
- fontName.ResolutionY = dw->dvi.display_resolution;
- XFormatFontName (&fontName, fontNameAttributes, fontNameString);
- fonts = XListFonts (XtDisplay (dw), fontNameString, 10000000, &count);
- sizes = 0;
- for (i = 0; i < count; i++) {
- size = ConvertFontNameToSize (fonts[i]);
- if (size == 0) {
- DisposeFontSizes (dw, sizes);
- sizes = 0;
- *scalablep = TRUE;
- break;
- }
- if (size != -1) {
- new = (DviFontSizeList *) XtMalloc (sizeof *new);
- new->next = sizes;
- new->size = size;
- new->x_name = savestr (fonts[i]);
- new->doesnt_exist = 0;
- new->font = 0;
- sizes = new;
- }
- }
- XFreeFontNames (fonts);
- return sizes;
-}
-
-static
-DisposeFontSizes (dw, fs)
- DviWidget dw;
- DviFontSizeList *fs;
-{
- DviFontSizeList *next;
-
- for (; fs; fs=next) {
- next = fs->next;
- if (fs->x_name)
- XtFree (fs->x_name);
- if (fs->font && fs->font != dw->dvi.default_font) {
- XUnloadFont (XtDisplay (dw), fs->font->fid);
- XFree ((char *)fs->font);
- }
- XtFree ((char *) fs);
- }
-}
-
-static DviFontList *
-InstallFont (dw, position, dvi_name, x_name)
- DviWidget dw;
- int position;
- char *dvi_name;
- char *x_name;
-{
- DviFontList *f;
- char *encoding;
-
- if ((f = LookupFontByPosition (dw, position)) != NULL) {
- /*
- * ignore gratuitous font loading
- */
- if (!strcmp (f->dvi_name, dvi_name) &&
- !strcmp (f->x_name, x_name))
- return f;
-
- DisposeFontSizes (dw, f->sizes);
- if (f->dvi_name)
- XtFree (f->dvi_name);
- if (f->x_name)
- XtFree (f->x_name);
- f->device_font = 0;
- } else {
- f = (DviFontList *) XtMalloc (sizeof (*f));
- f->next = dw->dvi.fonts;
- dw->dvi.fonts = f;
- }
- f->initialized = FALSE;
- f->dvi_name = savestr (dvi_name);
- f->device_font = device_find_font (dw->dvi.device, dvi_name);
- f->x_name = savestr (x_name);
- f->dvi_number = position;
- f->sizes = 0;
- f->scalable = FALSE;
- if (f->x_name) {
- encoding = ConvertFontNameToEncoding (f->x_name);
- f->char_map = DviFindMap (encoding);
- } else
- f->char_map = 0;
- /*
- * force requery of fonts
- */
- dw->dvi.font = 0;
- dw->dvi.font_number = -1;
- dw->dvi.cache.font = 0;
- dw->dvi.cache.font_number = -1;
- dw->dvi.device_font = 0;
- dw->dvi.device_font_number = -1;
- return f;
-}
-
-ForgetFonts (dw)
- DviWidget dw;
-{
- DviFontList *f = dw->dvi.fonts;
-
- while (f) {
- DviFontList *tem = f;
-
- if (f->sizes)
- DisposeFontSizes (dw, f->sizes);
- if (f->dvi_name)
- XtFree (f->dvi_name);
- if (f->x_name)
- XtFree (f->x_name);
- f = f->next;
- XtFree ((char *) tem);
- }
-
- /*
- * force requery of fonts
- */
- dw->dvi.font = 0;
- dw->dvi.font_number = -1;
- dw->dvi.cache.font = 0;
- dw->dvi.cache.font_number = -1;
- dw->dvi.device_font = 0;
- dw->dvi.device_font_number = -1;
- dw->dvi.fonts = 0;
-}
-
-
-static char *
-MapDviNameToXName (dw, dvi_name)
- DviWidget dw;
- char *dvi_name;
-{
- DviFontMap *fm;
-
- for (fm = dw->dvi.font_map; fm; fm=fm->next)
- if (!strcmp (fm->dvi_name, dvi_name))
- return fm->x_name;
- return 0;
-}
-
-#if 0
-static char *
-MapXNameToDviName (dw, x_name)
- DviWidget dw;
- char *x_name;
-{
- DviFontMap *fm;
-
- for (fm = dw->dvi.font_map; fm; fm=fm->next)
- if (!strcmp (fm->x_name, x_name))
- return fm->dvi_name;
- return 0;
-}
-#endif
-
-ParseFontMap (dw)
- DviWidget dw;
-{
- char dvi_name[1024];
- char x_name[2048];
- char *m, *s;
- DviFontMap *fm, *new;
-
- if (dw->dvi.font_map)
- DestroyFontMap (dw->dvi.font_map);
- fm = 0;
- m = dw->dvi.font_map_string;
- while (*m) {
- s = m;
- while (*m && !isspace (*m))
- ++m;
- strncpy (dvi_name, s, m-s);
- dvi_name[m-s] = '\0';
- while (isspace (*m))
- ++m;
- s = m;
- while (*m && *m != '\n')
- ++m;
- strncpy (x_name, s, m-s);
- x_name[m-s] = '\0';
- new = (DviFontMap *) XtMalloc (sizeof *new);
- new->x_name = savestr (x_name);
- new->dvi_name = savestr (dvi_name);
- new->next = fm;
- fm = new;
- ++m;
- }
- dw->dvi.font_map = fm;
-}
-
-DestroyFontMap (font_map)
- DviFontMap *font_map;
-{
- DviFontMap *next;
-
- for (; font_map; font_map = next) {
- next = font_map->next;
- if (font_map->x_name)
- XtFree (font_map->x_name);
- if (font_map->dvi_name)
- XtFree (font_map->dvi_name);
- XtFree ((char *) font_map);
- }
-}
-
-/* ARGSUSED */
-
-SetFontPosition (dw, position, dvi_name, extra)
- DviWidget dw;
- int position;
- char *dvi_name;
- char *extra; /* unused */
-{
- char *x_name;
-
- x_name = MapDviNameToXName (dw, dvi_name);
- if (x_name)
- (void) InstallFont (dw, position, dvi_name, x_name);
-}
-
-XFontStruct *
-QueryFont (dw, position, size)
- DviWidget dw;
- int position;
- int size;
-{
- DviFontList *f;
- DviFontSizeList *fs;
-
- f = LookupFontByPosition (dw, position);
- if (!f)
- return dw->dvi.default_font;
- if (!f->initialized) {
- f->sizes = InstallFontSizes (dw, f->x_name, &f->scalable);
- f->initialized = TRUE;
- }
- fs = LookupFontSizeBySize (dw, f, size);
- if (!fs)
- return dw->dvi.default_font;
- if (!fs->font) {
- if (fs->x_name)
- fs->font = XLoadQueryFont (XtDisplay (dw), fs->x_name);
- if (!fs->font)
- fs->font = dw->dvi.default_font;
- }
- return fs->font;
-}
-
-DeviceFont *
-QueryDeviceFont (dw, position)
- DviWidget dw;
- int position;
-{
- DviFontList *f;
-
- f = LookupFontByPosition (dw, position);
- if (!f)
- return 0;
- return f->device_font;
-}
-
-DviCharNameMap *
-QueryFontMap (dw, position)
- DviWidget dw;
- int position;
-{
- DviFontList *f;
-
- f = LookupFontByPosition (dw, position);
- if (f)
- return f->char_map;
- else
- return 0;
-}
-
-#if 0
-LoadFont (dw, position, size)
- DviWidget dw;
- int position;
- int size;
-{
- XFontStruct *font;
-
- font = QueryFont (dw, position, size);
- dw->dvi.font_number = position;
- dw->dvi.font_size = size;
- dw->dvi.font = font;
- XSetFont (XtDisplay (dw), dw->dvi.normal_GC, font->fid);
- return;
-}
-#endif
-
-/*
-Local Variables:
-c-indent-level: 8
-c-continued-statement-offset: 8
-c-brace-offset: -8
-c-argdecl-indent: 8
-c-label-offset: -8
-c-tab-always-indent: nil
-End:
-*/
diff --git a/contrib/groff/src/xditview/gray1.bm b/contrib/groff/src/xditview/gray1.bm
deleted file mode 100644
index c40a95e..0000000
--- a/contrib/groff/src/xditview/gray1.bm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define gray1_width 3
-#define gray1_height 3
-static char gray1_bits[] = {
- 0x00, 0x02, 0x00};
diff --git a/contrib/groff/src/xditview/gray2.bm b/contrib/groff/src/xditview/gray2.bm
deleted file mode 100644
index e87a1bc..0000000
--- a/contrib/groff/src/xditview/gray2.bm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define gray2_width 3
-#define gray2_height 3
-static char gray2_bits[] = {
- 0x00, 0x03, 0x00};
diff --git a/contrib/groff/src/xditview/gray3.bm b/contrib/groff/src/xditview/gray3.bm
deleted file mode 100644
index d9313eb..0000000
--- a/contrib/groff/src/xditview/gray3.bm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define gray3_width 3
-#define gray3_height 3
-static char gray3_bits[] = {
- 0x00, 0x03, 0x02};
diff --git a/contrib/groff/src/xditview/gray4.bm b/contrib/groff/src/xditview/gray4.bm
deleted file mode 100644
index dad142a..0000000
--- a/contrib/groff/src/xditview/gray4.bm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define gray4_width 3
-#define gray4_height 3
-static char gray4_bits[] = {
- 0x00, 0x07, 0x02};
diff --git a/contrib/groff/src/xditview/gray5.bm b/contrib/groff/src/xditview/gray5.bm
deleted file mode 100644
index 5f57618..0000000
--- a/contrib/groff/src/xditview/gray5.bm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define gray5_width 3
-#define gray5_height 3
-static char gray5_bits[] = {
- 0x04, 0x07, 0x02};
diff --git a/contrib/groff/src/xditview/gray6.bm b/contrib/groff/src/xditview/gray6.bm
deleted file mode 100644
index b76701d..0000000
--- a/contrib/groff/src/xditview/gray6.bm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define gray6_width 3
-#define gray6_height 3
-static char gray6_bits[] = {
- 0x04, 0x07, 0x03};
diff --git a/contrib/groff/src/xditview/gray7.bm b/contrib/groff/src/xditview/gray7.bm
deleted file mode 100644
index ef47bc6..0000000
--- a/contrib/groff/src/xditview/gray7.bm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define gray7_width 3
-#define gray7_height 3
-static char gray7_bits[] = {
- 0x05, 0x07, 0x03};
diff --git a/contrib/groff/src/xditview/gray8.bm b/contrib/groff/src/xditview/gray8.bm
deleted file mode 100644
index 12de7cb..0000000
--- a/contrib/groff/src/xditview/gray8.bm
+++ /dev/null
@@ -1,4 +0,0 @@
-#define gray8_width 3
-#define gray8_height 3
-static char gray8_bits[] = {
- 0x05, 0x07, 0x07};
diff --git a/contrib/groff/src/xditview/gxditview.man b/contrib/groff/src/xditview/gxditview.man
deleted file mode 100644
index 8680001..0000000
--- a/contrib/groff/src/xditview/gxditview.man
+++ /dev/null
@@ -1,249 +0,0 @@
-.TH GXDITVIEW 1 "Release 5" "X Version 11"
-.SH NAME
-gxditview \- display gtroff output files
-.SH SYNOPSIS
-.B gxditview
-.RI [\fB\- toolkitoption\ .\|.\|.\|]
-.RI [\fB\- option\ .\|.\|.\|]
-.RI [ filename ]
-.SH DESCRIPTION
-The
-.I gxditview
-program displays gtroff output on an X display.
-It uses the standard X11 fonts,
-so it does not require access to the server machine for font loading.
-.PP
-If
-.I filename
-is
-.BR \- ,
-.I gxditview
-will read the standard input.
-.PP
-The left mouse button brings up a menu with the following entries:
-.TP 8
-.B "Next Page"
-Display the next page.
-.TP
-.B "Previous Page"
-Display the previous page.
-.TP
-.B "Select Page"
-Select a particular numbered page specified by a dialog box.
-.TP
-.B Print
-Print the gtroff output using a command specified by a dialog box.
-The default command initially displayed is controlled by the
-.B printCommand
-application resource, and by the
-.B \-printCommand
-option.
-.TP
-.B Open
-Open for display a new file specified by a dialog box.
-The file should contain gtroff output.
-If the filename starts with
-.B |
-it will be taken to be a command to read from.
-.TP
-.B Quit
-Exit from
-.IR gxditview .
-.PP
-The
-.BR n ,
-Space
-and Return keys are bound to the
-.B Next\ Page
-action.
-The
-.BR p ,
-BackSpace
-and
-Delete
-keys are bound to the
-.B Previous\ Page
-action.
-The
-.B q
-key is bound to the
-.B Quit
-action.
-The
-.B r
-key is bound to the
-.B Rerasterize
-action which rereads the current file, and redisplays the current page;
-if the current file is a command, the command will be reexecuted.
-.PP
-The
-.B paperlength
-and
-.B paperwidth
-commands in the DESC file specify the length and width in machine units
-of the virtual page displayed by
-.IR gxditview .
-.SH OPTIONS
-.I Gxditview
-accepts all of the standard X Toolkit command line options along with the
-additional options listed below:
-.TP 8
-.B \-help
-This option indicates that a brief summary of the allowed options should be
-printed.
-.TP
-.B \-page
-This option specifies the page number of the document to be displayed.
-.TP
-.BI \-backingStore\ backing-store-type
-Redisplay of the gtroff output window can take upto a second or so,
-this option causes the server to save the window contents so that when
-it is scrolled around the viewport, the window is painted from
-contents saved in backing store.
-.I backing-store-type
-can be one of
-.BR Always ,
-.B WhenMapped
-or
-.BR NotUseful .
-.TP
-.BI \-printCommand\ command
-The default command displayed in the dialog box for the
-.B Print
-menu entry will be
-.IR command .
-.TP
-.BI \-resolution\ res
-The gtroff output file will be displayed at a resolution of
-.I res
-dpi,
-unless the DESC file contains the
-.B X11
-command, in which case the device resolution will be used.
-This corresponds the
-.I Dvi
-widget's
-.B resolution
-resource.
-The default is 75.
-.TP
-.BI \-filename\ string
-The default filename displayed in the dialog box for the
-.B Open
-menu entry will be
-.IR string .
-This can be either a filename, or a command starting with
-.BR | .
-.PP
-The following standard X Toolkit command line arguments are commonly used with
-.IR gxditview :
-.TP 8
-.BI \-bg\ color
-This option specifies the color to use for the background of the window.
-The default is \fIwhite\fP.
-.TP
-.BI \-bd\ color
-This option specifies the color to use for the border of the window.
-The default is \fIblack\fP.
-.TP
-.BI \-bw\ number
-This option specifies the width in pixels of the border surrounding the window.
-.TP
-.BI \-fg\ color
-This option specifies the color to use for displaying text. The default is
-\fIblack\fP.
-.TP
-.BI \-fn\ font
-This option specifies the font to be used for displaying widget text. The
-default is \fIfixed\fP.
-.TP
-.B \-rv
-This option indicates that reverse video should be simulated by swapping
-the foreground and background colors.
-.TP
-.BI \-geometry\ geometry
-This option specifies the preferred size and position of the window.
-.TP
-.BI \-display\ host : display
-This option specifies the X server to contact.
-.TP
-.BI \-xrm\ resourcestring
-This option specifies a resource string to be used.
-.SH X DEFAULTS
-This program uses the
-.I Dvi
-widget in the X Toolkit. It understands all of the core resource names and
-classes as well as:
-.PP
-.TP 8
-.BR width\ (class\ Width )
-Specifies the width of the window.
-.TP
-.BR height\ (class\ Height )
-Specifies the height of the window.
-.TP
-.BR foreground\ (class\ Foreground )
-Specifies the default foreground color.
-.TP
-.BR font\ (class\ Font )
-Specifies the font to be used for error messages.
-.TP
-.BR fontMap\ (class\ FontMap )
-Specifies the mapping from groff font names to X font names. This
-must be a string containing a sequence of lines. Each line contains
-two whitespace separated fields: first the groff font name, and
-secondly the X font name. The default is
-.nf
-"\e
-TR -adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\en\e
-TI -adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\en\e
-TB -adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\en\e
-TBI -adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\en\e
-CR -adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\en\e
-CI -adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\en\e
-CB -adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\en\e
-CBI -adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\en\e
-HR -adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\en\e
-HI -adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\en\e
-HB -adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\en\e
-HBI -adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\en\e
-NR -adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\en\e
-NI -adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\en\e
-NB -adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\en\e
-NBI -adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\en\e
-S -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\en\e
-SS -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\en\e
-"
-.fi
-
-.SH "SEE ALSO"
-.IR X (1),
-.IR xrdb (1),
-.IR gtroff (1),
-.IR groff (1)
-.SH ORIGIN
-This program is derived from xditview;
-portions of xditview originated in xtroff which was derived
-from suntroff.
-.SH COPYRIGHT
-Copyright 1989, Massachusetts Institute of Technology.
-.br
-See
-.IR X (1)
-for a full statement of rights and permissions.
-.SH AUTHORS
-Keith Packard (MIT X Consortium)
-.br
-Richard L. Hyde (Purdue)
-.br
-David Slattengren (Berkeley)
-.br
-Malcolm Slaney (Schlumberger Palo Alto Research)
-.br
-Mark Moraes (University of Toronto)
-.br
-James Clark
-.
-.\" Local Variables:
-.\" mode: nroff
-.\" End:
diff --git a/contrib/groff/src/xditview/lex.c b/contrib/groff/src/xditview/lex.c
deleted file mode 100644
index 32831bd..0000000
--- a/contrib/groff/src/xditview/lex.c
+++ /dev/null
@@ -1,103 +0,0 @@
-#include <X11/Xos.h>
-#include <X11/IntrinsicP.h>
-#include <X11/StringDefs.h>
-#include <stdio.h>
-#include "DviP.h"
-
-DviGetAndPut(dw, cp)
- DviWidget dw;
- int *cp;
-{
- if (dw->dvi.ungot) {
- dw->dvi.ungot = 0;
- *cp = getc (dw->dvi.file);
- }
- else {
- *cp = getc (dw->dvi.file);
- if (*cp != EOF)
- putc (*cp, dw->dvi.tmpFile);
- }
- return *cp;
-}
-
-char *
-GetLine(dw, Buffer, Length)
- DviWidget dw;
- char *Buffer;
- int Length;
-{
- int i = 0, c;
-
- Length--; /* Save room for final '\0' */
-
- while (DviGetC (dw, &c) != EOF) {
- if (Buffer && i < Length)
- Buffer[i++] = c;
- if (c == '\n') {
- DviUngetC(dw, c);
- break;
- }
- }
- if (Buffer)
- Buffer[i] = '\0';
- return Buffer;
-}
-
-char *
-GetWord(dw, Buffer, Length)
- DviWidget dw;
- char *Buffer;
- int Length;
-{
- int i = 0, c;
-
- Length--; /* Save room for final '\0' */
- while (DviGetC(dw, &c) == ' ' || c == '\n')
- ;
- while (c != EOF) {
- if (Buffer && i < Length)
- Buffer[i++] = c;
- if (DviGetC(dw, &c) == ' ' || c == '\n') {
- DviUngetC(dw, c);
- break;
- }
- }
- if (Buffer)
- Buffer[i] = '\0';
- return Buffer;
-}
-
-GetNumber(dw)
- DviWidget dw;
-{
- int i = 0, c;
- int negative = 0;
-
- while (DviGetC(dw, &c) == ' ' || c == '\n')
- ;
- if (c == '-') {
- negative = 1;
- DviGetC(dw, &c);
- }
-
- for (; c >= '0' && c <= '9'; DviGetC(dw, &c)) {
- if (negative)
- i = i*10 - (c - '0');
- else
- i = i*10 + c - '0';
- }
- if (c != EOF)
- DviUngetC(dw, c);
- return i;
-}
-
-/*
-Local Variables:
-c-indent-level: 8
-c-continued-statement-offset: 8
-c-brace-offset: -8
-c-argdecl-indent: 8
-c-label-offset: -8
-c-tab-always-indent: nil
-End:
-*/
diff --git a/contrib/groff/src/xditview/page.c b/contrib/groff/src/xditview/page.c
deleted file mode 100644
index 9284199..0000000
--- a/contrib/groff/src/xditview/page.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * page.c
- *
- * map page numbers to file position
- */
-
-#include <X11/Xos.h>
-#include <X11/IntrinsicP.h>
-#include <X11/StringDefs.h>
-#include <stdio.h>
-#include <ctype.h>
-#include "DviP.h"
-
-#ifdef X_NOT_STDC_ENV
-extern long ftell();
-#endif
-
-static DviFileMap *
-MapPageNumberToFileMap (dw, number)
- DviWidget dw;
- int number;
-{
- DviFileMap *m;
-
- for (m = dw->dvi.file_map; m; m=m->next)
- if (m->page_number == number)
- break;
- return m;
-}
-
-DestroyFileMap (m)
- DviFileMap *m;
-{
- DviFileMap *next;
-
- for (; m; m = next) {
- next = m->next;
- XtFree ((char *) m);
- }
-}
-
-ForgetPagePositions (dw)
- DviWidget dw;
-{
- DestroyFileMap (dw->dvi.file_map);
- dw->dvi.file_map = 0;
-}
-
-RememberPagePosition(dw, number)
- DviWidget dw;
- int number;
-{
- DviFileMap *m;
-
- if (!(m = MapPageNumberToFileMap (dw, number))) {
- m = (DviFileMap *) XtMalloc (sizeof *m);
- m->page_number = number;
- m->next = dw->dvi.file_map;
- dw->dvi.file_map = m;
- }
- if (dw->dvi.tmpFile)
- m->position = ftell (dw->dvi.tmpFile);
- else
- m->position = ftell (dw->dvi.file);
-}
-
-SearchPagePosition (dw, number)
- DviWidget dw;
- int number;
-{
- DviFileMap *m;
-
- if (!(m = MapPageNumberToFileMap (dw, number)))
- return -1;
- return m->position;
-}
-
-FileSeek(dw, position)
-DviWidget dw;
-long position;
-{
- if (dw->dvi.tmpFile) {
- dw->dvi.readingTmp = 1;
- fseek (dw->dvi.tmpFile, position, 0);
- } else
- fseek (dw->dvi.file, position, 0);
-}
-
diff --git a/contrib/groff/src/xditview/parse.c b/contrib/groff/src/xditview/parse.c
deleted file mode 100644
index d763268..0000000
--- a/contrib/groff/src/xditview/parse.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * parse.c
- *
- * parse dvi input
- */
-
-#include <X11/Xos.h>
-#include <X11/IntrinsicP.h>
-#include <X11/StringDefs.h>
-#include <stdio.h>
-#include <ctype.h>
-#include "DviP.h"
-
-static int StopSeen = 0;
-static ParseDrawFunction(), ParseDeviceControl();
-static push_env(), pop_env();
-
-#define HorizontalMove(dw, delta) ((dw)->dvi.state->x += (delta))
-
-
-ParseInput(dw)
- register DviWidget dw;
-{
- int n, k;
- int c;
- char Buffer[BUFSIZ];
- int NextPage;
- int otherc;
-
- StopSeen = 0;
-
- /*
- * make sure some state exists
- */
-
- if (!dw->dvi.state)
- push_env (dw);
- for (;;) {
- switch (DviGetC(dw, &c)) {
- case '\n':
- break;
- case ' ': /* when input is text */
- case 0: /* occasional noise creeps in */
- break;
- case '{': /* push down current environment */
- push_env(dw);
- break;
- case '}':
- pop_env(dw);
- break;
- /*
- * two motion digits plus a character
- */
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- HorizontalMove(dw, (c-'0')*10 +
- DviGetC(dw,&otherc)-'0');
- /* fall through */
- case 'c': /* single ascii character */
- DviGetC(dw,&c);
- if (c == ' ')
- break;
- Buffer[0] = c;
- Buffer[1] = '\0';
- (void) PutCharacter (dw, Buffer);
- break;
- case 'C':
- GetWord (dw, Buffer, BUFSIZ);
- (void) PutCharacter (dw, Buffer);
- break;
- case 't':
- Buffer[1] = '\0';
- while (DviGetC (dw, &c) != EOF
- && c != ' ' && c != '\n') {
- Buffer[0] = c;
- HorizontalMove (dw, PutCharacter (dw, Buffer));
- }
- break;
- case 'u':
- n = GetNumber(dw);
- Buffer[1] = '\0';
- while (DviGetC (dw, &c) == ' ')
- ;
- while (c != EOF && c != ' ' && c != '\n') {
- Buffer[0] = c;
- HorizontalMove (dw,
- PutCharacter (dw, Buffer) + n);
- DviGetC (dw, &c);
- }
- break;
-
- case 'D': /* draw function */
- (void) GetLine(dw, Buffer, BUFSIZ);
- if (dw->dvi.display_enable)
- ParseDrawFunction(dw, Buffer);
- break;
- case 's': /* ignore fractional sizes */
- n = GetNumber(dw);
- dw->dvi.state->font_size = n;
- break;
- case 'f':
- n = GetNumber(dw);
- dw->dvi.state->font_number = n;
- break;
- case 'H': /* absolute horizontal motion */
- k = GetNumber(dw);
- HorizontalGoto(dw, k);
- break;
- case 'h': /* relative horizontal motion */
- k = GetNumber(dw);
- HorizontalMove(dw, k);
- break;
- case 'w': /* word space */
- Word (dw);
- break;
- case 'V':
- n = GetNumber(dw);
- VerticalGoto(dw, n);
- break;
- case 'v':
- n = GetNumber(dw);
- VerticalMove(dw, n);
- break;
- case 'P': /* new spread */
- break;
- case 'p': /* new page */
- (void) GetNumber(dw);
- NextPage = dw->dvi.current_page + 1;
- RememberPagePosition(dw, NextPage);
- FlushCharCache (dw);
- return(NextPage);
- case 'N':
- n = GetNumber(dw);
- PutNumberedCharacter (dw, n);
- break;
- case 'n': /* end of line */
- GetNumber(dw);
- GetNumber(dw);
- Newline (dw);
- HorizontalGoto(dw, 0);
- break;
- case 'F': /* input files */
- case '+': /* continuation of X device control */
- case 'm': /* color */
- case '#': /* comment */
- GetLine(dw, NULL, 0);
- break;
- case 'x': /* device control */
- ParseDeviceControl(dw);
- break;
- case EOF:
- dw->dvi.last_page = dw->dvi.current_page;
- FlushCharCache (dw);
- return dw->dvi.current_page;
- default:
- break;
- }
- }
-}
-
-static
-push_env(dw)
- DviWidget dw;
-{
- DviState *new;
-
- new = (DviState *) XtMalloc (sizeof (*new));
- if (dw->dvi.state)
- *new = *(dw->dvi.state);
- else {
- new->font_size = 10;
- new->font_number = 1;
- new->x = 0;
- new->y = 0;
- }
- new->next = dw->dvi.state;
- dw->dvi.state = new;
-}
-
-static
-pop_env(dw)
- DviWidget dw;
-{
- DviState *old;
-
- old = dw->dvi.state;
- dw->dvi.state = old->next;
- XtFree ((char *) old);
-}
-
-static
-InitTypesetter (dw)
- DviWidget dw;
-{
- while (dw->dvi.state)
- pop_env (dw);
- push_env (dw);
- FlushCharCache (dw);
-}
-
-#define DRAW_ARGS_MAX 128
-
-static
-ParseDrawFunction(dw, buf)
-DviWidget dw;
-char *buf;
-{
- int v[DRAW_ARGS_MAX];
- int i, no_move = 0;
- char *ptr;
-
- v[0] = v[1] = v[2] = v[3] = 0;
-
- if (buf[0] == '\0')
- return;
- ptr = buf+1;
-
- for (i = 0; i < DRAW_ARGS_MAX; i++) {
- if (sscanf(ptr, "%d", v + i) != 1)
- break;
- while (*ptr == ' ')
- ptr++;
- while (*ptr != '\0' && *ptr != ' ')
- ptr++;
- }
-
- switch (buf[0]) {
- case 'l': /* draw a line */
- DrawLine(dw, v[0], v[1]);
- break;
- case 'c': /* circle */
- DrawCircle(dw, v[0]);
- break;
- case 'C':
- DrawFilledCircle(dw, v[0]);
- break;
- case 'e': /* ellipse */
- DrawEllipse(dw, v[0], v[1]);
- break;
- case 'E':
- DrawFilledEllipse(dw, v[0], v[1]);
- break;
- case 'a': /* arc */
- DrawArc(dw, v[0], v[1], v[2], v[3]);
- break;
- case 'p':
- DrawPolygon(dw, v, i);
- break;
- case 'P':
- DrawFilledPolygon(dw, v, i);
- break;
- case '~': /* wiggly line */
- DrawSpline(dw, v, i);
- break;
- case 't':
- dw->dvi.line_thickness = v[0];
- break;
- case 'f':
- if (i > 0 && v[0] >= 0 && v[0] <= DVI_FILL_MAX)
- dw->dvi.fill = v[0];
- no_move = 1;
- break;
- default:
-#if 0
- warning("unknown drawing function %s", buf);
-#endif
- no_move = 1;
- break;
- }
-
- if (!no_move) {
- if (buf[0] == 'e') {
- if (i > 0)
- dw->dvi.state->x += v[0];
- }
- else {
- while (--i >= 0) {
- if (i & 1)
- dw->dvi.state->y += v[i];
- else
- dw->dvi.state->x += v[i];
- }
- }
- }
-}
-
-static
-ParseDeviceControl(dw) /* Parse the x commands */
- DviWidget dw;
-{
- char str[20], str1[50];
- int c, n;
- extern int LastPage, CurrentPage;
-
- GetWord (dw, str, 20);
- switch (str[0]) { /* crude for now */
- case 'T': /* output device */
- GetWord (dw, str, 20);
- SetDevice (dw, str);
- break;
- case 'i': /* initialize */
- InitTypesetter (dw);
- break;
- case 't': /* trailer */
- break;
- case 'p': /* pause -- can restart */
- break;
- case 's': /* stop */
- StopSeen = 1;
- return;
- case 'r': /* resolution when prepared */
- break;
- case 'f': /* font used */
- n = GetNumber (dw);
- GetWord (dw, str, 20);
- GetLine (dw, str1, 50);
- SetFontPosition (dw, n, str, str1);
- break;
- case 'H': /* char height */
- break;
- case 'S': /* slant */
- break;
- }
- while (DviGetC (dw, &c) != '\n') /* skip rest of input line */
- if (c == EOF)
- return;
- return;
-}
-
-
-/*
-Local Variables:
-c-indent-level: 8
-c-continued-statement-offset: 8
-c-brace-offset: -8
-c-argdecl-indent: 8
-c-label-offset: -8
-c-tab-always-indent: nil
-End:
-*/
diff --git a/contrib/groff/src/xditview/xdit.bm b/contrib/groff/src/xditview/xdit.bm
deleted file mode 100644
index 67b9c8a..0000000
--- a/contrib/groff/src/xditview/xdit.bm
+++ /dev/null
@@ -1,14 +0,0 @@
-#define xdit_width 32
-#define xdit_height 32
-static char xdit_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x03, 0x02, 0x00, 0x00, 0x02,
- 0x8a, 0xa2, 0xfc, 0x03, 0x52, 0x14, 0x03, 0x04, 0x02, 0x80, 0x00, 0x08,
- 0x52, 0x54, 0x00, 0x10, 0x8a, 0x22, 0x8f, 0x23, 0x02, 0x20, 0x06, 0x21,
- 0x8a, 0x12, 0x8c, 0x40, 0x52, 0x14, 0x8c, 0x40, 0x02, 0x10, 0x58, 0x40,
- 0x52, 0x14, 0x30, 0x40, 0x8a, 0x12, 0x30, 0x40, 0x02, 0x10, 0x70, 0x40,
- 0x8a, 0x12, 0xc8, 0x40, 0x52, 0x24, 0xc4, 0xe0, 0x02, 0x20, 0x84, 0xe1,
- 0x52, 0x54, 0xce, 0xf3, 0x8a, 0xa2, 0x00, 0xf8, 0x02, 0x00, 0x03, 0xfc,
- 0x8a, 0x22, 0xfc, 0xf3, 0x52, 0x14, 0x00, 0xc2, 0x02, 0x00, 0x00, 0x02,
- 0x52, 0x14, 0x45, 0x02, 0x8a, 0xa2, 0x28, 0x02, 0x02, 0x00, 0x00, 0x02,
- 0x02, 0x00, 0x00, 0x02, 0xfe, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/contrib/groff/src/xditview/xdit_mask.bm b/contrib/groff/src/xditview/xdit_mask.bm
deleted file mode 100644
index f34a4f8..0000000
--- a/contrib/groff/src/xditview/xdit_mask.bm
+++ /dev/null
@@ -1,14 +0,0 @@
-#define xdit_mask_width 32
-#define xdit_mask_height 32
-static char xdit_mask_bits[] = {
- 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x07,
- 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0x1f,
- 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xc7,
- 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x07,
- 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/contrib/groff/src/xditview/xditview.c b/contrib/groff/src/xditview/xditview.c
deleted file mode 100644
index 75b7fd1..0000000
--- a/contrib/groff/src/xditview/xditview.c
+++ /dev/null
@@ -1,596 +0,0 @@
-/*
- * Copyright 1991 Massachusetts Institute of Technology
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-/*
- * xditview --
- *
- * Display ditroff output in an X window
- */
-
-#ifndef SABER
-#ifndef lint
-static char rcsid[] = "$XConsortium: xditview.c,v 1.17 89/12/10 17:05:08 rws Exp $";
-#endif /* lint */
-#endif /* SABER */
-
-#include <X11/Xatom.h>
-#include <X11/Xlib.h>
-#include <X11/Xos.h>
-#include <X11/Intrinsic.h>
-#include <X11/StringDefs.h>
-#include <X11/Shell.h>
-#include <X11/Xaw/Paned.h>
-#include <X11/Xaw/Viewport.h>
-#include <X11/Xaw/Box.h>
-#include <X11/Xaw/Command.h>
-#include <X11/Xaw/Dialog.h>
-#include <X11/Xaw/Label.h>
-#include <X11/Xaw/SimpleMenu.h>
-#include <X11/Xaw/SmeBSB.h>
-
-#include <signal.h>
-
-#include "Dvi.h"
-
-#include "xdit.bm"
-#include "xdit_mask.bm"
-#include "stdio.h"
-
-extern FILE *popen();
-extern void exit();
-
-static String fallback_resources[] = {
-#include "GXditview-ad.h"
- NULL
-};
-
-static struct app_resources {
- char *print_command;
- char *filename;
-} app_resources;
-
-#define offset(field) XtOffset(struct app_resources *, field)
-
-/* Application resources. */
-
-static XtResource resources[] = {
- {"printCommand", "PrintCommand", XtRString, sizeof(char*),
- offset(print_command), XtRString, NULL},
- {"filename", "Filename", XtRString, sizeof(char*),
- offset(filename), XtRString, NULL},
-};
-
-#undef offset
-
-/* Command line options table. Only resources are entered here...there is a
- pass over the remaining options after XtParseCommand is let loose. */
-
-static XrmOptionDescRec options[] = {
-{"-page", "*dvi.pageNumber", XrmoptionSepArg, NULL},
-{"-backingStore", "*dvi.backingStore", XrmoptionSepArg, NULL},
-{"-resolution", "*dvi.resolution", XrmoptionSepArg, NULL},
-{"-printCommand", ".printCommand", XrmoptionSepArg, NULL},
-{"-filename", ".filename", XrmoptionSepArg, NULL},
-{"-noPolyText", "*dvi.noPolyText", XrmoptionNoArg, "TRUE"},
-};
-
-static char current_print_command[1024];
-
-static char current_file_name[1024];
-static FILE *current_file;
-
-/*
- * Report the syntax for calling xditview.
- */
-
-static
-Syntax(call)
- char *call;
-{
- (void) printf ("Usage: %s [-fg <color>] [-bg <color>]\n", call);
- (void) printf (" [-bd <color>] [-bw <pixels>] [-help]\n");
- (void) printf (" [-display displayname] [-geometry geom]\n");
- (void) printf (" [-page <page-number>] [-backing <backing-store>]\n");
- (void) printf (" [-resolution <res>] [-print <command>]\n");
- (void) printf (" [-filename <file>] [filename]\n\n");
- exit(1);
-}
-
-static void NewFile (), SetPageNumber ();
-static Widget toplevel, paned, viewport, dvi;
-static Widget page;
-static Widget simpleMenu;
-
-static void NextPage(), PreviousPage(), SelectPage(), OpenFile(), Quit();
-static void Print();
-
-static struct menuEntry {
- char *name;
- void (*function)();
-} menuEntries[] = {
- "nextPage", NextPage,
- "previousPage", PreviousPage,
- "selectPage", SelectPage,
- "print", Print,
- "openFile", OpenFile,
- "quit", Quit,
-};
-
-static void NextPageAction(), PreviousPageAction(), SelectPageAction();
-static void OpenFileAction(), QuitAction();
-static void AcceptAction(), CancelAction();
-static void PrintAction();
-static void RerasterizeAction();
-
-XtActionsRec xditview_actions[] = {
- "NextPage", NextPageAction,
- "PreviousPage", PreviousPageAction,
- "SelectPage", SelectPageAction,
- "Print", PrintAction,
- "OpenFile", OpenFileAction,
- "Rerasterize", RerasterizeAction,
- "Quit", QuitAction,
- "Accept", AcceptAction,
- "Cancel", CancelAction,
-};
-
-#define MenuNextPage 0
-#define MenuPreviousPage 1
-#define MenuSelectPage 2
-#define MenuPrint 3
-#define MenuOpenFile 4
-#define MenuQuit 5
-
-static char pageLabel[256] = "Page <none>";
-
-int main(argc, argv)
- int argc;
- char **argv;
-{
- char *file_name = 0;
- int i;
- static Arg labelArgs[] = {
- {XtNlabel, (XtArgVal) pageLabel},
- };
- XtAppContext xtcontext;
- Arg topLevelArgs[2];
- Widget entry;
- Arg pageNumberArgs[1];
- int page_number;
-
- toplevel = XtAppInitialize(&xtcontext, "GXditview",
- options, XtNumber (options),
- &argc, argv, fallback_resources, NULL, 0);
- if (argc > 2
- || (argc == 2 && (!strcmp(argv[1], "-help")
- || !strcmp(argv[1], "--help"))))
- Syntax(argv[0]);
-
- XtGetApplicationResources(toplevel, (XtPointer)&app_resources,
- resources, XtNumber(resources),
- NULL, (Cardinal) 0);
- if (app_resources.print_command)
- strcpy(current_print_command, app_resources.print_command);
-
- XtAppAddActions(xtcontext, xditview_actions, XtNumber (xditview_actions));
-
- XtSetArg (topLevelArgs[0], XtNiconPixmap,
- XCreateBitmapFromData (XtDisplay (toplevel),
- XtScreen(toplevel)->root,
- xdit_bits, xdit_width, xdit_height));
-
- XtSetArg (topLevelArgs[1], XtNiconMask,
- XCreateBitmapFromData (XtDisplay (toplevel),
- XtScreen(toplevel)->root,
- xdit_mask_bits,
- xdit_mask_width, xdit_mask_height));
- XtSetValues (toplevel, topLevelArgs, 2);
- if (argc > 1)
- file_name = argv[1];
-
- /*
- * create the menu and insert the entries
- */
- simpleMenu = XtCreatePopupShell ("menu", simpleMenuWidgetClass, toplevel,
- NULL, 0);
- for (i = 0; i < XtNumber (menuEntries); i++) {
- entry = XtCreateManagedWidget(menuEntries[i].name,
- smeBSBObjectClass, simpleMenu,
- NULL, (Cardinal) 0);
- XtAddCallback(entry, XtNcallback, menuEntries[i].function, NULL);
- }
-
- paned = XtCreateManagedWidget("paned", panedWidgetClass, toplevel,
- NULL, (Cardinal) 0);
- viewport = XtCreateManagedWidget("viewport", viewportWidgetClass, paned,
- NULL, (Cardinal) 0);
- dvi = XtCreateManagedWidget ("dvi", dviWidgetClass, viewport, NULL, 0);
- page = XtCreateManagedWidget ("label", labelWidgetClass, paned,
- labelArgs, XtNumber (labelArgs));
- XtSetArg (pageNumberArgs[0], XtNpageNumber, &page_number);
- XtGetValues (dvi, pageNumberArgs, 1);
- if (file_name)
- NewFile (file_name);
- /* NewFile modifies current_file_name, so do this here. */
- if (app_resources.filename)
- strcpy(current_file_name, app_resources.filename);
- XtRealizeWidget (toplevel);
- if (file_name)
- SetPageNumber (page_number);
- XtAppMainLoop(xtcontext);
- return 0;
-}
-
-static void
-SetPageNumber (number)
-{
- Arg arg[2];
- int actual_number, last_page;
-
- XtSetArg (arg[0], XtNpageNumber, number);
- XtSetValues (dvi, arg, 1);
- XtSetArg (arg[0], XtNpageNumber, &actual_number);
- XtSetArg (arg[1], XtNlastPageNumber, &last_page);
- XtGetValues (dvi, arg, 2);
- if (actual_number == 0)
- sprintf (pageLabel, "Page <none>");
- else if (last_page > 0)
- sprintf (pageLabel, "Page %d of %d", actual_number, last_page);
- else
- sprintf (pageLabel, "Page %d", actual_number);
- XtSetArg (arg[0], XtNlabel, pageLabel);
- XtSetValues (page, arg, 1);
-}
-
-static void
-SelectPageNumber (number_string)
-char *number_string;
-{
- SetPageNumber (atoi(number_string));
-}
-
-static int hadFile = 0;
-
-static void
-NewFile (name)
-char *name;
-{
- Arg arg[2];
- char *n;
- FILE *new_file;
- Boolean seek = 0;
-
- if (current_file) {
- if (!strcmp (current_file_name, "-"))
- ;
- else if (current_file_name[0] == '|')
- pclose (current_file);
- else
- fclose (current_file);
- }
- if (!strcmp (name, "-"))
- new_file = stdin;
- else if (name[0] == '|')
- new_file = popen (name+1, "r");
- else {
- new_file = fopen (name, "r");
- seek = 1;
- }
- if (!new_file) {
- /* XXX display error message */
- return;
- }
- XtSetArg (arg[0], XtNfile, new_file);
- XtSetArg (arg[1], XtNseek, seek);
- XtSetValues (dvi, arg, 2);
- if (hadFile || name[0] != '-' || name[1] != '\0') {
- XtSetArg (arg[0], XtNtitle, name);
- if (name[0] != '/' && (n = strrchr (name, '/')))
- n = n + 1;
- else
- n = name;
- XtSetArg (arg[1], XtNiconName, n);
- XtSetValues (toplevel, arg, 2);
- }
- hadFile = 1;
- SelectPageNumber ("1");
- strcpy (current_file_name, name);
- current_file = new_file;
-}
-
-static char fileBuf[1024];
-
-ResetMenuEntry (entry)
- Widget entry;
-{
- Arg arg[1];
-
- XtSetArg (arg[0], XtNpopupOnEntry, entry);
- XtSetValues (XtParent(entry) , arg, (Cardinal) 1);
-}
-
-/*ARGSUSED*/
-
-static void
-NextPage (entry, name, data)
- Widget entry;
- caddr_t name, data;
-{
- NextPageAction();
- ResetMenuEntry (entry);
-}
-
-static void
-NextPageAction ()
-{
- Arg args[1];
- int number;
-
- XtSetArg (args[0], XtNpageNumber, &number);
- XtGetValues (dvi, args, 1);
- SetPageNumber (number+1);
-}
-
-/*ARGSUSED*/
-
-static void
-PreviousPage (entry, name, data)
- Widget entry;
- caddr_t name, data;
-{
- PreviousPageAction ();
- ResetMenuEntry (entry);
-}
-
-static void
-PreviousPageAction ()
-{
- Arg args[1];
- int number;
-
- XtSetArg (args[0], XtNpageNumber, &number);
- XtGetValues (dvi, args, 1);
- SetPageNumber (number-1);
-}
-
-/* ARGSUSED */
-
-static void
-SelectPage (entry, name, data)
- Widget entry;
- caddr_t name, data;
-{
- SelectPageAction ();
- ResetMenuEntry (entry);
-}
-
-static void
-SelectPageAction ()
-{
- MakePrompt (toplevel, "Page number", SelectPageNumber, "");
-}
-
-
-static void
-DoPrint (name)
- char *name;
-{
- FILE *print_file;
-#ifdef SIGNALRETURNSINT
- int (*handler)();
-#else
- void (*handler)();
-#endif
- /* Avoid dieing because of an invalid command. */
- handler = signal(SIGPIPE, SIG_IGN);
-
- print_file = popen(name, "w");
- if (!print_file)
- /* XXX print error message */
- return;
- DviSaveToFile(dvi, print_file);
- pclose(print_file);
- signal(SIGPIPE, handler);
- strcpy(current_print_command, name);
-}
-
-static void
-RerasterizeAction()
-{
- Arg args[1];
- int number;
-
- if (current_file_name[0] == 0) {
- /* XXX display an error message */
- return;
- }
- XtSetArg (args[0], XtNpageNumber, &number);
- XtGetValues (dvi, args, 1);
- NewFile(current_file_name);
- SetPageNumber (number);
-}
-
-/* ARGSUSED */
-
-static void
-Print (entry, name, data)
- Widget entry;
- caddr_t name, data;
-{
- PrintAction ();
- ResetMenuEntry (entry);
-}
-
-static void
-PrintAction ()
-{
- if (current_print_command[0])
- strcpy (fileBuf, current_print_command);
- else
- fileBuf[0] = '\0';
- MakePrompt (toplevel, "Print command:", DoPrint, fileBuf);
-}
-
-
-/* ARGSUSED */
-
-static void
-OpenFile (entry, name, data)
- Widget entry;
- caddr_t name, data;
-{
- OpenFileAction ();
- ResetMenuEntry (entry);
-}
-
-static void
-OpenFileAction ()
-{
- if (current_file_name[0])
- strcpy (fileBuf, current_file_name);
- else
- fileBuf[0] = '\0';
- MakePrompt (toplevel, "File to open:", NewFile, fileBuf);
-}
-
-/* ARGSUSED */
-
-static void
-Quit (entry, closure, data)
- Widget entry;
- caddr_t closure, data;
-{
- QuitAction ();
-}
-
-static void
-QuitAction ()
-{
- exit (0);
-}
-
-Widget promptShell, promptDialog;
-void (*promptfunction)();
-
-/* ARGSUSED */
-static
-void CancelAction (widget, event, params, num_params)
- Widget widget;
- XEvent *event;
- String *params;
- Cardinal *num_params;
-{
- if (promptShell) {
- XtSetKeyboardFocus(toplevel, (Widget) None);
- XtDestroyWidget(promptShell);
- promptShell = (Widget) 0;
- }
-}
-
-static
-void AcceptAction (widget, event, params, num_params)
- Widget widget;
- XEvent *event;
- String *params;
- Cardinal *num_params;
-{
- (*promptfunction)(XawDialogGetValueString(promptDialog));
- CancelAction (widget, event, params, num_params);
-}
-
-MakePrompt(centerw, prompt, func, def)
-Widget centerw;
-char *prompt;
-void (*func)();
-char *def;
-{
- static Arg dialogArgs[] = {
- {XtNlabel, 0},
- {XtNvalue, 0},
- };
- Arg valueArgs[1];
- Arg centerArgs[2];
- Position source_x, source_y;
- Position dest_x, dest_y;
- Dimension center_width, center_height;
- Dimension prompt_width, prompt_height;
- Widget valueWidget;
-
- CancelAction ((Widget)NULL, (XEvent *) 0, (String *) 0, (Cardinal *) 0);
- promptShell = XtCreatePopupShell ("promptShell", transientShellWidgetClass,
- toplevel, NULL, (Cardinal) 0);
- dialogArgs[0].value = (XtArgVal)prompt;
- dialogArgs[1].value = (XtArgVal)def;
- promptDialog = XtCreateManagedWidget( "promptDialog", dialogWidgetClass,
- promptShell, dialogArgs, XtNumber (dialogArgs));
- XawDialogAddButton(promptDialog, "accept", NULL, (caddr_t) 0);
- XawDialogAddButton(promptDialog, "cancel", NULL, (caddr_t) 0);
- valueWidget = XtNameToWidget (promptDialog, "value");
- if (valueWidget) {
- XtSetArg (valueArgs[0], XtNresizable, TRUE);
- XtSetValues (valueWidget, valueArgs, 1);
- /*
- * as resizable isn't set until just above, the
- * default value will be displayed incorrectly.
- * rectify the situation by resetting the values
- */
- XtSetValues (promptDialog, dialogArgs, XtNumber (dialogArgs));
- }
- XtSetKeyboardFocus (promptDialog, valueWidget);
- XtSetKeyboardFocus (toplevel, valueWidget);
- XtRealizeWidget (promptShell);
- /*
- * place the widget in the center of the "parent"
- */
- XtSetArg (centerArgs[0], XtNwidth, &center_width);
- XtSetArg (centerArgs[1], XtNheight, &center_height);
- XtGetValues (centerw, centerArgs, 2);
- XtSetArg (centerArgs[0], XtNwidth, &prompt_width);
- XtSetArg (centerArgs[1], XtNheight, &prompt_height);
- XtGetValues (promptShell, centerArgs, 2);
- source_x = (center_width - prompt_width) / 2;
- source_y = (center_height - prompt_height) / 3;
- XtTranslateCoords (centerw, source_x, source_y, &dest_x, &dest_y);
- XtSetArg (centerArgs[0], XtNx, dest_x);
- XtSetArg (centerArgs[1], XtNy, dest_y);
- XtSetValues (promptShell, centerArgs, 2);
- XtMapWidget(promptShell);
- promptfunction = func;
-}
-
-/* For DviChar.c */
-
-char *xmalloc(n)
- int n;
-{
- return XtMalloc(n);
-}
-
-/*
-Local Variables:
-c-indent-level: 4
-c-continued-statement-offset: 4
-c-brace-offset: -4
-c-argdecl-indent: 4
-c-label-offset: -4
-c-tab-always-indent: nil
-End:
-*/
diff --git a/contrib/groff/src/xditview/xtotroff.c b/contrib/groff/src/xditview/xtotroff.c
deleted file mode 100644
index 97cac0a..0000000
--- a/contrib/groff/src/xditview/xtotroff.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * xtotroff
- *
- * convert X font metrics into troff font metrics
- */
-
-#include <X11/Xlib.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include "XFontName.h"
-#include "DviChar.h"
-
-#ifdef X_NOT_STDC_ENV
-char *malloc();
-#else
-#include <stdlib.h>
-#endif
-
-#define charWidth(fi,c) ((fi)->per_char[(c) - (fi)->min_char_or_byte2].width)
-#define charHeight(fi,c) ((fi)->per_char[(c) - (fi)->min_char_or_byte2].ascent)
-#define charDepth(fi,c) ((fi)->per_char[(c) - (fi)->min_char_or_byte2].descent)
-#define charLBearing(fi,c) ((fi)->per_char[(c) - (fi)->min_char_or_byte2].lbearing)
-#define charRBearing(fi,c) ((fi)->per_char[(c) - (fi)->min_char_or_byte2].rbearing)
-
-Display *dpy;
-int groff_flag = 0;
-unsigned resolution = 75;
-unsigned point_size = 10;
-
-int charExists (fi, c)
- XFontStruct *fi;
- int c;
-{
- XCharStruct *p;
-
- if (c < fi->min_char_or_byte2 || c > fi->max_char_or_byte2)
- return 0;
- p = fi->per_char + (c - fi->min_char_or_byte2);
- return (p->lbearing != 0 || p->rbearing != 0 || p->width != 0
- || p->ascent != 0 || p->descent != 0 || p->attributes != 0);
-}
-
-/* Canonicalize the font name by replacing scalable parts by *s. */
-
-CanonicalizeFontName (font_name, canon_font_name)
- char *font_name, *canon_font_name;
-{
- unsigned int attributes;
- XFontName parsed;
-
- if (!XParseFontName(font_name, &parsed, &attributes)) {
- fprintf (stderr, "not a standard name: %s\n", font_name);
- return 0;
- }
-
- attributes &= ~(FontNamePixelSize|FontNameAverageWidth
- |FontNamePointSize
- |FontNameResolutionX|FontNameResolutionY);
- XFormatFontName(&parsed, attributes, canon_font_name);
- return 1;
-}
-
-int FontNamesAmbiguous(font_name, names, count)
-char *font_name;
-char **names;
-int count;
-{
- char name1[2048], name2[2048];
- int i;
-
- if (count == 1)
- return 0;
-
- for (i = 0; i < count; i++) {
- if (!CanonicalizeFontName(names[i], i == 0 ? name1 : name2)) {
- fprintf(stderr, "bad font name: %s\n", names[i]);
- return 1;
- }
- if (i > 0 && strcmp(name1, name2) != 0) {
- fprintf(stderr, "ambiguous font name: %s\n", font_name);
- fprintf(stderr, " matches %s\n", names[0]);
- fprintf(stderr, " and %s\n", names[i]);
- return 1;
- }
-
- }
- return 0;
-}
-
-MapFont (font_name, troff_name)
- char *font_name;
- char *troff_name;
-{
- XFontStruct *fi;
- int count;
- char **names;
- FILE *out;
- int c;
- unsigned int attributes;
- XFontName parsed;
- int j, k;
- DviCharNameMap *char_map;
- char encoding[256];
- char *s;
- int wid;
- char name_string[2048];
-
- if (!XParseFontName(font_name, &parsed, &attributes)) {
- fprintf (stderr, "not a standard name: %s\n", font_name);
- return 0;
- }
-
- attributes &= ~(FontNamePixelSize|FontNameAverageWidth);
- attributes |= FontNameResolutionX;
- attributes |= FontNameResolutionY;
- attributes |= FontNamePointSize;
- parsed.ResolutionX = resolution;
- parsed.ResolutionY = resolution;
- parsed.PointSize = point_size*10;
- XFormatFontName(&parsed, attributes, name_string);
-
- names = XListFonts (dpy, name_string, 100000, &count);
- if (count < 1) {
- fprintf (stderr, "bad font name: %s\n", font_name);
- return 0;
- }
-
- if (FontNamesAmbiguous(font_name, names, count))
- return 0;
-
- XParseFontName(names[0], &parsed, &attributes);
- sprintf (encoding, "%s-%s", parsed.CharSetRegistry,
- parsed.CharSetEncoding);
- for (s = encoding; *s; s++)
- if (isupper (*s))
- *s = tolower (*s);
- char_map = DviFindMap (encoding);
- if (!char_map) {
- fprintf (stderr, "not a standard encoding: %s\n", encoding);
- return 0;
- }
-
- fi = XLoadQueryFont (dpy, names[0]);
- if (!fi) {
- fprintf (stderr, "font does not exist: %s\n", names[0]);
- return 0;
- }
-
- printf ("%s -> %s\n", names[0], troff_name);
-
- { /* Avoid race while opening file */
- int fd;
- (void) unlink (troff_name);
- fd = open (troff_name, O_WRONLY | O_CREAT | O_EXCL, 0600);
- out = fdopen (fd, "w");
- }
-
- if (!out) {
- perror (troff_name);
- return 0;
- }
- fprintf (out, "name %s\n", troff_name);
- if (!strcmp (char_map->encoding, "adobe-fontspecific"))
- fprintf (out, "special\n");
- if (charExists (fi, ' ')) {
- int w = charWidth (fi, ' ');
- if (w > 0)
- fprintf (out, "spacewidth %d\n", w);
- }
- fprintf (out, "charset\n");
- for (c = fi->min_char_or_byte2; c <= fi->max_char_or_byte2; c++) {
- char *name = DviCharName (char_map,c,0);
- if (charExists (fi, c) && (groff_flag || name)) {
-
- wid = charWidth (fi, c);
-
- fprintf (out, "%s\t%d",
- name ? name : "---",
- wid);
- if (groff_flag) {
- int param[5];
- param[0] = charHeight (fi, c);
- param[1] = charDepth (fi, c);
- param[2] = 0 /* charRBearing (fi, c) - wid */;
- param[3] = 0 /* charLBearing (fi, c) */;
- param[4] = 0; /* XXX */
- for (j = 0; j < 5; j++)
- if (param[j] < 0)
- param[j] = 0;
- for (j = 4; j >= 0; j--)
- if (param[j] != 0)
- break;
- for (k = 0; k <= j; k++)
- fprintf (out, ",%d", param[k]);
- }
- fprintf (out, "\t0\t0%o\n", c);
-
- if (name) {
- for (k = 1; DviCharName(char_map,c,k); k++) {
- fprintf (out, "%s\t\"\n",
- DviCharName (char_map,c,k));
- }
- }
- }
- }
- XUnloadFont (dpy, fi->fid);
- fclose (out);
- return 1;
-}
-
-static usage(prog)
- char *prog;
-{
- fprintf (stderr,
- "usage: %s [-g] [-r resolution] [-s pointsize] FontMap\n",
- prog);
- exit (1);
-}
-
-
-/* For use by DviChar.c */
-
-char *xmalloc(n)
-int n;
-{
- char *p = malloc(n);
- if (!p) {
- fprintf(stderr, "Out of memory\n");
- exit(1);
- }
- return p;
-}
-
-main (argc, argv)
- char **argv;
-{
- char troff_name[1024];
- char font_name[1024];
- char line[1024];
- char *a, *b, c;
- int position;
- FILE *map;
- int opt;
- extern int optind;
- extern char *optarg;
-
- while ((opt = getopt(argc, argv, "gr:s:")) != EOF) {
- switch (opt) {
- case 'g':
- groff_flag = 1;
- break;
- case 'r':
- sscanf(optarg, "%u", &resolution);
- break;
- case 's':
- sscanf(optarg, "%u", &point_size);
- break;
- default:
- usage(argv[0]);
- }
- }
- if (argc - optind != 1)
- usage(argv[0]);
-
- dpy = XOpenDisplay (0);
- if (!dpy) {
- fprintf (stderr, "Can't connect to the X server.\n");
- fprintf (stderr, "Make sure the DISPLAY environment variable is set correctly.\n");
- exit (1);
- }
- position = 1;
-
- map = fopen (argv[optind], "r");
- if (map == NULL) {
- perror (argv[optind]);
- exit (1);
- }
-
- while (fgets (line, sizeof (line), map)) {
- for (a=line,b=troff_name; *a; a++,b++) {
- c = (*b = *a);
- if (c == ' ' || c == '\t')
- break;
- }
- *b = '\0';
- while (*a && (*a == ' ' || *a == '\t'))
- ++a;
- for (b=font_name; *a; a++,b++)
- if ((*b = *a) == '\n')
- break;
- *b = '\0';
- if (!MapFont (font_name, troff_name))
- exit (1);
- ++position;
- }
- exit (0);
-}
-
-/*
-Local Variables:
-c-indent-level: 8
-c-continued-statement-offset: 8
-c-brace-offset: -8
-c-argdecl-indent: 8
-c-label-offset: -8
-c-tab-always-indent: nil
-End:
-*/
OpenPOWER on IntegriCloud