home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso
/
altsrc
/
articles
/
10817
< prev
next >
Wrap
Text File
|
1994-07-11
|
64KB
|
1,544 lines
Path: wupost!psuvax1!news.pop.psu.edu!news.cac.psu.edu!howland.reston.ans.net!pipex!sunic!news.funet.fi!hydra.Helsinki.FI!news.helsinki.fi!not-for-mail
From: Kari.Hurtta@Helsinki.FI (Kari E. Hurtta)
Newsgroups: alt.sources
Subject: kehpager V1.2 (part 01/14)
Followup-To: alt.sources.d
Date: 9 Jul 1994 14:22:01 +0300
Organization: University of Helsinki
Lines: 1527
Sender: hurtta@cc.Helsinki.FI
Message-ID: <2vm18p$hl5@plootu.Helsinki.FI>
Reply-To: "Kari E. Hurtta" <Kari.Hurtta@Helsinki.FI>
NNTP-Posting-Host: plootu.helsinki.fi
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Title: kehpager V1.2 - Charset aware pager for VTxxx terminals
Archive-Name: kehpager0120/part01
Author: Kari E. Hurtta <Kari.Hurtta@Helsinki.FI>
Part: 01/14
Environment: Ansi C, SunOS 4.1.2 (OS/MP 4.1B), 4.1.3, 5.2, 5.3,
HP-UX A.09.01, IRIX 4.0.5 (?), FreeBSD (?), NetBSD(?),
386BSD(?), VTxxx
#!/bin/sh
# shar: Shell Archiver (v1.22)
#
# This is part 1 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
#
# Run the following text with /bin/sh to create:
# COPYRIGHT
# Makefile
# Makefile.bsd
# Makefile.hpux
# Makefile.irix
# README
# VERSION
# charset.c
# charset.h
# content.c
# content.h
# control.c
# control.h
# edit.c
# edit.h
# env.c
# env.h
# esc.c
# esc.h
# kehpager.1
# kehpager.c
# kehpager.h
# kehpager.init
# kehpager.init.hpux
# keyboard.c
# keyboard.h
# memory.c
# memory.h
# rc.c
# rc.h
# terminal.c
# terminal.h
# window.c
# window.h
#
if test -r s2_seq_.tmp
then echo "Must unpack archives in sequence!"
next=`cat s2_seq_.tmp`; echo "Please unpack part $next next"
exit 1; fi
echo "x - extracting COPYRIGHT (Text)"
sed 's/^X//' << 'SHAR_EOF' > COPYRIGHT &&
X
X kehpager, Charset aware pager, Kari E. Hurtta
X
X Copyright (c) 1993, 1994 Kari E. Hurtta
X
X Redistribution and use in source and binary forms are permitted
X provided that the above copyright notice and this paragraph are
X duplicated in all such forms. This software is provided 'as is'
X and without any warranty.
SHAR_EOF
chmod 0444 COPYRIGHT || echo "restore of COPYRIGHT fails"
echo "x - extracting Makefile (Text)"
sed 's/^X//' << 'SHAR_EOF' > Makefile &&
X# acc
X#CC = acc
X#CFLAGS = -O4 -Xa
X#CFLAGS = -Xa
X
X# Gcc
XCC = gcc
X#CFLAGS = -g
X#CFLAGS = -g -W -O1
XCFLAGS = -W -O9
X
XLDFLAGS = -lm
X
X.KEEP_STATE:
X
XSOURCES = kehpager.c terminal.c esc.c memory.c control.c charset.c window.c \
Xrc.c env.c keyboard.c content.c edit.c
X#OBJS = $(SOURCES:.c=.o) /usr/lib/debug/malloc.o
XOBJS = $(SOURCES:.c=.o)
XCFLAGS += -DGLOBAL_INIT_FILE=\"/home/hydra/hurtta/src/kehpager/kehpager.init\"
X#CFLAGS += -DGLOBAL_INIT_FILE=\"/usr/local/contrib/lib/kehpager.init\"
X
X# SunOS4 preserves VLNEXT character when in ICANON not set (at least when input
X# is timed)
Xsunos4 := CFLAGS += -DSUNOS4 -DVLNEXT_preserved
X# Wall only in SunOS5 bacause in SunOS4 haven't Ansi C headers (ie. prototypes)
Xsunos5 := CFLAGS += -DSUNOS5 -Wall
Xsunos53 := CC = /usr/local2/bin/gcc
X
Xbad:
X @echo "Use ${MAKE} sunos4"
X @echo " or ${MAKE} sunos5"
X @echo " or ${MAKE} -f Makefile.hpux"
X @echo " or ${MAKE} -f Makefile.bsd"
X
Xkehpager: $(OBJS)
X $(LINK.c) -o $@ $(OBJS)
X
Xsunos4: kehpager
Xsunos5: kehpager
Xsunos52: sunos5
Xsunos53: sunos5
SHAR_EOF
chmod 0644 Makefile || echo "restore of Makefile fails"
echo "x - extracting Makefile.bsd (Text)"
sed 's/^X//' << 'SHAR_EOF' > Makefile.bsd &&
X# For stupid make !!!
X
X# cc
X#CC = cc
X#CFLAGS = -O $(DEFS)
X
X# Gcc
XCC = gcc
XCFLAGS = -g -Wall -O2 $(DEFS)
X
XINITF = -DGLOBAL_INIT_FILE=\"/usr/local/lib/kehpager.init\"
XDEFS = $(INITF)
XLDFLAGS = -lm
X
Xall: kehpager
X
X
XSOURCES = kehpager.c terminal.c esc.c memory.c control.c charset.c window.c \
X rc.c env.c keyboard.c content.c edit.c
X
XOBJS = kehpager.o terminal.o esc.o memory.o control.o charset.o window.o \
X rc.o env.o keyboard.o content.o edit.o
X
X
Xkehpager: $(OBJS)
X $(CC) -o $@ $(OBJS) $(LDFLAGS)
SHAR_EOF
chmod 0444 Makefile.bsd || echo "restore of Makefile.bsd fails"
echo "x - extracting Makefile.hpux (Text)"
sed 's/^X//' << 'SHAR_EOF' > Makefile.hpux &&
XINIT = -DGLOBAL_INIT_FILE=\"/home/hydra/hurtta/src/kehpager/kehpager.init.hpux\"
X
X# Compiling with GNU C
X#CC = gcc
X#CFLAGS = -g $(INIT) -W -O1
X#CFLAGS = $(INIT) -Wall -O9
X
X# Compiling with HP C
XCC = cc
XCFLAGS = -Aa +O3 -D_HPUX_SOURCE -O $(INIT)
X
XLDFLAGS = -lm
X
X.KEEP_STATE:
X
XSOURCES = kehpager.c terminal.c esc.c memory.c control.c charset.c window.c \
Xrc.c env.c keyboard.c content.c edit.c
XOBJS = $(SOURCES:.c=.o)
X
X
Xkehpager: $(OBJS)
X $(CC) $(LDFLAGS) -o $@ $(OBJS)
SHAR_EOF
chmod 0444 Makefile.hpux || echo "restore of Makefile.hpux fails"
echo "x - extracting Makefile.irix (Text)"
sed 's/^X//' << 'SHAR_EOF' > Makefile.irix &&
XINIT = -DGLOBAL_INIT_FILE=\"/usr/people/hurtta/kehpager/kehpager.init\"
X
X# Compiling with SGI C
XCC = cc
XCFLAGS = -xansi -O2 $(INIT)
X
XLDFLAGS = -lm
X
X.KEEP_STATE:
X
XSOURCES = kehpager.c terminal.c esc.c memory.c control.c charset.c window.c \
Xrc.c env.c keyboard.c content.c edit.c
XOBJS = $(SOURCES:.c=.o)
X
X
Xkehpager: $(OBJS)
X $(CC) $(LDFLAGS) -o $@ $(OBJS)
SHAR_EOF
chmod 0644 Makefile.irix || echo "restore of Makefile.irix fails"
echo "x - extracting README (Text)"
sed 's/^X//' << 'SHAR_EOF' > README &&
Xkehpager V1.2 - Charset aware pager for VTxxx terminals
X
X Look file COPYRIGHT to see your rights.
X
X Kehpager is a pager that displays the contents of a text
X file on the terminal, one screenful at a time. It translates
X file's charset to the terminal's charsets. Too long lines
X are wrapped in between words. Kehpager can also interprete
X text/enriched and text/richtext -formatted text files.
X
X Text/enriched is a clarification, simplification and refine-
X ment of type defined as text/richtext. Text/enriched is
X intended to make text/richtext obsolete.
X
X When kehpager starts, it tests if the terminal supports 8 -
X bit characters (see also usage of options -e, -7 and -8).
X If the terminal supports 8-bit characters, kehpager turns
X the terminal to Multinational mode. Otherwise kehpager
X turns the terminal to National mode and use current national
X font and ASCII. National font is determined by asking key-
X board language from the terminal. Kehpager may also uses
X Special, Latin/1 and Technical fonts.
X
X Kehpager works on VT100, but VT300 is recommended. Kehpager
X doesn't work with emulators where character conversion is
X done for characters in line. Conversions should be done with
X respect of bank assigments (G0 - G3) and
X multinational/national -mode.
X
XKehpager knows following charsets:
X Latin/1 ISO-8859-1
X Latin/2 ISO-8859-2
X Latin/3 ISO-8859-3
X Latin/4 ISO-8859-4
X Latin/5 ISO-8859-9
X Ascii US-ASCII
X MS-DOS CP437 X-CP437 (*)
X Macintosh X-MAC
X Multinational X-DEC-MCS
X Mnemonics encoding from RFC1345 (*)
X Unicode 1.1 with UTF-7 UNICODE-1-1-UTF7 (*)
X Unicode 1.1 with UTF-8 UNICODE-1-1-UTF8 (*)
X French Canadian national X-ISO646-CA
X German national X-ISO646-DE
X Finnish national X-ISO646-FI
X French/Belgian national X-ISO646-FR
X Italian national X-ISO646-ITA
X Norwegian national X-ISO646-NO
X Swedish national X-ISO646-SE
X Spanish national X-ISO646-SPA
X British national (UK-ASCII) X-UK-ASCII
X
X (*) subset
X
XSo kehpager are still missings many charsets:
X some national fonts (for support of national mode of terminal)
X some ISO 8859 fonts (for support of MIME)
X
XAll charsets aren't complete. Specially kehpager knows only
Xsmall subset from Unicode 1.1 and mnemonics encoding. 'Raw'
XUnicode (ie. UCS-2 encoding) isn't supported. You can get list
Xof known characters with command 'kehpager -T3'.
X
XYou can get charset listing with command 'kehpager -cs'.
X
XIf you want add charsets, ask help from me (Kari.Hurtta@Helsinki.FI).
XYou can also check files charset.c and control.c (see 'sets' array).
XIf you add charsets to kehpager, I like to get diffs.
X
XSevere limitation is, that kehpager requires that letters are written
Xform left to right. This limitation is not easy lift. This affect at
Xleast routines in control.c and formating machine (wrap_line) in
Xwindow.c.
X
XText/enriched commands:
X Bold implemented
X Italic implemented as command Underline
X Fixed has no-op
X Smaller NOT implemented
X Bigger NOT implemented
X Underline implemented
X Center implemented
X FlushLeft implemented
X FlushRight implemented
X FlushBoth implemented
X Indent implemented
X IndentRight implemented
X Excerpt implemented
X Verbatim implemented
X Nofill implemented (if I understood this)
X Param implemented (but commands in param are still executed)
X - Enriched interpreter is stack based, so balancing rule must stricly be
X followed; unrecognized commands also must be balanced
X - By default justification of text is selectable (if input.full_justify
X is false, it is FlushLeft, else it is FlushBoth.
X Default value is false)
X - FlushRight and Center changes semantic of TAB character
X
XInstallation
XSunOS 4:
X Set correct value for use.keyboard.language -field in
X kehpager.init (you can also comment it out if your
X terminals is inteelligent enough). You probably also
X want add
X use.vt100.national_available: Enabled
X to kehpager.init (this was default prior version 1.06).
X Copy kehpager.init to library direction
X Edit Makefile and put defination of GLOBAL_INIT_FILE
X point correct location of kehpager.init
X Also select correct compiler (gcc, or SUN's acc)
X to Makefile.'s define.
X Compile it with
X make sunos4
X Copy kehpager and kehpager.1 to correct directories
XSunOS 5:
X Set correct value for use.keyboard.language -field in
X kehpager.init (you can also comment it out if your
X terminals is intelligent enough). You probably also
X want add
X use.vt100.national_available: Enabled
X to kehpager.init (this was default prior version 1.06).
X Copy kehpager.init to library direction
X Edit Makefile and put defination of GLOBAL_INIT_FILE
X point correct location of kehpager.init
X Also select correct compiler (gcc, or SUN's acc)
X to Makefile.'s define.
X Compile it with
X make sunos5
X Copy kehpager and kehpager.1 to correct directories
XHP-UX:
X Set correct value for use.keyboard.language -field in
X kehpager.int (you can also comment it out if your
X terminals is intelligent enough). You probably also
X want add
X use.vt100.national_available: Enabled
X to kehpager.init.hpux (this was default prior version 1.06).
X Copy kehpager.init.hpux to library direction
X Edit Makefile.hpux and put defination of GLOBAL_INIT_FILE
X point correct location of kehpager.init.hpux
X Also select correct compiler (gcc, or HP's cc (ANSI C version))
X to Makefile.hpux's define.
X Compile it with
X make -f Makefile.hpux
X Copy kehpager and kehpager.1 to correct directories
X386BSD, FreeBSD, NetBSD: (I haven't tested this!)
X Set correct value for use.keyboard.language -field in
X kehpager.init (you can also comment it out if your
X terminals is intelligent enough). You probably also
X want add
X use.vt100.national_available: Enabled
X to kehpager.init (this was default prior version 1.06).
X Copy kehpager.init to library direction
X Edit Makefile and put defination of GLOBAL_INIT_FILE
X point correct location of kehpager.init
X Compile it with
X make -f Makefile.bsd
X Copy kehpager and kehpager.1 to correct directories
XIRIX 4:
X (I get ENOTDEV error when closing terminal, so there is still
X some problems...)
X Set correct value for use.keyboard.language -field in
X kehpager.init (you can also comment it out if your
X terminals is intelligent enough). You probably also
X want add
X use.vt100.national_available: Enabled
X to kehpager.init (this was default prior version 1.06).
X Copy kehpager.init to library direction
X Edit Makefile and put defination of GLOBAL_INIT_FILE
X point correct location of kehpager.init
X Compile it with
X make -f Makefile.irix
X Copy kehpager and kehpager.1 to correct directories. If you don't
X hace troff or groff, ask someone to compile kehpager.1
X
X
XTested platforms:
X Kehpager works on SunOS 4.1.2 (OS/MP 4.1B), 4.1.3, 5.2, 5.3,
X HP-UX A.09.01, IRIX 4.0.5 (at least some way).
X
XCompiler:
X Kehpager is compiled with gcc in SunOS 4.1.2, 5.2, 5.3
X In HP-UX it is compiled with cc (ANSI C version).
X (notice that ANSI C version of cc isn't bundled with HP-UX)
X In SunOS 4.1.3 it is compiled with acc.
X In IRIX 4.0.5 it is compiled with cc (in -xansi mode).
X Kehpager compiles without error or warning messages
X (with gcc's -Wall in SunOs 5.2. Also HP's cc
X don't give any warnigs even that it is more strict than
X gcc).
X
XChanges to version 1.1:
X Terminal output is buffered
X New options: -sp, -sp+, -j, -j+, -st, -st+, -rt, -tn, -in,
X -erc, -pm, -pm+, --, -rs, -rs+, -IT, -MN, -MN:n,
X -U7, -U8
X Option processing is disabable now ('option' --)
X Composed input for HORN, RING BELOW, LINE BELOW and CIRCUMFLEX BELOW
X Initfile fields: keyboard.toggle_eatspc, input.eat_spaces,
X input.full_justify, keyboard.toggle_time, input.tab_step,
X input.indent_step, keyboard.toggle_pagemode, input.pagemode,
X keyboard.tab_step,keyboard.tab_step.self_insert,
X keyboard.tab_step.enter, keyboard.indent_step,
X keyboard.indent_step.self_insert, keyboard.indent_step.enter,
X env.size, exit.newline, use.query_size
X charsets: Italian, Mnemonics encoding,
X more characters from MS-DOS CP437,
X Unicode 1.1 with UTF-7 and UTF-8 encodings.
X (No support for Unicode decomposition/composition)
X Handling of pagebreaks (FF, richtext's <np>)
X Text/Enriched is better
X Screen updating is better in some situtations
X (specially SEARCH: -prompt works nicer)
X Updated Text/Enriched according RFC1563 (previous version
X of enriched specification was RFC1523):
X - Added FlushBoth environment
X - Now Text/Enriched allows initial state justification
X to be any of FlushLeft, FlushRight or FlushBoth (in
X RFC1523 it was FlushBoth ie. fully justified).
X > Because kehpager heve difficulties with fully justified
X text (kehpager may print justified text twise), I changed
X default state to be FlushLeft. That is: default value
X of input.full_justify is now false.
X Content-type: text/richtext
X Compiles with Sun's acc (on SunOS 4) and IRIX's cc
X Many bug fixes
X Support for rc -shell, now $SHELL is matched agaist to table
X Added some changes posted by
X J÷rg Wunsch <joerg_wunsch@tcd-dresden.de> so this propably
X compiles on 386BSD, FreeBSD and NetBSD
X $LINES overdrives use.terminal.lines and $COLUMNS overdrives
X use.terminal.columns (if env.size is set)
X I marked VT500 as unsupported, because I don't have seen manuals yet.
X Now kehpager asks terminal size from terminal itself (as
X 'resize' does it). Disable with -rs or
X use.query_size: Disabled
X Now esc.c don't eat nulls and binding to Ctrl-space
X (ie. NUL) is possible
X
XChanges to version 1.14:
X Avoid unnecessary redrawing of window when remapped by setting
X windows priority temporary to zero (so now SEARCH: -prompt
X works little nicer)
X Support for Unicode 1.1 with UTF-7 and UTF-8 encodings.
X Only small part of Unicode is supported. No support for
X Unicode decomposition/composition.
X Options: -U7, -U8
X MAP_RFC134 replaced with MAP_UNICODE11
X MAP_UTF7, MAP_UTF8
X Now internal characters are type CHAR_IDX
X Latin/3 213 fixed
X from LATIN CAPITAL LETTER O WITH DOT ABOVE
X to LATIN CAPITAL LETTER G WITH DOT ABOVE
X Latin/4 241 fixed
X from LATIN SMALL LETTER N WITH OGONEK
X to LATIN SMALL LETTER N WITH CEDILLA
X Latin/4 209 fixed
X from LATIN CAPITAL LETTER N WITH OGONEK
X to LATIN CAPITAL LETTER N WITH CEDILLA
X
XThanks to:
X Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
X Tim Lasko <lasko@regent.enet.dec.com>
X David E A Wilson <david@cs.uow.edu.au>
X J÷rg Wunsch <joerg_wunsch@tcd-dresden.de>
SHAR_EOF
chmod 0644 README || echo "restore of README fails"
echo "x - extracting VERSION (Text)"
sed 's/^X//' << 'SHAR_EOF' > VERSION &&
Xkehpager V1.2
SHAR_EOF
chmod 0644 VERSION || echo "restore of VERSION fails"
echo "x - extracting charset.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > charset.c &&
X/* file: charset.c
X *
X * kehpager, Charset aware pager, Kari E. Hurtta
X *
X * Copyright (c) 1993, 1994 Kari E. Hurtta
X *
X * Redistribution and use in source and binary forms are permitted
X * provided that the above copyright notice and this paragraph are
X * duplicated in all such forms. This software is provided 'as is'
X * and without any warranty.
X */
X
X#include <string.h>
X#include <limits.h>
X#include <ctype.h>
X#include <stdio.h>
X
X#include "kehpager.h"
X#include "memory.h"
X
X#include "charset.h"
X#include "rc.h"
X#include "terminal.h"
X#include "control.h"
X
XCHAR_IDX CH_WRA;
XCHAR_IDX CH_NL;
XCHAR_IDX CH_SUB_M;
XCHAR_IDX CH_SUP_M;
XCHAR_IDX CH_END_M;
XCHAR_IDX CH_SPC_C;
XCHAR_IDX CH_IND_B;
XCHAR_IDX CH_IND_E;
XCHAR_IDX CH_MAR_B;
XCHAR_IDX CH_MAR_E;
XCHAR_IDX CH_NP;
XCHAR_IDX CH_OVER;
X
XCHAR_IDX CH_SPC;
XCHAR_IDX CH_TAB;
XCHAR_IDX CH_SHY;
XCHAR_IDX CH_SHY2;
XCHAR_IDX CH_NBSP;
XCHAR_IDX CH_HY;
XCHAR_IDX CH_NBHY;
XCHAR_IDX CH_HY2;
XCHAR_IDX CH_UL;
XCHAR_IDX CH_GT;
XCHAR_IDX CH_LT;
XCHAR_IDX CH_ZERO;
XCHAR_IDX CH_FF;
XCHAR_IDX CH_PLUS;
XCHAR_IDX CH_LSEP;
XCHAR_IDX CH_PSEP;
X
Xstruct CV chars [] = {
X /* ASCII, LATIN1, MULT, SPECIAL, FINNISH
X UK NORWEGIAN, SWEDISH, LATIN4, LATIN5,
X ISO-8859-*,LATIN2, BELGIAN, GERMAN, CAN,
X LATIN3, CP437, TECHNICAL, SPANISH, MAC,
X ITAL, Unicode 1.1 */
X /* Mnemonics */
X { "[NUL]", {0,0}, 0, NULL,
X { 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0,
X 0, 0, 0, 0, 0,
X 0, 0 },
X { NULL, NULL } },
X
X { "\\", {0,0}, 0, &CH_WRA,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { "[NL]", {0,0}, 0, &CH_NL,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { "_(", {0,0}, 0, &CH_SUB_M,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { "^(", {0,0}, 0, &CH_SUP_M,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { ")", {0,0}, 0, &CH_END_M,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { " ", {0,0}, 0, &CH_SPC_C,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { " ", {0,0}, 0, &CH_IND_B,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { " ", {0,0}, 0, &CH_IND_E,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { " ", {0,0}, 0, &CH_MAR_B,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { " ", {0,0}, 0, &CH_MAR_E,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { "[NP]", {0,0}, 0, &CH_NP,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X { "[*OVER*]", {0,0}, 0, &CH_OVER,
X { -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, -1 },
X { NULL, NULL } },
X
X /* Control characters */
X { "[BEL]", {0,0}, 0, NULL,
X { 7, 7, 7, 7, 7,
X 7, 7, 7, 7, 7,
X 7, 7, 7, 7, 7,
X 7, 7, 7, 7, 7,
X 7, 7 },
X { NULL, NULL } },
X { "[BS]", {0,0}, 0, NULL,
X { 8, 8, 8, 8, 8,
X 8, 8, 8, 8, 8,
X 8, 8, 8, 8, 8,
X 8, 8, 8, 8, 8,
X 8, 8 },
X { NULL, NULL } },
X { "[HT]", {0,0}, 0, &CH_TAB,
X { 9, 9, 9, 9, 9,
X 9, 9, 9, 9, 9,
X 9, 9, 9, 9, 9,
X 9, 9, 9, 9, 9,
X 9, 9 },
X { NULL, NULL } },
X { "[LF]", {0,0}, 0, NULL,
X { 10, 10, 10, 10, 10,
X 10, 10, 10, 10, 10,
X 10, 10, 10, 10, 10 ,
X 10, 10, 10 , 10, 10,
X 10, 10 },
X { NULL, NULL } },
X { "[VT]", {0,0}, 0, NULL,
X { 11, 11, 11, 11, 11,
X 11, 11, 11, 11, 11,
X 11, 11, 11, 11, 11 ,
X 11, 11, 11, 11, 11,
X 11, 11 },
X { NULL, NULL } },
X { "[FF]", {0,0}, 0, &CH_FF,
X { 12, 12, 12, 12, 12,
X 12, 12, 12, 12, 12,
X 12, 12, 12, 12, 12 ,
X 12, 12, 12, 12, 12,
X 12, 12 },
X { NULL, NULL } },
X { "[CR]", {0,0}, 0, NULL,
X { 13, 13, 13, 13, 13,
X 13, 13, 13, 13, 13,
X 13, 13, 13, 13, 13 ,
X 13, 13, 13, 13, 13,
X 13, 13 },
X { NULL, NULL } },
X { "[ESC]", {0,0}, 0, NULL,
X { 27, 27, 27, 27, 27,
X 27, 27, 27, 27, 27,
X 27, 27, 27, 27, 27 ,
X 27, 27, 27, 27, 27,
X 27, 27 },
X { NULL, NULL } },
X
X { "[DEL]", {0,0}, 0, NULL,
X { 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
X 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
X 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
X 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
X 0x7F, 0x7F },
X { NULL, NULL } },
X
X /* printable characters */
X { " ", {0,0}, 1, &CH_SPC,
X { 0x20, 0x20, 0x20, 0x20, 0x20,
X 0x20, 0x20, 0x20, 0x20, 0x20,
X 0x20, 0x20, 0x20, 0x20, 0x20,
X 0x20, 0x20, 0x20, 0x20, 0x20,
X 0x20, 0x0020 },
X { "SP", "SPACE" } },
X { "!", {0,0}, 1, NULL,
X { 0x21, 0x21, 0x21, 0x21, 0x21,
X 0x21, 0x21, 0x21, 0x21, 0x21,
X 0x21, 0x21, 0x21, 0x21, 0x21,
X 0x21, 0x21, -1, 0x21, 0x21,
X 0x21, 0x0021 },
X { "!", "EXCLAMATION MARK" } },
X { "\"", {0,0}, 1, NULL,
X { 0x22, 0x22, 0x22, 0x22, 0x22,
X 0x22, 0x22, 0x22, 0x22, 0x22,
X 0x22, 0x22, 0x22, 0x22, 0x22,
X 0x22, 0x22, -1 , 0x22, 0x22,
X 0x22, 0x0022 },
X { "\"", "QUOTATION MARK" } },
X { "#", {'+','+'}, 1, NULL,
X { 0x23, 0x23, 0x23, 0x23, 0x23,
X -1, 0x23, 0x23, 0x23, 0x23,
X 0x23, 0x23, -1, 0x23, 0x23,
X 0x23, 0x23, -1, -1, 0x23,
X -1, 0x0023 },
X { "Nb", "NUMBER SIGN" } }, /* NAT 1 */
X { "$", {'S','S'}, 1, NULL,
X { 0x24, 0x24, 0x24, 0x24, 0x24,
X 0x24, 0x24, 0x24, 0x24, 0x24,
X 0x24, 0x24, 0x24, 0x24, 0x24,
X 0x24, 0x24, -1, 0x24, 0x24,
X 0x24, 0x0024 },
X { "DO", "DOLLAR SIGN" } }, /* NAT 2 */
X { "%", {0,0}, 1, NULL,
X { 0x25, 0x25, 0x25, 0x25, 0x25,
X 0x25, 0x25, 0x25, 0x25, 0x25,
X 0x25, 0x25, 0x25, 0x25, 0x25,
X 0x25, 0x25, -1, 0x25, 0x25,
X 0x25, 0x0025 },
X { "%", "PERCENT SIGN" } },
X { "&", {0,0}, 1, NULL,
X { 0x26, 0x26, 0x26, 0x26, 0x26,
X 0x26, 0x26, 0x26, 0x26, 0x26,
X 0x26, 0x26, 0x26, 0x26, 0x26,
X 0x26, 0x26, -1, 0x26, 0x26,
X 0x26, 0x0026 },
X { "&", "AMPERSAND" } },
X /* APOSTROPHE
X APOSTROPHE-QUOTE */
X { "'", {0,0}, 1, NULL,
X { 0x27, 0x27, 0x27, 0x27, 0x27,
X 0x27, 0x27, 0x27, 0x27, 0x27,
X 0x27, 0x27, 0x27, 0x27, 0x27,
X 0x27, 0x27, -1, 0x27, 0x27,
X 0x27, 0x0027 },
X { "'", "APOSTROPHE" } },
X /* LEFT PARENTHESIS
X OPENING PARENTHESIS */
X { "(", {0,0}, 1, NULL,
X { 0x28, 0x28, 0x28, 0x28, 0x28,
X 0x28, 0x28, 0x28, 0x28, 0x28,
X 0x28, 0x28, 0x28, 0x28, 0x28,
X 0x28, 0x28, -1, 0x28, 0x28,
X 0x28, 0x0028 },
X { "(", "LEFT PARENTHESIS" } },
X /* RIGHT PARENTHESIS
X CLOSING PARENTHESIS */
X { ")", {0,0}, 1, NULL,
X { 0x29, 0x29, 0x29, 0x29, 0x29,
X 0x29, 0x29, 0x29, 0x29, 0x29,
X 0x29, 0x29, 0x29, 0x29, 0x29,
X 0x29, 0x29, -1, 0x29, 0x29,
X 0x29, 0x0029 },
X { ")", "RIGHT PARENTHESIS" } },
X { "*", {0,0}, 1, NULL,
X { 0x2A, 0x2A, 0x2A, 0x2A, 0x2A,
X 0x2A, 0x2A, 0x2A, 0x2A, 0x2A,
X 0x2A, 0x2A, 0x2A, 0x2A, 0x2A,
X 0x2A, 0x2A, -1, 0x2A, 0x2A,
X 0x2A, 0x002a },
X { "*", "ASTERISK" } },
X { "+", {0,0}, 1, &CH_PLUS,
X { 0x2B, 0x2B, 0x2B, 0x2B, 0x2B,
X 0x2B, 0x2B, 0x2B, 0x2B, 0x2B,
X 0x2B, 0x2B, 0x2B, 0x2B, 0x2B,
X 0x2B, 0x2B, -1, 0x2B, 0x2B,
X 0x2B, 0x002b },
X { "+", "PLUS SIGN" } },
X { ",", {0,0}, 1, NULL,
X { 0x2C, 0x2C, 0x2C, 0x2C, 0x2C,
X 0x2C, 0x2C, 0x2C, 0x2C, 0x2C,
X 0x2C, 0x2C, 0x2C, 0x2C, 0x2C,
X 0x2C, 0x2C, -1, 0x2C, 0x2C,
X 0x2C, 0x002c },
X { ",", "COMMA" } },
X { "-", {0,0}, 1, &CH_HY,
X { 0x2D, 0x2D, 0x2D, 0x2D, 0x2D,
X 0x2D, 0x2D, 0x2D, 0x2D, 0x2D,
X 0x2D, 0x2D, 0x2D, 0x2D, 0x2D,
X 0x2D, 0x2D, -1, 0x2D, 0x2D,
X 0x2D, 0x002d },
X { "-", "HYPHEN-MINUS" } },
X /* FULL STOP
X PERIOD */
X { ".", {0,0}, 1, NULL,
X { 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
X 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
X 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
X 0x2E, 0x2E, -1, 0x2E, 0x2E,
X 0x2E, 0x002e },
X { ".", "FULL STOP" } },
X /* SOLIDUS
X SLASH */
X { "/", {0,0}, 1, NULL,
X { 0x2F, 0x2F, 0x2F, 0x2F, 0x2F,
X 0x2F, 0x2F, 0x2F, 0x2F, 0x2F,
X 0x2F, 0x2F, 0x2F, 0x2F, 0x2F,
X 0x2F, 0x2F, -1, 0x2F, 0x2F,
X 0x2F, 0x002f },
X { "/", "SOLIDUS" } },
X
X { "0", {0,0}, 1, &CH_ZERO,
X { 0x30, 0x30, 0x30, 0x30, 0x30,
X 0x30, 0x30, 0x30, 0x30, 0x30,
X 0x30, 0x30, 0x30, 0x30, 0x30,
X 0x30, 0x30, -1, 0x30, 0x30,
X 0x30, 0x0030 },
X { "0", "DIGIT ZERO" } },
X { "1", {0,0}, 1, NULL,
X { 0x31, 0x31, 0x31, 0x31, 0x31,
X 0x31, 0x31, 0x31, 0x31, 0x31,
X 0x31, 0x31, 0x31, 0x31, 0x31,
X 0x31, 0x31, -1, 0x31, 0x31,
X 0x31, 0x0031 },
X { "1", "DIGIT ONE" } },
X { "2", {0,0}, 1, NULL,
X { 0x32, 0x32, 0x32, 0x32, 0x32,
X 0x32, 0x32, 0x32, 0x32, 0x32,
X 0x32, 0x32, 0x32, 0x32, 0x32,
X 0x32, 0x32, -1, 0x32, 0x32,
X 0x32, 0x0032 },
X { "2", "DIGIT TWO" } },
X { "3", {0,0}, 1, NULL,
X { 0x33, 0x33, 0x33, 0x33, 0x33,
X 0x33, 0x33, 0x33, 0x33, 0x33,
X 0x33, 0x33, 0x33, 0x33, 0x33,
X 0x33, 0x33, -1, 0x33, 0x33,
X 0x33, 0x0033 },
X { "3", "DIGIT THREE" } },
X { "4", {0,0}, 1, NULL,
X { 0x34, 0x34, 0x34, 0x34, 0x34,
X 0x34, 0x34, 0x34, 0x34, 0x34,
X 0x34, 0x34, 0x34, 0x34, 0x34,
X 0x34, 0x34, -1, 0x34, 0x34,
X 0x34, 0x0034 },
X { "4", "DIGIT FOUR" } },
X { "5", {0,0}, 1, NULL,
X { 0x35, 0x35, 0x35, 0x35, 0x35,
X 0x35, 0x35, 0x35, 0x35, 0x35,
X 0x35, 0x35, 0x35, 0x35, 0x35,
X 0x35, 0x35, -1, 0x35, 0x35,
X 0x35, 0x0035 },
X { "5", "DIGIT FIVE" } },
X { "6", {0,0}, 1, NULL,
X { 0x36, 0x36, 0x36, 0x36, 0x36,
X 0x36, 0x36, 0x36, 0x36, 0x36,
X 0x36, 0x36, 0x36, 0x36, 0x36,
X 0x36, 0x36, -1, 0x36, 0x36,
X 0x36, 0x0036 },
X { "6", "DIGIT SIX" } },
X { "7", {0,0}, 1, NULL,
X { 0x37, 0x37, 0x37, 0x37, 0x37,
X 0x37, 0x37, 0x37, 0x37, 0x37,
X 0x37, 0x37, 0x37, 0x37, 0x37,
X 0x37, 0x37, -1, 0x37, 0x37,
X 0x37, 0x0037 },
X { "7", "DIGIT SEVEN" } },
X { "8", {0,0}, 1, NULL,
X { 0x38, 0x38, 0x38, 0x38, 0x38,
X 0x38, 0x38, 0x38, 0x38, 0x38,
X 0x38, 0x38, 0x38, 0x38, 0x38,
X 0x38, 0x38, -1, 0x38, 0x38,
X 0x38, 0x0038 },
X { "8", "DIGIT EIGHT" } },
X { "9", {0,0}, 1, NULL,
X { 0x39, 0x39, 0x39, 0x39, 0x39,
X 0x39, 0x39, 0x39, 0x39, 0x39,
X 0x39, 0x39, 0x39, 0x39, 0x39,
X 0x39, 0x39, -1, 0x39, 0x39,
X 0x39, 0x0039 },
X { "9", "DIGIT NINE" } },
X { ":", {0,0}, 1, NULL,
X { 0x3A, 0x3A, 0x3A, 0x3A, 0x3A,
X 0x3A, 0x3A, 0x3A, 0x3A, 0x3A,
X 0x3A, 0x3A, 0x3A, 0x3A, 0x3A,
X 0x3A, 0x3A, -1, 0x3A, 0x3A,
X 0x3A, 0x003a },
X { ":", "COLON" } },
X
X { ";", {0,0}, 1, NULL,
X { 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
X 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
X 0x3B, 0x3B, 0x3B, 0x3B, 0x3B,
X 0x3B, 0x3B, -1, 0x3B, 0x3B,
X 0x3B, 0x003b },
X { ";", "SEMICOLON" } },
X { "<", {0,0}, 1, &CH_LT,
X { 0x3C, 0x3C, 0x3C, 0x3C, 0x3C,
X 0x3C, 0x3C, 0x3C, 0x3C, 0x3C,
X 0x3C, 0x3C, 0x3C, 0x3C, 0x3C,
X 0x3C, 0x3C, -1, 0x3C, 0x3C,
X 0x3C, 0x003c },
X { "<", "LESS-THAN SIGN" } },
X { "=", {0,0}, 1, NULL,
X { 0x3D, 0x3D, 0x3D, 0x3D, 0x3D,
X 0x3D, 0x3D, 0x3D, 0x3D, 0x3D,
X 0x3D, 0x3D, 0x3D, 0x3D, 0x3D,
X 0x3D, 0x3D, 0x3D, 0x3D, 0x3D,
X 0x3D, 0x003d },
X { "=", "EQUALS SIGN" } },
X { ">", {0,0}, 1, &CH_GT,
X { 0x3E, 0x3E, 0x3E, 0x3E, 0x3E,
X 0x3E, 0x3E, 0x3E, 0x3E, 0x3E,
X 0x3E, 0x3E, 0x3E, 0x3E, 0x3E,
X 0x3E, 0x3E, -1, 0x3E, 0x3E,
X 0x3E, 0x003e },
X { ">", "GREATER-THAN SIGN" } },
X { "?", {0,0}, 1, NULL,
X { 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
X 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
X 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
X 0x3F, 0x3F, -1, 0x3F, 0x3F,
X 0x3F, 0x003f },
X { "?", "QUESTION MARK" } },
X
X /* ASCII, LATIN1, MULT, SPECIAL, FINNISH
X UK NORWEGIAN, SWEDISH, LATIN4, LATIN5
X ISO-8859-* LATIN2, BELGIAN, GERMAN, CANADIAN,
X LATIN3, CP437, MAC,
X ITAL, UNICODE */
X { "AT", {'A','A'},1, NULL,
X { 0x40, 0x40, 0x40, 0x40, 0x40 | FC_uncertain,
X 0x40, 0x40, 0x40, 0x40, 0x40,
X 0x40, 0x40, -1, -1, -1,
X 0x40, 0x40, -1, -1, 0x40,
X -1, 0x0040 },
X { "At", "COMMERCIAL AT" } }, /* NAT 3 */
X { "A", {0,0}, 1, NULL,
X { 0x41, 0x41, 0x41, 0x41, 0x41,
X 0x41, 0x41, 0x41, 0x41, 0x41,
X 0x41, 0x41, 0x41, 0x41, 0x41,
X 0x41, 0x41, -1, 0x41, 0x41,
X 0x41, 0x0041 },
X { "A", "LATIN CAPITAL LETTER A" } },
X { "B", {0,0}, 1, NULL,
X { 0x42, 0x42, 0x42, 0x42, 0x42,
X 0x42, 0x42, 0x42, 0x42, 0x42,
X 0x42, 0x42, 0x42, 0x42, 0x42,
X 0x42, 0x42, -1, 0x42, 0x42,
X 0x42, 0x0042 },
X { "B", "LATIN CAPITAL LETTER B" } },
X { "C", {0,0}, 1, NULL,
X { 0x43, 0x43, 0x43, 0x43, 0x43,
X 0x43, 0x43, 0x43, 0x43, 0x43,
X 0x43, 0x43, 0x43, 0x43, 0x43,
X 0x43, 0x43, -1, 0x43, 0x43,
X 0x43, 0x0043 },
X { "C", "LATIN CAPITAL LETTER C" } },
X { "D", {0,0}, 1, NULL,
X { 0x44, 0x44, 0x44, 0x44, 0x44,
X 0x44, 0x44, 0x44, 0x44, 0x44,
X 0x44, 0x44, 0x44, 0x44, 0x44,
X 0x44, 0x44, -1, 0x44, 0x44,
X 0x44, 0x0044 },
X { "D", "LATIN CAPITAL LETTER D" } },
X { "E", {0,0}, 1, NULL,
X { 0x45, 0x45, 0x45, 0x45, 0x45,
X 0x45, 0x45, 0x45, 0x45, 0x45,
X 0x45, 0x45, 0x45, 0x45, 0x45,
X 0x45, 0x45, -1, 0x45, 0x45,
X 0x45, 0x0045 },
X { "E", "LATIN CAPITAL LETTER E" } },
X { "F", {0,0}, 1, NULL,
X { 0x46, 0x46, 0x46, 0x46, 0x46,
X 0x46, 0x46, 0x46, 0x46, 0x46,
X 0x46, 0x46, 0x46, 0x46, 0x46,
X 0x46, 0x46, -1, 0x46, 0x46,
X 0x46, 0x0046 },
X { "F", "LATIN CAPITAL LETTER F" } },
X { "G", {0,0}, 1, NULL,
X { 0x47, 0x47, 0x47, 0x47, 0x47,
X 0x47, 0x47, 0x47, 0x47, 0x47,
X 0x47, 0x47, 0x47, 0x47, 0x47,
X 0x47, 0x47, -1, 0x47, 0x47,
X 0x47, 0x0047 },
X { "G", "LATIN CAPITAL LETTER G" } },
X { "H", {0,0}, 1, NULL,
X { 0x48, 0x48, 0x48, 0x48, 0x48,
X 0x48, 0x48, 0x48, 0x48, 0x48,
X 0x48, 0x48, 0x48, 0x48, 0x48,
X 0x48, 0x48, -1, 0x48, 0x48,
X 0x48, 0x0048 },
X { "H", "LATIN CAPITAL LETTER H" } },
X { "I", {0,0}, 1, NULL,
X { 0x49, 0x49, 0x49, 0x49, 0x49,
X 0x49, 0x49, 0x49, 0x49, 0x49,
X 0x49, 0x49, 0x49, 0x49, 0x49,
X 0x49, 0x49, -1, 0x49, 0x49,
X 0x49, 0x0049 },
X { "I", "LATIN CAPITAL LETTER I" } },
X { "J", {0,0}, 1, NULL,
X { 0x4A, 0x4A, 0x4A, 0x4A, 0x4A,
X 0x4A, 0x4A, 0x4A, 0x4A, 0x4A,
X 0x4A, 0x4A, 0x4A, 0x4A, 0x4A,
X 0x4A, 0x4A, -1, 0x4A, 0x4A,
X 0x4A, 0x004a },
X { "J", "LATIN CAPITAL LETTER J" } },
X { "K", {0,0}, 1, NULL,
X { 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
X 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
X 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
X 0x4B, 0x4B, -1, 0x4B, 0x4B,
X 0x4B, 0x004b },
X { "K", "LATIN CAPITAL LETTER K" } },
X { "L", {0,0}, 1, NULL,
X { 0x4C, 0x4C, 0x4C, 0x4C, 0x4C,
X 0x4C, 0x4C, 0x4C, 0x4C, 0x4C,
X 0x4C, 0x4C, 0x4C, 0x4C, 0x4C,
X 0x4C, 0x4C, -1, 0x4C, 0x4C,
X 0x4C, 0x004c },
X { "L", "LATIN CAPITAL LETTER L" } },
X { "M", {0,0}, 1, NULL,
X { 0x4D, 0x4D, 0x4D, 0x4D, 0x4D,
X 0x4D, 0x4D, 0x4D, 0x4D, 0x4D,
X 0x4D, 0x4D, 0x4D, 0x4D, 0x4D,
X 0x4D, 0x4D, -1, 0x4D, 0x4D,
X 0x4D, 0x004d },
X { "M", "LATIN CAPITAL LETTER M" } },
X { "N", {0,0}, 1, NULL,
X { 0x4E, 0x4E, 0x4E, 0x4E, 0x4E,
X 0x4E, 0x4E, 0x4E, 0x4E, 0x4E,
X 0x4E, 0x4E, 0x4E, 0x4E, 0x4E,
X 0x4E, 0x4E, -1, 0x4E, 0x4E,
X 0x4E, 0x004e },
X { "N", "LATIN CAPITAL LETTER N" } },
X { "O", {0,0}, 1, NULL,
X { 0x4F, 0x4F, 0x4F, 0x4F, 0x4F,
X 0x4F, 0x4F, 0x4F, 0x4F, 0x4F,
X 0x4F, 0x4F, 0x4F, 0x4F, 0x4F,
X 0x4F, 0x4F, -1, 0x4F, 0x4F,
X 0x4F, 0x004f },
X { "O", "LATIN CAPITAL LETTER O" } },
X { "P", {0,0}, 1, NULL,
X { 0x50, 0x50, 0x50, 0x50, 0x50,
X 0x50, 0x50, 0x50, 0x50, 0x50,
X 0x50, 0x50, 0x50, 0x50, 0x50,
X 0x50, 0x50, -1, 0x50, 0x50,
X 0x50, 0x0050 },
X { "P", "LATIN CAPITAL LETTER P" } },
X { "Q", {0,0}, 1, NULL,
X { 0x51, 0x51, 0x51, 0x51, 0x51,
X 0x51, 0x51, 0x51, 0x51, 0x51,
X 0x51, 0x51, 0x51, 0x51, 0x51,
X 0x51, 0x51, -1, 0x51, 0x51,
X 0x51, 0x0051 },
X { "Q", "LATIN CAPITAL LETTER Q" } },
X { "R", {0,0}, 1, NULL,
X { 0x52, 0x52, 0x52, 0x52, 0x52,
X 0x52, 0x52, 0x52, 0x52, 0x52,
X 0x52, 0x52, 0x52, 0x52, 0x52,
X 0x52, 0x52, -1, 0x52, 0x52,
X 0x52, 0x0052 },
X { "R", "LATIN CAPITAL LETTER R" } },
X { "S", {0,0}, 1, NULL,
X { 0x53, 0x53, 0x53, 0x53, 0x53,
X 0x53, 0x53, 0x53, 0x53, 0x53,
X 0x53, 0x53, 0x53, 0x53, 0x53,
X 0x53, 0x53, -1, 0x53, 0x53,
X 0x53, 0x0053 },
X { "S", "LATIN CAPITAL LETTER S" } },
X { "T", {0,0}, 1, NULL,
X { 0x54, 0x54, 0x54, 0x54, 0x54,
X 0x54, 0x54, 0x54, 0x54, 0x54,
X 0x54, 0x54, 0x54, 0x54, 0x54,
X 0x54, 0x54, -1, 0x54, 0x54,
X 0x54, 0x0054 },
X { "T", "LATIN CAPITAL LETTER T" } },
X { "U", {0,0}, 1, NULL,
X { 0x55, 0x55, 0x55, 0x55, 0x55,
X 0x55, 0x55, 0x55, 0x55, 0x55,
X 0x55, 0x55, 0x55, 0x55, 0x55,
X 0x55, 0x55, -1, 0x55, 0x55,
X 0x55, 0x0055 },
X { "U", "LATIN CAPITAL LETTER U" } },
X { "V", {0,0}, 1, NULL,
X { 0x56, 0x56, 0x56, 0x56, 0x56,
X 0x56, 0x56, 0x56, 0x56, 0x56,
X 0x56, 0x56, 0x56, 0x56, 0x56,
X 0x56, 0x56, -1, 0x56, 0x56,
X 0x56, 0x0056 },
X { "V", "LATIN CAPITAL LETTER V" } },
X { "W", {0,0}, 1, NULL,
X { 0x57, 0x57, 0x57, 0x57, 0x57,
X 0x57, 0x57, 0x57, 0x57, 0x57,
X 0x57, 0x57, 0x57, 0x57, 0x57,
X 0x57, 0x57, -1, 0x57, 0x57,
X 0x57, 0x0057 },
X { "W", "LATIN CAPITAL LETTER W" } },
X { "X", {0,0}, 1, NULL,
X { 0x58, 0x58, 0x58, 0x58, 0x58,
X 0x58, 0x58, 0x58, 0x58, 0x58,
X 0x58, 0x58, 0x58, 0x58, 0x58,
X 0x58, 0x58, -1, 0x58, 0x58,
X 0x58, 0x0058 },
X { "X", "LATIN CAPITAL LETTER X" } },
X { "Y", {0,0}, 1, NULL,
X { 0x59, 0x59, 0x59, 0x59, 0x59,
X 0x59, 0x59, 0x59, 0x59, 0x59,
X 0x59, 0x59, 0x59, 0x59, 0x59,
X 0x59, 0x59, -1, 0x59, 0x59,
X 0x59, 0x0059 },
X { "Y", "LATIN CAPITAL LETTER Y" } },
X { "Z", {0,0}, 1, NULL,
X { 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
X 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
X 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
X 0x5A, 0x5A, -1, 0x5A, 0x5A,
X 0x5A, 0x005a },
X { "Z", "LATIN CAPITAL LETTER Z" } },
X
X /* ASCII, LATIN1, MULT, SPECIAL, FINNISH
X UK, NORW, SWEDISH, LATIN4, LATIN5,
X ISO-8859-*, LATIN2, BELGIAN, GERMAN, French Canadian,
X CP437, TECHNICAL, MAC,
X ITAL, RFC1345 */
X /* LEFT SQUARE BRACKET
X OPENING SQUARE BRACKET */
X { "[", {'(','('},1, NULL,
X { 0x5B, 0x5B, 0x5B, 0x5B, -1,
X 0x5B, -1, -1, 0x5B, 0x5B,
X 0x5B, 0x5B, -1, -1, -1,
X 0x5B, 0x5B, -1, -1, 0x5B,
X -1, 0x005b },
X { "<(", "LEFT SQUARE BRACKET" } }, /* NAT 4 */
X /* REVERSE SOLIDUS
X BACKSLASH */
X { "\\", {'/','/'},1, NULL,
X { 0x5C, 0x5C, 0x5C, 0x5C, -1,
X 0x5C, -1, -1, 0x5C, 0x5C,
X 0x5C, 0x5C, -1, -1, -1,
X 0x5C, 0x5C, -1, -1, 0x5C,
X -1, 0x005c },
X { "//", "REVERSE SOLIDUS" } }, /* NAT 5 */
X /* RIGHT SQUARE BRACKET
X CLOSING SQUARE BRACKET */
X { "]", {')',')'},1, NULL,
X { 0x5D, 0x5D, 0x5D, 0x5D, -1,
X 0x5D, -1, -1, 0x5D, 0x5D,
X 0x5D, 0x5D, -1, -1, -1,
X 0x5D, 0x5D, -1, -1, 0x5D,
X -1, 0x005d },
X { ")>", "RIGHT SQUARE BRACKET" } }, /* NAT 6 */
X /* CIRCUMFLEX ACCENT
X SPACING CIRCUMFLEX */
X { "^", {'*','*'},1, NULL,
X { 0x5E, 0x5E, 0x5E, 0x5E, -1,
X 0x5E, 0x5E, 0x5E, 0x5E, 0x5E,
X 0x5E, 0x5E, 0x5E, 0x5E, -1,
X 0x5E, 0x5E, -1, 0x5E, 0x5E,
X 0x5E, 0x005e },
X /* UNICODE Decomposition: [0020] & [0302] */
X { "'>", "CIRCUMFLEX ACCENT" } }, /* NAT 7 */
X /* LOW LINE
X SPACING UNDERSCORE */
X { "_", {' ','-'}, 1, &CH_UL,
X { 0x5F, 0x5F, 0x5F, -1, 0x5F,
X 0x5F, 0x5F, 0x5F, 0x5F, 0x5F,
X 0x5F, 0x5F, 0x5F, 0x5F, 0x5F,
X 0x5F, 0x5F, -1, 0x5F, 0x5F,
X 0x5F, 0x005f },
X /* UNICODE Decompositation: [0020] & [0332] */
X { "_", "LOW LINE" } }, /* NAT 8 */
X /* GRAVE ACCENT
X SPACING GRAVE */
X { "`", {'\'','\''}, 1, NULL,
X { 0x60, 0x60, 0x60, -1, -1,
X 0x60, 0x60, 0x60, 0x60, 0x60,
X 0x60, 0x60, 0x60, 0x60, -1,
X 0x60, 0x60, -1, 0x60, 0x60,
X -1, 0x0060 },
X /* UNICODE Decompositation: [0020] & [0300] */
X { "'!", "GRAVE ACCENT" } }, /* NAT 9 */
X
X { "a", {0,0}, 1, NULL,
X { 0x61, 0x61, 0x61, -1, 0x61,
X 0x61, 0x61, 0x61, 0x61, 0x61,
X 0x61, 0x61, 0x61, 0x61, 0x61,
X 0x61, 0x61, -1, 0x61, 0x61,
X 0x61, 0x0061 },
X { "a", "LATIN SMALL LETTER A" } },
X { "b", {0,0}, 1, NULL,
X { 0x62, 0x62, 0x62, -1, 0x62,
X 0x62, 0x62, 0x62, 0x62, 0x62,
X 0x62, 0x62, 0x62, 0x62, 0x62,
X 0x62, 0x62, -1, 0x62, 0x62,
X 0x62, 0x0062 },
X { "b", "LATIN SMALL LETTER B" } },
X { "c", {0,0}, 1, NULL,
X { 0x63, 0x63, 0x63, -1, 0x63,
X 0x63, 0x63, 0x63, 0x63, 0x63,
X 0x63, 0x63, 0x63, 0x63, 0x63,
X 0x63, 0x63, -1, 0x63, 0x63,
X 0x63, 0x0063 },
X { "c", "LATIN SMALL LETTER C" } },
X { "d", {0,0}, 1, NULL,
X { 0x64, 0x64, 0x64, -1, 0x64,
X 0x64, 0x64, 0x64, 0x64, 0x64,
X 0x64, 0x64, 0x64, 0x64, 0x64,
X 0x64, 0x64, -1, 0x64, 0x64,
X 0x64, 0x0064 },
X { "d", "LATIN SMALL LETTER D" } },
X { "e", {0,0}, 1, NULL,
X { 0x65, 0x65, 0x65, -1, 0x65,
X 0x65, 0x65, 0x65, 0x65, 0x65,
X 0x65, 0x65, 0x65, 0x65, 0x65,
X 0x65, 0x65, -1, 0x65, 0x65,
X 0x65, 0x0065 },
X { "e", "LATIN SMALL LETTER E" } },
X { "f", {0,0}, 1, NULL,
X { 0x66, 0x66, 0x66, -1, 0x66,
X 0x66, 0x66, 0x66, 0x66, 0x66,
X 0x66, 0x66, 0x66, 0x66, 0x66,
X 0x66, 0x66, -1, 0x66, 0x66,
X 0x66, 0x0066 },
X { "f", "LATIN SMALL LETTER F" } },
X { "g", {0,0}, 1, NULL,
X { 0x67, 0x67, 0x67, -1, 0x67,
X 0x67, 0x67, 0x67, 0x67, 0x67,
X 0x67, 0x67, 0x67, 0x67, 0x67,
X 0x67, 0x67, -1, 0x67, 0x67,
X 0x67, 0x0067 },
X { "g", "LATIN SMALL LETTER G" } },
X { "h", {0,0}, 1, NULL,
X { 0x68, 0x68, 0x68, -1, 0x68,
X 0x68, 0x68, 0x68, 0x68, 0x68,
X 0x68, 0x68, 0x68, 0x68, 0x68,
X 0x68, 0x68, -1, 0x68, 0x68,
X 0x68, 0x0068 },
X { "h", "LATIN SMALL LETTER H" } },
X { "i", {0,0}, 1, NULL,
X { 0x69, 0x69, 0x69, -1, 0x69,
X 0x69, 0x69, 0x69, 0x69, 0x69,
X 0x69, 0x69, 0x69, 0x69, 0x69,
X 0x69, 0x69, -1, 0x69, 0x69,
X 0x69, 0x0069 },
X { "i", "LATIN SMALL LETTER I" } },
X { "j", {0,0}, 1, NULL,
X { 0x6A, 0x6A, 0x6A, -1, 0x6A,
X 0x6A, 0x6A, 0x6A, 0x6A, 0x6A,
X 0x6A, 0x6A, 0x6A, 0x6A, 0x6A,
X 0x6A, 0x6A, -1, 0x6A, 0x6A,
X 0x6A, 0x006a },
X { "j", "LATIN SMALL LETTER J" } },
X { "k", {0,0}, 1, NULL,
X { 0x6B, 0x6B, 0x6B, -1, 0x6B,
X 0x6B, 0x6B, 0x6B, 0x6B, 0x6B,
X 0x6B, 0x6B, 0x6B, 0x6B, 0x6B,
X 0x6B, 0x6B, -1, 0x6B, 0x6B,
X 0x6B, 0x006b },
X { "k", "LATIN SMALL LETTER K" } },
X { "l", {0,0}, 1, NULL,
X { 0x6C, 0x6C, 0x6C, -1, 0x6C,
X 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
X 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
X 0x6C, 0x6C, -1, 0x6C, 0x6C,
X 0x6C, 0x006c },
X { "l", "LATIN SMALL LETTER L" } },
X { "m", {0,0}, 1, NULL,
X { 0x6D, 0x6D, 0x6D, -1, 0x6D,
X 0x6D, 0x6D, 0x6D, 0x6D, 0x6D,
X 0x6D, 0x6D, 0x6D, 0x6D, 0x6D,
X 0x6D, 0x6D, -1, 0x6D, 0x6D,
X 0x6D, 0x006d },
X { "m", "LATIN SMALL LETTER M" } },
X { "n", {0,0}, 1, NULL,
X { 0x6E, 0x6E, 0x6E, -1, 0x6E,
X 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
X 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
X 0x6E, 0x6E, -1, 0x6E, 0x6E,
X 0x6E, 0x006e },
X { "n", "LATIN SMALL LETTER N" } },
X { "o", {0,0}, 1, NULL,
X { 0x6F, 0x6F, 0x6F, -1, 0x6F,
X 0x6F, 0x6F, 0x6F, 0x6F, 0x6F,
X 0x6F, 0x6F, 0x6F, 0x6F, 0x6F,
X 0x6F, 0x6F, -1, 0x6F, 0x6F,
X 0x6F, 0x006f },
X { "o", "LATIN SMALL LETTER O" } },
X { "p", {0,0}, 1, NULL,
X { 0x70, 0x70, 0x70, -1, 0x70,
X 0x70, 0x70, 0x70, 0x70, 0x70,
X 0x70, 0x70, 0x70, 0x70, 0x70,
X 0x70, 0x70, -1, 0x70, 0x70,
X 0x70, 0x0070 },
X { "p", "LATIN SMALL LETTER P" } },
X { "q", {0,0}, 1, NULL,
X { 0x71, 0x71, 0x71, -1, 0x71,
X 0x71, 0x71, 0x71, 0x71, 0x71,
X 0x71, 0x71, 0x71, 0x71, 0x71,
X 0x71, 0x71, -1, 0x71, 0x71,
X 0x71, 0x0071 },
X { "q", "LATIN SMALL LETTER Q" } },
X { "r", {0,0}, 1, NULL,
X { 0x72, 0x72, 0x72, -1, 0x72,
X 0x72, 0x72, 0x72, 0x72, 0x72,
X 0x72, 0x72, 0x72, 0x72, 0x72,
X 0x72, 0x72, -1, 0x72, 0x72,
X 0x72, 0x0072 },
X { "r", "LATIN SMALL LETTER R" } },
X { "s", {0,0}, 1, NULL,
X { 0x73, 0x73, 0x73, -1, 0x73,
X 0x73, 0x73, 0x73, 0x73, 0x73,
X 0x73, 0x73, 0x73, 0x73, 0x73,
X 0x73, 0x73, -1, 0x73, 0x73,
X 0x73, 0x0073 },
X { "s", "LATIN SMALL LETTER S" } },
X { "t", {0,0}, 1, NULL,
X { 0x74, 0x74, 0x74, -1, 0x74,
X 0x74, 0x74, 0x74, 0x74, 0x74,
X 0x74, 0x74, 0x74, 0x74, 0x74,
X 0x74, 0x74, -1, 0x74, 0x74,
X 0x74, 0x0074 },
X { "t", "LATIN SMALL LETTER T" } },
X { "u", {0,0}, 1, NULL,
X { 0x75, 0x75, 0x75, -1, 0x75,
X 0x75, 0x75, 0x75, 0x75, 0x75,
X 0x75, 0x75, 0x75, 0x75, 0x75,
X 0x75, 0x75, -1, 0x75, 0x75,
X 0x75, 0x0075 },
X { "u", "LATIN SMALL LETTER U" } },
X { "v", {0,0}, 1, NULL,
X { 0x76, 0x76, 0x76, -1, 0x76,
X 0x76, 0x76, 0x76, 0x76, 0x76,
X 0x76, 0x76, 0x76, 0x76, 0x76,
X 0x76, 0x76, -1, 0x76, 0x76,
X 0x76, 0x0076 },
X { "v", "LATIN SMALL LETTER V" } },
X { "w", {0,0}, 1, NULL,
X { 0x77, 0x77, 0x77, -1, 0x77,
X 0x77, 0x77, 0x77, 0x77, 0x77,
X 0x77, 0x77, 0x77, 0x77, 0x77,
X 0x77, 0x77, -1, 0x77, 0x77,
X 0x77, 0x0077 },
X { "w", "LATIN SMALL LETTER W" } },
X { "x", {0,0}, 1, NULL,
X { 0x78, 0x78, 0x78, -1, 0x78,
X 0x78, 0x78, 0x78, 0x78, 0x78,
X 0x78, 0x78, 0x78, 0x78, 0x78,
X 0x78, 0x78, -1, 0x78, 0x78,
X 0x78, 0x0078 },
X { "x", "LATIN SMALL LETTER X" } },
X { "y", {0,0}, 1, NULL,
X { 0x79, 0x79, 0x79, -1, 0x79,
X 0x79, 0x79, 0x79, 0x79, 0x79,
X 0x79, 0x79, 0x79, 0x79, 0x79,
X 0x79, 0x79, -1, 0x79, 0x79,
X 0x79, 0x0079 },
X { "y", "LATIN SMALL LETTER Y" } },
X { "z", {0,0}, 1, NULL,
X { 0x7A, 0x7A, 0x7A, -1, 0x7A,
X 0x7A, 0x7A, 0x7A, 0x7A, 0x7A,
X 0x7A, 0x7A, 0x7A, 0x7A, 0x7A,
X 0x7A, 0x7A, -1, 0x7A, 0x7A,
X 0x7A, 0x007a },
X { "z", "LATIN SMALL LETTER Z" } },
X
X /* ASCII, LATIN1, MULT, SPECIAL, FINNISH,
X UK, NORW, SWEDISH, LATIN4, LATIN5,
X ISO-8859-*, LATIN2,
X LATIN3, CP437, TECHNICAL, SPANISH, MAC,
X ITAL, Unicode 1.1 */
X /* LEFT CURLY BRACKET
X OPENING CURLY BRACKET */
X { "{", {'(','-'},1, NULL,
X { 0x7B, 0x7B, 0x7B, -1, -1,
X 0x7B, -1, -1, 0x7B, 0x7B,
X 0x7B, 0x7B, -1, -1, -1,
X /* What character is in position 0x7B in spanish charset ?
X */
X 0x7B, 0x7B, -1, 0x7B | FC_uncertain,
X 0x7B,
X -1, 0x007b },
X { "(!", "LEFT CURLY BRACKET" } }, /* NAT 10 */
X /* VERTICAL LINE
X VERTICAL BAR */
X { "|", {'^','/'}, 1, NULL,
X { 0x7C, 0x7C, 0x7C, -1, -1,
X 0x7C, -1, -1, 0x7C, 0x7C,
X 0x7C, 0x7C, -1, -1, -1,
X 0x7C, 0x7C, -1, -1, 0x7C,
X -1, 0x007c },
X { "!!", "VERTICAL LINE" } }, /* NAT 11 */
X /* RIGHT CURLY BRACKET
X CLOSING CURLY BRACKET */
X { "}", {')','-'},1, NULL,
X { 0x7D, 0x7D, 0x7D, -1, -1,
X 0x7D, -1, -1, 0x7D, 0x7D,
X 0x7D, 0x7D, -1, -1, -1,
X 0x7D, 0x7D, -1, -1, 0x7D,
X -1, 0x007d },
X { "!)", "RIGHT CURLY BRACKET" } }, /* NAT 12 */
X { "~", {'^','^'},1, NULL,
X { 0x7E, 0x7E, 0x7E, -1, -1,
X 0x7E, 0x7E, 0x7E, 0x7E, 0x7E,
X /* What is this belgian character ?
X * I set diaresis but perhaps it is wrong! */
X 0x7E, 0x7E, -1, -1, -1,
X 0x7E, 0x7E, -1, -1, 0x7E,
X -1, 0x007e },
X { "'?", "TILDE" } }, /* NAT 13 */
X
X /* Forms characters */
X /* ASCII, LATIN1, MULT, SPECIAL, FINNISH,
X UK, NORW, SWEDISH, LATIN4, LATIN5,
X ISO-8859-*, LATIN2,
X LATIN3, CP437, TECHNICAL, SPANISH, MAC,
X ITAL, Unicode 1.1 */
X /* FORMS LIGHT HORIZONTAL / BOX DRAWINGS LIGHT HORIZONTAL */
X { "-", {0,0}, 1, NULL,
X { -1, -1, -1, 0x71, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, 196, -1, -1, -1,
X -1, 0x2500 },
X { "hh", "BOX DRAWINGS LIGHT HORIZONTAL" } },
X /* FORMS HEAVY HORIZONTAL / BOX DRAWINGS HEAVY HORIZONTAL */
X { "-", {0,0}, 1, NULL,
X { -1, -1, -1, 0x71 | FC_fallback,
X -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, 205, -1, -1, -1,
X -1, 0x2501 },
X { "HH", "BOX DRAWINGS HEAVY HORIZONTAL" } },
X /* FORMS LIGHT VERTICAL / BOX DRAWINGS LIGHT VERTICAL */
X { "|", {0,0}, 1, NULL,
X { -1, -1, -1, 0x78, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, 179, -1, -1, -1,
X -1, 0x2502 },
X { "vv", "BOX DRAWINGS LIGHT VERTICAL" } },
X /* FORMS HEAVY VERTICAL / BOX DRAWINGS HEAVY VERTICAL */
X { "|", {0,0}, 1, NULL,
X { -1, -1, -1, 0x78 | FC_fallback,
X -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, 186, -1, -1, -1,
X -1, 0x2503 },
X { "VV", "BOX DRAWINGS HEAVY VERTICAL" } },
X /* Missing: x
X BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL,
X FORMS LIGHT TRIPLE DASH HORIZONTAL, UNICODE 0x2504
X rfc1345 encoding: 3-
X BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL,
X FORMS HEAVY TRIPLE DASH HORIZONTAL, UNICODE 0x2505
X rfc1345 encoding: 3_
X BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL,
X FORMS LIGHT TRIPLE DASH VERTICAL, UNICODE 0x2506
X rfc1345 encoding: 3!
X BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL,
X FORMS HEAVY TRIPLE DASH VERTICAL, UNICODE 0x2507
X rfc1345 encoding: 3/
X BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL,
X FORMS LIGHT QUADRUPLE DASH HORIZONTAL, UNICODE 0x2508
X rfc1345 encoding: 4-
X BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL,
X FORMS HEAVY QUADRUPLE DASH HORIZONTAL, UNICODE 0x2509
X rfc1345 encoding: 4_
X BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL,
X FORMS LIGHT QUADRUPLE DASH VERTICAL, UNICODE 0x250A
X rfc1345 encoding: 4!
X BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL,
X FORMS HEAVY QUADRUPLE DASH VERTICAL, UNICODE 0x250B
X rfc1345 encoding: 4/ */
X /* FORMS LIGHT DOWN AND RIGHT / BOX DRAWINGS LIGHT DOWN AND RIGHT */
X { "+", {0,0}, 1, NULL,
X { -1, -1, -1, 0x6C, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, 218, -1, -1, -1,
X -1, 0x250c },
X { "dr", "BOX DRAWINGS LIGHT DOWN AND RIGHT" } },
X /* FORMS DOWN LIGHT AND RIGHT HEAVY
X BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY */
X { "+", {0,0}, 1, NULL,
X { -1, -1, -1, 0x6C | FC_fallback,
X -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, 213, -1, -1, -1,
X -1, 0x250d },
X { "dR", "BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY" } },
X /* FORMS DOWN HEAVY AND RIGHT LIGHT
X BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT */
X { "+", {0,0}, 1, NULL,
X { -1, -1, -1, 0x6C | FC_fallback,
X -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, 214, -1, -1, -1,
X -1, 0x250e },
X { "Dr", "BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT" } },
X /* FORMS HEAVY DOWN AND RIGHT / BOX DRAWINGS HEAVY DOWN AND RIGHT */
X { "+", {0,0}, 1, NULL,
X { -1, -1, -1, 0x6C | FC_fallback,
X -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, 201, -1, -1, -1,
X -1, 0x250f },
X { "DR", "BOX DRAWINGS HEAVY DOWN AND RIGHT" } },
X /* FORMS LIGHT DOWN AND LEFT / BOX DRAWINGS LIGHT DOWN AND LEFT */
X { "+", {0,0}, 1, NULL,
X { -1, -1, -1, 0x6B, -1,
X -1, -1, -1, -1, -1,
X -1, -1, -1, -1, -1,
X -1, 191, -1, -1, -1,
X -1, 0x2510 },
X { "dl", "BOX DRAWINGS LIGHT DOWN AND LEFT" } },
X /* FORMS DOWN LIGHT AND LEFT HEAVY
X BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY */
SHAR_EOF
echo "End of part 1"
echo "File charset.c is continued in part 2"
echo "2" > s2_seq_.tmp
exit 0