summaryrefslogtreecommitdiff
path: root/gettext-runtime/intl-csharp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2014-12-24 07:38:37 +0000
committer <>2015-02-02 12:02:29 +0000
commit482840e61f86ca321838a91e902c41d40c098bbb (patch)
tree01ea2e242fd2792d19fe192476601587901db794 /gettext-runtime/intl-csharp
downloadgettext-tarball-482840e61f86ca321838a91e902c41d40c098bbb.tar.gz
Imported from /home/lorry/working-area/delta_gettext-tarball/gettext-0.19.4.tar.xz.gettext-0.19.4
Diffstat (limited to 'gettext-runtime/intl-csharp')
-rw-r--r--gettext-runtime/intl-csharp/ChangeLog125
-rw-r--r--gettext-runtime/intl-csharp/Makefile.am99
-rw-r--r--gettext-runtime/intl-csharp/Makefile.in1359
-rw-r--r--gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext.html8
-rw-r--r--gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext_GettextResourceManager.html305
-rw-r--r--gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext_GettextResourceSet.html356
-rw-r--r--gettext-runtime/intl-csharp/csharpdoc/begin.html11
-rw-r--r--gettext-runtime/intl-csharp/csharpdoc/index.html10
-rw-r--r--gettext-runtime/intl-csharp/csharpdoc/namespaces.html6
-rw-r--r--gettext-runtime/intl-csharp/intl.cs579
10 files changed, 2858 insertions, 0 deletions
diff --git a/gettext-runtime/intl-csharp/ChangeLog b/gettext-runtime/intl-csharp/ChangeLog
new file mode 100644
index 0000000..c55fb23
--- /dev/null
+++ b/gettext-runtime/intl-csharp/ChangeLog
@@ -0,0 +1,125 @@
+2014-12-24 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.4 released.
+
+2014-10-15 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.3 released.
+
+2014-07-14 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.2 released.
+
+2014-06-10 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19.1 released.
+
+2014-06-02 Daiki Ueno <ueno@gnu.org>
+
+ * gettext 0.19 released.
+
+2013-06-10 Daiki Ueno <ueno@gnu.org>
+
+ * Makefile.am: Use $(MKDIR_P) instead of $(mkdir_p).
+ Suggested by Stefano Lattarini in
+ <https://lists.gnu.org/archive/html/bug-gettext/2013-04/msg00044.html>.
+
+2012-12-25 Daiki Ueno <ueno@gnu.org>
+
+ * gettext-0.18.2 released.
+
+2011-06-03 Bruno Haible <bruno@clisp.org>
+
+ Copyright: Use LGPL 2.1 instead of LGPL 2.0.
+ * intl.cs: Update copyright header.
+
+2010-06-04 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.18.1 released.
+
+2010-05-09 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.18 released.
+
+2007-11-07 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.17 released.
+
+2007-09-02 Bruno Haible <bruno@clisp.org>
+
+ Implement msgctxt for C# ResourceManagers.
+ * intl.cs (GettextResourceManager): New methods GetParticularString,
+ GetParticularPluralString.
+
+2006-11-27 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.16.1 released.
+
+2006-10-26 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.16 released.
+
+2006-07-31 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (CSHARPCOMP): Update for changed location of
+ csharpcomp.sh.
+
+2006-07-21 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.15 released.
+
+2006-04-14 Bruno Haible <bruno@clisp.org>
+
+ Assume autoconf >= 2.60.
+ * Makefile.am (docdir, htmldir): Remove variables.
+
+2006-04-17 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am: Use $(mkdir_p) instead of $(mkinstalldirs).
+
+2005-12-04 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (CSHARPCOMPFLAGS): Use value set by csharpcomp.m4.
+
+2006-06-21 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.6 released.
+
+2006-06-21 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (CLEANFILES): Add GNU.Gettext.dll.mdb.
+
+2005-05-23 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.5 released.
+
+2005-04-11 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.4 released.
+
+2005-03-14 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.3 released.
+
+2005-02-24 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.2 released.
+
+2005-01-11 Bruno Haible <bruno@clisp.org>
+
+ * intl.cs (GettextResourceManager, GettextResourceSet): Use casts
+ instead of 'as' expressions.
+
+2004-01-29 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14.1 released.
+
+2004-01-28 Bruno Haible <bruno@clisp.org>
+
+ * gettext-0.14 released.
+
+2003-12-26 Bruno Haible <bruno@clisp.org>
+
+ * intl.cs: New file.
+ * Makefile.am: New file.
+
diff --git a/gettext-runtime/intl-csharp/Makefile.am b/gettext-runtime/intl-csharp/Makefile.am
new file mode 100644
index 0000000..c39e118
--- /dev/null
+++ b/gettext-runtime/intl-csharp/Makefile.am
@@ -0,0 +1,99 @@
+## Makefile for the gettext-runtime/intl-csharp subdirectory of GNU gettext
+## Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+##
+## This program is free software: you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 3 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+## Process this file with automake to produce Makefile.in.
+
+AUTOMAKE_OPTIONS = 1.2 gnits
+EXTRA_DIST =
+CLEANFILES =
+
+RM = rm -f
+
+CSHARPCOMP = $(SHELL) ../csharpcomp.sh
+CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@
+
+
+all-local: all-dll all-doc
+install-data-local: install-dll install-doc
+installdirs-local: installdirs-dll installdirs-doc
+uninstall-local: uninstall-dll uninstall-doc
+
+
+# Special rules for C# compilation.
+
+all-dll: all-dll-@BUILDCSHARP@
+all-dll-no:
+all-dll-yes: GNU.Gettext.dll
+
+GNU.Gettext.dll: intl.cs
+ $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ $(srcdir)/intl.cs
+
+EXTRA_DIST += intl.cs
+
+CLEANFILES += GNU.Gettext.dll GNU.Gettext.dll.mdb
+
+install-dll: install-dll-@BUILDCSHARP@
+install-dll-no:
+ $(MKDIR_P) $(DESTDIR)$(libdir)
+install-dll-yes: all-dll-yes
+ $(MKDIR_P) $(DESTDIR)$(libdir)
+ $(INSTALL_DATA) GNU.Gettext.dll $(DESTDIR)$(libdir)/GNU.Gettext.dll
+
+installdirs-dll:
+ $(MKDIR_P) $(DESTDIR)$(libdir)
+
+uninstall-dll:
+ $(RM) $(DESTDIR)$(libdir)/GNU.Gettext.dll
+
+
+# C# reference documentation. Requires the pnet tools.
+
+csharpdoc:
+ test -d csharpdoc || mkdir csharpdoc
+ csdoc -flibrary-name=GNU.Gettext intl.cs | \
+ csdoc2html -o csharpdoc -fmulti-file -fframes -fcombine-members -fno-namespace-directories -
+
+intl-csharp.texi: intl.cs
+ csdoc -flibrary-name=GNU.Gettext intl.cs | \
+ csdoc2texi -fembedded -fparent='C#' -o $@ -
+
+all-doc: $(srcdir)/csharpdoc/index.html
+
+DOC_FILES = \
+ csharpdoc/index.html \
+ csharpdoc/namespaces.html \
+ csharpdoc/begin.html \
+ csharpdoc/GNU_Gettext.html \
+ csharpdoc/GNU_Gettext_GettextResourceManager.html \
+ csharpdoc/GNU_Gettext_GettextResourceSet.html
+
+EXTRA_DIST += $(DOC_FILES)
+
+install-doc: all-doc
+ $(MKDIR_P) $(DESTDIR)$(htmldir)/csharpdoc
+ @for f in $(DOC_FILES); do \
+ echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(htmldir)/$$f"; \
+ $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(htmldir)/$$f; \
+ done
+
+installdirs-doc:
+ $(MKDIR_P) $(DESTDIR)$(htmldir)/csharpdoc
+
+uninstall-doc:
+ @for f in $(DOC_FILES); do \
+ echo "$(RM) $(DESTDIR)$(htmldir)/$$f"; \
+ $(RM) $(DESTDIR)$(htmldir)/$$f; \
+ done
diff --git a/gettext-runtime/intl-csharp/Makefile.in b/gettext-runtime/intl-csharp/Makefile.in
new file mode 100644
index 0000000..3ceb706
--- /dev/null
+++ b/gettext-runtime/intl-csharp/Makefile.in
@@ -0,0 +1,1359 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = intl-csharp
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/../build-aux/mkinstalldirs ChangeLog
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
+ $(top_srcdir)/gnulib-m4/absolute-header.m4 \
+ $(top_srcdir)/gnulib-m4/alloca.m4 \
+ $(top_srcdir)/gnulib-m4/ansi-c++.m4 \
+ $(top_srcdir)/gnulib-m4/asm-underscore.m4 \
+ $(top_srcdir)/gnulib-m4/atexit.m4 \
+ $(top_srcdir)/gnulib-m4/canonicalize.m4 \
+ $(top_srcdir)/gnulib-m4/configmake.m4 \
+ $(top_srcdir)/gnulib-m4/csharp.m4 \
+ $(top_srcdir)/gnulib-m4/csharpcomp.m4 \
+ $(top_srcdir)/gnulib-m4/double-slash-root.m4 \
+ $(top_srcdir)/gnulib-m4/eealloc.m4 \
+ $(top_srcdir)/gnulib-m4/environ.m4 \
+ $(top_srcdir)/gnulib-m4/errno_h.m4 \
+ $(top_srcdir)/gnulib-m4/error.m4 \
+ $(top_srcdir)/gnulib-m4/extensions.m4 \
+ $(top_srcdir)/gnulib-m4/getopt.m4 \
+ $(top_srcdir)/gnulib-m4/gettimeofday.m4 \
+ $(top_srcdir)/gnulib-m4/gnulib-common.m4 \
+ $(top_srcdir)/gnulib-m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib-m4/iconv_h.m4 \
+ $(top_srcdir)/gnulib-m4/iconv_open.m4 \
+ $(top_srcdir)/gnulib-m4/include_next.m4 \
+ $(top_srcdir)/gnulib-m4/inline.m4 \
+ $(top_srcdir)/gnulib-m4/iswblank.m4 \
+ $(top_srcdir)/gnulib-m4/java.m4 \
+ $(top_srcdir)/gnulib-m4/javacomp.m4 \
+ $(top_srcdir)/gnulib-m4/largefile.m4 \
+ $(top_srcdir)/gnulib-m4/lib-ld.m4 \
+ $(top_srcdir)/gnulib-m4/lib-link.m4 \
+ $(top_srcdir)/gnulib-m4/lib-prefix.m4 \
+ $(top_srcdir)/gnulib-m4/libunistring-base.m4 \
+ $(top_srcdir)/gnulib-m4/localcharset.m4 \
+ $(top_srcdir)/gnulib-m4/locale-fr.m4 \
+ $(top_srcdir)/gnulib-m4/locale-ja.m4 \
+ $(top_srcdir)/gnulib-m4/locale-zh.m4 \
+ $(top_srcdir)/gnulib-m4/locale_h.m4 \
+ $(top_srcdir)/gnulib-m4/localename.m4 \
+ $(top_srcdir)/gnulib-m4/lstat.m4 \
+ $(top_srcdir)/gnulib-m4/malloca.m4 \
+ $(top_srcdir)/gnulib-m4/mbchar.m4 \
+ $(top_srcdir)/gnulib-m4/mbiter.m4 \
+ $(top_srcdir)/gnulib-m4/mbrtowc.m4 \
+ $(top_srcdir)/gnulib-m4/mbsinit.m4 \
+ $(top_srcdir)/gnulib-m4/mbslen.m4 \
+ $(top_srcdir)/gnulib-m4/mbstate_t.m4 \
+ $(top_srcdir)/gnulib-m4/memchr.m4 \
+ $(top_srcdir)/gnulib-m4/memmove.m4 \
+ $(top_srcdir)/gnulib-m4/mmap-anon.m4 \
+ $(top_srcdir)/gnulib-m4/msvc-inval.m4 \
+ $(top_srcdir)/gnulib-m4/msvc-nothrow.m4 \
+ $(top_srcdir)/gnulib-m4/multiarch.m4 \
+ $(top_srcdir)/gnulib-m4/nocrash.m4 \
+ $(top_srcdir)/gnulib-m4/off_t.m4 \
+ $(top_srcdir)/gnulib-m4/pathmax.m4 \
+ $(top_srcdir)/gnulib-m4/raise.m4 \
+ $(top_srcdir)/gnulib-m4/readlink.m4 \
+ $(top_srcdir)/gnulib-m4/relocatable-lib.m4 \
+ $(top_srcdir)/gnulib-m4/relocatable.m4 \
+ $(top_srcdir)/gnulib-m4/setenv.m4 \
+ $(top_srcdir)/gnulib-m4/setlocale.m4 \
+ $(top_srcdir)/gnulib-m4/signal_h.m4 \
+ $(top_srcdir)/gnulib-m4/signalblocking.m4 \
+ $(top_srcdir)/gnulib-m4/sigpipe.m4 \
+ $(top_srcdir)/gnulib-m4/ssize_t.m4 \
+ $(top_srcdir)/gnulib-m4/stat.m4 \
+ $(top_srcdir)/gnulib-m4/stdbool.m4 \
+ $(top_srcdir)/gnulib-m4/stddef_h.m4 \
+ $(top_srcdir)/gnulib-m4/stdint.m4 \
+ $(top_srcdir)/gnulib-m4/stdio_h.m4 \
+ $(top_srcdir)/gnulib-m4/stdlib_h.m4 \
+ $(top_srcdir)/gnulib-m4/strerror.m4 \
+ $(top_srcdir)/gnulib-m4/string_h.m4 \
+ $(top_srcdir)/gnulib-m4/strnlen.m4 \
+ $(top_srcdir)/gnulib-m4/strtoul.m4 \
+ $(top_srcdir)/gnulib-m4/sys_socket_h.m4 \
+ $(top_srcdir)/gnulib-m4/sys_stat_h.m4 \
+ $(top_srcdir)/gnulib-m4/sys_time_h.m4 \
+ $(top_srcdir)/gnulib-m4/sys_types_h.m4 \
+ $(top_srcdir)/gnulib-m4/time_h.m4 \
+ $(top_srcdir)/gnulib-m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib-m4/unlocked-io.m4 \
+ $(top_srcdir)/gnulib-m4/warn-on-use.m4 \
+ $(top_srcdir)/gnulib-m4/wchar_h.m4 \
+ $(top_srcdir)/gnulib-m4/wctype_h.m4 \
+ $(top_srcdir)/gnulib-m4/wcwidth.m4 \
+ $(top_srcdir)/../m4/fixautomake.m4 \
+ $(top_srcdir)/../m4/libtool.m4 \
+ $(top_srcdir)/../m4/ltoptions.m4 \
+ $(top_srcdir)/../m4/ltsugar.m4 \
+ $(top_srcdir)/../m4/ltversion.m4 \
+ $(top_srcdir)/../m4/lt~obsolete.m4 \
+ $(top_srcdir)/../m4/woe32-dll.m4 $(top_srcdir)/m4/codeset.m4 \
+ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
+ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \
+ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \
+ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \
+ $(top_srcdir)/m4/inttypes-pri.m4 \
+ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \
+ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/printf-posix.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \
+ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/uintmax_t.m4 \
+ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \
+ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/../build-aux/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+AS = @AS@
+ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDCSHARP = @BUILDCSHARP@
+BUILDJAVA = @BUILDJAVA@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
+CLASSPATH = @CLASSPATH@
+CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
+CONF_JAVAC = @CONF_JAVAC@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CROSS_COMPILING = @CROSS_COMPILING@
+CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@
+CSHARP_CHOICE = @CSHARP_CHOICE@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXX_CHOICE = @CXX_CHOICE@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
+EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
+ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
+ENOLINK_VALUE = @ENOLINK_VALUE@
+EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
+EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
+ERRNO_H = @ERRNO_H@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GENCAT = @GENCAT@
+GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC2 = @GLIBC2@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BTOWC = @GNULIB_BTOWC@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
+GNULIB_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
+GNULIB_ENVIRON = @GNULIB_ENVIRON@
+GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
+GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
+GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF = @GNULIB_FPRINTF@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FPURGE = @GNULIB_FPURGE@
+GNULIB_FPUTC = @GNULIB_FPUTC@
+GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+GNULIB_FSTATAT = @GNULIB_FSTATAT@
+GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
+GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
+GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
+GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
+GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
+GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_ICONV = @GNULIB_ICONV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+GNULIB_LCHMOD = @GNULIB_LCHMOD@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LINK = @GNULIB_LINK@
+GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_LSTAT = @GNULIB_LSTAT@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MBRLEN = @GNULIB_MBRLEN@
+GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSINIT = @GNULIB_MBSINIT@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MBTOWC = @GNULIB_MBTOWC@
+GNULIB_MEMCHR = @GNULIB_MEMCHR@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDIRAT = @GNULIB_MKDIRAT@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKFIFO = @GNULIB_MKFIFO@
+GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@
+GNULIB_MKNOD = @GNULIB_MKNOD@
+GNULIB_MKNODAT = @GNULIB_MKNODAT@
+GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
+GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
+GNULIB_MKTIME = @GNULIB_MKTIME@
+GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_QSORT_R = @GNULIB_QSORT_R@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_READLINKAT = @GNULIB_READLINKAT@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_REMOVE = @GNULIB_REMOVE@
+GNULIB_RENAME = @GNULIB_RENAME@
+GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRPTIME = @GNULIB_STRPTIME@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOLL = @GNULIB_STRTOLL@
+GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
+GNULIB_SYMLINK = @GNULIB_SYMLINK@
+GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
+GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_USLEEP = @GNULIB_USLEEP@
+GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
+GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ASPRINTF = @HAVE_ASPRINTF@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CSC = @HAVE_CSC@
+HAVE_CSCC = @HAVE_CSCC@
+HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@
+HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+HAVE_GCJ_C = @HAVE_GCJ_C@
+HAVE_GCJ_IN_PATH = @HAVE_GCJ_IN_PATH@
+HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
+HAVE_GETGROUPS = @HAVE_GETGROUPS@
+HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
+HAVE_GETLOGIN = @HAVE_GETLOGIN@
+HAVE_GETOPT_H = @HAVE_GETOPT_H@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
+HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_JAVAC = @HAVE_JAVAC@
+HAVE_JAVAC_ENVVAR = @HAVE_JAVAC_ENVVAR@
+HAVE_JAVAC_IN_PATH = @HAVE_JAVAC_IN_PATH@
+HAVE_JIKES = @HAVE_JIKES@
+HAVE_JIKES_IN_PATH = @HAVE_JIKES_IN_PATH@
+HAVE_LCHMOD = @HAVE_LCHMOD@
+HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LINK = @HAVE_LINK@
+HAVE_LINKAT = @HAVE_LINKAT@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MCS = @HAVE_MCS@
+HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDIRAT = @HAVE_MKDIRAT@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_MKFIFO = @HAVE_MKFIFO@
+HAVE_MKFIFOAT = @HAVE_MKFIFOAT@
+HAVE_MKNOD = @HAVE_MKNOD@
+HAVE_MKNODAT = @HAVE_MKNODAT@
+HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
+HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
+HAVE_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_SNPRINTF = @HAVE_SNPRINTF@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_STRTOD = @HAVE_STRTOD@
+HAVE_STRTOLL = @HAVE_STRTOLL@
+HAVE_STRTOULL = @HAVE_STRTOULL@
+HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
+HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
+HAVE_SYMLINK = @HAVE_SYMLINK@
+HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_VDPRINTF = @HAVE_VDPRINTF@
+HAVE_VISIBILITY = @HAVE_VISIBILITY@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
+HAVE_WCHAR_T = @HAVE_WCHAR_T@
+HAVE_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WPRINTF = @HAVE_WPRINTF@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+ICONV_CONST = @ICONV_CONST@
+ICONV_H = @ICONV_H@
+INCLUDE_NEXT = @INCLUDE_NEXT@
+INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM_ENV = @INSTALL_PROGRAM_ENV@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@
+INTL_EXPORTS_FLAGS = @INTL_EXPORTS_FLAGS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+JAR = @JAR@
+JAVA_CHOICE = @JAVA_CHOICE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBGRT_LIBDEPS = @LIBGRT_LIBDEPS@
+LIBGRT_LTLIBDEPS = @LIBGRT_LTLIBDEPS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBMULTITHREAD = @LIBMULTITHREAD@
+LIBOBJS = @LIBOBJS@
+LIBPTH = @LIBPTH@
+LIBPTH_PREFIX = @LIBPTH_PREFIX@
+LIBS = @LIBS@
+LIBSCHED = @LIBSCHED@
+LIBTHREAD = @LIBTHREAD@
+LIBTOOL = @LIBTOOL@
+LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
+LOCALE_JA = @LOCALE_JA@
+LOCALE_ZH_CN = @LOCALE_ZH_CN@
+LTLIBC = @LTLIBC@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
+LTLIBOBJS = @LTLIBOBJS@
+LTLIBPTH = @LTLIBPTH@
+LTLIBTHREAD = @LTLIBTHREAD@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
+NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
+NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
+NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
+NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
+NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
+NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
+NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
+NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
+NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
+NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_GETOPT_H = @NEXT_GETOPT_H@
+NEXT_ICONV_H = @NEXT_ICONV_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
+NEXT_STDDEF_H = @NEXT_STDDEF_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_TIME_H = @NEXT_TIME_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+RC = @RC@
+RELOCATABLE = @RELOCATABLE@
+RELOCATABLE_BUILD_DIR = @RELOCATABLE_BUILD_DIR@
+RELOCATABLE_CONFIG_H_DIR = @RELOCATABLE_CONFIG_H_DIR@
+RELOCATABLE_LDFLAGS = @RELOCATABLE_LDFLAGS@
+RELOCATABLE_LIBRARY_PATH = @RELOCATABLE_LIBRARY_PATH@
+RELOCATABLE_SRC_DIR = @RELOCATABLE_SRC_DIR@
+RELOCATABLE_STRIP = @RELOCATABLE_STRIP@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FSTAT = @REPLACE_FSTAT@
+REPLACE_FSTATAT = @REPLACE_FSTATAT@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
+REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETDELIM = @REPLACE_GETDELIM@
+REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_GMTIME = @REPLACE_GMTIME@
+REPLACE_ICONV = @REPLACE_ICONV@
+REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
+REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LINK = @REPLACE_LINK@
+REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
+REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_LSTAT = @REPLACE_LSTAT@
+REPLACE_MALLOC = @REPLACE_MALLOC@
+REPLACE_MBRLEN = @REPLACE_MBRLEN@
+REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
+REPLACE_MBSINIT = @REPLACE_MBSINIT@
+REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
+REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
+REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MEMCHR = @REPLACE_MEMCHR@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKDIR = @REPLACE_MKDIR@
+REPLACE_MKFIFO = @REPLACE_MKFIFO@
+REPLACE_MKNOD = @REPLACE_MKNOD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_MKTIME = @REPLACE_MKTIME@
+REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NULL = @REPLACE_NULL@
+REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_POPEN = @REPLACE_POPEN@
+REPLACE_PREAD = @REPLACE_PREAD@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_QSORT_R = @REPLACE_QSORT_R@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_READLINKAT = @REPLACE_READLINKAT@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+REPLACE_REALPATH = @REPLACE_REALPATH@
+REPLACE_REMOVE = @REPLACE_REMOVE@
+REPLACE_RENAME = @REPLACE_RENAME@
+REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
+REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
+REPLACE_SLEEP = @REPLACE_SLEEP@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+REPLACE_UNLINK = @REPLACE_UNLINK@
+REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
+REPLACE_UNSETENV = @REPLACE_UNSETENV@
+REPLACE_USLEEP = @REPLACE_USLEEP@
+REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
+REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WRITE = @REPLACE_WRITE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDDEF_H = @STDDEF_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
+TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
+UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
+UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
+WINDRES = @WINDRES@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+WOE32 = @WOE32@
+WOE32DLL = @WOE32DLL@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+gltests_WITNESS = @gltests_WITNESS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+lispdir = @lispdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.2 gnits
+EXTRA_DIST = intl.cs $(DOC_FILES)
+CLEANFILES = GNU.Gettext.dll GNU.Gettext.dll.mdb
+RM = rm -f
+CSHARPCOMP = $(SHELL) ../csharpcomp.sh
+DOC_FILES = \
+ csharpdoc/index.html \
+ csharpdoc/namespaces.html \
+ csharpdoc/begin.html \
+ csharpdoc/GNU_Gettext.html \
+ csharpdoc/GNU_Gettext_GettextResourceManager.html \
+ csharpdoc/GNU_Gettext_GettextResourceSet.html
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits intl-csharp/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnits intl-csharp/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs: installdirs-local
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-local
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+ clean-libtool cscopelist-am ctags-am distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-data-local install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs installdirs-local \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags-am uninstall uninstall-am uninstall-local
+
+
+all-local: all-dll all-doc
+install-data-local: install-dll install-doc
+installdirs-local: installdirs-dll installdirs-doc
+uninstall-local: uninstall-dll uninstall-doc
+
+# Special rules for C# compilation.
+
+all-dll: all-dll-@BUILDCSHARP@
+all-dll-no:
+all-dll-yes: GNU.Gettext.dll
+
+GNU.Gettext.dll: intl.cs
+ $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ $(srcdir)/intl.cs
+
+install-dll: install-dll-@BUILDCSHARP@
+install-dll-no:
+ $(MKDIR_P) $(DESTDIR)$(libdir)
+install-dll-yes: all-dll-yes
+ $(MKDIR_P) $(DESTDIR)$(libdir)
+ $(INSTALL_DATA) GNU.Gettext.dll $(DESTDIR)$(libdir)/GNU.Gettext.dll
+
+installdirs-dll:
+ $(MKDIR_P) $(DESTDIR)$(libdir)
+
+uninstall-dll:
+ $(RM) $(DESTDIR)$(libdir)/GNU.Gettext.dll
+
+# C# reference documentation. Requires the pnet tools.
+
+csharpdoc:
+ test -d csharpdoc || mkdir csharpdoc
+ csdoc -flibrary-name=GNU.Gettext intl.cs | \
+ csdoc2html -o csharpdoc -fmulti-file -fframes -fcombine-members -fno-namespace-directories -
+
+intl-csharp.texi: intl.cs
+ csdoc -flibrary-name=GNU.Gettext intl.cs | \
+ csdoc2texi -fembedded -fparent='C#' -o $@ -
+
+all-doc: $(srcdir)/csharpdoc/index.html
+
+install-doc: all-doc
+ $(MKDIR_P) $(DESTDIR)$(htmldir)/csharpdoc
+ @for f in $(DOC_FILES); do \
+ echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(htmldir)/$$f"; \
+ $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(htmldir)/$$f; \
+ done
+
+installdirs-doc:
+ $(MKDIR_P) $(DESTDIR)$(htmldir)/csharpdoc
+
+uninstall-doc:
+ @for f in $(DOC_FILES); do \
+ echo "$(RM) $(DESTDIR)$(htmldir)/$$f"; \
+ $(RM) $(DESTDIR)$(htmldir)/$$f; \
+ done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext.html b/gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext.html
new file mode 100644
index 0000000..ec0ec95
--- /dev/null
+++ b/gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext.html
@@ -0,0 +1,8 @@
+<HTML>
+<BODY BGCOLOR="#FFFFFF">
+<I>GNU.Gettext Namespace</I><P>
+
+<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GettextResourceManager</A><BR>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GettextResourceSet</A><BR>
+</BODY>
+</HTML>
diff --git a/gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext_GettextResourceManager.html b/gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext_GettextResourceManager.html
new file mode 100644
index 0000000..e237567
--- /dev/null
+++ b/gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext_GettextResourceManager.html
@@ -0,0 +1,305 @@
+<HTML>
+<HEAD>
+<TITLE>GNU.Gettext.GettextResourceManager Class</TITLE>
+</HEAD>
+<BODY BGCOLOR="#FFFFFF">
+<H3>GNU.Gettext.GettextResourceManager Class</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public class GettextResourceManager: System.Resources.ResourceManager</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Base Types</H4>
+
+<BLOCKQUOTE>
+System.Resources.ResourceManager<BR>
+&nbsp;&nbsp;GettextResourceManager<P>
+
+</BLOCKQUOTE>
+
+<H4>Library</H4>
+
+<BLOCKQUOTE>
+GNU.Gettext
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Each instance of this class can be used to lookup translations for a
+given resource name. For each <CODE>CultureInfo</CODE>, it performs the lookup
+in several assemblies, from most specific over territory-neutral to
+language-neutral.
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<H4>Members</H4>
+
+<BLOCKQUOTE>
+<P>
+
+GettextResourceManager Constructors<P>
+
+<A HREF="#GettextResourceManager%28System.String%29%20Constructor" TARGET="contents">GettextResourceManager(System.String) Constructor</A><BR>
+<A HREF="#GettextResourceManager%28System.String%2C%20System.Reflection.Assembly%29%20Constructor" TARGET="contents">GettextResourceManager(System.String, System.Reflection.Assembly) Constructor</A><BR>
+<P>
+
+GettextResourceManager Methods<P>
+
+<A HREF="#GettextResourceManager.GetPluralString%28System.String%2C%20System.String%2C%20long%2C%20System.Globalization.CultureInfo%29%20Method" TARGET="contents">GettextResourceManager.GetPluralString(System.String, System.String, long, System.Globalization.CultureInfo) Method</A><BR>
+<A HREF="#GettextResourceManager.GetPluralString%28System.String%2C%20System.String%2C%20long%29%20Method" TARGET="contents">GettextResourceManager.GetPluralString(System.String, System.String, long) Method</A><BR>
+<A HREF="#GettextResourceManager.GetString%28System.String%2C%20System.Globalization.CultureInfo%29%20Method" TARGET="contents">GettextResourceManager.GetString(System.String, System.Globalization.CultureInfo) Method</A><BR>
+<A HREF="#GettextResourceManager.GetString%28System.String%29%20Method" TARGET="contents">GettextResourceManager.GetString(System.String) Method</A><BR>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceManager%28System.String%29%20Constructor"><H3>GettextResourceManager(System.String) Constructor</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceManager(System.String baseName);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Constructor.
+</BLOCKQUOTE>
+
+<H4>Parameters</H4>
+
+<BLOCKQUOTE>
+<DL>
+<DT>baseName</DT>
+<DD>the resource name, also the assembly base
+ name</DD>
+</DL>
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceManager%28System.String%2C%20System.Reflection.Assembly%29%20Constructor"><H3>GettextResourceManager(System.String, System.Reflection.Assembly) Constructor</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceManager(System.String baseName, System.Reflection.Assembly assembly);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Constructor.
+</BLOCKQUOTE>
+
+<H4>Parameters</H4>
+
+<BLOCKQUOTE>
+<DL>
+<DT>baseName</DT>
+<DD>the resource name, also the assembly base
+ name</DD>
+</DL>
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceManager.GetPluralString%28System.String%2C%20System.String%2C%20long%2C%20System.Globalization.CultureInfo%29%20Method"><H3>GettextResourceManager.GetPluralString(System.String, System.String, long, System.Globalization.CultureInfo) Method</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public virtual System.String GetPluralString(System.String msgid, System.String msgidPlural, long n, System.Globalization.CultureInfo culture);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Returns the translation of <I>msgid</I> and
+<I>msgidPlural</I> in a given culture, choosing the right
+plural form depending on the number <I>n</I>.
+</BLOCKQUOTE>
+
+<H4>Parameters</H4>
+
+<BLOCKQUOTE>
+<DL>
+<DT>msgid</DT>
+<DD>the key string to be translated, an ASCII
+ string</DD>
+<DT>msgidPlural</DT>
+<DD>the English plural of <I>msgid</I>,
+ an ASCII string</DD>
+<DT>n</DT>
+<DD>the number, should be &gt;= 0</DD>
+</DL>
+</BLOCKQUOTE>
+
+<H4>Return Value</H4>
+
+<BLOCKQUOTE>
+the translation, or <I>msgid</I> or
+ <I>msgidPlural</I> if none is found
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceManager.GetPluralString%28System.String%2C%20System.String%2C%20long%29%20Method"><H3>GettextResourceManager.GetPluralString(System.String, System.String, long) Method</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public virtual System.String GetPluralString(System.String msgid, System.String msgidPlural, long n);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Returns the translation of <I>msgid</I> and
+<I>msgidPlural</I> in the current culture, choosing the
+right plural form depending on the number <I>n</I>.
+</BLOCKQUOTE>
+
+<H4>Parameters</H4>
+
+<BLOCKQUOTE>
+<DL>
+<DT>msgid</DT>
+<DD>the key string to be translated, an ASCII
+ string</DD>
+<DT>msgidPlural</DT>
+<DD>the English plural of <I>msgid</I>,
+ an ASCII string</DD>
+<DT>n</DT>
+<DD>the number, should be &gt;= 0</DD>
+</DL>
+</BLOCKQUOTE>
+
+<H4>Return Value</H4>
+
+<BLOCKQUOTE>
+the translation, or <I>msgid</I> or
+ <I>msgidPlural</I> if none is found
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceManager.GetString%28System.String%2C%20System.Globalization.CultureInfo%29%20Method"><H3>GettextResourceManager.GetString(System.String, System.Globalization.CultureInfo) Method</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public override System.String GetString(System.String msgid, System.Globalization.CultureInfo culture);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Returns the translation of <I>msgid</I> in a given culture.
+</BLOCKQUOTE>
+
+<H4>Parameters</H4>
+
+<BLOCKQUOTE>
+<DL>
+<DT>msgid</DT>
+<DD>the key string to be translated, an ASCII
+ string</DD>
+</DL>
+</BLOCKQUOTE>
+
+<H4>Return Value</H4>
+
+<BLOCKQUOTE>
+the translation of <I>msgid</I>, or
+ <I>msgid</I> if none is found
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceManager.GetString%28System.String%29%20Method"><H3>GettextResourceManager.GetString(System.String) Method</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public override System.String GetString(System.String msgid);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Returns the translation of <I>msgid</I> in the current
+culture.
+</BLOCKQUOTE>
+
+<H4>Parameters</H4>
+
+<BLOCKQUOTE>
+<DL>
+<DT>msgid</DT>
+<DD>the key string to be translated, an ASCII
+ string</DD>
+</DL>
+</BLOCKQUOTE>
+
+<H4>Return Value</H4>
+
+<BLOCKQUOTE>
+the translation of <I>msgid</I>, or
+ <I>msgid</I> if none is found
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+</BODY>
+</HTML>
diff --git a/gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext_GettextResourceSet.html b/gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext_GettextResourceSet.html
new file mode 100644
index 0000000..64869c9
--- /dev/null
+++ b/gettext-runtime/intl-csharp/csharpdoc/GNU_Gettext_GettextResourceSet.html
@@ -0,0 +1,356 @@
+<HTML>
+<HEAD>
+<TITLE>GNU.Gettext.GettextResourceSet Class</TITLE>
+</HEAD>
+<BODY BGCOLOR="#FFFFFF">
+<H3>GNU.Gettext.GettextResourceSet Class</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public class GettextResourceSet: System.Resources.ResourceSet</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Base Types</H4>
+
+<BLOCKQUOTE>
+System.Resources.ResourceSet<BR>
+&nbsp;&nbsp;GettextResourceSet<P>
+
+</BLOCKQUOTE>
+
+<H4>Library</H4>
+
+<BLOCKQUOTE>
+GNU.Gettext
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Each instance of this class encapsulates a single PO file.
+<P>
+
+
+This API of this class is not meant to be used directly; use
+<CODE>GettextResourceManager</CODE> instead.
+<P>
+
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<H4>Members</H4>
+
+<BLOCKQUOTE>
+<P>
+
+GettextResourceSet Constructors<P>
+
+<A HREF="#GettextResourceSet%28%29%20Constructor" TARGET="contents">GettextResourceSet() Constructor</A><BR>
+<A HREF="#GettextResourceSet%28System.Resources.IResourceReader%29%20Constructor" TARGET="contents">GettextResourceSet(System.Resources.IResourceReader) Constructor</A><BR>
+<A HREF="#GettextResourceSet%28System.IO.Stream%29%20Constructor" TARGET="contents">GettextResourceSet(System.IO.Stream) Constructor</A><BR>
+<A HREF="#GettextResourceSet%28System.String%29%20Constructor" TARGET="contents">GettextResourceSet(System.String) Constructor</A><BR>
+<P>
+
+GettextResourceSet Methods<P>
+
+<A HREF="#GettextResourceSet.GetPluralString%20Method" TARGET="contents">GettextResourceSet.GetPluralString Method</A><BR>
+<A HREF="#GettextResourceSet.GetString%28System.String%29%20Method" TARGET="contents">GettextResourceSet.GetString(System.String) Method</A><BR>
+<A HREF="#GettextResourceSet.GetString%28System.String%2C%20bool%29%20Method" TARGET="contents">GettextResourceSet.GetString(System.String, bool) Method</A><BR>
+<A HREF="#GettextResourceSet.PluralEval%20Method" TARGET="contents">GettextResourceSet.PluralEval Method</A><BR>
+<P>
+
+GettextResourceSet Properties<P>
+
+<A HREF="#GettextResourceSet.Keys%20Property" TARGET="contents">GettextResourceSet.Keys Property</A><BR>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceSet%28%29%20Constructor"><H3>GettextResourceSet() Constructor</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>protected GettextResourceSet();</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Creates a new message catalog. When using this constructor, you
+must override the <CODE>ReadResources</CODE> method, in order to initialize
+the <CODE>Table</CODE> property. The message catalog will support plural
+forms only if the <CODE>ReadResources</CODE> method installs values of type
+<CODE>String[]</CODE> and if the <CODE>PluralEval</CODE> method is overridden.
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceSet%28System.Resources.IResourceReader%29%20Constructor"><H3>GettextResourceSet(System.Resources.IResourceReader) Constructor</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceSet(System.Resources.IResourceReader reader);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Creates a new message catalog, by reading the string/value pairs from
+the given <I>reader</I>. The message catalog will support
+plural forms only if the reader can produce values of type
+<CODE>String[]</CODE> and if the <CODE>PluralEval</CODE> method is overridden.
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceSet%28System.IO.Stream%29%20Constructor"><H3>GettextResourceSet(System.IO.Stream) Constructor</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceSet(System.IO.Stream stream);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Creates a new message catalog, by reading the string/value pairs from
+the given <I>stream</I>, which should have the format of
+a <CODE>.resources</CODE> file. The message catalog will not support plural
+forms.
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceSet%28System.String%29%20Constructor"><H3>GettextResourceSet(System.String) Constructor</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceSet(System.String fileName);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Creates a new message catalog, by reading the string/value pairs from
+the file with the given <I>fileName</I>. The file should
+be in the format of a <CODE>.resources</CODE> file. The message catalog will
+not support plural forms.
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceSet.GetPluralString%20Method"><H3>GettextResourceSet.GetPluralString Method</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public virtual System.String GetPluralString(System.String msgid, System.String msgidPlural, long n);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Returns the translation of <I>msgid</I> and
+<I>msgidPlural</I>, choosing the right plural form
+depending on the number <I>n</I>.
+</BLOCKQUOTE>
+
+<H4>Parameters</H4>
+
+<BLOCKQUOTE>
+<DL>
+<DT>msgid</DT>
+<DD>the key string to be translated, an ASCII
+ string</DD>
+<DT>msgidPlural</DT>
+<DD>the English plural of <I>msgid</I>,
+ an ASCII string</DD>
+<DT>n</DT>
+<DD>the number, should be &gt;= 0</DD>
+</DL>
+</BLOCKQUOTE>
+
+<H4>Return Value</H4>
+
+<BLOCKQUOTE>
+the translation, or <CODE>null</CODE> if none is found
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceSet.GetString%28System.String%29%20Method"><H3>GettextResourceSet.GetString(System.String) Method</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public override System.String GetString(System.String msgid);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Returns the translation of <I>msgid</I>.
+</BLOCKQUOTE>
+
+<H4>Parameters</H4>
+
+<BLOCKQUOTE>
+<DL>
+<DT>msgid</DT>
+<DD>the key string to be translated, an ASCII
+ string</DD>
+</DL>
+</BLOCKQUOTE>
+
+<H4>Return Value</H4>
+
+<BLOCKQUOTE>
+the translation of <I>msgid</I>, or <CODE>null</CODE> if
+ none is found
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceSet.GetString%28System.String%2C%20bool%29%20Method"><H3>GettextResourceSet.GetString(System.String, bool) Method</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public override System.String GetString(System.String msgid, bool ignoreCase);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Returns the translation of <I>msgid</I>, with possibly
+case-insensitive lookup.
+</BLOCKQUOTE>
+
+<H4>Parameters</H4>
+
+<BLOCKQUOTE>
+<DL>
+<DT>msgid</DT>
+<DD>the key string to be translated, an ASCII
+ string</DD>
+</DL>
+</BLOCKQUOTE>
+
+<H4>Return Value</H4>
+
+<BLOCKQUOTE>
+the translation of <I>msgid</I>, or <CODE>null</CODE> if
+ none is found
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceSet.PluralEval%20Method"><H3>GettextResourceSet.PluralEval Method</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>protected virtual long PluralEval(long n);</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Returns the index of the plural form to be chosen for a given number.
+The default implementation is the Germanic plural formula:
+zero for <I>n</I> == 1, one for <I>n</I> != 1.
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+<HR>
+
+<A NAME="GettextResourceSet.Keys%20Property"><H3>GettextResourceSet.Keys Property</H3>
+
+<BLOCKQUOTE>
+<TABLE COLS="1" ROWS="1" WIDTH="100%">
+<TR><TD BGCOLOR="#C0C0C0"><PRE>public virtual System.Collections.ICollection Keys { get; }</PRE></TD></TR>
+</TABLE>
+</BLOCKQUOTE>
+
+<H4>Summary</H4>
+
+<BLOCKQUOTE>
+
+Returns the keys of this resource set, i.e. the strings for which
+<CODE>GetObject()</CODE> can return a non-null value.
+</BLOCKQUOTE>
+
+<H4>See Also</H4>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
+</BLOCKQUOTE>
+
+</BODY>
+</HTML>
diff --git a/gettext-runtime/intl-csharp/csharpdoc/begin.html b/gettext-runtime/intl-csharp/csharpdoc/begin.html
new file mode 100644
index 0000000..a0917d6
--- /dev/null
+++ b/gettext-runtime/intl-csharp/csharpdoc/begin.html
@@ -0,0 +1,11 @@
+<HTML>
+<HEAD><TITLE>-</TITLE></HEAD>
+<BODY BGCOLOR="#FFFFFF">
+<H1>-</H1>
+
+<BLOCKQUOTE>
+<A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A><BR>
+</BLOCKQUOTE>
+
+</BODY>
+</HTML>
diff --git a/gettext-runtime/intl-csharp/csharpdoc/index.html b/gettext-runtime/intl-csharp/csharpdoc/index.html
new file mode 100644
index 0000000..96aa05a
--- /dev/null
+++ b/gettext-runtime/intl-csharp/csharpdoc/index.html
@@ -0,0 +1,10 @@
+<HTML>
+<HEAD><TITLE>-</TITLE></HEAD>
+<FRAMESET COLS="150,*">
+ <FRAMESET ROWS="50%,50%">
+ <FRAME SRC="namespaces.html" NAME="namespaces">
+ <FRAME SRC="GNU_Gettext.html" NAME="members">
+ </FRAMESET>
+ <FRAME SRC="begin.html" NAME="contents">
+</FRAMESET>
+</HTML>
diff --git a/gettext-runtime/intl-csharp/csharpdoc/namespaces.html b/gettext-runtime/intl-csharp/csharpdoc/namespaces.html
new file mode 100644
index 0000000..9ffd95e
--- /dev/null
+++ b/gettext-runtime/intl-csharp/csharpdoc/namespaces.html
@@ -0,0 +1,6 @@
+<HTML>
+<BODY BGCOLOR="#FFFFFF">
+<I>Namespaces</I><P>
+<A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext</A><BR>
+</BODY>
+</HTML>
diff --git a/gettext-runtime/intl-csharp/intl.cs b/gettext-runtime/intl-csharp/intl.cs
new file mode 100644
index 0000000..077e246
--- /dev/null
+++ b/gettext-runtime/intl-csharp/intl.cs
@@ -0,0 +1,579 @@
+/* GNU gettext for C#
+ * Copyright (C) 2003, 2005, 2007 Free Software Foundation, Inc.
+ * Written by Bruno Haible <bruno@clisp.org>, 2003.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * Using the GNU gettext approach, compiled message catalogs are assemblies
+ * containing just one class, a subclass of GettextResourceSet. They are thus
+ * interoperable with standard ResourceManager based code.
+ *
+ * The main differences between the common .NET resources approach and the
+ * GNU gettext approach are:
+ * - In the .NET resource approach, the keys are abstract textual shortcuts.
+ * In the GNU gettext approach, the keys are the English/ASCII version
+ * of the messages.
+ * - In the .NET resource approach, the translation files are called
+ * "Resource.locale.resx" and are UTF-8 encoded XML files. In the GNU gettext
+ * approach, the translation files are called "Resource.locale.po" and are
+ * in the encoding the translator has chosen. There are at least three GUI
+ * translating tools (Emacs PO mode, KDE KBabel, GNOME gtranslator).
+ * - In the .NET resource approach, the function ResourceManager.GetString
+ * returns an empty string or throws an InvalidOperationException when no
+ * translation is found. In the GNU gettext approach, the GetString function
+ * returns the (English) message key in that case.
+ * - In the .NET resource approach, there is no support for plural handling.
+ * In the GNU gettext approach, we have the GetPluralString function.
+ * - In the .NET resource approach, there is no support for context specific
+ * translations.
+ * In the GNU gettext approach, we have the GetParticularString function.
+ *
+ * To compile GNU gettext message catalogs into C# assemblies, the msgfmt
+ * program can be used.
+ */
+
+using System; /* String, InvalidOperationException, Console */
+using System.Globalization; /* CultureInfo */
+using System.Resources; /* ResourceManager, ResourceSet, IResourceReader */
+using System.Reflection; /* Assembly, ConstructorInfo */
+using System.Collections; /* Hashtable, ICollection, IEnumerator, IDictionaryEnumerator */
+using System.IO; /* Path, FileNotFoundException, Stream */
+using System.Text; /* StringBuilder */
+
+namespace GNU.Gettext {
+
+ /// <summary>
+ /// Each instance of this class can be used to lookup translations for a
+ /// given resource name. For each <c>CultureInfo</c>, it performs the lookup
+ /// in several assemblies, from most specific over territory-neutral to
+ /// language-neutral.
+ /// </summary>
+ public class GettextResourceManager : ResourceManager {
+
+ // ======================== Public Constructors ========================
+
+ /// <summary>
+ /// Constructor.
+ /// </summary>
+ /// <param name="baseName">the resource name, also the assembly base
+ /// name</param>
+ public GettextResourceManager (String baseName)
+ : base (baseName, Assembly.GetCallingAssembly(), typeof (GettextResourceSet)) {
+ }
+
+ /// <summary>
+ /// Constructor.
+ /// </summary>
+ /// <param name="baseName">the resource name, also the assembly base
+ /// name</param>
+ public GettextResourceManager (String baseName, Assembly assembly)
+ : base (baseName, assembly, typeof (GettextResourceSet)) {
+ }
+
+ // ======================== Implementation ========================
+
+ /// <summary>
+ /// Loads and returns a satellite assembly.
+ /// </summary>
+ // This is like Assembly.GetSatelliteAssembly, but uses resourceName
+ // instead of assembly.GetName().Name, and works around a bug in
+ // mono-0.28.
+ private static Assembly GetSatelliteAssembly (Assembly assembly, String resourceName, CultureInfo culture) {
+ String satelliteExpectedLocation =
+ Path.GetDirectoryName(assembly.Location)
+ + Path.DirectorySeparatorChar + culture.Name
+ + Path.DirectorySeparatorChar + resourceName + ".resources.dll";
+ return Assembly.LoadFrom(satelliteExpectedLocation);
+ }
+
+ /// <summary>
+ /// Loads and returns the satellite assembly for a given culture.
+ /// </summary>
+ private Assembly MySatelliteAssembly (CultureInfo culture) {
+ return GetSatelliteAssembly(MainAssembly, BaseName, culture);
+ }
+
+ /// <summary>
+ /// Converts a resource name to a class name.
+ /// </summary>
+ /// <returns>a nonempty string consisting of alphanumerics and underscores
+ /// and starting with a letter or underscore</returns>
+ private static String ConstructClassName (String resourceName) {
+ // We could just return an arbitrary fixed class name, like "Messages",
+ // assuming that every assembly will only ever contain one
+ // GettextResourceSet subclass, but this assumption would break the day
+ // we want to support multi-domain PO files in the same format...
+ bool valid = (resourceName.Length > 0);
+ for (int i = 0; valid && i < resourceName.Length; i++) {
+ char c = resourceName[i];
+ if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c == '_')
+ || (i > 0 && c >= '0' && c <= '9')))
+ valid = false;
+ }
+ if (valid)
+ return resourceName;
+ else {
+ // Use hexadecimal escapes, using the underscore as escape character.
+ String hexdigit = "0123456789abcdef";
+ StringBuilder b = new StringBuilder();
+ b.Append("__UESCAPED__");
+ for (int i = 0; i < resourceName.Length; i++) {
+ char c = resourceName[i];
+ if (c >= 0xd800 && c < 0xdc00
+ && i+1 < resourceName.Length
+ && resourceName[i+1] >= 0xdc00 && resourceName[i+1] < 0xe000) {
+ // Combine two UTF-16 words to a character.
+ char c2 = resourceName[i+1];
+ int uc = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+ b.Append('_');
+ b.Append('U');
+ b.Append(hexdigit[(uc >> 28) & 0x0f]);
+ b.Append(hexdigit[(uc >> 24) & 0x0f]);
+ b.Append(hexdigit[(uc >> 20) & 0x0f]);
+ b.Append(hexdigit[(uc >> 16) & 0x0f]);
+ b.Append(hexdigit[(uc >> 12) & 0x0f]);
+ b.Append(hexdigit[(uc >> 8) & 0x0f]);
+ b.Append(hexdigit[(uc >> 4) & 0x0f]);
+ b.Append(hexdigit[uc & 0x0f]);
+ i++;
+ } else if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')
+ || (c >= '0' && c <= '9'))) {
+ int uc = c;
+ b.Append('_');
+ b.Append('u');
+ b.Append(hexdigit[(uc >> 12) & 0x0f]);
+ b.Append(hexdigit[(uc >> 8) & 0x0f]);
+ b.Append(hexdigit[(uc >> 4) & 0x0f]);
+ b.Append(hexdigit[uc & 0x0f]);
+ } else
+ b.Append(c);
+ }
+ return b.ToString();
+ }
+ }
+
+ /// <summary>
+ /// Instantiates a resource set for a given culture.
+ /// </summary>
+ /// <exception cref="ArgumentException">
+ /// The expected type name is not valid.
+ /// </exception>
+ /// <exception cref="ReflectionTypeLoadException">
+ /// satelliteAssembly does not contain the expected type.
+ /// </exception>
+ /// <exception cref="NullReferenceException">
+ /// The type has no no-arguments constructor.
+ /// </exception>
+ private static GettextResourceSet InstantiateResourceSet (Assembly satelliteAssembly, String resourceName, CultureInfo culture) {
+ // We expect a class with a culture dependent class name.
+ Type clazz = satelliteAssembly.GetType(ConstructClassName(resourceName)+"_"+culture.Name.Replace('-','_'));
+ // We expect it has a no-argument constructor, and invoke it.
+ ConstructorInfo constructor = clazz.GetConstructor(Type.EmptyTypes);
+ return (GettextResourceSet) constructor.Invoke(null);
+ }
+
+ private static GettextResourceSet[] EmptyResourceSetArray = new GettextResourceSet[0];
+
+ // Cache for already loaded GettextResourceSet cascades.
+ private Hashtable /* CultureInfo -> GettextResourceSet[] */ Loaded = new Hashtable();
+
+ /// <summary>
+ /// Returns the array of <c>GettextResourceSet</c>s for a given culture,
+ /// loading them if necessary, and maintaining the cache.
+ /// </summary>
+ private GettextResourceSet[] GetResourceSetsFor (CultureInfo culture) {
+ //Console.WriteLine(">> GetResourceSetsFor "+culture);
+ // Look up in the cache.
+ GettextResourceSet[] result = (GettextResourceSet[]) Loaded[culture];
+ if (result == null) {
+ lock(this) {
+ // Look up again - maybe another thread has filled in the entry
+ // while we slept waiting for the lock.
+ result = (GettextResourceSet[]) Loaded[culture];
+ if (result == null) {
+ // Determine the GettextResourceSets for the given culture.
+ if (culture.Parent == null || culture.Equals(CultureInfo.InvariantCulture))
+ // Invariant culture.
+ result = EmptyResourceSetArray;
+ else {
+ // Use a satellite assembly as primary GettextResourceSet, and
+ // the result for the parent culture as fallback.
+ GettextResourceSet[] parentResult = GetResourceSetsFor(culture.Parent);
+ Assembly satelliteAssembly;
+ try {
+ satelliteAssembly = MySatelliteAssembly(culture);
+ } catch (FileNotFoundException e) {
+ satelliteAssembly = null;
+ }
+ if (satelliteAssembly != null) {
+ GettextResourceSet satelliteResourceSet;
+ try {
+ satelliteResourceSet = InstantiateResourceSet(satelliteAssembly, BaseName, culture);
+ } catch (Exception e) {
+ Console.Error.WriteLine(e);
+ Console.Error.WriteLine(e.StackTrace);
+ satelliteResourceSet = null;
+ }
+ if (satelliteResourceSet != null) {
+ result = new GettextResourceSet[1+parentResult.Length];
+ result[0] = satelliteResourceSet;
+ Array.Copy(parentResult, 0, result, 1, parentResult.Length);
+ } else
+ result = parentResult;
+ } else
+ result = parentResult;
+ }
+ // Put the result into the cache.
+ Loaded.Add(culture, result);
+ }
+ }
+ }
+ //Console.WriteLine("<< GetResourceSetsFor "+culture);
+ return result;
+ }
+
+ /*
+ /// <summary>
+ /// Releases all loaded <c>GettextResourceSet</c>s and their assemblies.
+ /// </summary>
+ // TODO: No way to release an Assembly?
+ public override void ReleaseAllResources () {
+ ...
+ }
+ */
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/> in a given culture.
+ /// </summary>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <returns>the translation of <paramref name="msgid"/>, or
+ /// <paramref name="msgid"/> if none is found</returns>
+ public override String GetString (String msgid, CultureInfo culture) {
+ foreach (GettextResourceSet rs in GetResourceSetsFor(culture)) {
+ String translation = rs.GetString(msgid);
+ if (translation != null)
+ return translation;
+ }
+ // Fallback.
+ return msgid;
+ }
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/> and
+ /// <paramref name="msgidPlural"/> in a given culture, choosing the right
+ /// plural form depending on the number <paramref name="n"/>.
+ /// </summary>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <param name="msgidPlural">the English plural of <paramref name="msgid"/>,
+ /// an ASCII string</param>
+ /// <param name="n">the number, should be &gt;= 0</param>
+ /// <returns>the translation, or <paramref name="msgid"/> or
+ /// <paramref name="msgidPlural"/> if none is found</returns>
+ public virtual String GetPluralString (String msgid, String msgidPlural, long n, CultureInfo culture) {
+ foreach (GettextResourceSet rs in GetResourceSetsFor(culture)) {
+ String translation = rs.GetPluralString(msgid, msgidPlural, n);
+ if (translation != null)
+ return translation;
+ }
+ // Fallback: Germanic plural form.
+ return (n == 1 ? msgid : msgidPlural);
+ }
+
+ // ======================== Public Methods ========================
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/> in the context
+ /// of <paramref name="msgctxt"/> a given culture.
+ /// </summary>
+ /// <param name="msgctxt">the context for the key string, an ASCII
+ /// string</param>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <returns>the translation of <paramref name="msgid"/>, or
+ /// <paramref name="msgid"/> if none is found</returns>
+ public String GetParticularString (String msgctxt, String msgid, CultureInfo culture) {
+ String combined = msgctxt + "\u0004" + msgid;
+ foreach (GettextResourceSet rs in GetResourceSetsFor(culture)) {
+ String translation = rs.GetString(combined);
+ if (translation != null)
+ return translation;
+ }
+ // Fallback.
+ return msgid;
+ }
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/> and
+ /// <paramref name="msgidPlural"/> in the context of
+ /// <paramref name="msgctxt"/> in a given culture, choosing the right
+ /// plural form depending on the number <paramref name="n"/>.
+ /// </summary>
+ /// <param name="msgctxt">the context for the key string, an ASCII
+ /// string</param>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <param name="msgidPlural">the English plural of <paramref name="msgid"/>,
+ /// an ASCII string</param>
+ /// <param name="n">the number, should be &gt;= 0</param>
+ /// <returns>the translation, or <paramref name="msgid"/> or
+ /// <paramref name="msgidPlural"/> if none is found</returns>
+ public virtual String GetParticularPluralString (String msgctxt, String msgid, String msgidPlural, long n, CultureInfo culture) {
+ String combined = msgctxt + "\u0004" + msgid;
+ foreach (GettextResourceSet rs in GetResourceSetsFor(culture)) {
+ String translation = rs.GetPluralString(combined, msgidPlural, n);
+ if (translation != null)
+ return translation;
+ }
+ // Fallback: Germanic plural form.
+ return (n == 1 ? msgid : msgidPlural);
+ }
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/> in the current
+ /// culture.
+ /// </summary>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <returns>the translation of <paramref name="msgid"/>, or
+ /// <paramref name="msgid"/> if none is found</returns>
+ public override String GetString (String msgid) {
+ return GetString(msgid, CultureInfo.CurrentUICulture);
+ }
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/> and
+ /// <paramref name="msgidPlural"/> in the current culture, choosing the
+ /// right plural form depending on the number <paramref name="n"/>.
+ /// </summary>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <param name="msgidPlural">the English plural of <paramref name="msgid"/>,
+ /// an ASCII string</param>
+ /// <param name="n">the number, should be &gt;= 0</param>
+ /// <returns>the translation, or <paramref name="msgid"/> or
+ /// <paramref name="msgidPlural"/> if none is found</returns>
+ public virtual String GetPluralString (String msgid, String msgidPlural, long n) {
+ return GetPluralString(msgid, msgidPlural, n, CultureInfo.CurrentUICulture);
+ }
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/> in the context
+ /// of <paramref name="msgctxt"/> in the current culture.
+ /// </summary>
+ /// <param name="msgctxt">the context for the key string, an ASCII
+ /// string</param>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <returns>the translation of <paramref name="msgid"/>, or
+ /// <paramref name="msgid"/> if none is found</returns>
+ public String GetParticularString (String msgctxt, String msgid) {
+ return GetParticularString(msgctxt, msgid, CultureInfo.CurrentUICulture);
+ }
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/> and
+ /// <paramref name="msgidPlural"/> in the context of
+ /// <paramref name="msgctxt"/> in the current culture, choosing the
+ /// right plural form depending on the number <paramref name="n"/>.
+ /// </summary>
+ /// <param name="msgctxt">the context for the key string, an ASCII
+ /// string</param>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <param name="msgidPlural">the English plural of <paramref name="msgid"/>,
+ /// an ASCII string</param>
+ /// <param name="n">the number, should be &gt;= 0</param>
+ /// <returns>the translation, or <paramref name="msgid"/> or
+ /// <paramref name="msgidPlural"/> if none is found</returns>
+ public virtual String GetParticularPluralString (String msgctxt, String msgid, String msgidPlural, long n) {
+ return GetParticularPluralString(msgctxt, msgid, msgidPlural, n, CultureInfo.CurrentUICulture);
+ }
+
+ }
+
+ /// <summary>
+ /// <para>
+ /// Each instance of this class encapsulates a single PO file.
+ /// </para>
+ /// <para>
+ /// This API of this class is not meant to be used directly; use
+ /// <c>GettextResourceManager</c> instead.
+ /// </para>
+ /// </summary>
+ // We need this subclass of ResourceSet, because the plural formula must come
+ // from the same ResourceSet as the object containing the plural forms.
+ public class GettextResourceSet : ResourceSet {
+
+ /// <summary>
+ /// Creates a new message catalog. When using this constructor, you
+ /// must override the <c>ReadResources</c> method, in order to initialize
+ /// the <c>Table</c> property. The message catalog will support plural
+ /// forms only if the <c>ReadResources</c> method installs values of type
+ /// <c>String[]</c> and if the <c>PluralEval</c> method is overridden.
+ /// </summary>
+ protected GettextResourceSet ()
+ : base (DummyResourceReader) {
+ }
+
+ /// <summary>
+ /// Creates a new message catalog, by reading the string/value pairs from
+ /// the given <paramref name="reader"/>. The message catalog will support
+ /// plural forms only if the reader can produce values of type
+ /// <c>String[]</c> and if the <c>PluralEval</c> method is overridden.
+ /// </summary>
+ public GettextResourceSet (IResourceReader reader)
+ : base (reader) {
+ }
+
+ /// <summary>
+ /// Creates a new message catalog, by reading the string/value pairs from
+ /// the given <paramref name="stream"/>, which should have the format of
+ /// a <c>.resources</c> file. The message catalog will not support plural
+ /// forms.
+ /// </summary>
+ public GettextResourceSet (Stream stream)
+ : base (stream) {
+ }
+
+ /// <summary>
+ /// Creates a new message catalog, by reading the string/value pairs from
+ /// the file with the given <paramref name="fileName"/>. The file should
+ /// be in the format of a <c>.resources</c> file. The message catalog will
+ /// not support plural forms.
+ /// </summary>
+ public GettextResourceSet (String fileName)
+ : base (fileName) {
+ }
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/>.
+ /// </summary>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <returns>the translation of <paramref name="msgid"/>, or <c>null</c> if
+ /// none is found</returns>
+ // The default implementation essentially does (String)Table[msgid].
+ // Here we also catch the plural form case.
+ public override String GetString (String msgid) {
+ Object value = GetObject(msgid);
+ if (value == null || value is String)
+ return (String)value;
+ else if (value is String[])
+ // A plural form, but no number is given.
+ // Like the C implementation, return the first plural form.
+ return ((String[]) value)[0];
+ else
+ throw new InvalidOperationException("resource for \""+msgid+"\" in "+GetType().FullName+" is not a string");
+ }
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/>, with possibly
+ /// case-insensitive lookup.
+ /// </summary>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <returns>the translation of <paramref name="msgid"/>, or <c>null</c> if
+ /// none is found</returns>
+ // The default implementation essentially does (String)Table[msgid].
+ // Here we also catch the plural form case.
+ public override String GetString (String msgid, bool ignoreCase) {
+ Object value = GetObject(msgid, ignoreCase);
+ if (value == null || value is String)
+ return (String)value;
+ else if (value is String[])
+ // A plural form, but no number is given.
+ // Like the C implementation, return the first plural form.
+ return ((String[]) value)[0];
+ else
+ throw new InvalidOperationException("resource for \""+msgid+"\" in "+GetType().FullName+" is not a string");
+ }
+
+ /// <summary>
+ /// Returns the translation of <paramref name="msgid"/> and
+ /// <paramref name="msgidPlural"/>, choosing the right plural form
+ /// depending on the number <paramref name="n"/>.
+ /// </summary>
+ /// <param name="msgid">the key string to be translated, an ASCII
+ /// string</param>
+ /// <param name="msgidPlural">the English plural of <paramref name="msgid"/>,
+ /// an ASCII string</param>
+ /// <param name="n">the number, should be &gt;= 0</param>
+ /// <returns>the translation, or <c>null</c> if none is found</returns>
+ public virtual String GetPluralString (String msgid, String msgidPlural, long n) {
+ Object value = GetObject(msgid);
+ if (value == null || value is String)
+ return (String)value;
+ else if (value is String[]) {
+ String[] choices = (String[]) value;
+ long index = PluralEval(n);
+ return choices[index >= 0 && index < choices.Length ? index : 0];
+ } else
+ throw new InvalidOperationException("resource for \""+msgid+"\" in "+GetType().FullName+" is not a string");
+ }
+
+ /// <summary>
+ /// Returns the index of the plural form to be chosen for a given number.
+ /// The default implementation is the Germanic plural formula:
+ /// zero for <paramref name="n"/> == 1, one for <paramref name="n"/> != 1.
+ /// </summary>
+ protected virtual long PluralEval (long n) {
+ return (n == 1 ? 0 : 1);
+ }
+
+ /// <summary>
+ /// Returns the keys of this resource set, i.e. the strings for which
+ /// <c>GetObject()</c> can return a non-null value.
+ /// </summary>
+ public virtual ICollection Keys {
+ get {
+ return Table.Keys;
+ }
+ }
+
+ /// <summary>
+ /// A trivial instance of <c>IResourceReader</c> that does nothing.
+ /// </summary>
+ // Needed by the no-arguments constructor.
+ private static IResourceReader DummyResourceReader = new DummyIResourceReader();
+
+ }
+
+ /// <summary>
+ /// A trivial <c>IResourceReader</c> implementation.
+ /// </summary>
+ class DummyIResourceReader : IResourceReader {
+
+ // Implementation of IDisposable.
+ void System.IDisposable.Dispose () {
+ }
+
+ // Implementation of IEnumerable.
+ IEnumerator System.Collections.IEnumerable.GetEnumerator () {
+ return null;
+ }
+
+ // Implementation of IResourceReader.
+ void System.Resources.IResourceReader.Close () {
+ }
+ IDictionaryEnumerator System.Resources.IResourceReader.GetEnumerator () {
+ return null;
+ }
+
+ }
+
+}