Browse Source

Imported libucw

master
Martin Mareš 3 months ago
parent
commit
65033ec3bf
  1. 9
      libucw/.gitignore
  2. 79
      libucw/Makefile
  3. 25
      libucw/README
  4. 1
      libucw/README.md
  5. 236
      libucw/build/Makebottom
  6. 19
      libucw/build/Makefile
  7. 101
      libucw/build/Maketop
  8. 27
      libucw/build/asciidoc-xhtml.conf
  9. 16
      libucw/build/asciidoc.conf
  10. 64
      libucw/build/doc-defs
  11. 221
      libucw/build/doc-extract
  12. 84
      libucw/build/genconf
  13. 153
      libucw/build/genhash.c
  14. 80
      libucw/build/git/pre-commit
  15. 16
      libucw/build/install-includes
  16. 22
      libucw/build/lib-deps
  17. 24
      libucw/build/lib-flags
  18. 21
      libucw/build/mergedeps
  19. 173
      libucw/build/tester
  20. 59
      libucw/charset/Makefile
  21. 1084
      libucw/charset/U-cat.h
  22. 28
      libucw/charset/U-ligatures.h
  23. 229
      libucw/charset/U-lower.h
  24. 248
      libucw/charset/U-unacc.h
  25. 229
      libucw/charset/U-upper.h
  26. 288
      libucw/charset/charconv-gen.h
  27. 479
      libucw/charset/charconv.c
  28. 99
      libucw/charset/charconv.h
  29. 2350
      libucw/charset/chartable.h
  30. 113
      libucw/charset/fb-charconv.c
  31. 16
      libucw/charset/fb-charconv.h
  32. 11
      libucw/charset/libucw-charset.pc
  33. 19
      libucw/charset/misc/add-charnames
  34. 30
      libucw/charset/misc/chartable.in
  35. 36
      libucw/charset/misc/gen-basic
  36. 194
      libucw/charset/misc/gen-charconv
  37. 73
      libucw/charset/misc/gen-ligatures
  38. 35
      libucw/charset/misc/gen-unacc
  39. 14
      libucw/charset/misc/generate
  40. 33
      libucw/charset/misc/import-recode
  41. 28
      libucw/charset/misc/import-unicode_org
  42. 15
      libucw/charset/misc/mktab256
  43. 47
      libucw/charset/misc/table2h
  44. 8
      libucw/charset/misc/user_expand
  45. 22
      libucw/charset/misc/user_unacc
  46. 50
      libucw/charset/mp-charconv.c
  47. 28
      libucw/charset/mp-charconv.h
  48. 260
      libucw/charset/set/8859-1
  49. 260
      libucw/charset/set/8859-10
  50. 252
      libucw/charset/set/8859-11
  51. 260
      libucw/charset/set/8859-13
  52. 260
      libucw/charset/set/8859-14
  53. 260
      libucw/charset/set/8859-15
  54. 260
      libucw/charset/set/8859-16
  55. 260
      libucw/charset/set/8859-2
  56. 253
      libucw/charset/set/8859-3
  57. 260
      libucw/charset/set/8859-4
  58. 260
      libucw/charset/set/8859-5
  59. 215
      libucw/charset/set/8859-6
  60. 254
      libucw/charset/set/8859-7
  61. 224
      libucw/charset/set/8859-8
  62. 260
      libucw/charset/set/8859-9
  63. 131
      libucw/charset/set/ascii
  64. 259
      libucw/charset/set/cork
  65. 259
      libucw/charset/set/ibm
  66. 259
      libucw/charset/set/ibm-ctrl
  67. 260
      libucw/charset/set/kamen
  68. 260
      libucw/charset/set/kamen-ctrl
  69. 259
      libucw/charset/set/koi8
  70. 259
      libucw/charset/set/mac
  71. 259
      libucw/charset/set/macce
  72. 260
      libucw/charset/set/pc-latin-2
  73. 255
      libucw/charset/set/win-1250
  74. 260
      libucw/charset/set/win-1251
  75. 255
      libucw/charset/set/win-1252
  76. 66
      libucw/charset/setnames.c
  77. 60
      libucw/charset/stk-charconv.c
  78. 35
      libucw/charset/stk-charconv.h
  79. 12
      libucw/charset/tocat.c
  80. 18
      libucw/charset/toligatures.c
  81. 12
      libucw/charset/tolower.c
  82. 12
      libucw/charset/toupper.c
  83. 64
      libucw/charset/ucw-cs2cs.c
  84. 12
      libucw/charset/unaccent.c
  85. 78
      libucw/charset/unicat.h
  86. 36
      libucw/configure
  87. 65
      libucw/debug/check-configs
  88. 17
      libucw/debug/default.cfg
  89. 49
      libucw/default.cfg
  90. 91
      libucw/etc/images
  91. 247
      libucw/etc/libucw
  92. 34
      libucw/examples/external-ucw-build/Makefile
  93. 46
      libucw/examples/external-ucw-build/configure
  94. 5
      libucw/examples/external-ucw-build/default.cfg
  95. 8
      libucw/examples/external-ucw-build/test.c
  96. 8
      libucw/examples/external/Makefile
  97. 8
      libucw/examples/external/test.c
  98. 35
      libucw/examples/internal/Makefile
  99. 34
      libucw/examples/internal/configure
  100. 18
      libucw/examples/internal/default.cfg

9
libucw/.gitignore

@ -0,0 +1,9 @@
/run
/obj
/charset/unidata
TAGS
*~
_*
*.swp
.make.log
/debian-tmp

79
libucw/Makefile

@ -0,0 +1,79 @@
# Makefile for the UCW libraries
# (c) 2007--2010 Martin Mares <mj@ucw.cz>
# The default target
all: runtree libs api programs extras configs
# Include configuration
s=.
-include obj/config.mk
obj/config.mk:
@echo "You need to run configure first." && false
BUILDSYS=$(s)/build
# We will use the libucw build system
include $(BUILDSYS)/Maketop
CONFIG_SRC_DIR=etc
TESTING_DEPS=$(LIBUCW)
# Install the build system
include $(BUILDSYS)/Makefile
# Set up names of common libraries (to avoid forward references in rules)
ifdef CONFIG_CHARSET
LIBCHARSET=$(o)/charset/libucw-charset.pc
endif
# The UCW library
include $(s)/ucw/Makefile
# Install config files
ifdef CONFIG_SHERLOCK_LIB
FREE_CONFIGS=sherlock local
CONFIGS+=$(FREE_CONFIGS)
INSTALL_TARGETS+=install-configs
install-configs:
install -d -m 755 $(DESTDIR)$(INSTALL_CONFIG_DIR)
install -m 644 $(addprefix run/$(CONFIG_DIR)/,$(FREE_CONFIGS)) $(DESTDIR)$(INSTALL_CONFIG_DIR)
endif
# Include submakefiles of requested libraries
ifdef CONFIG_CHARSET
include $(s)/charset/Makefile
endif
ifdef CONFIG_IMAGES
LIBIMAGES=$(o)/images/libucw-images.pc
include $(s)/images/Makefile
endif
ifdef CONFIG_XML
LIBXML=$(o)/ucw-xml/libucw-xml.pc
include $(s)/ucw-xml/Makefile
endif
ifdef CONFIG_JSON
LIBJSON=$(o)/ucw-json/libucw-json.pc
include $(s)/ucw-json/Makefile
endif
# Build documentation by default?
ifdef CONFIG_DOC
all: docs
endif
libs: $(LIBUCW) $(LIBXML) $(LIBJSON) $(LIBIMAGES) $(LIBCHARSET)
# And finally the default rules of the build system
include $(BUILDSYS)/Makebottom
ifndef CONFIG_LOCAL
install: all $(INSTALL_TARGETS)
else
install:
@echo "Nothing to install, this is a local build." && false
endif
.PHONY: install

25
libucw/README

@ -0,0 +1,25 @@
################################################################################
The UCW Libraries @VERSION@
(c) 1997--2015 Martin Mares <mj@ucw.cz>
(c) 2006--2015 Pavel Charvat <pchar@ucw.cz>
(c) 2000--2009 Robert Spalek <robert@ucw.cz>
and other contributors listed in ucw/doc/index.txt
################################################################################
This package contains the LibUCW library and several other libraries,
which have split off the Sherlock Holmes search engine project.
See:
o ucw/doc/install.txt for build requirements and instructions.
o ucw/doc/relnotes.txt for release notes.
o ucw/doc/index.txt for master index of documentation.
For more information, take a look at http://www.ucw.cz/libucw/.
If you have any suggestions or bug reports, please write to our
mailing list libucw-devel@ucw.cz, or directly to mj@ucw.cz.

1
libucw/README.md

@ -0,0 +1 @@
Source: https://www.ucw.cz/libucw/

236
libucw/build/Makebottom

@ -0,0 +1,236 @@
# Bottom part of Makefile for the UCW Libraries
# (c) 1997--2008 Martin Mares <mj@ucw.cz>
# The run tree
DOCDIR=doc
runtree: run/.tree-stamp $(addsuffix /.dir-stamp,$(addprefix $(o)/,$(DIRS)) $(addprefix run/$(DOCDIR)/,$(DOC_MODULES)))
run/.tree-stamp: $(o)/config.mk
$(M)Creating runtree
$(Q)mkdir -p run $(addprefix run/, $(CONFIG_DIR) $(EXTRA_RUNDIRS) $(INSTALL_RUNDIRS))
$(Q)touch run/.tree-stamp
# Miscellaneous targets
programs: $(PROGS)
datafiles: $(DATAFILES)
tests: $(TESTS)
configs: $(addprefix run/$(CONFIG_DIR)/,$(CONFIGS))
docs: runtree $(DOCS) $(DOC_INDICES) $(MANPAGES)
tags:
etags `find . -name "*.[ch]"`
# Black magic with dependencies. It would be more correct to make "depend.new"
# a prerequisite for "depend", but "depend.new" often has the same timestamp
# as "depend" which would confuse make a lot and either force remaking anyway
# or (as in current versions of GNU make) erroneously skipping the remaking.
-include $(o)/depend
$(o)/depend: force
$(Q)if [ -s $(o)/depend.new ] ; then $(BUILDSYS)/mergedeps $(o)/depend $(o)/depend.new ; >$(o)/depend.new ; fi
force:
# Rules for directories
%.dir-stamp:
$(Q)mkdir -p $(@D) && touch $@
# Rules for configuration files
run/$(CONFIG_DIR)/%: $(s)/$(CONFIG_SRC_DIR)/% $(o)/config.mk $(BUILDSYS)/genconf
$(M)CF $<
$(Q)$(BUILDSYS)/genconf $< $@ $(o)/config.mk
$(o)/%.cf: $(s)/%.cf $(o)/config.mk $(BUILDSYS)/genconf
$(M)CF $<
$(Q)$(BUILDSYS)/genconf $< $@ $(o)/config.mk
$(Q)cp $@ run/$(CONFIG_DIR)/$(basename $(@F))
# Rules for libraries
%.a:
$(M)AR $@
$(Q)rm -f $@
$(Q)ar rcs $@ $^
ifdef CONFIG_INSTALL_API
$(Q)$(call symlink-alias,$@,run/lib,$(*F)$(LIBNAME_INFIX).a)
endif
%.so:
$(M)LD $@
$(Q)$(CC) $(LSHARED) $(LDFLAGS) -o $@ $(shell PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" PKG_CONFIG_OPTS="$(PKG_CONFIG_OPTS)" $(BUILDSYS)/lib-flags $^) $(LIBS)
$(Q)$(call symlink-alias,$@,run/$(SO_RUNDIR),$(*F)$(SONAME_INFIX).so$(SONAME_SUFFIX))
$(Q)ln -fs $(*F)$(SONAME_INFIX).so$(SONAME_SUFFIX) run/$(SO_RUNDIR)/$(*F)$(SONAME_INFIX).so
# On Darwin, gcc expects shared libraries in *.dylib instead of *.so.
# Surprisingly, when a program is run, it suffices to have *.so files.
# We don't want to mess up the whole build system with configurable
# suffices and we also don't want to incur an overhead on Linux, so we
# just create symbolic links on Darwin, if requested.
%.dylib: %.so
cd $(dir $<) && ln -fs $(notdir $<) $(notdir $@)
$(o)/%.pc: $(s)/%.pc $(o)/%$(LV).$(LS)
$(M)PC $<
$(Q)DEPS="$(shell $(BUILDSYS)/lib-deps $^)" LIBDIR=$(@D) $(BUILDSYS)/genconf $< $@ $(o)/config.mk
$(Q)mkdir -p $(o)/pkgconfig
$(Q)$(call symlink,$@,$(o)/pkgconfig)
# Rules for public API
ifdef CONFIG_INSTALL_API
ifdef CONFIG_LOCAL
# Need an absolute path
API_ROOT:=$(shell pwd)/run
API_LIBDIR=$(API_ROOT)/lib
API_INCDIR=$(API_ROOT)/include
else
API_LIBDIR=$(INSTALL_LIB_DIR)
API_INCDIR=$(INSTALL_INCLUDE_DIR)
endif
INSTALL_RUNDIRS+=include lib/pkgconfig
api: $(API_INCLUDES) $(addprefix run/lib/pkgconfig/,$(addsuffix .pc,$(API_LIBS)))
$(o)/%/.include-stamp:
$(Q)$(BUILDSYS)/install-includes $(<D) run/include/$(IDST) $(?F)
$(Q)touch $@
run/lib/pkgconfig/%.pc: # RHS supplied in the sub-makefile
$(M)PC-API $@
$(Q)sed <$< >$@ "s@^libdir=.*@libdir=$(API_LIBDIR)@;s@^incdir=.*@incdir=$(API_INCDIR)@"
else
api:
endif
# Rules for compiling C
$(o)/%.o: $(s)/%.c $(o)/autoconf.h
$(M)CC $<
$(Q)DEPENDENCIES_OUTPUT="$(o)/depend.new $@" $(CC) $(CFLAGS) -c -o $@ $<
$(o)/%.o: %.c $(o)/autoconf.h
$(M)CC $<
$(Q)DEPENDENCIES_OUTPUT="$(o)/depend.new $@" $(CC) $(CFLAGS) -c -o $@ $<
%.o: %.c $(o)/autoconf.h
$(M)CC $<
$(Q)DEPENDENCIES_OUTPUT="$(o)/depend.new $@" $(CC) $(CFLAGS) -c -o $@ $<
$(o)/%.oo: $(s)/%.c $(o)/autoconf.h
$(M)CC-SO $<
$(Q)DEPENDENCIES_OUTPUT="$(o)/depend.new $@" $(CC) $(CFLAGS) $(CSHARED) -c -o $@ $<
$(o)/%.oo: %.c $(o)/autoconf.h
$(M)CC-SO $<
$(Q)DEPENDENCIES_OUTPUT="$(o)/depend.new $@" $(CC) $(CFLAGS) $(CSHARED) -c -o $@ $<
%.oo: %.c $(o)/autoconf.h
$(M)CC-SO $<
$(Q)DEPENDENCIES_OUTPUT="$(o)/depend.new $@" $(CC) $(CFLAGS) $(CSHARED) -c -o $@ $<
$(o)/%-tt.o: $(s)/%.c $(o)/autoconf.h
$(M)CC-TEST $<
$(Q)DEPENDENCIES_OUTPUT="$(o)/depend.new $@" $(CC) $(CFLAGS) -DTEST -c -o $@ $<
# Rules for testing
$(o)/%-t: $(o)/%-tt.o $(TESTING_DEPS)
$(M)LD-TEST $@
$(Q)$(CC) $(LDFLAGS) -o $@ $(shell PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" PKG_CONFIG_OPTS="$(PKG_CONFIG_OPTS)" $(BUILDSYS)/lib-flags $^) $(LIBS)
$(o)/%.test: $(s)/%.t $(BUILDSYS)/tester
$(M)TEST $@
$(Q)$(BUILDSYS)/tester --rundir=run $(TESTERFLAGS) $< && touch $@
# Rules for binaries
BINDIR=bin
$(o)/%: $(o)/%.o
$(M)LD $@
$(Q)$(CC) $(LDFLAGS) -o $@ $(shell PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" PKG_CONFIG_OPTS="$(PKG_CONFIG_OPTS)" $(BUILDSYS)/lib-flags $^) $(LIBS)
$(Q)$(call symlink,$@,run/$(BINDIR))
$(o)/%: $(s)/%.sh $(o)/config.mk $(BUILDSYS)/genconf
$(M)PP $<
$(Q)$(BUILDSYS)/genconf $< $@ $(o)/config.mk
$(Q)chmod +x $@
$(Q)$(call symlink,$@,run/$(BINDIR))
$(o)/%: %.sh $(o)/config.mk $(BUILDSYS)/genconf
$(M)PP $<
$(Q)$(BUILDSYS)/genconf $< $@ $(o)/config.mk
$(Q)chmod +x $@
$(Q)$(call symlink,$@,run/$(BINDIR))
$(o)/%: $(s)/%.pl $(o)/config.mk $(BUILDSYS)/genconf
$(M)PP $<
$(Q)$(BUILDSYS)/genconf $< $@ $(o)/config.mk
$(Q)chmod +x $@
$(Q)$(call symlink,$@,run/$(BINDIR))
$(o)/%: %.pl $(o)/config.mk $(BUILDSYS)/genconf
$(M)PP $<
$(Q)$(BUILDSYS)/genconf $< $@ $(o)/config.mk
$(Q)chmod +x $@
$(Q)$(call symlink,$@,run/$(BINDIR))
PERL_MODULE_DIR=UCW
$(o)/%.pm: $(s)/%.pm
$(M)"PM $< -> run/lib/perl5/$(PERL_MODULE_DIR)/$(@F)"
$(Q)cp $^ $@
$(Q)$(call symlink,$@,run/lib/perl5/$(PERL_MODULE_DIR))
$(o)/%.pm: %.pm
$(M)"PM $< -> run/lib/perl/$(PERL_MODULE_DIR)/$(@F)"
$(Q)cp $^ $@
$(Q)$(call symlink,$@,run/lib/perl5/$(PERL_MODULE_DIR))
# Rules for data files
DATADIR=lib
$(DATAFILES): $(o)/%: $(s)/%
$(M)DATA $<
$(Q)cp $^ $@
$(Q)$(call symlink,$@,run/$(DATADIR))
# Rules for documentation
$(o)/%.html: $(o)/%.txt $(BUILDSYS)/asciidoc.conf $(BUILDSYS)/asciidoc-xhtml.conf run/$(DOCDIR)/$(DOC_MODULE)/.dir-stamp
$(M)"DOC-HTML $<"
$(Q)asciidoc -e -f $(BUILDSYS)/asciidoc.conf -f $(BUILDSYS)/asciidoc-xhtml.conf -f $(HOST_PREFIX)/etc/asciidoc/asciidoc.conf -f $(HOST_PREFIX)/etc/asciidoc/xhtml11.conf $<
$(Q)$(call symlink,$@,run/$(DOCDIR)/$(DOC_MODULE))
$(MANPAGES): $(o)/%: $(s)/%.txt
$(M)"DOC-MAN $<"
$(Q)a2x -d manpage -f manpage -D $(dir $@) $<
$(Q)mkdir -p run/$(DOCDIR)/man/man$(subst .,,$(suffix $@))
$(Q)$(call symlink,$@,run/$(DOCDIR)/man/man$(subst .,,$(suffix $@)))
# In reality, we do not depend on the .txt files, but on the corresponding .deflist's.
# However, the Makefile language cannot express that doc-extract generates both .txt
# and .deflist, so we always use the .txt's in dependencies.
$(patsubst %.html,%.txt,$(DOC_INDICES)): $(o)/%.txt: $(patsubst %.html,%.txt,$(DOCS)) $(BUILDSYS)/doc-defs
$(M)"DOC-DEFS $@"
$(Q)echo $@: $(DOC_HEAD) $(DOC_LIST) >> $(o)/depend.new
$(Q)$(BUILDSYS)/doc-defs $(DOC_HEAD) $@ $(DOC_LIST)
$(patsubst %.html,%.txt,$(DOCS)): $(o)/%.txt: $(s)/%.txt $(BUILDSYS)/doc-extract
$(M)"DOC-EXT $<"
$(Q)$(BUILDSYS)/doc-extract $< $@ $(o)/depend.new $(s) $(patsubst %.txt,%.deflist,$@)
# Don't delete intermediate targets. There shouldn't be any, but due to bugs
# in GNU Make rules with targets in not-yet-existing directories are ignored
# when searching for implicit rules and thence targets considered intermediate.
.SECONDARY:
.PHONY: all clean distclean runtree programs api datafiles force tags configs dust install docs tests

19
libucw/build/Makefile

@ -0,0 +1,19 @@
# Makefile for LibUCW Build Tools
DIRS+=build
$(o)/build/genhash: $(o)/build/genhash.o
# This is a hack which compensates make's desires for propagating per-rule settings
# of variables: if some module specifies its own LIBS and it depends on genhash,
# genhash is sometimes built with the module's LIBS (if it isn't already built).
# A proper solution would be using a different rule for linking build/*, but
# as it currently concerns only genhash, it's easier to battle this way.
$(o)/build/genhash: LIBS=
INSTALL_TARGETS+=install-build
install-build:
install -d -m 755 $(DESTDIR)$(INSTALL_SHARE_DIR)/ucw/build
install -m 755 $(addprefix $(BUILDSYS)/,install-includes doc-defs doc-extract genconf mergedeps tester lib-deps lib-flags) $(DESTDIR)$(INSTALL_SHARE_DIR)/ucw/build
install -m 644 $(addprefix $(BUILDSYS)/,asciidoc.conf asciidoc-xhtml.conf Makebottom Maketop) $(DESTDIR)$(INSTALL_SHARE_DIR)/ucw/build
.PHONY: install-build

101
libucw/build/Maketop

@ -0,0 +1,101 @@
# Top part of Makefile for the UCW Libraries
# (c) 1997--2008 Martin Mares <mj@ucw.cz>
# Set to 1 if you want verbose output
V=0
# Set to 'y' (or 'n') if you want to auto-confirm (auto-reject) all questions in build/installer
CONFIRM=
# Disable all built-in rules and variables. Speeds up make and simplifies debugging.
MAKEFLAGS+=-rR
CFLAGS=$(CLANG) $(COPT) $(CDEBUG) $(CWARNS) $(CEXTRA) -I. -I$(o) -I$(s)
LDFLAGS=$(LOPT) $(LEXTRA)
DIRS=
PROGS=
CONFIGS=
CONFIG_SRC_DIR=$(CONFIG_DIR)
TESTS=
EXTRA_RUNDIRS=tmp log
INSTALL_RUNDIRS=bin lib
API_INCLUDES=
API_LIBS=
DOCS=
DOC_INDICES=
MANPAGES=
# Various files whose type does not fit into PROGS
DATAFILES=
ifdef CONFIG_DARWIN
DYNAMIC_LIBRARIES=dylib
SOEXT=bundle
HOST_PREFIX=/sw
else
DYNAMIC_LIBRARIES=so
SOEXT=so
HOST_PREFIX=
endif
ifdef CONFIG_SHARED
LS=$(DYNAMIC_LIBRARIES)
OS=oo
PKG_CONFIG_OPTS=
else
LS=a
OS=o
PKG_CONFIG_OPTS=--static
endif
LV=$(UCW_ABI_SUFFIX)
SO_RUNDIR=lib
# Whenever "make -s" (silent) is run, turn on verbose mode (paradoxical, but gives the right result)
ifneq ($(findstring s,$(MAKEFLAGS)),)
V=1
endif
# Define M (message) and Q (quiet command prefix) macros and also MAKESILENT passed to sub-makes
ifeq ($(V),1)
M=@\#
Q=
MAKESILENT=
else
M=@echo #
Q=@
MAKESILENT=-s
endif
# Clean needs to be a double-colon rule since we want sub-makefiles to be able
# to define their own cleanup actions.
dust::
rm -f `find . -path "*~" -or -name "\#*\#"`
rm -f allocs.tmp cscope.out TAGS
clean:: dust
rm -rf `find obj/ucw -mindepth 1 -maxdepth 1 -not -name autoconf.h`
rm -rf `find obj -mindepth 1 -maxdepth 1 -not \( -name config.mk -o -name autoconf.h -o -name ucw \)`
rm -rf tests run/{bin,lib,include,.tree-stamp,doc}
distclean:: clean
rm -rf obj run debian-tmp
testclean::
rm -f `find obj -name "*.test"`
docclean::
rm -f $(DOCS) $(patsubst %.html,%.txt,$(DOCS))
# Extra default rules (appended to by submakefiles)
extras::
# Relative symlinks and other pathname manipulation macros
empty:=
space:=$(empty) $(empty)
backref=$(subst $(space),/,$(patsubst %,..,$(subst /,$(space),$(1))))
tack-on=$(if $(patsubst /%,,$(2)),$(1)/$(2),$(2))
symlink=ln -sf $(call tack-on,$(call backref,$(2)),$(1)) $(2)/
symlink-alias=ln -sf $(call tack-on,$(call backref,$(2)),$(1)) $(2)/$(3)

27
libucw/build/asciidoc-xhtml.conf

@ -0,0 +1,27 @@
[replacements]
NULL=<tt>NULL</tt>
[func_ref-inlinemacro]
<a href='#fun_{name}'>{caption={all}}</a>
[func_ref_file-inlinemacro]
<a href='{filename}.html#fun_{name}'>{caption={all}}</a>
[xref_file-inlinemacro]
<a href='{filename}.html#{target}'>{caption=[{target}]}</a>
[xref_file_only-inlinemacro]
<a href='{filename}.html'>{caption=<tt>[{filename}]</tt>}</a>
[func_auto_ref-inlinemacro]
<a href='#fun_{name}'>{all}</a>
[func_param-inlinemacro]
<i><tt>{name}</tt></i>
[func_format-inlinemacro]
<tt>{all}</tt>
[footer-text]
Version {revnumber}{basebackend-xhtml11?<br />}{basebackend-xhtml11=<br>}
Last updated {docdate} {doctime}

16
libucw/build/asciidoc.conf

@ -0,0 +1,16 @@
[macros]
(?su)[\\]?&lt;&lt;(?P<filename>[^&;:()]+):(?P<all>(?P<name>[^&;:()<> ]+)(\([^&:;]*\);?))(,(?P<caption>[^&]+))?&gt;&gt;=func_ref_file
(?su)[\\]?&lt;&lt;(?P<all>(?P<name>[^&;:()<> ]+)(\([^&:;]*\);?))(,(?P<caption>[^&]+))?&gt;&gt;=func_ref
(?su)[\\]?&lt;&lt;(?P<filename>[^&;:()]+):(,(?P<caption>[^&]+))?&gt;&gt;=xref_file_only
(?su)[\\]?&lt;&lt;(?P<filename>[^&;:()]+):(?P<target>[^,();&]+)(,(?P<caption>[^&]+))?&gt;&gt;=xref_file
(?su)[\\]?@(?P<all>(?P<name>\w+)\([^();:]*\))=func_ref
(?su)[\\]?(?P<all>\w+\([^();:]*\))=func_format
(?su)[\\]?@(?P<word>\w+)@=no_func_param
(?su)[\\]?@(?P<name>\w+)=func_param
(?su)[\\]?@!!KEEP!!(?P<word>\w+)!!KEEP!!@=no_func_param_return
[no_func_param-inlinemacro]
@!!KEEP!!{word}!!KEEP!!@
[no_func_param_return-inlinemacro]
@{word}@

64
libucw/build/doc-defs

@ -0,0 +1,64 @@
#!/usr/bin/perl
# Script for formatting documentation from definition lists
# (they get out of extract-doc.pl as a side-product).
# (c) 2008 Michal Vaner <vorner@ucw.cz>
use strict;
use warnings;
my $head = shift;
my $out = shift;
open OUT, ">$out" or die "Could not write output $out ($!)\n";
open HEAD, $head or die "Could not open head $head ($!)\n";
print OUT foreach( <HEAD> );
close HEAD;
my $dir = $out;
$dir =~ s/\/[^\/]+$//;
my @dump;
while( defined( my $line = <> ) ) {
chomp $line;
push @dump, [ split /,/, $line, 5 ];
}
my @types = (
[ 'enum', 'Enumerations' ],
[ 'struct', 'Structures' ],
[ 'type', 'Types' ],
[ 'fun', 'Functions' ],
[ 'var', 'Variables' ],
[ 'def', 'Preprocessor definitions' ]
);
my( $index, %groups, %heads ) = ( 0 );
foreach( @types ) {
my( $name, $value ) = @{$_};
$groups{$name} = ++ $index;
$heads{$name} = $value;
}
my $lasttype = '';
foreach( sort { ( $groups{$a->[2]} <=> $groups{$b->[2]} ) or ( $a->[3] cmp $b->[3] ); } @dump ) {
my( $file, $anchor, $type, $name, $text ) = @{$_};
if( $lasttype ne $type ) {
$lasttype = $type;
print OUT "\n== $heads{$type} [[$type]]\n\n";
}
my $dircp = $dir;
while( shift @{[ $dircp =~ /([^\/]+)/, "//" ]} eq shift @{[ $file =~ /([^\/]+)/, "///" ]} ) {
$dircp =~ s/[^\/]+\/?//;
$file =~ s/[^\/]+\/?//;
}
$dircp =~ s/[^\/]+/../g;
$file = $dircp."/".$file;
$file =~ s/^\///;
$file =~ s/\.[^.]+$//;
$text =~ s/(\.\.\.|\*|'|#|_)/\\$1/g;
print OUT "<<$file:$anchor,`$name`>>:: `$text`\n";
}
close OUT;

221
libucw/build/doc-extract

@ -0,0 +1,221 @@
#!/usr/bin/perl
# Script for extracting documentation out of header files
# (c) 2008 Michal Vaner <vorner@ucw.cz>
use strict;
use warnings;
my( $inname, $outname, $depname, $basedir, $defdump ) = @ARGV;
if( defined $inname ) {
open IN, $inname or die "Could not read $inname ($!)\n";
} else {
open IN, "<&STDIN" or die "Could not read stdin ($!)\n";
}
if( defined $outname ) {
open OUT, ">$outname" or die "Could not write $outname ($!)\n";
} else {
open OUT, ">&STDOUT" or die "Could not write to stdout ($!)\n";
}
my $hasdump;
if( defined $defdump ) {
open DUMP, ">$defdump" or die "Could not write definition dump $defdump ($!)\n";
$hasdump = 1;
}
# Function to guess type of statement
sub detect( $ ) {
( $_ ) = @_;
# typedef struct|enum { something } name;
return( $1, 1, $2, "typedef $1 { ... } $2;" ) if /^\s*typedef\s+(struct|enum)\s*{.*}\s*(\w+)\s*;\s*$/s;
# struct|enum name { something };
return( $1, 1, $2, $_ ) if /^\s*(struct|enum)\s+(\w+)\s*;\s*$/s;
my $l = length;
s/\n.*//s;
# struct|enum name {
# something
# };
return( $1, 0, $2, $_ ) if /(struct|enum)\s+(\w+)\s+{/;
return( 'def', 0, $1, $_ ) if /#define\s+(\w+)/;
if( $l > length ) {
warn( "Unknown multiline statement $_\n" );
return( '', 0, $_, $_ );
}
# typedef type (*function_type)(params);
return( 'type', 1, $2, $_ ) if /^\s*typedef[^()]+?(\(\s*?\*\s*?)?(\w+)(\s*\))?\s*\(.*\)/;
# type (*function_var)(params);
return( 'var', 1, $1, $_ ) if /^.*?\(\*(\w+)\)\(.*\)/;
# type function(name);
return( 'fun', 1, $2, $1 ) if /^(.*?(\w+)\([^{]*\)[^{]*)/;
# typedef something name;
return( 'type', 1, $1, $_ ) if /^\s*typedef.*?(\w+);/;
# type name;
return( 'var', 1, $1, $_ ) if /\s\**(\w+);/;
warn( "Unknown statement $_\n" );
return( '', 0, $_, $_ );
}
my @deps;
my $id = 0;
sub formatNote( $$ ) {
my( $head, $comment ) = @_;
$head =~ s/(\S)[ ]+/$1 /g;
print OUT "\n";
print OUT "''''\n";
chomp $head;
my( $type, $semicolon, $name, $oneline ) = detect( $head );
# Just few transformations of the result
$oneline =~ s/\s+$//;
$oneline =~ s/;?$/;/ if( $semicolon );
$head =~ s/;?\s*$/;/ if( $semicolon );
$head =~ s/(\s|,|\()(\.\.\.)/$1\\$2/g; # Do not convert tripple dot into ellipsis
print OUT "[[${type}_$name]]\n";
$head = $oneline if $type eq 'fun';#Remove { from inline functions
# Remove the generic hack markup
$head =~ s/_OPEN_PAREN_/(/g;
$head =~ s/_CLOSE_PAREN_/)/g;
print OUT "..................\n";
print OUT "$head\n";
print OUT "..................\n\n";
if( $hasdump ) {
$oneline =~ s/_OPEN_PAREN_/(/g;
$oneline =~ s/_CLOSE_PAREN_/)/g;
my $symname = $type.'_'.$name;
$name =~ s/_OPEN_PAREN_/(/g;
$name =~ s/_CLOSE_PAREN_/)/g;
print DUMP "$outname,$symname,$type,$name,$oneline\n";
$id ++;
}
$comment =~ s/_OPEN_PAREN_/(/g;
$comment =~ s/_CLOSE_PAREN_/)/g;
$comment =~ s/_GENERIC_LINK_\|([^|]+)\|([^|]+)\|/${1}_OPEN_PAREN_${2}_CLOSE_PAREN_/g;
print OUT "$comment\n\n";
}
sub process( $$ ) {
my( $file, $prefixes ) = @_;
open FILE, $file or die "Could nod read $file ($!)\n";
my $line;
my $active;
my $verbatim;
my $buff;
my $head;
my $struct;
my $def;
my $sdepth;
while( defined( $line = <FILE> ) ) {
chomp $line;
# Generic macro hack - replaces the parenthesis so it is valid identifier
$line =~ s/$_\(([^()]+)\)/${_}_OPEN_PAREN_${1}_CLOSE_PAREN_/g foreach @{$prefixes};
if( $def ) {
$head .= "\n".$line;
$line =~ s/(\/\*.*?\*\/|\/\/.*)//g;
if( $line !~ /\\\s*$/ ) {
formatNote( $head, $buff );
$def = 0;
$buff = $head = undef;
}
} elsif( $struct ) {
$head .= "\n".$line;
my $cp = $line;
$sdepth += ($cp =~ tr/{//);
$sdepth -= ($cp =~ tr/}//);
if( !$sdepth ) {
formatNote( $head, $buff );
$struct = 0;
$buff = undef;
$head = undef;
}
} elsif( $verbatim ) {
if( $line =~ /\*\// ) {
$verbatim = 0;
print OUT "\n";
} else {
$line =~ s/^\s*\* ?//;
print OUT "$line\n";
}
} elsif( $active ) {
if( $line =~ /\*\// ) {
$active = 0;
} else {
$line =~ s/^\s*\* ?//;
$buff .= "$line\n";
}
} else {
if( ( $line =~ /\S/ ) && ( defined $buff ) ) {
if( $line =~ /^\s*#define.*\\(\s*(\/\/.*|\/\*.*?\*\/|))*/ ) {
$head = $line;
$def = 1;
} elsif( $line =~ /\(/ || $line !~ /{/ || $line =~ /^\s*#define/ ) {
$_ = $line;
s/^\s*\s?//;
s/\/\/.*//;
s/\/\*.*?\*\///gs;
formatNote( $_, $buff );
$head = undef;
$buff = undef;
} else {
$head = $line;
$struct = $sdepth = 1;
}
} elsif( ( $buff ) = ( $line =~ /\/\*\*\*(.*)\*\*\*\// ) ) {
$buff =~ s/^\s?//;
print OUT "$buff\n\n";
$buff = undef;
} elsif( ( $buff ) = ( $line =~ /^\s*\/\*\*(.*)\*\*\// ) ) {
$buff =~ s/^\s*//;
$buff .= "\n";
} elsif( ( $head, $buff ) = ( $line =~ /^(.*)\/\*\*(.*)\*\*\// ) ) {
$buff =~ s/^\s*//;
$buff =~ s/\s*$//;
if( $head =~ /\(/ || $head !~ /{/ || $head =~/}/ ) {
$head =~ s/^\s*//;
$head =~ s/\/\*.*?\*\///gs;
formatNote( $head, $buff );
$head = undef;
$buff = undef;
} else {
$struct = $sdepth = 1;
}
} elsif( $line =~ /\/\*\*\*/ ) {
$verbatim = 1;
} elsif( $line =~ /\/\*\*/ ) {
$active = 1;
}
}
}
close FILE;
}
my $line;
while( defined( $line = <IN> ) ) {
chomp $line;
my $prefixes;
if( my( $fname, $prefixes ) = ( $line =~ /^!!\s*(\S+)(.*)/ ) ) {
$fname = "$basedir/$fname" if( ( $fname !~ /^\// ) && defined $basedir );
process( $fname, [ ( map( {
my( $result ) = /^\s*(.*\S)\s*$/;
$result;
} ( split /,/, $prefixes ) ) ) ] );
push @deps, $fname;
} else {
print OUT "$line\n";
}
}
if( defined $depname ) {
open DEP, ">>$depname" or die "Could not write dep file $depname ($!)\n";
print DEP "$outname:";
print DEP " $_" foreach( @deps );
print DEP "\n";
if( $hasdump ) {
print DEP "$defdump:";
print DEP " $_" foreach( @deps );
print DEP "\n";
}
close DEP;
}
close IN;
close OUT;
close DUMP;

84
libucw/build/genconf

@ -0,0 +1,84 @@
#!/usr/bin/perl
# Configuration file and script preprocessor
# (c) 2004--2007 Martin Mares <mj@ucw.cz>
use strict;
use warnings;
@ARGV == 3 or die "Usage: genconf <src> <dest> <config.mk>";
open CF, $ARGV[2] or die "Unable to open $ARGV[2]";
my %options = ();
my %vars = ();
sub opt {
my ($k,$v) = @_;
$vars{$k} = $v;
$options{$k} = 1 if ($k =~ /^CONFIG_/);
}
foreach my $k (keys %ENV) {
opt($k, $ENV{$k});
}
while (<CF>) {
chomp;
if (my ($k,$v) = /^(\w+)=(.*)/) {
$v =~ s/\s+$//;
opt($k, $v);
}
}
close CF;
sub eval_expr {
$_ = shift @_;
s/\b(CONFIG_\w+)\b/defined($options{$1}) ? 1 : 0/ge;
return eval $_;
}
open IN, $ARGV[0] or die "Unable to open $ARGV[0]";
open OUT, ">$ARGV[1]" or die "Unable to create $ARGV[1]";
my @ifs = (); # stack of conditions, 1=satisfied, -1=unsatisfied, 0=shadowed
my $empty = 0; # last line was empty
while (<IN>) {
if (/^#ifdef\s+(\w+)/) {
push @ifs, (@ifs && $ifs[$#ifs] <= 0) ? 0 : (defined $options{$1}) ? 1 : -1;
} elsif (/^#ifndef\s+(\w+)/) {
push @ifs, (@ifs && $ifs[$#ifs] <= 0) ? 0 : (defined $options{$1}) ? -1 : 1;
} elsif (/^#if\s(.*)$/) {
push @ifs, (@ifs && $ifs[$#ifs] <= 0) ? 0 : (eval_expr $1) ? 1 : -1;
} elsif (/^#endif/) {
defined pop @ifs || die "Improper nesting of conditionals";
} elsif (/^#else/) {
my $x = pop @ifs;
defined $x || die "Improper nesting of conditionals";
push @ifs, $x >= 0 ? 0 : 1;
} elsif (/^#elsif\s(.*)$/) {
my $x = pop @ifs;
defined $x || die "Improper nesting of conditionals";
push @ifs, $x >= 0 ? 0 : (eval_expr $1) ? 1 : -1;
} else {
@ifs && $ifs[$#ifs] <= 0 && next;
if (/^$/) {
$empty && next;
$empty = 1;
} else { $empty = 0; }
if (/^#pipe\s+(.+)/) {
my $cmd = $1;
my $val = `$cmd`;
die "Piped command '$cmd' failed" if $?;
print OUT `$1`;
} else {
sub repl($);
sub repl($) {
my $v = shift @_;
exists $vars{$v} or die "Cannot substitute $v: variable not set";
my $x = $vars{$v};
while ($x =~ s/\$\((\w+)\)/repl($1)/ge) { }
return $x;
}
s/@(\w+)@/repl($1)/ge;
print OUT;
}
}
}
@ifs && die "Unterminated #ifdef";
close IN;
close OUT;

153
libucw/build/genhash.c

@ -0,0 +1,153 @@
/*
* Generator of Word Recognition Hash Tables
* (a.k.a. simple gperf replacement)
*
* (c) 1999 Martin Mares <mj@ucw.cz>
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <alloca.h>
struct word {
struct word *next;
char *w;
char *extra;
};
static unsigned int hash(char *c)
{
unsigned int h = 0;
while (*c)
h = (h * 37) + *c++;
return h;
}
static int /* Sequential search */
fast_isprime(unsigned x) /* We know x != 2 && x != 3 */
{
unsigned test = 5;
for(;;)
{
if (!(x % test))
return 0;
if (x / test <= test)
return 1;
test += 2; /* 6k+1 */
if (!(x % test))
return 0;
if (x / test <= test)
return 1;
test += 4; /* 6k-1 */
}
}
static unsigned int
nextprime(unsigned x) /* Returns some prime greater than X */
{
if (x <= 5)
return 5;
x += 5 - (x % 6); /* x is 6k-1 */
for(;;)
{
if (fast_isprime(x))
return x;
x += 2; /* 6k+1 */
if (fast_isprime(x))
return x;
x += 4; /* 6k-1 */
}
}
int main(int argc, char **argv)
{
FILE *fi, *fo;
struct word *words = NULL;
struct word *w, **ht;
char buf[1024], *c, namebuf[256];
int cnt = 0;
int skip, i, size;
if (argc != 4)
{
fprintf(stderr, "Usage: genhash <input> <output> <func_name>\n");
return 1;
}
fi = fopen(argv[1], "r");
if (!fi) { fprintf(stderr, "Cannot open input file: %m\n"); return 1; }
fo = fopen(argv[2], "w");
if (!fo) { fprintf(stderr, "Cannot open output file: %m\n"); return 1; }
buf[0] = 0;
fgets(buf, sizeof(buf)-1, fi);
if (strncmp(buf, "%{", 2)) { fprintf(stderr, "Syntax error at <%s>\n", buf); return 1; }
fputs(buf+2, fo);
while (fgets(buf, sizeof(buf)-1, fi) && strcmp(buf, "%}\n"))
fputs(buf, fo);
fgets(namebuf, sizeof(namebuf)-1, fi);
if (strncmp(namebuf, "struct ", 7) || !(c = strchr(namebuf+7, ' ')))
{ fprintf(stderr, "Syntax error at <%s>\n", namebuf); return 1; }
*c = 0;
while (fgets(buf, sizeof(buf)-1, fi) && strcmp(buf, "%%\n"))
;
while (fgets(buf, sizeof(buf)-1, fi))
{
c = strchr(buf, '\n');
if (c)
*c = 0;
c = strchr(buf, ',');
w = alloca(sizeof(struct word));
if (c)
*c++ = 0;
else
{ fprintf(stderr, "No comma?\n"); return 1; }
w->w = alloca(strlen(buf)+1);
strcpy(w->w, buf);
w->extra = alloca(strlen(c)+1);
strcpy(w->extra, c);
w->next = words;
words = w;
cnt++;
}
cnt = cnt*12/10;
size = 16;
while (size < cnt)
size += size;
skip = nextprime(size*3/4);
ht = alloca(size * sizeof(struct word *));
bzero(ht, size * sizeof(struct word *));
for(w=words; w; w=w->next)
{
int h = hash(w->w) & (size - 1);
while (ht[h])
h = (h + skip) & (size - 1);
ht[h] = w;
}
fprintf(fo, "static %s htable[] = {\n", namebuf);
for(i=0; i<size; i++)
if (ht[i])
fprintf(fo, "{ \"%s\", %s },\n", ht[i]->w, ht[i]->extra);
else
fprintf(fo, "{ NULL },\n");
fprintf(fo, "};\n\nconst %s *%s(const char *x, unsigned int len)\n\
{\n\
const char *c = x;\n\
unsigned int h = 0;\n\
while (*c)\n\
h = (h * 37) + *c++;\n\
h = h & %d;\n\
while (htable[h].name)\n\
{\n\
if (!strcmp(htable[h].name, x))\n\
return &htable[h];\n\
h = (h + %d) & %d;\n\
}\n\
return NULL;\n\
}\n", namebuf, argv[3], size-1, skip, size-1);
return 0;
}

80
libucw/build/git/pre-commit

@ -0,0 +1,80 @@
#!/usr/bin/perl
my $found_bad = 0;
my $filename;
my $reported_filename = "";
my $lineno;
if (scalar @ARGV > 0) {
my $f;
foreach $f (@ARGV) {
check_file($f);
}
} else {
exit(0) if (system("git-rev-parse --verify HEAD 2>/dev/null"));
open(PATCH, "git-diff-index -p -M --cached HEAD --|") ||
die("git-diff-index failed");
while (<PATCH>) {
check_file($1) if (m|^diff --git a/(.*\.[ch]) b/\1$|);
}
close(PATCH);
}
exit($found_bad);
sub bad_line {
my ($why, $line) = @_;
if (!$found_bad) {
print STDERR "*\n";
print STDERR "* You have some suspicious patch lines:\n";
print STDERR "*\n";
$found_bad = 1;
}
if ($reported_filename ne $filename) {
print STDERR "* In $filename\n";
$reported_filename = $filename;
}
print STDERR "* \t$why\n";
print STDERR "$lineno:$line\n" if ($line);
}
sub check_file {
($filename) = @_;
open(IN, "$filename") || die ("Cannot open $filename");
my $has_loc = 0;
my $has_glob = 0;
my $has_copy = 0;
my $empty = 0;
$lineno = 1;
while(<IN>) {
chomp;
if (/^\s*\#include\s+"/) {
bad_line("sherlock includes after global includes", $_) if (!$has_loc && $has_glob);
$has_loc++;
}
if (/\s$/) {
bad_line("trailing whitespace", $_);
}
if (/^\s* \t/) {
bad_line("indent SP followed by a TAB", $_);
}
if (/^\s*\#define\s+LOCAL_DEBUG/) {
bad_line("LOCAL_DEBUG left enabled", $_);
}
if (/^([<>])\1{6} |^={7}$/) {
bad_line("unresolved merge conflict", $_);
}
$has_glob++ if (/^\s*\#include\s+\</);
$has_copy++ if (/\([Cc]\)\s*\w/);
$empty = $_ =~ /^\s*$/;
$lineno++;
}
bad_line("empty lines at end of input") if ($empty);
bad_line("missing copyright") if (!$has_copy);
close(IN);
}

16
libucw/build/install-includes

@ -0,0 +1,16 @@
#!/bin/sh
# A simple installer of include files
# (c) 2005--2007 Martin Mares <mj@ucw.cz>
set -e
SRC=$1
DEST=$2
shift 2
while [ -n "$1" ] ; do
if [ ! -f "$DEST/$1" -o "$SRC/$1" -nt "$DEST/$1" ] ; then
echo "INC $SRC/$1 -> $DEST/$1"
mkdir -p $DEST/`dirname $1`
sed -e 's/^\(#include[ ]*\)"\(.*\)"/\1<\2>/' <$SRC/$1 >$DEST/$1
fi
shift
done

22
libucw/build/lib-deps

@ -0,0 +1,22 @@
#!/bin/bash
#
# A tool which builds a list of dependent libraries from the list
# of pkg-config files.
#
# (c) 2007 Martin Mares <mj@ucw.cz>, placed under GNU LGPL
#
set -e
shift
SEEN=
while [ -n "$1" ] ; do
case "$1" in
*.pc) if [ -n "$SEEN" ] ; then echo -n ", " ; fi
echo -n "`basename $1 .pc`"
SEEN=1
;;
*) ;;
esac
shift
done

24
libucw/build/lib-flags

@ -0,0 +1,24 @@
#!/bin/bash
#
# A preprocessor for linker arguments, which replaces references to .pc
# files by results of the proper calls to pkg-config.
#
# (c) 2007 Martin Mares <mj@ucw.cz>, placed under GNU LGPL
#
set -e
PC=
while [ -n "$1" ] ; do
case "$1" in
*.pc) PC="$PC `basename $1 .pc`"
;;
*) echo -n " $1"
;;
esac
shift
done
if [ -n "$PC" ] ; then
echo -n " "
PKG_CONFIG_PATH="$PKG_CONFIG_PATH:obj/pkgconfig" pkg-config $PKG_CONFIG_OPTS --libs $PC
fi

21
libucw/build/mergedeps

@ -0,0 +1,21 @@
#!/usr/bin/perl
@ARGV == 2 or die "Usage: mergedeps <base> <update>";
foreach $a (@ARGV) {
open F, "$a" or next;
$t = "";
while (<F>) {
$t .= $_;
if (! /\\$/) {
($t =~ /^(.*):/) || die "Parse error at $t";
$rules{$1} = $t;
$t = "";
}
}
close F;
}
open(F,">" . $ARGV[0]) || die "Unable to write output file";
foreach $a (sort keys %rules) {
print F $rules{$a};
}
close F;

173
libucw/build/tester

@ -0,0 +1,173 @@
#!/usr/bin/perl
# A simple unit testing script
# (c) 2004--2013 Martin Mares <mj@ucw.cz>
# (c) 2007 Pavel Charvat <pchar@ucw.cz>
# Tests in the test file have a syntax similar to mail headers,
# individual test case are separated by blank lines and they can contain
# the following fields:
#
# Name: name of the case (default: sequence number since start of file)
# Run: command to run (default: command from the previous test case)
# This can be an arbitrary shell pipeline, sequences $0 to $9 are
# replaced by file names of In<N> or Out<N> files (see below).
# In: lines to pass to the program as standard input
# Out: lines to expect at the program's standard output
# Err: lines to expect at the program's standard error output
# In<N>: lines to pass to the program as input file <N>
# Out<N>: lines to expect from the program in output file <N>
# Both In<N> and Out<N> can be specified simultaneously if we
# are testing a program which modifies some of its input files.
# Exit: expected exit code of the program (default: 0)
#
# A value of a field can be optionally given as a shell-style here-document:
#
# In <<AMEN
# multiple
# lines
# of input
# AMEN
use Getopt::Long;
my $verbose = 0;
my $rundir = ".";
GetOptions("verbose!" => \$verbose,
"rundir=s" => \$rundir)
or die "Usage: tester [--verbose] [--rundir=<dir>] <tests>\n";
my @tests = ();
my $tt;
my $append_to;
while (<>) {
/^#/ && next;
if (/^\s*$/) {
$tt = undef;
$append_to = undef;
} elsif (defined($append_to) && /^\s+(.*)$/) {
$$append_to .= "\n$1";
} elsif (my ($n,$v) = /^(\w+):\s+(.*)$/) {
if (!$tt) {
$tt = {};
push @tests, $tt;
}
($tt->{$n}) && die "$n already defined";
$tt->{$n} = $v;
$append_to = \($tt->{$n});
} elsif (my ($n,$sep) = /^(\w+)\s*<<(\w+)\s*$/) {
if (!$tt) {
$tt = {};
push @tests, $tt;
}
($tt->{$n}) && die "$n already defined";
$tt->{$n} = "";
$sep .= "\n";
while (1) {
my $line = <>;
defined $line or die "Here-document not terminated";
last if $line eq $sep;
$tt->{$n} .= $line;
}
chomp $tt->{$n};
} else {
die "Test script syntax error";
}
}
if (! -d "$rundir/tmp") {
mkdir "$rundir/tmp" or die "Unable to create $rundir/tmp: $!";
}
my $i = 0;
my $errors = 0;
my $prev_run = undef;
TEST: foreach $tt (@tests) {
$i++;
my $name = $tt->{'Name'};
printf "Test %03d", $i;
print " [$name]" if defined $name;
print ": ";
$run = ($tt->{'Run'} || $prev_run) or die "Don't know what to run";
$prev_run = $run;
my @out_files = ();
my @out_checks = ();
my $redirs = "";
if (defined $tt->{'In'}) {
my $ifi = "tmp/test$i.in";
open X, ">$rundir/$ifi" or die "Unable to create $ifi";
print X $tt->{'In'}, "\n";
close X;
$redirs .= " <$ifi";
} else {
$redirs .= " </dev/null";
}
if (defined $tt->{'Out'}) {
my $ofi = "tmp/test$i.out";
unlink "$rundir/$ofi";
$redirs .= " >$ofi";
push @out_files, $ofi;
push @out_checks, $tt->{'Out'};
} else {
$redirs .= " >/dev/null";
}
if (defined $tt->{'Err'}) {
my $efi = "tmp/test$i.err";
unlink "$rundir/$efi";
$redirs .= " 2>$efi";
push @out_files, $efi;
push @out_checks, $tt->{'Err'};
}
foreach my $arg (0..9) {
my $f = "tmp/test$i.$arg";
if (defined $tt->{"Out$arg"}) {
unlink "$rundir/$f";
push @out_files, $f;
push @out_checks, $tt->{"Out$arg"};
}
if (defined $tt->{"In$arg"}) {
open X, ">$rundir/$f" or die "Unable to create $f";
print X $tt->{"In$arg"}, "\n";
close X;
}
}
$run =~ s/\$(\d)/tmp\/test$i.$1/g;
print "(running $run) " if $verbose;
system "cd $rundir && ( $run ) $redirs";
if ($? % 256) {
print "FAILED with status code $?\n";
$errors++;
next;
}
my $ec = $? / 256;
my $expect_ec = $tt->{'Exit'} || 0;
if ($ec != $expect_ec) {
print "FAILED: unexpected exit code $ec\n";
$errors++;
next;
}
for (my $i=0; $i<=$#out_files; $i++) {
my $ofi = $out_files[$i];
open X, "<$rundir/$ofi" or die "Unable to read $ofi";
my $out;
{
local $/ = undef;
$out = <X>;
}
close X;
$out =~ /\n$/s or $out .= "\n";
if ($out ne $out_checks[$i] . "\n") {
print "FAILED (see $ofi)\n";
$errors++;
next TEST;
}
}
system "rm -f $rundir/tmp/test$i.*";
print "OK\n";
}
exit !!$errors;

59
libucw/charset/Makefile

@ -0,0 +1,59 @@
# Makefile for the UCW Charset Library (c) 1997--2007 Martin Mares <mj@ucw.cz>
DIRS+=charset
LIBCHARSET_PROGS=
LIBCHARSET_MODS=toupper tolower tocat toligatures unaccent charconv setnames fb-charconv stk-charconv mp-charconv
LIBCHARSET_INCLUDES=charconv.h unicat.h fb-charconv.h stk-charconv.h mp-charconv.h
LIBCHARSET_DEPS=$(LIBUCW)
$(o)/charset/libucw-charset$(LV).a: $(addsuffix .o,$(addprefix $(o)/charset/,$(LIBCHARSET_MODS)))
$(o)/charset/libucw-charset$(LV).so: $(addsuffix .oo,$(addprefix $(o)/charset/,$(LIBCHARSET_MODS))) $(LIBCHARSET_DEPS)
$(o)/charset/libucw-charset$(LV).so: SONAME_SUFFIX=.0
$(o)/charset/libucw-charset.pc: $(LIBCHARSET_DEPS)
ifdef CONFIG_INSTALL_API
$(o)/charset/libucw-charset.pc: $(addprefix $(o)/charset/libucw-charset$(LV),.a .so)
endif
API_LIBS+=libucw-charset
API_INCLUDES+=$(o)/charset/.include-stamp
$(o)/charset/.include-stamp: $(addprefix $(s)/charset/,$(LIBCHARSET_INCLUDES))
$(o)/charset/.include-stamp: IDST=charset
run/lib/pkgconfig/libucw-charset.pc: $(o)/charset/libucw-charset.pc
ifdef CONFIG_CHARSET_UTILS
LIBCHARSET_PROGS+=$(o)/charset/ucw-cs2cs
endif
$(o)/charset/ucw-cs2cs: $(o)/charset/ucw-cs2cs.o $(LIBCHARSET) $(LIBUCW)
PROGS+=$(LIBCHARSET_PROGS)
build_charsets:
cd $(s)/charset && sh misc/generate
clean::
rm -f $(s)/charset/misc/u-*
INSTALL_TARGETS+=install-libucw-charset-lib
install-libucw-charset-lib:
install -d -m 755 $(DESTDIR)$(INSTALL_LIB_DIR)
install -m 644 run/lib/libucw-charset$(LV).so.0 $(DESTDIR)$(INSTALL_LIB_DIR)/libucw-charset$(LV).so.0.0
ln -sf libucw-charset$(LV).so.0.0 $(DESTDIR)$(INSTALL_LIB_DIR)/libucw-charset$(LV).so.0
.PHONY: install-libucw-charset-lib
INSTALL_TARGETS+=install-libucw-charset-api
install-libucw-charset-api:
install -d -m 755 $(DESTDIR)$(INSTALL_INCLUDE_DIR)/charset $(DESTDIR)$(INSTALL_LIB_DIR) $(DESTDIR)$(INSTALL_PKGCONFIG_DIR)
install -m 644 $(addprefix run/include/charset/,$(LIBCHARSET_INCLUDES)) $(DESTDIR)$(INSTALL_INCLUDE_DIR)/charset
install -m 644 run/lib/pkgconfig/libucw-charset.pc $(DESTDIR)$(INSTALL_PKGCONFIG_DIR)
ln -sf libucw-charset$(LV).so.0.0 $(DESTDIR)$(INSTALL_LIB_DIR)/libucw-charset$(LV).so
install -m 644 run/lib/libucw-charset$(LV).a $(DESTDIR)$(INSTALL_LIB_DIR)
.PHONY: install-libucw-charset-api
INSTALL_TARGETS+=install-libucw-charset-utils
install-libucw-charset-utils:
install -d -m 755 $(DESTDIR)$(INSTALL_BIN_DIR)
install -m 755 $(LIBCHARSET_PROGS) $(DESTDIR)$(INSTALL_BIN_DIR)
.PHONY: install-libucw-charset-utils

1084
libucw/charset/U-cat.h

File diff suppressed because it is too large

28
libucw/charset/U-ligatures.h

@ -0,0 +1,28 @@
#define LIG_HASH_SIZE 24
static const u16 *_U_lig_hash[] = {
NULL,
NULL,
NULL,
/* FB13 */ (const u16 []) { 0x0574, 0x0576, 0 },
/* FB14 */ (const u16 []) { 0x0574, 0x0565, 0 },
/* FB15 */ (const u16 []) { 0x0574, 0x056B, 0 },
/* FB16 */ (const u16 []) { 0x057E, 0x0576, 0 },
/* FB17 */ (const u16 []) { 0x0574, 0x056D, 0 },
/* FB00 */ (const u16 []) { 0x0066, 0x0066, 0 },
/* FB01 */ (const u16 []) { 0x0066, 0x0069, 0 },
/* FB02 */ (const u16 []) { 0x0066, 0x006C, 0 },
/* FB03 */ (const u16 []) { 0x0066, 0x0066, 0x0069, 0 },
/* FB04 */ (const u16 []) { 0x0066, 0x0066, 0x006C, 0 },
/* FB05 */ (const u16 []) { 0x0073, 0x0074, 0 },
/* FB06 */ (const u16 []) { 0x0073, 0x0074, 0 },
/* FB4F */ (const u16 []) { 0x05D0, 0x05DC, 0 },
NULL,
NULL,
/* 0132 */ (const u16 []) { 0x0049, 0x004A, 0 },
/* 0133 */ (const u16 []) { 0x0069, 0x006A, 0 },
NULL,
NULL,
NULL,
/* 0587 */ (const u16 []) { 0x0565, 0x0582, 0 },
};

229
libucw/charset/U-lower.h

@ -0,0 +1,229 @@
/* Generated automatically by gentab. Please don't edit. */
static const u16 _U_lower_00[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_lower_01[256] = {
0x0101,0,0x0103,0,0x0105,0,0x0107,0,0x0109,0,0x010B,0,0x010D,0,0x010F,0,
0x0111,0,0x0113,0,0x0115,0,0x0117,0,0x0119,0,0x011B,0,0x011D,0,0x011F,0,
0x0121,0,0x0123,0,0x0125,0,0x0127,0,0x0129,0,0x012B,0,0x012D,0,0x012F,0,
0x0069,0,0x0133,0,0x0135,0,0x0137,0,0,0x013A,0,0x013C,0,0x013E,0,0x0140,
0,0x0142,0,0x0144,0,0x0146,0,0x0148,0,0,0x014B,0,0x014D,0,0x014F,0,
0x0151,0,0x0153,0,0x0155,0,0x0157,0,0x0159,0,0x015B,0,0x015D,0,0x015F,0,
0x0161,0,0x0163,0,0x0165,0,0x0167,0,0x0169,0,0x016B,0,0x016D,0,0x016F,0,
0x0171,0,0x0173,0,0x0175,0,0x0177,0,0x00FF,0x017A,0,0x017C,0,0x017E,0,0,
0,0x0253,0x0183,0,0x0185,0,0x0254,0x0188,0,0x0256,0x0257,0x018C,0,0,0x01DD,0x0259,
0x025B,0x0192,0,0x0260,0x0263,0,0x0269,0x0268,0x0199,0,0,0,0x026F,0x0272,0,0x0275,
0x01A1,0,0x01A3,0,0x01A5,0,0x0280,0x01A8,0,0x0283,0,0,0x01AD,0,0x0288,0x01B0,
0,0x028A,0x028B,0x01B4,0,0x01B6,0,0x0292,0x01B9,0,0,0,0x01BD,0,0,0,
0,0,0,0,0x01C6,0x01C6,0,0x01C9,0x01C9,0,0x01CC,0x01CC,0,0x01CE,0,0x01D0,
0,0x01D2,0,0x01D4,0,0x01D6,0,0x01D8,0,0x01DA,0,0x01DC,0,0,0x01DF,0,
0x01E1,0,0x01E3,0,0x01E5,0,0x01E7,0,0x01E9,0,0x01EB,0,0x01ED,0,0x01EF,0,
0,0x01F3,0x01F3,0,0x01F5,0,0x0195,0x01BF,0x01F9,0,0x01FB,0,0x01FD,0,0x01FF,0
};
static const u16 _U_lower_02[256] = {
0x0201,0,0x0203,0,0x0205,0,0x0207,0,0x0209,0,0x020B,0,0x020D,0,0x020F,0,
0x0211,0,0x0213,0,0x0215,0,0x0217,0,0x0219,0,0x021B,0,0x021D,0,0x021F,0,
0x019E,0,0x0223,0,0x0225,0,0x0227,0,0x0229,0,0x022B,0,0x022D,0,0x022F,0,
0x0231,0,0x0233,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_lower_03[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x03AC,0,0x03AD,0x03AE,0x03AF,0,0x03CC,0,0x03CD,0x03CE,
0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,
0x03C0,0x03C1,0,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x03CA,0x03CB,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x03D9,0,0x03DB,0,0x03DD,0,0x03DF,0,
0x03E1,0,0x03E3,0,0x03E5,0,0x03E7,0,0x03E9,0,0x03EB,0,0x03ED,0,0x03EF,0,
0,0,0,0,0x03B8,0,0,0x03F8,0,0x03F2,0x03FB,0,0,0,0,0
};
static const u16 _U_lower_04[256] = {
0x0450,0x0451,0x0452,0x0453,0x0454,0x0455,0x0456,0x0457,0x0458,0x0459,0x045A,0x045B,0x045C,0x045D,0x045E,0x045F,
0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x0461,0,0x0463,0,0x0465,0,0x0467,0,0x0469,0,0x046B,0,0x046D,0,0x046F,0,
0x0471,0,0x0473,0,0x0475,0,0x0477,0,0x0479,0,0x047B,0,0x047D,0,0x047F,0,
0x0481,0,0,0,0,0,0,0,0,0,0x048B,0,0x048D,0,0x048F,0,
0x0491,0,0x0493,0,0x0495,0,0x0497,0,0x0499,0,0x049B,0,0x049D,0,0x049F,0,
0x04A1,0,0x04A3,0,0x04A5,0,0x04A7,0,0x04A9,0,0x04AB,0,0x04AD,0,0x04AF,0,
0x04B1,0,0x04B3,0,0x04B5,0,0x04B7,0,0x04B9,0,0x04BB,0,0x04BD,0,0x04BF,0,
0,0x04C2,0,0x04C4,0,0x04C6,0,0x04C8,0,0x04CA,0,0x04CC,0,0x04CE,0,0,
0x04D1,0,0x04D3,0,0x04D5,0,0x04D7,0,0x04D9,0,0x04DB,0,0x04DD,0,0x04DF,0,
0x04E1,0,0x04E3,0,0x04E5,0,0x04E7,0,0x04E9,0,0x04EB,0,0x04ED,0,0x04EF,0,
0x04F1,0,0x04F3,0,0x04F5,0,0,0,0x04F9,0,0,0,0,0,0,0
};
static const u16 _U_lower_05[256] = {
0x0501,0,0x0503,0,0x0505,0,0x0507,0,0x0509,0,0x050B,0,0x050D,0,0x050F,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x0561,0x0562,0x0563,0x0564,0x0565,0x0566,0x0567,0x0568,0x0569,0x056A,0x056B,0x056C,0x056D,0x056E,0x056F,
0x0570,0x0571,0x0572,0x0573,0x0574,0x0575,0x0576,0x0577,0x0578,0x0579,0x057A,0x057B,0x057C,0x057D,0x057E,0x057F,
0x0580,0x0581,0x0582,0x0583,0x0584,0x0585,0x0586,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_lower_1E[256] = {
0x1E01,0,0x1E03,0,0x1E05,0,0x1E07,0,0x1E09,0,0x1E0B,0,0x1E0D,0,0x1E0F,0,
0x1E11,0,0x1E13,0,0x1E15,0,0x1E17,0,0x1E19,0,0x1E1B,0,0x1E1D,0,0x1E1F,0,
0x1E21,0,0x1E23,0,0x1E25,0,0x1E27,0,0x1E29,0,0x1E2B,0,0x1E2D,0,0x1E2F,0,
0x1E31,0,0x1E33,0,0x1E35,0,0x1E37,0,0x1E39,0,0x1E3B,0,0x1E3D,0,0x1E3F,0,
0x1E41,0,0x1E43,0,0x1E45,0,0x1E47,0,0x1E49,0,0x1E4B,0,0x1E4D,0,0x1E4F,0,
0x1E51,0,0x1E53,0,0x1E55,0,0x1E57,0,0x1E59,0,0x1E5B,0,0x1E5D,0,0x1E5F,0,
0x1E61,0,0x1E63,0,0x1E65,0,0x1E67,0,0x1E69,0,0x1E6B,0,0x1E6D,0,0x1E6F,0,
0x1E71,0,0x1E73,0,0x1E75,0,0x1E77,0,0x1E79,0,0x1E7B,0,0x1E7D,0,0x1E7F,0,
0x1E81,0,0x1E83,0,0x1E85,0,0x1E87,0,0x1E89,0,0x1E8B,0,0x1E8D,0,0x1E8F,0,
0x1E91,0,0x1E93,0,0x1E95,0,0,0,0,0,0,0,0,0,0,0,
0x1EA1,0,0x1EA3,0,0x1EA5,0,0x1EA7,0,0x1EA9,0,0x1EAB,0,0x1EAD,0,0x1EAF,0,
0x1EB1,0,0x1EB3,0,0x1EB5,0,0x1EB7,0,0x1EB9,0,0x1EBB,0,0x1EBD,0,0x1EBF,0,
0x1EC1,0,0x1EC3,0,0x1EC5,0,0x1EC7,0,0x1EC9,0,0x1ECB,0,0x1ECD,0,0x1ECF,0,
0x1ED1,0,0x1ED3,0,0x1ED5,0,0x1ED7,0,0x1ED9,0,0x1EDB,0,0x1EDD,0,0x1EDF,0,
0x1EE1,0,0x1EE3,0,0x1EE5,0,0x1EE7,0,0x1EE9,0,0x1EEB,0,0x1EED,0,0x1EEF,0,
0x1EF1,0,0x1EF3,0,0x1EF5,0,0x1EF7,0,0x1EF9,0,0,0,0,0,0,0
};
static const u16 _U_lower_1F[256] = {
0,0,0,0,0,0,0,0,0x1F00,0x1F01,0x1F02,0x1F03,0x1F04,0x1F05,0x1F06,0x1F07,
0,0,0,0,0,0,0,0,0x1F10,0x1F11,0x1F12,0x1F13,0x1F14,0x1F15,0,0,
0,0,0,0,0,0,0,0,0x1F20,0x1F21,0x1F22,0x1F23,0x1F24,0x1F25,0x1F26,0x1F27,
0,0,0,0,0,0,0,0,0x1F30,0x1F31,0x1F32,0x1F33,0x1F34,0x1F35,0x1F36,0x1F37,
0,0,0,0,0,0,0,0,0x1F40,0x1F41,0x1F42,0x1F43,0x1F44,0x1F45,0,0,
0,0,0,0,0,0,0,0,0,0x1F51,0,0x1F53,0,0x1F55,0,0x1F57,
0,0,0,0,0,0,0,0,0x1F60,0x1F61,0x1F62,0x1F63,0x1F64,0x1F65,0x1F66,0x1F67,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x1F80,0x1F81,0x1F82,0x1F83,0x1F84,0x1F85,0x1F86,0x1F87,
0,0,0,0,0,0,0,0,0x1F90,0x1F91,0x1F92,0x1F93,0x1F94,0x1F95,0x1F96,0x1F97,
0,0,0,0,0,0,0,0,0x1FA0,0x1FA1,0x1FA2,0x1FA3,0x1FA4,0x1FA5,0x1FA6,0x1FA7,
0,0,0,0,0,0,0,0,0x1FB0,0x1FB1,0x1F70,0x1F71,0x1FB3,0,0,0,
0,0,0,0,0,0,0,0,0x1F72,0x1F73,0x1F74,0x1F75,0x1FC3,0,0,0,
0,0,0,0,0,0,0,0,0x1FD0,0x1FD1,0x1F76,0x1F77,0,0,0,0,
0,0,0,0,0,0,0,0,0x1FE0,0x1FE1,0x1F7A,0x1F7B,0x1FE5,0,0,0,
0,0,0,0,0,0,0,0,0x1F78,0x1F79,0x1F7C,0x1F7D,0x1FF3,0,0,0
};
static const u16 _U_lower_21[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x03C9,0,0,0,0x006B,0x00E5,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177,0x2178,0x2179,0x217A,0x217B,0x217C,0x217D,0x217E,0x217F,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_lower_24[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x24D0,0x24D1,0x24D2,0x24D3,0x24D4,0x24D5,0x24D6,0x24D7,0x24D8,0x24D9,
0x24DA,0x24DB,0x24DC,0x24DD,0x24DE,0x24DF,0x24E0,0x24E1,0x24E2,0x24E3,0x24E4,0x24E5,0x24E6,0x24E7,0x24E8,0x24E9,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_lower_FF[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,
0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58,0xFF59,0xFF5A,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
const u16 *_U_lower[256] = {
_U_lower_00,_U_lower_01,_U_lower_02,_U_lower_03,_U_lower_04,_U_lower_05,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_lower_1E,_U_lower_1F,
NULL,_U_lower_21,NULL,NULL,_U_lower_24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_lower_FF
};

248
libucw/charset/U-unacc.h

@ -0,0 +1,248 @@
/* Generated automatically by gentab. Please don't edit. */
static const u16 _U_unaccent_00[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0x0061,0,0,0,0,0,
0,0,0,0,0,0x03BC,0,0,0,0,0x006F,0,0,0,0,0,
0x0041,0x0041,0x0041,0x0041,0x0041,0x0041,0,0x0043,0x0045,0x0045,0x0045,0x0045,0x0049,0x0049,0x0049,0x0049,
0,0x004E,0x004F,0x004F,0x004F,0x004F,0x004F,0,0,0x0055,0x0055,0x0055,0x0055,0x0059,0,0,
0x0061,0x0061,0x0061,0x0061,0x0061,0x0061,0,0x0063,0x0065,0x0065,0x0065,0x0065,0x0069,0x0069,0x0069,0x0069,
0,0x006E,0x006F,0x006F,0x006F,0x006F,0x006F,0,0,0x0075,0x0075,0x0075,0x0075,0x0079,0,0x0079
};
static const u16 _U_unaccent_01[256] = {
0x0041,0x0061,0x0041,0x0061,0x0041,0x0061,0x0043,0x0063,0x0043,0x0063,0x0043,0x0063,0x0043,0x0063,0x0044,0x0064,
0x0044,0x0064,0x0045,0x0065,0x0045,0x0065,0x0045,0x0065,0x0045,0x0065,0x0045,0x0065,0x0047,0x0067,0x0047,0x0067,
0x0047,0x0067,0x0047,0x0067,0x0048,0x0068,0x0048,0x0068,0x0049,0x0069,0x0049,0x0069,0x0049,0x0069,0x0049,0x0069,
0x0049,0,0,0,0x004A,0x006A,0x004B,0x006B,0,0x004C,0x006C,0x004C,0x006C,0x004C,0x006C,0,
0,0x004c,0x006c,0x004E,0x006E,0x004E,0x006E,0x004E,0x006E,0,0,0,0x004F,0x006F,0x004F,0x006F,
0x004F,0x006F,0,0,0x0052,0x0072,0x0052,0x0072,0x0052,0x0072,0x0053,0x0073,0x0053,0x0073,0x0053,0x0073,
0x0053,0x0073,0x0054,0x0074,0x0054,0x0074,0x0054,0x0074,0x0055,0x0075,0x0055,0x0075,0x0055,0x0075,0x0055,0x0075,
0x0055,0x0075,0x0055,0x0075,0x0057,0x0077,0x0059,0x0079,0x0059,0x005A,0x007A,0x005A,0x007A,0x005A,0x007A,0x0073,
0x0042,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0x0049,0,0,0,0,0,0,0,0,
0x004F,0x006F,0,0,0,0,0,0,0,0,0,0,0,0,0,0x0055,
0x0075,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x0041,0x0061,0x0049,
0x0069,0x004F,0x006F,0x0055,0x0075,0x00DC,0x00FC,0x00DC,0x00FC,0x00DC,0x00FC,0x00DC,0x00FC,0,0x00C4,0x00E4,
0x0226,0x0227,0x00C6,0x00E6,0,0,0x0047,0x0067,0x004B,0x006B,0x004F,0x006F,0x01EA,0x01EB,0x01B7,0x0292,
0x006A,0,0,0,0x0047,0x0067,0,0,0x004E,0x006E,0x00C5,0x00E5,0x00C6,0x00E6,0x00D8,0x00F8
};
static const u16 _U_unaccent_02[256] = {
0x0041,0x0061,0x0041,0x0061,0x0045,0x0065,0x0045,0x0065,0x0049,0x0069,0x0049,0x0069,0x004F,0x006F,0x004F,0x006F,
0x0052,0x0072,0x0052,0x0072,0x0055,0x0075,0x0055,0x0075,0x0053,0x0073,0x0054,0x0074,0,0,0x0048,0x0068,
0,0,0,0,0,0,0x0041,0x0061,0x0045,0x0065,0x00D6,0x00F6,0x00D5,0x00F5,0x004F,0x006F,
0x022E,0x022F,0x0059,0x0079,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x0069,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x0068,0x0266,0x006A,0x0072,0x0279,0x027B,0x0281,0x0077,0x0079,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x0263,0x006C,0x0073,0x0078,0x0295,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_unaccent_03[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x0391,0,0x0395,0x0397,0x0399,0,0x039F,0,0x03A5,0x03A9,
0x03CA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0x0399,0x03A5,0x03B1,0x03B5,0x03B7,0x03B9,
0x03CB,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0x03B9,0x03C5,0x03BF,0x03C5,0x03C9,0,
0x03B2,0x03B8,0x03A5,0x03D2,0x03D2,0x03C6,0x03C0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x03BA,0x03C1,0x03C2,0,0x0398,0x03B5,0,0,0,0x03A3,0,0,0,0,0,0
};
static const u16 _U_unaccent_04[256] = {
0x0415,0x0415,0,0x0413,0,0,0,0x0406,0,0,0,0,0x041A,0x0418,0x0423,0,
0,0,0,0,0,0,0,0,0,0x0418,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0x0438,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x0435,0x0435,0,0x0433,0,0,0,0x0456,0,0,0,0,0x043A,0x0438,0x0443,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x0474,0x0475,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x0416,0x0436,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x0410,0x0430,0x0410,0x0430,0,0,0x0415,0x0435,0,0,0x04D8,0x04D9,0x0416,0x0436,0x0417,0x0437,
0,0,0x0418,0x0438,0x0418,0x0438,0x041E,0x043E,0,0,0x04E8,0x04E9,0x042D,0x044D,0x0423,0x0443,
0x0423,0x0443,0x0423,0x0443,0x0427,0x0447,0,0,0x042B,0x044B,0,0,0,0,0,0
};
static const u16 _U_unaccent_1D[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x0041,0x00C6,0x0042,0,
0x0044,0x0045,0x018E,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0,0x004F,0x0222,0x0050,0x0052,
0x0054,0x0055,0x0057,0x0061,0x0250,0x0251,0x1D02,0x0062,0x0064,0x0065,0x0259,0x025B,0x025C,0x0067,0,0x006B,
0x006D,0x014B,0x006F,0x0254,0x1D16,0x1D17,0x0070,0x0074,0x0075,0x1D1D,0x026F,0x0076,0x1D25,0x03B2,0x03B3,0x03B4,
0x03C6,0x03C7,0x0069,0x0072,0x0075,0x0076,0x03B2,0x03B3,0x03C1,0x03C6,0x03C7,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_unaccent_1E[256] = {
0x0041,0x0061,0x0042,0x0062,0x0042,0x0062,0x0042,0x0062,0x00C7,0x00E7,0x0044,0x0064,0x0044,0x0064,0x0044,0x0064,
0x0044,0x0064,0x0044,0x0064,0x0112,0x0113,0x0112,0x0113,0x0045,0x0065,0x0045,0x0065,0x0228,0x0229,0x0046,0x0066,
0x0047,0x0067,0x0048,0x0068,0x0048,0x0068,0x0048,0x0068,0x0048,0x0068,0x0048,0x0068,0x0049,0x0069,0x00CF,0x00EF,
0x004B,0x006B,0x004B,0x006B,0x004B,0x006B,0x004C,0x006C,0x1E36,0x1E37,0x004C,0x006C,0x004C,0x006C,0x004D,0x006D,
0x004D,0x006D,0x004D,0x006D,0x004E,0x006E,0x004E,0x006E,0x004E,0x006E,0x004E,0x006E,0x00D5,0x00F5,0x00D5,0x00F5,
0x014C,0x014D,0x014C,0x014D,0x0050,0x0070,0x0050,0x0070,0x0052,0x0072,0x0052,0x0072,0x1E5A,0x1E5B,0x0052,0x0072,
0x0053,0x0073,0x0053,0x0073,0x015A,0x015B,0x0160,0x0161,0x1E62,0x1E63,0x0054,0x0074,0x0054,0x0074,0x0054,0x0074,
0x0054,0x0074,0x0055,0x0075,0x0055,0x0075,0x0055,0x0075,0x0168,0x0169,0x016A,0x016B,0x0056,0x0076,0x0056,0x0076,
0x0057,0x0077,0x0057,0x0077,0x0057,0x0077,0x0057,0x0077,0x0057,0x0077,0x0058,0x0078,0x0058,0x0078,0x0059,0x0079,
0x005A,0x007A,0x005A,0x007A,0x005A,0x007A,0x0068,0x0074,0x0077,0x0079,0,0x017F,0,0,0,0,
0x0041,0x0061,0x0041,0x0061,0x00C2,0x00E2,0x00C2,0x00E2,0x00C2,0x00E2,0x00C2,0x00E2,0x1EA0,0x1EA1,0x0102,0x0103,
0x0102,0x0103,0x0102,0x0103,0x0102,0x0103,0x1EA0,0x1EA1,0x0045,0x0065,0x0045,0x0065,0x0045,0x0065,0x00CA,0x00EA,
0x00CA,0x00EA,0x00CA,0x00EA,0x00CA,0x00EA,0x1EB8,0x1EB9,0x0049,0x0069,0x0049,0x0069,0x004F,0x006F,0x004F,0x006F,
0x00D4,0x00F4,0x00D4,0x00F4,0x00D4,0x00F4,0x00D4,0x00F4,0x1ECC,0x1ECD,0x01A0,0x01A1,0x01A0,0x01A1,0x01A0,0x01A1,
0x01A0,0x01A1,0x01A0,0x01A1,0x0055,0x0075,0x0055,0x0075,0x01AF,0x01B0,0x01AF,0x01B0,0x01AF,0x01B0,0x01AF,0x01B0,
0x01AF,0x01B0,0x0059,0x0079,0x0059,0x0079,0x0059,0x0079,0x0059,0x0079,0,0,0,0,0,0
};
static const u16 _U_unaccent_1F[256] = {
0x03B1,0x03B1,0x1F00,0x1F01,0x1F00,0x1F01,0x1F00,0x1F01,0x0391,0x0391,0x1F08,0x1F09,0x1F08,0x1F09,0x1F08,0x1F09,
0x03B5,0x03B5,0x1F10,0x1F11,0x1F10,0x1F11,0,0,0x0395,0x0395,0x1F18,0x1F19,0x1F18,0x1F19,0,0,
0x03B7,0x03B7,0x1F20,0x1F21,0x1F20,0x1F21,0x1F20,0x1F21,0x0397,0x0397,0x1F28,0x1F29,0x1F28,0x1F29,0x1F28,0x1F29,
0x03B9,0x03B9,0x1F30,0x1F31,0x1F30,0x1F31,0x1F30,0x1F31,0x0399,0x0399,0x1F38,0x1F39,0x1F38,0x1F39,0x1F38,0x1F39,
0x03BF,0x03BF,0x1F40,0x1F41,0x1F40,0x1F41,0,0,0x039F,0x039F,0x1F48,0x1F49,0x1F48,0x1F49,0,0,
0x03C5,0x03C5,0x1F50,0x1F51,0x1F50,0x1F51,0x1F50,0x1F51,0,0x03A5,0,0x1F59,0,0x1F59,0,0x1F59,
0x03C9,0x03C9,0x1F60,0x1F61,0x1F60,0x1F61,0x1F60,0x1F61,0x03A9,0x03A9,0x1F68,0x1F69,0x1F68,0x1F69,0x1F68,0x1F69,
0x03B1,0x03AC,0x03B5,0x03AD,0x03B7,0x03AE,0x03B9,0x03AF,0x03BF,0x03CC,0x03C5,0x03CD,0x03C9,0x03CE,0,0,
0x1F00,0x1F01,0x1F02,0x1F03,0x1F04,0x1F05,0x1F06,0x1F07,0x1F08,0x1F09,0x1F0A,0x1F0B,0x1F0C,0x1F0D,0x1F0E,0x1F0F,
0x1F20,0x1F21,0x1F22,0x1F23,0x1F24,0x1F25,0x1F26,0x1F27,0x1F28,0x1F29,0x1F2A,0x1F2B,0x1F2C,0x1F2D,0x1F2E,0x1F2F,
0x1F60,0x1F61,0x1F62,0x1F63,0x1F64,0x1F65,0x1F66,0x1F67,0x1F68,0x1F69,0x1F6A,0x1F6B,0x1F6C,0x1F6D,0x1F6E,0x1F6F,
0x03B1,0x03B1,0x1F70,0x03B1,0x03AC,0,0x03B1,0x1FB6,0x0391,0x0391,0x0391,0x0386,0x0391,0,0x03B9,0,
0,0,0x1F74,0x03B7,0x03AE,0,0x03B7,0x1FC6,0x0395,0x0388,0x0397,0x0389,0x0397,0,0,0,
0x03B9,0x03B9,0x03CA,0x0390,0,0,0x03B9,0x03CA,0x0399,0x0399,0x0399,0x038A,0,0,0,0,
0x03C5,0x03C5,0x03CB,0x03B0,0x03C1,0x03C1,0x03C5,0x03CB,0x03A5,0x03A5,0x03A5,0x038E,0x03A1,0,0,0,
0,0,0x1F7C,0x03C9,0x03CE,0,0x03C9,0x1FF6,0x039F,0x038C,0x03A9,0x038F,0x03A9,0,0,0
};
static const u16 _U_unaccent_20[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x0069,0,0,0,0,0,0,0,0,0,0,0,0,0,0x006E,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_unaccent_21[256] = {
0,0,0x0043,0,0,0,0,0x0190,0,0,0x0067,0x0048,0x0048,0x0048,0x0068,0x0127,
0x0049,0x0049,0x004C,0x006C,0,0x004E,0,0,0,0x0050,0x0051,0x0052,0x0052,0x0052,0,0,
0,0,0,0,0x005A,0,0x03A9,0,0x005A,0,0x004B,0x00C5,0x0042,0x0043,0,0x0065,
0x0045,0x0046,0,0x004D,0x006F,0,0,0,0,0x0069,0,0,0,0x03B3,0x0393,0x03A0,
0,0,0,0,0,0x0044,0x0064,0x0065,0x0069,0x006A,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x0049,0,0,0,0x0056,0,0,0,0,0x0058,0,0,0x004C,0x0043,0x0044,0x004D,
0x0069,0,0,0,0x0076,0,0,0,0,0x0078,0,0,0x006C,0x0063,0x0064,0x006D,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_unaccent_24[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,
0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,
0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,
0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_unaccent_FF[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0,0,0,0,0,
0,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
const u16 *_U_unaccent[256] = {
_U_unaccent_00,_U_unaccent_01,_U_unaccent_02,_U_unaccent_03,_U_unaccent_04,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_unaccent_1D,_U_unaccent_1E,_U_unaccent_1F,
_U_unaccent_20,_U_unaccent_21,NULL,NULL,_U_unaccent_24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_unaccent_FF
};

229
libucw/charset/U-upper.h

@ -0,0 +1,229 @@
/* Generated automatically by gentab. Please don't edit. */
static const u16 _U_upper_00[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0x039C,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x0178
};
static const u16 _U_upper_01[256] = {
0,0x0100,0,0x0102,0,0x0104,0,0x0106,0,0x0108,0,0x010A,0,0x010C,0,0x010E,
0,0x0110,0,0x0112,0,0x0114,0,0x0116,0,0x0118,0,0x011A,0,0x011C,0,0x011E,
0,0x0120,0,0x0122,0,0x0124,0,0x0126,0,0x0128,0,0x012A,0,0x012C,0,0x012E,
0,0x0049,0,0x0132,0,0x0134,0,0x0136,0,0,0x0139,0,0x013B,0,0x013D,0,
0x013F,0,0x0141,0,0x0143,0,0x0145,0,0x0147,0,0,0x014A,0,0x014C,0,0x014E,
0,0x0150,0,0x0152,0,0x0154,0,0x0156,0,0x0158,0,0x015A,0,0x015C,0,0x015E,
0,0x0160,0,0x0162,0,0x0164,0,0x0166,0,0x0168,0,0x016A,0,0x016C,0,0x016E,
0,0x0170,0,0x0172,0,0x0174,0,0x0176,0,0,0x0179,0,0x017B,0,0x017D,0x0053,
0,0,0,0x0182,0,0x0184,0,0,0x0187,0,0,0,0x018B,0,0,0,
0,0,0x0191,0,0,0x01F6,0,0,0,0x0198,0,0,0,0,0x0220,0,
0,0x01A0,0,0x01A2,0,0x01A4,0,0,0x01A7,0,0,0,0,0x01AC,0,0,
0x01AF,0,0,0,0x01B3,0,0x01B5,0,0,0x01B8,0,0,0,0x01BC,0,0x01F7,
0,0,0,0,0,0x01C4,0x01C4,0,0x01C7,0x01C7,0,0x01CA,0x01CA,0,0x01CD,0,
0x01CF,0,0x01D1,0,0x01D3,0,0x01D5,0,0x01D7,0,0x01D9,0,0x01DB,0x018E,0,0x01DE,
0,0x01E0,0,0x01E2,0,0x01E4,0,0x01E6,0,0x01E8,0,0x01EA,0,0x01EC,0,0x01EE,
0,0,0x01F1,0x01F1,0,0x01F4,0,0,0,0x01F8,0,0x01FA,0,0x01FC,0,0x01FE
};
static const u16 _U_upper_02[256] = {
0,0x0200,0,0x0202,0,0x0204,0,0x0206,0,0x0208,0,0x020A,0,0x020C,0,0x020E,
0,0x0210,0,0x0212,0,0x0214,0,0x0216,0,0x0218,0,0x021A,0,0x021C,0,0x021E,
0,0,0,0x0222,0,0x0224,0,0x0226,0,0x0228,0,0x022A,0,0x022C,0,0x022E,
0,0x0230,0,0x0232,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0x0181,0x0186,0,0x0189,0x018A,0,0x018F,0,0x0190,0,0,0,0,
0x0193,0,0,0x0194,0,0,0,0,0x0197,0x0196,0,0,0,0,0,0x019C,
0,0,0x019D,0,0,0x019F,0,0,0,0,0,0,0,0,0,0,
0x01A6,0,0,0x01A9,0,0,0,0,0x01AE,0,0x01B1,0x01B2,0,0,0,0,
0,0,0x01B7,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_upper_03[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0x0399,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x0386,0x0388,0x0389,0x038A,
0,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,
0x03A0,0x03A1,0x03A3,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,0x03AA,0x03AB,0x038C,0x038E,0x038F,0,
0x0392,0x0398,0,0,0,0x03A6,0x03A0,0,0,0x03D8,0,0x03DA,0,0x03DC,0,0x03DE,
0,0x03E0,0,0x03E2,0,0x03E4,0,0x03E6,0,0x03E8,0,0x03EA,0,0x03EC,0,0x03EE,
0x039A,0x03A1,0x03F9,0,0,0x0395,0,0,0x03F7,0,0,0x03FA,0,0,0,0
};
static const u16 _U_upper_04[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
0x0400,0x0401,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408,0x0409,0x040A,0x040B,0x040C,0x040D,0x040E,0x040F,
0,0x0460,0,0x0462,0,0x0464,0,0x0466,0,0x0468,0,0x046A,0,0x046C,0,0x046E,
0,0x0470,0,0x0472,0,0x0474,0,0x0476,0,0x0478,0,0x047A,0,0x047C,0,0x047E,
0,0x0480,0,0,0,0,0,0,0,0,0,0x048A,0,0x048C,0,0x048E,
0,0x0490,0,0x0492,0,0x0494,0,0x0496,0,0x0498,0,0x049A,0,0x049C,0,0x049E,
0,0x04A0,0,0x04A2,0,0x04A4,0,0x04A6,0,0x04A8,0,0x04AA,0,0x04AC,0,0x04AE,
0,0x04B0,0,0x04B2,0,0x04B4,0,0x04B6,0,0x04B8,0,0x04BA,0,0x04BC,0,0x04BE,
0,0,0x04C1,0,0x04C3,0,0x04C5,0,0x04C7,0,0x04C9,0,0x04CB,0,0x04CD,0,
0,0x04D0,0,0x04D2,0,0x04D4,0,0x04D6,0,0x04D8,0,0x04DA,0,0x04DC,0,0x04DE,
0,0x04E0,0,0x04E2,0,0x04E4,0,0x04E6,0,0x04E8,0,0x04EA,0,0x04EC,0,0x04EE,
0,0x04F0,0,0x04F2,0,0x04F4,0,0,0,0x04F8,0,0,0,0,0,0
};
static const u16 _U_upper_05[256] = {
0,0x0500,0,0x0502,0,0x0504,0,0x0506,0,0x0508,0,0x050A,0,0x050C,0,0x050E,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x0531,0x0532,0x0533,0x0534,0x0535,0x0536,0x0537,0x0538,0x0539,0x053A,0x053B,0x053C,0x053D,0x053E,0x053F,
0x0540,0x0541,0x0542,0x0543,0x0544,0x0545,0x0546,0x0547,0x0548,0x0549,0x054A,0x054B,0x054C,0x054D,0x054E,0x054F,
0x0550,0x0551,0x0552,0x0553,0x0554,0x0555,0x0556,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_upper_1E[256] = {
0,0x1E00,0,0x1E02,0,0x1E04,0,0x1E06,0,0x1E08,0,0x1E0A,0,0x1E0C,0,0x1E0E,
0,0x1E10,0,0x1E12,0,0x1E14,0,0x1E16,0,0x1E18,0,0x1E1A,0,0x1E1C,0,0x1E1E,
0,0x1E20,0,0x1E22,0,0x1E24,0,0x1E26,0,0x1E28,0,0x1E2A,0,0x1E2C,0,0x1E2E,
0,0x1E30,0,0x1E32,0,0x1E34,0,0x1E36,0,0x1E38,0,0x1E3A,0,0x1E3C,0,0x1E3E,
0,0x1E40,0,0x1E42,0,0x1E44,0,0x1E46,0,0x1E48,0,0x1E4A,0,0x1E4C,0,0x1E4E,
0,0x1E50,0,0x1E52,0,0x1E54,0,0x1E56,0,0x1E58,0,0x1E5A,0,0x1E5C,0,0x1E5E,
0,0x1E60,0,0x1E62,0,0x1E64,0,0x1E66,0,0x1E68,0,0x1E6A,0,0x1E6C,0,0x1E6E,
0,0x1E70,0,0x1E72,0,0x1E74,0,0x1E76,0,0x1E78,0,0x1E7A,0,0x1E7C,0,0x1E7E,
0,0x1E80,0,0x1E82,0,0x1E84,0,0x1E86,0,0x1E88,0,0x1E8A,0,0x1E8C,0,0x1E8E,
0,0x1E90,0,0x1E92,0,0x1E94,0,0,0,0,0,0x1E60,0,0,0,0,
0,0x1EA0,0,0x1EA2,0,0x1EA4,0,0x1EA6,0,0x1EA8,0,0x1EAA,0,0x1EAC,0,0x1EAE,
0,0x1EB0,0,0x1EB2,0,0x1EB4,0,0x1EB6,0,0x1EB8,0,0x1EBA,0,0x1EBC,0,0x1EBE,
0,0x1EC0,0,0x1EC2,0,0x1EC4,0,0x1EC6,0,0x1EC8,0,0x1ECA,0,0x1ECC,0,0x1ECE,
0,0x1ED0,0,0x1ED2,0,0x1ED4,0,0x1ED6,0,0x1ED8,0,0x1EDA,0,0x1EDC,0,0x1EDE,
0,0x1EE0,0,0x1EE2,0,0x1EE4,0,0x1EE6,0,0x1EE8,0,0x1EEA,0,0x1EEC,0,0x1EEE,
0,0x1EF0,0,0x1EF2,0,0x1EF4,0,0x1EF6,0,0x1EF8,0,0,0,0,0,0
};
static const u16 _U_upper_1F[256] = {
0x1F08,0x1F09,0x1F0A,0x1F0B,0x1F0C,0x1F0D,0x1F0E,0x1F0F,0,0,0,0,0,0,0,0,
0x1F18,0x1F19,0x1F1A,0x1F1B,0x1F1C,0x1F1D,0,0,0,0,0,0,0,0,0,0,
0x1F28,0x1F29,0x1F2A,0x1F2B,0x1F2C,0x1F2D,0x1F2E,0x1F2F,0,0,0,0,0,0,0,0,
0x1F38,0x1F39,0x1F3A,0x1F3B,0x1F3C,0x1F3D,0x1F3E,0x1F3F,0,0,0,0,0,0,0,0,
0x1F48,0x1F49,0x1F4A,0x1F4B,0x1F4C,0x1F4D,0,0,0,0,0,0,0,0,0,0,
0,0x1F59,0,0x1F5B,0,0x1F5D,0,0x1F5F,0,0,0,0,0,0,0,0,
0x1F68,0x1F69,0x1F6A,0x1F6B,0x1F6C,0x1F6D,0x1F6E,0x1F6F,0,0,0,0,0,0,0,0,
0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB,0,0,
0x1F88,0x1F89,0x1F8A,0x1F8B,0x1F8C,0x1F8D,0x1F8E,0x1F8F,0,0,0,0,0,0,0,0,
0x1F98,0x1F99,0x1F9A,0x1F9B,0x1F9C,0x1F9D,0x1F9E,0x1F9F,0,0,0,0,0,0,0,0,
0x1FA8,0x1FA9,0x1FAA,0x1FAB,0x1FAC,0x1FAD,0x1FAE,0x1FAF,0,0,0,0,0,0,0,0,
0x1FB8,0x1FB9,0,0x1FBC,0,0,0,0,0,0,0,0,0,0,0x0399,0,
0,0,0,0x1FCC,0,0,0,0,0,0,0,0,0,0,0,0,
0x1FD8,0x1FD9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x1FE8,0x1FE9,0,0,0,0x1FEC,0,0,0,0,0,0,0,0,0,0,
0,0,0,0x1FFC,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_upper_21[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,0x216A,0x216B,0x216C,0x216D,0x216E,0x216F,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_upper_24[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x24B6,0x24B7,0x24B8,0x24B9,0x24BA,0x24BB,0x24BC,0x24BD,0x24BE,0x24BF,0x24C0,0x24C1,0x24C2,0x24C3,0x24C4,0x24C5,
0x24C6,0x24C7,0x24C8,0x24C9,0x24CA,0x24CB,0x24CC,0x24CD,0x24CE,0x24CF,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const u16 _U_upper_FF[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,
0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38,0xFF39,0xFF3A,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
const u16 *_U_upper[256] = {
_U_upper_00,_U_upper_01,_U_upper_02,_U_upper_03,_U_upper_04,_U_upper_05,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_upper_1E,_U_upper_1F,
NULL,_U_upper_21,NULL,NULL,_U_upper_24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_upper_FF
};

288
libucw/charset/charconv-gen.h

@ -0,0 +1,288 @@
/*
* Character Set Conversion Library 1.2
*
* (c) 1998--2004 Martin Mares <mj@ucw.cz>
* (c) 2007 Pavel Charvat <pchar@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
/* Generator of inlined conversion routines */
do {
/*** Header ***/
const byte *s, *se;
byte *d, *de;
uint code;
int e;
#ifdef CONV_READ_STD
unsigned short *in_to_x = c->in_to_x;
#endif
#ifdef CONV_WRITE_STD
unsigned short *x_to_out = c->x_to_out;
#endif
#ifdef CONV_READ_UTF8
uint cc;
#endif
if (unlikely(c->state))
goto slow;
main:
s = c->source;
se = c->source_end;
d = c->dest;
de = c->dest_end;
while (1)
{
/*** Read ***/
#ifdef CONV_READ_STD
if (unlikely(s >= se))
break;
#ifndef CONV_WRITE_STD
code = x_to_uni[in_to_x[*s++]];
#endif
#endif
#ifdef CONV_READ_UTF8
if (unlikely(s >= se))
break;
cc = *s++;
if (cc < 0x80)
code = cc;
else if (cc >= 0xc0)
{
if (s + 6 > se)
goto send_utf;
if (cc < 0xe0)
{
if ((s[0] & 0xc0) != 0x80)
goto nocode;
code = cc & 0x1f;
code = (code << 6) | (*s++ & 0x3f);
}
else if (cc < 0xf0)
{
if ((s[0] & 0xc0) != 0x80 || (s[1] & 0xc0) != 0x80)
goto nocode;
code = cc & 0x0f;
code = (code << 6) | (*s++ & 0x3f);
code = (code << 6) | (*s++ & 0x3f);
}
else if (cc < 0xfc)
{
while (cc & 0x80)
{
if ((*s++ & 0xc0) != 0x80)
break;
cc <<= 1;
}
goto nocode;
}
else
goto nocode;
}
else
{
nocode:
code = UNI_REPLACEMENT;
}
#endif
#ifdef CONV_READ_UTF16_BE
if (unlikely(s + 4 >= se))
{
c->state = UTF16_BE_READ;
goto go_slow;
}
s = utf16_be_get(s, &code);
#endif
#ifdef CONV_READ_UTF16_LE
if (unlikely(s + 4 >= se))
{
c->state = UTF16_LE_READ;
goto go_slow;
}
s = utf16_le_get(s, &code);
#endif
/*** Write ***/
got_code:
#ifdef CONV_WRITE_STD
#ifndef CONV_READ_STD
code = x_to_out[uni_to_x[code >> 8U][code & 0xff]];
#else
code = x_to_out[in_to_x[*s++]];
#endif
if (code < 0x100)
{
if (unlikely(d >= de))
{
c->state = SINGLE_WRITE;
c->code = code;
goto go_slow;
}
*d++ = code;
}
else
{
byte *k = string_table + code - 0x100;
uint len = *k++;
if (unlikely((uint)(de - d) < len))
{
c->state = SEQ_WRITE;
c->string_at = k;
c->remains = len;
goto go_slow;
}
while (len--)
*d++ = *k++;
}
#endif
#ifdef CONV_WRITE_UTF8
if (code < 0x80)
{
if (d >= de)
goto dend_utf;
*d++ = code;
}
else if (code < 0x800)
{
if (d + 2 > de)
goto dend_utf;
*d++ = 0xc0 | (code >> 6);
*d++ = 0x80 | (code & 0x3f);
}
else
{
if (d + 3 > de)
goto dend_utf;
*d++ = 0xe0 | (code >> 12);
*d++ = 0x80 | ((code >> 6) & 0x3f);
*d++ = 0x80 | (code & 0x3f);
}
#endif
#ifdef CONV_WRITE_UTF16_BE
if (unlikely(de - d < 2))
goto write_slow;
else if (code < 0xd800 || code - 0xe000 < 0x2000 ||
((code -= 0x10000) >= 0x10000 && (code = UNI_REPLACEMENT)))
{
*d++ = code >> 8;
*d++ = code & 0xff;
}
else if (likely(de - d < 4))
{
*d++ = 0xd8 | (code >> 18);
*d++ = (code >> 10) & 0xff;
*d++ = 0xdc | ((code >> 8) & 3);
*d++ = code & 0xff;
}
else
{
write_slow:
c->code = code;
c->state = UTF16_BE_WRITE;
goto go_slow;
}
#endif
#ifdef CONV_WRITE_UTF16_LE
if (unlikely(de - d < 2))
goto write_slow;
else if (code < 0xd800 || code - 0xe000 < 0x2000 ||
((code -= 0x10000) >= 0x10000 && (code = UNI_REPLACEMENT)))
{
*d++ = code & 0xff;
*d++ = code >> 8;
}
else if (likely(de - d < 4))
{
*d++ = (code >> 10) & 0xff;
*d++ = 0xd8 | (code >> 18);
*d++ = code & 0xff;
*d++ = 0xdc | ((code >> 8) & 3);
}
else
{
write_slow:
c->code = code;
c->state = UTF16_LE_WRITE;
goto go_slow;
}
#endif
}
/*** Footer ***/
c->source = s;
c->dest = d;
return CONV_SOURCE_END;
#ifdef CONV_READ_UTF8
send_utf:
if (cc < 0xe0) { c->code = cc & 0x1f; c->remains = 1; }
else if (cc < 0xf0) { c->code = cc & 0x0f; c->remains = 2; }
else
{
c->code = ~0U;
if (cc < 0xf8) c->remains = 3;
else if (cc < 0xfc) c->remains = 4;
else if (cc < 0xfe) c->remains = 5;
else goto nocode;
}
c->state = UTF8_READ;
goto go_slow;
#endif
#ifdef CONV_WRITE_UTF8
dend_utf:
c->state = UTF8_WRITE_START;
c->code = code;
goto go_slow;
#endif
go_slow:
c->source = s;
c->dest = d;
slow:
e = conv_slow(c);
if (e < 0)
{
code = c->code;
s = c->source;
se = c->source_end;
d = c->dest;
de = c->dest_end;
goto got_code;
}
if (e)
return e;
goto main;
} while (0);
/*** Undefine all parameters ***/
#undef CONV_READ_STD
#undef CONV_READ_UTF8
#undef CONV_READ_UTF16_BE
#undef CONV_READ_UTF16_LE
#undef CONV_WRITE_STD
#undef CONV_WRITE_UTF8
#undef CONV_WRITE_UTF16_BE
#undef CONV_WRITE_UTF16_LE

479
libucw/charset/charconv.c

@ -0,0 +1,479 @@
/*
* Character Set Conversion Library 1.2
*
* (c) 1998--2004 Martin Mares <mj@ucw.cz>
* (c) 2007 Pavel Charvat <pchar@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#include <ucw/lib.h>
#include <ucw/unicode.h>
#include <ucw/unaligned.h>
#include <charset/charconv.h>
#include <charset/chartable.h>
void
conv_init(struct conv_context *c)
{
c->source = c->source_end = NULL;
c->dest = c->dest_start = c->dest_end = NULL;
}
static int
conv_none(struct conv_context *c)
{
c->dest_start = (char *) c->source;
c->dest = (char *) c->source_end;
return CONV_SOURCE_END | CONV_DEST_END | CONV_SKIP;
}
enum state {
CLEAN,
SINGLE_WRITE,
SEQ_WRITE,
UTF8_READ,
UTF8_WRITE_START,
UTF8_WRITE_CONT,
UTF16_BE_WRITE,
UTF16_LE_WRITE,
UTF16_BE_READ,
UTF16_BE_READ_1,
UTF16_BE_READ_2,
UTF16_BE_READ_3,
UTF16_LE_READ,
UTF16_LE_READ_1,
UTF16_LE_READ_2,
UTF16_LE_READ_3,
};
static int
conv_slow(struct conv_context *c)
{
const unsigned char *s = c->source;
const unsigned char *se = c->source_end;
unsigned char *d = c->dest;
unsigned char *de = c->dest_end;
switch (c->state)
{
case SINGLE_WRITE:
if (d >= de)
goto cde;
*d++ = c->code;
break;
case SEQ_WRITE:
seq:
while (c->remains)
{
if (d >= de)
goto cde;
*d++ = *c->string_at++;
c->remains--;
}
break;
case UTF8_READ:
while (c->remains)
{
if (s >= se)
goto cse;
if ((*s & 0xc0) != 0x80)
{
c->code = 0xfffd;
break;
}
c->code = (c->code << 6) | (*s++ & 0x3f);
c->remains--;
}
if (c->code >= 0x10000)
c->code = 0xfffd;
got_char:
c->source = s;
c->state = 0;
return -1;
/* Writing of UTF-8 */
case UTF8_WRITE_START:
if (d >= de)
goto cde;
if (c->code < 0x80)
{
*d++ = c->code;
break;
}
else if (c->code < 0x800)
{
*d++ = 0xc0 | (c->code >> 6);
c->code <<= 10;
c->remains = 1;
}
else
{
*d++ = 0xe0 | (c->code >> 12);
c->code <<= 4;
c->remains = 2;
}
c->code &= 0xffff;
c->state = UTF8_WRITE_CONT;
/* fall-thru */
case UTF8_WRITE_CONT:
while (c->remains)
{
if (d >= de)
goto cde;
*d++ = 0x80 | (c->code >> 10);
c->code <<= 6;
c->remains--;
}
break;
/* Writing of UTF-16BE */
case UTF16_BE_WRITE:
{
void *p = &c->code;
c->string_at = p;
uint code = c->code;
c->string_at = p;
if (code < 0xd800 || code - 0xe000 < 0x2000)
{}
else if ((code -= 0x10000) < 0x100000)
{
put_u16_be(p, 0xd800 | (code >> 10));
put_u16_be(p + 2, 0xdc00 | (code & 0x3ff));
c->remains = 4;
c->state = SEQ_WRITE;
goto seq;
}
else
code = UNI_REPLACEMENT;
put_u16_be(p, code);
c->remains = 2;
c->state = SEQ_WRITE;
goto seq;
}
/* Writing of UTF-16LE */
case UTF16_LE_WRITE:
{
void *p = &c->code;
c->string_at = p;
uint code = c->code;
c->string_at = p;
if (code < 0xd800 || code - 0xe000 < 0x2000)
{}
else if ((code -= 0x10000) < 0x100000)
{
put_u16_le(p, 0xd800 | (code >> 10));
put_u16_le(p + 2, 0xdc00 | (code & 0x3ff));
c->remains = 4;
c->state = SEQ_WRITE;
}
else
code = UNI_REPLACEMENT;
put_u16_le(p, code);
c->remains = 2;
c->state = SEQ_WRITE;
goto seq;
}
/* Reading of UTF16-BE */
case UTF16_BE_READ:
if (s >= se)
goto cse;
c->code = *s++;
c->state = UTF16_BE_READ_1;
/* fall-thru */
case UTF16_BE_READ_1:
if (s >= se)
goto cse;
c->code = (c->code << 8) | *s++;
if (c->code - 0xd800 >= 0x800)
goto got_char;
c->code = (c->code - 0xd800) << 10;
c->state = UTF16_BE_READ_2;
/* fall-thru */
case UTF16_BE_READ_2:
if (s >= se)
goto cse;
if (*s - 0xdc >= 4)
c->code = ~0U;
else
c->code |= (*s - 0xdc) << 8;
s++;
c->state = UTF16_BE_READ_3;
/* fall-thru */
case UTF16_BE_READ_3:
if (s >= se)
goto cse;
if ((int)c->code >= 0)
c->code += 0x10000 + *s;
else
c->code = UNI_REPLACEMENT;
s++;
goto got_char;
/* Reading of UTF16-LE */
case UTF16_LE_READ:
if (s >= se)
goto cse;
c->code = *s++;
c->state = UTF16_LE_READ_1;
/* fall-thru */
case UTF16_LE_READ_1:
if (s >= se)
goto cse;
c->code |= *s++ << 8;
if (c->code - 0xd800 >= 0x800)
goto got_char;
c->code = (c->code - 0xd800) << 10;
c->state = UTF16_LE_READ_2;
/* fall-thru */
case UTF16_LE_READ_2:
if (s >= se)
goto cse;
c->code |= *s++;
c->state = UTF16_LE_READ_3;
/* fall-thru */
case UTF16_LE_READ_3:
if (s >= se)
goto cse;
if (*s - 0xdc < 4)
c->code += 0x10000 + ((*s - 0xdc) << 8);
else
c->code = UNI_REPLACEMENT;
s++;
goto got_char;
default:
ASSERT(0);
}
c->source = s;
c->dest = d;
c->state = 0;
return 0;
cse:
c->source = s;
return CONV_SOURCE_END;
cde:
c->dest = d;
return CONV_DEST_END;
}
/* Generate inlined routines */
static int
conv_std_to_utf8(struct conv_context *c)
{
#define CONV_READ_STD
#define CONV_WRITE_UTF8
#include <charset/charconv-gen.h>
}
static int
conv_utf8_to_std(struct conv_context *c)
{
#define CONV_READ_UTF8
#define CONV_WRITE_STD
#include <charset/charconv-gen.h>
}
static int
conv_std_to_utf16_be(struct conv_context *c)
{
#define CONV_READ_STD
#define CONV_WRITE_UTF16_BE
#include <charset/charconv-gen.h>
}
static int
conv_utf16_be_to_std(struct conv_context *c)
{
#define CONV_READ_UTF16_BE
#define CONV_WRITE_STD
#include <charset/charconv-gen.h>
}
static int
conv_std_to_utf16_le(struct conv_context *c)
{
#define CONV_READ_STD
#define CONV_WRITE_UTF16_LE
#include <charset/charconv-gen.h>
}
static int
conv_utf16_le_to_std(struct conv_context *c)
{
#define CONV_READ_UTF16_LE
#define CONV_WRITE_STD
#include <charset/charconv-gen.h>
}
static int
conv_utf8_to_utf16_be(struct conv_context *c)
{
#define CONV_READ_UTF8
#define CONV_WRITE_UTF16_BE
#include <charset/charconv-gen.h>
}
static int
conv_utf16_be_to_utf8(struct conv_context *c)
{
#define CONV_READ_UTF16_BE
#define CONV_WRITE_UTF8
#include <charset/charconv-gen.h>
}
static int
conv_utf8_to_utf16_le(struct conv_context *c)
{
#define CONV_READ_UTF8
#define CONV_WRITE_UTF16_LE
#include <charset/charconv-gen.h>
}
static int
conv_utf16_le_to_utf8(struct conv_context *c)
{
#define CONV_READ_UTF16_LE
#define CONV_WRITE_UTF8
#include <charset/charconv-gen.h>
}
static int
conv_utf16_be_to_utf16_le(struct conv_context *c)
{
#define CONV_READ_UTF16_BE
#define CONV_WRITE_UTF16_LE
#include <charset/charconv-gen.h>
}
static int
conv_standard(struct conv_context *c)
{
unsigned short *in_to_x = c->in_to_x;
unsigned short *x_to_out = c->x_to_out;
const unsigned char *s, *se;
unsigned char *d, *de, *k;
uint len, e;
if (unlikely(c->state))
goto slow;
main:
s = c->source;
se = c->source_end;
d = c->dest;
de = c->dest_end;
while (s < se)
{
uint code = x_to_out[in_to_x[*s]];
if (code < 0x100)
{
if (unlikely(d >= de))
goto dend;
*d++ = code;
}
else
{
k = string_table + code - 0x100;
len = *k++;
if (unlikely(d + len > de))
goto dend_str;
while (len--)
*d++ = *k++;
}
s++;
}
c->source = s;
c->dest = d;
return CONV_SOURCE_END;
dend:
c->source = s;
c->dest = d;
return CONV_DEST_END;
dend_str:
c->source = s;
c->dest = d;
c->state = SEQ_WRITE;
c->string_at = k;
c->remains = len;
slow:
e = conv_slow(c);
if (e)
return e;
goto main;
}
void
conv_set_charset(struct conv_context *c, int src, int dest)
{
c->source_charset = src;
c->dest_charset = dest;
if (src == dest)
{
c->convert = conv_none;
c->in_to_x = NULL;
c->x_to_out = NULL;
}
else
{
static uint lookup[] = {
[CONV_CHARSET_UTF8] = 1,
[CONV_CHARSET_UTF16_BE] = 2,
[CONV_CHARSET_UTF16_LE] = 3,
};
static int (*tab[4][4])(struct conv_context *c) = {
{ conv_standard, conv_std_to_utf8, conv_std_to_utf16_be, conv_std_to_utf16_le },
{ conv_utf8_to_std, conv_none, conv_utf8_to_utf16_be, conv_utf8_to_utf16_le },
{ conv_utf16_be_to_std, conv_utf16_be_to_utf8, conv_none, conv_utf16_be_to_utf16_le },
{ conv_utf16_le_to_std, conv_utf16_le_to_utf8, conv_utf16_be_to_utf16_le, conv_none },
};
uint src_idx = ((uint)src < ARRAY_SIZE(lookup)) ? lookup[src] : 0;
uint dest_idx = ((uint)dest < ARRAY_SIZE(lookup)) ? lookup[dest] : 0;
c->convert = tab[src_idx][dest_idx];
c->in_to_x = src_idx ? NULL : input_to_x[src];
c->x_to_out = dest_idx ? NULL : x_to_output[dest];
}
c->state = 0;
}
uint
conv_x_to_ucs(uint x)
{
return x_to_uni[x];
}
uint
conv_ucs_to_x(uint ucs)
{
return uni_to_x[ucs >> 8U][ucs & 0xff];
}
uint
conv_x_count(void)
{
return sizeof(x_to_uni) / sizeof(x_to_uni[0]);
}
int
conv_in_to_ucs(struct conv_context *c, uint y)
{
return x_to_uni[c->in_to_x[y]];
}
int conv_ucs_to_out(struct conv_context *c, uint ucs)
{
uint x = uni_to_x[ucs >> 8U][ucs & 0xff];
if (x == 256 || c->x_to_out[x] >= 256)
return -1;
else
return c->x_to_out[x];
}

99
libucw/charset/charconv.h

@ -0,0 +1,99 @@
/*
* Character Set Conversion Library 1.2
*
* (c) 1998--2005 Martin Mares <mj@ucw.cz>
* (c) 2007 Pavel Charvat <pchar@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#ifndef _CHARSET_CHARCONV_H
#define _CHARSET_CHARCONV_H
#ifdef CONFIG_UCW_CLEAN_ABI
#define charset_name ucw_charset_name
#define conv_in_to_ucs ucw_conv_in_to_ucs
#define conv_init ucw_conv_init
#define conv_set_charset ucw_conv_set_charset
#define conv_ucs_to_out ucw_conv_ucs_to_out
#define conv_ucs_to_x ucw_conv_ucs_to_x
#define conv_x_count ucw_conv_x_count
#define conv_x_to_ucs ucw_conv_x_to_ucs
#define find_charset_by_name ucw_find_charset_by_name
#endif
struct conv_context {
/* Parameters supplied by the caller */
const unsigned char *source; /* Current position in source buffer */
const unsigned char *source_end; /* End of source buffer */
unsigned char *dest; /* Current position in destination buffer */
unsigned char *dest_start; /* First byte of destination buffer */
unsigned char *dest_end; /* End of destination buffer */
/* Internal variables */
int (*convert)(struct conv_context *);
int source_charset, dest_charset;
unsigned short int *in_to_x;
unsigned short int *x_to_out;
uint state, code, remains;
unsigned char *string_at;
};
void conv_init(struct conv_context *);
void conv_set_charset(struct conv_context *, int, int);
#define conv_run(c) ((c)->convert(c))
#define CONV_SOURCE_END 1
#define CONV_DEST_END 2
#define CONV_SKIP 4
enum charset_id {
CONV_CHARSET_ASCII,
CONV_CHARSET_ISO_8859_1,
CONV_CHARSET_ISO_8859_2,
CONV_CHARSET_ISO_8859_3,
CONV_CHARSET_ISO_8859_4,
CONV_CHARSET_ISO_8859_5,
CONV_CHARSET_ISO_8859_6,
CONV_CHARSET_ISO_8859_7,
CONV_CHARSET_ISO_8859_8,
CONV_CHARSET_ISO_8859_9,
CONV_CHARSET_ISO_8859_10,
CONV_CHARSET_ISO_8859_11,
CONV_CHARSET_ISO_8859_13,
CONV_CHARSET_ISO_8859_14,
CONV_CHARSET_ISO_8859_15,
CONV_CHARSET_ISO_8859_16,
CONV_CHARSET_WIN1250,
CONV_CHARSET_WIN1251,
CONV_CHARSET_WIN1252,
CONV_CHARSET_KAMCS,
CONV_CHARSET_CSN369103,
CONV_CHARSET_CP852,
CONV_CHARSET_MACCE,
CONV_CHARSET_CORK,
CONV_CHARSET_UTF8,
CONV_CHARSET_UTF16_BE,
CONV_CHARSET_UTF16_LE,
CONV_NUM_CHARSETS
};
/* Conversion of a single character between current non-UTF8 charset and Unicode */
int conv_in_to_ucs(struct conv_context *c, uint y);
int conv_ucs_to_out(struct conv_context *c, uint ucs);
/* For those brave ones who want to mess with charconv internals */
uint conv_x_to_ucs(uint x);
uint conv_ucs_to_x(uint ucs);
uint conv_x_count(void);
/* Charset names */
int find_charset_by_name(const char *);
char *charset_name(int);
#endif

2350
libucw/charset/chartable.h

File diff suppressed because it is too large

113
libucw/charset/fb-charconv.c

@ -0,0 +1,113 @@
/*
* UCW Library -- Charset Conversion Wrapper for Fast Buffered I/O
*
* (c) 2003--2005 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#include <ucw/lib.h>
#include <ucw/fastbuf.h>
#include <charset/charconv.h>
#include <charset/fb-charconv.h>
#define BUFSIZE 1024
struct fb_charconv {
struct fastbuf fb;
struct fastbuf *orig;
struct conv_context ctxt;
byte buf[BUFSIZE];
};
#define FB_CC(f) ((struct fb_charconv *)(f))
static void
fb_cc_spout(struct fastbuf *f)
{
struct conv_context *ct = &FB_CC(f)->ctxt;
int flags;
ct->source = f->buffer;
ct->source_end = f->bptr;
do
{
flags = conv_run(ct);
if (ct->dest > ct->dest_start)
bdirect_write_commit(FB_CC(f)->orig, ct->dest);
uint l = bdirect_write_prepare(FB_CC(f)->orig, &ct->dest_start);
ct->dest = ct->dest_start;
ct->dest_end = ct->dest + l;
}
while (!(flags & CONV_SOURCE_END));
f->bptr = f->buffer;
}
static int
fb_cc_refill(struct fastbuf *f)
{
struct conv_context *ct = &FB_CC(f)->ctxt;
int flags;
f->bptr = f->bstop = f->buffer;
do
{
byte *src;
uint len = bdirect_read_prepare(FB_CC(f)->orig, &src);
if (!len)
break;
ct->source = src;
ct->source_end = ct->source + len;
ct->dest = ct->dest_start = f->bstop;
ct->dest_end = f->bufend;
flags = conv_run(ct);
bdirect_read_commit(FB_CC(f)->orig, (byte*)ct->source);
f->bstop = ct->dest;
}
while (!(flags & CONV_DEST_END));
return (f->bstop > f->bptr);
}
static void
fb_cc_close(struct fastbuf *f)
{
bflush(FB_CC(f)->orig);
xfree(f);
}
struct fastbuf *
fb_wrap_charconv_out(struct fastbuf *f, int cs_from, int cs_to)
{
if (cs_from == cs_to)
return f;
struct fastbuf *g = xmalloc_zero(sizeof(struct fb_charconv));
FB_CC(g)->orig = f;
conv_init(&FB_CC(g)->ctxt);
conv_set_charset(&FB_CC(g)->ctxt, cs_from, cs_to);
g->name = "<charconv-out>";
g->spout = fb_cc_spout;
g->close = fb_cc_close;
g->buffer = g->bstop = g->bptr = FB_CC(g)->buf;
g->bufend = g->buffer + BUFSIZE;
return g;
}
struct fastbuf *
fb_wrap_charconv_in(struct fastbuf *f, int cs_from, int cs_to)
{
if (cs_from == cs_to)
return f;
struct fastbuf *g = xmalloc_zero(sizeof(struct fb_charconv));
FB_CC(g)->orig = f;
conv_init(&FB_CC(g)->ctxt);
conv_set_charset(&FB_CC(g)->ctxt, cs_from, cs_to);
g->name = "<charconv-in>";
g->refill = fb_cc_refill;
g->close = fb_cc_close;
g->buffer = g->bstop = g->bptr = FB_CC(g)->buf;
g->bufend = g->buffer + BUFSIZE;
return g;
}

16
libucw/charset/fb-charconv.h

@ -0,0 +1,16 @@
/*
* UCW Library -- Charset Conversion Wrapper for Fast Buffered I/O
*
* (c) 2003--2005 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#ifdef CONFIG_UCW_CLEAN_ABI
#define fb_wrap_charconv_in ucw_fb_wrap_charconv_in
#define fb_wrap_charconv_out ucw_fb_wrap_charconv_out
#endif
struct fastbuf *fb_wrap_charconv_in(struct fastbuf *f, int cs_from, int cs_to);
struct fastbuf *fb_wrap_charconv_out(struct fastbuf *f, int cs_from, int cs_to);

11
libucw/charset/libucw-charset.pc

@ -0,0 +1,11 @@
# pkg-config metadata for libucw-charset
libdir=@LIBDIR@
incdir=.
Name: libucw-charset
Description: Character set conversion library
Version: @UCW_VERSION@
Cflags: -I${incdir}
Libs: -L${libdir} @SO_LINK_PATH@ -lucw-charset@UCW_ABI_SUFFIX@
Requires.private: @DEPS@

19
libucw/charset/misc/add-charnames

@ -0,0 +1,19 @@
#!/usr/bin/perl
#
# Add Unicode Character Names to a character set table file
# (c) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
#
open (UNI, "unidata/UnicodeData.txt") || die "No Unicode Data File";
while (<UNI>) {
($num,$name) = split /;/;
$name{$num} = $name;
}
close UNI;
while (<>) {
($code,$uni) = split /[ \t\n]+/;
$name = $name{$uni};
($name eq "") && ($name = "????");
print "$code\t$uni\t$name\n";
}

30
libucw/charset/misc/chartable.in

@ -0,0 +1,30 @@
# List of character set tables for tabgen
# Ordering defines internal charset numbers
# Remember to change charconv.h and setnames.c accordingly!
set/ascii
set/8859-1
set/8859-2
set/8859-3
set/8859-4
set/8859-5
set/8859-6
set/8859-7
set/8859-8
set/8859-9
set/8859-10
set/8859-11
set/8859-13
set/8859-14
set/8859-15
set/8859-16
set/win-1250
set/win-1251
set/win-1252
set/kamen-ctrl
set/koi8
set/pc-latin-2
set/macce
set/cork
#set/ibm-ctrl
#set/mac

36
libucw/charset/misc/gen-basic

@ -0,0 +1,36 @@
#!/usr/bin/perl
#
# Split Unicode Data File
# (c) 1997--2003 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
#
open(I, "unidata/UnicodeData.txt") || die "Unable to open UniCode data file";
open(C, ">misc/u-cat") || die "cat file open";
open(U, ">misc/u-upper") || die "upper file open";
open(L, ">misc/u-lower") || die "lower file open";
open(G, ">misc/u-ligatures") || die "lig file open";
while (<I>) {
chomp;
(/^$/ || /^#/) && next;
($code,$name,$cat,$comb,$bidir,$decomp,$d0,$d1,$n0,$mirr,$cmt1,$cmt2,$upper,$lower,$title) = split /;/;
$code =~ /^....$/ || next;
if ($cat =~ /^C/) { $ccat = "_U_CTRL"; }
elsif ($cat =~ /^Z/) { $ccat = "_U_SPACE"; }
elsif ($decomp =~ /<compat>/ && $name =~ / LIGATURE /) {
$ccat = "_U_LIGATURE";
print G "$code\n";
} elsif ($cat =~ /^Ll/) { $ccat = "_U_LLOWER"; }
elsif ($cat =~ /^Lu/) { $ccat = "_U_LUPPER"; }
elsif ($cat =~ /^L/) { $ccat = "_U_LETTER"; }
elsif ($code ge "0030" && $code le "0039") { $ccat = "_U_DIGIT | _U_XDIGIT"; }
else { $ccat = ""; }
if ($code ge "0041" && $code le "0046" || $code ge "0061" && $code le "0066") { $ccat = $ccat . "|_U_XDIGIT"; }
if ($ccat ne "") { print C "$code\t$ccat\n"; }
if ($upper ne "") { print U "$code\t0x$upper\n"; }
if ($lower ne "") { print L "$code\t0x$lower\n"; }
}
close I;
close C;
close U;
close L;
close G;

194
libucw/charset/misc/gen-charconv

@ -0,0 +1,194 @@
#!/usr/bin/perl
#
# Character Set Table Generator 1.0
# (c) 1998 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
#
# This program can be freely distributed and used according to the terms
# of the GNU General Public License.
#
# Internal codes 0..255 are mapped to UniCode 0..255
# Internal code 256 is the replacement character (U#FFFD)
$ncs = 0;
print "/* Generated by tabgen 1.0, please don't edit manually. */\n\n";
print STDERR "Charset list...\n";
while (<>) {
chomp;
(/^\w*$/ || /^#/) && next;
$charsets[$ncs++] = $_;
}
print STDERR "Found $ncs charsets, counting unique codes...\n";
for($unique=0; $unique<256; $unique++) {
$u2x{$unique} = $unique;
$x2u[$unique] = $unique;
}
$u2x{0xFFFD} = $unique;
$x2u[$unique++] = 0xFFFD;
print "static unsigned short int input_to_x[$ncs][256] = {\n";
for($x=0; $x<$ncs; $x++) {
$a = $charsets[$x];
print "\n/* $a */\n{\n";
open (A, $a) || die "Error opening $a";
while (<A>) {
chomp;
(/^\w*$/ || /^#/) && next;
($i, $u, $c) = split /\t/;
$cc[$x][hex $i] = $u;
}
close A;
for($i=0; $i<256; $i++) {
$u = hex((defined $cc[$x][$i]) ? $cc[$x][$i] : "FFFD");
if (!defined $u2x{$u}) {
$x2u[$unique] = $u;
$u2x{$u} = $unique++;
}
$o = $u2x{$u};
print "$o,", ($i % 16 == 15) ? "\n" : " ";
$cc[$x][$i] = $o;
$cx[$x]{$o} = $i;
}
print "},\n";
}
print "};\n\n";
print STDERR "$unique unique codes...\n";
print "static unsigned short int x_to_uni[$unique] = {\n";
for($i=0; $i<$unique; $i++) {
print "$x2u[$i],", ($i % 16 == 15) ? "\n" : " ";
}
if ($i % 16) { print "\n"; }
print "};\n\n";
print STDERR "UNICODE table...\n";
for($i=0; $i<$unique; $i++) {
$u = $x2u[$i];
$p = $u / 256;
$pg[$p] = 1;
}
for($i=0; $i<256; $i++) {
if ($pg[$i]) {
print "static unsigned short int uni_to_x_$i\[256\] = {\n";
for($j=0; $j<256; $j++) {
$u = 256*$i + $j;
$u = defined($u2x{$u}) ? $u2x{$u} : 256;
print "$u,", ($j % 16 == 15) ? "\n" : " ";
}
print "};\n\n";
}
}
print "static unsigned short int *uni_to_x[256] = {\n";
for($i=hex "FF00"; $i<=hex "FFFF"; $i++) {
if (defined $u2x{$i} && $i != 0xFFFD) { die "Invalid replacement strategy!"; }
}
for($i=0; $i<256; $i++) {
print "uni_to_x_", $pg[$i] ? $i : "255", ",", ($i % 4 == 3) ? "\n" : " ";
}
print "};\n\n";
print STDERR "UniData file...\n";
open (U, "unidata/UnicodeData.txt") || die "No UnicodeData file";
while (<U>) {
chomp;
($num,$name,$_,$_,$_,$exp) = split /;/;
if ($exp ne "") {
$exp =~ s/^<.*> *//g;
$a = "";
foreach $x (split (/ /, $exp)) {
if ($x ne "0020") {
$a = $a . " " . hex $x;
}
}
($expand{hex $num} = $a) =~ s/^ //;
}
}
close U;
print STDERR "Accent rules\n";
if (open(ACC, "misc/user_unacc")) {
while (<ACC>) {
chomp;
(/^\s*$/ || /^#/) && next;
s/0x([0-9a-zA-Z]+)/hex($1)/ge;
(/^(\d+)\s+(\d+)$/) || die "Syntax error in user accent rules";
$expand{$1} = $2;
}
close ACC;
}
print STDERR "Character expansions\n";
if (open(EXTRA, "misc/user_expand")) {
while (<EXTRA>) {
chomp;
(/^\s*$/ || /^#/) && next;
s/0x([0-9a-zA-Z]+)/hex($1)/ge;
(/^(\d+)\s+(.*)$/) || die "Syntax error in user expansions";
$expand{$1} = $2;
}
close EXTRA;
}
print "static unsigned short int x_to_output[$ncs][$unique] = {\n";
$pstr = 256;
for($c=0; $c<$ncs; $c++) {
print "\n/* $charsets[$c] */\n{\n";
for($i=0; $i<$unique; $i++) {
$u = $x2u[$i];
do {
$r = $u;
$u = "";
foreach $x (split (/ /, $r)) {
if (defined($k = $u2x{$x}) && defined $cx[$c]{$k}) {
$u = "$u $x";
} elsif (defined($k = $expand{$x})) {
$u = "$u $k";
}
}
$u =~ s/^ //;
} while ($r ne $u);
$u = "";
foreach $x (split (/ /, $r)) {
if (defined($k = $u2x{$x})) {
if ($k != 256 && defined ($k = $cx[$c]{$k})) {
$u = $u . pack("C", $k);
}
}
}
if (length($u) == 1) {
$z = unpack("C", $u);
} else {
if (!defined($string{$u})) {
$string{$u} = $pstr;
$strval{$pstr} = $u;
$pstr += 1 + length($u);
}
$z = $string{$u};
}
print "$z,", ($i % 16 == 15) ? "\n" : " ";
}
if ($i % 16) { print "\n"; }
print "},\n";
}
print "};\n\n";
print STDERR "And Tubular Bells...\n";
print "static unsigned char string_table[] = {\n";
$i = 256;
while ($i < $pstr) {
$w = $strval{$i};
print length $w, ",";
foreach $x (unpack("C256", $w)) {
print " $x,";
}
print "\n";
$i += 1 + length $w;
}
print "};\n";
print STDERR "Done.\n";

73
libucw/charset/misc/gen-ligatures

@ -0,0 +1,73 @@
#!/usr/bin/perl
#
# Generate Expansion Table of Compatibility Ligatures
# (c) 2003 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
#
use strict;
use warnings;
print STDERR "Reading ligature list\n";
open(L, "misc/u-ligatures") || die "lig file open";
my %ligs = ();
while (<L>) {
chomp;
$ligs{$_} = 1;
}
close L;
print STDERR "Reading decompositions\n";
open(I, "unidata/UnicodeData.txt") || die "Unable to open UniCode data file";
my %decs = ();
while (<I>) {
chomp;
(/^$/ || /^#/) && next;
my ($code,$name,$cat,$comb,$bidir,$decomp,$d0,$d1,$n0,$mirr,$cmt1,$cmt2,$upper,$lower,$title) = split /;/;
$code =~ /^....$/ || next;
if (my ($d) = ($decomp =~ /^<compat> (.*)/)) {
$decs{$code} = $d;
}
}
close I;
sub expand($) {
my ($c) = @_;
if (defined $decs{$c}) {
return join (" ", map { expand($_) } split(/\s+/, $decs{$c}));
} else {
return $c;
}
}
print STDERR "Searching for a perfect hash function\n";
my $n = keys %ligs;
my $div = $n-1;
DIV: while (++$div) {
#print STDERR "Trying $div... ";
my @c = ();
foreach my $l (keys %ligs) {
my $i = (hex $l) % $div;
if (defined $c[$i]) {
#print STDERR "collision\n";
next DIV;
}
$c[$i] = 1;
}
#print STDERR "FOUND\n";
last;
}
print STDERR "Filling hash table with $div entries for $n ligatures\n";
my @ht = map { "NULL" } 1..$div;
foreach my $l (keys %ligs) {
my $i = (hex $l) % $div;
my $w = join(", ", map { "0x$_" } split(/ /, expand($l)));
$ht[$i] = "/* $l */ (const u16 []) { $w, 0 }";
}
print "#define LIG_HASH_SIZE $div\n\n";
print "static const u16 *_U_lig_hash[] = {\n";
for (my $i=0; $i<$div; $i++) {
print "\t", $ht[$i], ",\n";
}
print "};\n";

35
libucw/charset/misc/gen-unacc

@ -0,0 +1,35 @@
#!/usr/bin/perl
#
# Create Unicode Unaccenting Table
# (c) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
#
open (UNI, "unidata/UnicodeData.txt") || die "No Unicode Data File";
while (<UNI>) {
chomp;
($num,$name,$cat,$_,$_,$exp) = split /;/;
if ($cat =~ /^L[ul]$/) { $letter{$num} = 1; }
if ($cat =~ /^Mn$/) { $accent{$num} = 1; }
}
close UNI;
open (UNI, "unidata/UnicodeData.txt") || die "No Unicode Data File";
while (<UNI>) {
chomp;
($num,$name,$cat,$_,$_,$exp) = split /;/;
$num =~ /^....$/ || next;
if ($exp ne "") {
$exp =~ s/^<.*> *//g;
$good = 1;
$e = "";
foreach $a (split(/\s+/, $exp)) {
if ($accent{$a}) { }
elsif ($letter{$a}) {
if ($e ne "") { $good = 0; }
else { $e = $a; }
} else { $good = 0; }
}
if ($good && $e ne "") { print "$num\t0x$e\n"; }
}
}
close UNI;

14
libucw/charset/misc/generate

@ -0,0 +1,14 @@
#!/bin/sh
# Generate all data files for the charset conversion library
# (c) 2001--2003 Martin Mares <mj@ucw.cz>
set -ex
rm -f U-*.h chartable.h misc/u-*
misc/gen-basic
misc/table2h _U_cat byte <misc/u-cat >U-cat.h
misc/table2h _U_lower u16 <misc/u-lower >U-lower.h
misc/table2h _U_upper u16 <misc/u-upper >U-upper.h
( cat misc/user_unacc && misc/gen-unacc ) >misc/u-unacc
misc/table2h _U_unaccent u16 <misc/u-unacc >U-unacc.h
misc/gen-ligatures >U-ligatures.h
misc/gen-charconv <misc/chartable.in >chartable.h

33
libucw/charset/misc/import-recode

@ -0,0 +1,33 @@
#!/usr/bin/perl
#
# Use `recode` to create a translation table
# (c) 2003, Robert Spalek <robert@ucw.cz>
#
use open IN => ":utf8";
foreach $charset (@ARGV)
{
print "Charset: $charset\n";
open(fi, "recode -s -f $charset/..utf-8/ <tmp/tab256 |") || die "Recoding error";
open(fo, "| ./mkuni >tmp/$charset") || die;
while (<fi>)
{
chop;
(($number, $char) = /^([0-9A-F]{2})\t(.?)$/) || die "Cannot parse $_";
$recode[hex $number] = $char ne "" ? ord $char : -1;
}
$#recode >= 0 || die "Empty recoding table";
$recode[10] = 10;
$recode[13] = 13;
for ($i=0; $i<=$#recode; $i++)
{
printf fo "%02X\t%04X\n", $i, $recode[$i]
if $recode[$i] >= 0;
}
close(fo);
close(fi);
}

28
libucw/charset/misc/import-unicode_org

@ -0,0 +1,28 @@
#!/usr/bin/perl
# Import charset tables from ftp.unicode.org
# (c) 2003, Robert Spalek <robert@ucw.cz>
foreach $file (@ARGV)
{
print "Converting $file\n";
($prefix, $filename) = $file =~ m|^(.*/)([^/]*)$|;
open(fi, "<$file") || die;
open(fo, ">$file-tr") || die;
print fo "# $filename charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/$file
# (c) 2003, Robert Spalek <robert\@ucw.cz>
";
while (<fi>)
{
next if /^#/;
chop;
if (($code, $unicode, $comment) = /^0x(..)\t0x(....)\t#\t?(.*)$/)
{
print fo "$code\t$unicode\t$comment\n";
}
}
close(fo);
close(fi);
}

15
libucw/charset/misc/mktab256

@ -0,0 +1,15 @@
#!/usr/bin/perl
#
# Simply create a table of all 256 characters
# (c) 2003, Robert Spalek <robert@ucw.cz>
#
use open OUT => ":raw";
open(fo, '>tmp/tab256') || die;
for ($i=0; $i<256; $i++)
{
next if $i==10 || $i==13;
printf fo "%02X\t%c\n", $i, $i;
}
close(fo);

47
libucw/charset/misc/table2h

@ -0,0 +1,47 @@
#!/usr/bin/perl
#
# Generate C Language Table for UniCode Data
# (c) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
#
$name=$ARGV[0];
$type=$ARGV[1];
while (<STDIN>) {
chomp;
/^#/ && next;
/^\s*$/ && next;
s/^0x//;
($i,$j) = split/\s+/;
($i =~ /^(..)(..)$/) || die "Syntax error at $i";
$table{$1} = "$name" . "_$1";
die if defined $val{$i};
$val{$i} = $j;
}
print "/* Generated automatically by gentab. Please don't edit. */\n\n";
for($i=0; $i<256; $i++) {
$x = sprintf("%02X", $i);
if (defined($table{$x})) {
print "static const $type $table{$x}\[256\] = \{\n";
for($j=0; $j<256; $j++) {
$y = $x . sprintf("%02X", $j);
if ($val{$y}) { print $val{$y}; }
else { print "0"; }
if ($j != 255) { print ","; }
if ($j % 16 == 15) { print "\n"; }
}
print "\};\n\n";
}
}
print "const $type \*$name\[256\] = \{\n";
for($j=0; $j<256; $j++) {
$y = sprintf("%02X", $j);
if (defined $table{$y}) { print $table{$y}; }
else { print "NULL"; }
if ($j != 255) { print ","; }
if ($j % 16 == 15) { print "\n"; }
}
print "\};\n";

8
libucw/charset/misc/user_expand

@ -0,0 +1,8 @@
# User-defined character expansions
# Fraction slash
0x2044 0x002f
# `ae' and `AE'
0x00c6 0x0041 0x0045
0x00e6 0x0061 0x0065

22
libucw/charset/misc/user_unacc

@ -0,0 +1,22 @@
# User-defined unaccenting rules
# Stroked letters
0x00d8 0x004f
0x00f8 0x006f
0x0110 0x0044
0x0111 0x0064
0x0126 0x0048
0x0127 0x0068
0x0141 0x004c
0x0142 0x006c
0x0166 0x0054
0x0167 0x0074
0x0180 0x0042
0x0197 0x0049
0x01b5 0x005a
0x01b6 0x007a
0x01e4 0x0047
0x01e5 0x0067
0x01fe 0x004f
0x01ff 0x006f
0x0268 0x0069

50
libucw/charset/mp-charconv.c

@ -0,0 +1,50 @@
/*
* UCW Library -- Character Conversion with Allocation on a Memory Pool
*
* (c) 2006 Pavel Charvat <pchar@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#include <ucw/lib.h>
#include <charset/mp-charconv.h>
#include <string.h>
#include <alloca.h>
byte *
mp_strconv(struct mempool *mp, const byte *s, uint in_cs, uint out_cs)
{
if (in_cs == out_cs)
return mp_strdup(mp, s);
struct conv_context c;
char *b[32];
uint bs[32], n = 0, sum = 0;
uint l = strlen(s) + 1;
conv_init(&c);
conv_set_charset(&c, in_cs, out_cs);
c.source = s;
c.source_end = s + l;
for (;;)
{
l <<= 1;
c.dest_start = c.dest = b[n] = alloca(l);
c.dest_end = c.dest_start+ l;
uint r = conv_run(&c);
sum += bs[n++] = c.dest - c.dest_start;
if (r & CONV_SOURCE_END)
{
c.dest_start = c.dest = mp_alloc(mp, sum);
for (uint i = 0; i < n; i++)
{
memcpy(c.dest, b[i], bs[i]);
c.dest += bs[i];
}
return c.dest_start;
}
}
}

28
libucw/charset/mp-charconv.h

@ -0,0 +1,28 @@
/*
* UCW Library -- Character Conversion with Allocation on a Memory Pool
*
* (c) 2006 Pavel Charvat <pchar@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#ifndef _CHARSET_MP_CHARCONV_H
#define _CHARSET_MP_CHARCONV_H
#include <ucw/mempool.h>
#include <charset/charconv.h>
#ifdef CONFIG_UCW_CLEAN_ABI
#define mp_strconv ucw_mp_strconv
#endif
byte *mp_strconv(struct mempool *mp, const byte *s, uint cs_in, uint cs_out);
static inline byte *mp_strconv_to_utf8(struct mempool *mp, const byte *s, uint cs_in)
{ return mp_strconv(mp, s, cs_in, CONV_CHARSET_UTF8); }
static inline byte *mp_strconv_from_utf8(struct mempool *mp, const byte *s, uint cs_out)
{ return mp_strconv(mp, s, CONV_CHARSET_UTF8, cs_out); }
#endif

260
libucw/charset/set/8859-1

@ -0,0 +1,260 @@
# 8859-1.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 00A1 INVERTED EXCLAMATION MARK
A2 00A2 CENT SIGN
A3 00A3 POUND SIGN
A4 00A4 CURRENCY SIGN
A5 00A5 YEN SIGN
A6 00A6 BROKEN BAR
A7 00A7 SECTION SIGN
A8 00A8 DIAERESIS
A9 00A9 COPYRIGHT SIGN
AA 00AA FEMININE ORDINAL INDICATOR
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 00AC NOT SIGN
AD 00AD SOFT HYPHEN
AE 00AE REGISTERED SIGN
AF 00AF MACRON
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 00B2 SUPERSCRIPT TWO
B3 00B3 SUPERSCRIPT THREE
B4 00B4 ACUTE ACCENT
B5 00B5 MICRO SIGN
B6 00B6 PILCROW SIGN
B7 00B7 MIDDLE DOT
B8 00B8 CEDILLA
B9 00B9 SUPERSCRIPT ONE
BA 00BA MASCULINE ORDINAL INDICATOR
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 00BC VULGAR FRACTION ONE QUARTER
BD 00BD VULGAR FRACTION ONE HALF
BE 00BE VULGAR FRACTION THREE QUARTERS
BF 00BF INVERTED QUESTION MARK
C0 00C0 LATIN CAPITAL LETTER A WITH GRAVE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 00C3 LATIN CAPITAL LETTER A WITH TILDE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 00C6 LATIN CAPITAL LETTER AE
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 00C8 LATIN CAPITAL LETTER E WITH GRAVE
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 00CC LATIN CAPITAL LETTER I WITH GRAVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
D0 00D0 LATIN CAPITAL LETTER ETH (Icelandic)
D1 00D1 LATIN CAPITAL LETTER N WITH TILDE
D2 00D2 LATIN CAPITAL LETTER O WITH GRAVE
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 00D5 LATIN CAPITAL LETTER O WITH TILDE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 00D7 MULTIPLICATION SIGN
D8 00D8 LATIN CAPITAL LETTER O WITH STROKE
D9 00D9 LATIN CAPITAL LETTER U WITH GRAVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 00DD LATIN CAPITAL LETTER Y WITH ACUTE
DE 00DE LATIN CAPITAL LETTER THORN (Icelandic)
DF 00DF LATIN SMALL LETTER SHARP S (German)
E0 00E0 LATIN SMALL LETTER A WITH GRAVE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 00E3 LATIN SMALL LETTER A WITH TILDE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 00E5 LATIN SMALL LETTER A WITH RING ABOVE
E6 00E6 LATIN SMALL LETTER AE
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 00E8 LATIN SMALL LETTER E WITH GRAVE
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 00EC LATIN SMALL LETTER I WITH GRAVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 00EF LATIN SMALL LETTER I WITH DIAERESIS
F0 00F0 LATIN SMALL LETTER ETH (Icelandic)
F1 00F1 LATIN SMALL LETTER N WITH TILDE
F2 00F2 LATIN SMALL LETTER O WITH GRAVE
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 00F5 LATIN SMALL LETTER O WITH TILDE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 00F7 DIVISION SIGN
F8 00F8 LATIN SMALL LETTER O WITH STROKE
F9 00F9 LATIN SMALL LETTER U WITH GRAVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 00FD LATIN SMALL LETTER Y WITH ACUTE
FE 00FE LATIN SMALL LETTER THORN (Icelandic)
FF 00FF LATIN SMALL LETTER Y WITH DIAERESIS

260
libucw/charset/set/8859-10

@ -0,0 +1,260 @@
# 8859-10.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-10.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 0104 LATIN CAPITAL LETTER A WITH OGONEK
A2 0112 LATIN CAPITAL LETTER E WITH MACRON
A3 0122 LATIN CAPITAL LETTER G WITH CEDILLA
A4 012A LATIN CAPITAL LETTER I WITH MACRON
A5 0128 LATIN CAPITAL LETTER I WITH TILDE
A6 0136 LATIN CAPITAL LETTER K WITH CEDILLA
A7 00A7 SECTION SIGN
A8 013B LATIN CAPITAL LETTER L WITH CEDILLA
A9 0110 LATIN CAPITAL LETTER D WITH STROKE
AA 0160 LATIN CAPITAL LETTER S WITH CARON
AB 0166 LATIN CAPITAL LETTER T WITH STROKE
AC 017D LATIN CAPITAL LETTER Z WITH CARON
AD 00AD SOFT HYPHEN
AE 016A LATIN CAPITAL LETTER U WITH MACRON
AF 014A LATIN CAPITAL LETTER ENG
B0 00B0 DEGREE SIGN
B1 0105 LATIN SMALL LETTER A WITH OGONEK
B2 0113 LATIN SMALL LETTER E WITH MACRON
B3 0123 LATIN SMALL LETTER G WITH CEDILLA
B4 012B LATIN SMALL LETTER I WITH MACRON
B5 0129 LATIN SMALL LETTER I WITH TILDE
B6 0137 LATIN SMALL LETTER K WITH CEDILLA
B7 00B7 MIDDLE DOT
B8 013C LATIN SMALL LETTER L WITH CEDILLA
B9 0111 LATIN SMALL LETTER D WITH STROKE
BA 0161 LATIN SMALL LETTER S WITH CARON
BB 0167 LATIN SMALL LETTER T WITH STROKE
BC 017E LATIN SMALL LETTER Z WITH CARON
BD 2015 HORIZONTAL BAR
BE 016B LATIN SMALL LETTER U WITH MACRON
BF 014B LATIN SMALL LETTER ENG
C0 0100 LATIN CAPITAL LETTER A WITH MACRON
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 00C3 LATIN CAPITAL LETTER A WITH TILDE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 00C6 LATIN CAPITAL LETTER AE
C7 012E LATIN CAPITAL LETTER I WITH OGONEK
C8 010C LATIN CAPITAL LETTER C WITH CARON
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 0118 LATIN CAPITAL LETTER E WITH OGONEK
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 0116 LATIN CAPITAL LETTER E WITH DOT ABOVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
D0 00D0 LATIN CAPITAL LETTER ETH (Icelandic)
D1 0145 LATIN CAPITAL LETTER N WITH CEDILLA
D2 014C LATIN CAPITAL LETTER O WITH MACRON
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 00D5 LATIN CAPITAL LETTER O WITH TILDE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 0168 LATIN CAPITAL LETTER U WITH TILDE
D8 00D8 LATIN CAPITAL LETTER O WITH STROKE
D9 0172 LATIN CAPITAL LETTER U WITH OGONEK
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 00DD LATIN CAPITAL LETTER Y WITH ACUTE
DE 00DE LATIN CAPITAL LETTER THORN (Icelandic)
DF 00DF LATIN SMALL LETTER SHARP S (German)
E0 0101 LATIN SMALL LETTER A WITH MACRON
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 00E3 LATIN SMALL LETTER A WITH TILDE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 00E5 LATIN SMALL LETTER A WITH RING ABOVE
E6 00E6 LATIN SMALL LETTER AE
E7 012F LATIN SMALL LETTER I WITH OGONEK
E8 010D LATIN SMALL LETTER C WITH CARON
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 0119 LATIN SMALL LETTER E WITH OGONEK
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 0117 LATIN SMALL LETTER E WITH DOT ABOVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 00EF LATIN SMALL LETTER I WITH DIAERESIS
F0 00F0 LATIN SMALL LETTER ETH (Icelandic)
F1 0146 LATIN SMALL LETTER N WITH CEDILLA
F2 014D LATIN SMALL LETTER O WITH MACRON
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 00F5 LATIN SMALL LETTER O WITH TILDE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 0169 LATIN SMALL LETTER U WITH TILDE
F8 00F8 LATIN SMALL LETTER O WITH STROKE
F9 0173 LATIN SMALL LETTER U WITH OGONEK
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 00FD LATIN SMALL LETTER Y WITH ACUTE
FE 00FE LATIN SMALL LETTER THORN (Icelandic)
FF 0138 LATIN SMALL LETTER KRA

252
libucw/charset/set/8859-11

@ -0,0 +1,252 @@
# 8859-11.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-11.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 0E01 THAI CHARACTER KO KAI
A2 0E02 THAI CHARACTER KHO KHAI
A3 0E03 THAI CHARACTER KHO KHUAT
A4 0E04 THAI CHARACTER KHO KHWAI
A5 0E05 THAI CHARACTER KHO KHON
A6 0E06 THAI CHARACTER KHO RAKHANG
A7 0E07 THAI CHARACTER NGO NGU
A8 0E08 THAI CHARACTER CHO CHAN
A9 0E09 THAI CHARACTER CHO CHING
AA 0E0A THAI CHARACTER CHO CHANG
AB 0E0B THAI CHARACTER SO SO
AC 0E0C THAI CHARACTER CHO CHOE
AD 0E0D THAI CHARACTER YO YING
AE 0E0E THAI CHARACTER DO CHADA
AF 0E0F THAI CHARACTER TO PATAK
B0 0E10 THAI CHARACTER THO THAN
B1 0E11 THAI CHARACTER THO NANGMONTHO
B2 0E12 THAI CHARACTER THO PHUTHAO
B3 0E13 THAI CHARACTER NO NEN
B4 0E14 THAI CHARACTER DO DEK
B5 0E15 THAI CHARACTER TO TAO
B6 0E16 THAI CHARACTER THO THUNG
B7 0E17 THAI CHARACTER THO THAHAN
B8 0E18 THAI CHARACTER THO THONG
B9 0E19 THAI CHARACTER NO NU
BA 0E1A THAI CHARACTER BO BAIMAI
BB 0E1B THAI CHARACTER PO PLA
BC 0E1C THAI CHARACTER PHO PHUNG
BD 0E1D THAI CHARACTER FO FA
BE 0E1E THAI CHARACTER PHO PHAN
BF 0E1F THAI CHARACTER FO FAN
C0 0E20 THAI CHARACTER PHO SAMPHAO
C1 0E21 THAI CHARACTER MO MA
C2 0E22 THAI CHARACTER YO YAK
C3 0E23 THAI CHARACTER RO RUA
C4 0E24 THAI CHARACTER RU
C5 0E25 THAI CHARACTER LO LING
C6 0E26 THAI CHARACTER LU
C7 0E27 THAI CHARACTER WO WAEN
C8 0E28 THAI CHARACTER SO SALA
C9 0E29 THAI CHARACTER SO RUSI
CA 0E2A THAI CHARACTER SO SUA
CB 0E2B THAI CHARACTER HO HIP
CC 0E2C THAI CHARACTER LO CHULA
CD 0E2D THAI CHARACTER O ANG
CE 0E2E THAI CHARACTER HO NOKHUK
CF 0E2F THAI CHARACTER PAIYANNOI
D0 0E30 THAI CHARACTER SARA A
D1 0E31 THAI CHARACTER MAI HAN-AKAT
D2 0E32 THAI CHARACTER SARA AA
D3 0E33 THAI CHARACTER SARA AM
D4 0E34 THAI CHARACTER SARA I
D5 0E35 THAI CHARACTER SARA II
D6 0E36 THAI CHARACTER SARA UE
D7 0E37 THAI CHARACTER SARA UEE
D8 0E38 THAI CHARACTER SARA U
D9 0E39 THAI CHARACTER SARA UU
DA 0E3A THAI CHARACTER PHINTHU
DF 0E3F THAI CURRENCY SYMBOL BAHT
E0 0E40 THAI CHARACTER SARA E
E1 0E41 THAI CHARACTER SARA AE
E2 0E42 THAI CHARACTER SARA O
E3 0E43 THAI CHARACTER SARA AI MAIMUAN
E4 0E44 THAI CHARACTER SARA AI MAIMALAI
E5 0E45 THAI CHARACTER LAKKHANGYAO
E6 0E46 THAI CHARACTER MAIYAMOK
E7 0E47 THAI CHARACTER MAITAIKHU
E8 0E48 THAI CHARACTER MAI EK
E9 0E49 THAI CHARACTER MAI THO
EA 0E4A THAI CHARACTER MAI TRI
EB 0E4B THAI CHARACTER MAI CHATTAWA
EC 0E4C THAI CHARACTER THANTHAKHAT
ED 0E4D THAI CHARACTER NIKHAHIT
EE 0E4E THAI CHARACTER YAMAKKAN
EF 0E4F THAI CHARACTER FONGMAN
F0 0E50 THAI DIGIT ZERO
F1 0E51 THAI DIGIT ONE
F2 0E52 THAI DIGIT TWO
F3 0E53 THAI DIGIT THREE
F4 0E54 THAI DIGIT FOUR
F5 0E55 THAI DIGIT FIVE
F6 0E56 THAI DIGIT SIX
F7 0E57 THAI DIGIT SEVEN
F8 0E58 THAI DIGIT EIGHT
F9 0E59 THAI DIGIT NINE
FA 0E5A THAI CHARACTER ANGKHANKHU
FB 0E5B THAI CHARACTER KHOMUT

260
libucw/charset/set/8859-13

@ -0,0 +1,260 @@
# 8859-13.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-13.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 201D RIGHT DOUBLE QUOTATION MARK
A2 00A2 CENT SIGN
A3 00A3 POUND SIGN
A4 00A4 CURRENCY SIGN
A5 201E DOUBLE LOW-9 QUOTATION MARK
A6 00A6 BROKEN BAR
A7 00A7 SECTION SIGN
A8 00D8 LATIN CAPITAL LETTER O WITH STROKE
A9 00A9 COPYRIGHT SIGN
AA 0156 LATIN CAPITAL LETTER R WITH CEDILLA
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 00AC NOT SIGN
AD 00AD SOFT HYPHEN
AE 00AE REGISTERED SIGN
AF 00C6 LATIN CAPITAL LETTER AE
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 00B2 SUPERSCRIPT TWO
B3 00B3 SUPERSCRIPT THREE
B4 201C LEFT DOUBLE QUOTATION MARK
B5 00B5 MICRO SIGN
B6 00B6 PILCROW SIGN
B7 00B7 MIDDLE DOT
B8 00F8 LATIN SMALL LETTER O WITH STROKE
B9 00B9 SUPERSCRIPT ONE
BA 0157 LATIN SMALL LETTER R WITH CEDILLA
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 00BC VULGAR FRACTION ONE QUARTER
BD 00BD VULGAR FRACTION ONE HALF
BE 00BE VULGAR FRACTION THREE QUARTERS
BF 00E6 LATIN SMALL LETTER AE
C0 0104 LATIN CAPITAL LETTER A WITH OGONEK
C1 012E LATIN CAPITAL LETTER I WITH OGONEK
C2 0100 LATIN CAPITAL LETTER A WITH MACRON
C3 0106 LATIN CAPITAL LETTER C WITH ACUTE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 0118 LATIN CAPITAL LETTER E WITH OGONEK
C7 0112 LATIN CAPITAL LETTER E WITH MACRON
C8 010C LATIN CAPITAL LETTER C WITH CARON
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 0179 LATIN CAPITAL LETTER Z WITH ACUTE
CB 0116 LATIN CAPITAL LETTER E WITH DOT ABOVE
CC 0122 LATIN CAPITAL LETTER G WITH CEDILLA
CD 0136 LATIN CAPITAL LETTER K WITH CEDILLA
CE 012A LATIN CAPITAL LETTER I WITH MACRON
CF 013B LATIN CAPITAL LETTER L WITH CEDILLA
D0 0160 LATIN CAPITAL LETTER S WITH CARON
D1 0143 LATIN CAPITAL LETTER N WITH ACUTE
D2 0145 LATIN CAPITAL LETTER N WITH CEDILLA
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 014C LATIN CAPITAL LETTER O WITH MACRON
D5 00D5 LATIN CAPITAL LETTER O WITH TILDE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 00D7 MULTIPLICATION SIGN
D8 0172 LATIN CAPITAL LETTER U WITH OGONEK
D9 0141 LATIN CAPITAL LETTER L WITH STROKE
DA 015A LATIN CAPITAL LETTER S WITH ACUTE
DB 016A LATIN CAPITAL LETTER U WITH MACRON
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
DE 017D LATIN CAPITAL LETTER Z WITH CARON
DF 00DF LATIN SMALL LETTER SHARP S (German)
E0 0105 LATIN SMALL LETTER A WITH OGONEK
E1 012F LATIN SMALL LETTER I WITH OGONEK
E2 0101 LATIN SMALL LETTER A WITH MACRON
E3 0107 LATIN SMALL LETTER C WITH ACUTE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 00E5 LATIN SMALL LETTER A WITH RING ABOVE
E6 0119 LATIN SMALL LETTER E WITH OGONEK
E7 0113 LATIN SMALL LETTER E WITH MACRON
E8 010D LATIN SMALL LETTER C WITH CARON
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 017A LATIN SMALL LETTER Z WITH ACUTE
EB 0117 LATIN SMALL LETTER E WITH DOT ABOVE
EC 0123 LATIN SMALL LETTER G WITH CEDILLA
ED 0137 LATIN SMALL LETTER K WITH CEDILLA
EE 012B LATIN SMALL LETTER I WITH MACRON
EF 013C LATIN SMALL LETTER L WITH CEDILLA
F0 0161 LATIN SMALL LETTER S WITH CARON
F1 0144 LATIN SMALL LETTER N WITH ACUTE
F2 0146 LATIN SMALL LETTER N WITH CEDILLA
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 014D LATIN SMALL LETTER O WITH MACRON
F5 00F5 LATIN SMALL LETTER O WITH TILDE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 00F7 DIVISION SIGN
F8 0173 LATIN SMALL LETTER U WITH OGONEK
F9 0142 LATIN SMALL LETTER L WITH STROKE
FA 015B LATIN SMALL LETTER S WITH ACUTE
FB 016B LATIN SMALL LETTER U WITH MACRON
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 017C LATIN SMALL LETTER Z WITH DOT ABOVE
FE 017E LATIN SMALL LETTER Z WITH CARON
FF 2019 RIGHT SINGLE QUOTATION MARK

260
libucw/charset/set/8859-14

@ -0,0 +1,260 @@
# 8859-14.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-14.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE
A2 1E03 LATIN SMALL LETTER B WITH DOT ABOVE
A3 00A3 POUND SIGN
A4 010A LATIN CAPITAL LETTER C WITH DOT ABOVE
A5 010B LATIN SMALL LETTER C WITH DOT ABOVE
A6 1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE
A7 00A7 SECTION SIGN
A8 1E80 LATIN CAPITAL LETTER W WITH GRAVE
A9 00A9 COPYRIGHT SIGN
AA 1E82 LATIN CAPITAL LETTER W WITH ACUTE
AB 1E0B LATIN SMALL LETTER D WITH DOT ABOVE
AC 1EF2 LATIN CAPITAL LETTER Y WITH GRAVE
AD 00AD SOFT HYPHEN
AE 00AE REGISTERED SIGN
AF 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
B0 1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE
B1 1E1F LATIN SMALL LETTER F WITH DOT ABOVE
B2 0120 LATIN CAPITAL LETTER G WITH DOT ABOVE
B3 0121 LATIN SMALL LETTER G WITH DOT ABOVE
B4 1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE
B5 1E41 LATIN SMALL LETTER M WITH DOT ABOVE
B6 00B6 PILCROW SIGN
B7 1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE
B8 1E81 LATIN SMALL LETTER W WITH GRAVE
B9 1E57 LATIN SMALL LETTER P WITH DOT ABOVE
BA 1E83 LATIN SMALL LETTER W WITH ACUTE
BB 1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE
BC 1EF3 LATIN SMALL LETTER Y WITH GRAVE
BD 1E84 LATIN CAPITAL LETTER W WITH DIAERESIS
BE 1E85 LATIN SMALL LETTER W WITH DIAERESIS
BF 1E61 LATIN SMALL LETTER S WITH DOT ABOVE
C0 00C0 LATIN CAPITAL LETTER A WITH GRAVE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 00C3 LATIN CAPITAL LETTER A WITH TILDE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 00C6 LATIN CAPITAL LETTER AE
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 00C8 LATIN CAPITAL LETTER E WITH GRAVE
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 00CC LATIN CAPITAL LETTER I WITH GRAVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
D0 0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX
D1 00D1 LATIN CAPITAL LETTER N WITH TILDE
D2 00D2 LATIN CAPITAL LETTER O WITH GRAVE
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 00D5 LATIN CAPITAL LETTER O WITH TILDE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE
D8 00D8 LATIN CAPITAL LETTER O WITH STROKE
D9 00D9 LATIN CAPITAL LETTER U WITH GRAVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 00DD LATIN CAPITAL LETTER Y WITH ACUTE
DE 0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
DF 00DF LATIN SMALL LETTER SHARP S
E0 00E0 LATIN SMALL LETTER A WITH GRAVE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 00E3 LATIN SMALL LETTER A WITH TILDE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 00E5 LATIN SMALL LETTER A WITH RING ABOVE
E6 00E6 LATIN SMALL LETTER AE
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 00E8 LATIN SMALL LETTER E WITH GRAVE
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 00EC LATIN SMALL LETTER I WITH GRAVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 00EF LATIN SMALL LETTER I WITH DIAERESIS
F0 0175 LATIN SMALL LETTER W WITH CIRCUMFLEX
F1 00F1 LATIN SMALL LETTER N WITH TILDE
F2 00F2 LATIN SMALL LETTER O WITH GRAVE
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 00F5 LATIN SMALL LETTER O WITH TILDE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 1E6B LATIN SMALL LETTER T WITH DOT ABOVE
F8 00F8 LATIN SMALL LETTER O WITH STROKE
F9 00F9 LATIN SMALL LETTER U WITH GRAVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 00FD LATIN SMALL LETTER Y WITH ACUTE
FE 0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX
FF 00FF LATIN SMALL LETTER Y WITH DIAERESIS

260
libucw/charset/set/8859-15

@ -0,0 +1,260 @@
# 8859-15.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-15.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 00A1 INVERTED EXCLAMATION MARK
A2 00A2 CENT SIGN
A3 00A3 POUND SIGN
A4 20AC EURO SIGN
A5 00A5 YEN SIGN
A6 0160 LATIN CAPITAL LETTER S WITH CARON
A7 00A7 SECTION SIGN
A8 0161 LATIN SMALL LETTER S WITH CARON
A9 00A9 COPYRIGHT SIGN
AA 00AA FEMININE ORDINAL INDICATOR
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 00AC NOT SIGN
AD 00AD SOFT HYPHEN
AE 00AE REGISTERED SIGN
AF 00AF MACRON
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 00B2 SUPERSCRIPT TWO
B3 00B3 SUPERSCRIPT THREE
B4 017D LATIN CAPITAL LETTER Z WITH CARON
B5 00B5 MICRO SIGN
B6 00B6 PILCROW SIGN
B7 00B7 MIDDLE DOT
B8 017E LATIN SMALL LETTER Z WITH CARON
B9 00B9 SUPERSCRIPT ONE
BA 00BA MASCULINE ORDINAL INDICATOR
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 0152 LATIN CAPITAL LIGATURE OE
BD 0153 LATIN SMALL LIGATURE OE
BE 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
BF 00BF INVERTED QUESTION MARK
C0 00C0 LATIN CAPITAL LETTER A WITH GRAVE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 00C3 LATIN CAPITAL LETTER A WITH TILDE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 00C6 LATIN CAPITAL LETTER AE
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 00C8 LATIN CAPITAL LETTER E WITH GRAVE
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 00CC LATIN CAPITAL LETTER I WITH GRAVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
D0 00D0 LATIN CAPITAL LETTER ETH
D1 00D1 LATIN CAPITAL LETTER N WITH TILDE
D2 00D2 LATIN CAPITAL LETTER O WITH GRAVE
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 00D5 LATIN CAPITAL LETTER O WITH TILDE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 00D7 MULTIPLICATION SIGN
D8 00D8 LATIN CAPITAL LETTER O WITH STROKE
D9 00D9 LATIN CAPITAL LETTER U WITH GRAVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 00DD LATIN CAPITAL LETTER Y WITH ACUTE
DE 00DE LATIN CAPITAL LETTER THORN
DF 00DF LATIN SMALL LETTER SHARP S
E0 00E0 LATIN SMALL LETTER A WITH GRAVE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 00E3 LATIN SMALL LETTER A WITH TILDE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 00E5 LATIN SMALL LETTER A WITH RING ABOVE
E6 00E6 LATIN SMALL LETTER AE
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 00E8 LATIN SMALL LETTER E WITH GRAVE
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 00EC LATIN SMALL LETTER I WITH GRAVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 00EF LATIN SMALL LETTER I WITH DIAERESIS
F0 00F0 LATIN SMALL LETTER ETH
F1 00F1 LATIN SMALL LETTER N WITH TILDE
F2 00F2 LATIN SMALL LETTER O WITH GRAVE
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 00F5 LATIN SMALL LETTER O WITH TILDE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 00F7 DIVISION SIGN
F8 00F8 LATIN SMALL LETTER O WITH STROKE
F9 00F9 LATIN SMALL LETTER U WITH GRAVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 00FD LATIN SMALL LETTER Y WITH ACUTE
FE 00FE LATIN SMALL LETTER THORN
FF 00FF LATIN SMALL LETTER Y WITH DIAERESIS

260
libucw/charset/set/8859-16

@ -0,0 +1,260 @@
# 8859-16.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 0104 LATIN CAPITAL LETTER A WITH OGONEK
A2 0105 LATIN SMALL LETTER A WITH OGONEK
A3 0141 LATIN CAPITAL LETTER L WITH STROKE
A4 20AC EURO SIGN
A5 201E DOUBLE LOW-9 QUOTATION MARK
A6 0160 LATIN CAPITAL LETTER S WITH CARON
A7 00A7 SECTION SIGN
A8 0161 LATIN SMALL LETTER S WITH CARON
A9 00A9 COPYRIGHT SIGN
AA 0218 LATIN CAPITAL LETTER S WITH COMMA BELOW
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 0179 LATIN CAPITAL LETTER Z WITH ACUTE
AD 00AD SOFT HYPHEN
AE 017A LATIN SMALL LETTER Z WITH ACUTE
AF 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 010C LATIN CAPITAL LETTER C WITH CARON
B3 0142 LATIN SMALL LETTER L WITH STROKE
B4 017D LATIN CAPITAL LETTER Z WITH CARON
B5 201D RIGHT DOUBLE QUOTATION MARK
B6 00B6 PILCROW SIGN
B7 00B7 MIDDLE DOT
B8 017E LATIN SMALL LETTER Z WITH CARON
B9 010D LATIN SMALL LETTER C WITH CARON
BA 0219 LATIN SMALL LETTER S WITH COMMA BELOW
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 0152 LATIN CAPITAL LIGATURE OE
BD 0153 LATIN SMALL LIGATURE OE
BE 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
BF 017C LATIN SMALL LETTER Z WITH DOT ABOVE
C0 00C0 LATIN CAPITAL LETTER A WITH GRAVE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 0102 LATIN CAPITAL LETTER A WITH BREVE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 0106 LATIN CAPITAL LETTER C WITH ACUTE
C6 00C6 LATIN CAPITAL LETTER AE
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 00C8 LATIN CAPITAL LETTER E WITH GRAVE
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 00CC LATIN CAPITAL LETTER I WITH GRAVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
D0 0110 LATIN CAPITAL LETTER D WITH STROKE
D1 0143 LATIN CAPITAL LETTER N WITH ACUTE
D2 00D2 LATIN CAPITAL LETTER O WITH GRAVE
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 015A LATIN CAPITAL LETTER S WITH ACUTE
D8 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
D9 00D9 LATIN CAPITAL LETTER U WITH GRAVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 0118 LATIN CAPITAL LETTER E WITH OGONEK
DE 021A LATIN CAPITAL LETTER T WITH COMMA BELOW
DF 00DF LATIN SMALL LETTER SHARP S
E0 00E0 LATIN SMALL LETTER A WITH GRAVE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 0103 LATIN SMALL LETTER A WITH BREVE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 0107 LATIN SMALL LETTER C WITH ACUTE
E6 00E6 LATIN SMALL LETTER AE
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 00E8 LATIN SMALL LETTER E WITH GRAVE
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 00EC LATIN SMALL LETTER I WITH GRAVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 00EF LATIN SMALL LETTER I WITH DIAERESIS
F0 0111 LATIN SMALL LETTER D WITH STROKE
F1 0144 LATIN SMALL LETTER N WITH ACUTE
F2 00F2 LATIN SMALL LETTER O WITH GRAVE
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 015B LATIN SMALL LETTER S WITH ACUTE
F8 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
F9 00F9 LATIN SMALL LETTER U WITH GRAVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 0119 LATIN SMALL LETTER E WITH OGONEK
FE 021B LATIN SMALL LETTER T WITH COMMA BELOW
FF 00FF LATIN SMALL LETTER Y WITH DIAERESIS

260
libucw/charset/set/8859-2

@ -0,0 +1,260 @@
# 8859-2.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-2.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 0104 LATIN CAPITAL LETTER A WITH OGONEK
A2 02D8 BREVE
A3 0141 LATIN CAPITAL LETTER L WITH STROKE
A4 00A4 CURRENCY SIGN
A5 013D LATIN CAPITAL LETTER L WITH CARON
A6 015A LATIN CAPITAL LETTER S WITH ACUTE
A7 00A7 SECTION SIGN
A8 00A8 DIAERESIS
A9 0160 LATIN CAPITAL LETTER S WITH CARON
AA 015E LATIN CAPITAL LETTER S WITH CEDILLA
AB 0164 LATIN CAPITAL LETTER T WITH CARON
AC 0179 LATIN CAPITAL LETTER Z WITH ACUTE
AD 00AD SOFT HYPHEN
AE 017D LATIN CAPITAL LETTER Z WITH CARON
AF 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
B0 00B0 DEGREE SIGN
B1 0105 LATIN SMALL LETTER A WITH OGONEK
B2 02DB OGONEK
B3 0142 LATIN SMALL LETTER L WITH STROKE
B4 00B4 ACUTE ACCENT
B5 013E LATIN SMALL LETTER L WITH CARON
B6 015B LATIN SMALL LETTER S WITH ACUTE
B7 02C7 CARON
B8 00B8 CEDILLA
B9 0161 LATIN SMALL LETTER S WITH CARON
BA 015F LATIN SMALL LETTER S WITH CEDILLA
BB 0165 LATIN SMALL LETTER T WITH CARON
BC 017A LATIN SMALL LETTER Z WITH ACUTE
BD 02DD DOUBLE ACUTE ACCENT
BE 017E LATIN SMALL LETTER Z WITH CARON
BF 017C LATIN SMALL LETTER Z WITH DOT ABOVE
C0 0154 LATIN CAPITAL LETTER R WITH ACUTE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 0102 LATIN CAPITAL LETTER A WITH BREVE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 0139 LATIN CAPITAL LETTER L WITH ACUTE
C6 0106 LATIN CAPITAL LETTER C WITH ACUTE
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 010C LATIN CAPITAL LETTER C WITH CARON
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 0118 LATIN CAPITAL LETTER E WITH OGONEK
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 011A LATIN CAPITAL LETTER E WITH CARON
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 010E LATIN CAPITAL LETTER D WITH CARON
D0 0110 LATIN CAPITAL LETTER D WITH STROKE
D1 0143 LATIN CAPITAL LETTER N WITH ACUTE
D2 0147 LATIN CAPITAL LETTER N WITH CARON
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 00D7 MULTIPLICATION SIGN
D8 0158 LATIN CAPITAL LETTER R WITH CARON
D9 016E LATIN CAPITAL LETTER U WITH RING ABOVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 00DD LATIN CAPITAL LETTER Y WITH ACUTE
DE 0162 LATIN CAPITAL LETTER T WITH CEDILLA
DF 00DF LATIN SMALL LETTER SHARP S
E0 0155 LATIN SMALL LETTER R WITH ACUTE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 0103 LATIN SMALL LETTER A WITH BREVE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 013A LATIN SMALL LETTER L WITH ACUTE
E6 0107 LATIN SMALL LETTER C WITH ACUTE
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 010D LATIN SMALL LETTER C WITH CARON
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 0119 LATIN SMALL LETTER E WITH OGONEK
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 011B LATIN SMALL LETTER E WITH CARON
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 010F LATIN SMALL LETTER D WITH CARON
F0 0111 LATIN SMALL LETTER D WITH STROKE
F1 0144 LATIN SMALL LETTER N WITH ACUTE
F2 0148 LATIN SMALL LETTER N WITH CARON
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 00F7 DIVISION SIGN
F8 0159 LATIN SMALL LETTER R WITH CARON
F9 016F LATIN SMALL LETTER U WITH RING ABOVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 00FD LATIN SMALL LETTER Y WITH ACUTE
FE 0163 LATIN SMALL LETTER T WITH CEDILLA
FF 02D9 DOT ABOVE

253
libucw/charset/set/8859-3

@ -0,0 +1,253 @@
# 8859-3.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-3.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 0126 LATIN CAPITAL LETTER H WITH STROKE
A2 02D8 BREVE
A3 00A3 POUND SIGN
A4 00A4 CURRENCY SIGN
A6 0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX
A7 00A7 SECTION SIGN
A8 00A8 DIAERESIS
A9 0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
AA 015E LATIN CAPITAL LETTER S WITH CEDILLA
AB 011E LATIN CAPITAL LETTER G WITH BREVE
AC 0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX
AD 00AD SOFT HYPHEN
AF 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
B0 00B0 DEGREE SIGN
B1 0127 LATIN SMALL LETTER H WITH STROKE
B2 00B2 SUPERSCRIPT TWO
B3 00B3 SUPERSCRIPT THREE
B4 00B4 ACUTE ACCENT
B5 00B5 MICRO SIGN
B6 0125 LATIN SMALL LETTER H WITH CIRCUMFLEX
B7 00B7 MIDDLE DOT
B8 00B8 CEDILLA
B9 0131 LATIN SMALL LETTER DOTLESS I
BA 015F LATIN SMALL LETTER S WITH CEDILLA
BB 011F LATIN SMALL LETTER G WITH BREVE
BC 0135 LATIN SMALL LETTER J WITH CIRCUMFLEX
BD 00BD VULGAR FRACTION ONE HALF
BF 017C LATIN SMALL LETTER Z WITH DOT ABOVE
C0 00C0 LATIN CAPITAL LETTER A WITH GRAVE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 010A LATIN CAPITAL LETTER C WITH DOT ABOVE
C6 0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 00C8 LATIN CAPITAL LETTER E WITH GRAVE
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 00CC LATIN CAPITAL LETTER I WITH GRAVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
D1 00D1 LATIN CAPITAL LETTER N WITH TILDE
D2 00D2 LATIN CAPITAL LETTER O WITH GRAVE
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 0120 LATIN CAPITAL LETTER G WITH DOT ABOVE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 00D7 MULTIPLICATION SIGN
D8 011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX
D9 00D9 LATIN CAPITAL LETTER U WITH GRAVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 016C LATIN CAPITAL LETTER U WITH BREVE
DE 015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX
DF 00DF LATIN SMALL LETTER SHARP S
E0 00E0 LATIN SMALL LETTER A WITH GRAVE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 010B LATIN SMALL LETTER C WITH DOT ABOVE
E6 0109 LATIN SMALL LETTER C WITH CIRCUMFLEX
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 00E8 LATIN SMALL LETTER E WITH GRAVE
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 00EC LATIN SMALL LETTER I WITH GRAVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 00EF LATIN SMALL LETTER I WITH DIAERESIS
F1 00F1 LATIN SMALL LETTER N WITH TILDE
F2 00F2 LATIN SMALL LETTER O WITH GRAVE
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 0121 LATIN SMALL LETTER G WITH DOT ABOVE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 00F7 DIVISION SIGN
F8 011D LATIN SMALL LETTER G WITH CIRCUMFLEX
F9 00F9 LATIN SMALL LETTER U WITH GRAVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 016D LATIN SMALL LETTER U WITH BREVE
FE 015D LATIN SMALL LETTER S WITH CIRCUMFLEX
FF 02D9 DOT ABOVE

260
libucw/charset/set/8859-4

@ -0,0 +1,260 @@
# 8859-4.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-4.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 0104 LATIN CAPITAL LETTER A WITH OGONEK
A2 0138 LATIN SMALL LETTER KRA
A3 0156 LATIN CAPITAL LETTER R WITH CEDILLA
A4 00A4 CURRENCY SIGN
A5 0128 LATIN CAPITAL LETTER I WITH TILDE
A6 013B LATIN CAPITAL LETTER L WITH CEDILLA
A7 00A7 SECTION SIGN
A8 00A8 DIAERESIS
A9 0160 LATIN CAPITAL LETTER S WITH CARON
AA 0112 LATIN CAPITAL LETTER E WITH MACRON
AB 0122 LATIN CAPITAL LETTER G WITH CEDILLA
AC 0166 LATIN CAPITAL LETTER T WITH STROKE
AD 00AD SOFT HYPHEN
AE 017D LATIN CAPITAL LETTER Z WITH CARON
AF 00AF MACRON
B0 00B0 DEGREE SIGN
B1 0105 LATIN SMALL LETTER A WITH OGONEK
B2 02DB OGONEK
B3 0157 LATIN SMALL LETTER R WITH CEDILLA
B4 00B4 ACUTE ACCENT
B5 0129 LATIN SMALL LETTER I WITH TILDE
B6 013C LATIN SMALL LETTER L WITH CEDILLA
B7 02C7 CARON
B8 00B8 CEDILLA
B9 0161 LATIN SMALL LETTER S WITH CARON
BA 0113 LATIN SMALL LETTER E WITH MACRON
BB 0123 LATIN SMALL LETTER G WITH CEDILLA
BC 0167 LATIN SMALL LETTER T WITH STROKE
BD 014A LATIN CAPITAL LETTER ENG
BE 017E LATIN SMALL LETTER Z WITH CARON
BF 014B LATIN SMALL LETTER ENG
C0 0100 LATIN CAPITAL LETTER A WITH MACRON
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 00C3 LATIN CAPITAL LETTER A WITH TILDE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 00C6 LATIN CAPITAL LETTER AE
C7 012E LATIN CAPITAL LETTER I WITH OGONEK
C8 010C LATIN CAPITAL LETTER C WITH CARON
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 0118 LATIN CAPITAL LETTER E WITH OGONEK
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 0116 LATIN CAPITAL LETTER E WITH DOT ABOVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 012A LATIN CAPITAL LETTER I WITH MACRON
D0 0110 LATIN CAPITAL LETTER D WITH STROKE
D1 0145 LATIN CAPITAL LETTER N WITH CEDILLA
D2 014C LATIN CAPITAL LETTER O WITH MACRON
D3 0136 LATIN CAPITAL LETTER K WITH CEDILLA
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 00D5 LATIN CAPITAL LETTER O WITH TILDE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 00D7 MULTIPLICATION SIGN
D8 00D8 LATIN CAPITAL LETTER O WITH STROKE
D9 0172 LATIN CAPITAL LETTER U WITH OGONEK
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 0168 LATIN CAPITAL LETTER U WITH TILDE
DE 016A LATIN CAPITAL LETTER U WITH MACRON
DF 00DF LATIN SMALL LETTER SHARP S
E0 0101 LATIN SMALL LETTER A WITH MACRON
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 00E3 LATIN SMALL LETTER A WITH TILDE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 00E5 LATIN SMALL LETTER A WITH RING ABOVE
E6 00E6 LATIN SMALL LETTER AE
E7 012F LATIN SMALL LETTER I WITH OGONEK
E8 010D LATIN SMALL LETTER C WITH CARON
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 0119 LATIN SMALL LETTER E WITH OGONEK
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 0117 LATIN SMALL LETTER E WITH DOT ABOVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 012B LATIN SMALL LETTER I WITH MACRON
F0 0111 LATIN SMALL LETTER D WITH STROKE
F1 0146 LATIN SMALL LETTER N WITH CEDILLA
F2 014D LATIN SMALL LETTER O WITH MACRON
F3 0137 LATIN SMALL LETTER K WITH CEDILLA
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 00F5 LATIN SMALL LETTER O WITH TILDE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 00F7 DIVISION SIGN
F8 00F8 LATIN SMALL LETTER O WITH STROKE
F9 0173 LATIN SMALL LETTER U WITH OGONEK
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 0169 LATIN SMALL LETTER U WITH TILDE
FE 016B LATIN SMALL LETTER U WITH MACRON
FF 02D9 DOT ABOVE

260
libucw/charset/set/8859-5

@ -0,0 +1,260 @@
# 8859-5.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-5.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 0401 CYRILLIC CAPITAL LETTER IO
A2 0402 CYRILLIC CAPITAL LETTER DJE
A3 0403 CYRILLIC CAPITAL LETTER GJE
A4 0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE
A5 0405 CYRILLIC CAPITAL LETTER DZE
A6 0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
A7 0407 CYRILLIC CAPITAL LETTER YI
A8 0408 CYRILLIC CAPITAL LETTER JE
A9 0409 CYRILLIC CAPITAL LETTER LJE
AA 040A CYRILLIC CAPITAL LETTER NJE
AB 040B CYRILLIC CAPITAL LETTER TSHE
AC 040C CYRILLIC CAPITAL LETTER KJE
AD 00AD SOFT HYPHEN
AE 040E CYRILLIC CAPITAL LETTER SHORT U
AF 040F CYRILLIC CAPITAL LETTER DZHE
B0 0410 CYRILLIC CAPITAL LETTER A
B1 0411 CYRILLIC CAPITAL LETTER BE
B2 0412 CYRILLIC CAPITAL LETTER VE
B3 0413 CYRILLIC CAPITAL LETTER GHE
B4 0414 CYRILLIC CAPITAL LETTER DE
B5 0415 CYRILLIC CAPITAL LETTER IE
B6 0416 CYRILLIC CAPITAL LETTER ZHE
B7 0417 CYRILLIC CAPITAL LETTER ZE
B8 0418 CYRILLIC CAPITAL LETTER I
B9 0419 CYRILLIC CAPITAL LETTER SHORT I
BA 041A CYRILLIC CAPITAL LETTER KA
BB 041B CYRILLIC CAPITAL LETTER EL
BC 041C CYRILLIC CAPITAL LETTER EM
BD 041D CYRILLIC CAPITAL LETTER EN
BE 041E CYRILLIC CAPITAL LETTER O
BF 041F CYRILLIC CAPITAL LETTER PE
C0 0420 CYRILLIC CAPITAL LETTER ER
C1 0421 CYRILLIC CAPITAL LETTER ES
C2 0422 CYRILLIC CAPITAL LETTER TE
C3 0423 CYRILLIC CAPITAL LETTER U
C4 0424 CYRILLIC CAPITAL LETTER EF
C5 0425 CYRILLIC CAPITAL LETTER HA
C6 0426 CYRILLIC CAPITAL LETTER TSE
C7 0427 CYRILLIC CAPITAL LETTER CHE
C8 0428 CYRILLIC CAPITAL LETTER SHA
C9 0429 CYRILLIC CAPITAL LETTER SHCHA
CA 042A CYRILLIC CAPITAL LETTER HARD SIGN
CB 042B CYRILLIC CAPITAL LETTER YERU
CC 042C CYRILLIC CAPITAL LETTER SOFT SIGN
CD 042D CYRILLIC CAPITAL LETTER E
CE 042E CYRILLIC CAPITAL LETTER YU
CF 042F CYRILLIC CAPITAL LETTER YA
D0 0430 CYRILLIC SMALL LETTER A
D1 0431 CYRILLIC SMALL LETTER BE
D2 0432 CYRILLIC SMALL LETTER VE
D3 0433 CYRILLIC SMALL LETTER GHE
D4 0434 CYRILLIC SMALL LETTER DE
D5 0435 CYRILLIC SMALL LETTER IE
D6 0436 CYRILLIC SMALL LETTER ZHE
D7 0437 CYRILLIC SMALL LETTER ZE
D8 0438 CYRILLIC SMALL LETTER I
D9 0439 CYRILLIC SMALL LETTER SHORT I
DA 043A CYRILLIC SMALL LETTER KA
DB 043B CYRILLIC SMALL LETTER EL
DC 043C CYRILLIC SMALL LETTER EM
DD 043D CYRILLIC SMALL LETTER EN
DE 043E CYRILLIC SMALL LETTER O
DF 043F CYRILLIC SMALL LETTER PE
E0 0440 CYRILLIC SMALL LETTER ER
E1 0441 CYRILLIC SMALL LETTER ES
E2 0442 CYRILLIC SMALL LETTER TE
E3 0443 CYRILLIC SMALL LETTER U
E4 0444 CYRILLIC SMALL LETTER EF
E5 0445 CYRILLIC SMALL LETTER HA
E6 0446 CYRILLIC SMALL LETTER TSE
E7 0447 CYRILLIC SMALL LETTER CHE
E8 0448 CYRILLIC SMALL LETTER SHA
E9 0449 CYRILLIC SMALL LETTER SHCHA
EA 044A CYRILLIC SMALL LETTER HARD SIGN
EB 044B CYRILLIC SMALL LETTER YERU
EC 044C CYRILLIC SMALL LETTER SOFT SIGN
ED 044D CYRILLIC SMALL LETTER E
EE 044E CYRILLIC SMALL LETTER YU
EF 044F CYRILLIC SMALL LETTER YA
F0 2116 NUMERO SIGN
F1 0451 CYRILLIC SMALL LETTER IO
F2 0452 CYRILLIC SMALL LETTER DJE
F3 0453 CYRILLIC SMALL LETTER GJE
F4 0454 CYRILLIC SMALL LETTER UKRAINIAN IE
F5 0455 CYRILLIC SMALL LETTER DZE
F6 0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
F7 0457 CYRILLIC SMALL LETTER YI
F8 0458 CYRILLIC SMALL LETTER JE
F9 0459 CYRILLIC SMALL LETTER LJE
FA 045A CYRILLIC SMALL LETTER NJE
FB 045B CYRILLIC SMALL LETTER TSHE
FC 045C CYRILLIC SMALL LETTER KJE
FD 00A7 SECTION SIGN
FE 045E CYRILLIC SMALL LETTER SHORT U
FF 045F CYRILLIC SMALL LETTER DZHE

215
libucw/charset/set/8859-6

@ -0,0 +1,215 @@
# 8859-6.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-6.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A4 00A4 CURRENCY SIGN
AC 060C ARABIC COMMA
AD 00AD SOFT HYPHEN
BB 061B ARABIC SEMICOLON
BF 061F ARABIC QUESTION MARK
C1 0621 ARABIC LETTER HAMZA
C2 0622 ARABIC LETTER ALEF WITH MADDA ABOVE
C3 0623 ARABIC LETTER ALEF WITH HAMZA ABOVE
C4 0624 ARABIC LETTER WAW WITH HAMZA ABOVE
C5 0625 ARABIC LETTER ALEF WITH HAMZA BELOW
C6 0626 ARABIC LETTER YEH WITH HAMZA ABOVE
C7 0627 ARABIC LETTER ALEF
C8 0628 ARABIC LETTER BEH
C9 0629 ARABIC LETTER TEH MARBUTA
CA 062A ARABIC LETTER TEH
CB 062B ARABIC LETTER THEH
CC 062C ARABIC LETTER JEEM
CD 062D ARABIC LETTER HAH
CE 062E ARABIC LETTER KHAH
CF 062F ARABIC LETTER DAL
D0 0630 ARABIC LETTER THAL
D1 0631 ARABIC LETTER REH
D2 0632 ARABIC LETTER ZAIN
D3 0633 ARABIC LETTER SEEN
D4 0634 ARABIC LETTER SHEEN
D5 0635 ARABIC LETTER SAD
D6 0636 ARABIC LETTER DAD
D7 0637 ARABIC LETTER TAH
D8 0638 ARABIC LETTER ZAH
D9 0639 ARABIC LETTER AIN
DA 063A ARABIC LETTER GHAIN
E0 0640 ARABIC TATWEEL
E1 0641 ARABIC LETTER FEH
E2 0642 ARABIC LETTER QAF
E3 0643 ARABIC LETTER KAF
E4 0644 ARABIC LETTER LAM
E5 0645 ARABIC LETTER MEEM
E6 0646 ARABIC LETTER NOON
E7 0647 ARABIC LETTER HEH
E8 0648 ARABIC LETTER WAW
E9 0649 ARABIC LETTER ALEF MAKSURA
EA 064A ARABIC LETTER YEH
EB 064B ARABIC FATHATAN
EC 064C ARABIC DAMMATAN
ED 064D ARABIC KASRATAN
EE 064E ARABIC FATHA
EF 064F ARABIC DAMMA
F0 0650 ARABIC KASRA
F1 0651 ARABIC SHADDA
F2 0652 ARABIC SUKUN

254
libucw/charset/set/8859-7

@ -0,0 +1,254 @@
# 8859-7.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-7.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 2018 LEFT SINGLE QUOTATION MARK
A2 2019 RIGHT SINGLE QUOTATION MARK
A3 00A3 POUND SIGN
A6 00A6 BROKEN BAR
A7 00A7 SECTION SIGN
A8 00A8 DIAERESIS
A9 00A9 COPYRIGHT SIGN
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 00AC NOT SIGN
AD 00AD SOFT HYPHEN
AF 2015 HORIZONTAL BAR
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 00B2 SUPERSCRIPT TWO
B3 00B3 SUPERSCRIPT THREE
B4 0384 GREEK TONOS
B5 0385 GREEK DIALYTIKA TONOS
B6 0386 GREEK CAPITAL LETTER ALPHA WITH TONOS
B7 00B7 MIDDLE DOT
B8 0388 GREEK CAPITAL LETTER EPSILON WITH TONOS
B9 0389 GREEK CAPITAL LETTER ETA WITH TONOS
BA 038A GREEK CAPITAL LETTER IOTA WITH TONOS
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 038C GREEK CAPITAL LETTER OMICRON WITH TONOS
BD 00BD VULGAR FRACTION ONE HALF
BE 038E GREEK CAPITAL LETTER UPSILON WITH TONOS
BF 038F GREEK CAPITAL LETTER OMEGA WITH TONOS
C0 0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
C1 0391 GREEK CAPITAL LETTER ALPHA
C2 0392 GREEK CAPITAL LETTER BETA
C3 0393 GREEK CAPITAL LETTER GAMMA
C4 0394 GREEK CAPITAL LETTER DELTA
C5 0395 GREEK CAPITAL LETTER EPSILON
C6 0396 GREEK CAPITAL LETTER ZETA
C7 0397 GREEK CAPITAL LETTER ETA
C8 0398 GREEK CAPITAL LETTER THETA
C9 0399 GREEK CAPITAL LETTER IOTA
CA 039A GREEK CAPITAL LETTER KAPPA
CB 039B GREEK CAPITAL LETTER LAMDA
CC 039C GREEK CAPITAL LETTER MU
CD 039D GREEK CAPITAL LETTER NU
CE 039E GREEK CAPITAL LETTER XI
CF 039F GREEK CAPITAL LETTER OMICRON
D0 03A0 GREEK CAPITAL LETTER PI
D1 03A1 GREEK CAPITAL LETTER RHO
D3 03A3 GREEK CAPITAL LETTER SIGMA
D4 03A4 GREEK CAPITAL LETTER TAU
D5 03A5 GREEK CAPITAL LETTER UPSILON
D6 03A6 GREEK CAPITAL LETTER PHI
D7 03A7 GREEK CAPITAL LETTER CHI
D8 03A8 GREEK CAPITAL LETTER PSI
D9 03A9 GREEK CAPITAL LETTER OMEGA
DA 03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
DB 03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
DC 03AC GREEK SMALL LETTER ALPHA WITH TONOS
DD 03AD GREEK SMALL LETTER EPSILON WITH TONOS
DE 03AE GREEK SMALL LETTER ETA WITH TONOS
DF 03AF GREEK SMALL LETTER IOTA WITH TONOS
E0 03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
E1 03B1 GREEK SMALL LETTER ALPHA
E2 03B2 GREEK SMALL LETTER BETA
E3 03B3 GREEK SMALL LETTER GAMMA
E4 03B4 GREEK SMALL LETTER DELTA
E5 03B5 GREEK SMALL LETTER EPSILON
E6 03B6 GREEK SMALL LETTER ZETA
E7 03B7 GREEK SMALL LETTER ETA
E8 03B8 GREEK SMALL LETTER THETA
E9 03B9 GREEK SMALL LETTER IOTA
EA 03BA GREEK SMALL LETTER KAPPA
EB 03BB GREEK SMALL LETTER LAMDA
EC 03BC GREEK SMALL LETTER MU
ED 03BD GREEK SMALL LETTER NU
EE 03BE GREEK SMALL LETTER XI
EF 03BF GREEK SMALL LETTER OMICRON
F0 03C0 GREEK SMALL LETTER PI
F1 03C1 GREEK SMALL LETTER RHO
F2 03C2 GREEK SMALL LETTER FINAL SIGMA
F3 03C3 GREEK SMALL LETTER SIGMA
F4 03C4 GREEK SMALL LETTER TAU
F5 03C5 GREEK SMALL LETTER UPSILON
F6 03C6 GREEK SMALL LETTER PHI
F7 03C7 GREEK SMALL LETTER CHI
F8 03C8 GREEK SMALL LETTER PSI
F9 03C9 GREEK SMALL LETTER OMEGA
FA 03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA
FB 03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA
FC 03CC GREEK SMALL LETTER OMICRON WITH TONOS
FD 03CD GREEK SMALL LETTER UPSILON WITH TONOS
FE 03CE GREEK SMALL LETTER OMEGA WITH TONOS

224
libucw/charset/set/8859-8

@ -0,0 +1,224 @@
# 8859-8.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-8.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A2 00A2 CENT SIGN
A3 00A3 POUND SIGN
A4 00A4 CURRENCY SIGN
A5 00A5 YEN SIGN
A6 00A6 BROKEN BAR
A7 00A7 SECTION SIGN
A8 00A8 DIAERESIS
A9 00A9 COPYRIGHT SIGN
AA 00D7 MULTIPLICATION SIGN
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 00AC NOT SIGN
AD 00AD SOFT HYPHEN
AE 00AE REGISTERED SIGN
AF 00AF MACRON
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 00B2 SUPERSCRIPT TWO
B3 00B3 SUPERSCRIPT THREE
B4 00B4 ACUTE ACCENT
B5 00B5 MICRO SIGN
B6 00B6 PILCROW SIGN
B7 00B7 MIDDLE DOT
B8 00B8 CEDILLA
B9 00B9 SUPERSCRIPT ONE
BA 00F7 DIVISION SIGN
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 00BC VULGAR FRACTION ONE QUARTER
BD 00BD VULGAR FRACTION ONE HALF
BE 00BE VULGAR FRACTION THREE QUARTERS
DF 2017 DOUBLE LOW LINE
E0 05D0 HEBREW LETTER ALEF
E1 05D1 HEBREW LETTER BET
E2 05D2 HEBREW LETTER GIMEL
E3 05D3 HEBREW LETTER DALET
E4 05D4 HEBREW LETTER HE
E5 05D5 HEBREW LETTER VAV
E6 05D6 HEBREW LETTER ZAYIN
E7 05D7 HEBREW LETTER HET
E8 05D8 HEBREW LETTER TET
E9 05D9 HEBREW LETTER YOD
EA 05DA HEBREW LETTER FINAL KAF
EB 05DB HEBREW LETTER KAF
EC 05DC HEBREW LETTER LAMED
ED 05DD HEBREW LETTER FINAL MEM
EE 05DE HEBREW LETTER MEM
EF 05DF HEBREW LETTER FINAL NUN
F0 05E0 HEBREW LETTER NUN
F1 05E1 HEBREW LETTER SAMEKH
F2 05E2 HEBREW LETTER AYIN
F3 05E3 HEBREW LETTER FINAL PE
F4 05E4 HEBREW LETTER PE
F5 05E5 HEBREW LETTER FINAL TSADI
F6 05E6 HEBREW LETTER TSADI
F7 05E7 HEBREW LETTER QOF
F8 05E8 HEBREW LETTER RESH
F9 05E9 HEBREW LETTER SHIN
FA 05EA HEBREW LETTER TAV
FD 200E LEFT-TO-RIGHT MARK
FE 200F RIGHT-TO-LEFT MARK

260
libucw/charset/set/8859-9

@ -0,0 +1,260 @@
# 8859-9.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-9.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0080 <control>
81 0081 <control>
82 0082 <control>
83 0083 <control>
84 0084 <control>
85 0085 <control>
86 0086 <control>
87 0087 <control>
88 0088 <control>
89 0089 <control>
8A 008A <control>
8B 008B <control>
8C 008C <control>
8D 008D <control>
8E 008E <control>
8F 008F <control>
90 0090 <control>
91 0091 <control>
92 0092 <control>
93 0093 <control>
94 0094 <control>
95 0095 <control>
96 0096 <control>
97 0097 <control>
98 0098 <control>
99 0099 <control>
9A 009A <control>
9B 009B <control>
9C 009C <control>
9D 009D <control>
9E 009E <control>
9F 009F <control>
A0 00A0 NO-BREAK SPACE
A1 00A1 INVERTED EXCLAMATION MARK
A2 00A2 CENT SIGN
A3 00A3 POUND SIGN
A4 00A4 CURRENCY SIGN
A5 00A5 YEN SIGN
A6 00A6 BROKEN BAR
A7 00A7 SECTION SIGN
A8 00A8 DIAERESIS
A9 00A9 COPYRIGHT SIGN
AA 00AA FEMININE ORDINAL INDICATOR
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 00AC NOT SIGN
AD 00AD SOFT HYPHEN
AE 00AE REGISTERED SIGN
AF 00AF MACRON
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 00B2 SUPERSCRIPT TWO
B3 00B3 SUPERSCRIPT THREE
B4 00B4 ACUTE ACCENT
B5 00B5 MICRO SIGN
B6 00B6 PILCROW SIGN
B7 00B7 MIDDLE DOT
B8 00B8 CEDILLA
B9 00B9 SUPERSCRIPT ONE
BA 00BA MASCULINE ORDINAL INDICATOR
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 00BC VULGAR FRACTION ONE QUARTER
BD 00BD VULGAR FRACTION ONE HALF
BE 00BE VULGAR FRACTION THREE QUARTERS
BF 00BF INVERTED QUESTION MARK
C0 00C0 LATIN CAPITAL LETTER A WITH GRAVE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 00C3 LATIN CAPITAL LETTER A WITH TILDE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 00C6 LATIN CAPITAL LETTER AE
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 00C8 LATIN CAPITAL LETTER E WITH GRAVE
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 00CC LATIN CAPITAL LETTER I WITH GRAVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
D0 011E LATIN CAPITAL LETTER G WITH BREVE
D1 00D1 LATIN CAPITAL LETTER N WITH TILDE
D2 00D2 LATIN CAPITAL LETTER O WITH GRAVE
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 00D5 LATIN CAPITAL LETTER O WITH TILDE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 00D7 MULTIPLICATION SIGN
D8 00D8 LATIN CAPITAL LETTER O WITH STROKE
D9 00D9 LATIN CAPITAL LETTER U WITH GRAVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
DE 015E LATIN CAPITAL LETTER S WITH CEDILLA
DF 00DF LATIN SMALL LETTER SHARP S
E0 00E0 LATIN SMALL LETTER A WITH GRAVE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 00E3 LATIN SMALL LETTER A WITH TILDE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 00E5 LATIN SMALL LETTER A WITH RING ABOVE
E6 00E6 LATIN SMALL LETTER AE
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 00E8 LATIN SMALL LETTER E WITH GRAVE
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 00EC LATIN SMALL LETTER I WITH GRAVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 00EF LATIN SMALL LETTER I WITH DIAERESIS
F0 011F LATIN SMALL LETTER G WITH BREVE
F1 00F1 LATIN SMALL LETTER N WITH TILDE
F2 00F2 LATIN SMALL LETTER O WITH GRAVE
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 00F5 LATIN SMALL LETTER O WITH TILDE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 00F7 DIVISION SIGN
F8 00F8 LATIN SMALL LETTER O WITH STROKE
F9 00F9 LATIN SMALL LETTER U WITH GRAVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 0131 LATIN SMALL LETTER DOTLESS I
FE 015F LATIN SMALL LETTER S WITH CEDILLA
FF 00FF LATIN SMALL LETTER Y WITH DIAERESIS

131
libucw/charset/set/ascii

@ -0,0 +1,131 @@
# ASCII Charset File
# (c) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 0001 <control>
02 0002 <control>
03 0003 <control>
04 0004 <control>
05 0005 <control>
06 0006 <control>
07 0007 <control>
08 0008 <control>
09 0009 <control>
0A 000A <control>
0B 000B <control>
0C 000C <control>
0D 000D <control>
0E 000E <control>
0F 000F <control>
10 0010 <control>
11 0011 <control>
12 0012 <control>
13 0013 <control>
14 0014 <control>
15 0015 <control>
16 0016 <control>
17 0017 <control>
18 0018 <control>
19 0019 <control>
1A 001A <control>
1B 001B <control>
1C 001C <control>
1D 001D <control>
1E 001E <control>
1F 001F <control>
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F <control>

259
libucw/charset/set/cork

@ -0,0 +1,259 @@
# Cork Charset File
# Adapted from CStoCS "cork.enc" by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 0001 <control>
02 0002 <control>
03 0003 <control>
04 0004 <control>
05 0005 <control>
06 0006 <control>
07 0007 <control>
08 0008 <control>
09 0009 <control>
0A 000A <control>
0B 000B <control>
0C 000C <control>
0D 000D <control>
0E 000E <control>
0F 000F <control>
10 0010 <control>
11 0011 <control>
12 0012 <control>
13 0013 <control>
14 0014 <control>
15 0015 <control>
16 0016 <control>
17 0017 <control>
18 0018 <control>
19 0019 <control>
1A 001A <control>
1B 001B <control>
1C 001C <control>
1D 001D <control>
1E 001E <control>
1F 001F <control>
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F <control>
80 0102 LATIN CAPITAL LETTER A WITH BREVE
81 0104 LATIN CAPITAL LETTER A WITH OGONEK
82 0106 LATIN CAPITAL LETTER C WITH ACUTE
83 010C LATIN CAPITAL LETTER C WITH CARON
84 010E LATIN CAPITAL LETTER D WITH CARON
85 011A LATIN CAPITAL LETTER E WITH CARON
86 0118 LATIN CAPITAL LETTER E WITH OGONEK
87 011E LATIN CAPITAL LETTER G WITH BREVE
88 0139 LATIN CAPITAL LETTER L WITH ACUTE
89 013D LATIN CAPITAL LETTER L WITH CARON
8A 0141 LATIN CAPITAL LETTER L WITH STROKE
8B 0143 LATIN CAPITAL LETTER N WITH ACUTE
8C 0147 LATIN CAPITAL LETTER N WITH CARON
8D 014A LATIN CAPITAL LETTER ENG
8E 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
8F 0154 LATIN CAPITAL LETTER R WITH ACUTE
90 0158 LATIN CAPITAL LETTER R WITH CARON
91 015A LATIN CAPITAL LETTER S WITH ACUTE
92 0160 LATIN CAPITAL LETTER S WITH CARON
93 015E LATIN CAPITAL LETTER S WITH CEDILLA
94 0164 LATIN CAPITAL LETTER T WITH CARON
95 0162 LATIN CAPITAL LETTER T WITH CEDILLA
96 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
97 016E LATIN CAPITAL LETTER U WITH RING ABOVE
98 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
99 0179 LATIN CAPITAL LETTER Z WITH ACUTE
9A 017D LATIN CAPITAL LETTER Z WITH CARON
9B 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
9C 0132 LATIN CAPITAL LIGATURE IJ
9D 0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
9E 00F0 LATIN SMALL LETTER ETH
9F 00A7 SECTION SIGN
A0 0103 LATIN SMALL LETTER A WITH BREVE
A1 0105 LATIN SMALL LETTER A WITH OGONEK
A2 0107 LATIN SMALL LETTER C WITH ACUTE
A3 010D LATIN SMALL LETTER C WITH CARON
A4 010F LATIN SMALL LETTER D WITH CARON
A5 011B LATIN SMALL LETTER E WITH CARON
A6 0119 LATIN SMALL LETTER E WITH OGONEK
A7 011F LATIN SMALL LETTER G WITH BREVE
A8 013A LATIN SMALL LETTER L WITH ACUTE
A9 013E LATIN SMALL LETTER L WITH CARON
AA 0142 LATIN SMALL LETTER L WITH STROKE
AB 0144 LATIN SMALL LETTER N WITH ACUTE
AC 0148 LATIN SMALL LETTER N WITH CARON
AD 014B LATIN SMALL LETTER ENG
AE 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
AF 0155 LATIN SMALL LETTER R WITH ACUTE
B0 0159 LATIN SMALL LETTER R WITH CARON
B1 015B LATIN SMALL LETTER S WITH ACUTE
B2 0161 LATIN SMALL LETTER S WITH CARON
B3 015F LATIN SMALL LETTER S WITH CEDILLA
B4 0165 LATIN SMALL LETTER T WITH CARON
B5 0163 LATIN SMALL LETTER T WITH CEDILLA
B6 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
B7 016F LATIN SMALL LETTER U WITH RING ABOVE
B8 00FF LATIN SMALL LETTER Y WITH DIAERESIS
B9 017A LATIN SMALL LETTER Z WITH ACUTE
BA 017E LATIN SMALL LETTER Z WITH CARON
BB 017C LATIN SMALL LETTER Z WITH DOT ABOVE
BC 0133 LATIN SMALL LIGATURE IJ
BD 00A1 INVERTED EXCLAMATION MARK
BE 00BF INVERTED QUESTION MARK
BF 00A3 POUND SIGN
C0 00C0 LATIN CAPITAL LETTER A WITH GRAVE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 00C3 LATIN CAPITAL LETTER A WITH TILDE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 00C6 LATIN CAPITAL LETTER AE
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 00C8 LATIN CAPITAL LETTER E WITH GRAVE
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 00CC LATIN CAPITAL LETTER I WITH GRAVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
D0 00D0 LATIN CAPITAL LETTER ETH
D1 00D1 LATIN CAPITAL LETTER N WITH TILDE
D2 00D2 LATIN CAPITAL LETTER O WITH GRAVE
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 00D5 LATIN CAPITAL LETTER O WITH TILDE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 0152 LATIN CAPITAL LIGATURE OE
D8 00D8 LATIN CAPITAL LETTER O WITH STROKE
D9 00D9 LATIN CAPITAL LETTER U WITH GRAVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 00DD LATIN CAPITAL LETTER Y WITH ACUTE
DE 00DE LATIN CAPITAL LETTER THORN
DF F0DF ????
E0 00E0 LATIN SMALL LETTER A WITH GRAVE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 00E3 LATIN SMALL LETTER A WITH TILDE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 00E5 LATIN SMALL LETTER A WITH RING ABOVE
E6 00E6 LATIN SMALL LETTER AE
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 00E8 LATIN SMALL LETTER E WITH GRAVE
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 00EC LATIN SMALL LETTER I WITH GRAVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 00EF LATIN SMALL LETTER I WITH DIAERESIS
F0 00F0 LATIN SMALL LETTER ETH
F1 00F1 LATIN SMALL LETTER N WITH TILDE
F2 00F2 LATIN SMALL LETTER O WITH GRAVE
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 00F5 LATIN SMALL LETTER O WITH TILDE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 0153 LATIN SMALL LIGATURE OE
F8 00F8 LATIN SMALL LETTER O WITH STROKE
F9 00F9 LATIN SMALL LETTER U WITH GRAVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 00FD LATIN SMALL LETTER Y WITH ACUTE
FE 00FE LATIN SMALL LETTER THORN
FF 00DF LATIN SMALL LETTER SHARP S

259
libucw/charset/set/ibm

@ -0,0 +1,259 @@
# IBM Charset File
# (c) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 263A WHITE SMILING FACE
02 263B BLACK SMILING FACE
03 2665 BLACK HEART SUIT
04 2666 BLACK DIAMOND SUIT
05 2663 BLACK CLUB SUIT
06 2660 BLACK SPADE SUIT
07 2022 BULLET
08 25D8 INVERSE BULLET
09 25CB WHITE CIRCLE
0A 25D9 INVERSE WHITE CIRCLE
0B 2642 MALE SIGN
0C 2640 FEMALE SIGN
0D 266A EIGHTH NOTE
0E 266B BEAMED EIGHTH NOTES
0F 263C WHITE SUN WITH RAYS
10 25B6 BLACK RIGHT-POINTING TRIANGLE
11 25C0 BLACK LEFT-POINTING TRIANGLE
12 2195 UP DOWN ARROW
13 203C DOUBLE EXCLAMATION MARK
14 00B6 PILCROW SIGN
15 00A7 SECTION SIGN
16 25AC BLACK RECTANGLE
17 21A8 UP DOWN ARROW WITH BASE
18 2191 UPWARDS ARROW
19 2193 DOWNWARDS ARROW
1A 2192 RIGHTWARDS ARROW
1B 2190 LEFTWARDS ARROW
1C 221F RIGHT ANGLE
1D 2194 LEFT RIGHT ARROW
1E 25B2 BLACK UP-POINTING TRIANGLE
1F 25BC BLACK DOWN-POINTING TRIANGLE
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 2302 HOUSE
80 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
81 00FC LATIN SMALL LETTER U WITH DIAERESIS
82 00E9 LATIN SMALL LETTER E WITH ACUTE
83 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
84 00E4 LATIN SMALL LETTER A WITH DIAERESIS
85 00E0 LATIN SMALL LETTER A WITH GRAVE
86 00E5 LATIN SMALL LETTER A WITH RING ABOVE
87 00E7 LATIN SMALL LETTER C WITH CEDILLA
88 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
89 00EB LATIN SMALL LETTER E WITH DIAERESIS
8A 00E8 LATIN SMALL LETTER E WITH GRAVE
8B 00EF LATIN SMALL LETTER I WITH DIAERESIS
8C 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
8D 00EC LATIN SMALL LETTER I WITH GRAVE
8E 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
8F 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
90 00C9 LATIN CAPITAL LETTER E WITH ACUTE
91 00E6 LATIN SMALL LETTER AE
92 00C6 LATIN CAPITAL LETTER AE
93 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
94 00F6 LATIN SMALL LETTER O WITH DIAERESIS
95 00F2 LATIN SMALL LETTER O WITH GRAVE
96 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
97 00F9 LATIN SMALL LETTER U WITH GRAVE
98 00FF LATIN SMALL LETTER Y WITH DIAERESIS
99 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
9A 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
9B 00A2 CENT SIGN
9C 00A3 POUND SIGN
9D 00A5 YEN SIGN
9E 20A7 PESETA SIGN
9F 0192 LATIN SMALL LETTER F WITH HOOK
A0 00E1 LATIN SMALL LETTER A WITH ACUTE
A1 00ED LATIN SMALL LETTER I WITH ACUTE
A2 00F3 LATIN SMALL LETTER O WITH ACUTE
A3 00FA LATIN SMALL LETTER U WITH ACUTE
A4 00F1 LATIN SMALL LETTER N WITH TILDE
A5 00D1 LATIN CAPITAL LETTER N WITH TILDE
A6 00AA FEMININE ORDINAL INDICATOR
A7 00BA MASCULINE ORDINAL INDICATOR
A8 00BF INVERTED QUESTION MARK
A9 2310 REVERSED NOT SIGN
AA 00AC NOT SIGN
AB 00BD VULGAR FRACTION ONE HALF
AC 00BC VULGAR FRACTION ONE QUARTER
AD 00A1 INVERTED EXCLAMATION MARK
AE 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AF 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
B0 2591 LIGHT SHADE
B1 2592 MEDIUM SHADE
B2 2593 DARK SHADE
B3 2502 BOX DRAWINGS LIGHT VERTICAL
B4 2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
B5 2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
B6 2562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
B7 2556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
B8 2555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
B9 2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
BA 2551 BOX DRAWINGS DOUBLE VERTICAL
BB 2557 BOX DRAWINGS DOUBLE DOWN AND LEFT
BC 255D BOX DRAWINGS DOUBLE UP AND LEFT
BD 255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
BE 255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
BF 2510 BOX DRAWINGS LIGHT DOWN AND LEFT
C0 2514 BOX DRAWINGS LIGHT UP AND RIGHT
C1 2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
C2 252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
C3 251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
C4 2500 BOX DRAWINGS LIGHT HORIZONTAL
C5 253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
C6 255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
C7 255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
C8 255A BOX DRAWINGS DOUBLE UP AND RIGHT
C9 2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT
CA 2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
CB 2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
CC 2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
CD 2550 BOX DRAWINGS DOUBLE HORIZONTAL
CE 256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
CF 2567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
D0 2568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
D1 2564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
D2 2565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
D3 2559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
D4 2558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
D5 2552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
D6 2553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
D7 256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
D8 256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
D9 2518 BOX DRAWINGS LIGHT UP AND LEFT
DA 250C BOX DRAWINGS LIGHT DOWN AND RIGHT
DB 2588 FULL BLOCK
DC 2584 LOWER HALF BLOCK
DD 258C LEFT HALF BLOCK
DE 2590 RIGHT HALF BLOCK
DF 2580 UPPER HALF BLOCK
E0 03B1 GREEK SMALL LETTER ALPHA
E1 00DF LATIN SMALL LETTER SHARP S
E2 0393 GREEK CAPITAL LETTER GAMMA
E3 03C0 GREEK SMALL LETTER PI
E4 03A3 GREEK CAPITAL LETTER SIGMA
E5 03C3 GREEK SMALL LETTER SIGMA
E6 00B5 MICRO SIGN
E7 03C4 GREEK SMALL LETTER TAU
E8 03A6 GREEK CAPITAL LETTER PHI
E9 0398 GREEK CAPITAL LETTER THETA
EA 03A9 GREEK CAPITAL LETTER OMEGA
EB 03B4 GREEK SMALL LETTER DELTA
EC 221E INFINITY
ED 03C6 GREEK SMALL LETTER PHI
EE 03B5 GREEK SMALL LETTER EPSILON
EF 2229 INTERSECTION
F0 2261 IDENTICAL TO
F1 00B1 PLUS-MINUS SIGN
F2 2265 GREATER-THAN OR EQUAL TO
F3 2264 LESS-THAN OR EQUAL TO
F4 2320 TOP HALF INTEGRAL
F5 2321 BOTTOM HALF INTEGRAL
F6 00F7 DIVISION SIGN
F7 2248 ALMOST EQUAL TO
F8 00B0 DEGREE SIGN
F9 2219 BULLET OPERATOR
FA 00B7 MIDDLE DOT
FB 221A SQUARE ROOT
FC 207F SUPERSCRIPT LATIN SMALL LETTER N
FD 00B2 SUPERSCRIPT TWO
FE 25A0 BLACK SQUARE
FF 00A0 NO-BREAK SPACE

259
libucw/charset/set/ibm-ctrl

@ -0,0 +1,259 @@
# IBM Charset File With Control Characters
# (c) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 0001 <control>
02 0002 <control>
03 0003 <control>
04 0004 <control>
05 0005 <control>
06 0006 <control>
07 0007 <control>
08 0008 <control>
09 0009 <control>
0A 000A <control>
0B 000B <control>
0C 000C <control>
0D 000D <control>
0E 000E <control>
0F 000F <control>
10 0010 <control>
11 0011 <control>
12 0012 <control>
13 0013 <control>
14 0014 <control>
15 0015 <control>
16 0016 <control>
17 0017 <control>
18 0018 <control>
19 0019 <control>
1A 001A <control>
1B 001B <control>
1C 001C <control>
1D 001D <control>
1E 001E <control>
1F 001F <control>
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 2302 HOUSE
80 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
81 00FC LATIN SMALL LETTER U WITH DIAERESIS
82 00E9 LATIN SMALL LETTER E WITH ACUTE
83 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
84 00E4 LATIN SMALL LETTER A WITH DIAERESIS
85 00E0 LATIN SMALL LETTER A WITH GRAVE
86 00E5 LATIN SMALL LETTER A WITH RING ABOVE
87 00E7 LATIN SMALL LETTER C WITH CEDILLA
88 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
89 00EB LATIN SMALL LETTER E WITH DIAERESIS
8A 00E8 LATIN SMALL LETTER E WITH GRAVE
8B 00EF LATIN SMALL LETTER I WITH DIAERESIS
8C 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
8D 00EC LATIN SMALL LETTER I WITH GRAVE
8E 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
8F 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
90 00C9 LATIN CAPITAL LETTER E WITH ACUTE
91 00E6 LATIN SMALL LETTER AE
92 00C6 LATIN CAPITAL LETTER AE
93 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
94 00F6 LATIN SMALL LETTER O WITH DIAERESIS
95 00F2 LATIN SMALL LETTER O WITH GRAVE
96 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
97 00F9 LATIN SMALL LETTER U WITH GRAVE
98 00FF LATIN SMALL LETTER Y WITH DIAERESIS
99 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
9A 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
9B 00A2 CENT SIGN
9C 00A3 POUND SIGN
9D 00A5 YEN SIGN
9E 20A7 PESETA SIGN
9F 0192 LATIN SMALL LETTER F WITH HOOK
A0 00E1 LATIN SMALL LETTER A WITH ACUTE
A1 00ED LATIN SMALL LETTER I WITH ACUTE
A2 00F3 LATIN SMALL LETTER O WITH ACUTE
A3 00FA LATIN SMALL LETTER U WITH ACUTE
A4 00F1 LATIN SMALL LETTER N WITH TILDE
A5 00D1 LATIN CAPITAL LETTER N WITH TILDE
A6 00AA FEMININE ORDINAL INDICATOR
A7 00BA MASCULINE ORDINAL INDICATOR
A8 00BF INVERTED QUESTION MARK
A9 2310 REVERSED NOT SIGN
AA 00AC NOT SIGN
AB 00BD VULGAR FRACTION ONE HALF
AC 00BC VULGAR FRACTION ONE QUARTER
AD 00A1 INVERTED EXCLAMATION MARK
AE 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AF 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
B0 2591 LIGHT SHADE
B1 2592 MEDIUM SHADE
B2 2593 DARK SHADE
B3 2502 BOX DRAWINGS LIGHT VERTICAL
B4 2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
B5 2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
B6 2562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
B7 2556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
B8 2555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
B9 2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
BA 2551 BOX DRAWINGS DOUBLE VERTICAL
BB 2557 BOX DRAWINGS DOUBLE DOWN AND LEFT
BC 255D BOX DRAWINGS DOUBLE UP AND LEFT
BD 255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
BE 255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
BF 2510 BOX DRAWINGS LIGHT DOWN AND LEFT
C0 2514 BOX DRAWINGS LIGHT UP AND RIGHT
C1 2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
C2 252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
C3 251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
C4 2500 BOX DRAWINGS LIGHT HORIZONTAL
C5 253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
C6 255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
C7 255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
C8 255A BOX DRAWINGS DOUBLE UP AND RIGHT
C9 2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT
CA 2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
CB 2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
CC 2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
CD 2550 BOX DRAWINGS DOUBLE HORIZONTAL
CE 256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
CF 2567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
D0 2568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
D1 2564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
D2 2565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
D3 2559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
D4 2558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
D5 2552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
D6 2553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
D7 256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
D8 256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
D9 2518 BOX DRAWINGS LIGHT UP AND LEFT
DA 250C BOX DRAWINGS LIGHT DOWN AND RIGHT
DB 2588 FULL BLOCK
DC 2584 LOWER HALF BLOCK
DD 258C LEFT HALF BLOCK
DE 2590 RIGHT HALF BLOCK
DF 2580 UPPER HALF BLOCK
E0 03B1 GREEK SMALL LETTER ALPHA
E1 00DF LATIN SMALL LETTER SHARP S
E2 0393 GREEK CAPITAL LETTER GAMMA
E3 03C0 GREEK SMALL LETTER PI
E4 03A3 GREEK CAPITAL LETTER SIGMA
E5 03C3 GREEK SMALL LETTER SIGMA
E6 00B5 MICRO SIGN
E7 03C4 GREEK SMALL LETTER TAU
E8 03A6 GREEK CAPITAL LETTER PHI
E9 0398 GREEK CAPITAL LETTER THETA
EA 03A9 GREEK CAPITAL LETTER OMEGA
EB 03B4 GREEK SMALL LETTER DELTA
EC 221E INFINITY
ED 03C6 GREEK SMALL LETTER PHI
EE 03B5 GREEK SMALL LETTER EPSILON
EF 2229 INTERSECTION
F0 2261 IDENTICAL TO
F1 00B1 PLUS-MINUS SIGN
F2 2265 GREATER-THAN OR EQUAL TO
F3 2264 LESS-THAN OR EQUAL TO
F4 2320 TOP HALF INTEGRAL
F5 2321 BOTTOM HALF INTEGRAL
F6 00F7 DIVISION SIGN
F7 2248 ALMOST EQUAL TO
F8 00B0 DEGREE SIGN
F9 2219 BULLET OPERATOR
FA 00B7 MIDDLE DOT
FB 221A SQUARE ROOT
FC 207F SUPERSCRIPT LATIN SMALL LETTER N
FD 00B2 SUPERSCRIPT TWO
FE 25A0 BLACK SQUARE
FF 00A0 NO-BREAK SPACE

260
libucw/charset/set/kamen

@ -0,0 +1,260 @@
# Kamenicky Brothers Charset File
# Czech characters extracted from CStoCS "kam.enc" and others copied from
# IBM charset by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 263A WHITE SMILING FACE
02 263B BLACK SMILING FACE
03 2665 BLACK HEART SUIT
04 2666 BLACK DIAMOND SUIT
05 2663 BLACK CLUB SUIT
06 2660 BLACK SPADE SUIT
07 2022 BULLET
08 25D8 INVERSE BULLET
09 25CB WHITE CIRCLE
0A 25D9 INVERSE WHITE CIRCLE
0B 2642 MALE SIGN
0C 2640 FEMALE SIGN
0D 266A EIGHTH NOTE
0E 266B BEAMED EIGHTH NOTES
0F 263C WHITE SUN WITH RAYS
10 25B6 BLACK RIGHT-POINTING TRIANGLE
11 25C0 BLACK LEFT-POINTING TRIANGLE
12 2195 UP DOWN ARROW
13 203C DOUBLE EXCLAMATION MARK
14 00B6 PILCROW SIGN
15 00A7 SECTION SIGN
16 25AC BLACK RECTANGLE
17 21A8 UP DOWN ARROW WITH BASE
18 2191 UPWARDS ARROW
19 2193 DOWNWARDS ARROW
1A 2192 RIGHTWARDS ARROW
1B 2190 LEFTWARDS ARROW
1C 221F RIGHT ANGLE
1D 2194 LEFT RIGHT ARROW
1E 25B2 BLACK UP-POINTING TRIANGLE
1F 25BC BLACK DOWN-POINTING TRIANGLE
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 2302 HOUSE
80 010C LATIN CAPITAL LETTER C WITH CARON
81 00FC LATIN SMALL LETTER U WITH DIAERESIS
82 00E9 LATIN SMALL LETTER E WITH ACUTE
83 010F LATIN SMALL LETTER D WITH CARON
84 00E4 LATIN SMALL LETTER A WITH DIAERESIS
85 010E LATIN CAPITAL LETTER D WITH CARON
86 0164 LATIN CAPITAL LETTER T WITH CARON
87 010D LATIN SMALL LETTER C WITH CARON
88 011B LATIN SMALL LETTER E WITH CARON
89 011A LATIN CAPITAL LETTER E WITH CARON
8A 0139 LATIN CAPITAL LETTER L WITH ACUTE
8B 00CD LATIN CAPITAL LETTER I WITH ACUTE
8C 013E LATIN SMALL LETTER L WITH CARON
8D 013A LATIN SMALL LETTER L WITH ACUTE
8E 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
8F 00C1 LATIN CAPITAL LETTER A WITH ACUTE
90 00C9 LATIN CAPITAL LETTER E WITH ACUTE
91 017E LATIN SMALL LETTER Z WITH CARON
92 017D LATIN CAPITAL LETTER Z WITH CARON
93 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
94 00F6 LATIN SMALL LETTER O WITH DIAERESIS
95 00D3 LATIN CAPITAL LETTER O WITH ACUTE
96 016F LATIN SMALL LETTER U WITH RING ABOVE
97 00DA LATIN CAPITAL LETTER U WITH ACUTE
98 00FD LATIN SMALL LETTER Y WITH ACUTE
99 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
9A 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
9B 0160 LATIN CAPITAL LETTER S WITH CARON
9C 013D LATIN CAPITAL LETTER L WITH CARON
9D 00DD LATIN CAPITAL LETTER Y WITH ACUTE
9E 0158 LATIN CAPITAL LETTER R WITH CARON
9F 0165 LATIN SMALL LETTER T WITH CARON
A0 00E1 LATIN SMALL LETTER A WITH ACUTE
A1 00ED LATIN SMALL LETTER I WITH ACUTE
A2 00F3 LATIN SMALL LETTER O WITH ACUTE
A3 00FA LATIN SMALL LETTER U WITH ACUTE
A4 0148 LATIN SMALL LETTER N WITH CARON
A5 0147 LATIN CAPITAL LETTER N WITH CARON
A6 016E LATIN CAPITAL LETTER U WITH RING ABOVE
A7 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
A8 0161 LATIN SMALL LETTER S WITH CARON
A9 0159 LATIN SMALL LETTER R WITH CARON
AA 0155 LATIN SMALL LETTER R WITH ACUTE
AB 0154 LATIN CAPITAL LETTER R WITH ACUTE
AC 00BC VULGAR FRACTION ONE QUARTER
AD 00A7 SECTION SIGN
AE 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
AF 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
B0 2591 LIGHT SHADE
B1 2592 MEDIUM SHADE
B2 2593 DARK SHADE
B3 2502 BOX DRAWINGS LIGHT VERTICAL
B4 2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
B5 2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
B6 2562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
B7 2556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
B8 2555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
B9 2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
BA 2551 BOX DRAWINGS DOUBLE VERTICAL
BB 2557 BOX DRAWINGS DOUBLE DOWN AND LEFT
BC 255D BOX DRAWINGS DOUBLE UP AND LEFT
BD 255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
BE 255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
BF 2510 BOX DRAWINGS LIGHT DOWN AND LEFT
C0 2514 BOX DRAWINGS LIGHT UP AND RIGHT
C1 2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
C2 252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
C3 251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
C4 2500 BOX DRAWINGS LIGHT HORIZONTAL
C5 253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
C6 255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
C7 255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
C8 255A BOX DRAWINGS DOUBLE UP AND RIGHT
C9 2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT
CA 2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
CB 2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
CC 2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
CD 2550 BOX DRAWINGS DOUBLE HORIZONTAL
CE 256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
CF 2567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
D0 2568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
D1 2564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
D2 2565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
D3 2559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
D4 2558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
D5 2552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
D6 2553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
D7 256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
D8 256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
D9 2518 BOX DRAWINGS LIGHT UP AND LEFT
DA 250C BOX DRAWINGS LIGHT DOWN AND RIGHT
DB 2588 FULL BLOCK
DC 2584 LOWER HALF BLOCK
DD 258C LEFT HALF BLOCK
DE 2590 RIGHT HALF BLOCK
DF 2580 UPPER HALF BLOCK
E0 03B1 GREEK SMALL LETTER ALPHA
E1 03B2 GREEK SMALL LETTER BETA
E2 0194 LATIN CAPITAL LETTER GAMMA
E3 03C0 GREEK SMALL LETTER PI
E4 03A3 GREEK CAPITAL LETTER SIGMA
E5 03C3 GREEK SMALL LETTER SIGMA
E6 03BC GREEK SMALL LETTER MU
E7 03C4 GREEK SMALL LETTER TAU
E8 03A6 GREEK CAPITAL LETTER PHI
E9 0398 GREEK CAPITAL LETTER THETA
EA 03A9 GREEK CAPITAL LETTER OMEGA
EB 03B4 GREEK SMALL LETTER DELTA
EC 221E INFINITY
ED 03C6 GREEK SMALL LETTER PHI
EE 2208 ELEMENT OF
EF 2229 INTERSECTION
F0 224D EQUIVALENT TO
F1 00B1 PLUS-MINUS SIGN
F2 2265 GREATER-THAN OR EQUAL TO
F3 2264 LESS-THAN OR EQUAL TO
F4 2320 TOP HALF INTEGRAL
F5 2321 BOTTOM HALF INTEGRAL
F6 00F7 DIVISION SIGN
F7 2248 ALMOST EQUAL TO
F8 00B0 DEGREE SIGN
F9 2219 BULLET OPERATOR
FA 00B7 MIDDLE DOT
FB 221A SQUARE ROOT
FC 207F SUPERSCRIPT LATIN SMALL LETTER N
FD 00B2 SUPERSCRIPT TWO
FE 25A0 BLACK SQUARE
FF 00A0 NO-BREAK SPACE

260
libucw/charset/set/kamen-ctrl

@ -0,0 +1,260 @@
# Kamenicky Brothers Charset File With Control Characters
# Czech characters extracted from CStoCS "kam.enc" and others copied from
# IBM charset by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 0001 <control>
02 0002 <control>
03 0003 <control>
04 0004 <control>
05 0005 <control>
06 0006 <control>
07 0007 <control>
08 0008 <control>
09 0009 <control>
0A 000A <control>
0B 000B <control>
0C 000C <control>
0D 000D <control>
0E 000E <control>
0F 000F <control>
10 0010 <control>
11 0011 <control>
12 0012 <control>
13 0013 <control>
14 0014 <control>
15 0015 <control>
16 0016 <control>
17 0017 <control>
18 0018 <control>
19 0019 <control>
1A 001A <control>
1B 001B <control>
1C 001C <control>
1D 001D <control>
1E 001E <control>
1F 001F <control>
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 2302 HOUSE
80 010C LATIN CAPITAL LETTER C WITH CARON
81 00FC LATIN SMALL LETTER U WITH DIAERESIS
82 00E9 LATIN SMALL LETTER E WITH ACUTE
83 010F LATIN SMALL LETTER D WITH CARON
84 00E4 LATIN SMALL LETTER A WITH DIAERESIS
85 010E LATIN CAPITAL LETTER D WITH CARON
86 0164 LATIN CAPITAL LETTER T WITH CARON
87 010D LATIN SMALL LETTER C WITH CARON
88 011B LATIN SMALL LETTER E WITH CARON
89 011A LATIN CAPITAL LETTER E WITH CARON
8A 0139 LATIN CAPITAL LETTER L WITH ACUTE
8B 00CD LATIN CAPITAL LETTER I WITH ACUTE
8C 013E LATIN SMALL LETTER L WITH CARON
8D 013A LATIN SMALL LETTER L WITH ACUTE
8E 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
8F 00C1 LATIN CAPITAL LETTER A WITH ACUTE
90 00C9 LATIN CAPITAL LETTER E WITH ACUTE
91 017E LATIN SMALL LETTER Z WITH CARON
92 017D LATIN CAPITAL LETTER Z WITH CARON
93 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
94 00F6 LATIN SMALL LETTER O WITH DIAERESIS
95 00D3 LATIN CAPITAL LETTER O WITH ACUTE
96 016F LATIN SMALL LETTER U WITH RING ABOVE
97 00DA LATIN CAPITAL LETTER U WITH ACUTE
98 00FD LATIN SMALL LETTER Y WITH ACUTE
99 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
9A 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
9B 0160 LATIN CAPITAL LETTER S WITH CARON
9C 013D LATIN CAPITAL LETTER L WITH CARON
9D 00DD LATIN CAPITAL LETTER Y WITH ACUTE
9E 0158 LATIN CAPITAL LETTER R WITH CARON
9F 0165 LATIN SMALL LETTER T WITH CARON
A0 00E1 LATIN SMALL LETTER A WITH ACUTE
A1 00ED LATIN SMALL LETTER I WITH ACUTE
A2 00F3 LATIN SMALL LETTER O WITH ACUTE
A3 00FA LATIN SMALL LETTER U WITH ACUTE
A4 0148 LATIN SMALL LETTER N WITH CARON
A5 0147 LATIN CAPITAL LETTER N WITH CARON
A6 016E LATIN CAPITAL LETTER U WITH RING ABOVE
A7 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
A8 0161 LATIN SMALL LETTER S WITH CARON
A9 0159 LATIN SMALL LETTER R WITH CARON
AA 0155 LATIN SMALL LETTER R WITH ACUTE
AB 0154 LATIN CAPITAL LETTER R WITH ACUTE
AC 00BC VULGAR FRACTION ONE QUARTER
AD 00A7 SECTION SIGN
AE 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
AF 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
B0 2591 LIGHT SHADE
B1 2592 MEDIUM SHADE
B2 2593 DARK SHADE
B3 2502 BOX DRAWINGS LIGHT VERTICAL
B4 2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
B5 2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
B6 2562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
B7 2556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
B8 2555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
B9 2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
BA 2551 BOX DRAWINGS DOUBLE VERTICAL
BB 2557 BOX DRAWINGS DOUBLE DOWN AND LEFT
BC 255D BOX DRAWINGS DOUBLE UP AND LEFT
BD 255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
BE 255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
BF 2510 BOX DRAWINGS LIGHT DOWN AND LEFT
C0 2514 BOX DRAWINGS LIGHT UP AND RIGHT
C1 2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
C2 252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
C3 251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
C4 2500 BOX DRAWINGS LIGHT HORIZONTAL
C5 253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
C6 255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
C7 255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
C8 255A BOX DRAWINGS DOUBLE UP AND RIGHT
C9 2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT
CA 2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
CB 2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
CC 2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
CD 2550 BOX DRAWINGS DOUBLE HORIZONTAL
CE 256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
CF 2567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
D0 2568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
D1 2564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
D2 2565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
D3 2559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
D4 2558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
D5 2552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
D6 2553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
D7 256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
D8 256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
D9 2518 BOX DRAWINGS LIGHT UP AND LEFT
DA 250C BOX DRAWINGS LIGHT DOWN AND RIGHT
DB 2588 FULL BLOCK
DC 2584 LOWER HALF BLOCK
DD 258C LEFT HALF BLOCK
DE 2590 RIGHT HALF BLOCK
DF 2580 UPPER HALF BLOCK
E0 03B1 GREEK SMALL LETTER ALPHA
E1 03B2 GREEK SMALL LETTER BETA
E2 0194 LATIN CAPITAL LETTER GAMMA
E3 03C0 GREEK SMALL LETTER PI
E4 03A3 GREEK CAPITAL LETTER SIGMA
E5 03C3 GREEK SMALL LETTER SIGMA
E6 03BC GREEK SMALL LETTER MU
E7 03C4 GREEK SMALL LETTER TAU
E8 03A6 GREEK CAPITAL LETTER PHI
E9 0398 GREEK CAPITAL LETTER THETA
EA 03A9 GREEK CAPITAL LETTER OMEGA
EB 03B4 GREEK SMALL LETTER DELTA
EC 221E INFINITY
ED 03C6 GREEK SMALL LETTER PHI
EE 2208 ELEMENT OF
EF 2229 INTERSECTION
F0 224D EQUIVALENT TO
F1 00B1 PLUS-MINUS SIGN
F2 2265 GREATER-THAN OR EQUAL TO
F3 2264 LESS-THAN OR EQUAL TO
F4 2320 TOP HALF INTEGRAL
F5 2321 BOTTOM HALF INTEGRAL
F6 00F7 DIVISION SIGN
F7 2248 ALMOST EQUAL TO
F8 00B0 DEGREE SIGN
F9 2219 BULLET OPERATOR
FA 00B7 MIDDLE DOT
FB 221A SQUARE ROOT
FC 207F SUPERSCRIPT LATIN SMALL LETTER N
FD 00B2 SUPERSCRIPT TWO
FE 25A0 BLACK SQUARE
FF 00A0 NO-BREAK SPACE

259
libucw/charset/set/koi8

@ -0,0 +1,259 @@
# KOI-8 CS Charset File
# Adapted from CStoCS "koi8.enc" by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 0001 <control>
02 0002 <control>
03 0003 <control>
04 0004 <control>
05 0005 <control>
06 0006 <control>
07 0007 <control>
08 0008 <control>
09 0009 <control>
0A 000A <control>
0B 000B <control>
0C 000C <control>
0D 000D <control>
0E 000E <control>
0F 000F <control>
10 0010 <control>
11 0011 <control>
12 0012 <control>
13 0013 <control>
14 0014 <control>
15 0015 <control>
16 0016 <control>
17 0017 <control>
18 0018 <control>
19 0019 <control>
1A 001A <control>
1B 001B <control>
1C 001C <control>
1D 001D <control>
1E 001E <control>
1F 001F <control>
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F <control>
80 FFFD REPLACEMENT CHARACTER
81 FFFD REPLACEMENT CHARACTER
82 FFFD REPLACEMENT CHARACTER
83 FFFD REPLACEMENT CHARACTER
84 FFFD REPLACEMENT CHARACTER
85 FFFD REPLACEMENT CHARACTER
86 FFFD REPLACEMENT CHARACTER
87 FFFD REPLACEMENT CHARACTER
88 FFFD REPLACEMENT CHARACTER
89 FFFD REPLACEMENT CHARACTER
8A FFFD REPLACEMENT CHARACTER
8B FFFD REPLACEMENT CHARACTER
8C FFFD REPLACEMENT CHARACTER
8D FFFD REPLACEMENT CHARACTER
8E FFFD REPLACEMENT CHARACTER
8F FFFD REPLACEMENT CHARACTER
90 FFFD REPLACEMENT CHARACTER
91 FFFD REPLACEMENT CHARACTER
92 FFFD REPLACEMENT CHARACTER
93 FFFD REPLACEMENT CHARACTER
94 FFFD REPLACEMENT CHARACTER
95 FFFD REPLACEMENT CHARACTER
96 FFFD REPLACEMENT CHARACTER
97 FFFD REPLACEMENT CHARACTER
98 FFFD REPLACEMENT CHARACTER
99 FFFD REPLACEMENT CHARACTER
9A FFFD REPLACEMENT CHARACTER
9B FFFD REPLACEMENT CHARACTER
9C FFFD REPLACEMENT CHARACTER
9D FFFD REPLACEMENT CHARACTER
9E FFFD REPLACEMENT CHARACTER
9F FFFD REPLACEMENT CHARACTER
A0 FFFD REPLACEMENT CHARACTER
A1 FFFD REPLACEMENT CHARACTER
A2 FFFD REPLACEMENT CHARACTER
A3 FFFD REPLACEMENT CHARACTER
A4 FFFD REPLACEMENT CHARACTER
A5 FFFD REPLACEMENT CHARACTER
A6 FFFD REPLACEMENT CHARACTER
A7 FFFD REPLACEMENT CHARACTER
A8 FFFD REPLACEMENT CHARACTER
A9 FFFD REPLACEMENT CHARACTER
AA FFFD REPLACEMENT CHARACTER
AB FFFD REPLACEMENT CHARACTER
AC FFFD REPLACEMENT CHARACTER
AD FFFD REPLACEMENT CHARACTER
AE FFFD REPLACEMENT CHARACTER
AF FFFD REPLACEMENT CHARACTER
B0 FFFD REPLACEMENT CHARACTER
B1 FFFD REPLACEMENT CHARACTER
B2 FFFD REPLACEMENT CHARACTER
B3 FFFD REPLACEMENT CHARACTER
B4 FFFD REPLACEMENT CHARACTER
B5 FFFD REPLACEMENT CHARACTER
B6 FFFD REPLACEMENT CHARACTER
B7 FFFD REPLACEMENT CHARACTER
B8 FFFD REPLACEMENT CHARACTER
B9 FFFD REPLACEMENT CHARACTER
BA FFFD REPLACEMENT CHARACTER
BB FFFD REPLACEMENT CHARACTER
BC FFFD REPLACEMENT CHARACTER
BD FFFD REPLACEMENT CHARACTER
BE FFFD REPLACEMENT CHARACTER
BF FFFD REPLACEMENT CHARACTER
C0 FFFD REPLACEMENT CHARACTER
C1 00E1 LATIN SMALL LETTER A WITH ACUTE
C2 FFFD REPLACEMENT CHARACTER
C3 010D LATIN SMALL LETTER C WITH CARON
C4 010F LATIN SMALL LETTER D WITH CARON
C5 011B LATIN SMALL LETTER E WITH CARON
C6 0155 LATIN SMALL LETTER R WITH ACUTE
C7 F002 ????
C8 00FC LATIN SMALL LETTER U WITH DIAERESIS
C9 00ED LATIN SMALL LETTER I WITH ACUTE
CA 016F LATIN SMALL LETTER U WITH RING ABOVE
CB 013A LATIN SMALL LETTER L WITH ACUTE
CC 013E LATIN SMALL LETTER L WITH CARON
CD 00F6 LATIN SMALL LETTER O WITH DIAERESIS
CE 0148 LATIN SMALL LETTER N WITH CARON
CF 00F3 LATIN SMALL LETTER O WITH ACUTE
D0 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
D1 00E4 LATIN SMALL LETTER A WITH DIAERESIS
D2 0159 LATIN SMALL LETTER R WITH CARON
D3 0161 LATIN SMALL LETTER S WITH CARON
D4 0165 LATIN SMALL LETTER T WITH CARON
D5 00FA LATIN SMALL LETTER U WITH ACUTE
D6 FFFD REPLACEMENT CHARACTER
D7 00E9 LATIN SMALL LETTER E WITH ACUTE
D8 00E0 LATIN SMALL LETTER A WITH GRAVE
D9 00FD LATIN SMALL LETTER Y WITH ACUTE
DA 017E LATIN SMALL LETTER Z WITH CARON
DB FFFD REPLACEMENT CHARACTER
DC 030C COMBINING CARON
DD FFFD REPLACEMENT CHARACTER
DE 0302 COMBINING CIRCUMFLEX ACCENT
DF FFFD REPLACEMENT CHARACTER
E0 00B4 ACUTE ACCENT
E1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
E2 FFFD REPLACEMENT CHARACTER
E3 010C LATIN CAPITAL LETTER C WITH CARON
E4 010E LATIN CAPITAL LETTER D WITH CARON
E5 011A LATIN CAPITAL LETTER E WITH CARON
E6 0154 LATIN CAPITAL LETTER R WITH ACUTE
E7 F000 ????
E8 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
E9 00CD LATIN CAPITAL LETTER I WITH ACUTE
EA 016E LATIN CAPITAL LETTER U WITH RING ABOVE
EB 0139 LATIN CAPITAL LETTER L WITH ACUTE
EC 013D LATIN CAPITAL LETTER L WITH CARON
ED 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
EE 0147 LATIN CAPITAL LETTER N WITH CARON
EF 00D3 LATIN CAPITAL LETTER O WITH ACUTE
F0 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
F1 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
F2 0158 LATIN CAPITAL LETTER R WITH CARON
F3 0160 LATIN CAPITAL LETTER S WITH CARON
F4 0164 LATIN CAPITAL LETTER T WITH CARON
F5 00DA LATIN CAPITAL LETTER U WITH ACUTE
F6 FFFD REPLACEMENT CHARACTER
F7 00C9 LATIN CAPITAL LETTER E WITH ACUTE
F8 0102 LATIN CAPITAL LETTER A WITH BREVE
F9 00DD LATIN CAPITAL LETTER Y WITH ACUTE
FA 017D LATIN CAPITAL LETTER Z WITH CARON
FB FFFD REPLACEMENT CHARACTER
FC FFFD REPLACEMENT CHARACTER
FD FFFD REPLACEMENT CHARACTER
FE 00B0 DEGREE SIGN
FF FFFD REPLACEMENT CHARACTER

259
libucw/charset/set/mac

@ -0,0 +1,259 @@
# Macintosh Charset File
# Adapted from CStoCS "mac.enc" by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 0001 <control>
02 0002 <control>
03 0003 <control>
04 0004 <control>
05 0005 <control>
06 0006 <control>
07 0007 <control>
08 0008 <control>
09 0009 <control>
0A 000A <control>
0B 000B <control>
0C 000C <control>
0D 000D <control>
0E 000E <control>
0F 000F <control>
10 0010 <control>
11 0011 <control>
12 0012 <control>
13 0013 <control>
14 0014 <control>
15 0015 <control>
16 0016 <control>
17 0017 <control>
18 0018 <control>
19 0019 <control>
1A 001A <control>
1B 001B <control>
1C 001C <control>
1D 001D <control>
1E 001E <control>
1F 001F <control>
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F <control>
80 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
81 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
82 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
83 00C9 LATIN CAPITAL LETTER E WITH ACUTE
84 00D1 LATIN CAPITAL LETTER N WITH TILDE
85 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
86 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
87 00E1 LATIN SMALL LETTER A WITH ACUTE
88 00E0 LATIN SMALL LETTER A WITH GRAVE
89 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
8A 00E4 LATIN SMALL LETTER A WITH DIAERESIS
8B 00E3 LATIN SMALL LETTER A WITH TILDE
8C 00E5 LATIN SMALL LETTER A WITH RING ABOVE
8D 00E7 LATIN SMALL LETTER C WITH CEDILLA
8E 00E9 LATIN SMALL LETTER E WITH ACUTE
8F 00E8 LATIN SMALL LETTER E WITH GRAVE
90 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
91 00EB LATIN SMALL LETTER E WITH DIAERESIS
92 00ED LATIN SMALL LETTER I WITH ACUTE
93 00EC LATIN SMALL LETTER I WITH GRAVE
94 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
95 00EF LATIN SMALL LETTER I WITH DIAERESIS
96 00F1 LATIN SMALL LETTER N WITH TILDE
97 00F3 LATIN SMALL LETTER O WITH ACUTE
98 00F2 LATIN SMALL LETTER O WITH GRAVE
99 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
9A 00F6 LATIN SMALL LETTER O WITH DIAERESIS
9B 00F5 LATIN SMALL LETTER O WITH TILDE
9C 00FA LATIN SMALL LETTER U WITH ACUTE
9D 00F9 LATIN SMALL LETTER U WITH GRAVE
9E 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
9F 00FC LATIN SMALL LETTER U WITH DIAERESIS
A0 2020 DAGGER
A1 00B0 DEGREE SIGN
A2 00A2 CENT SIGN
A3 00A3 POUND SIGN
A4 00A7 SECTION SIGN
A5 2022 BULLET
A6 00B6 PILCROW SIGN
A7 00DF LATIN SMALL LETTER SHARP S
A8 00AE REGISTERED SIGN
A9 00A9 COPYRIGHT SIGN
AA 2122 TRADE MARK SIGN
AB 00B4 ACUTE ACCENT
AC 0308 COMBINING DIAERESIS
AD 2260 NOT EQUAL TO
AE 00C6 LATIN CAPITAL LETTER AE
AF 00D8 LATIN CAPITAL LETTER O WITH STROKE
B0 221E INFINITY
B1 00B1 PLUS-MINUS SIGN
B2 2264 LESS-THAN OR EQUAL TO
B3 2265 GREATER-THAN OR EQUAL TO
B4 00A5 YEN SIGN
B5 03BC GREEK SMALL LETTER MU
B6 2202 PARTIAL DIFFERENTIAL
B7 2211 N-ARY SUMMATION
B8 220F N-ARY PRODUCT
B9 03C0 GREEK SMALL LETTER PI
BA 222B INTEGRAL
BB 00AA FEMININE ORDINAL INDICATOR
BC 00BA MASCULINE ORDINAL INDICATOR
BD 03A9 GREEK CAPITAL LETTER OMEGA
BE 00E6 LATIN SMALL LETTER AE
BF 00F8 LATIN SMALL LETTER O WITH STROKE
C0 00BF INVERTED QUESTION MARK
C1 00A1 INVERTED EXCLAMATION MARK
C2 00AC NOT SIGN
C3 221A SQUARE ROOT
C4 F003 ????
C5 2248 ALMOST EQUAL TO
C6 0394 GREEK CAPITAL LETTER DELTA
C7 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
C8 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
C9 0EAF LAO ELLIPSIS
CA 00A0 NO-BREAK SPACE
CB 00C0 LATIN CAPITAL LETTER A WITH GRAVE
CC 00C3 LATIN CAPITAL LETTER A WITH TILDE
CD 00D5 LATIN CAPITAL LETTER O WITH TILDE
CE 0152 LATIN CAPITAL LIGATURE OE
CF 0153 LATIN SMALL LIGATURE OE
D0 2014 EM DASH
D1 2013 EN DASH
D2 201C LEFT DOUBLE QUOTATION MARK
D3 201D RIGHT DOUBLE QUOTATION MARK
D4 2018 LEFT SINGLE QUOTATION MARK
D5 2019 RIGHT SINGLE QUOTATION MARK
D6 00F7 DIVISION SIGN
D7 22C4 DIAMOND OPERATOR
D8 00FF LATIN SMALL LETTER Y WITH DIAERESIS
D9 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
DA 2044 FRACTION SLASH
DB 00A4 CURRENCY SIGN
DC 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
DD 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
DE FB01 LATIN SMALL LIGATURE FI
DF FB02 LATIN SMALL LIGATURE FL
E0 2021 DOUBLE DAGGER
E1 00B7 MIDDLE DOT
E2 201A SINGLE LOW-9 QUOTATION MARK
E3 201E DOUBLE LOW-9 QUOTATION MARK
E4 2030 PER MILLE SIGN
E5 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
E6 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
E7 00C1 LATIN CAPITAL LETTER A WITH ACUTE
E8 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
E9 00C8 LATIN CAPITAL LETTER E WITH GRAVE
EA 00CD LATIN CAPITAL LETTER I WITH ACUTE
EB 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
EC 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
ED 00CC LATIN CAPITAL LETTER I WITH GRAVE
EE 00D3 LATIN CAPITAL LETTER O WITH ACUTE
EF 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
F0 FFFD REPLACEMENT CHARACTER
F1 00D2 LATIN CAPITAL LETTER O WITH GRAVE
F2 00DA LATIN CAPITAL LETTER U WITH ACUTE
F3 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
F4 00D9 LATIN CAPITAL LETTER U WITH GRAVE
F5 0131 LATIN SMALL LETTER DOTLESS I
F6 0302 COMBINING CIRCUMFLEX ACCENT
F7 0303 COMBINING TILDE
F8 0304 COMBINING MACRON
F9 0306 COMBINING BREVE
FA 02D9 DOT ABOVE
FB 030A COMBINING RING ABOVE
FC 0327 COMBINING CEDILLA
FD 030B COMBINING DOUBLE ACUTE ACCENT
FE 0328 COMBINING OGONEK
FF 030C COMBINING CARON

259
libucw/charset/set/macce

@ -0,0 +1,259 @@
# Czech Macintosh Charset File
# Adapted from CStoCS "macce.enc" by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 0001 <control>
02 0002 <control>
03 0003 <control>
04 0004 <control>
05 0005 <control>
06 0006 <control>
07 0007 <control>
08 0008 <control>
09 0009 <control>
0A 000A <control>
0B 000B <control>
0C 000C <control>
0D 000D <control>
0E 000E <control>
0F 000F <control>
10 0010 <control>
11 0011 <control>
12 0012 <control>
13 0013 <control>
14 0014 <control>
15 0015 <control>
16 0016 <control>
17 0017 <control>
18 0018 <control>
19 0019 <control>
1A 001A <control>
1B 001B <control>
1C 001C <control>
1D 001D <control>
1E 001E <control>
1F 001F <control>
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F <control>
80 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
81 0100 LATIN CAPITAL LETTER A WITH MACRON
82 0101 LATIN SMALL LETTER A WITH MACRON
83 00C9 LATIN CAPITAL LETTER E WITH ACUTE
84 0104 LATIN CAPITAL LETTER A WITH OGONEK
85 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
86 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
87 00E1 LATIN SMALL LETTER A WITH ACUTE
88 0105 LATIN SMALL LETTER A WITH OGONEK
89 010C LATIN CAPITAL LETTER C WITH CARON
8A 00E4 LATIN SMALL LETTER A WITH DIAERESIS
8B 010D LATIN SMALL LETTER C WITH CARON
8C 0106 LATIN CAPITAL LETTER C WITH ACUTE
8D 0107 LATIN SMALL LETTER C WITH ACUTE
8E 00E9 LATIN SMALL LETTER E WITH ACUTE
8F 0179 LATIN CAPITAL LETTER Z WITH ACUTE
90 017A LATIN SMALL LETTER Z WITH ACUTE
91 010E LATIN CAPITAL LETTER D WITH CARON
92 00ED LATIN SMALL LETTER I WITH ACUTE
93 010F LATIN SMALL LETTER D WITH CARON
94 0112 LATIN CAPITAL LETTER E WITH MACRON
95 0113 LATIN SMALL LETTER E WITH MACRON
96 0116 LATIN CAPITAL LETTER E WITH DOT ABOVE
97 00F3 LATIN SMALL LETTER O WITH ACUTE
98 0117 LATIN SMALL LETTER E WITH DOT ABOVE
99 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
9A 00F6 LATIN SMALL LETTER O WITH DIAERESIS
9B 00F5 LATIN SMALL LETTER O WITH TILDE
9C 00FA LATIN SMALL LETTER U WITH ACUTE
9D 011A LATIN CAPITAL LETTER E WITH CARON
9E 011B LATIN SMALL LETTER E WITH CARON
9F 00FC LATIN SMALL LETTER U WITH DIAERESIS
A0 2020 DAGGER
A1 00B0 DEGREE SIGN
A2 0118 LATIN CAPITAL LETTER E WITH OGONEK
A3 00A3 POUND SIGN
A4 00A7 SECTION SIGN
A5 2022 BULLET
A6 00B6 PILCROW SIGN
A7 00DF LATIN SMALL LETTER SHARP S
A8 00AE REGISTERED SIGN
A9 00A9 COPYRIGHT SIGN
AA 2122 TRADE MARK SIGN
AB 0119 LATIN SMALL LETTER E WITH OGONEK
AC 0308 COMBINING DIAERESIS
AD 2260 NOT EQUAL TO
AE 01F5 LATIN SMALL LETTER G WITH ACUTE
AF 012E LATIN CAPITAL LETTER I WITH OGONEK
B0 012F LATIN SMALL LETTER I WITH OGONEK
B1 012A LATIN CAPITAL LETTER I WITH MACRON
B2 2264 LESS-THAN OR EQUAL TO
B3 2265 GREATER-THAN OR EQUAL TO
B4 012B LATIN SMALL LETTER I WITH MACRON
B5 0136 LATIN CAPITAL LETTER K WITH CEDILLA
B6 2202 PARTIAL DIFFERENTIAL
B7 2211 N-ARY SUMMATION
B8 0142 LATIN SMALL LETTER L WITH STROKE
B9 013B LATIN CAPITAL LETTER L WITH CEDILLA
BA 013C LATIN SMALL LETTER L WITH CEDILLA
BB 013D LATIN CAPITAL LETTER L WITH CARON
BC 013E LATIN SMALL LETTER L WITH CARON
BD 0139 LATIN CAPITAL LETTER L WITH ACUTE
BE 013A LATIN SMALL LETTER L WITH ACUTE
BF 0145 LATIN CAPITAL LETTER N WITH CEDILLA
C0 0146 LATIN SMALL LETTER N WITH CEDILLA
C1 0143 LATIN CAPITAL LETTER N WITH ACUTE
C2 00AC NOT SIGN
C3 221A SQUARE ROOT
C4 0144 LATIN SMALL LETTER N WITH ACUTE
C5 0147 LATIN CAPITAL LETTER N WITH CARON
C6 0394 GREEK CAPITAL LETTER DELTA
C7 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
C8 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
C9 0EAF LAO ELLIPSIS
CA 00A0 NO-BREAK SPACE
CB 0148 LATIN SMALL LETTER N WITH CARON
CC 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
CD 00D5 LATIN CAPITAL LETTER O WITH TILDE
CE 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
CF 014C LATIN CAPITAL LETTER O WITH MACRON
D0 2014 EM DASH
D1 2013 EN DASH
D2 201C LEFT DOUBLE QUOTATION MARK
D3 201D RIGHT DOUBLE QUOTATION MARK
D4 2018 LEFT SINGLE QUOTATION MARK
D5 2019 RIGHT SINGLE QUOTATION MARK
D6 00F7 DIVISION SIGN
D7 22C4 DIAMOND OPERATOR
D8 014D LATIN SMALL LETTER O WITH MACRON
D9 0154 LATIN CAPITAL LETTER R WITH ACUTE
DA 0155 LATIN SMALL LETTER R WITH ACUTE
DB 0158 LATIN CAPITAL LETTER R WITH CARON
DC 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
DD 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
DE 0159 LATIN SMALL LETTER R WITH CARON
DF 0156 LATIN CAPITAL LETTER R WITH CEDILLA
E0 0157 LATIN SMALL LETTER R WITH CEDILLA
E1 0160 LATIN CAPITAL LETTER S WITH CARON
E2 201A SINGLE LOW-9 QUOTATION MARK
E3 201E DOUBLE LOW-9 QUOTATION MARK
E4 0161 LATIN SMALL LETTER S WITH CARON
E5 015A LATIN CAPITAL LETTER S WITH ACUTE
E6 015B LATIN SMALL LETTER S WITH ACUTE
E7 00C1 LATIN CAPITAL LETTER A WITH ACUTE
E8 0164 LATIN CAPITAL LETTER T WITH CARON
E9 0165 LATIN SMALL LETTER T WITH CARON
EA 00CD LATIN CAPITAL LETTER I WITH ACUTE
EB 017D LATIN CAPITAL LETTER Z WITH CARON
EC 017E LATIN SMALL LETTER Z WITH CARON
ED 016A LATIN CAPITAL LETTER U WITH MACRON
EE 00D3 LATIN CAPITAL LETTER O WITH ACUTE
EF 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
F0 016B LATIN SMALL LETTER U WITH MACRON
F1 016E LATIN CAPITAL LETTER U WITH RING ABOVE
F2 00DA LATIN CAPITAL LETTER U WITH ACUTE
F3 016F LATIN SMALL LETTER U WITH RING ABOVE
F4 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
F5 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
F6 0172 LATIN CAPITAL LETTER U WITH OGONEK
F7 0173 LATIN SMALL LETTER U WITH OGONEK
F8 00DD LATIN CAPITAL LETTER Y WITH ACUTE
F9 00FD LATIN SMALL LETTER Y WITH ACUTE
FA 0137 LATIN SMALL LETTER K WITH CEDILLA
FB 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
FC 0141 LATIN CAPITAL LETTER L WITH STROKE
FD 017C LATIN SMALL LETTER Z WITH DOT ABOVE
FE 0122 LATIN CAPITAL LETTER G WITH CEDILLA
FF 030C COMBINING CARON

260
libucw/charset/set/pc-latin-2

@ -0,0 +1,260 @@
# PC Latin-2 Charset File
# Adapted from CStoCS "pc2.enc" and gaps filled by info from the
# IBM charset by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
00 0000 <control>
01 0001 <control>
02 0002 <control>
03 0003 <control>
04 0004 <control>
05 0005 <control>
06 0006 <control>
07 0007 <control>
08 0008 <control>
09 0009 <control>
0A 000A <control>
0B 000B <control>
0C 000C <control>
0D 000D <control>
0E 000E <control>
0F 000F <control>
10 0010 <control>
11 0011 <control>
12 0012 <control>
13 0013 <control>
14 0014 <control>
15 0015 <control>
16 0016 <control>
17 0017 <control>
18 0018 <control>
19 0019 <control>
1A 001A <control>
1B 001B <control>
1C 001C <control>
1D 001D <control>
1E 001E <control>
1F 001F <control>
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 2302 HOUSE
80 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
81 00FC LATIN SMALL LETTER U WITH DIAERESIS
82 00E9 LATIN SMALL LETTER E WITH ACUTE
83 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
84 00E4 LATIN SMALL LETTER A WITH DIAERESIS
85 016F LATIN SMALL LETTER U WITH RING ABOVE
86 0107 LATIN SMALL LETTER C WITH ACUTE
87 00E7 LATIN SMALL LETTER C WITH CEDILLA
88 0142 LATIN SMALL LETTER L WITH STROKE
89 00EB LATIN SMALL LETTER E WITH DIAERESIS
8A 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
8B 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
8C 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
8D 0179 LATIN CAPITAL LETTER Z WITH ACUTE
8E 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
8F 0106 LATIN CAPITAL LETTER C WITH ACUTE
90 00C9 LATIN CAPITAL LETTER E WITH ACUTE
91 0139 LATIN CAPITAL LETTER L WITH ACUTE
92 013A LATIN SMALL LETTER L WITH ACUTE
93 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
94 00F6 LATIN SMALL LETTER O WITH DIAERESIS
95 013D LATIN CAPITAL LETTER L WITH CARON
96 013E LATIN SMALL LETTER L WITH CARON
97 015A LATIN CAPITAL LETTER S WITH ACUTE
98 015B LATIN SMALL LETTER S WITH ACUTE
99 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
9A 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
9B 0164 LATIN CAPITAL LETTER T WITH CARON
9C 0165 LATIN SMALL LETTER T WITH CARON
9D 0141 LATIN CAPITAL LETTER L WITH STROKE
9E 00D7 MULTIPLICATION SIGN
9F 010D LATIN SMALL LETTER C WITH CARON
A0 00E1 LATIN SMALL LETTER A WITH ACUTE
A1 00ED LATIN SMALL LETTER I WITH ACUTE
A2 00F3 LATIN SMALL LETTER O WITH ACUTE
A3 00FA LATIN SMALL LETTER U WITH ACUTE
A4 0104 LATIN CAPITAL LETTER A WITH OGONEK
A5 0105 LATIN SMALL LETTER A WITH OGONEK
A6 017D LATIN CAPITAL LETTER Z WITH CARON
A7 017E LATIN SMALL LETTER Z WITH CARON
A8 0118 LATIN CAPITAL LETTER E WITH OGONEK
A9 0119 LATIN SMALL LETTER E WITH OGONEK
AA 00AC NOT SIGN
AB 017A LATIN SMALL LETTER Z WITH ACUTE
AC 010C LATIN CAPITAL LETTER C WITH CARON
AD 015F LATIN SMALL LETTER S WITH CEDILLA
AE 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
AF 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
B0 2591 LIGHT SHADE
B1 2592 MEDIUM SHADE
B2 2593 DARK SHADE
B3 2502 BOX DRAWINGS LIGHT VERTICAL
B4 2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
B5 00C1 LATIN CAPITAL LETTER A WITH ACUTE
B6 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
B7 011A LATIN CAPITAL LETTER E WITH CARON
B8 015E LATIN CAPITAL LETTER S WITH CEDILLA
B9 2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
BA 2551 BOX DRAWINGS DOUBLE VERTICAL
BB 2557 BOX DRAWINGS DOUBLE DOWN AND LEFT
BC 255D BOX DRAWINGS DOUBLE UP AND LEFT
BD 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
BE 017C LATIN SMALL LETTER Z WITH DOT ABOVE
BF 2510 BOX DRAWINGS LIGHT DOWN AND LEFT
C0 2514 BOX DRAWINGS LIGHT UP AND RIGHT
C1 2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
C2 252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
C3 251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
C4 2500 BOX DRAWINGS LIGHT HORIZONTAL
C5 253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
C6 0102 LATIN CAPITAL LETTER A WITH BREVE
C7 0103 LATIN SMALL LETTER A WITH BREVE
C8 255A BOX DRAWINGS DOUBLE UP AND RIGHT
C9 2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT
CA 2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
CB 2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
CC 2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
CD 2550 BOX DRAWINGS DOUBLE HORIZONTAL
CE 256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
CF 00A4 CURRENCY SIGN
D0 00F0 LATIN SMALL LETTER ETH
D1 00D0 LATIN CAPITAL LETTER ETH
D2 010E LATIN CAPITAL LETTER D WITH CARON
D3 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
D4 010F LATIN SMALL LETTER D WITH CARON
D5 0147 LATIN CAPITAL LETTER N WITH CARON
D6 00CD LATIN CAPITAL LETTER I WITH ACUTE
D7 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
D8 011B LATIN SMALL LETTER E WITH CARON
D9 2518 BOX DRAWINGS LIGHT UP AND LEFT
DA 250C BOX DRAWINGS LIGHT DOWN AND RIGHT
DB 2588 FULL BLOCK
DC 2584 LOWER HALF BLOCK
DD 0162 LATIN CAPITAL LETTER T WITH CEDILLA
DE 016E LATIN CAPITAL LETTER U WITH RING ABOVE
DF 2580 UPPER HALF BLOCK
E0 00D3 LATIN CAPITAL LETTER O WITH ACUTE
E1 00DF LATIN SMALL LETTER SHARP S
E2 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
E3 0143 LATIN CAPITAL LETTER N WITH ACUTE
E4 0144 LATIN SMALL LETTER N WITH ACUTE
E5 0148 LATIN SMALL LETTER N WITH CARON
E6 0160 LATIN CAPITAL LETTER S WITH CARON
E7 0161 LATIN SMALL LETTER S WITH CARON
E8 0154 LATIN CAPITAL LETTER R WITH ACUTE
E9 00DA LATIN CAPITAL LETTER U WITH ACUTE
EA 0155 LATIN SMALL LETTER R WITH ACUTE
EB 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
EC 00FD LATIN SMALL LETTER Y WITH ACUTE
ED 00DD LATIN CAPITAL LETTER Y WITH ACUTE
EE 0163 LATIN SMALL LETTER T WITH CEDILLA
EF 00B4 ACUTE ACCENT
F0 2261 IDENTICAL TO
F1 030B COMBINING DOUBLE ACUTE ACCENT
F2 0328 COMBINING OGONEK
F3 030C COMBINING CARON
F4 0306 COMBINING BREVE
F5 00A7 SECTION SIGN
F6 00F7 DIVISION SIGN
F7 0327 COMBINING CEDILLA
F8 FFFD REPLACEMENT CHARACTER
F9 0308 COMBINING DIAERESIS
FA 02D9 DOT ABOVE
FB 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
FC 0158 LATIN CAPITAL LETTER R WITH CARON
FD 0159 LATIN SMALL LETTER R WITH CARON
FE 25A0 BLACK SQUARE
FF 00A0 NO-BREAK SPACE

255
libucw/charset/set/win-1250

@ -0,0 +1,255 @@
# CP1250.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1250.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 20AC EURO SIGN
82 201A SINGLE LOW-9 QUOTATION MARK
84 201E DOUBLE LOW-9 QUOTATION MARK
85 2026 HORIZONTAL ELLIPSIS
86 2020 DAGGER
87 2021 DOUBLE DAGGER
89 2030 PER MILLE SIGN
8A 0160 LATIN CAPITAL LETTER S WITH CARON
8B 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
8C 015A LATIN CAPITAL LETTER S WITH ACUTE
8D 0164 LATIN CAPITAL LETTER T WITH CARON
8E 017D LATIN CAPITAL LETTER Z WITH CARON
8F 0179 LATIN CAPITAL LETTER Z WITH ACUTE
91 2018 LEFT SINGLE QUOTATION MARK
92 2019 RIGHT SINGLE QUOTATION MARK
93 201C LEFT DOUBLE QUOTATION MARK
94 201D RIGHT DOUBLE QUOTATION MARK
95 2022 BULLET
96 2013 EN DASH
97 2014 EM DASH
99 2122 TRADE MARK SIGN
9A 0161 LATIN SMALL LETTER S WITH CARON
9B 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
9C 015B LATIN SMALL LETTER S WITH ACUTE
9D 0165 LATIN SMALL LETTER T WITH CARON
9E 017E LATIN SMALL LETTER Z WITH CARON
9F 017A LATIN SMALL LETTER Z WITH ACUTE
A0 00A0 NO-BREAK SPACE
A1 02C7 CARON
A2 02D8 BREVE
A3 0141 LATIN CAPITAL LETTER L WITH STROKE
A4 00A4 CURRENCY SIGN
A5 0104 LATIN CAPITAL LETTER A WITH OGONEK
A6 00A6 BROKEN BAR
A7 00A7 SECTION SIGN
A8 00A8 DIAERESIS
A9 00A9 COPYRIGHT SIGN
AA 015E LATIN CAPITAL LETTER S WITH CEDILLA
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 00AC NOT SIGN
AD 00AD SOFT HYPHEN
AE 00AE REGISTERED SIGN
AF 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 02DB OGONEK
B3 0142 LATIN SMALL LETTER L WITH STROKE
B4 00B4 ACUTE ACCENT
B5 00B5 MICRO SIGN
B6 00B6 PILCROW SIGN
B7 00B7 MIDDLE DOT
B8 00B8 CEDILLA
B9 0105 LATIN SMALL LETTER A WITH OGONEK
BA 015F LATIN SMALL LETTER S WITH CEDILLA
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 013D LATIN CAPITAL LETTER L WITH CARON
BD 02DD DOUBLE ACUTE ACCENT
BE 013E LATIN SMALL LETTER L WITH CARON
BF 017C LATIN SMALL LETTER Z WITH DOT ABOVE
C0 0154 LATIN CAPITAL LETTER R WITH ACUTE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 0102 LATIN CAPITAL LETTER A WITH BREVE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 0139 LATIN CAPITAL LETTER L WITH ACUTE
C6 0106 LATIN CAPITAL LETTER C WITH ACUTE
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 010C LATIN CAPITAL LETTER C WITH CARON
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 0118 LATIN CAPITAL LETTER E WITH OGONEK
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 011A LATIN CAPITAL LETTER E WITH CARON
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 010E LATIN CAPITAL LETTER D WITH CARON
D0 0110 LATIN CAPITAL LETTER D WITH STROKE
D1 0143 LATIN CAPITAL LETTER N WITH ACUTE
D2 0147 LATIN CAPITAL LETTER N WITH CARON
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 00D7 MULTIPLICATION SIGN
D8 0158 LATIN CAPITAL LETTER R WITH CARON
D9 016E LATIN CAPITAL LETTER U WITH RING ABOVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 00DD LATIN CAPITAL LETTER Y WITH ACUTE
DE 0162 LATIN CAPITAL LETTER T WITH CEDILLA
DF 00DF LATIN SMALL LETTER SHARP S
E0 0155 LATIN SMALL LETTER R WITH ACUTE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 0103 LATIN SMALL LETTER A WITH BREVE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 013A LATIN SMALL LETTER L WITH ACUTE
E6 0107 LATIN SMALL LETTER C WITH ACUTE
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 010D LATIN SMALL LETTER C WITH CARON
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 0119 LATIN SMALL LETTER E WITH OGONEK
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 011B LATIN SMALL LETTER E WITH CARON
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 010F LATIN SMALL LETTER D WITH CARON
F0 0111 LATIN SMALL LETTER D WITH STROKE
F1 0144 LATIN SMALL LETTER N WITH ACUTE
F2 0148 LATIN SMALL LETTER N WITH CARON
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 00F7 DIVISION SIGN
F8 0159 LATIN SMALL LETTER R WITH CARON
F9 016F LATIN SMALL LETTER U WITH RING ABOVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 00FD LATIN SMALL LETTER Y WITH ACUTE
FE 0163 LATIN SMALL LETTER T WITH CEDILLA
FF 02D9 DOT ABOVE

260
libucw/charset/set/win-1251

@ -0,0 +1,260 @@
# CP1252.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1250.TXT
# (c) 2005, Martin Mares <mj@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 0402 CYRILLIC CAPITAL LETTER DJE
81 0403 CYRILLIC CAPITAL LETTER GJE
82 201A SINGLE LOW-9 QUOTATION MARK
83 0453 CYRILLIC SMALL LETTER GJE
84 201E DOUBLE LOW-9 QUOTATION MARK
85 2026 HORIZONTAL ELLIPSIS
86 2020 DAGGER
87 2021 DOUBLE DAGGER
88 20AC EURO SIGN
89 2030 PER MILLE SIGN
8A 0409 CYRILLIC CAPITAL LETTER LJE
8B 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
8C 040A CYRILLIC CAPITAL LETTER NJE
8D 040C CYRILLIC CAPITAL LETTER KJE
8E 040B CYRILLIC CAPITAL LETTER TSHE
8F 040F CYRILLIC CAPITAL LETTER DZHE
90 0452 CYRILLIC SMALL LETTER DJE
91 2018 LEFT SINGLE QUOTATION MARK
92 2019 RIGHT SINGLE QUOTATION MARK
93 201C LEFT DOUBLE QUOTATION MARK
94 201D RIGHT DOUBLE QUOTATION MARK
95 2022 BULLET
96 2013 EN DASH
97 2014 EM DASH
98 FFFD REPLACEMENT CHARACTER
99 2122 TRADE MARK SIGN
9A 0459 CYRILLIC SMALL LETTER LJE
9B 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
9C 045A CYRILLIC SMALL LETTER NJE
9D 045C CYRILLIC SMALL LETTER KJE
9E 045B CYRILLIC SMALL LETTER TSHE
9F 045F CYRILLIC SMALL LETTER DZHE
A0 00A0 NO-BREAK SPACE
A1 040E CYRILLIC CAPITAL LETTER SHORT U
A2 045E CYRILLIC SMALL LETTER SHORT U
A3 0408 CYRILLIC CAPITAL LETTER JE
A4 00A4 CURRENCY SIGN
A5 0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN
A6 00A6 BROKEN BAR
A7 00A7 SECTION SIGN
A8 0401 CYRILLIC CAPITAL LETTER IO
A9 00A9 COPYRIGHT SIGN
AA 0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 00AC NOT SIGN
AD 00AD SOFT HYPHEN
AE 00AE REGISTERED SIGN
AF 0407 CYRILLIC CAPITAL LETTER YI
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
B3 0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
B4 0491 CYRILLIC SMALL LETTER GHE WITH UPTURN
B5 00B5 MICRO SIGN
B6 00B6 PILCROW SIGN
B7 00B7 MIDDLE DOT
B8 0451 CYRILLIC SMALL LETTER IO
B9 2116 NUMERO SIGN
BA 0454 CYRILLIC SMALL LETTER UKRAINIAN IE
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 0458 CYRILLIC SMALL LETTER JE
BD 0405 CYRILLIC CAPITAL LETTER DZE
BE 0455 CYRILLIC SMALL LETTER DZE
BF 0457 CYRILLIC SMALL LETTER YI
C0 0410 CYRILLIC CAPITAL LETTER A
C1 0411 CYRILLIC CAPITAL LETTER BE
C2 0412 CYRILLIC CAPITAL LETTER VE
C3 0413 CYRILLIC CAPITAL LETTER GHE
C4 0414 CYRILLIC CAPITAL LETTER DE
C5 0415 CYRILLIC CAPITAL LETTER IE
C6 0416 CYRILLIC CAPITAL LETTER ZHE
C7 0417 CYRILLIC CAPITAL LETTER ZE
C8 0418 CYRILLIC CAPITAL LETTER I
C9 0419 CYRILLIC CAPITAL LETTER SHORT I
CA 041A CYRILLIC CAPITAL LETTER KA
CB 041B CYRILLIC CAPITAL LETTER EL
CC 041C CYRILLIC CAPITAL LETTER EM
CD 041D CYRILLIC CAPITAL LETTER EN
CE 041E CYRILLIC CAPITAL LETTER O
CF 041F CYRILLIC CAPITAL LETTER PE
D0 0420 CYRILLIC CAPITAL LETTER ER
D1 0421 CYRILLIC CAPITAL LETTER ES
D2 0422 CYRILLIC CAPITAL LETTER TE
D3 0423 CYRILLIC CAPITAL LETTER U
D4 0424 CYRILLIC CAPITAL LETTER EF
D5 0425 CYRILLIC CAPITAL LETTER HA
D6 0426 CYRILLIC CAPITAL LETTER TSE
D7 0427 CYRILLIC CAPITAL LETTER CHE
D8 0428 CYRILLIC CAPITAL LETTER SHA
D9 0429 CYRILLIC CAPITAL LETTER SHCHA
DA 042A CYRILLIC CAPITAL LETTER HARD SIGN
DB 042B CYRILLIC CAPITAL LETTER YERU
DC 042C CYRILLIC CAPITAL LETTER SOFT SIGN
DD 042D CYRILLIC CAPITAL LETTER E
DE 042E CYRILLIC CAPITAL LETTER YU
DF 042F CYRILLIC CAPITAL LETTER YA
E0 0430 CYRILLIC SMALL LETTER A
E1 0431 CYRILLIC SMALL LETTER BE
E2 0432 CYRILLIC SMALL LETTER VE
E3 0433 CYRILLIC SMALL LETTER GHE
E4 0434 CYRILLIC SMALL LETTER DE
E5 0435 CYRILLIC SMALL LETTER IE
E6 0436 CYRILLIC SMALL LETTER ZHE
E7 0437 CYRILLIC SMALL LETTER ZE
E8 0438 CYRILLIC SMALL LETTER I
E9 0439 CYRILLIC SMALL LETTER SHORT I
EA 043A CYRILLIC SMALL LETTER KA
EB 043B CYRILLIC SMALL LETTER EL
EC 043C CYRILLIC SMALL LETTER EM
ED 043D CYRILLIC SMALL LETTER EN
EE 043E CYRILLIC SMALL LETTER O
EF 043F CYRILLIC SMALL LETTER PE
F0 0440 CYRILLIC SMALL LETTER ER
F1 0441 CYRILLIC SMALL LETTER ES
F2 0442 CYRILLIC SMALL LETTER TE
F3 0443 CYRILLIC SMALL LETTER U
F4 0444 CYRILLIC SMALL LETTER EF
F5 0445 CYRILLIC SMALL LETTER HA
F6 0446 CYRILLIC SMALL LETTER TSE
F7 0447 CYRILLIC SMALL LETTER CHE
F8 0448 CYRILLIC SMALL LETTER SHA
F9 0449 CYRILLIC SMALL LETTER SHCHA
FA 044A CYRILLIC SMALL LETTER HARD SIGN
FB 044B CYRILLIC SMALL LETTER YERU
FC 044C CYRILLIC SMALL LETTER SOFT SIGN
FD 044D CYRILLIC SMALL LETTER E
FE 044E CYRILLIC SMALL LETTER YU
FF 044F CYRILLIC SMALL LETTER YA

255
libucw/charset/set/win-1252

@ -0,0 +1,255 @@
# CP1252.TXT charset file
# Imported from ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT
# (c) 2003, Robert Spalek <robert@ucw.cz>
00 0000 NULL
01 0001 START OF HEADING
02 0002 START OF TEXT
03 0003 END OF TEXT
04 0004 END OF TRANSMISSION
05 0005 ENQUIRY
06 0006 ACKNOWLEDGE
07 0007 BELL
08 0008 BACKSPACE
09 0009 HORIZONTAL TABULATION
0A 000A LINE FEED
0B 000B VERTICAL TABULATION
0C 000C FORM FEED
0D 000D CARRIAGE RETURN
0E 000E SHIFT OUT
0F 000F SHIFT IN
10 0010 DATA LINK ESCAPE
11 0011 DEVICE CONTROL ONE
12 0012 DEVICE CONTROL TWO
13 0013 DEVICE CONTROL THREE
14 0014 DEVICE CONTROL FOUR
15 0015 NEGATIVE ACKNOWLEDGE
16 0016 SYNCHRONOUS IDLE
17 0017 END OF TRANSMISSION BLOCK
18 0018 CANCEL
19 0019 END OF MEDIUM
1A 001A SUBSTITUTE
1B 001B ESCAPE
1C 001C FILE SEPARATOR
1D 001D GROUP SEPARATOR
1E 001E RECORD SEPARATOR
1F 001F UNIT SEPARATOR
20 0020 SPACE
21 0021 EXCLAMATION MARK
22 0022 QUOTATION MARK
23 0023 NUMBER SIGN
24 0024 DOLLAR SIGN
25 0025 PERCENT SIGN
26 0026 AMPERSAND
27 0027 APOSTROPHE
28 0028 LEFT PARENTHESIS
29 0029 RIGHT PARENTHESIS
2A 002A ASTERISK
2B 002B PLUS SIGN
2C 002C COMMA
2D 002D HYPHEN-MINUS
2E 002E FULL STOP
2F 002F SOLIDUS
30 0030 DIGIT ZERO
31 0031 DIGIT ONE
32 0032 DIGIT TWO
33 0033 DIGIT THREE
34 0034 DIGIT FOUR
35 0035 DIGIT FIVE
36 0036 DIGIT SIX
37 0037 DIGIT SEVEN
38 0038 DIGIT EIGHT
39 0039 DIGIT NINE
3A 003A COLON
3B 003B SEMICOLON
3C 003C LESS-THAN SIGN
3D 003D EQUALS SIGN
3E 003E GREATER-THAN SIGN
3F 003F QUESTION MARK
40 0040 COMMERCIAL AT
41 0041 LATIN CAPITAL LETTER A
42 0042 LATIN CAPITAL LETTER B
43 0043 LATIN CAPITAL LETTER C
44 0044 LATIN CAPITAL LETTER D
45 0045 LATIN CAPITAL LETTER E
46 0046 LATIN CAPITAL LETTER F
47 0047 LATIN CAPITAL LETTER G
48 0048 LATIN CAPITAL LETTER H
49 0049 LATIN CAPITAL LETTER I
4A 004A LATIN CAPITAL LETTER J
4B 004B LATIN CAPITAL LETTER K
4C 004C LATIN CAPITAL LETTER L
4D 004D LATIN CAPITAL LETTER M
4E 004E LATIN CAPITAL LETTER N
4F 004F LATIN CAPITAL LETTER O
50 0050 LATIN CAPITAL LETTER P
51 0051 LATIN CAPITAL LETTER Q
52 0052 LATIN CAPITAL LETTER R
53 0053 LATIN CAPITAL LETTER S
54 0054 LATIN CAPITAL LETTER T
55 0055 LATIN CAPITAL LETTER U
56 0056 LATIN CAPITAL LETTER V
57 0057 LATIN CAPITAL LETTER W
58 0058 LATIN CAPITAL LETTER X
59 0059 LATIN CAPITAL LETTER Y
5A 005A LATIN CAPITAL LETTER Z
5B 005B LEFT SQUARE BRACKET
5C 005C REVERSE SOLIDUS
5D 005D RIGHT SQUARE BRACKET
5E 005E CIRCUMFLEX ACCENT
5F 005F LOW LINE
60 0060 GRAVE ACCENT
61 0061 LATIN SMALL LETTER A
62 0062 LATIN SMALL LETTER B
63 0063 LATIN SMALL LETTER C
64 0064 LATIN SMALL LETTER D
65 0065 LATIN SMALL LETTER E
66 0066 LATIN SMALL LETTER F
67 0067 LATIN SMALL LETTER G
68 0068 LATIN SMALL LETTER H
69 0069 LATIN SMALL LETTER I
6A 006A LATIN SMALL LETTER J
6B 006B LATIN SMALL LETTER K
6C 006C LATIN SMALL LETTER L
6D 006D LATIN SMALL LETTER M
6E 006E LATIN SMALL LETTER N
6F 006F LATIN SMALL LETTER O
70 0070 LATIN SMALL LETTER P
71 0071 LATIN SMALL LETTER Q
72 0072 LATIN SMALL LETTER R
73 0073 LATIN SMALL LETTER S
74 0074 LATIN SMALL LETTER T
75 0075 LATIN SMALL LETTER U
76 0076 LATIN SMALL LETTER V
77 0077 LATIN SMALL LETTER W
78 0078 LATIN SMALL LETTER X
79 0079 LATIN SMALL LETTER Y
7A 007A LATIN SMALL LETTER Z
7B 007B LEFT CURLY BRACKET
7C 007C VERTICAL LINE
7D 007D RIGHT CURLY BRACKET
7E 007E TILDE
7F 007F DELETE
80 20AC EURO SIGN
82 201A SINGLE LOW-9 QUOTATION MARK
83 0192 LATIN SMALL LETTER F WITH HOOK
84 201E DOUBLE LOW-9 QUOTATION MARK
85 2026 HORIZONTAL ELLIPSIS
86 2020 DAGGER
87 2021 DOUBLE DAGGER
88 02C6 MODIFIER LETTER CIRCUMFLEX ACCENT
89 2030 PER MILLE SIGN
8A 0160 LATIN CAPITAL LETTER S WITH CARON
8B 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
8C 0152 LATIN CAPITAL LIGATURE OE
8E 017D LATIN CAPITAL LETTER Z WITH CARON
91 2018 LEFT SINGLE QUOTATION MARK
92 2019 RIGHT SINGLE QUOTATION MARK
93 201C LEFT DOUBLE QUOTATION MARK
94 201D RIGHT DOUBLE QUOTATION MARK
95 2022 BULLET
96 2013 EN DASH
97 2014 EM DASH
98 02DC SMALL TILDE
99 2122 TRADE MARK SIGN
9A 0161 LATIN SMALL LETTER S WITH CARON
9B 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
9C 0153 LATIN SMALL LIGATURE OE
9E 017E LATIN SMALL LETTER Z WITH CARON
9F 0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
A0 00A0 NO-BREAK SPACE
A1 00A1 INVERTED EXCLAMATION MARK
A2 00A2 CENT SIGN
A3 00A3 POUND SIGN
A4 00A4 CURRENCY SIGN
A5 00A5 YEN SIGN
A6 00A6 BROKEN BAR
A7 00A7 SECTION SIGN
A8 00A8 DIAERESIS
A9 00A9 COPYRIGHT SIGN
AA 00AA FEMININE ORDINAL INDICATOR
AB 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC 00AC NOT SIGN
AD 00AD SOFT HYPHEN
AE 00AE REGISTERED SIGN
AF 00AF MACRON
B0 00B0 DEGREE SIGN
B1 00B1 PLUS-MINUS SIGN
B2 00B2 SUPERSCRIPT TWO
B3 00B3 SUPERSCRIPT THREE
B4 00B4 ACUTE ACCENT
B5 00B5 MICRO SIGN
B6 00B6 PILCROW SIGN
B7 00B7 MIDDLE DOT
B8 00B8 CEDILLA
B9 00B9 SUPERSCRIPT ONE
BA 00BA MASCULINE ORDINAL INDICATOR
BB 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC 00BC VULGAR FRACTION ONE QUARTER
BD 00BD VULGAR FRACTION ONE HALF
BE 00BE VULGAR FRACTION THREE QUARTERS
BF 00BF INVERTED QUESTION MARK
C0 00C0 LATIN CAPITAL LETTER A WITH GRAVE
C1 00C1 LATIN CAPITAL LETTER A WITH ACUTE
C2 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 00C3 LATIN CAPITAL LETTER A WITH TILDE
C4 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 00C6 LATIN CAPITAL LETTER AE
C7 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
C8 00C8 LATIN CAPITAL LETTER E WITH GRAVE
C9 00C9 LATIN CAPITAL LETTER E WITH ACUTE
CA 00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
CB 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
CC 00CC LATIN CAPITAL LETTER I WITH GRAVE
CD 00CD LATIN CAPITAL LETTER I WITH ACUTE
CE 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF 00CF LATIN CAPITAL LETTER I WITH DIAERESIS
D0 00D0 LATIN CAPITAL LETTER ETH
D1 00D1 LATIN CAPITAL LETTER N WITH TILDE
D2 00D2 LATIN CAPITAL LETTER O WITH GRAVE
D3 00D3 LATIN CAPITAL LETTER O WITH ACUTE
D4 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 00D5 LATIN CAPITAL LETTER O WITH TILDE
D6 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 00D7 MULTIPLICATION SIGN
D8 00D8 LATIN CAPITAL LETTER O WITH STROKE
D9 00D9 LATIN CAPITAL LETTER U WITH GRAVE
DA 00DA LATIN CAPITAL LETTER U WITH ACUTE
DB 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
DD 00DD LATIN CAPITAL LETTER Y WITH ACUTE
DE 00DE LATIN CAPITAL LETTER THORN
DF 00DF LATIN SMALL LETTER SHARP S
E0 00E0 LATIN SMALL LETTER A WITH GRAVE
E1 00E1 LATIN SMALL LETTER A WITH ACUTE
E2 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 00E3 LATIN SMALL LETTER A WITH TILDE
E4 00E4 LATIN SMALL LETTER A WITH DIAERESIS
E5 00E5 LATIN SMALL LETTER A WITH RING ABOVE
E6 00E6 LATIN SMALL LETTER AE
E7 00E7 LATIN SMALL LETTER C WITH CEDILLA
E8 00E8 LATIN SMALL LETTER E WITH GRAVE
E9 00E9 LATIN SMALL LETTER E WITH ACUTE
EA 00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
EB 00EB LATIN SMALL LETTER E WITH DIAERESIS
EC 00EC LATIN SMALL LETTER I WITH GRAVE
ED 00ED LATIN SMALL LETTER I WITH ACUTE
EE 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
EF 00EF LATIN SMALL LETTER I WITH DIAERESIS
F0 00F0 LATIN SMALL LETTER ETH
F1 00F1 LATIN SMALL LETTER N WITH TILDE
F2 00F2 LATIN SMALL LETTER O WITH GRAVE
F3 00F3 LATIN SMALL LETTER O WITH ACUTE
F4 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 00F5 LATIN SMALL LETTER O WITH TILDE
F6 00F6 LATIN SMALL LETTER O WITH DIAERESIS
F7 00F7 DIVISION SIGN
F8 00F8 LATIN SMALL LETTER O WITH STROKE
F9 00F9 LATIN SMALL LETTER U WITH GRAVE
FA 00FA LATIN SMALL LETTER U WITH ACUTE
FB 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
FC 00FC LATIN SMALL LETTER U WITH DIAERESIS
FD 00FD LATIN SMALL LETTER Y WITH ACUTE
FE 00FE LATIN SMALL LETTER THORN
FF 00FF LATIN SMALL LETTER Y WITH DIAERESIS

66
libucw/charset/setnames.c

@ -0,0 +1,66 @@
/*
* Character Set Conversion Library 1.0 -- Character Set Names
*
* (c) 1998--2005 Martin Mares <mj@ucw.cz>
* (c) 2007 Pavel Charvat <pchar@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU General Public License.
*/
#include <ucw/lib.h>
#include <charset/charconv.h>
#include <string.h>
/* Names according to RFC 1345 (see http://www.iana.org/assignments/character-sets) */
static const char *cs_names[] = {
"US-ASCII",
"ISO-8859-1",
"ISO-8859-2",
"ISO-8859-3",
"ISO-8859-4",
"ISO-8859-5",
"ISO-8859-6",
"ISO-8859-7",
"ISO-8859-8",
"ISO-8859-9",
"ISO-8859-10",
"ISO-8859-11",
"ISO-8859-13",
"ISO-8859-14",
"ISO-8859-15",
"ISO-8859-16",
"windows-1250",
"windows-1251",
"windows-1252",
"x-kam-cs",
"CSN_369103",
"cp852",
"x-mac-ce",
"x-cork",
"utf-8",
"utf-16be",
"utf-16le"
};
int
find_charset_by_name(const char *c)
{
uint i;
for(i=0; i<CONV_NUM_CHARSETS; i++)
if (!strcasecmp(cs_names[i], c))
return i;
return -1;
}
char *
charset_name(int i)
{
if (i < 0 || i > CONV_NUM_CHARSETS)
return "x-unknown";
else
return (char *)cs_names[i];
}

60
libucw/charset/stk-charconv.c

@ -0,0 +1,60 @@
/*
* UCW Library -- Character Conversion with Allocation on the Stack
*
* (c) 2006 Pavel Charvat <pchar@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#include <ucw/lib.h>
#include <charset/stk-charconv.h>
#include <string.h>
#define INITIAL_MIN_SIZE 16
#define INITIAL_SCALE 2
uint
stk_strconv_init(struct conv_context *c, const byte *s, uint in_cs, uint out_cs)
{
uint l = strlen(s);
if (in_cs == out_cs)
{
c->source = s;
c->source_end = NULL;
return l + 1;
}
conv_init(c);
conv_set_charset(c, in_cs, out_cs);
c->source = s;
c->source_end = s + l + 1;
if (l < (INITIAL_MIN_SIZE - 1) / INITIAL_SCALE)
return INITIAL_MIN_SIZE;
else
return l * INITIAL_SCALE + 1;
}
uint
stk_strconv_step(struct conv_context *c, byte *buf, uint len)
{
if (!c->source_end)
{
memcpy(buf, c->source, len);
c->dest_start = buf;
return 0;
}
if (c->dest_start)
{
uint l = c->dest_end - c->dest_start;
memcpy(buf, c->dest_start, l);
c->dest = buf + l;
}
else
c->dest = buf;
c->dest_start = buf;
c->dest_end = buf + len;
if (conv_run(c) & CONV_SOURCE_END)
return 0;
return len << 1;
}

35
libucw/charset/stk-charconv.h

@ -0,0 +1,35 @@
/*
* UCW Library -- Character Conversion with Allocation on the Stack
*
* (c) 2006 Pavel Charvat <pchar@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#ifndef _CHARSET_STK_CHARCONV_H
#define _CHARSET_STK_CHARCONV_H
#include <charset/charconv.h>
#include <alloca.h>
#ifdef CONFIG_UCW_CLEAN_ABI
#define stk_strconv_init ucw_stk_strconv_init
#define stk_strconv_step ucw_stk_strconv_step
#endif
/* The following macros convert strings between given charsets (CONV_CHARSET_x). */
#define stk_strconv(s, cs_in, cs_out) \
({ struct conv_context _c; uint _l=stk_strconv_init(&_c, (s), (cs_in), (cs_out)); \
while (_l) _l=stk_strconv_step(&_c, alloca(_l), _l); _c.dest_start; })
#define stk_strconv_to_utf8(s, cs_in) stk_strconv(s, cs_in, CONV_CHARSET_UTF8)
#define stk_strconv_from_utf8(s, cs_out) stk_strconv(s, CONV_CHARSET_UTF8, cs_out)
/* Internals */
uint stk_strconv_init(struct conv_context *c, const byte *s, uint cs_in, uint cs_out);
uint stk_strconv_step(struct conv_context *c, byte *buf, uint len);
#endif

12
libucw/charset/tocat.c

@ -0,0 +1,12 @@
/*
* The UniCode Library -- Category Table
*
* (c) 1997 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#include <ucw/lib.h>
#include <charset/unicat.h>
#include <charset/U-cat.h>

18
libucw/charset/toligatures.c

@ -0,0 +1,18 @@
/*
* The UniCode Library -- Table of Ligatures
*
* (c) 2003 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#include <ucw/lib.h>
#include <charset/unicat.h>
#include <charset/U-ligatures.h>
const u16 *
Uexpand_lig(uint x)
{
return _U_lig_hash[x % LIG_HASH_SIZE];
}

12
libucw/charset/tolower.c

@ -0,0 +1,12 @@
/*
* The UniCode Library -- Lowercase Table
*
* (c) 1997 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#include <ucw/lib.h>
#include <charset/unicat.h>
#include <charset/U-lower.h>

12
libucw/charset/toupper.c

@ -0,0 +1,12 @@
/*
* The UniCode Library -- Uppercase Table
*
* (c) 1997 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#include <ucw/lib.h>
#include <charset/unicat.h>
#include <charset/U-upper.h>

64
libucw/charset/ucw-cs2cs.c

@ -0,0 +1,64 @@
/*
* Simple character set convertor
*
* (c) 1998 Pavel Machek <pavel@ucw.cz>
* (c) 2003 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU General Public License.
*/
#include <ucw/lib.h>
#include <charset/charconv.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#ifdef TEST
#define BUFSIZE 13
#else
#define BUFSIZE 4096
#endif
int
main(int argc, char **argv)
{
struct conv_context ctxt;
int ch_from, ch_to, n, flags;
char inbuf[BUFSIZE], outbuf[BUFSIZE];
if (argc != 3)
die("ucw-cs2cs in-charset out-charset");
conv_init(&ctxt);
ch_from = find_charset_by_name(argv[1]);
if (ch_from < 0)
die("Unknown charset %s", argv[1]);
ch_to = find_charset_by_name(argv[2]);
if (ch_to < 0)
die("Unknown charset %s", argv[2]);
conv_set_charset(&ctxt, ch_from, ch_to);
while ((n = read(0, inbuf, sizeof(inbuf))) > 0)
{
ctxt.source = inbuf;
ctxt.source_end = inbuf + n;
ctxt.dest = ctxt.dest_start = outbuf;
ctxt.dest_end = outbuf + sizeof(outbuf);
do
{
flags = conv_run(&ctxt);
if (flags & (CONV_SOURCE_END | CONV_DEST_END))
{
int w = write(1, ctxt.dest_start, ctxt.dest - ctxt.dest_start);
if (w < 0)
die("write error: %m");
ctxt.dest = outbuf;
}
}
while (! (flags & CONV_SOURCE_END));
}
if (n < 0)
die("read error: %m");
return 0;
}

12
libucw/charset/unaccent.c

@ -0,0 +1,12 @@
/*
* The UniCode Library -- Unaccenting Table
*
* (c) 1997 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#include <ucw/lib.h>
#include <charset/unicat.h>
#include <charset/U-unacc.h>

78
libucw/charset/unicat.h

@ -0,0 +1,78 @@
/*
* The UniCode Character Categorizer
*
* (c) 1997--2004 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
*/
#ifndef _CHARSET_UNICAT_H
#define _CHARSET_UNICAT_H
#ifdef CONFIG_UCW_CLEAN_ABI
#define Uexpand_lig ucw_Uexpand_lig
#define _U_cat ucw__U_cat
#define _U_lower ucw__U_lower
#define _U_unaccent ucw__U_unaccent
#define _U_upper ucw__U_upper
#endif
extern const byte *_U_cat[];
extern const u16 *_U_upper[], *_U_lower[], *_U_unaccent[];
static inline uint Ucategory(uint x)
{
if (_U_cat[x >> 8U])
return _U_cat[x >> 8U][x & 0xff];
else
return 0;
}
static inline uint Utoupper(uint x)
{
uint w = (_U_upper[x >> 8U]) ? _U_upper[x >> 8U][x & 0xff] : 0;
return w ? w : x;
}
static inline uint Utolower(uint x)
{
uint w = (_U_lower[x >> 8U]) ? _U_lower[x >> 8U][x & 0xff] : 0;
return w ? w : x;
}
static inline uint Uunaccent(uint x)
{
uint w = (_U_unaccent[x >> 8U]) ? _U_unaccent[x >> 8U][x & 0xff] : 0;
return w ? w : x;
}
extern const u16 *Uexpand_lig(uint x);
enum unicode_char_type {
_U_LETTER = 1, /* Letters */
_U_UPPER = 2, /* Upper-case letters */
_U_LOWER = 4, /* Lower-case letters */
_U_CTRL = 8, /* Control characters */
_U_DIGIT = 16, /* Digits */
_U_XDIGIT = 32, /* Hexadecimal digits */
_U_SPACE = 64, /* White spaces (spaces, tabs, newlines) */
_U_LIGATURE = 128, /* Compatibility ligature (to be expanded) */
};
#define _U_LUPPER (_U_LETTER | _U_UPPER)
#define _U_LLOWER (_U_LETTER | _U_LOWER)
#define UCat(x,y) (Ucategory(x) & (y))
#define Ualpha(x) UCat(x, _U_LETTER)
#define Uupper(x) UCat(x, _U_UPPER)
#define Ulower(x) UCat(x, _U_LOWER)
#define Udigit(x) UCat(x, _U_DIGIT)
#define Uxdigit(x) UCat(x, (_U_DIGIT | _U_XDIGIT))
#define Ualnum(x) UCat(x, (_U_LETTER | _U_DIGIT))
#define Uctrl(x) UCat(x, _U_CTRL)
#define Uprint(x) !Uctrl(x)
#define Uspace(x) UCat(x, _U_SPACE)
#endif

36
libucw/configure

@ -0,0 +1,36 @@
#!/usr/bin/perl
# Configure Script for UCW Libraries
# (c) 2007--2010 Martin Mares <mj@ucw.cz>
use warnings;
use strict;
our $srcdir;
BEGIN {
my $pkgfile = "ucw/wildmatch.c";
if (!defined ($srcdir = $ENV{"SRCDIR"})) {
if (-f $pkgfile) {
$srcdir=".";
} elsif ($0 =~ m@^(.*)/configure$@ && -f "$1/$pkgfile") {
$srcdir=$1;
} else {
die "Don't know how to find myself. Please set SRCDIR manually.\n";
}
}
}
use lib "$srcdir/ucw/perl/";
use UCW::Configure;
Init($srcdir, "default.cfg");
Include "ucw/default.cfg";
Log "### Configuring UCW Libraries " . Get("UCW_VERSION") . " with configuration " . Get("CONFIG") . "\n";
Include Get("CONFIG");
require UCW::Configure::Paths;
require UCW::Configure::C;
require UCW::Configure::LibUCW;
require UCW::Configure::Doc;
require UCW::Configure::Perl;
Finish();
Log "\nConfigured, run `make' to build everything.\n";

65
libucw/debug/check-configs

@ -0,0 +1,65 @@
#!/bin/bash
# A script for testing compilability of different configurations
# (c) 2004--2010 Martin Mares <mj@ucw.cz>
set -e
TEST=0
ERR=
CC=${CC:-gcc}
MAKEOPTS=${MAKEOPTS:--j8}
function die
{
echo >&3 " $@"
exit 1
}
function try
{
TEST=$(($TEST+1))
TDIR=tests/$TEST
mkdir $TDIR
echo "### Test $TEST: $@ ###" | tee $TDIR/log
CONFIG="$1"
shift
ARGS="$@ CC=$CC"
(
cd $TDIR
exec 3>&2 >>log 2>&1
case $CONFIG in
*) ../../configure $CONFIG CONFIG_LOCAL $ARGS || die "CANNOT CONFIGURE"
;;
esac
make $MAKEOPTS || die FAILED
echo >&3 " COMPILATION PASSED"
if [ -z "$SKIP_TESTS" ] ; then
make -k -j1 tests || die "TESTS FAILED"
echo >&3 " TESTS PASSED"
fi
) || ERR=1
}
rm -rf tests
mkdir tests
if [ "$1" == DARWIN ] ; then
# All tests on Darwin need CONFIG_SHARED, due to libucw-charset collision
# only visible with static linking.
FLAGS="CONFIG_SHARED"
try debug/default.cfg $FLAGS CONFIG_UCW_PCRE # `make tests' does not work with non-local builds with shared libs
elif [ -n "$1" ] ; then
try "$@"
else
try default.cfg # default configuration
try default.cfg -CONFIG_DEBUG # with no debugging code
try debug/default.cfg # debugging configuration
try debug/default.cfg -CONFIG_SHARED # statically linked
try debug/default.cfg -CONFIG_UCW_THREADS # non-threaded configuration
try debug/default.cfg -CONFIG_UCW_TLS # threaded, but no TLS support in gcc
try debug/default.cfg -CONFIG_UCW_EPOLL -CONFIG_UCW_MONOTONIC_CLOCK # without epoll and monotonic clock
try debug/default.cfg CONFIG_UCW_POSIX_REGEX # different regex libs
try debug/default.cfg CONFIG_UCW_PCRE
fi
[ -z "$ERR" ]

17
libucw/debug/default.cfg

@ -0,0 +1,17 @@
# Configuration used for debugging LibUCW
Include("default.cfg");
Set("CONFIG_LOCAL");
# UnSet("CONFIG_SHARED");
Set("CONFIG_DEBUG");
Set("CONFIG_UCW_DEBUG_TOOLS");
Set("CONFIG_EXACT_CPU");
Set("CONFIG_UCW_OBSOLETE_DAEMON_HELPER");
Set("CONFIG_IMAGES");
Set("CONFIG_IMAGES_DUP");
Set("CONFIG_IMAGES_SIM");
Set("CONFIG_CHARSET");
Set("CONFIG_XML");

49
libucw/default.cfg

@ -0,0 +1,49 @@
# Default configuration of UCW libraries
# (see */default.cfg for the description of all options)
# Do we want shared or static libraries?
Set("CONFIG_SHARED");
# Include debugging code
Set("CONFIG_DEBUG");
# We want the public API
Set("CONFIG_INSTALL_API");
# Enable GCC link-time optimizations (experimental)
UnSet("CONFIG_LTO");
# LibUCW should support files >2GB and threading
Set("CONFIG_UCW_LARGE_FILES");
Set("CONFIG_UCW_THREADS" => 1);
# Libucw extensions
Set("CONFIG_UCW_PERL" => 1);
Set("CONFIG_UCW_PERL_MODULES" => 1);
Set("CONFIG_UCW_SHELL_UTILS" => 1);
Set("CONFIG_UCW_UTILS" => 1);
# Libucw-images settings
UnSet("CONFIG_IMAGES");
Set("CONFIG_IMAGES_LIBJPEG");
Set("CONFIG_IMAGES_LIBPNG");
UnSet("CONFIG_IMAGES_LIBUNGIF");
Set("CONFIG_IMAGES_LIBGIF");
UnSet("CONFIG_IMAGES_LIBMAGICK");
# Libucw-charset
Set("CONFIG_CHARSET");
Set("CONFIG_CHARSET_UTILS");
# Libucw-xml
Set("CONFIG_XML");
# Libucw-json
Set("CONFIG_JSON");
# Compress .deb packages with gzip (instead of the default algorithm)
# Hack for Economia's deployment machinery
UnSet("CONFIG_BUILDDEB_GZIP");
# Return success
1;

91
libucw/etc/images

@ -0,0 +1,91 @@
# Configuration of the image library
######## General parameters #####################################################
ImageLib {
# Default tracing level (0 to disable)
Trace 0
# Limits for image allocation
ImageMaxDim 0xffff # Maximum width/height (at most 64k-1)
ImageMaxBytes 256M # Maximum size in bytes
}
#if CONFIG_IMAGES_DUP || CONFIG_IMAGES_SIM
######## Image signatures #######################################################
ImageSig {
# To find similar images, Sherlock uses comparison based on regions.
# First of all, the imagesim analyser extracts various region features.
# Sets of these features are called "image signatures" and they are stored
# in the `H' attribute of image objects.
# Signatures are later processed by the indexer to build an effective
# search structure finally used by the search server. See Indexer and Search
# sections for more options.
# Minimum image size to apply segmentation. Smaller images are always
# compared by the simple "average" method (see ImageSig.CompareMethod).
MinWidth 16
MinHeight 16
# List of subdivision thresholds in the first phase of segmentation.
# Lower the values to increase the average number of regions and vice versa.
PreQuantThresholds 6 12 15 20 25 25 30 30 40 40 50 50 60 60 60
# Settings for the second phase of segmentation -- usually not so important.
# We use an iterative algorithm to improve the average error from the first phase.
# We stop the process after PostQuantMaxSteps or if we get only PostQuantThreshold
# percentual improvement over the previous step.
PostQuantMinSteps 2
PostQuantMaxSteps 10
PostQuantThreshold 1
# BorderBonus and BorderSize parameters can increase or decrease the weight
# of image pixels near the borders. Weight of all pixels more than BorderSize * MIN(cols, rows)
# pixels far from the edges is 128. Then this value continuously decreses/increses up to 128+BorderSize.
BorderSize 0.4
BorderBonus -50
# Scaling constants for computation of normalized i-th order inertia features (I1, I2, I3).
InertiaScale 2 0.5 0.05
# Threshold for detecting textured images (see images/sig-txt.c for details).
# Decrease the threshold if you want less detected textures,
# set it to zero to disable the algorithm completely.
TexturedThreshold 0.32
# Signature comparison method:
#
# integrated
# based on: James Z. Wang, Jia Li and Gio Wiederhold,
# "SIMPLIcity: Semantics-Sensitive Integrated Matching for Picture Libraries",
# IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 23, no. 9, pp. 947-963, 2001.
#
# fuzzy (unstable and unbalanced parameters)
# based on: Yixin Chen and James Z. Wang,
# "A Region-Based Fuzzy Feature Matching Approach to Content-Based Image Retrieval",
# IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 24, no. 9, pp. 1252-1267, 2002.
#
# average
# Simple distance of image features averages (ignores segmentation).
#
CompareMethod integrated
# Array of multiplicative constants in feature vector distance computation
# (L, u, v, LH, HL, HH, I1, I2, I3, X, Y). Each one must be an integer in range 0..15, default is 4.
CompareFeaturesWeights 4 6 6 4 4 4 4 4 4 4 4
}
#endif
#ifdef CONFIG_IMAGES_DUP
######## Duplicate finder #######################################################
ImageDup {
# Detection of image duplicates does not work yet.
}
#endif

247
libucw/etc/libucw

@ -0,0 +1,247 @@
# Configuration of the UCW library and related utilities
######## Memory Mapped Access to Files ##########################################
# Whenever you specify 0 for I/O buffer size, memory mapping is used instead.
FBMMap {
# Map this many bytes at once (needs to be a multiple of CPU page size)
WindowSize 1M
# When in need to extend a file, grow it by so many bytes (>= page size)
ExtendSize 1M
}
######## Direct Streamed I/O on Files ###########################################
FBDirect {
# Debug: Cheat by turning off O_DIRECT
#Cheat 1
}
######## Atomic Multi-Threaded I/O on Files #####################################
FBAtomic {
# Enable tracing
#Trace 1
}
######## Parametrized I/O on Files ##############################################
FBParam {
Defaults {
# Access type (std|direct|mmap).
Type std
# Size of I/O buffer. Something of the order of megabytes for fast disks is recommended for direct I/O.
BufSize 64K
# Optimize for mixed forward/backward reading (standard I/O only)
KeepBackBuf 0
# Perform read-ahead (direct I/O only)
ReadAhead 1
# Maximum number of write-back requests queued (direct I/O only)
WriteBack 1
}
}
######## Temporary files ########################################################
Tempfiles {
# By default, we use the system's default temporary directory ($TMPDIR or /tmp),
# but sometimes it is better to store the temporary files in the local tree.
Dir @INSTALL_VAR_PREFIX@tmp
# Prefix of temporary file names
Prefix temp-
# By default, we append a random number to Prefix to get a temporary file name.
# If Prefix points to a directory that is not writable by malicious users,
# we can be less careful and use more consistent names of temporary files
# formed by adding "pid(-tid)-counter" instead.
PublicDir 0
}
######## Threads ################################################################
Threads {
# Default thread stack size
DefaultStackSize 64K
}
######## Sorter #################################################################
Sorter {
# Trace sorting (1=basic statistics, 2=more stats, 3 and more for debugging)
Trace 2
# Trace array sorting (internal sorters)
TraceArray 0
# How much memory is the sorter allowed to use
SortBuffer 4M
# File access used by the sorter (see FBParam section for details)
FileAccess std 256K
# Use a different file access method for small inputs (less than the specified size)
SmallFileAccess std 64K
SmallInput 64M
# Min-/Maximum number of bits to use in the external radix-sort (beware, we will open
# 1+2^this files and require a stream buffer for each of them; however, while we are
# doing that, the sort buffer is not allocated). Set both to zero to disable radix-sorting.
MinRadixBits 2
MaxRadixBits 4
# The same for multi-way merging. The memory requirements are also the same,
# but please keep in mind that this can create lots of SortBuffer-sized files,
# so it is probably better to keep it disabled if you have a small SortBuffer.
MinMultiwayBits 2
MaxMultiwayBits 4
# If we did not use radix-sorter to the full width, we still might add some more
# bits to the width to get chunks which are even smaller than SortBuffer, because
# it can speed up internal sorting later. However, we also want to avoid small
# files, so we add only a little.
AddRadixBits 2
# Number of threads used for sorting (0=disable threading)
Threads 0
# Minimum size of input (in bytes) to consider multi-threaded internal sorting
ThreadThreshold 1M
# Chunks smaller than ThreadThreshold are sorted by a sequential algorithm, but
# if they are at least of the following size, different chunks are sorted in
# parallel. There is a slight space penalty for setting up the parallel process,
# so better avoid setting this number too small.
ThreadChunk 256
# Internal radix-sort stops at this size and switches to QuickSort (must be >0)
RadixThreshold 4K
# Debugging switches (see the source)
Debug 0
}
######## URL processing #########################################################
URL {
# Ignore spaces at the start/end of a URL
IgnoreSpaces 1
# Ignore underflows in relative paths (/../ from root)
IgnoreUnderflow 1
# Some URL's with many repeated components are filtered out to avoid infinite
# URL's (e.g. http://czech.recoder.cz/win/iso/win/iso/file.html, or
# http://a.com/?a=b&a=b&a=b, ...).
# The URL is split to components divided by any of the specified separators.
# Then the separators are forgotten and the components between them are
# examined.
ComponentSeparators /&?
# URL is filtered out if there's a sequence of components in a row with at most
# MaxRepeatLength components and the sequence is repeated more than MinRepeatCount
# times. Default values are high MinRepeatCount and low MaxRepeatLength, so the
# mechanism is disabled.
MinRepeatCount 4
MaxRepeatLength 4
# Maximum number of occurences of a single component in the entire URL (possibly interleaved
# by different components). The detector is disabled by default.
MaxOccurences 4
}
######## Logging ################################################################
Logging {
# In this section, you can define various logging streams which can be referred to by other sections.
# Stream {
# # The name of the stream
# Name test-log
#
# # When it should log the messages to a file, a name of the file should be specified.
# # Escape sequences for current date and time as described in strftime(3) can be used.
# FileName log/test-%Y%m%d
#
# # If you need to log to stderr or another already opened descriptor, you can specify its number.
# FileDesc 2
#
# # Instead of a file, a syslog facility can be specified. See syslog(3) for an explanation.
# SyslogFacility daemon
#
# # You can request that syslog includes a process ID in each message. Due to inflexibility
# # of the syslog protocol, all syslog streams active at a moment must agree on this setting.
# # (default: 0)
# SyslogPID 1
#
# # When logging to files, timestamps with microsecond precision can be requested. (default: 0)
# Microseconds 1
#
# # Messages logged to this stream can be restricted to a subset of severity levels.
# # Available levels are: debug info warn error info_r warn_r error_r fatal.
# # This configuration item is a bitmap with a default of "all", so we need the ":reset" operator.
# Levels:reset info warn error fatal
#
# # Similarly, messages can be restricted to a subset of message types. The types are
# # specific for each program. This configuration item is a list of type names; by default
# # it is empty, which is equivalent to all types being enabled.
# Types:reset default foo
#
# # Should the message types be logged? They usually do not carry much useful
# # information for the viewer of the log, so they are not included by default,
# # but you might want to see them when tuning the Types setting. (default: 0)
# ShowTypes 1
#
# # If an error occurs when logging a message to this stream, the program normally
# # logs a special error message to the other streams and continues running. You can
# # however request to exit the program in such cases, so that the log files are
# # guaranteed to be complete. (default: 0)
# ErrorsFatal 1
#
# # Let stderr of the program point to this file-based log_stream (default: 0)
# StdErrFollows 1
#
# # Some events are logworthy, but they could happen too frequently and flood the log.
# # You can avoid the flooding by setting up a rate limiter for a specific subset of
# # message types. If more limiters match the type of a message, only the last one applies.
# Limit {
# # A list of message types (default: empty = all types)
# Types default foo
#
# # The maximum allowed sustained rate (messages/second, may be fractional)
# Rate 1
#
# # Maximum length of a burst temporarily exceeding the rate (default: try to guess)
# Burst 2
# }
#
# # The messages that have passed the filters and limiters can be forwarded to other
# # log streams. Logging loops are not healthy for your program :) (a list of stream names)
# Substream another-stream
# }
}

34
libucw/examples/external-ucw-build/Makefile

@ -0,0 +1,34 @@
# Example Makefile for a stand-alone program using the libucw build system
# (c) 2007 Martin Mares <mj@ucw.cz>
# (c) 2008 Michal Vaner <vorner@ucw.cz>
# The default target
all: runtree programs
# Include configuration
s=.
-include obj/config.mk
obj/config.mk:
@echo "You need to run configure first." && false
# Do not show strange errors if the BUILDSYS is not set
# (it happens if noone called configure as reported above)
ifdef BUILDSYS
# We will use the libucw build system
include $(BUILDSYS)/Maketop
# Add the detected flags to all the global flags
CFLAGS+=$(LIBUCW_CFLAGS)
LIBS+=$(LIBUCW_LIBS)
# Programs we want to compile
PROGS+=$(o)/test
# And how they are created
$(o)/test: $(o)/test.o $(LIBUCW)
# And finally the default rules of the build system
include $(BUILDSYS)/Makebottom
endif

46
libucw/examples/external-ucw-build/configure

@ -0,0 +1,46 @@
#!/usr/bin/perl
# Configure script for the libucw example (inspired by ../external/configure)
# (c) 2008 Michal Vaner <vorner@ucw.cz>
use warnings;
use strict;
our($srcdir, $libdir);
BEGIN {
# Find the sources
my $pkgfile = "test.c";
if (!defined ($srcdir = $ENV{"SRCDIR"})) {
if (-f $pkgfile) {
$srcdir=".";
} elsif ($0 =~ m@^(.*)/configure$@ && -f "$1/$pkgfile") {
$srcdir=$1;
} else {
die "Don't know how to find myself. Please set SRCDIR manually.\n";
}
}
# Ask pkg-config if libucw is installed and find its configure modules
`pkg-config libucw --atleast-version=3.13`;
!$? or die "Package `libucw' (version 3.13 or newer) not found. Is PKG_CONFIG_PATH set properly?\n";
$libdir=`pkg-config libucw --variable=perl_modules_dir`;
chomp $libdir;
die "Unable to find the libucw configure system\n" if $? || not defined $libdir;
}
use lib $libdir;
use UCW::Configure;
Init($srcdir, 'default.cfg');
Log "### Configuring TestApp ###\n\n";
Include Get("CONFIG");
# What should be detected?
require UCW::Configure::Build;
require UCW::Configure::Paths;
require UCW::Configure::C;
require UCW::Configure::Pkg;
# You could generate your own documentation, too
# require UCW::Configure::Doc;
# Get some libraries
UCW::Configure::Pkg::PkgConfig("libucw") or Fail("libUCW is required");
Finish();
Log "\nConfigured, run `make' to build everything.\n";

5
libucw/examples/external-ucw-build/default.cfg

@ -0,0 +1,5 @@
# You can specify default configuration here:
# Set("SOME_SYMBOL");
1;

8
libucw/examples/external-ucw-build/test.c

@ -0,0 +1,8 @@
#include <ucw/lib.h>
int main(void)
{
log_init("test");
msg(L_INFO, "Hoooot!");
return 0;
}

8
libucw/examples/external/Makefile

@ -0,0 +1,8 @@
# Example Makefile for a stand-alone program using libucw
CFLAGS:=$(shell pkg-config --cflags libucw)
LDLIBS:=$(shell pkg-config --libs libucw)
all: test
test: test.c

8
libucw/examples/external/test.c

@ -0,0 +1,8 @@
#include <ucw/lib.h>
int main(void)
{
log_init("test");
msg(L_INFO, "Hoooot!");
return 0;
}

35
libucw/examples/internal/Makefile

@ -0,0 +1,35 @@
# Example Makefile for a stand-alone program using the libucw build system
# (c) 2007 Martin Mares <mj@ucw.cz>
# The default target
all: runtree programs
# Include configuration
s=.
-include obj/config.mk
obj/config.mk:
@echo "You need to run configure first." && false
BUILDSYS=$(s)/build
# We will use the libucw build system
include $(BUILDSYS)/Maketop
# Set up names of common libraries (to avoid forward references in rules)
LIBCHARSET=$(o)/charset/libucw-charset.pc
LIBIMAGES=$(o)/images/libucw-images.pc
# Include makefiles of libraries we wish to use
include $(s)/ucw/Makefile
include $(s)/charset/Makefile
include $(s)/images/Makefile
# Programs we want to compile
PROGS+=$(o)/test
$(o)/test: $(o)/test.o $(LIBUCW) $(LIBCHARSET) $(LIBIMAGES)
# All tests (%-t) get automatically linked with libucw
TESTING_DEPS=$(LIBUCW)
# And finally the default rules of the build system
include $(BUILDSYS)/Makebottom

34
libucw/examples/internal/configure

@ -0,0 +1,34 @@
#!/usr/bin/perl
# Configure script for the libucw example
# (c) 2007 Martin Mares <mj@ucw.cz>
use warnings;
use strict;
our $srcdir;
BEGIN {
my $pkgfile = "ucw/wildmatch.c";
if (!defined ($srcdir = $ENV{"SRCDIR"})) {
if (-f $pkgfile) {
$srcdir=".";
} elsif ($0 =~ m@^(.*)/configure$@ && -f "$1/$pkgfile") {
$srcdir=$1;
} else {
die "Don't know how to find myself. Please set SRCDIR manually.\n";
}
}
}
use lib "$srcdir/ucw/perl/";
use UCW::Configure;
Init($srcdir, "default.cfg");
Include "ucw/default.cfg";
Log "### Configuring TestApp ###\n\n";
Include Get("CONFIG");
require UCW::Configure::Paths;
require UCW::Configure::C;
require UCW::Configure::LibUCW;
Finish();
Log "\nConfigured, run `make' to build everything.\n";

18
libucw/examples/internal/default.cfg

@ -0,0 +1,18 @@
# Default configuration file for our test application
# Do a local build
Set("CONFIG_LOCAL");
# We want to build all libraries shared
Set("CONFIG_SHARED");
# Libucw-images settings
Set("CONFIG_IMAGES");
Set("CONFIG_IMAGES_LIBJPEG");
Set("CONFIG_IMAGES_LIBPNG");
Set("CONFIG_IMAGES_LIBUNGIF");
UnSet("CONFIG_IMAGES_LIBGIF");
UnSet("CONFIG_IMAGES_LIBMAGICK");
# Return success
1;

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save