tIncluded gettext distribution upgraded to 0.10.38; should now also work under Windows - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 0ffd3ec19b9649f16291084b4aaf35072266873d
 (DIR) parent fa8aa41d78c810190a4dc616a659c0d30ca25570
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Sat, 27 Oct 2001 19:14:16 +0000
       
       Included gettext distribution upgraded to 0.10.38; should now also work under Windows
       
       
       Diffstat:
         M ChangeLog                           |       1 +
         M Makefile.in                         |      15 +++++++++------
         M TODO                                |       1 +
         M aclocal.m4                          |     941 ++++++++++++++++++-------------
         A config.guess                        |    1371 +++++++++++++++++++++++++++++++
         M config.h.in                         |      61 +++++++++++++++++++++++++------
         A config.sub                          |    1362 ++++++++++++++++++++++++++++++
         M configure                           |    4611 +++++++++++++++----------------
         M configure.in                        |      38 ++++++++++++++++----------------
         M intl/ChangeLog                      |    1086 +------------------------------
         M intl/Makefile.in                    |     234 ++++++++++++++++++++++---------
         M intl/VERSION                        |       2 +-
         M intl/bindtextdom.c                  |     319 +++++++++++++++++++++++--------
         D intl/cat-compat.c                   |     262 -------------------------------
         A intl/config.charset                 |     438 +++++++++++++++++++++++++++++++
         M intl/dcgettext.c                    |     577 +------------------------------
         A intl/dcngettext.c                   |      59 +++++++++++++++++++++++++++++++
         M intl/dgettext.c                     |      11 +++++------
         A intl/dngettext.c                    |      60 +++++++++++++++++++++++++++++++
         M intl/explodename.c                  |      29 ++++++++++++++++-------------
         M intl/finddomain.c                   |      51 ++++++++++---------------------
         M intl/gettext.c                      |      21 +++++++--------------
         M intl/gettext.h                      |      18 +++++++-----------
         M intl/gettextP.h                     |     178 +++++++++++++++++++++++++++++--
         M intl/hash-string.h                  |      19 +++++++++----------
         M intl/intl-compat.c                  |     111 ++++++++++++++++++++++++++++---
         M intl/l10nflist.c                    |      35 +++++++++++++-------------------
         M intl/libgettext.h                   |     174 ++++---------------------------
         A intl/libgnuintl.h                   |     127 +++++++++++++++++++++++++++++++
         D intl/linux-msg.sed                  |     100 -------------------------------
         M intl/loadinfo.h                     |      36 +++++++++++++++++++++++++++++--
         M intl/loadmsgcat.c                   |     412 ++++++++++++++++++++++++++++---
         A intl/localcharset.c                 |     271 +++++++++++++++++++++++++++++++
         A intl/locale.alias                   |      77 +++++++++++++++++++++++++++++++
         M intl/localealias.c                  |     143 +++++++++++++------------------
         A intl/ngettext.c                     |      67 +++++++++++++++++++++++++++++++
         A intl/plural.c                       |    1325 +++++++++++++++++++++++++++++++
         A intl/plural.y                       |     412 +++++++++++++++++++++++++++++++
         D intl/po2tbl.sed.in                  |     102 -------------------------------
         A intl/ref-add.sin                    |      31 +++++++++++++++++++++++++++++++
         A intl/ref-del.sin                    |      26 ++++++++++++++++++++++++++
         M intl/textdomain.c                   |      81 ++++++++++++++++++++++---------
         D intl/xopen-msg.sed                  |     104 -------------------------------
         M src/gtkport.c                       |      51 +++++++++++++++++++++-----------
         M src/gtkport.h                       |       2 ++
         M src/nls.h                           |      32 +++++++++++++++++--------------
         M src/winmain.c                       |      71 +++++++++++++++++++++++++++----
       
       47 files changed, 9860 insertions(+), 5695 deletions(-)
       ---
 (DIR) diff --git a/ChangeLog b/ChangeLog
       t@@ -1,4 +1,5 @@
        cvs
       +    - Translations should now work with the Windows client
            - Documentation on the client-server protocol added
            - Windows graphical server can be minimized to the System Tray
            - Keyboard shortcuts for menu items in Windows client
 (DIR) diff --git a/Makefile.in b/Makefile.in
       t@@ -57,11 +57,15 @@ POST_INSTALL = :
        NORMAL_UNINSTALL = :
        PRE_UNINSTALL = :
        POST_UNINSTALL = :
       +host_alias = @host_alias@
       +host_triplet = @host@
       +BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
        CATALOGS = @CATALOGS@
        CATOBJEXT = @CATOBJEXT@
        CC = @CC@
        DATADIRNAME = @DATADIRNAME@
        GENCAT = @GENCAT@
       +GLIBC21 = @GLIBC21@
        GLIB_CFLAGS = @GLIB_CFLAGS@
        GLIB_CONFIG = @GLIB_CONFIG@
        GLIB_LIBS = @GLIB_LIBS@
       t@@ -72,13 +76,12 @@ GTKPORT_O = @GTKPORT_O@
        GTK_CFLAGS = @GTK_CFLAGS@
        GTK_CONFIG = @GTK_CONFIG@
        GTK_LIBS = @GTK_LIBS@
       -GT_NO = @GT_NO@
       -GT_YES = @GT_YES@
       -INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
        INSTOBJEXT = @INSTOBJEXT@
       -INTLDEPS = @INTLDEPS@
       +INTLBISON = @INTLBISON@
        INTLLIBS = @INTLLIBS@
        INTLOBJS = @INTLOBJS@
       +INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
       +LIBICONV = @LIBICONV@
        MAKEINFO = @MAKEINFO@
        MKINSTALLDIRS = @MKINSTALLDIRS@
        MSGFMT = @MSGFMT@
       t@@ -90,7 +93,6 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
        USE_NLS = @USE_NLS@
        VERSION = @VERSION@
        WNDRES = @WNDRES@
       -l = @l@
        localedir = @localedir@
        
        SUBDIRS = intl src doc po
       t@@ -105,7 +107,8 @@ CONFIG_HEADER = config.h
        CONFIG_CLEAN_FILES = 
        DIST_COMMON =  README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \
        INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 \
       -config.h.in configure configure.in install-sh missing mkinstalldirs
       +config.guess config.h.in config.sub configure configure.in install-sh \
       +missing mkinstalldirs
        
        
        TAR = gtar
 (DIR) diff --git a/TODO b/TODO
       t@@ -1,3 +1,4 @@
       +- Implement allow_shrink window attribute for Windows client
        - Make server run as an NT Service
        - Restore default configuration properly at the start of each game
        - Configuration file editor thingy in the client?
 (DIR) diff --git a/aclocal.m4 b/aclocal.m4
       t@@ -1,6 +1,6 @@
       -dnl aclocal.m4 generated automatically by aclocal 1.4
       +dnl aclocal.m4 generated automatically by aclocal 1.4-p5
        
       -dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
       +dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
        dnl This file is free software; the Free Software Foundation
        dnl gives unlimited permission to copy and/or distribute it,
        dnl with or without modifications, as long as this notice is preserved.
       t@@ -19,7 +19,7 @@ dnl PARTICULAR PURPOSE.
        dnl Usage:
        dnl AM_INIT_AUTOMAKE(package,version, [no-define])
        
       -AC_DEFUN(AM_INIT_AUTOMAKE,
       +AC_DEFUN([AM_INIT_AUTOMAKE],
        [AC_REQUIRE([AC_PROG_INSTALL])
        PACKAGE=[$1]
        AC_SUBST(PACKAGE)
       t@@ -47,7 +47,7 @@ AC_REQUIRE([AC_PROG_MAKE_SET])])
        # Check to make sure that the build environment is sane.
        #
        
       -AC_DEFUN(AM_SANITY_CHECK,
       +AC_DEFUN([AM_SANITY_CHECK],
        [AC_MSG_CHECKING([whether build environment is sane])
        # Just in case
        sleep 1
       t@@ -88,7 +88,7 @@ AC_MSG_RESULT(yes)])
        
        dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
        dnl The program must properly implement --version.
       -AC_DEFUN(AM_MISSING_PROG,
       +AC_DEFUN([AM_MISSING_PROG],
        [AC_MSG_CHECKING(for working $2)
        # Run test in a subshell; some versions of sh will print an error if
        # an executable is not found, even if stderr is redirected.
       t@@ -104,7 +104,7 @@ AC_SUBST($1)])
        
        # Like AC_CONFIG_HEADER, but automatically create stamp file.
        
       -AC_DEFUN(AM_CONFIG_HEADER,
       +AC_DEFUN([AM_CONFIG_HEADER],
        [AC_PREREQ([2.12])
        AC_CONFIG_HEADER([$1])
        dnl When config.status generates a header, we must update the stamp-h file.
       t@@ -125,389 +125,23 @@ for am_file in <<$1>>; do
        done<<>>dnl>>)
        changequote([,]))])
        
       -# Macro to add for using GNU gettext.
       -# Ulrich Drepper <drepper@cygnus.com>, 1995.
       -#
       -# This file can be copied and used freely without restrictions.  It can
       -# be used in projects which are not available under the GNU Public License
       -# but which still want to provide support for the GNU gettext functionality.
       -# Please note that the actual code is *not* freely available.
       -
       -# serial 5
       +#serial 1
       +# This test replaces the one in autoconf.
       +# Currently this macro should have the same name as the autoconf macro
       +# because gettext's gettext.m4 (distributed in the automake package)
       +# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
       +# give these diagnostics:
       +#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
       +#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
        
       -AC_DEFUN(AM_WITH_NLS,
       -  [AC_MSG_CHECKING([whether NLS is requested])
       -    dnl Default is enabled NLS
       -    AC_ARG_ENABLE(nls,
       -      [  --disable-nls           do not use Native Language Support],
       -      USE_NLS=$enableval, USE_NLS=yes)
       -    AC_MSG_RESULT($USE_NLS)
       -    AC_SUBST(USE_NLS)
       -
       -    USE_INCLUDED_LIBINTL=no
       -
       -    dnl If we use NLS figure out what method
       -    if test "$USE_NLS" = "yes"; then
       -      AC_DEFINE(ENABLE_NLS)
       -      AC_MSG_CHECKING([whether included gettext is requested])
       -      AC_ARG_WITH(included-gettext,
       -        [  --with-included-gettext use the GNU gettext library included here],
       -        nls_cv_force_use_gnu_gettext=$withval,
       -        nls_cv_force_use_gnu_gettext=no)
       -      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
       -
       -      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
       -      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
       -        dnl User does not insist on using GNU NLS library.  Figure out what
       -        dnl to use.  If gettext or catgets are available (in this order) we
       -        dnl use this.  Else we have to fall back to GNU NLS library.
       -        dnl catgets is only used if permitted by option --with-catgets.
       -        nls_cv_header_intl=
       -        nls_cv_header_libgt=
       -        CATOBJEXT=NONE
       -
       -        AC_CHECK_HEADER(libintl.h,
       -          [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
       -            [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
       -               gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
       -
       -           if test "$gt_cv_func_gettext_libc" != "yes"; then
       -             AC_CHECK_LIB(intl, bindtextdomain,
       -               [AC_CACHE_CHECK([for gettext in libintl],
       -                 gt_cv_func_gettext_libintl,
       -                 [AC_CHECK_LIB(intl, gettext,
       -                  gt_cv_func_gettext_libintl=yes,
       -                  gt_cv_func_gettext_libintl=no)],
       -                 gt_cv_func_gettext_libintl=no)])
       -           fi
       -
       -           if test "$gt_cv_func_gettext_libc" = "yes" \
       -              || test "$gt_cv_func_gettext_libintl" = "yes"; then
       -              AC_DEFINE(HAVE_GETTEXT)
       -              AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
       -                [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
       -              if test "$MSGFMT" != "no"; then
       -                AC_CHECK_FUNCS(dcgettext)
       -                AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
       -                AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
       -                  [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
       -                AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
       -                               return _nl_msg_cat_cntr],
       -                  [CATOBJEXT=.gmo
       -                   DATADIRNAME=share],
       -                  [CATOBJEXT=.mo
       -                   DATADIRNAME=lib])
       -                INSTOBJEXT=.mo
       -              fi
       -            fi
       -        ])
       -
       -        if test "$CATOBJEXT" = "NONE"; then
       -          AC_MSG_CHECKING([whether catgets can be used])
       -          AC_ARG_WITH(catgets,
       -            [  --with-catgets          use catgets functions if available],
       -            nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
       -          AC_MSG_RESULT($nls_cv_use_catgets)
       -
       -          if test "$nls_cv_use_catgets" = "yes"; then
       -            dnl No gettext in C library.  Try catgets next.
       -            AC_CHECK_LIB(i, main)
       -            AC_CHECK_FUNC(catgets,
       -              [AC_DEFINE(HAVE_CATGETS)
       -               INTLOBJS="\$(CATOBJS)"
       -               AC_PATH_PROG(GENCAT, gencat, no)dnl
       -               if test "$GENCAT" != "no"; then
       -                 AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
       -                 if test "$GMSGFMT" = "no"; then
       -                   AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
       -                    [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
       -                 fi
       -                 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
       -                   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
       -                 USE_INCLUDED_LIBINTL=yes
       -                 CATOBJEXT=.cat
       -                 INSTOBJEXT=.cat
       -                 DATADIRNAME=lib
       -                 INTLDEPS='$(top_builddir)/intl/libintl.a'
       -                 INTLLIBS=$INTLDEPS
       -                 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
       -                 nls_cv_header_intl=intl/libintl.h
       -                 nls_cv_header_libgt=intl/libgettext.h
       -               fi])
       -          fi
       -        fi
       -
       -        if test "$CATOBJEXT" = "NONE"; then
       -          dnl Neither gettext nor catgets in included in the C library.
       -          dnl Fall back on GNU gettext library.
       -          nls_cv_use_gnu_gettext=yes
       -        fi
       -      fi
       -
       -      if test "$nls_cv_use_gnu_gettext" = "yes"; then
       -        dnl Mark actions used to generate GNU NLS library.
       -        INTLOBJS="\$(GETTOBJS)"
       -        AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
       -          [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
       -        AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
       -        AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
       -          [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
       -        AC_SUBST(MSGFMT)
       -        USE_INCLUDED_LIBINTL=yes
       -        CATOBJEXT=.gmo
       -        INSTOBJEXT=.mo
       -        DATADIRNAME=share
       -        INTLDEPS='$(top_builddir)/intl/libintl.a'
       -        INTLLIBS=$INTLDEPS
       -        LIBS=`echo $LIBS | sed -e 's/-lintl//'`
       -        nls_cv_header_intl=intl/libintl.h
       -        nls_cv_header_libgt=intl/libgettext.h
       -      fi
       -
       -      dnl Test whether we really found GNU xgettext.
       -      if test "$XGETTEXT" != ":"; then
       -        dnl If it is no GNU xgettext we define it as : so that the
       -        dnl Makefiles still can work.
       -        if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
       -          : ;
       -        else
       -          AC_MSG_RESULT(
       -            [found xgettext program is not GNU xgettext; ignore it])
       -          XGETTEXT=":"
       -        fi
       -      fi
       -
       -      # We need to process the po/ directory.
       -      POSUB=po
       -    else
       -      DATADIRNAME=share
       -      nls_cv_header_intl=intl/libintl.h
       -      nls_cv_header_libgt=intl/libgettext.h
       -    fi
       -    AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
       -    AC_OUTPUT_COMMANDS(
       -     [case "$CONFIG_FILES" in *po/Makefile.in*)
       -        sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
       -      esac])
       -
       -
       -    # If this is used in GNU gettext we have to set USE_NLS to `yes'
       -    # because some of the sources are only built for this goal.
       -    if test "$PACKAGE" = gettext; then
       -      USE_NLS=yes
       -      USE_INCLUDED_LIBINTL=yes
       -    fi
       -
       -    dnl These rules are solely for the distribution goal.  While doing this
       -    dnl we only have to keep exactly one list of the available catalogs
       -    dnl in configure.in.
       -    for lang in $ALL_LINGUAS; do
       -      GMOFILES="$GMOFILES $lang.gmo"
       -      POFILES="$POFILES $lang.po"
       -    done
       -
       -    dnl Make all variables we use known to autoconf.
       -    AC_SUBST(USE_INCLUDED_LIBINTL)
       -    AC_SUBST(CATALOGS)
       -    AC_SUBST(CATOBJEXT)
       -    AC_SUBST(DATADIRNAME)
       -    AC_SUBST(GMOFILES)
       -    AC_SUBST(INSTOBJEXT)
       -    AC_SUBST(INTLDEPS)
       -    AC_SUBST(INTLLIBS)
       -    AC_SUBST(INTLOBJS)
       -    AC_SUBST(POFILES)
       -    AC_SUBST(POSUB)
       -  ])
       -
       -AC_DEFUN(AM_GNU_GETTEXT,
       -  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
       -   AC_REQUIRE([AC_PROG_CC])dnl
       -   AC_REQUIRE([AC_PROG_RANLIB])dnl
       -   AC_REQUIRE([AC_ISC_POSIX])dnl
       -   AC_REQUIRE([AC_HEADER_STDC])dnl
       -   AC_REQUIRE([AC_C_CONST])dnl
       -   AC_REQUIRE([AC_C_INLINE])dnl
       -   AC_REQUIRE([AC_TYPE_OFF_T])dnl
       -   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
       -   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
       -   AC_REQUIRE([AC_FUNC_MMAP])dnl
       +undefine([AC_ISC_POSIX])
        
       -   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
       -unistd.h sys/param.h])
       -   AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
       -strdup __argz_count __argz_stringify __argz_next])
       -
       -   if test "${ac_cv_func_stpcpy+set}" != "set"; then
       -     AC_CHECK_FUNCS(stpcpy)
       -   fi
       -   if test "${ac_cv_func_stpcpy}" = "yes"; then
       -     AC_DEFINE(HAVE_STPCPY)
       -   fi
       -
       -   AM_LC_MESSAGES
       -   AM_WITH_NLS
       -
       -   if test "x$CATOBJEXT" != "x"; then
       -     if test "x$ALL_LINGUAS" = "x"; then
       -       LINGUAS=
       -     else
       -       AC_MSG_CHECKING(for catalogs to be installed)
       -       NEW_LINGUAS=
       -       for lang in ${LINGUAS=$ALL_LINGUAS}; do
       -         case "$ALL_LINGUAS" in
       -          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
       -         esac
       -       done
       -       LINGUAS=$NEW_LINGUAS
       -       AC_MSG_RESULT($LINGUAS)
       -     fi
       -
       -     dnl Construct list of names of catalog files to be constructed.
       -     if test -n "$LINGUAS"; then
       -       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
       -     fi
       -   fi
       -
       -   dnl The reference to <locale.h> in the installed <libintl.h> file
       -   dnl must be resolved because we cannot expect the users of this
       -   dnl to define HAVE_LOCALE_H.
       -   if test $ac_cv_header_locale_h = yes; then
       -     INCLUDE_LOCALE_H="#include <locale.h>"
       -   else
       -     INCLUDE_LOCALE_H="\
       -/* The system does not provide the header <locale.h>.  Take care yourself.  */"
       -   fi
       -   AC_SUBST(INCLUDE_LOCALE_H)
       -
       -   dnl Determine which catalog format we have (if any is needed)
       -   dnl For now we know about two different formats:
       -   dnl   Linux libc-5 and the normal X/Open format
       -   test -d intl || mkdir intl
       -   if test "$CATOBJEXT" = ".cat"; then
       -     AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
       -
       -     dnl Transform the SED scripts while copying because some dumb SEDs
       -     dnl cannot handle comments.
       -     sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
       -   fi
       -   dnl po2tbl.sed is always needed.
       -   sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
       -     $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
       -
       -   dnl In the intl/Makefile.in we have a special dependency which makes
       -   dnl only sense for gettext.  We comment this out for non-gettext
       -   dnl packages.
       -   if test "$PACKAGE" = "gettext"; then
       -     GT_NO="#NO#"
       -     GT_YES=
       -   else
       -     GT_NO=
       -     GT_YES="#YES#"
       -   fi
       -   AC_SUBST(GT_NO)
       -   AC_SUBST(GT_YES)
       -
       -   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
       -   dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
       -   dnl Try to locate is.
       -   MKINSTALLDIRS=
       -   if test -n "$ac_aux_dir"; then
       -     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
       -   fi
       -   if test -z "$MKINSTALLDIRS"; then
       -     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
       -   fi
       -   AC_SUBST(MKINSTALLDIRS)
       -
       -   dnl *** For now the libtool support in intl/Makefile is not for real.
       -   l=
       -   AC_SUBST(l)
       -
       -   dnl Generate list of files to be processed by xgettext which will
       -   dnl be included in po/Makefile.
       -   test -d po || mkdir po
       -   if test "x$srcdir" != "x."; then
       -     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
       -       posrcprefix="$srcdir/"
       -     else
       -       posrcprefix="../$srcdir/"
       -     fi
       -   else
       -     posrcprefix="../"
       -   fi
       -   rm -f po/POTFILES
       -   sed -e "/^#/d" -e "/^\$/d" -e "s,.*,        $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
       -        < $srcdir/po/POTFILES.in > po/POTFILES
       -  ])
       -
       -# Search path for a program which passes the given test.
       -# Ulrich Drepper <drepper@cygnus.com>, 1996.
       -#
       -# This file can be copied and used freely without restrictions.  It can
       -# be used in projects which are not available under the GNU Public License
       -# but which still want to provide support for the GNU gettext functionality.
       -# Please note that the actual code is *not* freely available.
       -
       -# serial 1
       -
       -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
       -dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
       -AC_DEFUN(AM_PATH_PROG_WITH_TEST,
       -[# Extract the first word of "$2", so it can be a program name with args.
       -set dummy $2; ac_word=[$]2
       -AC_MSG_CHECKING([for $ac_word])
       -AC_CACHE_VAL(ac_cv_path_$1,
       -[case "[$]$1" in
       -  /*)
       -  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       -  for ac_dir in ifelse([$5], , $PATH, [$5]); do
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      if [$3]; then
       -        ac_cv_path_$1="$ac_dir/$ac_word"
       -        break
       -      fi
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -dnl If no 4th arg is given, leave the cache variable unset,
       -dnl so AC_PATH_PROGS will keep looking.
       -ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
       -])dnl
       -  ;;
       -esac])dnl
       -$1="$ac_cv_path_$1"
       -if test -n "[$]$1"; then
       -  AC_MSG_RESULT([$]$1)
       -else
       -  AC_MSG_RESULT(no)
       -fi
       -AC_SUBST($1)dnl
       -])
       -
       -# Check whether LC_MESSAGES is available in <locale.h>.
       -# Ulrich Drepper <drepper@cygnus.com>, 1995.
       -#
       -# This file can be copied and used freely without restrictions.  It can
       -# be used in projects which are not available under the GNU Public License
       -# but which still want to provide support for the GNU gettext functionality.
       -# Please note that the actual code is *not* freely available.
       -
       -# serial 1
       -
       -AC_DEFUN(AM_LC_MESSAGES,
       -  [if test $ac_cv_header_locale_h = yes; then
       -    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
       -      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
       -       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
       -    if test $am_cv_val_LC_MESSAGES = yes; then
       -      AC_DEFINE(HAVE_LC_MESSAGES)
       -    fi
       -  fi])
       +AC_DEFUN([AC_ISC_POSIX],
       +  [
       +    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
       +    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
       +  ]
       +)
        
        # Configure paths for GLIB
        # Owen Taylor     97-11-3
       t@@ -901,3 +535,536 @@ main ()
          rm -f conf.gtktest
        ])
        
       +# Macro to add for using GNU gettext.
       +# Ulrich Drepper <drepper@cygnus.com>, 1995.
       +#
       +# This file can be copied and used freely without restrictions.  It can
       +# be used in projects which are not available under the GNU Public License
       +# but which still want to provide support for the GNU gettext functionality.
       +# Please note that the actual code is *not* freely available.
       +
       +# serial 9
       +
       +dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
       +dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
       +dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
       +dnl    depending on --{enable,disable}-{shared,static} and on the presence of
       +dnl    AM-DISABLE-SHARED). Otherwise, a static library
       +dnl    $(top_builddir)/intl/libintl.a will be created.
       +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
       +dnl    implementations (in libc or libintl) without the ngettext() function
       +dnl    will be ignored.
       +dnl LIBDIR is used to find the intl libraries.  If empty,
       +dnl    the value `$(top_builddir)/intl/' is used.
       +dnl
       +dnl The result of the configuration is one of three cases:
       +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
       +dnl    and used.
       +dnl    Catalog format: GNU --> install in $(datadir)
       +dnl    Catalog extension: .mo after installation, .gmo in source tree
       +dnl 2) GNU gettext has been found in the system's C library.
       +dnl    Catalog format: GNU --> install in $(datadir)
       +dnl    Catalog extension: .mo after installation, .gmo in source tree
       +dnl 3) No internationalization, always use English msgid.
       +dnl    Catalog format: none
       +dnl    Catalog extension: none
       +dnl The use of .gmo is historical (it was needed to avoid overwriting the
       +dnl GNU format catalogs when building on a platform with an X/Open gettext),
       +dnl but we keep it in order not to force irrelevant filename changes on the
       +dnl maintainers.
       +dnl
       +AC_DEFUN([AM_WITH_NLS],
       +  [AC_MSG_CHECKING([whether NLS is requested])
       +    dnl Default is enabled NLS
       +    AC_ARG_ENABLE(nls,
       +      [  --disable-nls           do not use Native Language Support],
       +      USE_NLS=$enableval, USE_NLS=yes)
       +    AC_MSG_RESULT($USE_NLS)
       +    AC_SUBST(USE_NLS)
       +
       +    BUILD_INCLUDED_LIBINTL=no
       +    USE_INCLUDED_LIBINTL=no
       +    INTLLIBS=
       +
       +    dnl If we use NLS figure out what method
       +    if test "$USE_NLS" = "yes"; then
       +      AC_DEFINE(ENABLE_NLS, 1,
       +        [Define to 1 if translation of program messages to the user's native language
       +   is requested.])
       +      AC_MSG_CHECKING([whether included gettext is requested])
       +      AC_ARG_WITH(included-gettext,
       +        [  --with-included-gettext use the GNU gettext library included here],
       +        nls_cv_force_use_gnu_gettext=$withval,
       +        nls_cv_force_use_gnu_gettext=no)
       +      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
       +
       +      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
       +      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
       +        dnl User does not insist on using GNU NLS library.  Figure out what
       +        dnl to use.  If GNU gettext is available we use this.  Else we have
       +        dnl to fall back to GNU NLS library.
       +        CATOBJEXT=NONE
       +
       +        dnl Add a version number to the cache macros.
       +        define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
       +        define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
       +
       +        AC_CHECK_HEADER(libintl.h,
       +          [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
       +            [AC_TRY_LINK([#include <libintl.h>
       +extern int _nl_msg_cat_cntr;],
       +               [bindtextdomain ("", "");
       +return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
       +               gt_cv_func_gnugettext_libc=yes,
       +               gt_cv_func_gnugettext_libc=no)])
       +
       +           if test "$gt_cv_func_gnugettext_libc" != "yes"; then
       +             AC_CACHE_CHECK([for GNU gettext in libintl],
       +               gt_cv_func_gnugettext_libintl,
       +               [gt_save_LIBS="$LIBS"
       +                LIBS="$LIBS -lintl $LIBICONV"
       +                AC_TRY_LINK([#include <libintl.h>
       +extern int _nl_msg_cat_cntr;],
       +                  [bindtextdomain ("", "");
       +return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
       +                  gt_cv_func_gnugettext_libintl=yes,
       +                  gt_cv_func_gnugettext_libintl=no)
       +                LIBS="$gt_save_LIBS"])
       +           fi
       +
       +           dnl If an already present or preinstalled GNU gettext() is found,
       +           dnl use it.  But if this macro is used in GNU gettext, and GNU
       +           dnl gettext is already preinstalled in libintl, we update this
       +           dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
       +           if test "$gt_cv_func_gnugettext_libc" = "yes" \
       +              || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
       +                   && test "$PACKAGE" != gettext; }; then
       +             AC_DEFINE(HAVE_GETTEXT, 1,
       +               [Define if the GNU gettext() function is already present or preinstalled.])
       +
       +             if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
       +               dnl If iconv() is in a separate libiconv library, then anyone
       +               dnl linking with libintl{.a,.so} also needs to link with
       +               dnl libiconv.
       +               INTLLIBS="-lintl $LIBICONV"
       +             fi
       +
       +             gt_save_LIBS="$LIBS"
       +             LIBS="$LIBS $INTLLIBS"
       +             AC_CHECK_FUNCS(dcgettext)
       +             LIBS="$gt_save_LIBS"
       +
       +             AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
       +               [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
       +             if test "$MSGFMT" != "no"; then
       +               AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
       +             fi
       +
       +             AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
       +               [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
       +
       +             CATOBJEXT=.gmo
       +           fi
       +        ])
       +
       +        if test "$CATOBJEXT" = "NONE"; then
       +          dnl GNU gettext is not found in the C library.
       +          dnl Fall back on GNU gettext library.
       +          nls_cv_use_gnu_gettext=yes
       +        fi
       +      fi
       +
       +      if test "$nls_cv_use_gnu_gettext" = "yes"; then
       +        dnl Mark actions used to generate GNU NLS library.
       +        INTLOBJS="\$(GETTOBJS)"
       +        AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
       +          [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
       +        AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
       +        AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
       +          [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
       +        AC_SUBST(MSGFMT)
       +        BUILD_INCLUDED_LIBINTL=yes
       +        USE_INCLUDED_LIBINTL=yes
       +        CATOBJEXT=.gmo
       +        INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
       +        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
       +      fi
       +
       +      dnl Test whether we really found GNU xgettext.
       +      if test "$XGETTEXT" != ":"; then
       +        dnl If it is no GNU xgettext we define it as : so that the
       +        dnl Makefiles still can work.
       +        if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
       +          : ;
       +        else
       +          AC_MSG_RESULT(
       +            [found xgettext program is not GNU xgettext; ignore it])
       +          XGETTEXT=":"
       +        fi
       +      fi
       +
       +      dnl We need to process the po/ directory.
       +      POSUB=po
       +    fi
       +    AC_OUTPUT_COMMANDS(
       +     [for ac_file in $CONFIG_FILES; do
       +        # Support "outfile[:infile[:infile...]]"
       +        case "$ac_file" in
       +          *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
       +        esac
       +        # PO directories have a Makefile.in generated from Makefile.in.in.
       +        case "$ac_file" in */Makefile.in)
       +          # Adjust a relative srcdir.
       +          ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
       +          ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
       +          ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
       +          case "$ac_given_srcdir" in
       +            .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
       +            /*) top_srcdir="$ac_given_srcdir" ;;
       +            *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
       +          esac
       +          if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
       +            rm -f "$ac_dir/POTFILES"
       +            echo creating "$ac_dir/POTFILES"
       +            sed -e "/^#/d" -e "/^[         ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
       +            echo creating "$ac_dir/Makefile"
       +            sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
       +          fi
       +          ;;
       +        esac
       +      done])
       +
       +
       +    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
       +    dnl to 'yes' because some of the testsuite requires it.
       +    if test "$PACKAGE" = gettext; then
       +      BUILD_INCLUDED_LIBINTL=yes
       +    fi
       +
       +    dnl intl/plural.c is generated from intl/plural.y. It requires bison,
       +    dnl because plural.y uses bison specific features. It requires at least
       +    dnl bison-1.26 because earlier versions generate a plural.c that doesn't
       +    dnl compile.
       +    dnl bison is only needed for the maintainer (who touches plural.y). But in
       +    dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
       +    dnl the rule in general Makefile. Now, some people carelessly touch the
       +    dnl files or have a broken "make" program, hence the plural.c rule will
       +    dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
       +    dnl present or too old.
       +    AC_CHECK_PROGS([INTLBISON], [bison])
       +    if test -z "$INTLBISON"; then
       +      ac_verc_fail=yes
       +    else
       +      dnl Found it, now check the version.
       +      AC_MSG_CHECKING([version of bison])
       +changequote(<<,>>)dnl
       +      ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \([0-9]*\.[0-9.]*\).*$/\1/p'`
       +      case $ac_prog_version in
       +        '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
       +        1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
       +changequote([,])dnl
       +           ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
       +        *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
       +      esac
       +      AC_MSG_RESULT([$ac_prog_version])
       +    fi
       +    if test $ac_verc_fail = yes; then
       +      INTLBISON=:
       +    fi
       +
       +    dnl These rules are solely for the distribution goal.  While doing this
       +    dnl we only have to keep exactly one list of the available catalogs
       +    dnl in configure.in.
       +    for lang in $ALL_LINGUAS; do
       +      GMOFILES="$GMOFILES $lang.gmo"
       +      POFILES="$POFILES $lang.po"
       +    done
       +
       +    dnl Make all variables we use known to autoconf.
       +    AC_SUBST(BUILD_INCLUDED_LIBINTL)
       +    AC_SUBST(USE_INCLUDED_LIBINTL)
       +    AC_SUBST(CATALOGS)
       +    AC_SUBST(CATOBJEXT)
       +    AC_SUBST(GMOFILES)
       +    AC_SUBST(INTLLIBS)
       +    AC_SUBST(INTLOBJS)
       +    AC_SUBST(POFILES)
       +    AC_SUBST(POSUB)
       +
       +    dnl For backward compatibility. Some configure.ins may be using this.
       +    nls_cv_header_intl=
       +    nls_cv_header_libgt=
       +
       +    dnl For backward compatibility. Some Makefiles may be using this.
       +    DATADIRNAME=share
       +    AC_SUBST(DATADIRNAME)
       +
       +    dnl For backward compatibility. Some Makefiles may be using this.
       +    INSTOBJEXT=.mo
       +    AC_SUBST(INSTOBJEXT)
       +
       +    dnl For backward compatibility. Some Makefiles may be using this.
       +    GENCAT=gencat
       +    AC_SUBST(GENCAT)
       +  ])
       +
       +dnl Usage: Just like AM_WITH_NLS, which see.
       +AC_DEFUN([AM_GNU_GETTEXT],
       +  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
       +   AC_REQUIRE([AC_PROG_CC])dnl
       +   AC_REQUIRE([AC_CANONICAL_HOST])dnl
       +   AC_REQUIRE([AC_PROG_RANLIB])dnl
       +   AC_REQUIRE([AC_ISC_POSIX])dnl
       +   AC_REQUIRE([AC_HEADER_STDC])dnl
       +   AC_REQUIRE([AC_C_CONST])dnl
       +   AC_REQUIRE([AC_C_INLINE])dnl
       +   AC_REQUIRE([AC_TYPE_OFF_T])dnl
       +   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
       +   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
       +   AC_REQUIRE([AC_FUNC_MMAP])dnl
       +   AC_REQUIRE([jm_GLIBC21])dnl
       +
       +   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
       +stdlib.h string.h unistd.h sys/param.h])
       +   AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
       +getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
       +strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
       +
       +   AM_ICONV
       +   AM_LANGINFO_CODESET
       +   AM_LC_MESSAGES
       +   AM_WITH_NLS([$1],[$2],[$3])
       +
       +   if test "x$CATOBJEXT" != "x"; then
       +     if test "x$ALL_LINGUAS" = "x"; then
       +       LINGUAS=
       +     else
       +       AC_MSG_CHECKING(for catalogs to be installed)
       +       NEW_LINGUAS=
       +       for presentlang in $ALL_LINGUAS; do
       +         useit=no
       +         for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
       +           # Use the presentlang catalog if desiredlang is
       +           #   a. equal to presentlang, or
       +           #   b. a variant of presentlang (because in this case,
       +           #      presentlang can be used as a fallback for messages
       +           #      which are not translated in the desiredlang catalog).
       +           case "$desiredlang" in
       +             "$presentlang"*) useit=yes;;
       +           esac
       +         done
       +         if test $useit = yes; then
       +           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
       +         fi
       +       done
       +       LINGUAS=$NEW_LINGUAS
       +       AC_MSG_RESULT($LINGUAS)
       +     fi
       +
       +     dnl Construct list of names of catalog files to be constructed.
       +     if test -n "$LINGUAS"; then
       +       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
       +     fi
       +   fi
       +
       +   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
       +   dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
       +   dnl Try to locate is.
       +   MKINSTALLDIRS=
       +   if test -n "$ac_aux_dir"; then
       +     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
       +   fi
       +   if test -z "$MKINSTALLDIRS"; then
       +     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
       +   fi
       +   AC_SUBST(MKINSTALLDIRS)
       +
       +   dnl Enable libtool support if the surrounding package wishes it.
       +   INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
       +   AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
       +  ])
       +
       +# Search path for a program which passes the given test.
       +# Ulrich Drepper <drepper@cygnus.com>, 1996.
       +#
       +# This file can be copied and used freely without restrictions.  It can
       +# be used in projects which are not available under the GNU Public License
       +# but which still want to provide support for the GNU gettext functionality.
       +# Please note that the actual code is *not* freely available.
       +
       +# serial 1
       +
       +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
       +dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
       +AC_DEFUN([AM_PATH_PROG_WITH_TEST],
       +[# Extract the first word of "$2", so it can be a program name with args.
       +set dummy $2; ac_word=[$]2
       +AC_MSG_CHECKING([for $ac_word])
       +AC_CACHE_VAL(ac_cv_path_$1,
       +[case "[$]$1" in
       +  /*)
       +  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
       +  ;;
       +  *)
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       +  for ac_dir in ifelse([$5], , $PATH, [$5]); do
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      if [$3]; then
       +        ac_cv_path_$1="$ac_dir/$ac_word"
       +        break
       +      fi
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
       +dnl If no 4th arg is given, leave the cache variable unset,
       +dnl so AC_PATH_PROGS will keep looking.
       +ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
       +])dnl
       +  ;;
       +esac])dnl
       +$1="$ac_cv_path_$1"
       +if test -n "[$]$1"; then
       +  AC_MSG_RESULT([$]$1)
       +else
       +  AC_MSG_RESULT(no)
       +fi
       +AC_SUBST($1)dnl
       +])
       +
       +#serial 2
       +
       +# Test for the GNU C Library, version 2.1 or newer.
       +# From Bruno Haible.
       +
       +AC_DEFUN([jm_GLIBC21],
       +  [
       +    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
       +      ac_cv_gnu_library_2_1,
       +      [AC_EGREP_CPP([Lucky GNU user],
       +        [
       +#include <features.h>
       +#ifdef __GNU_LIBRARY__
       + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
       +  Lucky GNU user
       + #endif
       +#endif
       +        ],
       +        ac_cv_gnu_library_2_1=yes,
       +        ac_cv_gnu_library_2_1=no)
       +      ]
       +    )
       +    AC_SUBST(GLIBC21)
       +    GLIBC21="$ac_cv_gnu_library_2_1"
       +  ]
       +)
       +
       +#serial AM2
       +
       +dnl From Bruno Haible.
       +
       +AC_DEFUN([AM_ICONV],
       +[
       +  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
       +  dnl those with the standalone portable GNU libiconv installed).
       +
       +  AC_ARG_WITH([libiconv-prefix],
       +[  --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib], [
       +    for dir in `echo "$withval" | tr : ' '`; do
       +      if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
       +      if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
       +    done
       +   ])
       +
       +  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
       +    am_cv_func_iconv="no, consider installing GNU libiconv"
       +    am_cv_lib_iconv=no
       +    AC_TRY_LINK([#include <stdlib.h>
       +#include <iconv.h>],
       +      [iconv_t cd = iconv_open("","");
       +       iconv(cd,NULL,NULL,NULL,NULL);
       +       iconv_close(cd);],
       +      am_cv_func_iconv=yes)
       +    if test "$am_cv_func_iconv" != yes; then
       +      am_save_LIBS="$LIBS"
       +      LIBS="$LIBS -liconv"
       +      AC_TRY_LINK([#include <stdlib.h>
       +#include <iconv.h>],
       +        [iconv_t cd = iconv_open("","");
       +         iconv(cd,NULL,NULL,NULL,NULL);
       +         iconv_close(cd);],
       +        am_cv_lib_iconv=yes
       +        am_cv_func_iconv=yes)
       +      LIBS="$am_save_LIBS"
       +    fi
       +  ])
       +  if test "$am_cv_func_iconv" = yes; then
       +    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
       +    AC_MSG_CHECKING([for iconv declaration])
       +    AC_CACHE_VAL(am_cv_proto_iconv, [
       +      AC_TRY_COMPILE([
       +#include <stdlib.h>
       +#include <iconv.h>
       +extern
       +#ifdef __cplusplus
       +"C"
       +#endif
       +#if defined(__STDC__) || defined(__cplusplus)
       +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
       +#else
       +size_t iconv();
       +#endif
       +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
       +      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
       +    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
       +    AC_MSG_RESULT([$]{ac_t:-
       +         }[$]am_cv_proto_iconv)
       +    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
       +      [Define as const if the declaration of iconv() needs const.])
       +  fi
       +  LIBICONV=
       +  if test "$am_cv_lib_iconv" = yes; then
       +    LIBICONV="-liconv"
       +  fi
       +  AC_SUBST(LIBICONV)
       +])
       +
       +#serial AM1
       +
       +dnl From Bruno Haible.
       +
       +AC_DEFUN([AM_LANGINFO_CODESET],
       +[
       +  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
       +    [AC_TRY_LINK([#include <langinfo.h>],
       +      [char* cs = nl_langinfo(CODESET);],
       +      am_cv_langinfo_codeset=yes,
       +      am_cv_langinfo_codeset=no)
       +    ])
       +  if test $am_cv_langinfo_codeset = yes; then
       +    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
       +      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
       +  fi
       +])
       +
       +# Check whether LC_MESSAGES is available in <locale.h>.
       +# Ulrich Drepper <drepper@cygnus.com>, 1995.
       +#
       +# This file can be copied and used freely without restrictions.  It can
       +# be used in projects which are not available under the GNU Public License
       +# but which still want to provide support for the GNU gettext functionality.
       +# Please note that the actual code is *not* freely available.
       +
       +# serial 2
       +
       +AC_DEFUN([AM_LC_MESSAGES],
       +  [if test $ac_cv_header_locale_h = yes; then
       +    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
       +      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
       +       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
       +    if test $am_cv_val_LC_MESSAGES = yes; then
       +      AC_DEFINE(HAVE_LC_MESSAGES, 1,
       +        [Define if your <locale.h> file defines LC_MESSAGES.])
       +    fi
       +  fi])
       +
 (DIR) diff --git a/config.guess b/config.guess
       t@@ -0,0 +1,1371 @@
       +#! /bin/sh
       +# Attempt to guess a canonical system name.
       +#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
       +#   Free Software Foundation, Inc.
       +
       +timestamp='2001-04-20'
       +
       +# This file is free software; you can redistribute it and/or modify it
       +# under the terms of the GNU General Public License as published by
       +# the Free Software Foundation; either version 2 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, write to the Free Software
       +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
       +#
       +# As a special exception to the GNU General Public License, if you
       +# distribute this file as part of a program that contains a
       +# configuration script generated by Autoconf, you may include it under
       +# the same distribution terms that you use for the rest of that program.
       +
       +# Written by Per Bothner <bothner@cygnus.com>.
       +# Please send patches to <config-patches@gnu.org>.
       +#
       +# This script attempts to guess a canonical system name similar to
       +# config.sub.  If it succeeds, it prints the system name on stdout, and
       +# exits with 0.  Otherwise, it exits with 1.
       +#
       +# The plan is that this can be called by configure scripts if you
       +# don't specify an explicit build system type.
       +
       +me=`echo "$0" | sed -e 's,.*/,,'`
       +
       +usage="\
       +Usage: $0 [OPTION]
       +
       +Output the configuration name of the system \`$me' is run on.
       +
       +Operation modes:
       +  -h, --help         print this help, then exit
       +  -t, --time-stamp   print date of last modification, then exit
       +  -v, --version      print version number, then exit
       +
       +Report bugs and patches to <config-patches@gnu.org>."
       +
       +version="\
       +GNU config.guess ($timestamp)
       +
       +Originally written by Per Bothner.
       +Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
       +Free Software Foundation, Inc.
       +
       +This is free software; see the source for copying conditions.  There is NO
       +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
       +
       +help="
       +Try \`$me --help' for more information."
       +
       +# Parse command line
       +while test $# -gt 0 ; do
       +  case $1 in
       +    --time-stamp | --time* | -t )
       +       echo "$timestamp" ; exit 0 ;;
       +    --version | -v )
       +       echo "$version" ; exit 0 ;;
       +    --help | --h* | -h )
       +       echo "$usage"; exit 0 ;;
       +    -- )     # Stop option processing
       +       shift; break ;;
       +    - )        # Use stdin as input.
       +       break ;;
       +    -* )
       +       echo "$me: invalid option $1$help" >&2
       +       exit 1 ;;
       +    * )
       +       break ;;
       +  esac
       +done
       +
       +if test $# != 0; then
       +  echo "$me: too many arguments$help" >&2
       +  exit 1
       +fi
       +
       +
       +dummy=dummy-$$
       +trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
       +
       +# CC_FOR_BUILD -- compiler used by this script.
       +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
       +# use `HOST_CC' if defined, but it is deprecated.
       +
       +case $CC_FOR_BUILD,$HOST_CC,$CC in
       + ,,)    echo "int dummy(){}" > $dummy.c
       +        for c in cc gcc c89 ; do
       +          ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
       +          if test $? = 0 ; then
       +             CC_FOR_BUILD="$c"; break
       +          fi
       +        done
       +        rm -f $dummy.c $dummy.o $dummy.rel
       +        if test x"$CC_FOR_BUILD" = x ; then
       +          CC_FOR_BUILD=no_compiler_found
       +        fi
       +        ;;
       + ,,*)   CC_FOR_BUILD=$CC ;;
       + ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
       +esac
       +
       +# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
       +# (ghazi@noc.rutgers.edu 8/24/94.)
       +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
       +        PATH=$PATH:/.attbin ; export PATH
       +fi
       +
       +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
       +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
       +UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
       +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
       +
       +# Note: order is significant - the case branches are not exclusive.
       +
       +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
       +    *:NetBSD:*:*)
       +        # Netbsd (nbsd) targets should (where applicable) match one or
       +        # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
       +        # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
       +        # switched to ELF, *-*-netbsd* would select the old
       +        # object file format.  This provides both forward
       +        # compatibility and a consistent mechanism for selecting the
       +        # object file format.
       +        # Determine the machine/vendor (is the vendor relevant).
       +        case "${UNAME_MACHINE}" in
       +            amiga) machine=m68k-unknown ;;
       +            arm32) machine=arm-unknown ;;
       +            atari*) machine=m68k-atari ;;
       +            sun3*) machine=m68k-sun ;;
       +            mac68k) machine=m68k-apple ;;
       +            macppc) machine=powerpc-apple ;;
       +            hp3[0-9][05]) machine=m68k-hp ;;
       +            ibmrt|romp-ibm) machine=romp-ibm ;;
       +            *) machine=${UNAME_MACHINE}-unknown ;;
       +        esac
       +        # The Operating System including object format, if it has switched
       +        # to ELF recently, or will in the future.
       +        case "${UNAME_MACHINE}" in
       +            i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
       +                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
       +                        | grep __ELF__ >/dev/null
       +                then
       +                    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
       +                    # Return netbsd for either.  FIX?
       +                    os=netbsd
       +                else
       +                    os=netbsdelf
       +                fi
       +                ;;
       +            *)
       +                os=netbsd
       +                ;;
       +        esac
       +        # The OS release
       +        release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
       +        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
       +        # contains redundant information, the shorter form:
       +        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
       +        echo "${machine}-${os}${release}"
       +        exit 0 ;;
       +    alpha:OSF1:*:*)
       +        if test $UNAME_RELEASE = "V4.0"; then
       +                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
       +        fi
       +        # A Vn.n version is a released version.
       +        # A Tn.n version is a released field test version.
       +        # A Xn.n version is an unreleased experimental baselevel.
       +        # 1.2 uses "1.2" for uname -r.
       +        cat <<EOF >$dummy.s
       +        .data
       +\$Lformat:
       +        .byte 37,100,45,37,120,10,0        # "%d-%x\n"
       +
       +        .text
       +        .globl main
       +        .align 4
       +        .ent main
       +main:
       +        .frame \$30,16,\$26,0
       +        ldgp \$29,0(\$27)
       +        .prologue 1
       +        .long 0x47e03d80 # implver \$0
       +        lda \$2,-1
       +        .long 0x47e20c21 # amask \$2,\$1
       +        lda \$16,\$Lformat
       +        mov \$0,\$17
       +        not \$1,\$18
       +        jsr \$26,printf
       +        ldgp \$29,0(\$26)
       +        mov 0,\$16
       +        jsr \$26,exit
       +        .end main
       +EOF
       +        $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
       +        if test "$?" = 0 ; then
       +                case `./$dummy` in
       +                        0-0)
       +                                UNAME_MACHINE="alpha"
       +                                ;;
       +                        1-0)
       +                                UNAME_MACHINE="alphaev5"
       +                                ;;
       +                        1-1)
       +                                UNAME_MACHINE="alphaev56"
       +                                ;;
       +                        1-101)
       +                                UNAME_MACHINE="alphapca56"
       +                                ;;
       +                        2-303)
       +                                UNAME_MACHINE="alphaev6"
       +                                ;;
       +                        2-307)
       +                                UNAME_MACHINE="alphaev67"
       +                                ;;
       +                esac
       +        fi
       +        rm -f $dummy.s $dummy
       +        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
       +        exit 0 ;;
       +    Alpha\ *:Windows_NT*:*)
       +        # How do we know it's Interix rather than the generic POSIX subsystem?
       +        # Should we change UNAME_MACHINE based on the output of uname instead
       +        # of the specific Alpha model?
       +        echo alpha-pc-interix
       +        exit 0 ;;
       +    21064:Windows_NT:50:3)
       +        echo alpha-dec-winnt3.5
       +        exit 0 ;;
       +    Amiga*:UNIX_System_V:4.0:*)
       +        echo m68k-unknown-sysv4
       +        exit 0;;
       +    amiga:OpenBSD:*:*)
       +        echo m68k-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:[Aa]miga[Oo][Ss]:*:*)
       +        echo ${UNAME_MACHINE}-unknown-amigaos
       +        exit 0 ;;
       +    arc64:OpenBSD:*:*)
       +        echo mips64el-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    arc:OpenBSD:*:*)
       +        echo mipsel-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    hkmips:OpenBSD:*:*)
       +        echo mips-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    pmax:OpenBSD:*:*)
       +        echo mipsel-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    sgi:OpenBSD:*:*)
       +        echo mips-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    wgrisc:OpenBSD:*:*)
       +        echo mipsel-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:OS/390:*:*)
       +        echo i370-ibm-openedition
       +        exit 0 ;;
       +    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
       +        echo arm-acorn-riscix${UNAME_RELEASE}
       +        exit 0;;
       +    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
       +        echo hppa1.1-hitachi-hiuxmpp
       +        exit 0;;
       +    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
       +        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
       +        if test "`(/bin/universe) 2>/dev/null`" = att ; then
       +                echo pyramid-pyramid-sysv3
       +        else
       +                echo pyramid-pyramid-bsd
       +        fi
       +        exit 0 ;;
       +    NILE*:*:*:dcosx)
       +        echo pyramid-pyramid-svr4
       +        exit 0 ;;
       +    sun4H:SunOS:5.*:*)
       +        echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
       +        exit 0 ;;
       +    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
       +        echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
       +        exit 0 ;;
       +    i86pc:SunOS:5.*:*)
       +        echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
       +        exit 0 ;;
       +    sun4*:SunOS:6*:*)
       +        # According to config.sub, this is the proper way to canonicalize
       +        # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
       +        # it's likely to be more like Solaris than SunOS4.
       +        echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
       +        exit 0 ;;
       +    sun4*:SunOS:*:*)
       +        case "`/usr/bin/arch -k`" in
       +            Series*|S4*)
       +                UNAME_RELEASE=`uname -v`
       +                ;;
       +        esac
       +        # Japanese Language versions have a version number like `4.1.3-JL'.
       +        echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
       +        exit 0 ;;
       +    sun3*:SunOS:*:*)
       +        echo m68k-sun-sunos${UNAME_RELEASE}
       +        exit 0 ;;
       +    sun*:*:4.2BSD:*)
       +        UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
       +        test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
       +        case "`/bin/arch`" in
       +            sun3)
       +                echo m68k-sun-sunos${UNAME_RELEASE}
       +                ;;
       +            sun4)
       +                echo sparc-sun-sunos${UNAME_RELEASE}
       +                ;;
       +        esac
       +        exit 0 ;;
       +    aushp:SunOS:*:*)
       +        echo sparc-auspex-sunos${UNAME_RELEASE}
       +        exit 0 ;;
       +    atari*:OpenBSD:*:*)
       +        echo m68k-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    # The situation for MiNT is a little confusing.  The machine name
       +    # can be virtually everything (everything which is not
       +    # "atarist" or "atariste" at least should have a processor
       +    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
       +    # to the lowercase version "mint" (or "freemint").  Finally
       +    # the system name "TOS" denotes a system which is actually not
       +    # MiNT.  But MiNT is downward compatible to TOS, so this should
       +    # be no problem.
       +    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
       +        echo m68k-atari-mint${UNAME_RELEASE}
       +        exit 0 ;;
       +    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
       +        echo m68k-atari-mint${UNAME_RELEASE}
       +        exit 0 ;;
       +    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
       +        echo m68k-atari-mint${UNAME_RELEASE}
       +        exit 0 ;;
       +    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
       +        echo m68k-milan-mint${UNAME_RELEASE}
       +        exit 0 ;;
       +    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
       +        echo m68k-hades-mint${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
       +        echo m68k-unknown-mint${UNAME_RELEASE}
       +        exit 0 ;;
       +    sun3*:OpenBSD:*:*)
       +        echo m68k-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    mac68k:OpenBSD:*:*)
       +        echo m68k-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    mvme68k:OpenBSD:*:*)
       +        echo m68k-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    mvme88k:OpenBSD:*:*)
       +        echo m88k-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    powerpc:machten:*:*)
       +        echo powerpc-apple-machten${UNAME_RELEASE}
       +        exit 0 ;;
       +    RISC*:Mach:*:*)
       +        echo mips-dec-mach_bsd4.3
       +        exit 0 ;;
       +    RISC*:ULTRIX:*:*)
       +        echo mips-dec-ultrix${UNAME_RELEASE}
       +        exit 0 ;;
       +    VAX*:ULTRIX*:*:*)
       +        echo vax-dec-ultrix${UNAME_RELEASE}
       +        exit 0 ;;
       +    2020:CLIX:*:* | 2430:CLIX:*:*)
       +        echo clipper-intergraph-clix${UNAME_RELEASE}
       +        exit 0 ;;
       +    mips:*:*:UMIPS | mips:*:*:RISCos)
       +        sed 's/^        //' << EOF >$dummy.c
       +#ifdef __cplusplus
       +#include <stdio.h>  /* for printf() prototype */
       +        int main (int argc, char *argv[]) {
       +#else
       +        int main (argc, argv) int argc; char *argv[]; {
       +#endif
       +        #if defined (host_mips) && defined (MIPSEB)
       +        #if defined (SYSTYPE_SYSV)
       +          printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
       +        #endif
       +        #if defined (SYSTYPE_SVR4)
       +          printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
       +        #endif
       +        #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
       +          printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
       +        #endif
       +        #endif
       +          exit (-1);
       +        }
       +EOF
       +        $CC_FOR_BUILD $dummy.c -o $dummy \
       +          && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
       +          && rm -f $dummy.c $dummy && exit 0
       +        rm -f $dummy.c $dummy
       +        echo mips-mips-riscos${UNAME_RELEASE}
       +        exit 0 ;;
       +    Motorola:PowerMAX_OS:*:*)
       +        echo powerpc-motorola-powermax
       +        exit 0 ;;
       +    Night_Hawk:Power_UNIX:*:*)
       +        echo powerpc-harris-powerunix
       +        exit 0 ;;
       +    m88k:CX/UX:7*:*)
       +        echo m88k-harris-cxux7
       +        exit 0 ;;
       +    m88k:*:4*:R4*)
       +        echo m88k-motorola-sysv4
       +        exit 0 ;;
       +    m88k:*:3*:R3*)
       +        echo m88k-motorola-sysv3
       +        exit 0 ;;
       +    AViiON:dgux:*:*)
       +        # DG/UX returns AViiON for all architectures
       +        UNAME_PROCESSOR=`/usr/bin/uname -p`
       +        if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
       +        then
       +            if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
       +               [ ${TARGET_BINARY_INTERFACE}x = x ]
       +            then
       +                echo m88k-dg-dgux${UNAME_RELEASE}
       +            else
       +                echo m88k-dg-dguxbcs${UNAME_RELEASE}
       +            fi
       +        else
       +            echo i586-dg-dgux${UNAME_RELEASE}
       +        fi
       +         exit 0 ;;
       +    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
       +        echo m88k-dolphin-sysv3
       +        exit 0 ;;
       +    M88*:*:R3*:*)
       +        # Delta 88k system running SVR3
       +        echo m88k-motorola-sysv3
       +        exit 0 ;;
       +    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
       +        echo m88k-tektronix-sysv3
       +        exit 0 ;;
       +    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
       +        echo m68k-tektronix-bsd
       +        exit 0 ;;
       +    *:IRIX*:*:*)
       +        echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
       +        exit 0 ;;
       +    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
       +        echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
       +        exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
       +    i*86:AIX:*:*)
       +        echo i386-ibm-aix
       +        exit 0 ;;
       +    ia64:AIX:*:*)
       +        if [ -x /usr/bin/oslevel ] ; then
       +                IBM_REV=`/usr/bin/oslevel`
       +        else
       +                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
       +        fi
       +        echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
       +        exit 0 ;;
       +    *:AIX:2:3)
       +        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
       +                sed 's/^                //' << EOF >$dummy.c
       +                #include <sys/systemcfg.h>
       +
       +                main()
       +                        {
       +                        if (!__power_pc())
       +                                exit(1);
       +                        puts("powerpc-ibm-aix3.2.5");
       +                        exit(0);
       +                        }
       +EOF
       +                $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
       +                rm -f $dummy.c $dummy
       +                echo rs6000-ibm-aix3.2.5
       +        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
       +                echo rs6000-ibm-aix3.2.4
       +        else
       +                echo rs6000-ibm-aix3.2
       +        fi
       +        exit 0 ;;
       +    *:AIX:*:[45])
       +        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
       +        if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
       +                IBM_ARCH=rs6000
       +        else
       +                IBM_ARCH=powerpc
       +        fi
       +        if [ -x /usr/bin/oslevel ] ; then
       +                IBM_REV=`/usr/bin/oslevel`
       +        else
       +                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
       +        fi
       +        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
       +        exit 0 ;;
       +    *:AIX:*:*)
       +        echo rs6000-ibm-aix
       +        exit 0 ;;
       +    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
       +        echo romp-ibm-bsd4.4
       +        exit 0 ;;
       +    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
       +        echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
       +        exit 0 ;;                           # report: romp-ibm BSD 4.3
       +    *:BOSX:*:*)
       +        echo rs6000-bull-bosx
       +        exit 0 ;;
       +    DPX/2?00:B.O.S.:*:*)
       +        echo m68k-bull-sysv3
       +        exit 0 ;;
       +    9000/[34]??:4.3bsd:1.*:*)
       +        echo m68k-hp-bsd
       +        exit 0 ;;
       +    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
       +        echo m68k-hp-bsd4.4
       +        exit 0 ;;
       +    9000/[34678]??:HP-UX:*:*)
       +        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
       +        case "${UNAME_MACHINE}" in
       +            9000/31? )            HP_ARCH=m68000 ;;
       +            9000/[34]?? )         HP_ARCH=m68k ;;
       +            9000/[678][0-9][0-9])
       +              case "${HPUX_REV}" in
       +                11.[0-9][0-9])
       +                  if [ -x /usr/bin/getconf ]; then
       +                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
       +                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
       +                    case "${sc_cpu_version}" in
       +                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
       +                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
       +                      532)                      # CPU_PA_RISC2_0
       +                        case "${sc_kernel_bits}" in
       +                          32) HP_ARCH="hppa2.0n" ;;
       +                          64) HP_ARCH="hppa2.0w" ;;
       +                        esac ;;
       +                    esac
       +                  fi ;;
       +              esac
       +              if [ "${HP_ARCH}" = "" ]; then
       +              sed 's/^              //' << EOF >$dummy.c
       +
       +              #define _HPUX_SOURCE
       +              #include <stdlib.h>
       +              #include <unistd.h>
       +
       +              int main ()
       +              {
       +              #if defined(_SC_KERNEL_BITS)
       +                  long bits = sysconf(_SC_KERNEL_BITS);
       +              #endif
       +                  long cpu  = sysconf (_SC_CPU_VERSION);
       +
       +                  switch (cpu)
       +                      {
       +                      case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
       +                      case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
       +                      case CPU_PA_RISC2_0:
       +              #if defined(_SC_KERNEL_BITS)
       +                          switch (bits)
       +                              {
       +                              case 64: puts ("hppa2.0w"); break;
       +                              case 32: puts ("hppa2.0n"); break;
       +                              default: puts ("hppa2.0"); break;
       +                              } break;
       +              #else  /* !defined(_SC_KERNEL_BITS) */
       +                          puts ("hppa2.0"); break;
       +              #endif
       +                      default: puts ("hppa1.0"); break;
       +                      }
       +                  exit (0);
       +              }
       +EOF
       +        (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
       +        if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
       +        rm -f $dummy.c $dummy
       +        fi ;;
       +        esac
       +        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
       +        exit 0 ;;
       +    ia64:HP-UX:*:*)
       +        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
       +        echo ia64-hp-hpux${HPUX_REV}
       +        exit 0 ;;
       +    3050*:HI-UX:*:*)
       +        sed 's/^        //' << EOF >$dummy.c
       +        #include <unistd.h>
       +        int
       +        main ()
       +        {
       +          long cpu = sysconf (_SC_CPU_VERSION);
       +          /* The order matters, because CPU_IS_HP_MC68K erroneously returns
       +             true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
       +             results, however.  */
       +          if (CPU_IS_PA_RISC (cpu))
       +            {
       +              switch (cpu)
       +                {
       +                  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
       +                  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
       +                  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
       +                  default: puts ("hppa-hitachi-hiuxwe2"); break;
       +                }
       +            }
       +          else if (CPU_IS_HP_MC68K (cpu))
       +            puts ("m68k-hitachi-hiuxwe2");
       +          else puts ("unknown-hitachi-hiuxwe2");
       +          exit (0);
       +        }
       +EOF
       +        $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
       +        rm -f $dummy.c $dummy
       +        echo unknown-hitachi-hiuxwe2
       +        exit 0 ;;
       +    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
       +        echo hppa1.1-hp-bsd
       +        exit 0 ;;
       +    9000/8??:4.3bsd:*:*)
       +        echo hppa1.0-hp-bsd
       +        exit 0 ;;
       +    *9??*:MPE/iX:*:*)
       +        echo hppa1.0-hp-mpeix
       +        exit 0 ;;
       +    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
       +        echo hppa1.1-hp-osf
       +        exit 0 ;;
       +    hp8??:OSF1:*:*)
       +        echo hppa1.0-hp-osf
       +        exit 0 ;;
       +    i*86:OSF1:*:*)
       +        if [ -x /usr/sbin/sysversion ] ; then
       +            echo ${UNAME_MACHINE}-unknown-osf1mk
       +        else
       +            echo ${UNAME_MACHINE}-unknown-osf1
       +        fi
       +        exit 0 ;;
       +    parisc*:Lites*:*:*)
       +        echo hppa1.1-hp-lites
       +        exit 0 ;;
       +    hppa*:OpenBSD:*:*)
       +        echo hppa-unknown-openbsd
       +        exit 0 ;;
       +    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
       +        echo c1-convex-bsd
       +        exit 0 ;;
       +    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
       +        if getsysinfo -f scalar_acc
       +        then echo c32-convex-bsd
       +        else echo c2-convex-bsd
       +        fi
       +        exit 0 ;;
       +    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
       +        echo c34-convex-bsd
       +        exit 0 ;;
       +    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
       +        echo c38-convex-bsd
       +        exit 0 ;;
       +    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
       +        echo c4-convex-bsd
       +        exit 0 ;;
       +    CRAY*X-MP:*:*:*)
       +        echo xmp-cray-unicos
       +        exit 0 ;;
       +    CRAY*Y-MP:*:*:*)
       +        echo ymp-cray-unicos${UNAME_RELEASE}
       +        exit 0 ;;
       +    CRAY*[A-Z]90:*:*:*)
       +        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
       +        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
       +              -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
       +        exit 0 ;;
       +    CRAY*TS:*:*:*)
       +        echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
       +        exit 0 ;;
       +    CRAY*T3D:*:*:*)
       +        echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
       +        exit 0 ;;
       +    CRAY*T3E:*:*:*)
       +        echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
       +        exit 0 ;;
       +    CRAY*SV1:*:*:*)
       +        echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
       +        exit 0 ;;
       +    CRAY-2:*:*:*)
       +        echo cray2-cray-unicos
       +        exit 0 ;;
       +    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
       +        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
       +        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
       +        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
       +        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
       +        exit 0 ;;
       +    hp300:OpenBSD:*:*)
       +        echo m68k-unknown-openbsd${UNAME_RELEASE}
       +        exit 0 ;;
       +    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
       +        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
       +        exit 0 ;;
       +    sparc*:BSD/OS:*:*)
       +        echo sparc-unknown-bsdi${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:BSD/OS:*:*)
       +        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:FreeBSD:*:*)
       +        echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
       +        exit 0 ;;
       +    *:OpenBSD:*:*)
       +        echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
       +        exit 0 ;;
       +    i*:CYGWIN*:*)
       +        echo ${UNAME_MACHINE}-pc-cygwin
       +        exit 0 ;;
       +    i*:MINGW*:*)
       +        echo ${UNAME_MACHINE}-pc-mingw32
       +        exit 0 ;;
       +    i*:PW*:*)
       +        echo ${UNAME_MACHINE}-pc-pw32
       +        exit 0 ;;
       +    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
       +        # How do we know it's Interix rather than the generic POSIX subsystem?
       +        # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
       +        # UNAME_MACHINE based on the output of uname instead of i386?
       +        echo i386-pc-interix
       +        exit 0 ;;
       +    i*:UWIN*:*)
       +        echo ${UNAME_MACHINE}-pc-uwin
       +        exit 0 ;;
       +    p*:CYGWIN*:*)
       +        echo powerpcle-unknown-cygwin
       +        exit 0 ;;
       +    prep*:SunOS:5.*:*)
       +        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
       +        exit 0 ;;
       +    *:GNU:*:*)
       +        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
       +        exit 0 ;;
       +    i*86:Minix:*:*)
       +        echo ${UNAME_MACHINE}-pc-minix
       +        exit 0 ;;
       +    arm*:Linux:*:*)
       +        echo ${UNAME_MACHINE}-unknown-linux-gnu
       +        exit 0 ;;
       +    ia64:Linux:*:*)
       +        echo ${UNAME_MACHINE}-unknown-linux
       +        exit 0 ;;
       +    m68*:Linux:*:*)
       +        echo ${UNAME_MACHINE}-unknown-linux-gnu
       +        exit 0 ;;
       +    mips:Linux:*:*)
       +        cat >$dummy.c <<EOF
       +#ifdef __cplusplus
       +#include <stdio.h>  /* for printf() prototype */
       +int main (int argc, char *argv[]) {
       +#else
       +int main (argc, argv) int argc; char *argv[]; {
       +#endif
       +#ifdef __MIPSEB__
       +  printf ("%s-unknown-linux-gnu\n", argv[1]);
       +#endif
       +#ifdef __MIPSEL__
       +  printf ("%sel-unknown-linux-gnu\n", argv[1]);
       +#endif
       +  return 0;
       +}
       +EOF
       +        $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
       +        rm -f $dummy.c $dummy
       +        ;;
       +    ppc:Linux:*:*)
       +        # Determine Lib Version
       +        cat >$dummy.c <<EOF
       +#include <features.h>
       +#if defined(__GLIBC__)
       +extern char __libc_version[];
       +extern char __libc_release[];
       +#endif
       +main(argc, argv)
       +     int argc;
       +     char *argv[];
       +{
       +#if defined(__GLIBC__)
       +  printf("%s %s\n", __libc_version, __libc_release);
       +#else
       +  printf("unknown\n");
       +#endif
       +  return 0;
       +}
       +EOF
       +        LIBC=""
       +        $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
       +        if test "$?" = 0 ; then
       +                ./$dummy | grep 1\.99 > /dev/null
       +                if test "$?" = 0 ; then LIBC="libc1" ; fi
       +        fi
       +        rm -f $dummy.c $dummy
       +        echo powerpc-unknown-linux-gnu${LIBC}
       +        exit 0 ;;
       +    alpha:Linux:*:*)
       +        cat <<EOF >$dummy.s
       +          .data
       +          \$Lformat:
       +                .byte 37,100,45,37,120,10,0        # "%d-%x\n"
       +           .text
       +                .globl main
       +                .align 4
       +                .ent main
       +            main:
       +                .frame \$30,16,\$26,0
       +                ldgp \$29,0(\$27)
       +                .prologue 1
       +                .long 0x47e03d80 # implver \$0
       +                lda \$2,-1
       +                .long 0x47e20c21 # amask \$2,\$1
       +                lda \$16,\$Lformat
       +                mov \$0,\$17
       +                not \$1,\$18
       +                jsr \$26,printf
       +                ldgp \$29,0(\$26)
       +                mov 0,\$16
       +                jsr \$26,exit
       +                .end main
       +EOF
       +        LIBC=""
       +        $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
       +        if test "$?" = 0 ; then
       +                case `./$dummy` in
       +                0-0)        UNAME_MACHINE="alpha" ;;
       +                1-0)        UNAME_MACHINE="alphaev5" ;;
       +                1-1)    UNAME_MACHINE="alphaev56" ;;
       +                1-101)        UNAME_MACHINE="alphapca56" ;;
       +                2-303)        UNAME_MACHINE="alphaev6" ;;
       +                2-307)        UNAME_MACHINE="alphaev67" ;;
       +                esac
       +                objdump --private-headers $dummy | \
       +                  grep ld.so.1 > /dev/null
       +                if test "$?" = 0 ; then
       +                        LIBC="libc1"
       +                fi
       +        fi
       +        rm -f $dummy.s $dummy
       +        echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
       +        exit 0 ;;
       +    parisc:Linux:*:* | hppa:Linux:*:*)
       +        # Look for CPU level
       +        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
       +          PA7*) echo hppa1.1-unknown-linux-gnu ;;
       +          PA8*) echo hppa2.0-unknown-linux-gnu ;;
       +          *)    echo hppa-unknown-linux-gnu ;;
       +        esac
       +        exit 0 ;;
       +    parisc64:Linux:*:* | hppa64:Linux:*:*)
       +        echo hppa64-unknown-linux-gnu
       +        exit 0 ;;
       +    s390:Linux:*:* | s390x:Linux:*:*)
       +        echo ${UNAME_MACHINE}-ibm-linux
       +        exit 0 ;;
       +    sh*:Linux:*:*)
       +        echo ${UNAME_MACHINE}-unknown-linux-gnu
       +        exit 0 ;;
       +    sparc:Linux:*:* | sparc64:Linux:*:*)
       +        echo ${UNAME_MACHINE}-unknown-linux-gnu
       +        exit 0 ;;
       +    x86_64:Linux:*:*)
       +        echo x86_64-unknown-linux-gnu
       +        exit 0 ;;
       +    i*86:Linux:*:*)
       +        # The BFD linker knows what the default object file format is, so
       +        # first see if it will tell us. cd to the root directory to prevent
       +        # problems with other programs or directories called `ld' in the path.
       +        ld_supported_emulations=`cd /; ld --help 2>&1 \
       +                         | sed -ne '/supported emulations:/!d
       +                                    s/[         ][         ]*/ /g
       +                                    s/.*supported emulations: *//
       +                                    s/ .*//
       +                                    p'`
       +        case "$ld_supported_emulations" in
       +          i*86linux)
       +                echo "${UNAME_MACHINE}-pc-linux-gnuaout"
       +                exit 0
       +                ;;
       +          elf_i*86)
       +                TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
       +                ;;
       +          i*86coff)
       +                echo "${UNAME_MACHINE}-pc-linux-gnucoff"
       +                exit 0
       +                ;;
       +        esac
       +        # Either a pre-BFD a.out linker (linux-gnuoldld)
       +        # or one that does not give us useful --help.
       +        # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
       +        # If ld does not provide *any* "supported emulations:"
       +        # that means it is gnuoldld.
       +        test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
       +        case "${UNAME_MACHINE}" in
       +        i*86)
       +          VENDOR=pc;
       +          ;;
       +        *)
       +          VENDOR=unknown;
       +          ;;
       +        esac
       +        # Determine whether the default compiler is a.out or elf
       +        cat >$dummy.c <<EOF
       +#include <features.h>
       +#ifdef __cplusplus
       +#include <stdio.h>  /* for printf() prototype */
       +        int main (int argc, char *argv[]) {
       +#else
       +        int main (argc, argv) int argc; char *argv[]; {
       +#endif
       +#ifdef __ELF__
       +# ifdef __GLIBC__
       +#  if __GLIBC__ >= 2
       +    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
       +#  else
       +    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
       +#  endif
       +# else
       +   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
       +# endif
       +#else
       +  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
       +#endif
       +  return 0;
       +}
       +EOF
       +        $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
       +        rm -f $dummy.c $dummy
       +        test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
       +        ;;
       +# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
       +# are messed up and put the nodename in both sysname and nodename.
       +    i*86:DYNIX/ptx:4*:*)
       +        echo i386-sequent-sysv4
       +        exit 0 ;;
       +    i*86:UNIX_SV:4.2MP:2.*)
       +        # Unixware is an offshoot of SVR4, but it has its own version
       +        # number series starting with 2...
       +        # I am not positive that other SVR4 systems won't match this,
       +        # I just have to hope.  -- rms.
       +        # Use sysv4.2uw... so that sysv4* matches it.
       +        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
       +        exit 0 ;;
       +    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
       +        UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
       +        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
       +                echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
       +        else
       +                echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
       +        fi
       +        exit 0 ;;
       +    i*86:*:5:7*)
       +        # Fixed at (any) Pentium or better
       +        UNAME_MACHINE=i586
       +        if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
       +            echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
       +        else
       +            echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
       +        fi
       +        exit 0 ;;
       +    i*86:*:3.2:*)
       +        if test -f /usr/options/cb.name; then
       +                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
       +                echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
       +        elif /bin/uname -X 2>/dev/null >/dev/null ; then
       +                UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
       +                (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
       +                (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
       +                        && UNAME_MACHINE=i586
       +                (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
       +                        && UNAME_MACHINE=i686
       +                (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
       +                        && UNAME_MACHINE=i686
       +                echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
       +        else
       +                echo ${UNAME_MACHINE}-pc-sysv32
       +        fi
       +        exit 0 ;;
       +    i*86:*DOS:*:*)
       +        echo ${UNAME_MACHINE}-pc-msdosdjgpp
       +        exit 0 ;;
       +    pc:*:*:*)
       +        # Left here for compatibility:
       +        # uname -m prints for DJGPP always 'pc', but it prints nothing about
       +        # the processor, so we play safe by assuming i386.
       +        echo i386-pc-msdosdjgpp
       +        exit 0 ;;
       +    Intel:Mach:3*:*)
       +        echo i386-pc-mach3
       +        exit 0 ;;
       +    paragon:*:*:*)
       +        echo i860-intel-osf1
       +        exit 0 ;;
       +    i860:*:4.*:*) # i860-SVR4
       +        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
       +          echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
       +        else # Add other i860-SVR4 vendors below as they are discovered.
       +          echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
       +        fi
       +        exit 0 ;;
       +    mini*:CTIX:SYS*5:*)
       +        # "miniframe"
       +        echo m68010-convergent-sysv
       +        exit 0 ;;
       +    M68*:*:R3V[567]*:*)
       +        test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
       +    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
       +        OS_REL=''
       +        test -r /etc/.relid \
       +        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
       +        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
       +          && echo i486-ncr-sysv4.3${OS_REL} && exit 0
       +        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
       +          && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
       +    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
       +        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
       +          && echo i486-ncr-sysv4 && exit 0 ;;
       +    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
       +        echo m68k-unknown-lynxos${UNAME_RELEASE}
       +        exit 0 ;;
       +    mc68030:UNIX_System_V:4.*:*)
       +        echo m68k-atari-sysv4
       +        exit 0 ;;
       +    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
       +        echo i386-unknown-lynxos${UNAME_RELEASE}
       +        exit 0 ;;
       +    TSUNAMI:LynxOS:2.*:*)
       +        echo sparc-unknown-lynxos${UNAME_RELEASE}
       +        exit 0 ;;
       +    rs6000:LynxOS:2.*:*)
       +        echo rs6000-unknown-lynxos${UNAME_RELEASE}
       +        exit 0 ;;
       +    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
       +        echo powerpc-unknown-lynxos${UNAME_RELEASE}
       +        exit 0 ;;
       +    SM[BE]S:UNIX_SV:*:*)
       +        echo mips-dde-sysv${UNAME_RELEASE}
       +        exit 0 ;;
       +    RM*:ReliantUNIX-*:*:*)
       +        echo mips-sni-sysv4
       +        exit 0 ;;
       +    RM*:SINIX-*:*:*)
       +        echo mips-sni-sysv4
       +        exit 0 ;;
       +    *:SINIX-*:*:*)
       +        if uname -p 2>/dev/null >/dev/null ; then
       +                UNAME_MACHINE=`(uname -p) 2>/dev/null`
       +                echo ${UNAME_MACHINE}-sni-sysv4
       +        else
       +                echo ns32k-sni-sysv
       +        fi
       +        exit 0 ;;
       +    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
       +                           # says <Richard.M.Bartel@ccMail.Census.GOV>
       +        echo i586-unisys-sysv4
       +        exit 0 ;;
       +    *:UNIX_System_V:4*:FTX*)
       +        # From Gerald Hewes <hewes@openmarket.com>.
       +        # How about differentiating between stratus architectures? -djm
       +        echo hppa1.1-stratus-sysv4
       +        exit 0 ;;
       +    *:*:*:FTX*)
       +        # From seanf@swdc.stratus.com.
       +        echo i860-stratus-sysv4
       +        exit 0 ;;
       +    mc68*:A/UX:*:*)
       +        echo m68k-apple-aux${UNAME_RELEASE}
       +        exit 0 ;;
       +    news*:NEWS-OS:6*:*)
       +        echo mips-sony-newsos6
       +        exit 0 ;;
       +    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
       +        if [ -d /usr/nec ]; then
       +                echo mips-nec-sysv${UNAME_RELEASE}
       +        else
       +                echo mips-unknown-sysv${UNAME_RELEASE}
       +        fi
       +        exit 0 ;;
       +    BeBox:BeOS:*:*)        # BeOS running on hardware made by Be, PPC only.
       +        echo powerpc-be-beos
       +        exit 0 ;;
       +    BeMac:BeOS:*:*)        # BeOS running on Mac or Mac clone, PPC only.
       +        echo powerpc-apple-beos
       +        exit 0 ;;
       +    BePC:BeOS:*:*)        # BeOS running on Intel PC compatible.
       +        echo i586-pc-beos
       +        exit 0 ;;
       +    SX-4:SUPER-UX:*:*)
       +        echo sx4-nec-superux${UNAME_RELEASE}
       +        exit 0 ;;
       +    SX-5:SUPER-UX:*:*)
       +        echo sx5-nec-superux${UNAME_RELEASE}
       +        exit 0 ;;
       +    Power*:Rhapsody:*:*)
       +        echo powerpc-apple-rhapsody${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:Rhapsody:*:*)
       +        echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:Darwin:*:*)
       +        echo `uname -p`-apple-darwin${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:procnto*:*:* | *:QNX:[0123456789]*:*)
       +        if test "${UNAME_MACHINE}" = "x86pc"; then
       +                UNAME_MACHINE=pc
       +        fi
       +        echo `uname -p`-${UNAME_MACHINE}-nto-qnx
       +        exit 0 ;;
       +    *:QNX:*:4*)
       +        echo i386-pc-qnx
       +        exit 0 ;;
       +    NSR-[KW]:NONSTOP_KERNEL:*:*)
       +        echo nsr-tandem-nsk${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:NonStop-UX:*:*)
       +        echo mips-compaq-nonstopux
       +        exit 0 ;;
       +    BS2000:POSIX*:*:*)
       +        echo bs2000-siemens-sysv
       +        exit 0 ;;
       +    DS/*:UNIX_System_V:*:*)
       +        echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
       +        exit 0 ;;
       +    *:Plan9:*:*)
       +        # "uname -m" is not consistent, so use $cputype instead. 386
       +        # is converted to i386 for consistency with other x86
       +        # operating systems.
       +        if test "$cputype" = "386"; then
       +            UNAME_MACHINE=i386
       +        else
       +            UNAME_MACHINE="$cputype"
       +        fi
       +        echo ${UNAME_MACHINE}-unknown-plan9
       +        exit 0 ;;
       +    i*86:OS/2:*:*)
       +        # If we were able to find `uname', then EMX Unix compatibility
       +        # is probably installed.
       +        echo ${UNAME_MACHINE}-pc-os2-emx
       +        exit 0 ;;
       +    *:TOPS-10:*:*)
       +        echo pdp10-unknown-tops10
       +        exit 0 ;;
       +    *:TENEX:*:*)
       +        echo pdp10-unknown-tenex
       +        exit 0 ;;
       +    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
       +        echo pdp10-dec-tops20
       +        exit 0 ;;
       +    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
       +        echo pdp10-xkl-tops20
       +        exit 0 ;;
       +    *:TOPS-20:*:*)
       +        echo pdp10-unknown-tops20
       +        exit 0 ;;
       +    *:ITS:*:*)
       +        echo pdp10-unknown-its
       +        exit 0 ;;
       +esac
       +
       +#echo '(No uname command or uname output not recognized.)' 1>&2
       +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
       +
       +cat >$dummy.c <<EOF
       +#ifdef _SEQUENT_
       +# include <sys/types.h>
       +# include <sys/utsname.h>
       +#endif
       +main ()
       +{
       +#if defined (sony)
       +#if defined (MIPSEB)
       +  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
       +     I don't know....  */
       +  printf ("mips-sony-bsd\n"); exit (0);
       +#else
       +#include <sys/param.h>
       +  printf ("m68k-sony-newsos%s\n",
       +#ifdef NEWSOS4
       +          "4"
       +#else
       +          ""
       +#endif
       +         ); exit (0);
       +#endif
       +#endif
       +
       +#if defined (__arm) && defined (__acorn) && defined (__unix)
       +  printf ("arm-acorn-riscix"); exit (0);
       +#endif
       +
       +#if defined (hp300) && !defined (hpux)
       +  printf ("m68k-hp-bsd\n"); exit (0);
       +#endif
       +
       +#if defined (NeXT)
       +#if !defined (__ARCHITECTURE__)
       +#define __ARCHITECTURE__ "m68k"
       +#endif
       +  int version;
       +  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
       +  if (version < 4)
       +    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
       +  else
       +    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
       +  exit (0);
       +#endif
       +
       +#if defined (MULTIMAX) || defined (n16)
       +#if defined (UMAXV)
       +  printf ("ns32k-encore-sysv\n"); exit (0);
       +#else
       +#if defined (CMU)
       +  printf ("ns32k-encore-mach\n"); exit (0);
       +#else
       +  printf ("ns32k-encore-bsd\n"); exit (0);
       +#endif
       +#endif
       +#endif
       +
       +#if defined (__386BSD__)
       +  printf ("i386-pc-bsd\n"); exit (0);
       +#endif
       +
       +#if defined (sequent)
       +#if defined (i386)
       +  printf ("i386-sequent-dynix\n"); exit (0);
       +#endif
       +#if defined (ns32000)
       +  printf ("ns32k-sequent-dynix\n"); exit (0);
       +#endif
       +#endif
       +
       +#if defined (_SEQUENT_)
       +    struct utsname un;
       +
       +    uname(&un);
       +
       +    if (strncmp(un.version, "V2", 2) == 0) {
       +        printf ("i386-sequent-ptx2\n"); exit (0);
       +    }
       +    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
       +        printf ("i386-sequent-ptx1\n"); exit (0);
       +    }
       +    printf ("i386-sequent-ptx\n"); exit (0);
       +
       +#endif
       +
       +#if defined (vax)
       +# if !defined (ultrix)
       +#  include <sys/param.h>
       +#  if defined (BSD)
       +#   if BSD == 43
       +      printf ("vax-dec-bsd4.3\n"); exit (0);
       +#   else
       +#    if BSD == 199006
       +      printf ("vax-dec-bsd4.3reno\n"); exit (0);
       +#    else
       +      printf ("vax-dec-bsd\n"); exit (0);
       +#    endif
       +#   endif
       +#  else
       +    printf ("vax-dec-bsd\n"); exit (0);
       +#  endif
       +# else
       +    printf ("vax-dec-ultrix\n"); exit (0);
       +# endif
       +#endif
       +
       +#if defined (alliant) && defined (i860)
       +  printf ("i860-alliant-bsd\n"); exit (0);
       +#endif
       +
       +  exit (1);
       +}
       +EOF
       +
       +$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
       +rm -f $dummy.c $dummy
       +
       +# Apollos put the system type in the environment.
       +
       +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
       +
       +# Convex versions that predate uname can use getsysinfo(1)
       +
       +if [ -x /usr/convex/getsysinfo ]
       +then
       +    case `getsysinfo -f cpu_type` in
       +    c1*)
       +        echo c1-convex-bsd
       +        exit 0 ;;
       +    c2*)
       +        if getsysinfo -f scalar_acc
       +        then echo c32-convex-bsd
       +        else echo c2-convex-bsd
       +        fi
       +        exit 0 ;;
       +    c34*)
       +        echo c34-convex-bsd
       +        exit 0 ;;
       +    c38*)
       +        echo c38-convex-bsd
       +        exit 0 ;;
       +    c4*)
       +        echo c4-convex-bsd
       +        exit 0 ;;
       +    esac
       +fi
       +
       +cat >&2 <<EOF
       +$0: unable to guess system type
       +
       +This script, last modified $timestamp, has failed to recognize
       +the operating system you are using. It is advised that you
       +download the most up to date version of the config scripts from
       +
       +    ftp://ftp.gnu.org/pub/gnu/config/
       +
       +If the version you run ($0) is already up to date, please
       +send the following data and any information you think might be
       +pertinent to <config-patches@gnu.org> in order to provide the needed
       +information to handle your system.
       +
       +config.guess timestamp = $timestamp
       +
       +uname -m = `(uname -m) 2>/dev/null || echo unknown`
       +uname -r = `(uname -r) 2>/dev/null || echo unknown`
       +uname -s = `(uname -s) 2>/dev/null || echo unknown`
       +uname -v = `(uname -v) 2>/dev/null || echo unknown`
       +
       +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
       +/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
       +
       +hostinfo               = `(hostinfo) 2>/dev/null`
       +/bin/universe          = `(/bin/universe) 2>/dev/null`
       +/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
       +/bin/arch              = `(/bin/arch) 2>/dev/null`
       +/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
       +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
       +
       +UNAME_MACHINE = ${UNAME_MACHINE}
       +UNAME_RELEASE = ${UNAME_RELEASE}
       +UNAME_SYSTEM  = ${UNAME_SYSTEM}
       +UNAME_VERSION = ${UNAME_VERSION}
       +EOF
       +
       +exit 1
       +
       +# Local variables:
       +# eval: (add-hook 'write-file-hooks 'time-stamp)
       +# time-stamp-start: "timestamp='"
       +# time-stamp-format: "%:y-%02m-%02d"
       +# time-stamp-end: "'"
       +# End:
 (DIR) diff --git a/config.h.in b/config.h.in
       t@@ -31,9 +31,6 @@
        /* Define to `long' if <sys/types.h> doesn't define.  */
        #undef off_t
        
       -/* Define if you need to in order for stat and other things to work.  */
       -#undef _POSIX_SOURCE
       -
        /* Define if the setvbuf function takes the buffering type as its second
           argument and the buffer pointer as the third, as on System V
           before release 3.  */
       t@@ -82,12 +79,6 @@
           (i.e. >= 1.2.10) */
        #undef HAVE_FIXED_GTK
        
       -#undef ENABLE_NLS
       -#undef HAVE_CATGETS
       -#undef HAVE_GETTEXT
       -#undef HAVE_LC_MESSAGES
       -#undef HAVE_STPCPY
       -
        /* The number of bytes in a long long.  */
        #undef SIZEOF_LONG_LONG
        
       t@@ -103,9 +94,24 @@
        /* Define if you have the dcgettext function.  */
        #undef HAVE_DCGETTEXT
        
       +/* Define if you have the feof_unlocked function.  */
       +#undef HAVE_FEOF_UNLOCKED
       +
       +/* Define if you have the fgets_unlocked function.  */
       +#undef HAVE_FGETS_UNLOCKED
       +
        /* Define if you have the getcwd function.  */
        #undef HAVE_GETCWD
        
       +/* Define if you have the getegid function.  */
       +#undef HAVE_GETEGID
       +
       +/* Define if you have the geteuid function.  */
       +#undef HAVE_GETEUID
       +
       +/* Define if you have the getgid function.  */
       +#undef HAVE_GETGID
       +
        /* Define if you have the gethostbyname function.  */
        #undef HAVE_GETHOSTBYNAME
        
       t@@ -115,6 +121,12 @@
        /* Define if you have the getpagesize function.  */
        #undef HAVE_GETPAGESIZE
        
       +/* Define if you have the getuid function.  */
       +#undef HAVE_GETUID
       +
       +/* Define if you have the mempcpy function.  */
       +#undef HAVE_MEMPCPY
       +
        /* Define if you have the munmap function.  */
        #undef HAVE_MUNMAP
        
       t@@ -148,6 +160,12 @@
        /* Define if you have the strstr function.  */
        #undef HAVE_STRSTR
        
       +/* Define if you have the strtoul function.  */
       +#undef HAVE_STRTOUL
       +
       +/* Define if you have the tsearch function.  */
       +#undef HAVE_TSEARCH
       +
        /* Define if you have the <argz.h> header file.  */
        #undef HAVE_ARGZ_H
        
       t@@ -166,6 +184,9 @@
        /* Define if you have the <nl_types.h> header file.  */
        #undef HAVE_NL_TYPES_H
        
       +/* Define if you have the <stddef.h> header file.  */
       +#undef HAVE_STDDEF_H
       +
        /* Define if you have the <stdlib.h> header file.  */
        #undef HAVE_STDLIB_H
        
       t@@ -187,9 +208,6 @@
        /* Define if you have the curses library (-lcurses).  */
        #undef HAVE_LIBCURSES
        
       -/* Define if you have the i library (-li).  */
       -#undef HAVE_LIBI
       -
        /* Define if you have the ncurses library (-lncurses).  */
        #undef HAVE_LIBNCURSES
        
       t@@ -199,3 +217,22 @@
        /* Version number of package */
        #undef VERSION
        
       +/* Define if you have the iconv() function. */
       +#undef HAVE_ICONV
       +
       +/* Define as const if the declaration of iconv() needs const. */
       +#undef ICONV_CONST
       +
       +/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
       +#undef HAVE_LANGINFO_CODESET
       +
       +/* Define if your <locale.h> file defines LC_MESSAGES. */
       +#undef HAVE_LC_MESSAGES
       +
       +/* Define to 1 if translation of program messages to the user's native language
       +   is requested. */
       +#undef ENABLE_NLS
       +
       +/* Define if the GNU gettext() function is already present or preinstalled. */
       +#undef HAVE_GETTEXT
       +
 (DIR) diff --git a/config.sub b/config.sub
       t@@ -0,0 +1,1362 @@
       +#! /bin/sh
       +# Configuration validation subroutine script.
       +#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
       +#   Free Software Foundation, Inc.
       +
       +timestamp='2001-04-20'
       +
       +# This file is (in principle) common to ALL GNU software.
       +# The presence of a machine in this file suggests that SOME GNU software
       +# can handle that machine.  It does not imply ALL GNU software can.
       +#
       +# This file is free software; you can redistribute it and/or modify
       +# it under the terms of the GNU General Public License as published by
       +# the Free Software Foundation; either version 2 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, write to the Free Software
       +# Foundation, Inc., 59 Temple Place - Suite 330,
       +# Boston, MA 02111-1307, USA.
       +
       +# As a special exception to the GNU General Public License, if you
       +# distribute this file as part of a program that contains a
       +# configuration script generated by Autoconf, you may include it under
       +# the same distribution terms that you use for the rest of that program.
       +
       +# Please send patches to <config-patches@gnu.org>.
       +#
       +# Configuration subroutine to validate and canonicalize a configuration type.
       +# Supply the specified configuration type as an argument.
       +# If it is invalid, we print an error message on stderr and exit with code 1.
       +# Otherwise, we print the canonical config type on stdout and succeed.
       +
       +# This file is supposed to be the same for all GNU packages
       +# and recognize all the CPU types, system types and aliases
       +# that are meaningful with *any* GNU software.
       +# Each package is responsible for reporting which valid configurations
       +# it does not support.  The user should be able to distinguish
       +# a failure to support a valid configuration from a meaningless
       +# configuration.
       +
       +# The goal of this file is to map all the various variations of a given
       +# machine specification into a single specification in the form:
       +#        CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
       +# or in some cases, the newer four-part form:
       +#        CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
       +# It is wrong to echo any other type of specification.
       +
       +me=`echo "$0" | sed -e 's,.*/,,'`
       +
       +usage="\
       +Usage: $0 [OPTION] CPU-MFR-OPSYS
       +       $0 [OPTION] ALIAS
       +
       +Canonicalize a configuration name.
       +
       +Operation modes:
       +  -h, --help         print this help, then exit
       +  -t, --time-stamp   print date of last modification, then exit
       +  -v, --version      print version number, then exit
       +
       +Report bugs and patches to <config-patches@gnu.org>."
       +
       +version="\
       +GNU config.sub ($timestamp)
       +
       +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
       +Free Software Foundation, Inc.
       +
       +This is free software; see the source for copying conditions.  There is NO
       +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
       +
       +help="
       +Try \`$me --help' for more information."
       +
       +# Parse command line
       +while test $# -gt 0 ; do
       +  case $1 in
       +    --time-stamp | --time* | -t )
       +       echo "$timestamp" ; exit 0 ;;
       +    --version | -v )
       +       echo "$version" ; exit 0 ;;
       +    --help | --h* | -h )
       +       echo "$usage"; exit 0 ;;
       +    -- )     # Stop option processing
       +       shift; break ;;
       +    - )        # Use stdin as input.
       +       break ;;
       +    -* )
       +       echo "$me: invalid option $1$help"
       +       exit 1 ;;
       +
       +    *local*)
       +       # First pass through any local machine types.
       +       echo $1
       +       exit 0;;
       +
       +    * )
       +       break ;;
       +  esac
       +done
       +
       +case $# in
       + 0) echo "$me: missing argument$help" >&2
       +    exit 1;;
       + 1) ;;
       + *) echo "$me: too many arguments$help" >&2
       +    exit 1;;
       +esac
       +
       +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
       +# Here we must recognize all the valid KERNEL-OS combinations.
       +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
       +case $maybe_os in
       +  nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*)
       +    os=-$maybe_os
       +    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
       +    ;;
       +  *)
       +    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
       +    if [ $basic_machine != $1 ]
       +    then os=`echo $1 | sed 's/.*-/-/'`
       +    else os=; fi
       +    ;;
       +esac
       +
       +### Let's recognize common machines as not being operating systems so
       +### that things like config.sub decstation-3100 work.  We also
       +### recognize some manufacturers as not being operating systems, so we
       +### can provide default operating systems below.
       +case $os in
       +        -sun*os*)
       +                # Prevent following clause from handling this invalid input.
       +                ;;
       +        -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
       +        -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
       +        -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
       +        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
       +        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
       +        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
       +        -apple | -axis)
       +                os=
       +                basic_machine=$1
       +                ;;
       +        -sim | -cisco | -oki | -wec | -winbond)
       +                os=
       +                basic_machine=$1
       +                ;;
       +        -scout)
       +                ;;
       +        -wrs)
       +                os=-vxworks
       +                basic_machine=$1
       +                ;;
       +        -hiux*)
       +                os=-hiuxwe2
       +                ;;
       +        -sco5)
       +                os=-sco3.2v5
       +                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
       +                ;;
       +        -sco4)
       +                os=-sco3.2v4
       +                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
       +                ;;
       +        -sco3.2.[4-9]*)
       +                os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
       +                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
       +                ;;
       +        -sco3.2v[4-9]*)
       +                # Don't forget version if it is 3.2v4 or newer.
       +                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
       +                ;;
       +        -sco*)
       +                os=-sco3.2v2
       +                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
       +                ;;
       +        -udk*)
       +                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
       +                ;;
       +        -isc)
       +                os=-isc2.2
       +                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
       +                ;;
       +        -clix*)
       +                basic_machine=clipper-intergraph
       +                ;;
       +        -isc*)
       +                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
       +                ;;
       +        -lynx*)
       +                os=-lynxos
       +                ;;
       +        -ptx*)
       +                basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
       +                ;;
       +        -windowsnt*)
       +                os=`echo $os | sed -e 's/windowsnt/winnt/'`
       +                ;;
       +        -psos*)
       +                os=-psos
       +                ;;
       +        -mint | -mint[0-9]*)
       +                basic_machine=m68k-atari
       +                os=-mint
       +                ;;
       +esac
       +
       +# Decode aliases for certain CPU-COMPANY combinations.
       +case $basic_machine in
       +        # Recognize the basic CPU types without company name.
       +        # Some are omitted here because they have special meanings below.
       +        tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
       +                | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
       +                | pyramid | mn10200 | mn10300 | tron | a29k \
       +                | 580 | i960 | h8300 \
       +                | x86 | ppcbe | mipsbe | mipsle | shbe | shle \
       +                | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
       +                | hppa64 \
       +                | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
       +                | alphaev6[78] \
       +                | we32k | ns16k | clipper | i370 | sh | sh[34] \
       +                | powerpc | powerpcle \
       +                | 1750a | dsp16xx | pdp10 | pdp11 \
       +                | mips16 | mips64 | mipsel | mips64el \
       +                | mips64orion | mips64orionel | mipstx39 | mipstx39el \
       +                | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
       +                | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \
       +                | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \
       +                | v850 | c4x \
       +                | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \
       +                | pj | pjl | h8500)
       +                basic_machine=$basic_machine-unknown
       +                ;;
       +        m6811 | m68hc11 | m6812 | m68hc12)
       +                # Motorola 68HC11/12.
       +                basic_machine=$basic_machine-unknown
       +                os=-none
       +                ;;
       +        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65)
       +                ;;
       +
       +        # We use `pc' rather than `unknown'
       +        # because (1) that's what they normally are, and
       +        # (2) the word "unknown" tends to confuse beginning users.
       +        i*86 | x86_64)
       +          basic_machine=$basic_machine-pc
       +          ;;
       +        # Object if more than one company name word.
       +        *-*-*)
       +                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
       +                exit 1
       +                ;;
       +        # Recognize the basic CPU types with company name.
       +        # FIXME: clean up the formatting here.
       +        vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
       +              | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
       +              | arm-*  | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
       +              | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
       +              | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
       +              | xmp-* | ymp-* \
       +              | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
       +              | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
       +              | hppa2.0n-* | hppa64-* \
       +              | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
       +              | alphaev6[78]-* \
       +              | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
       +              | clipper-* | orion-* \
       +              | sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
       +              | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \
       +              | mips16-* | mips64-* | mipsel-* \
       +              | mips64el-* | mips64orion-* | mips64orionel-* \
       +              | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
       +              | mipstx39-* | mipstx39el-* | mcore-* \
       +              | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \
       +              | [cjt]90-* \
       +              | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
       +              | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \
       +              | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*)
       +                ;;
       +        # Recognize the various machine names and aliases which stand
       +        # for a CPU type and a company and sometimes even an OS.
       +        386bsd)
       +                basic_machine=i386-unknown
       +                os=-bsd
       +                ;;
       +        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
       +                basic_machine=m68000-att
       +                ;;
       +        3b*)
       +                basic_machine=we32k-att
       +                ;;
       +        a29khif)
       +                basic_machine=a29k-amd
       +                os=-udi
       +                ;;
       +        adobe68k)
       +                basic_machine=m68010-adobe
       +                os=-scout
       +                ;;
       +        alliant | fx80)
       +                basic_machine=fx80-alliant
       +                ;;
       +        altos | altos3068)
       +                basic_machine=m68k-altos
       +                ;;
       +        am29k)
       +                basic_machine=a29k-none
       +                os=-bsd
       +                ;;
       +        amdahl)
       +                basic_machine=580-amdahl
       +                os=-sysv
       +                ;;
       +        amiga | amiga-*)
       +                basic_machine=m68k-unknown
       +                ;;
       +        amigaos | amigados)
       +                basic_machine=m68k-unknown
       +                os=-amigaos
       +                ;;
       +        amigaunix | amix)
       +                basic_machine=m68k-unknown
       +                os=-sysv4
       +                ;;
       +        apollo68)
       +                basic_machine=m68k-apollo
       +                os=-sysv
       +                ;;
       +        apollo68bsd)
       +                basic_machine=m68k-apollo
       +                os=-bsd
       +                ;;
       +        aux)
       +                basic_machine=m68k-apple
       +                os=-aux
       +                ;;
       +        balance)
       +                basic_machine=ns32k-sequent
       +                os=-dynix
       +                ;;
       +        convex-c1)
       +                basic_machine=c1-convex
       +                os=-bsd
       +                ;;
       +        convex-c2)
       +                basic_machine=c2-convex
       +                os=-bsd
       +                ;;
       +        convex-c32)
       +                basic_machine=c32-convex
       +                os=-bsd
       +                ;;
       +        convex-c34)
       +                basic_machine=c34-convex
       +                os=-bsd
       +                ;;
       +        convex-c38)
       +                basic_machine=c38-convex
       +                os=-bsd
       +                ;;
       +        cray | ymp)
       +                basic_machine=ymp-cray
       +                os=-unicos
       +                ;;
       +        cray2)
       +                basic_machine=cray2-cray
       +                os=-unicos
       +                ;;
       +        [cjt]90)
       +                basic_machine=${basic_machine}-cray
       +                os=-unicos
       +                ;;
       +        crds | unos)
       +                basic_machine=m68k-crds
       +                ;;
       +        cris | cris-* | etrax*)
       +                basic_machine=cris-axis
       +                ;;
       +        da30 | da30-*)
       +                basic_machine=m68k-da30
       +                ;;
       +        decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
       +                basic_machine=mips-dec
       +                ;;
       +        delta | 3300 | motorola-3300 | motorola-delta \
       +              | 3300-motorola | delta-motorola)
       +                basic_machine=m68k-motorola
       +                ;;
       +        delta88)
       +                basic_machine=m88k-motorola
       +                os=-sysv3
       +                ;;
       +        dpx20 | dpx20-*)
       +                basic_machine=rs6000-bull
       +                os=-bosx
       +                ;;
       +        dpx2* | dpx2*-bull)
       +                basic_machine=m68k-bull
       +                os=-sysv3
       +                ;;
       +        ebmon29k)
       +                basic_machine=a29k-amd
       +                os=-ebmon
       +                ;;
       +        elxsi)
       +                basic_machine=elxsi-elxsi
       +                os=-bsd
       +                ;;
       +        encore | umax | mmax)
       +                basic_machine=ns32k-encore
       +                ;;
       +        es1800 | OSE68k | ose68k | ose | OSE)
       +                basic_machine=m68k-ericsson
       +                os=-ose
       +                ;;
       +        fx2800)
       +                basic_machine=i860-alliant
       +                ;;
       +        genix)
       +                basic_machine=ns32k-ns
       +                ;;
       +        gmicro)
       +                basic_machine=tron-gmicro
       +                os=-sysv
       +                ;;
       +        go32)
       +                basic_machine=i386-pc
       +                os=-go32
       +                ;;
       +        h3050r* | hiux*)
       +                basic_machine=hppa1.1-hitachi
       +                os=-hiuxwe2
       +                ;;
       +        h8300hms)
       +                basic_machine=h8300-hitachi
       +                os=-hms
       +                ;;
       +        h8300xray)
       +                basic_machine=h8300-hitachi
       +                os=-xray
       +                ;;
       +        h8500hms)
       +                basic_machine=h8500-hitachi
       +                os=-hms
       +                ;;
       +        harris)
       +                basic_machine=m88k-harris
       +                os=-sysv3
       +                ;;
       +        hp300-*)
       +                basic_machine=m68k-hp
       +                ;;
       +        hp300bsd)
       +                basic_machine=m68k-hp
       +                os=-bsd
       +                ;;
       +        hp300hpux)
       +                basic_machine=m68k-hp
       +                os=-hpux
       +                ;;
       +        hp3k9[0-9][0-9] | hp9[0-9][0-9])
       +                basic_machine=hppa1.0-hp
       +                ;;
       +        hp9k2[0-9][0-9] | hp9k31[0-9])
       +                basic_machine=m68000-hp
       +                ;;
       +        hp9k3[2-9][0-9])
       +                basic_machine=m68k-hp
       +                ;;
       +        hp9k6[0-9][0-9] | hp6[0-9][0-9])
       +                basic_machine=hppa1.0-hp
       +                ;;
       +        hp9k7[0-79][0-9] | hp7[0-79][0-9])
       +                basic_machine=hppa1.1-hp
       +                ;;
       +        hp9k78[0-9] | hp78[0-9])
       +                # FIXME: really hppa2.0-hp
       +                basic_machine=hppa1.1-hp
       +                ;;
       +        hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
       +                # FIXME: really hppa2.0-hp
       +                basic_machine=hppa1.1-hp
       +                ;;
       +        hp9k8[0-9][13679] | hp8[0-9][13679])
       +                basic_machine=hppa1.1-hp
       +                ;;
       +        hp9k8[0-9][0-9] | hp8[0-9][0-9])
       +                basic_machine=hppa1.0-hp
       +                ;;
       +        hppa-next)
       +                os=-nextstep3
       +                ;;
       +        hppaosf)
       +                basic_machine=hppa1.1-hp
       +                os=-osf
       +                ;;
       +        hppro)
       +                basic_machine=hppa1.1-hp
       +                os=-proelf
       +                ;;
       +        i370-ibm* | ibm*)
       +                basic_machine=i370-ibm
       +                ;;
       +# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
       +        i*86v32)
       +                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
       +                os=-sysv32
       +                ;;
       +        i*86v4*)
       +                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
       +                os=-sysv4
       +                ;;
       +        i*86v)
       +                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
       +                os=-sysv
       +                ;;
       +        i*86sol2)
       +                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
       +                os=-solaris2
       +                ;;
       +        i386mach)
       +                basic_machine=i386-mach
       +                os=-mach
       +                ;;
       +        i386-vsta | vsta)
       +                basic_machine=i386-unknown
       +                os=-vsta
       +                ;;
       +        iris | iris4d)
       +                basic_machine=mips-sgi
       +                case $os in
       +                    -irix*)
       +                        ;;
       +                    *)
       +                        os=-irix4
       +                        ;;
       +                esac
       +                ;;
       +        isi68 | isi)
       +                basic_machine=m68k-isi
       +                os=-sysv
       +                ;;
       +        m88k-omron*)
       +                basic_machine=m88k-omron
       +                ;;
       +        magnum | m3230)
       +                basic_machine=mips-mips
       +                os=-sysv
       +                ;;
       +        merlin)
       +                basic_machine=ns32k-utek
       +                os=-sysv
       +                ;;
       +        mingw32)
       +                basic_machine=i386-pc
       +                os=-mingw32
       +                ;;
       +        miniframe)
       +                basic_machine=m68000-convergent
       +                ;;
       +        *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
       +                basic_machine=m68k-atari
       +                os=-mint
       +                ;;
       +        mipsel*-linux*)
       +                basic_machine=mipsel-unknown
       +                os=-linux-gnu
       +                ;;
       +        mips*-linux*)
       +                basic_machine=mips-unknown
       +                os=-linux-gnu
       +                ;;
       +        mips3*-*)
       +                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
       +                ;;
       +        mips3*)
       +                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
       +                ;;
       +        mmix*)
       +                basic_machine=mmix-knuth
       +                os=-mmixware
       +                ;;
       +        monitor)
       +                basic_machine=m68k-rom68k
       +                os=-coff
       +                ;;
       +        msdos)
       +                basic_machine=i386-pc
       +                os=-msdos
       +                ;;
       +        mvs)
       +                basic_machine=i370-ibm
       +                os=-mvs
       +                ;;
       +        ncr3000)
       +                basic_machine=i486-ncr
       +                os=-sysv4
       +                ;;
       +        netbsd386)
       +                basic_machine=i386-unknown
       +                os=-netbsd
       +                ;;
       +        netwinder)
       +                basic_machine=armv4l-rebel
       +                os=-linux
       +                ;;
       +        news | news700 | news800 | news900)
       +                basic_machine=m68k-sony
       +                os=-newsos
       +                ;;
       +        news1000)
       +                basic_machine=m68030-sony
       +                os=-newsos
       +                ;;
       +        news-3600 | risc-news)
       +                basic_machine=mips-sony
       +                os=-newsos
       +                ;;
       +        necv70)
       +                basic_machine=v70-nec
       +                os=-sysv
       +                ;;
       +        next | m*-next )
       +                basic_machine=m68k-next
       +                case $os in
       +                    -nextstep* )
       +                        ;;
       +                    -ns2*)
       +                      os=-nextstep2
       +                        ;;
       +                    *)
       +                      os=-nextstep3
       +                        ;;
       +                esac
       +                ;;
       +        nh3000)
       +                basic_machine=m68k-harris
       +                os=-cxux
       +                ;;
       +        nh[45]000)
       +                basic_machine=m88k-harris
       +                os=-cxux
       +                ;;
       +        nindy960)
       +                basic_machine=i960-intel
       +                os=-nindy
       +                ;;
       +        mon960)
       +                basic_machine=i960-intel
       +                os=-mon960
       +                ;;
       +        nonstopux)
       +                basic_machine=mips-compaq
       +                os=-nonstopux
       +                ;;
       +        np1)
       +                basic_machine=np1-gould
       +                ;;
       +        nsr-tandem)
       +                basic_machine=nsr-tandem
       +                ;;
       +        op50n-* | op60c-*)
       +                basic_machine=hppa1.1-oki
       +                os=-proelf
       +                ;;
       +        OSE68000 | ose68000)
       +                basic_machine=m68000-ericsson
       +                os=-ose
       +                ;;
       +        os68k)
       +                basic_machine=m68k-none
       +                os=-os68k
       +                ;;
       +        pa-hitachi)
       +                basic_machine=hppa1.1-hitachi
       +                os=-hiuxwe2
       +                ;;
       +        paragon)
       +                basic_machine=i860-intel
       +                os=-osf
       +                ;;
       +        pbd)
       +                basic_machine=sparc-tti
       +                ;;
       +        pbb)
       +                basic_machine=m68k-tti
       +                ;;
       +        pc532 | pc532-*)
       +                basic_machine=ns32k-pc532
       +                ;;
       +        pentium | p5 | k5 | k6 | nexgen)
       +                basic_machine=i586-pc
       +                ;;
       +        pentiumpro | p6 | 6x86 | athlon)
       +                basic_machine=i686-pc
       +                ;;
       +        pentiumii | pentium2)
       +                basic_machine=i686-pc
       +                ;;
       +        pentium-* | p5-* | k5-* | k6-* | nexgen-*)
       +                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
       +                ;;
       +        pentiumpro-* | p6-* | 6x86-* | athlon-*)
       +                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
       +                ;;
       +        pentiumii-* | pentium2-*)
       +                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
       +                ;;
       +        pn)
       +                basic_machine=pn-gould
       +                ;;
       +        power)        basic_machine=power-ibm
       +                ;;
       +        ppc)        basic_machine=powerpc-unknown
       +                ;;
       +        ppc-*)        basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
       +                ;;
       +        ppcle | powerpclittle | ppc-le | powerpc-little)
       +                basic_machine=powerpcle-unknown
       +                ;;
       +        ppcle-* | powerpclittle-*)
       +                basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
       +                ;;
       +        ps2)
       +                basic_machine=i386-ibm
       +                ;;
       +        pw32)
       +                basic_machine=i586-unknown
       +                os=-pw32
       +                ;;
       +        rom68k)
       +                basic_machine=m68k-rom68k
       +                os=-coff
       +                ;;
       +        rm[46]00)
       +                basic_machine=mips-siemens
       +                ;;
       +        rtpc | rtpc-*)
       +                basic_machine=romp-ibm
       +                ;;
       +        sa29200)
       +                basic_machine=a29k-amd
       +                os=-udi
       +                ;;
       +        sequent)
       +                basic_machine=i386-sequent
       +                ;;
       +        sh)
       +                basic_machine=sh-hitachi
       +                os=-hms
       +                ;;
       +        sparclite-wrs)
       +                basic_machine=sparclite-wrs
       +                os=-vxworks
       +                ;;
       +        sps7)
       +                basic_machine=m68k-bull
       +                os=-sysv2
       +                ;;
       +        spur)
       +                basic_machine=spur-unknown
       +                ;;
       +        st2000)
       +                basic_machine=m68k-tandem
       +                ;;
       +        stratus)
       +                basic_machine=i860-stratus
       +                os=-sysv4
       +                ;;
       +        sun2)
       +                basic_machine=m68000-sun
       +                ;;
       +        sun2os3)
       +                basic_machine=m68000-sun
       +                os=-sunos3
       +                ;;
       +        sun2os4)
       +                basic_machine=m68000-sun
       +                os=-sunos4
       +                ;;
       +        sun3os3)
       +                basic_machine=m68k-sun
       +                os=-sunos3
       +                ;;
       +        sun3os4)
       +                basic_machine=m68k-sun
       +                os=-sunos4
       +                ;;
       +        sun4os3)
       +                basic_machine=sparc-sun
       +                os=-sunos3
       +                ;;
       +        sun4os4)
       +                basic_machine=sparc-sun
       +                os=-sunos4
       +                ;;
       +        sun4sol2)
       +                basic_machine=sparc-sun
       +                os=-solaris2
       +                ;;
       +        sun3 | sun3-*)
       +                basic_machine=m68k-sun
       +                ;;
       +        sun4)
       +                basic_machine=sparc-sun
       +                ;;
       +        sun386 | sun386i | roadrunner)
       +                basic_machine=i386-sun
       +                ;;
       +        sv1)
       +                basic_machine=sv1-cray
       +                os=-unicos
       +                ;;
       +        symmetry)
       +                basic_machine=i386-sequent
       +                os=-dynix
       +                ;;
       +        t3e)
       +                basic_machine=t3e-cray
       +                os=-unicos
       +                ;;
       +        tic54x | c54x*)
       +                basic_machine=tic54x-unknown
       +                os=-coff
       +                ;;
       +        tx39)
       +                basic_machine=mipstx39-unknown
       +                ;;
       +        tx39el)
       +                basic_machine=mipstx39el-unknown
       +                ;;
       +        tower | tower-32)
       +                basic_machine=m68k-ncr
       +                ;;
       +        udi29k)
       +                basic_machine=a29k-amd
       +                os=-udi
       +                ;;
       +        ultra3)
       +                basic_machine=a29k-nyu
       +                os=-sym1
       +                ;;
       +        v810 | necv810)
       +                basic_machine=v810-nec
       +                os=-none
       +                ;;
       +        vaxv)
       +                basic_machine=vax-dec
       +                os=-sysv
       +                ;;
       +        vms)
       +                basic_machine=vax-dec
       +                os=-vms
       +                ;;
       +        vpp*|vx|vx-*)
       +               basic_machine=f301-fujitsu
       +               ;;
       +        vxworks960)
       +                basic_machine=i960-wrs
       +                os=-vxworks
       +                ;;
       +        vxworks68)
       +                basic_machine=m68k-wrs
       +                os=-vxworks
       +                ;;
       +        vxworks29k)
       +                basic_machine=a29k-wrs
       +                os=-vxworks
       +                ;;
       +        w65*)
       +                basic_machine=w65-wdc
       +                os=-none
       +                ;;
       +        w89k-*)
       +                basic_machine=hppa1.1-winbond
       +                os=-proelf
       +                ;;
       +        xmp)
       +                basic_machine=xmp-cray
       +                os=-unicos
       +                ;;
       +        xps | xps100)
       +                basic_machine=xps100-honeywell
       +                ;;
       +        z8k-*-coff)
       +                basic_machine=z8k-unknown
       +                os=-sim
       +                ;;
       +        none)
       +                basic_machine=none-none
       +                os=-none
       +                ;;
       +
       +# Here we handle the default manufacturer of certain CPU types.  It is in
       +# some cases the only manufacturer, in others, it is the most popular.
       +        w89k)
       +                basic_machine=hppa1.1-winbond
       +                ;;
       +        op50n)
       +                basic_machine=hppa1.1-oki
       +                ;;
       +        op60c)
       +                basic_machine=hppa1.1-oki
       +                ;;
       +        mips)
       +                if [ x$os = x-linux-gnu ]; then
       +                        basic_machine=mips-unknown
       +                else
       +                        basic_machine=mips-mips
       +                fi
       +                ;;
       +        romp)
       +                basic_machine=romp-ibm
       +                ;;
       +        rs6000)
       +                basic_machine=rs6000-ibm
       +                ;;
       +        vax)
       +                basic_machine=vax-dec
       +                ;;
       +        pdp10)
       +                # there are many clones, so DEC is not a safe bet
       +                basic_machine=pdp10-unknown
       +                ;;
       +        pdp11)
       +                basic_machine=pdp11-dec
       +                ;;
       +        we32k)
       +                basic_machine=we32k-att
       +                ;;
       +        sh3 | sh4)
       +                basic_machine=sh-unknown
       +                ;;
       +        sparc | sparcv9 | sparcv9b)
       +                basic_machine=sparc-sun
       +                ;;
       +        cydra)
       +                basic_machine=cydra-cydrome
       +                ;;
       +        orion)
       +                basic_machine=orion-highlevel
       +                ;;
       +        orion105)
       +                basic_machine=clipper-highlevel
       +                ;;
       +        mac | mpw | mac-mpw)
       +                basic_machine=m68k-apple
       +                ;;
       +        pmac | pmac-mpw)
       +                basic_machine=powerpc-apple
       +                ;;
       +        c4x*)
       +                basic_machine=c4x-none
       +                os=-coff
       +                ;;
       +        *-unknown)
       +                # Make sure to match an already-canonicalized machine name.
       +                ;;
       +        *)
       +                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
       +                exit 1
       +                ;;
       +esac
       +
       +# Here we canonicalize certain aliases for manufacturers.
       +case $basic_machine in
       +        *-digital*)
       +                basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
       +                ;;
       +        *-commodore*)
       +                basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
       +                ;;
       +        *)
       +                ;;
       +esac
       +
       +# Decode manufacturer-specific aliases for certain operating systems.
       +
       +if [ x"$os" != x"" ]
       +then
       +case $os in
       +        # First match some system type aliases
       +        # that might get confused with valid system types.
       +        # -solaris* is a basic system type, with this one exception.
       +        -solaris1 | -solaris1.*)
       +                os=`echo $os | sed -e 's|solaris1|sunos4|'`
       +                ;;
       +        -solaris)
       +                os=-solaris2
       +                ;;
       +        -svr4*)
       +                os=-sysv4
       +                ;;
       +        -unixware*)
       +                os=-sysv4.2uw
       +                ;;
       +        -gnu/linux*)
       +                os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
       +                ;;
       +        # First accept the basic system types.
       +        # The portable systems comes first.
       +        # Each alternative MUST END IN A *, to match a version number.
       +        # -sysv* is not here because it comes later, after sysvr4.
       +        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
       +              | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
       +              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
       +              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
       +              | -aos* \
       +              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
       +              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
       +              | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
       +              | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
       +              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
       +              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
       +              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
       +              | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
       +              | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
       +              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
       +              | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
       +        # Remember, each alternative MUST END IN *, to match a version number.
       +                ;;
       +        -qnx*)
       +                case $basic_machine in
       +                    x86-* | i*86-*)
       +                        ;;
       +                    *)
       +                        os=-nto$os
       +                        ;;
       +                esac
       +                ;;
       +        -nto*)
       +                os=-nto-qnx
       +                ;;
       +        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
       +              | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
       +              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
       +                ;;
       +        -mac*)
       +                os=`echo $os | sed -e 's|mac|macos|'`
       +                ;;
       +        -linux*)
       +                os=`echo $os | sed -e 's|linux|linux-gnu|'`
       +                ;;
       +        -sunos5*)
       +                os=`echo $os | sed -e 's|sunos5|solaris2|'`
       +                ;;
       +        -sunos6*)
       +                os=`echo $os | sed -e 's|sunos6|solaris3|'`
       +                ;;
       +        -opened*)
       +                os=-openedition
       +                ;;
       +        -wince*)
       +                os=-wince
       +                ;;
       +        -osfrose*)
       +                os=-osfrose
       +                ;;
       +        -osf*)
       +                os=-osf
       +                ;;
       +        -utek*)
       +                os=-bsd
       +                ;;
       +        -dynix*)
       +                os=-bsd
       +                ;;
       +        -acis*)
       +                os=-aos
       +                ;;
       +        -386bsd)
       +                os=-bsd
       +                ;;
       +        -ctix* | -uts*)
       +                os=-sysv
       +                ;;
       +        -ns2 )
       +                os=-nextstep2
       +                ;;
       +        -nsk*)
       +                os=-nsk
       +                ;;
       +        # Preserve the version number of sinix5.
       +        -sinix5.*)
       +                os=`echo $os | sed -e 's|sinix|sysv|'`
       +                ;;
       +        -sinix*)
       +                os=-sysv4
       +                ;;
       +        -triton*)
       +                os=-sysv3
       +                ;;
       +        -oss*)
       +                os=-sysv3
       +                ;;
       +        -svr4)
       +                os=-sysv4
       +                ;;
       +        -svr3)
       +                os=-sysv3
       +                ;;
       +        -sysvr4)
       +                os=-sysv4
       +                ;;
       +        # This must come after -sysvr4.
       +        -sysv*)
       +                ;;
       +        -ose*)
       +                os=-ose
       +                ;;
       +        -es1800*)
       +                os=-ose
       +                ;;
       +        -xenix)
       +                os=-xenix
       +                ;;
       +        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
       +                os=-mint
       +                ;;
       +        -none)
       +                ;;
       +        *)
       +                # Get rid of the `-' at the beginning of $os.
       +                os=`echo $os | sed 's/[^-]*-//'`
       +                echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
       +                exit 1
       +                ;;
       +esac
       +else
       +
       +# Here we handle the default operating systems that come with various machines.
       +# The value should be what the vendor currently ships out the door with their
       +# machine or put another way, the most popular os provided with the machine.
       +
       +# Note that if you're going to try to match "-MANUFACTURER" here (say,
       +# "-sun"), then you have to tell the case statement up towards the top
       +# that MANUFACTURER isn't an operating system.  Otherwise, code above
       +# will signal an error saying that MANUFACTURER isn't an operating
       +# system, and we'll never get to this point.
       +
       +case $basic_machine in
       +        *-acorn)
       +                os=-riscix1.2
       +                ;;
       +        arm*-rebel)
       +                os=-linux
       +                ;;
       +        arm*-semi)
       +                os=-aout
       +                ;;
       +        pdp10-*)
       +                os=-tops20
       +                ;;
       +        pdp11-*)
       +                os=-none
       +                ;;
       +        *-dec | vax-*)
       +                os=-ultrix4.2
       +                ;;
       +        m68*-apollo)
       +                os=-domain
       +                ;;
       +        i386-sun)
       +                os=-sunos4.0.2
       +                ;;
       +        m68000-sun)
       +                os=-sunos3
       +                # This also exists in the configure program, but was not the
       +                # default.
       +                # os=-sunos4
       +                ;;
       +        m68*-cisco)
       +                os=-aout
       +                ;;
       +        mips*-cisco)
       +                os=-elf
       +                ;;
       +        mips*-*)
       +                os=-elf
       +                ;;
       +        *-tti)        # must be before sparc entry or we get the wrong os.
       +                os=-sysv3
       +                ;;
       +        sparc-* | *-sun)
       +                os=-sunos4.1.1
       +                ;;
       +        *-be)
       +                os=-beos
       +                ;;
       +        *-ibm)
       +                os=-aix
       +                ;;
       +        *-wec)
       +                os=-proelf
       +                ;;
       +        *-winbond)
       +                os=-proelf
       +                ;;
       +        *-oki)
       +                os=-proelf
       +                ;;
       +        *-hp)
       +                os=-hpux
       +                ;;
       +        *-hitachi)
       +                os=-hiux
       +                ;;
       +        i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
       +                os=-sysv
       +                ;;
       +        *-cbm)
       +                os=-amigaos
       +                ;;
       +        *-dg)
       +                os=-dgux
       +                ;;
       +        *-dolphin)
       +                os=-sysv3
       +                ;;
       +        m68k-ccur)
       +                os=-rtu
       +                ;;
       +        m88k-omron*)
       +                os=-luna
       +                ;;
       +        *-next )
       +                os=-nextstep
       +                ;;
       +        *-sequent)
       +                os=-ptx
       +                ;;
       +        *-crds)
       +                os=-unos
       +                ;;
       +        *-ns)
       +                os=-genix
       +                ;;
       +        i370-*)
       +                os=-mvs
       +                ;;
       +        *-next)
       +                os=-nextstep3
       +                ;;
       +        *-gould)
       +                os=-sysv
       +                ;;
       +        *-highlevel)
       +                os=-bsd
       +                ;;
       +        *-encore)
       +                os=-bsd
       +                ;;
       +        *-sgi)
       +                os=-irix
       +                ;;
       +        *-siemens)
       +                os=-sysv4
       +                ;;
       +        *-masscomp)
       +                os=-rtu
       +                ;;
       +        f30[01]-fujitsu | f700-fujitsu)
       +                os=-uxpv
       +                ;;
       +        *-rom68k)
       +                os=-coff
       +                ;;
       +        *-*bug)
       +                os=-coff
       +                ;;
       +        *-apple)
       +                os=-macos
       +                ;;
       +        *-atari*)
       +                os=-mint
       +                ;;
       +        *)
       +                os=-none
       +                ;;
       +esac
       +fi
       +
       +# Here we handle the case where we know the os, and the CPU type, but not the
       +# manufacturer.  We pick the logical manufacturer.
       +vendor=unknown
       +case $basic_machine in
       +        *-unknown)
       +                case $os in
       +                        -riscix*)
       +                                vendor=acorn
       +                                ;;
       +                        -sunos*)
       +                                vendor=sun
       +                                ;;
       +                        -aix*)
       +                                vendor=ibm
       +                                ;;
       +                        -beos*)
       +                                vendor=be
       +                                ;;
       +                        -hpux*)
       +                                vendor=hp
       +                                ;;
       +                        -mpeix*)
       +                                vendor=hp
       +                                ;;
       +                        -hiux*)
       +                                vendor=hitachi
       +                                ;;
       +                        -unos*)
       +                                vendor=crds
       +                                ;;
       +                        -dgux*)
       +                                vendor=dg
       +                                ;;
       +                        -luna*)
       +                                vendor=omron
       +                                ;;
       +                        -genix*)
       +                                vendor=ns
       +                                ;;
       +                        -mvs* | -opened*)
       +                                vendor=ibm
       +                                ;;
       +                        -ptx*)
       +                                vendor=sequent
       +                                ;;
       +                        -vxsim* | -vxworks*)
       +                                vendor=wrs
       +                                ;;
       +                        -aux*)
       +                                vendor=apple
       +                                ;;
       +                        -hms*)
       +                                vendor=hitachi
       +                                ;;
       +                        -mpw* | -macos*)
       +                                vendor=apple
       +                                ;;
       +                        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
       +                                vendor=atari
       +                                ;;
       +                esac
       +                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
       +                ;;
       +esac
       +
       +echo $basic_machine$os
       +exit 0
       +
       +# Local variables:
       +# eval: (add-hook 'write-file-hooks 'time-stamp)
       +# time-stamp-start: "timestamp='"
       +# time-stamp-format: "%:y-%02m-%02d"
       +# time-stamp-end: "'"
       +# End:
 (DIR) diff --git a/configure b/configure
       t@@ -12,12 +12,6 @@ ac_help=
        ac_default_prefix=/usr/local
        # Any additions from configure.in:
        ac_help="$ac_help
       -  --disable-nls           do not use Native Language Support"
       -ac_help="$ac_help
       -  --with-included-gettext use the GNU gettext library included here"
       -ac_help="$ac_help
       -  --with-catgets          use catgets functions if available"
       -ac_help="$ac_help
          --enable-gui-client     include graphical client (GTK+/Win32)"
        ac_help="$ac_help
          --enable-curses-client  include curses client"
       t@@ -36,6 +30,12 @@ ac_help="$ac_help
        ac_help="$ac_help
          --disable-gtktest       Do not try to compile and run a test GTK program"
        ac_help="$ac_help
       +  --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib"
       +ac_help="$ac_help
       +  --disable-nls           do not use Native Language Support"
       +ac_help="$ac_help
       +  --with-included-gettext use the GNU gettext library included here"
       +ac_help="$ac_help
          --enable-gui-server     use a simple GTK+/Win32 GUI for the server"
        ac_help="$ac_help
          --enable-networking     dopewars will use TCP/IP to connect to servers"
       t@@ -1031,6 +1031,49 @@ else
          fi
        fi
        
       +
       +        echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6
       +echo "configure:1037: checking for strerror in -lcposix" >&5
       +ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'`
       +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  ac_save_LIBS="$LIBS"
       +LIBS="-lcposix  $LIBS"
       +cat > conftest.$ac_ext <<EOF
       +#line 1045 "configure"
       +#include "confdefs.h"
       +/* Override any gcc2 internal prototype to avoid an error.  */
       +/* We use char because int might match the return type of a gcc2
       +    builtin and then its argument prototype would still apply.  */
       +char strerror();
       +
       +int main() {
       +strerror()
       +; return 0; }
       +EOF
       +if { (eval echo configure:1056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +  eval "ac_cv_lib_$ac_lib_var=yes"
       +else
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
       +  rm -rf conftest*
       +  eval "ac_cv_lib_$ac_lib_var=no"
       +fi
       +rm -f conftest*
       +LIBS="$ac_save_LIBS"
       +
       +fi
       +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
       +  echo "$ac_t""yes" 1>&6
       +  LIBS="$LIBS -lcposix"
       +else
       +  echo "$ac_t""no" 1>&6
       +fi
       +
       +  
       +
        # Find a good install program.  We prefer a C program (faster),
        # so one script is as good as another.  But avoid the broken or
        # incompatible versions:
       t@@ -1043,7 +1086,7 @@ fi
        # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
        # ./install, which can be erroneously created by make from ./install.sh.
        echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
       -echo "configure:1047: checking for a BSD compatible install" >&5
       +echo "configure:1090: checking for a BSD compatible install" >&5
        if test -z "$INSTALL"; then
        if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
       t@@ -1096,7 +1139,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
        test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
        
        echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
       -echo "configure:1100: checking whether ${MAKE-make} sets \${MAKE}" >&5
       +echo "configure:1143: checking whether ${MAKE-make} sets \${MAKE}" >&5
        set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
        if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
       t@@ -1123,9 +1166,8 @@ else
        fi
        
        
       -ALL_LINGUAS="de pl pt_BR fr"
        echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
       -echo "configure:1129: checking how to run the C preprocessor" >&5
       +echo "configure:1171: checking how to run the C preprocessor" >&5
        # On Suns, sometimes $CPP names a directory.
        if test -n "$CPP" && test -d "$CPP"; then
          CPP=
       t@@ -1140,13 +1182,13 @@ else
          # On the NeXT, cc -E runs the code through the compiler's parser,
          # not just through cpp.
          cat > conftest.$ac_ext <<EOF
       -#line 1144 "configure"
       +#line 1186 "configure"
        #include "confdefs.h"
        #include <assert.h>
        Syntax Error
        EOF
        ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:1150: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       +{ (eval echo configure:1192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
        ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
        if test -z "$ac_err"; then
          :
       t@@ -1157,13 +1199,13 @@ else
          rm -rf conftest*
          CPP="${CC-cc} -E -traditional-cpp"
          cat > conftest.$ac_ext <<EOF
       -#line 1161 "configure"
       +#line 1203 "configure"
        #include "confdefs.h"
        #include <assert.h>
        Syntax Error
        EOF
        ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:1167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       +{ (eval echo configure:1209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
        ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
        if test -z "$ac_err"; then
          :
       t@@ -1174,13 +1216,13 @@ else
          rm -rf conftest*
          CPP="${CC-cc} -nologo -E"
          cat > conftest.$ac_ext <<EOF
       -#line 1178 "configure"
       +#line 1220 "configure"
        #include "confdefs.h"
        #include <assert.h>
        Syntax Error
        EOF
        ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:1184: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       +{ (eval echo configure:1226: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
        ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
        if test -z "$ac_err"; then
          :
       t@@ -1204,64 +1246,13 @@ else
        fi
        echo "$ac_t""$CPP" 1>&6
        
       -# Extract the first word of "ranlib", so it can be a program name with args.
       -set dummy ranlib; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:1211: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  if test -n "$RANLIB"; then
       -  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
       -else
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       -  ac_dummy="$PATH"
       -  for ac_dir in $ac_dummy; do
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      ac_cv_prog_RANLIB="ranlib"
       -      break
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
       -fi
       -fi
       -RANLIB="$ac_cv_prog_RANLIB"
       -if test -n "$RANLIB"; then
       -  echo "$ac_t""$RANLIB" 1>&6
       -else
       -  echo "$ac_t""no" 1>&6
       -fi
       -
       -echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
       -echo "configure:1239: checking for POSIXized ISC" >&5
       -if test -d /etc/conf/kconfig.d &&
       -  grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
       -then
       -  echo "$ac_t""yes" 1>&6
       -  ISC=yes # If later tests want to check for ISC.
       -  cat >> confdefs.h <<\EOF
       -#define _POSIX_SOURCE 1
       -EOF
       -
       -  if test "$GCC" = yes; then
       -    CC="$CC -posix"
       -  else
       -    CC="$CC -Xp"
       -  fi
       -else
       -  echo "$ac_t""no" 1>&6
       -  ISC=
       -fi
       -
        echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
       -echo "configure:1260: checking for ANSI C header files" >&5
       +echo "configure:1251: checking for ANSI C header files" >&5
        if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 1265 "configure"
       +#line 1256 "configure"
        #include "confdefs.h"
        #include <stdlib.h>
        #include <stdarg.h>
       t@@ -1269,7 +1260,7 @@ else
        #include <float.h>
        EOF
        ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:1273: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       +{ (eval echo configure:1264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
        ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
        if test -z "$ac_err"; then
          rm -rf conftest*
       t@@ -1286,7 +1277,7 @@ rm -f conftest*
        if test $ac_cv_header_stdc = yes; then
          # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
        cat > conftest.$ac_ext <<EOF
       -#line 1290 "configure"
       +#line 1281 "configure"
        #include "confdefs.h"
        #include <string.h>
        EOF
       t@@ -1304,7 +1295,7 @@ fi
        if test $ac_cv_header_stdc = yes; then
          # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
        cat > conftest.$ac_ext <<EOF
       -#line 1308 "configure"
       +#line 1299 "configure"
        #include "confdefs.h"
        #include <stdlib.h>
        EOF
       t@@ -1325,7 +1316,7 @@ if test "$cross_compiling" = yes; then
          :
        else
          cat > conftest.$ac_ext <<EOF
       -#line 1329 "configure"
       +#line 1320 "configure"
        #include "confdefs.h"
        #include <ctype.h>
        #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
       t@@ -1336,7 +1327,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
        exit (0); }
        
        EOF
       -if { (eval echo configure:1340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       +if { (eval echo configure:1331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
        then
          :
        else
       t@@ -1359,1739 +1350,1472 @@ EOF
        
        fi
        
       -echo $ac_n "checking for working const""... $ac_c" 1>&6
       -echo "configure:1364: checking for working const" >&5
       -if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
       +echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
       +echo "configure:1355: checking for sys/wait.h that is POSIX.1 compatible" >&5
       +if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 1369 "configure"
       +#line 1360 "configure"
        #include "confdefs.h"
       -
       +#include <sys/types.h>
       +#include <sys/wait.h>
       +#ifndef WEXITSTATUS
       +#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
       +#endif
       +#ifndef WIFEXITED
       +#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
       +#endif
        int main() {
       -
       -/* Ultrix mips cc rejects this.  */
       -typedef int charset[2]; const charset x;
       -/* SunOS 4.1.1 cc rejects this.  */
       -char const *const *ccp;
       -char **p;
       -/* NEC SVR4.0.2 mips cc rejects this.  */
       -struct point {int x, y;};
       -static struct point const zero = {0,0};
       -/* AIX XL C 1.02.0.0 rejects this.
       -   It does not let you subtract one const X* pointer from another in an arm
       -   of an if-expression whose if-part is not a constant expression */
       -const char *g = "string";
       -ccp = &g + (g ? g-g : 0);
       -/* HPUX 7.0 cc rejects these. */
       -++ccp;
       -p = (char**) ccp;
       -ccp = (char const *const *) p;
       -{ /* SCO 3.2v4 cc rejects this.  */
       -  char *t;
       -  char const *s = 0 ? (char *) 0 : (char const *) 0;
       -
       -  *t++ = 0;
       -}
       -{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
       -  int x[] = {25, 17};
       -  const int *foo = &x[0];
       -  ++foo;
       -}
       -{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
       -  typedef const int *iptr;
       -  iptr p = 0;
       -  ++p;
       -}
       -{ /* AIX XL C 1.02.0.0 rejects this saying
       -     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
       -  struct s { int j; const int *ap[3]; };
       -  struct s *b; b->j = 5;
       -}
       -{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
       -  const int foo = 10;
       -}
       -
       +int s;
       +wait (&s);
       +s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
        ; return 0; }
        EOF
       -if { (eval echo configure:1418: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
       +if { (eval echo configure:1376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
          rm -rf conftest*
       -  ac_cv_c_const=yes
       +  ac_cv_header_sys_wait_h=yes
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  ac_cv_c_const=no
       +  ac_cv_header_sys_wait_h=no
        fi
        rm -f conftest*
        fi
        
       -echo "$ac_t""$ac_cv_c_const" 1>&6
       -if test $ac_cv_c_const = no; then
       +echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6
       +if test $ac_cv_header_sys_wait_h = yes; then
          cat >> confdefs.h <<\EOF
       -#define const 
       +#define HAVE_SYS_WAIT_H 1
        EOF
        
        fi
        
       -echo $ac_n "checking for inline""... $ac_c" 1>&6
       -echo "configure:1439: checking for inline" >&5
       -if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
       +for ac_hdr in fcntl.h sys/time.h unistd.h stdlib.h
       +do
       +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
       +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
       +echo "configure:1400: checking for $ac_hdr" >&5
       +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  ac_cv_c_inline=no
       -for ac_kw in inline __inline__ __inline; do
          cat > conftest.$ac_ext <<EOF
       -#line 1446 "configure"
       +#line 1405 "configure"
        #include "confdefs.h"
       -
       -int main() {
       -} $ac_kw foo() {
       -; return 0; }
       +#include <$ac_hdr>
        EOF
       -if { (eval echo configure:1453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
       +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       +{ (eval echo configure:1410: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
       +if test -z "$ac_err"; then
          rm -rf conftest*
       -  ac_cv_c_inline=$ac_kw; break
       +  eval "ac_cv_header_$ac_safe=yes"
        else
       +  echo "$ac_err" >&5
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
       +  rm -rf conftest*
       +  eval "ac_cv_header_$ac_safe=no"
        fi
        rm -f conftest*
       -done
       -
        fi
       -
       -echo "$ac_t""$ac_cv_c_inline" 1>&6
       -case "$ac_cv_c_inline" in
       -  inline | yes) ;;
       -  no) cat >> confdefs.h <<\EOF
       -#define inline 
       -EOF
       - ;;
       -  *)  cat >> confdefs.h <<EOF
       -#define inline $ac_cv_c_inline
       +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
       +  echo "$ac_t""yes" 1>&6
       +    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
       +  cat >> confdefs.h <<EOF
       +#define $ac_tr_hdr 1
        EOF
       - ;;
       -esac
       + 
       +else
       +  echo "$ac_t""no" 1>&6
       +fi
       +done
        
       -echo $ac_n "checking for off_t""... $ac_c" 1>&6
       -echo "configure:1479: checking for off_t" >&5
       -if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
       +
       +echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
       +echo "configure:1438: checking whether time.h and sys/time.h may both be included" >&5
       +if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 1484 "configure"
       +#line 1443 "configure"
        #include "confdefs.h"
        #include <sys/types.h>
       -#if STDC_HEADERS
       -#include <stdlib.h>
       -#include <stddef.h>
       -#endif
       +#include <sys/time.h>
       +#include <time.h>
       +int main() {
       +struct tm *tp;
       +; return 0; }
        EOF
       -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
       -  egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
       +if { (eval echo configure:1452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
          rm -rf conftest*
       -  ac_cv_type_off_t=yes
       +  ac_cv_header_time=yes
        else
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  ac_cv_type_off_t=no
       +  ac_cv_header_time=no
        fi
        rm -f conftest*
       -
        fi
       -echo "$ac_t""$ac_cv_type_off_t" 1>&6
       -if test $ac_cv_type_off_t = no; then
       +
       +echo "$ac_t""$ac_cv_header_time" 1>&6
       +if test $ac_cv_header_time = yes; then
          cat >> confdefs.h <<\EOF
       -#define off_t long
       +#define TIME_WITH_SYS_TIME 1
        EOF
        
        fi
        
       -echo $ac_n "checking for size_t""... $ac_c" 1>&6
       -echo "configure:1512: checking for size_t" >&5
       -if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
       +echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
       +echo "configure:1473: checking whether struct tm is in sys/time.h or time.h" >&5
       +if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 1517 "configure"
       +#line 1478 "configure"
        #include "confdefs.h"
        #include <sys/types.h>
       -#if STDC_HEADERS
       -#include <stdlib.h>
       -#include <stddef.h>
       -#endif
       +#include <time.h>
       +int main() {
       +struct tm *tp; tp->tm_sec;
       +; return 0; }
        EOF
       -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
       -  egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
       +if { (eval echo configure:1486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
          rm -rf conftest*
       -  ac_cv_type_size_t=yes
       +  ac_cv_struct_tm=time.h
        else
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  ac_cv_type_size_t=no
       +  ac_cv_struct_tm=sys/time.h
        fi
        rm -f conftest*
       -
        fi
       -echo "$ac_t""$ac_cv_type_size_t" 1>&6
       -if test $ac_cv_type_size_t = no; then
       -  cat >> confdefs.h <<\EOF
       -#define size_t unsigned
       +
       +echo "$ac_t""$ac_cv_struct_tm" 1>&6
       +if test $ac_cv_struct_tm = sys/time.h; then
       +  cat >> confdefs.h <<\EOF
       +#define TM_IN_SYS_TIME 1
        EOF
        
        fi
        
       -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
       -# for constant arguments.  Useless!
       -echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
       -echo "configure:1547: checking for working alloca.h" >&5
       -if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  cat > conftest.$ac_ext <<EOF
       -#line 1552 "configure"
       -#include "confdefs.h"
       -#include <alloca.h>
       -int main() {
       -char *p = alloca(2 * sizeof(int));
       -; return 0; }
       -EOF
       -if { (eval echo configure:1559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       -  rm -rf conftest*
       -  ac_cv_header_alloca_h=yes
       +
       +HAVE_FIXED_GTK="no"
       +
       +# Check whether --enable-gui-client or --disable-gui-client was given.
       +if test "${enable_gui_client+set}" = set; then
       +  enableval="$enable_gui_client"
       +   GUI_CLIENT="$enableval" 
        else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  ac_cv_header_alloca_h=no
       -fi
       -rm -f conftest*
       +   GUI_CLIENT="yes" 
        fi
        
       -echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
       -if test $ac_cv_header_alloca_h = yes; then
       -  cat >> confdefs.h <<\EOF
       -#define HAVE_ALLOCA_H 1
       -EOF
        
       +# Check whether --enable-curses-client or --disable-curses-client was given.
       +if test "${enable_curses_client+set}" = set; then
       +  enableval="$enable_curses_client"
       +   CURSES_CLIENT="$enableval" 
       +else
       +   CURSES_CLIENT="yes" 
        fi
        
       -echo $ac_n "checking for alloca""... $ac_c" 1>&6
       -echo "configure:1580: checking for alloca" >&5
       -if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
       +
       +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
       +echo "configure:1528: checking for Cygwin environment" >&5
       +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 1585 "configure"
       +#line 1533 "configure"
        #include "confdefs.h"
        
       -#ifdef __GNUC__
       -# define alloca __builtin_alloca
       -#else
       -# ifdef _MSC_VER
       -#  include <malloc.h>
       -#  define alloca _alloca
       -# else
       -#  if HAVE_ALLOCA_H
       -#   include <alloca.h>
       -#  else
       -#   ifdef _AIX
       - #pragma alloca
       -#   else
       -#    ifndef alloca /* predefined by HP cc +Olibcalls */
       -char *alloca ();
       -#    endif
       -#   endif
       -#  endif
       -# endif
       -#endif
       -
        int main() {
       -char *p = (char *) alloca(1);
       +
       +#ifndef __CYGWIN__
       +#define __CYGWIN__ __CYGWIN32__
       +#endif
       +return __CYGWIN__;
        ; return 0; }
        EOF
       -if { (eval echo configure:1613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:1544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
          rm -rf conftest*
       -  ac_cv_func_alloca_works=yes
       +  ac_cv_cygwin=yes
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  ac_cv_func_alloca_works=no
       +  ac_cv_cygwin=no
        fi
        rm -f conftest*
       +rm -f conftest*
        fi
        
       -echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
       -if test $ac_cv_func_alloca_works = yes; then
       -  cat >> confdefs.h <<\EOF
       -#define HAVE_ALLOCA 1
       -EOF
       -
       +echo "$ac_t""$ac_cv_cygwin" 1>&6
       +CYGWIN=
       +test "$ac_cv_cygwin" = yes && CYGWIN=yes
       +# Check whether --enable-nativewin32 or --disable-nativewin32 was given.
       +if test "${enable_nativewin32+set}" = set; then
       +  enableval="$enable_nativewin32"
       +   CYGWIN="$enableval" 
        fi
        
       -if test $ac_cv_func_alloca_works = no; then
       -  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
       -  # that cause trouble.  Some versions do not even contain alloca or
       -  # contain a buggy version.  If you still want to use their alloca,
       -  # use ar to extract alloca.o from them instead of compiling alloca.c.
       -  ALLOCA=alloca.${ac_objext}
       -  cat >> confdefs.h <<\EOF
       -#define C_ALLOCA 1
       +
       +if test "$CYGWIN" = "yes" ; then
       +   echo "$ac_t"""Configuring for native Win32 binary under Cygwin"" 1>&6
       +   cat >> confdefs.h <<\EOF
       +#define CYGWIN 1
        EOF
        
        
       -echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
       -echo "configure:1645: checking whether alloca needs Cray hooks" >&5
       -if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       +         
       +   CFLAGS="$CFLAGS -mwindows -fnative-struct -mno-cygwin"
       +   LIBS="$LIBS -lwsock32 -lcomctl32 -lmpr"
       +
       +      LDFLAGS="$LDFLAGS -lglib-1.3"
       +
       +      WNDRES="dopewars.res"
       +   
       +
       +         HAVE_FIXED_GTK="yes"
       +
       +      GUI_SERVER="yes"
        else
       -  cat > conftest.$ac_ext <<EOF
       -#line 1650 "configure"
       -#include "confdefs.h"
       -#if defined(CRAY) && ! defined(CRAY2)
       -webecray
       -#else
       -wenotbecray
       -#endif
       +   echo "$ac_t"""Configuring for Unix binary"" 1>&6
        
       -EOF
       -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
       -  egrep "webecray" >/dev/null 2>&1; then
       -  rm -rf conftest*
       -  ac_cv_os_cray=yes
       +      # Check whether --with-glib-prefix or --without-glib-prefix was given.
       +if test "${with_glib_prefix+set}" = set; then
       +  withval="$with_glib_prefix"
       +  glib_config_prefix="$withval"
        else
       -  rm -rf conftest*
       -  ac_cv_os_cray=no
       +  glib_config_prefix=""
        fi
       -rm -f conftest*
        
       +# Check whether --with-glib-exec-prefix or --without-glib-exec-prefix was given.
       +if test "${with_glib_exec_prefix+set}" = set; then
       +  withval="$with_glib_exec_prefix"
       +  glib_config_exec_prefix="$withval"
       +else
       +  glib_config_exec_prefix=""
        fi
        
       -echo "$ac_t""$ac_cv_os_cray" 1>&6
       -if test $ac_cv_os_cray = yes; then
       -for ac_func in _getb67 GETB67 getb67; do
       -  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       -echo "configure:1675: checking for $ac_func" >&5
       -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       +# Check whether --enable-glibtest or --disable-glibtest was given.
       +if test "${enable_glibtest+set}" = set; then
       +  enableval="$enable_glibtest"
       +  :
        else
       -  cat > conftest.$ac_ext <<EOF
       -#line 1680 "configure"
       -#include "confdefs.h"
       -/* System header to define __stub macros and hopefully few prototypes,
       -    which can conflict with char $ac_func(); below.  */
       -#include <assert.h>
       -/* Override any gcc2 internal prototype to avoid an error.  */
       -/* We use char because int might match the return type of a gcc2
       -    builtin and then its argument prototype would still apply.  */
       -char $ac_func();
       +  enable_glibtest=yes
       +fi
        
       -int main() {
        
       -/* The GNU C library defines this for functions which it implements
       -    to always fail with ENOSYS.  Some functions are actually named
       -    something starting with __ and the normal name is an alias.  */
       -#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
       -choke me
       -#else
       -$ac_func();
       -#endif
       +  if test x$glib_config_exec_prefix != x ; then
       +     glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
       +     if test x${GLIB_CONFIG+set} != xset ; then
       +        GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
       +     fi
       +  fi
       +  if test x$glib_config_prefix != x ; then
       +     glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
       +     if test x${GLIB_CONFIG+set} != xset ; then
       +        GLIB_CONFIG=$glib_config_prefix/bin/glib-config
       +     fi
       +  fi
        
       -; return 0; }
       -EOF
       -if { (eval echo configure:1703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       -  rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=yes"
       +  for module in . 
       +  do
       +      case "$module" in
       +         gmodule) 
       +             glib_config_args="$glib_config_args gmodule"
       +         ;;
       +         gthread) 
       +             glib_config_args="$glib_config_args gthread"
       +         ;;
       +      esac
       +  done
       +
       +  # Extract the first word of "glib-config", so it can be a program name with args.
       +set dummy glib-config; ac_word=$2
       +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       +echo "configure:1642: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_path_GLIB_CONFIG'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=no"
       -fi
       -rm -f conftest*
       +  case "$GLIB_CONFIG" in
       +  /*)
       +  ac_cv_path_GLIB_CONFIG="$GLIB_CONFIG" # Let the user override the test with a path.
       +  ;;
       +  ?:/*)                         
       +  ac_cv_path_GLIB_CONFIG="$GLIB_CONFIG" # Let the user override the test with a dos path.
       +  ;;
       +  *)
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       +  ac_dummy="$PATH"
       +  for ac_dir in $ac_dummy; do 
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      ac_cv_path_GLIB_CONFIG="$ac_dir/$ac_word"
       +      break
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
       +  test -z "$ac_cv_path_GLIB_CONFIG" && ac_cv_path_GLIB_CONFIG="no"
       +  ;;
       +esac
        fi
       -
       -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       -  cat >> confdefs.h <<EOF
       -#define CRAY_STACKSEG_END $ac_func
       -EOF
       -
       -  break
       +GLIB_CONFIG="$ac_cv_path_GLIB_CONFIG"
       +if test -n "$GLIB_CONFIG"; then
       +  echo "$ac_t""$GLIB_CONFIG" 1>&6
        else
          echo "$ac_t""no" 1>&6
        fi
        
       -done
       -fi
       -
       -echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
       -echo "configure:1730: checking stack direction for C alloca" >&5
       -if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  if test "$cross_compiling" = yes; then
       -  ac_cv_c_stack_direction=0
       +  min_glib_version=1.2.0
       +  echo $ac_n "checking for GLIB - version >= $min_glib_version""... $ac_c" 1>&6
       +echo "configure:1677: checking for GLIB - version >= $min_glib_version" >&5
       +  no_glib=""
       +  if test "$GLIB_CONFIG" = "no" ; then
       +    no_glib=yes
       +  else
       +    GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
       +    GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
       +    glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
       +           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
       +    glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
       +           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
       +    glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
       +           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
       +    if test "x$enable_glibtest" = "xyes" ; then
       +      ac_save_CFLAGS="$CFLAGS"
       +      ac_save_LIBS="$LIBS"
       +      CFLAGS="$CFLAGS $GLIB_CFLAGS"
       +      LIBS="$GLIB_LIBS $LIBS"
       +      rm -f conf.glibtest
       +      if test "$cross_compiling" = yes; then
       +  echo $ac_n "cross compiling; assumed OK... $ac_c"
        else
          cat > conftest.$ac_ext <<EOF
       -#line 1738 "configure"
       +#line 1700 "configure"
        #include "confdefs.h"
       -find_stack_direction ()
       +
       +#include <glib.h>
       +#include <stdio.h>
       +#include <stdlib.h>
       +
       +int 
       +main ()
        {
       -  static char *addr = 0;
       -  auto char dummy;
       -  if (addr == 0)
       +  int major, minor, micro;
       +  char *tmp_version;
       +
       +  system ("touch conf.glibtest");
       +
       +  /* HP/UX 9 (%@#!) writes to sscanf strings */
       +  tmp_version = g_strdup("$min_glib_version");
       +  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
       +     printf("%s, bad version string\n", "$min_glib_version");
       +     exit(1);
       +   }
       +
       +  if ((glib_major_version != $glib_config_major_version) ||
       +      (glib_minor_version != $glib_config_minor_version) ||
       +      (glib_micro_version != $glib_config_micro_version))
            {
       -      addr = &dummy;
       -      return find_stack_direction ();
       +      printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
       +             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
       +             glib_major_version, glib_minor_version, glib_micro_version);
       +      printf ("*** was found! If glib-config was correct, then it is best\n");
       +      printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
       +      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
       +      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
       +      printf("*** required on your system.\n");
       +      printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
       +      printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
       +      printf("*** before re-running configure\n");
       +    } 
       +  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
       +           (glib_minor_version != GLIB_MINOR_VERSION) ||
       +           (glib_micro_version != GLIB_MICRO_VERSION))
       +    {
       +      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
       +             GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
       +      printf("*** library (version %d.%d.%d)\n",
       +             glib_major_version, glib_minor_version, glib_micro_version);
            }
          else
       -    return (&dummy > addr) ? 1 : -1;
       -}
       -main ()
       -{
       -  exit (find_stack_direction() < 0);
       +    {
       +      if ((glib_major_version > major) ||
       +        ((glib_major_version == major) && (glib_minor_version > minor)) ||
       +        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
       +      {
       +        return 0;
       +       }
       +     else
       +      {
       +        printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
       +               glib_major_version, glib_minor_version, glib_micro_version);
       +        printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
       +               major, minor, micro);
       +        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
       +        printf("***\n");
       +        printf("*** If you have already installed a sufficiently new version, this error\n");
       +        printf("*** probably means that the wrong copy of the glib-config shell script is\n");
       +        printf("*** being found. The easiest way to fix this is to remove the old version\n");
       +        printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
       +        printf("*** correct copy of glib-config. (In this case, you will have to\n");
       +        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
       +        printf("*** so that the correct libraries are found at run-time))\n");
       +      }
       +    }
       +  return 1;
        }
       +
        EOF
       -if { (eval echo configure:1757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       +if { (eval echo configure:1776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
        then
       -  ac_cv_c_stack_direction=1
       +  :
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -fr conftest*
       -  ac_cv_c_stack_direction=-1
       +  no_glib=yes
        fi
        rm -fr conftest*
        fi
        
       -fi
       +       CFLAGS="$ac_save_CFLAGS"
       +       LIBS="$ac_save_LIBS"
       +     fi
       +  fi
       +  if test "x$no_glib" = x ; then
       +     echo "$ac_t""yes" 1>&6
       +     :     
       +  else
       +     echo "$ac_t""no" 1>&6
       +     if test "$GLIB_CONFIG" = "no" ; then
       +       echo "*** The glib-config script installed by GLIB could not be found"
       +       echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
       +       echo "*** your path, or set the GLIB_CONFIG environment variable to the"
       +       echo "*** full path to glib-config."
       +     else
       +       if test -f conf.glibtest ; then
       +        :
       +       else
       +          echo "*** Could not run GLIB test program, checking why..."
       +          CFLAGS="$CFLAGS $GLIB_CFLAGS"
       +          LIBS="$LIBS $GLIB_LIBS"
       +          cat > conftest.$ac_ext <<EOF
       +#line 1810 "configure"
       +#include "confdefs.h"
        
       -echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
       -cat >> confdefs.h <<EOF
       -#define STACK_DIRECTION $ac_cv_c_stack_direction
       -EOF
       +#include <glib.h>
       +#include <stdio.h>
        
       +int main() {
       + return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); 
       +; return 0; }
       +EOF
       +if { (eval echo configure:1820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +   echo "*** The test program compiled, but did not run. This usually means"
       +          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
       +          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
       +          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
       +          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
       +          echo "*** is required on your system"
       +          echo "***"
       +          echo "*** If you have an old version installed, it is best to remove it, although"
       +          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
       +          echo "***"
       +          echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
       +          echo "*** came with the system with the command"
       +          echo "***"
       +          echo "***    rpm --erase --nodeps gtk gtk-devel" 
       +else
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
       +  rm -rf conftest*
       +   echo "*** The test program failed to compile or link. See the file config.log for the"
       +          echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
       +          echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
       +          echo "*** may want to edit the glib-config script: $GLIB_CONFIG" 
        fi
       +rm -f conftest*
       +          CFLAGS="$ac_save_CFLAGS"
       +          LIBS="$ac_save_LIBS"
       +       fi
       +     fi
       +     GLIB_CFLAGS=""
       +     GLIB_LIBS=""
       +     { echo "configure: error: Cannot find glib - aborting" 1>&2; exit 1; }
       +  fi
       +  
       +  
       +  rm -f conf.glibtest
        
       -for ac_hdr in unistd.h
       -do
       -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
       -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
       -echo "configure:1782: checking for $ac_hdr" >&5
       -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
       +
       +      if test "$CURSES_CLIENT" = "yes" ; then
       +      echo $ac_n "checking for newterm in -lncurses""... $ac_c" 1>&6
       +echo "configure:1861: checking for newterm in -lncurses" >&5
       +ac_lib_var=`echo ncurses'_'newterm | sed 'y%./+-%__p_%'`
       +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  cat > conftest.$ac_ext <<EOF
       -#line 1787 "configure"
       +  ac_save_LIBS="$LIBS"
       +LIBS="-lncurses  $LIBS"
       +cat > conftest.$ac_ext <<EOF
       +#line 1869 "configure"
        #include "confdefs.h"
       -#include <$ac_hdr>
       +/* Override any gcc2 internal prototype to avoid an error.  */
       +/* We use char because int might match the return type of a gcc2
       +    builtin and then its argument prototype would still apply.  */
       +char newterm();
       +
       +int main() {
       +newterm()
       +; return 0; }
        EOF
       -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:1792: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
       -if test -z "$ac_err"; then
       +if { (eval echo configure:1880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
       -  eval "ac_cv_header_$ac_safe=yes"
       +  eval "ac_cv_lib_$ac_lib_var=yes"
        else
       -  echo "$ac_err" >&5
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_header_$ac_safe=no"
       +  eval "ac_cv_lib_$ac_lib_var=no"
        fi
        rm -f conftest*
       +LIBS="$ac_save_LIBS"
       +
        fi
       -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
       +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
          echo "$ac_t""yes" 1>&6
       -    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
       +    ac_tr_lib=HAVE_LIB`echo ncurses | sed -e 's/[^a-zA-Z0-9_]/_/g' \
       +    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
          cat >> confdefs.h <<EOF
       -#define $ac_tr_hdr 1
       +#define $ac_tr_lib 1
        EOF
       - 
       +
       +  LIBS="-lncurses $LIBS"
       +
        else
          echo "$ac_t""no" 1>&6
        fi
       -done
        
       -for ac_func in getpagesize
       -do
       -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       -echo "configure:1821: checking for $ac_func" >&5
       -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
       +      if test "$ac_cv_lib_ncurses_newterm" = "no" ; then
       +         echo $ac_n "checking for newterm in -lcurses""... $ac_c" 1>&6
       +echo "configure:1909: checking for newterm in -lcurses" >&5
       +ac_lib_var=`echo curses'_'newterm | sed 'y%./+-%__p_%'`
       +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  cat > conftest.$ac_ext <<EOF
       -#line 1826 "configure"
       +  ac_save_LIBS="$LIBS"
       +LIBS="-lcurses  $LIBS"
       +cat > conftest.$ac_ext <<EOF
       +#line 1917 "configure"
        #include "confdefs.h"
       -/* System header to define __stub macros and hopefully few prototypes,
       -    which can conflict with char $ac_func(); below.  */
       -#include <assert.h>
        /* Override any gcc2 internal prototype to avoid an error.  */
        /* We use char because int might match the return type of a gcc2
            builtin and then its argument prototype would still apply.  */
       -char $ac_func();
       +char newterm();
        
        int main() {
       -
       -/* The GNU C library defines this for functions which it implements
       -    to always fail with ENOSYS.  Some functions are actually named
       -    something starting with __ and the normal name is an alias.  */
       -#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
       -choke me
       -#else
       -$ac_func();
       -#endif
       -
       +newterm()
        ; return 0; }
        EOF
       -if { (eval echo configure:1849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:1928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=yes"
       +  eval "ac_cv_lib_$ac_lib_var=yes"
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=no"
       +  eval "ac_cv_lib_$ac_lib_var=no"
        fi
        rm -f conftest*
       -fi
       +LIBS="$ac_save_LIBS"
        
       -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
       +fi
       +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
          echo "$ac_t""yes" 1>&6
       -    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
       +    ac_tr_lib=HAVE_LIB`echo curses | sed -e 's/[^a-zA-Z0-9_]/_/g' \
       +    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
          cat >> confdefs.h <<EOF
       -#define $ac_tr_func 1
       -EOF
       - 
       -else
       -  echo "$ac_t""no" 1>&6
       -fi
       -done
       -
       -echo $ac_n "checking for working mmap""... $ac_c" 1>&6
       -echo "configure:1874: checking for working mmap" >&5
       -if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  if test "$cross_compiling" = yes; then
       -  ac_cv_func_mmap_fixed_mapped=no
       -else
       -  cat > conftest.$ac_ext <<EOF
       -#line 1882 "configure"
       -#include "confdefs.h"
       -
       -/* Thanks to Mike Haertel and Jim Avera for this test.
       -   Here is a matrix of mmap possibilities:
       -        mmap private not fixed
       -        mmap private fixed at somewhere currently unmapped
       -        mmap private fixed at somewhere already mapped
       -        mmap shared not fixed
       -        mmap shared fixed at somewhere currently unmapped
       -        mmap shared fixed at somewhere already mapped
       -   For private mappings, we should verify that changes cannot be read()
       -   back from the file, nor mmap's back from the file at a different
       -   address.  (There have been systems where private was not correctly
       -   implemented like the infamous i386 svr4.0, and systems where the
       -   VM page cache was not coherent with the filesystem buffer cache
       -   like early versions of FreeBSD and possibly contemporary NetBSD.)
       -   For shared mappings, we should conversely verify that changes get
       -   propogated back to all the places they're supposed to be.
       -
       -   Grep wants private fixed already mapped.
       -   The main things grep needs to know about mmap are:
       -   * does it exist and is it safe to write into the mmap'd area
       -   * how to use it (BSD variants)  */
       -#include <sys/types.h>
       -#include <fcntl.h>
       -#include <sys/mman.h>
       -
       -/* This mess was copied from the GNU getpagesize.h.  */
       -#ifndef HAVE_GETPAGESIZE
       -# ifdef HAVE_UNISTD_H
       -#  include <unistd.h>
       -# endif
       -
       -/* Assume that all systems that can run configure have sys/param.h.  */
       -# ifndef HAVE_SYS_PARAM_H
       -#  define HAVE_SYS_PARAM_H 1
       -# endif
       -
       -# ifdef _SC_PAGESIZE
       -#  define getpagesize() sysconf(_SC_PAGESIZE)
       -# else /* no _SC_PAGESIZE */
       -#  ifdef HAVE_SYS_PARAM_H
       -#   include <sys/param.h>
       -#   ifdef EXEC_PAGESIZE
       -#    define getpagesize() EXEC_PAGESIZE
       -#   else /* no EXEC_PAGESIZE */
       -#    ifdef NBPG
       -#     define getpagesize() NBPG * CLSIZE
       -#     ifndef CLSIZE
       -#      define CLSIZE 1
       -#     endif /* no CLSIZE */
       -#    else /* no NBPG */
       -#     ifdef NBPC
       -#      define getpagesize() NBPC
       -#     else /* no NBPC */
       -#      ifdef PAGESIZE
       -#       define getpagesize() PAGESIZE
       -#      endif /* PAGESIZE */
       -#     endif /* no NBPC */
       -#    endif /* no NBPG */
       -#   endif /* no EXEC_PAGESIZE */
       -#  else /* no HAVE_SYS_PARAM_H */
       -#   define getpagesize() 8192        /* punt totally */
       -#  endif /* no HAVE_SYS_PARAM_H */
       -# endif /* no _SC_PAGESIZE */
       -
       -#endif /* no HAVE_GETPAGESIZE */
       -
       -#ifdef __cplusplus
       -extern "C" { void *malloc(unsigned); }
       -#else
       -char *malloc();
       -#endif
       -
       -int
       -main()
       -{
       -        char *data, *data2, *data3;
       -        int i, pagesize;
       -        int fd;
       -
       -        pagesize = getpagesize();
       -
       -        /*
       -         * First, make a file with some known garbage in it.
       -         */
       -        data = malloc(pagesize);
       -        if (!data)
       -                exit(1);
       -        for (i = 0; i < pagesize; ++i)
       -                *(data + i) = rand();
       -        umask(0);
       -        fd = creat("conftestmmap", 0600);
       -        if (fd < 0)
       -                exit(1);
       -        if (write(fd, data, pagesize) != pagesize)
       -                exit(1);
       -        close(fd);
       -
       -        /*
       -         * Next, try to mmap the file at a fixed address which
       -         * already has something else allocated at it.  If we can,
       -         * also make sure that we see the same garbage.
       -         */
       -        fd = open("conftestmmap", O_RDWR);
       -        if (fd < 0)
       -                exit(1);
       -        data2 = malloc(2 * pagesize);
       -        if (!data2)
       -                exit(1);
       -        data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
       -        if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
       -            MAP_PRIVATE | MAP_FIXED, fd, 0L))
       -                exit(1);
       -        for (i = 0; i < pagesize; ++i)
       -                if (*(data + i) != *(data2 + i))
       -                        exit(1);
       -
       -        /*
       -         * Finally, make sure that changes to the mapped area
       -         * do not percolate back to the file as seen by read().
       -         * (This is a bug on some variants of i386 svr4.0.)
       -         */
       -        for (i = 0; i < pagesize; ++i)
       -                *(data2 + i) = *(data2 + i) + 1;
       -        data3 = malloc(pagesize);
       -        if (!data3)
       -                exit(1);
       -        if (read(fd, data3, pagesize) != pagesize)
       -                exit(1);
       -        for (i = 0; i < pagesize; ++i)
       -                if (*(data + i) != *(data3 + i))
       -                        exit(1);
       -        close(fd);
       -        unlink("conftestmmap");
       -        exit(0);
       -}
       -
       -EOF
       -if { (eval echo configure:2022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       -then
       -  ac_cv_func_mmap_fixed_mapped=yes
       -else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -fr conftest*
       -  ac_cv_func_mmap_fixed_mapped=no
       -fi
       -rm -fr conftest*
       -fi
       -
       -fi
       -
       -echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
       -if test $ac_cv_func_mmap_fixed_mapped = yes; then
       -  cat >> confdefs.h <<\EOF
       -#define HAVE_MMAP 1
       +#define $ac_tr_lib 1
        EOF
        
       -fi
       +  LIBS="-lcurses $LIBS"
        
       -                              
       -   for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h string.h \
       -unistd.h sys/param.h
       -do
       -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
       -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
       -echo "configure:2050: checking for $ac_hdr" >&5
       -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  cat > conftest.$ac_ext <<EOF
       -#line 2055 "configure"
       -#include "confdefs.h"
       -#include <$ac_hdr>
       -EOF
       -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:2060: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
       -if test -z "$ac_err"; then
       -  rm -rf conftest*
       -  eval "ac_cv_header_$ac_safe=yes"
       -else
       -  echo "$ac_err" >&5
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  eval "ac_cv_header_$ac_safe=no"
       -fi
       -rm -f conftest*
       -fi
       -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       -    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
       -  cat >> confdefs.h <<EOF
       -#define $ac_tr_hdr 1
       -EOF
       - 
        else
          echo "$ac_t""no" 1>&6
        fi
       -done
        
       -   for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \
       -strdup __argz_count __argz_stringify __argz_next
       -do
       -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       -echo "configure:2090: checking for $ac_func" >&5
       -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
       +         if test "$ac_cv_lib_curses_newterm" = "no" ; then
       +            echo $ac_n "checking for newterm in -lcur_colr""... $ac_c" 1>&6
       +echo "configure:1957: checking for newterm in -lcur_colr" >&5
       +ac_lib_var=`echo cur_colr'_'newterm | sed 'y%./+-%__p_%'`
       +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  cat > conftest.$ac_ext <<EOF
       -#line 2095 "configure"
       +  ac_save_LIBS="$LIBS"
       +LIBS="-lcur_colr  $LIBS"
       +cat > conftest.$ac_ext <<EOF
       +#line 1965 "configure"
        #include "confdefs.h"
       -/* System header to define __stub macros and hopefully few prototypes,
       -    which can conflict with char $ac_func(); below.  */
       -#include <assert.h>
        /* Override any gcc2 internal prototype to avoid an error.  */
        /* We use char because int might match the return type of a gcc2
            builtin and then its argument prototype would still apply.  */
       -char $ac_func();
       +char newterm();
        
        int main() {
       -
       -/* The GNU C library defines this for functions which it implements
       -    to always fail with ENOSYS.  Some functions are actually named
       -    something starting with __ and the normal name is an alias.  */
       -#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
       -choke me
       -#else
       -$ac_func();
       -#endif
       -
       +newterm()
        ; return 0; }
        EOF
       -if { (eval echo configure:2118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:1976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=yes"
       +  eval "ac_cv_lib_$ac_lib_var=yes"
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=no"
       +  eval "ac_cv_lib_$ac_lib_var=no"
        fi
        rm -f conftest*
       -fi
       +LIBS="$ac_save_LIBS"
        
       -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
       +fi
       +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
          echo "$ac_t""yes" 1>&6
       -    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
       +    ac_tr_lib=HAVE_LIB`echo cur_colr | sed -e 's/[^a-zA-Z0-9_]/_/g' \
       +    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
          cat >> confdefs.h <<EOF
       -#define $ac_tr_func 1
       +#define $ac_tr_lib 1
        EOF
       - 
       -else
       -  echo "$ac_t""no" 1>&6
       -fi
       -done
       -
       -
       -   if test "${ac_cv_func_stpcpy+set}" != "set"; then
       -     for ac_func in stpcpy
       -do
       -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       -echo "configure:2147: checking for $ac_func" >&5
       -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  cat > conftest.$ac_ext <<EOF
       -#line 2152 "configure"
       -#include "confdefs.h"
       -/* System header to define __stub macros and hopefully few prototypes,
       -    which can conflict with char $ac_func(); below.  */
       -#include <assert.h>
       -/* Override any gcc2 internal prototype to avoid an error.  */
       -/* We use char because int might match the return type of a gcc2
       -    builtin and then its argument prototype would still apply.  */
       -char $ac_func();
       -
       -int main() {
       -
       -/* The GNU C library defines this for functions which it implements
       -    to always fail with ENOSYS.  Some functions are actually named
       -    something starting with __ and the normal name is an alias.  */
       -#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
       -choke me
       -#else
       -$ac_func();
       -#endif
        
       -; return 0; }
       -EOF
       -if { (eval echo configure:2175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       -  rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=yes"
       -else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=no"
       -fi
       -rm -f conftest*
       -fi
       +  LIBS="-lcur_colr $LIBS"
        
       -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       -    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
       -  cat >> confdefs.h <<EOF
       -#define $ac_tr_func 1
       -EOF
       - 
        else
          echo "$ac_t""no" 1>&6
        fi
       -done
       -
       -   fi
       -   if test "${ac_cv_func_stpcpy}" = "yes"; then
       -     cat >> confdefs.h <<\EOF
       -#define HAVE_STPCPY 1
       -EOF
        
       +            if test "$ac_cv_lib_cur_colr_newterm" = "no" ; then
       +               echo "configure: warning: Cannot find any curses-type library" 1>&2
       +               CURSES_CLIENT="no"
       +            fi
       +         fi
       +      fi
           fi
        
       -   if test $ac_cv_header_locale_h = yes; then
       -    echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
       -echo "configure:2209: checking for LC_MESSAGES" >&5
       -if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  cat > conftest.$ac_ext <<EOF
       -#line 2214 "configure"
       -#include "confdefs.h"
       -#include <locale.h>
       -int main() {
       -return LC_MESSAGES
       -; return 0; }
       -EOF
       -if { (eval echo configure:2221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       -  rm -rf conftest*
       -  am_cv_val_LC_MESSAGES=yes
       +   if test "$GUI_CLIENT" = "yes" ; then
       +            # Check whether --with-gtk-prefix or --without-gtk-prefix was given.
       +if test "${with_gtk_prefix+set}" = set; then
       +  withval="$with_gtk_prefix"
       +  gtk_config_prefix="$withval"
        else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  am_cv_val_LC_MESSAGES=no
       -fi
       -rm -f conftest*
       +  gtk_config_prefix=""
        fi
        
       -echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
       -    if test $am_cv_val_LC_MESSAGES = yes; then
       -      cat >> confdefs.h <<\EOF
       -#define HAVE_LC_MESSAGES 1
       -EOF
       -
       -    fi
       -  fi
       -   echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
       -echo "configure:2242: checking whether NLS is requested" >&5
       -        # Check whether --enable-nls or --disable-nls was given.
       -if test "${enable_nls+set}" = set; then
       -  enableval="$enable_nls"
       -  USE_NLS=$enableval
       +# Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given.
       +if test "${with_gtk_exec_prefix+set}" = set; then
       +  withval="$with_gtk_exec_prefix"
       +  gtk_config_exec_prefix="$withval"
        else
       -  USE_NLS=yes
       +  gtk_config_exec_prefix=""
        fi
        
       -    echo "$ac_t""$USE_NLS" 1>&6
       -    
       -
       -    USE_INCLUDED_LIBINTL=no
       -
       -        if test "$USE_NLS" = "yes"; then
       -      cat >> confdefs.h <<\EOF
       -#define ENABLE_NLS 1
       -EOF
       -
       -      echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
       -echo "configure:2262: checking whether included gettext is requested" >&5
       -      # Check whether --with-included-gettext or --without-included-gettext was given.
       -if test "${with_included_gettext+set}" = set; then
       -  withval="$with_included_gettext"
       -  nls_cv_force_use_gnu_gettext=$withval
       +# Check whether --enable-gtktest or --disable-gtktest was given.
       +if test "${enable_gtktest+set}" = set; then
       +  enableval="$enable_gtktest"
       +  :
        else
       -  nls_cv_force_use_gnu_gettext=no
       +  enable_gtktest=yes
        fi
        
       -      echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6
        
       -      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
       -      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
       -                                        nls_cv_header_intl=
       -        nls_cv_header_libgt=
       -        CATOBJEXT=NONE
       +  for module in . 
       +  do
       +      case "$module" in
       +         gthread) 
       +             gtk_config_args="$gtk_config_args gthread"
       +         ;;
       +      esac
       +  done
        
       -        ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
       -echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
       -echo "configure:2281: checking for libintl.h" >&5
       -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
       +  if test x$gtk_config_exec_prefix != x ; then
       +     gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
       +     if test x${GTK_CONFIG+set} != xset ; then
       +        GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
       +     fi
       +  fi
       +  if test x$gtk_config_prefix != x ; then
       +     gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
       +     if test x${GTK_CONFIG+set} != xset ; then
       +        GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
       +     fi
       +  fi
       +
       +  # Extract the first word of "gtk-config", so it can be a program name with args.
       +set dummy gtk-config; ac_word=$2
       +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       +echo "configure:2062: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  cat > conftest.$ac_ext <<EOF
       -#line 2286 "configure"
       -#include "confdefs.h"
       -#include <libintl.h>
       -EOF
       -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:2291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
       -if test -z "$ac_err"; then
       -  rm -rf conftest*
       -  eval "ac_cv_header_$ac_safe=yes"
       -else
       -  echo "$ac_err" >&5
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  eval "ac_cv_header_$ac_safe=no"
       +  case "$GTK_CONFIG" in
       +  /*)
       +  ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a path.
       +  ;;
       +  ?:/*)                         
       +  ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a dos path.
       +  ;;
       +  *)
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       +  ac_dummy="$PATH"
       +  for ac_dir in $ac_dummy; do 
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      ac_cv_path_GTK_CONFIG="$ac_dir/$ac_word"
       +      break
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
       +  test -z "$ac_cv_path_GTK_CONFIG" && ac_cv_path_GTK_CONFIG="no"
       +  ;;
       +esac
        fi
       -rm -f conftest*
       +GTK_CONFIG="$ac_cv_path_GTK_CONFIG"
       +if test -n "$GTK_CONFIG"; then
       +  echo "$ac_t""$GTK_CONFIG" 1>&6
       +else
       +  echo "$ac_t""no" 1>&6
        fi
       -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       -  echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
       -echo "configure:2308: checking for gettext in libc" >&5
       -if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       +
       +  min_gtk_version=1.2.0
       +  echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6
       +echo "configure:2097: checking for GTK - version >= $min_gtk_version" >&5
       +  no_gtk=""
       +  if test "$GTK_CONFIG" = "no" ; then
       +    no_gtk=yes
       +  else
       +    GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
       +    GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
       +    gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
       +           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
       +    gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
       +           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
       +    gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
       +           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
       +    if test "x$enable_gtktest" = "xyes" ; then
       +      ac_save_CFLAGS="$CFLAGS"
       +      ac_save_LIBS="$LIBS"
       +      CFLAGS="$CFLAGS $GTK_CFLAGS"
       +      LIBS="$GTK_LIBS $LIBS"
       +      rm -f conf.gtktest
       +      if test "$cross_compiling" = yes; then
       +  echo $ac_n "cross compiling; assumed OK... $ac_c"
        else
          cat > conftest.$ac_ext <<EOF
       -#line 2313 "configure"
       +#line 2120 "configure"
        #include "confdefs.h"
       -#include <libintl.h>
       -int main() {
       -return (int) gettext ("")
       -; return 0; }
       -EOF
       -if { (eval echo configure:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       -  rm -rf conftest*
       -  gt_cv_func_gettext_libc=yes
       -else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  gt_cv_func_gettext_libc=no
       -fi
       -rm -f conftest*
       -fi
        
       -echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
       +#include <gtk/gtk.h>
       +#include <stdio.h>
       +#include <stdlib.h>
        
       -           if test "$gt_cv_func_gettext_libc" != "yes"; then
       -             echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
       -echo "configure:2336: checking for bindtextdomain in -lintl" >&5
       -ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
       -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  ac_save_LIBS="$LIBS"
       -LIBS="-lintl  $LIBS"
       -cat > conftest.$ac_ext <<EOF
       -#line 2344 "configure"
       -#include "confdefs.h"
       -/* Override any gcc2 internal prototype to avoid an error.  */
       -/* We use char because int might match the return type of a gcc2
       -    builtin and then its argument prototype would still apply.  */
       -char bindtextdomain();
       +int 
       +main ()
       +{
       +  int major, minor, micro;
       +  char *tmp_version;
       +
       +  system ("touch conf.gtktest");
       +
       +  /* HP/UX 9 (%@#!) writes to sscanf strings */
       +  tmp_version = g_strdup("$min_gtk_version");
       +  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
       +     printf("%s, bad version string\n", "$min_gtk_version");
       +     exit(1);
       +   }
       +
       +  if ((gtk_major_version != $gtk_config_major_version) ||
       +      (gtk_minor_version != $gtk_config_minor_version) ||
       +      (gtk_micro_version != $gtk_config_micro_version))
       +    {
       +      printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
       +             $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
       +             gtk_major_version, gtk_minor_version, gtk_micro_version);
       +      printf ("*** was found! If gtk-config was correct, then it is best\n");
       +      printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
       +      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
       +      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
       +      printf("*** required on your system.\n");
       +      printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
       +      printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
       +      printf("*** before re-running configure\n");
       +    } 
       +#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
       +  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
       +           (gtk_minor_version != GTK_MINOR_VERSION) ||
       +           (gtk_micro_version != GTK_MICRO_VERSION))
       +    {
       +      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
       +             GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
       +      printf("*** library (version %d.%d.%d)\n",
       +             gtk_major_version, gtk_minor_version, gtk_micro_version);
       +    }
       +#endif /* defined (GTK_MAJOR_VERSION) ... */
       +  else
       +    {
       +      if ((gtk_major_version > major) ||
       +        ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
       +        ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
       +      {
       +        return 0;
       +       }
       +     else
       +      {
       +        printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
       +               gtk_major_version, gtk_minor_version, gtk_micro_version);
       +        printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
       +               major, minor, micro);
       +        printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
       +        printf("***\n");
       +        printf("*** If you have already installed a sufficiently new version, this error\n");
       +        printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
       +        printf("*** being found. The easiest way to fix this is to remove the old version\n");
       +        printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
       +        printf("*** correct copy of gtk-config. (In this case, you will have to\n");
       +        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
       +        printf("*** so that the correct libraries are found at run-time))\n");
       +      }
       +    }
       +  return 1;
       +}
        
       -int main() {
       -bindtextdomain()
       -; return 0; }
        EOF
       -if { (eval echo configure:2355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       -  rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=yes"
       +if { (eval echo configure:2198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       +then
       +  :
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=no"
       +  rm -fr conftest*
       +  no_gtk=yes
        fi
       -rm -f conftest*
       -LIBS="$ac_save_LIBS"
       -
       +rm -fr conftest*
        fi
       -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       -  echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
       -echo "configure:2371: checking for gettext in libintl" >&5
       -if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
       -echo "configure:2376: checking for gettext in -lintl" >&5
       -ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
       -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  ac_save_LIBS="$LIBS"
       -LIBS="-lintl  $LIBS"
       -cat > conftest.$ac_ext <<EOF
       -#line 2384 "configure"
       +
       +       CFLAGS="$ac_save_CFLAGS"
       +       LIBS="$ac_save_LIBS"
       +     fi
       +  fi
       +  if test "x$no_gtk" = x ; then
       +     echo "$ac_t""yes" 1>&6
       +     gtk_found="yes"     
       +  else
       +     echo "$ac_t""no" 1>&6
       +     if test "$GTK_CONFIG" = "no" ; then
       +       echo "*** The gtk-config script installed by GTK could not be found"
       +       echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
       +       echo "*** your path, or set the GTK_CONFIG environment variable to the"
       +       echo "*** full path to gtk-config."
       +     else
       +       if test -f conf.gtktest ; then
       +        :
       +       else
       +          echo "*** Could not run GTK test program, checking why..."
       +          CFLAGS="$CFLAGS $GTK_CFLAGS"
       +          LIBS="$LIBS $GTK_LIBS"
       +          cat > conftest.$ac_ext <<EOF
       +#line 2232 "configure"
        #include "confdefs.h"
       -/* Override any gcc2 internal prototype to avoid an error.  */
       -/* We use char because int might match the return type of a gcc2
       -    builtin and then its argument prototype would still apply.  */
       -char gettext();
       +
       +#include <gtk/gtk.h>
       +#include <stdio.h>
        
        int main() {
       -gettext()
       + return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); 
        ; return 0; }
        EOF
       -if { (eval echo configure:2395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:2242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=yes"
       +   echo "*** The test program compiled, but did not run. This usually means"
       +          echo "*** that the run-time linker is not finding GTK or finding the wrong"
       +          echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
       +          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
       +          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
       +          echo "*** is required on your system"
       +          echo "***"
       +          echo "*** If you have an old version installed, it is best to remove it, although"
       +          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
       +          echo "***"
       +          echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
       +          echo "*** came with the system with the command"
       +          echo "***"
       +          echo "***    rpm --erase --nodeps gtk gtk-devel" 
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=no"
       +   echo "*** The test program failed to compile or link. See the file config.log for the"
       +          echo "*** exact error that occured. This usually means GTK was incorrectly installed"
       +          echo "*** or that you have moved GTK since it was installed. In the latter case, you"
       +          echo "*** may want to edit the gtk-config script: $GTK_CONFIG" 
        fi
        rm -f conftest*
       -LIBS="$ac_save_LIBS"
       +          CFLAGS="$ac_save_CFLAGS"
       +          LIBS="$ac_save_LIBS"
       +       fi
       +     fi
       +     GTK_CFLAGS=""
       +     GTK_LIBS=""
       +     gtk_found="no"
       +  fi
       +  
       +  
       +  rm -f conf.gtktest
        
       -fi
       -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
       +      if test "$gtk_found" = "no" ; then
       +         echo "configure: warning: Cannot find GTK+" 1>&2
       +         GUI_CLIENT="no"
       +      else
       +         echo $ac_n "checking for non-buggy GTK+ ( >= 1.2.10 )""... $ac_c" 1>&6
       +echo "configure:2285: checking for non-buggy GTK+ ( >= 1.2.10 )" >&5
       +                  if test "$gtk_config_major_version" -gt 1 ; then
       +            HAVE_FIXED_GTK="yes"
       +         elif test "$gtk_config_major_version" -eq 1 ; then
       +            if test "$gtk_config_minor_version" -gt 2 ; then
       +                              HAVE_FIXED_GTK="yes"
       +            elif test "$gtk_config_minor_version" -eq 2 -a \
       +                      "$gtk_config_micro_version" -ge 10 ; then
       +               HAVE_FIXED_GTK="yes"
       +            fi
       +         fi
       +         echo "$ac_t"""$HAVE_FIXED_GTK"" 1>&6
       +      fi
       +   fi
       +
       +      CFLAGS="$CFLAGS `glib-config --cflags`"
       +   LDFLAGS="$LDFLAGS `glib-config --libs`"
       +
       +      GUI_SERVER="no"
       +
       +      echo $ac_n "checking for socklen_t data type""... $ac_c" 1>&6
       +echo "configure:2306: checking for socklen_t data type" >&5
       +   cat > conftest.$ac_ext <<EOF
       +#line 2308 "configure"
       +#include "confdefs.h"
       +#include <sys/types.h>
       +                   #include <sys/socket.h>
       +int main() {
       +socklen_t val
       +; return 0; }
       +EOF
       +if { (eval echo configure:2316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
       +  rm -rf conftest*
          echo "$ac_t""yes" 1>&6
       -  gt_cv_func_gettext_libintl=yes
       +                   cat >> confdefs.h <<\EOF
       +#define HAVE_SOCKLEN_T 1
       +EOF
       +
        else
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
       +  rm -rf conftest*
          echo "$ac_t""no" 1>&6
       -gt_cv_func_gettext_libintl=no
        fi
       -
       +rm -f conftest*
        fi
        
       -echo "$ac_t""$gt_cv_func_gettext_libintl" 1>&6
       -else
       -  echo "$ac_t""no" 1>&6
       +ALL_LINGUAS="de pl pt_BR fr"
       +
       +# Make sure we can run config.sub.
       +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
       +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
        fi
        
       -           fi
       +echo $ac_n "checking host system type""... $ac_c" 1>&6
       +echo "configure:2340: checking host system type" >&5
        
       -           if test "$gt_cv_func_gettext_libc" = "yes" \
       -              || test "$gt_cv_func_gettext_libintl" = "yes"; then
       -              cat >> confdefs.h <<\EOF
       -#define HAVE_GETTEXT 1
       -EOF
       +host_alias=$host
       +case "$host_alias" in
       +NONE)
       +  case $nonopt in
       +  NONE)
       +    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
       +    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
       +    fi ;;
       +  *) host_alias=$nonopt ;;
       +  esac ;;
       +esac
        
       -              # Extract the first word of "msgfmt", so it can be a program name with args.
       -set dummy msgfmt; ac_word=$2
       +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
       +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
       +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
       +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
       +echo "$ac_t""$host" 1>&6
       +
       +# Extract the first word of "ranlib", so it can be a program name with args.
       +set dummy ranlib; ac_word=$2
        echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2434: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
       +echo "configure:2363: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  case "$MSGFMT" in
       -  /*)
       -  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       -  for ac_dir in $PATH; do
       +  if test -n "$RANLIB"; then
       +  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
       +else
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       +  ac_dummy="$PATH"
       +  for ac_dir in $ac_dummy; do
            test -z "$ac_dir" && ac_dir=.
            if test -f $ac_dir/$ac_word; then
       -      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
       -        ac_cv_path_MSGFMT="$ac_dir/$ac_word"
       -        break
       -      fi
       +      ac_cv_prog_RANLIB="ranlib"
       +      break
            fi
          done
          IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
       -  ;;
       -esac
       +  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
        fi
       -MSGFMT="$ac_cv_path_MSGFMT"
       -if test -n "$MSGFMT"; then
       -  echo "$ac_t""$MSGFMT" 1>&6
       +fi
       +RANLIB="$ac_cv_prog_RANLIB"
       +if test -n "$RANLIB"; then
       +  echo "$ac_t""$RANLIB" 1>&6
        else
          echo "$ac_t""no" 1>&6
        fi
       -              if test "$MSGFMT" != "no"; then
       -                for ac_func in dcgettext
       -do
       -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       -echo "configure:2468: checking for $ac_func" >&5
       -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
       +
       +echo $ac_n "checking for working const""... $ac_c" 1>&6
       +echo "configure:2391: checking for working const" >&5
       +if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 2473 "configure"
       +#line 2396 "configure"
        #include "confdefs.h"
       -/* System header to define __stub macros and hopefully few prototypes,
       -    which can conflict with char $ac_func(); below.  */
       -#include <assert.h>
       -/* Override any gcc2 internal prototype to avoid an error.  */
       -/* We use char because int might match the return type of a gcc2
       -    builtin and then its argument prototype would still apply.  */
       -char $ac_func();
        
        int main() {
        
       -/* The GNU C library defines this for functions which it implements
       -    to always fail with ENOSYS.  Some functions are actually named
       -    something starting with __ and the normal name is an alias.  */
       -#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
       -choke me
       -#else
       -$ac_func();
       -#endif
       +/* Ultrix mips cc rejects this.  */
       +typedef int charset[2]; const charset x;
       +/* SunOS 4.1.1 cc rejects this.  */
       +char const *const *ccp;
       +char **p;
       +/* NEC SVR4.0.2 mips cc rejects this.  */
       +struct point {int x, y;};
       +static struct point const zero = {0,0};
       +/* AIX XL C 1.02.0.0 rejects this.
       +   It does not let you subtract one const X* pointer from another in an arm
       +   of an if-expression whose if-part is not a constant expression */
       +const char *g = "string";
       +ccp = &g + (g ? g-g : 0);
       +/* HPUX 7.0 cc rejects these. */
       +++ccp;
       +p = (char**) ccp;
       +ccp = (char const *const *) p;
       +{ /* SCO 3.2v4 cc rejects this.  */
       +  char *t;
       +  char const *s = 0 ? (char *) 0 : (char const *) 0;
       +
       +  *t++ = 0;
       +}
       +{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
       +  int x[] = {25, 17};
       +  const int *foo = &x[0];
       +  ++foo;
       +}
       +{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
       +  typedef const int *iptr;
       +  iptr p = 0;
       +  ++p;
       +}
       +{ /* AIX XL C 1.02.0.0 rejects this saying
       +     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
       +  struct s { int j; const int *ap[3]; };
       +  struct s *b; b->j = 5;
       +}
       +{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
       +  const int foo = 10;
       +}
        
        ; return 0; }
        EOF
       -if { (eval echo configure:2496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:2445: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
          rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=yes"
       +  ac_cv_c_const=yes
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_func_$ac_func=no"
       +  ac_cv_c_const=no
        fi
        rm -f conftest*
        fi
        
       -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       -    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
       -  cat >> confdefs.h <<EOF
       -#define $ac_tr_func 1
       +echo "$ac_t""$ac_cv_c_const" 1>&6
       +if test $ac_cv_c_const = no; then
       +  cat >> confdefs.h <<\EOF
       +#define const 
        EOF
       - 
       -else
       -  echo "$ac_t""no" 1>&6
       -fi
       -done
        
       -                # Extract the first word of "gmsgfmt", so it can be a program name with args.
       -set dummy gmsgfmt; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2523: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  case "$GMSGFMT" in
       -  /*)
       -  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
       -  ;;
       -  ?:/*)                         
       -  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       -  ac_dummy="$PATH"
       -  for ac_dir in $ac_dummy; do 
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
       -      break
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
       -  ;;
       -esac
       -fi
       -GMSGFMT="$ac_cv_path_GMSGFMT"
       -if test -n "$GMSGFMT"; then
       -  echo "$ac_t""$GMSGFMT" 1>&6
       -else
       -  echo "$ac_t""no" 1>&6
        fi
        
       -                # Extract the first word of "xgettext", so it can be a program name with args.
       -set dummy xgettext; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2559: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
       +echo $ac_n "checking for inline""... $ac_c" 1>&6
       +echo "configure:2466: checking for inline" >&5
       +if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  case "$XGETTEXT" in
       -  /*)
       -  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       -  for ac_dir in $PATH; do
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
       -        ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
       -        break
       -      fi
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
       -  ;;
       -esac
       -fi
       -XGETTEXT="$ac_cv_path_XGETTEXT"
       -if test -n "$XGETTEXT"; then
       -  echo "$ac_t""$XGETTEXT" 1>&6
       -else
       -  echo "$ac_t""no" 1>&6
       -fi
       -
       -                cat > conftest.$ac_ext <<EOF
       -#line 2591 "configure"
       +  ac_cv_c_inline=no
       +for ac_kw in inline __inline__ __inline; do
       +  cat > conftest.$ac_ext <<EOF
       +#line 2473 "configure"
        #include "confdefs.h"
        
        int main() {
       -extern int _nl_msg_cat_cntr;
       -                               return _nl_msg_cat_cntr
       +} $ac_kw foo() {
        ; return 0; }
        EOF
       -if { (eval echo configure:2599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:2480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
          rm -rf conftest*
       -  CATOBJEXT=.gmo
       -                   DATADIRNAME=share
       +  ac_cv_c_inline=$ac_kw; break
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  CATOBJEXT=.mo
       -                   DATADIRNAME=lib
        fi
        rm -f conftest*
       -                INSTOBJEXT=.mo
       -              fi
       -            fi
       -        
       -else
       -  echo "$ac_t""no" 1>&6
       +done
       +
        fi
        
       +echo "$ac_t""$ac_cv_c_inline" 1>&6
       +case "$ac_cv_c_inline" in
       +  inline | yes) ;;
       +  no) cat >> confdefs.h <<\EOF
       +#define inline 
       +EOF
       + ;;
       +  *)  cat >> confdefs.h <<EOF
       +#define inline $ac_cv_c_inline
       +EOF
       + ;;
       +esac
        
       -        if test "$CATOBJEXT" = "NONE"; then
       -          echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
       -echo "configure:2622: checking whether catgets can be used" >&5
       -          # Check whether --with-catgets or --without-catgets was given.
       -if test "${with_catgets+set}" = set; then
       -  withval="$with_catgets"
       -  nls_cv_use_catgets=$withval
       +echo $ac_n "checking for off_t""... $ac_c" 1>&6
       +echo "configure:2506: checking for off_t" >&5
       +if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  cat > conftest.$ac_ext <<EOF
       +#line 2511 "configure"
       +#include "confdefs.h"
       +#include <sys/types.h>
       +#if STDC_HEADERS
       +#include <stdlib.h>
       +#include <stddef.h>
       +#endif
       +EOF
       +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
       +  egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
       +  rm -rf conftest*
       +  ac_cv_type_off_t=yes
        else
       -  nls_cv_use_catgets=no
       +  rm -rf conftest*
       +  ac_cv_type_off_t=no
        fi
       +rm -f conftest*
        
       -          echo "$ac_t""$nls_cv_use_catgets" 1>&6
       +fi
       +echo "$ac_t""$ac_cv_type_off_t" 1>&6
       +if test $ac_cv_type_off_t = no; then
       +  cat >> confdefs.h <<\EOF
       +#define off_t long
       +EOF
        
       -          if test "$nls_cv_use_catgets" = "yes"; then
       -                        echo $ac_n "checking for main in -li""... $ac_c" 1>&6
       -echo "configure:2635: checking for main in -li" >&5
       -ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'`
       -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
       +fi
       +
       +echo $ac_n "checking for size_t""... $ac_c" 1>&6
       +echo "configure:2539: checking for size_t" >&5
       +if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  ac_save_LIBS="$LIBS"
       -LIBS="-li  $LIBS"
       -cat > conftest.$ac_ext <<EOF
       -#line 2643 "configure"
       +  cat > conftest.$ac_ext <<EOF
       +#line 2544 "configure"
        #include "confdefs.h"
       -
       -int main() {
       -main()
       -; return 0; }
       +#include <sys/types.h>
       +#if STDC_HEADERS
       +#include <stdlib.h>
       +#include <stddef.h>
       +#endif
        EOF
       -if { (eval echo configure:2650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
       +  egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=yes"
       +  ac_cv_type_size_t=yes
        else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=no"
       +  ac_cv_type_size_t=no
        fi
        rm -f conftest*
       -LIBS="$ac_save_LIBS"
        
        fi
       -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       -    ac_tr_lib=HAVE_LIB`echo i | sed -e 's/[^a-zA-Z0-9_]/_/g' \
       -    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
       -  cat >> confdefs.h <<EOF
       -#define $ac_tr_lib 1
       +echo "$ac_t""$ac_cv_type_size_t" 1>&6
       +if test $ac_cv_type_size_t = no; then
       +  cat >> confdefs.h <<\EOF
       +#define size_t unsigned
        EOF
        
       -  LIBS="-li $LIBS"
       -
       -else
       -  echo "$ac_t""no" 1>&6
        fi
        
       -            echo $ac_n "checking for catgets""... $ac_c" 1>&6
       -echo "configure:2678: checking for catgets" >&5
       -if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
       +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
       +# for constant arguments.  Useless!
       +echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
       +echo "configure:2574: checking for working alloca.h" >&5
       +if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 2683 "configure"
       +#line 2579 "configure"
        #include "confdefs.h"
       -/* System header to define __stub macros and hopefully few prototypes,
       -    which can conflict with char catgets(); below.  */
       -#include <assert.h>
       -/* Override any gcc2 internal prototype to avoid an error.  */
       -/* We use char because int might match the return type of a gcc2
       -    builtin and then its argument prototype would still apply.  */
       -char catgets();
       -
       +#include <alloca.h>
        int main() {
       -
       -/* The GNU C library defines this for functions which it implements
       -    to always fail with ENOSYS.  Some functions are actually named
       -    something starting with __ and the normal name is an alias.  */
       -#if defined (__stub_catgets) || defined (__stub___catgets)
       -choke me
       -#else
       -catgets();
       -#endif
       -
       +char *p = alloca(2 * sizeof(int));
        ; return 0; }
        EOF
       -if { (eval echo configure:2706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:2586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
       -  eval "ac_cv_func_catgets=yes"
       +  ac_cv_header_alloca_h=yes
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_func_catgets=no"
       +  ac_cv_header_alloca_h=no
        fi
        rm -f conftest*
        fi
        
       -if eval "test \"`echo '$ac_cv_func_'catgets`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       +echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
       +if test $ac_cv_header_alloca_h = yes; then
          cat >> confdefs.h <<\EOF
       -#define HAVE_CATGETS 1
       +#define HAVE_ALLOCA_H 1
        EOF
        
       -               INTLOBJS="\$(CATOBJS)"
       -               # Extract the first word of "gencat", so it can be a program name with args.
       -set dummy gencat; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2728: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then
       +fi
       +
       +echo $ac_n "checking for alloca""... $ac_c" 1>&6
       +echo "configure:2607: checking for alloca" >&5
       +if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  case "$GENCAT" in
       -  /*)
       -  ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a path.
       -  ;;
       -  ?:/*)                         
       -  ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a dos path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       -  ac_dummy="$PATH"
       -  for ac_dir in $ac_dummy; do 
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      ac_cv_path_GENCAT="$ac_dir/$ac_word"
       -      break
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_GENCAT" && ac_cv_path_GENCAT="no"
       -  ;;
       -esac
       -fi
       -GENCAT="$ac_cv_path_GENCAT"
       -if test -n "$GENCAT"; then
       -  echo "$ac_t""$GENCAT" 1>&6
       +  cat > conftest.$ac_ext <<EOF
       +#line 2612 "configure"
       +#include "confdefs.h"
       +
       +#ifdef __GNUC__
       +# define alloca __builtin_alloca
       +#else
       +# ifdef _MSC_VER
       +#  include <malloc.h>
       +#  define alloca _alloca
       +# else
       +#  if HAVE_ALLOCA_H
       +#   include <alloca.h>
       +#  else
       +#   ifdef _AIX
       + #pragma alloca
       +#   else
       +#    ifndef alloca /* predefined by HP cc +Olibcalls */
       +char *alloca ();
       +#    endif
       +#   endif
       +#  endif
       +# endif
       +#endif
       +
       +int main() {
       +char *p = (char *) alloca(1);
       +; return 0; }
       +EOF
       +if { (eval echo configure:2640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +  ac_cv_func_alloca_works=yes
        else
       -  echo "$ac_t""no" 1>&6
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
       +  rm -rf conftest*
       +  ac_cv_func_alloca_works=no
        fi
       -               if test "$GENCAT" != "no"; then
       -                 # Extract the first word of "gmsgfmt", so it can be a program name with args.
       -set dummy gmsgfmt; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2764: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  case "$GMSGFMT" in
       -  /*)
       -  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
       -  ;;
       -  ?:/*)                         
       -  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       -  ac_dummy="$PATH"
       -  for ac_dir in $ac_dummy; do 
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
       -      break
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no"
       -  ;;
       -esac
       +rm -f conftest*
        fi
       -GMSGFMT="$ac_cv_path_GMSGFMT"
       -if test -n "$GMSGFMT"; then
       -  echo "$ac_t""$GMSGFMT" 1>&6
       -else
       -  echo "$ac_t""no" 1>&6
       +
       +echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
       +if test $ac_cv_func_alloca_works = yes; then
       +  cat >> confdefs.h <<\EOF
       +#define HAVE_ALLOCA 1
       +EOF
       +
        fi
        
       -                 if test "$GMSGFMT" = "no"; then
       -                   # Extract the first word of "msgfmt", so it can be a program name with args.
       -set dummy msgfmt; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2801: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
       +if test $ac_cv_func_alloca_works = no; then
       +  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
       +  # that cause trouble.  Some versions do not even contain alloca or
       +  # contain a buggy version.  If you still want to use their alloca,
       +  # use ar to extract alloca.o from them instead of compiling alloca.c.
       +  ALLOCA=alloca.${ac_objext}
       +  cat >> confdefs.h <<\EOF
       +#define C_ALLOCA 1
       +EOF
       +
       +
       +echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
       +echo "configure:2672: checking whether alloca needs Cray hooks" >&5
       +if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  case "$GMSGFMT" in
       -  /*)
       -  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       -  for ac_dir in $PATH; do
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
       -        ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
       -        break
       -      fi
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no"
       -  ;;
       -esac
       -fi
       -GMSGFMT="$ac_cv_path_GMSGFMT"
       -if test -n "$GMSGFMT"; then
       -  echo "$ac_t""$GMSGFMT" 1>&6
       -else
       -  echo "$ac_t""no" 1>&6
       -fi
       +  cat > conftest.$ac_ext <<EOF
       +#line 2677 "configure"
       +#include "confdefs.h"
       +#if defined(CRAY) && ! defined(CRAY2)
       +webecray
       +#else
       +wenotbecray
       +#endif
        
       -                 fi
       -                 # Extract the first word of "xgettext", so it can be a program name with args.
       -set dummy xgettext; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2836: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       +EOF
       +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
       +  egrep "webecray" >/dev/null 2>&1; then
       +  rm -rf conftest*
       +  ac_cv_os_cray=yes
        else
       -  case "$XGETTEXT" in
       -  /*)
       -  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       -  for ac_dir in $PATH; do
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
       -        ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
       -        break
       -      fi
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
       -  ;;
       -esac
       +  rm -rf conftest*
       +  ac_cv_os_cray=no
        fi
       -XGETTEXT="$ac_cv_path_XGETTEXT"
       -if test -n "$XGETTEXT"; then
       -  echo "$ac_t""$XGETTEXT" 1>&6
       -else
       -  echo "$ac_t""no" 1>&6
       +rm -f conftest*
       +
        fi
        
       -                 USE_INCLUDED_LIBINTL=yes
       -                 CATOBJEXT=.cat
       -                 INSTOBJEXT=.cat
       -                 DATADIRNAME=lib
       -                 INTLDEPS='$(top_builddir)/intl/libintl.a'
       -                 INTLLIBS=$INTLDEPS
       -                 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
       -                 nls_cv_header_intl=intl/libintl.h
       -                 nls_cv_header_libgt=intl/libgettext.h
       -               fi
       +echo "$ac_t""$ac_cv_os_cray" 1>&6
       +if test $ac_cv_os_cray = yes; then
       +for ac_func in _getb67 GETB67 getb67; do
       +  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       +echo "configure:2702: checking for $ac_func" >&5
       +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  echo "$ac_t""no" 1>&6
       -fi
       +  cat > conftest.$ac_ext <<EOF
       +#line 2707 "configure"
       +#include "confdefs.h"
       +/* System header to define __stub macros and hopefully few prototypes,
       +    which can conflict with char $ac_func(); below.  */
       +#include <assert.h>
       +/* Override any gcc2 internal prototype to avoid an error.  */
       +/* We use char because int might match the return type of a gcc2
       +    builtin and then its argument prototype would still apply.  */
       +char $ac_func();
        
       -          fi
       -        fi
       +int main() {
        
       -        if test "$CATOBJEXT" = "NONE"; then
       -                              nls_cv_use_gnu_gettext=yes
       -        fi
       -      fi
       +/* The GNU C library defines this for functions which it implements
       +    to always fail with ENOSYS.  Some functions are actually named
       +    something starting with __ and the normal name is an alias.  */
       +#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
       +choke me
       +#else
       +$ac_func();
       +#endif
        
       -      if test "$nls_cv_use_gnu_gettext" = "yes"; then
       -                INTLOBJS="\$(GETTOBJS)"
       -        # Extract the first word of "msgfmt", so it can be a program name with args.
       -set dummy msgfmt; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2894: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       +; return 0; }
       +EOF
       +if { (eval echo configure:2730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +  eval "ac_cv_func_$ac_func=yes"
        else
       -  case "$MSGFMT" in
       -  /*)
       -  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       -  for ac_dir in $PATH; do
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
       -        ac_cv_path_MSGFMT="$ac_dir/$ac_word"
       -        break
       -      fi
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
       -  ;;
       -esac
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
       +  rm -rf conftest*
       +  eval "ac_cv_func_$ac_func=no"
        fi
       -MSGFMT="$ac_cv_path_MSGFMT"
       -if test -n "$MSGFMT"; then
       -  echo "$ac_t""$MSGFMT" 1>&6
       +rm -f conftest*
       +fi
       +
       +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
       +  echo "$ac_t""yes" 1>&6
       +  cat >> confdefs.h <<EOF
       +#define CRAY_STACKSEG_END $ac_func
       +EOF
       +
       +  break
        else
          echo "$ac_t""no" 1>&6
        fi
        
       -        # Extract the first word of "gmsgfmt", so it can be a program name with args.
       -set dummy gmsgfmt; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2928: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
       +done
       +fi
       +
       +echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
       +echo "configure:2757: checking stack direction for C alloca" >&5
       +if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  case "$GMSGFMT" in
       -  /*)
       -  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
       -  ;;
       -  ?:/*)                         
       -  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       -  ac_dummy="$PATH"
       -  for ac_dir in $ac_dummy; do 
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
       -      break
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
       -  ;;
       -esac
       -fi
       -GMSGFMT="$ac_cv_path_GMSGFMT"
       -if test -n "$GMSGFMT"; then
       -  echo "$ac_t""$GMSGFMT" 1>&6
       +  if test "$cross_compiling" = yes; then
       +  ac_cv_c_stack_direction=0
        else
       -  echo "$ac_t""no" 1>&6
       -fi
       -
       -        # Extract the first word of "xgettext", so it can be a program name with args.
       -set dummy xgettext; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:2964: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       +  cat > conftest.$ac_ext <<EOF
       +#line 2765 "configure"
       +#include "confdefs.h"
       +find_stack_direction ()
       +{
       +  static char *addr = 0;
       +  auto char dummy;
       +  if (addr == 0)
       +    {
       +      addr = &dummy;
       +      return find_stack_direction ();
       +    }
       +  else
       +    return (&dummy > addr) ? 1 : -1;
       +}
       +main ()
       +{
       +  exit (find_stack_direction() < 0);
       +}
       +EOF
       +if { (eval echo configure:2784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       +then
       +  ac_cv_c_stack_direction=1
        else
       -  case "$XGETTEXT" in
       -  /*)
       -  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       -  for ac_dir in $PATH; do
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
       -        ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
       -        break
       -      fi
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
       -  ;;
       -esac
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
       +  rm -fr conftest*
       +  ac_cv_c_stack_direction=-1
        fi
       -XGETTEXT="$ac_cv_path_XGETTEXT"
       -if test -n "$XGETTEXT"; then
       -  echo "$ac_t""$XGETTEXT" 1>&6
       -else
       -  echo "$ac_t""no" 1>&6
       +rm -fr conftest*
        fi
        
       -        
       -        USE_INCLUDED_LIBINTL=yes
       -        CATOBJEXT=.gmo
       -        INSTOBJEXT=.mo
       -        DATADIRNAME=share
       -        INTLDEPS='$(top_builddir)/intl/libintl.a'
       -        INTLLIBS=$INTLDEPS
       -        LIBS=`echo $LIBS | sed -e 's/-lintl//'`
       -        nls_cv_header_intl=intl/libintl.h
       -        nls_cv_header_libgt=intl/libgettext.h
       -      fi
       -
       -            if test "$XGETTEXT" != ":"; then
       -                        if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
       -          : ;
       -        else
       -          echo "$ac_t""found xgettext program is not GNU xgettext; ignore it" 1>&6
       -          XGETTEXT=":"
       -        fi
       -      fi
       -
       -      # We need to process the po/ directory.
       -      POSUB=po
       -    else
       -      DATADIRNAME=share
       -      nls_cv_header_intl=intl/libintl.h
       -      nls_cv_header_libgt=intl/libgettext.h
       -    fi
       -    
       -    
       -
       -
       -    # If this is used in GNU gettext we have to set USE_NLS to `yes'
       -    # because some of the sources are only built for this goal.
       -    if test "$PACKAGE" = gettext; then
       -      USE_NLS=yes
       -      USE_INCLUDED_LIBINTL=yes
       -    fi
       -
       -                for lang in $ALL_LINGUAS; do
       -      GMOFILES="$GMOFILES $lang.gmo"
       -      POFILES="$POFILES $lang.po"
       -    done
       -
       -        
       -    
       -    
       -    
       -    
       -    
       -    
       -    
       -    
       -    
       -    
       -  
       -
       -   if test "x$CATOBJEXT" != "x"; then
       -     if test "x$ALL_LINGUAS" = "x"; then
       -       LINGUAS=
       -     else
       -       echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
       -echo "configure:3057: checking for catalogs to be installed" >&5
       -       NEW_LINGUAS=
       -       for lang in ${LINGUAS=$ALL_LINGUAS}; do
       -         case "$ALL_LINGUAS" in
       -          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
       -         esac
       -       done
       -       LINGUAS=$NEW_LINGUAS
       -       echo "$ac_t""$LINGUAS" 1>&6
       -     fi
       +fi
        
       -          if test -n "$LINGUAS"; then
       -       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
       -     fi
       -   fi
       +echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
       +cat >> confdefs.h <<EOF
       +#define STACK_DIRECTION $ac_cv_c_stack_direction
       +EOF
        
       -            if test $ac_cv_header_locale_h = yes; then
       -     INCLUDE_LOCALE_H="#include <locale.h>"
       -   else
       -     INCLUDE_LOCALE_H="\
       -/* The system does not provide the header <locale.h>.  Take care yourself.  */"
       -   fi
       -   
       +fi
        
       -            test -d intl || mkdir intl
       -   if test "$CATOBJEXT" = ".cat"; then
       -     ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
       -echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
       -echo "configure:3085: checking for linux/version.h" >&5
       +for ac_hdr in unistd.h
       +do
       +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
       +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
       +echo "configure:2809: checking for $ac_hdr" >&5
        if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 3090 "configure"
       +#line 2814 "configure"
        #include "confdefs.h"
       -#include <linux/version.h>
       +#include <$ac_hdr>
        EOF
        ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:3095: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       +{ (eval echo configure:2819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
        ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
        if test -z "$ac_err"; then
          rm -rf conftest*
       t@@ -3107,1187 +2831,1214 @@ rm -f conftest*
        fi
        if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
          echo "$ac_t""yes" 1>&6
       -  msgformat=linux
       +    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
       +  cat >> confdefs.h <<EOF
       +#define $ac_tr_hdr 1
       +EOF
       + 
        else
          echo "$ac_t""no" 1>&6
       -msgformat=xopen
       -fi
       -
       -
       -               sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
       -   fi
       -      sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
       -     $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
       -
       -            if test "$PACKAGE" = "gettext"; then
       -     GT_NO="#NO#"
       -     GT_YES=
       -   else
       -     GT_NO=
       -     GT_YES="#YES#"
       -   fi
       -   
       -   
       -
       -            MKINSTALLDIRS=
       -   if test -n "$ac_aux_dir"; then
       -     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
       -   fi
       -   if test -z "$MKINSTALLDIRS"; then
       -     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
       -   fi
       -   
       -
       -      l=
       -   
       -
       -         test -d po || mkdir po
       -   if test "x$srcdir" != "x."; then
       -     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
       -       posrcprefix="$srcdir/"
       -     else
       -       posrcprefix="../$srcdir/"
       -     fi
       -   else
       -     posrcprefix="../"
       -   fi
       -   rm -f po/POTFILES
       -   sed -e "/^#/d" -e "/^\$/d" -e "s,.*,        $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
       -        < $srcdir/po/POTFILES.in > po/POTFILES
       -  
       -if test "$gt_cv_func_gettext_libintl" = "yes"; then
       -    LIBS="-lintl  $LIBS"
       -fi
       -
       -HAVE_FIXED_GTK="no"
       -
       -localedir=${datadir}/locale
       -
       -
       -# Check whether --enable-gui-client or --disable-gui-client was given.
       -if test "${enable_gui_client+set}" = set; then
       -  enableval="$enable_gui_client"
       -   GUI_CLIENT="$enableval" 
       -else
       -   GUI_CLIENT="yes" 
        fi
       +done
        
       -
       -# Check whether --enable-curses-client or --disable-curses-client was given.
       -if test "${enable_curses_client+set}" = set; then
       -  enableval="$enable_curses_client"
       -   CURSES_CLIENT="$enableval" 
       -else
       -   CURSES_CLIENT="yes" 
       -fi
       -
       -
       -echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
       -echo "configure:3187: checking for Cygwin environment" >&5
       -if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
       +for ac_func in getpagesize
       +do
       +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       +echo "configure:2848: checking for $ac_func" >&5
       +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 3192 "configure"
       +#line 2853 "configure"
        #include "confdefs.h"
       +/* System header to define __stub macros and hopefully few prototypes,
       +    which can conflict with char $ac_func(); below.  */
       +#include <assert.h>
       +/* Override any gcc2 internal prototype to avoid an error.  */
       +/* We use char because int might match the return type of a gcc2
       +    builtin and then its argument prototype would still apply.  */
       +char $ac_func();
        
        int main() {
        
       -#ifndef __CYGWIN__
       -#define __CYGWIN__ __CYGWIN32__
       +/* The GNU C library defines this for functions which it implements
       +    to always fail with ENOSYS.  Some functions are actually named
       +    something starting with __ and the normal name is an alias.  */
       +#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
       +choke me
       +#else
       +$ac_func();
        #endif
       -return __CYGWIN__;
       +
        ; return 0; }
        EOF
       -if { (eval echo configure:3203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
       +if { (eval echo configure:2876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
       -  ac_cv_cygwin=yes
       +  eval "ac_cv_func_$ac_func=yes"
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  ac_cv_cygwin=no
       +  eval "ac_cv_func_$ac_func=no"
        fi
        rm -f conftest*
       -rm -f conftest*
       -fi
       -
       -echo "$ac_t""$ac_cv_cygwin" 1>&6
       -CYGWIN=
       -test "$ac_cv_cygwin" = yes && CYGWIN=yes
       -# Check whether --enable-nativewin32 or --disable-nativewin32 was given.
       -if test "${enable_nativewin32+set}" = set; then
       -  enableval="$enable_nativewin32"
       -   CYGWIN="$enableval" 
        fi
        
       -
       -if test "$CYGWIN" = "yes" ; then
       -   echo "$ac_t"""Configuring for native Win32 binary under Cygwin"" 1>&6
       -   cat >> confdefs.h <<\EOF
       -#define CYGWIN 1
       +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
       +  echo "$ac_t""yes" 1>&6
       +    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
       +  cat >> confdefs.h <<EOF
       +#define $ac_tr_func 1
        EOF
       -
       -
       -         
       -   CFLAGS="$CFLAGS -mwindows -fnative-struct -mno-cygwin"
       -   LIBS="$LIBS -lwsock32 -lcomctl32 -lmpr"
       -
       -      LDFLAGS="$LDFLAGS -lglib-1.3"
       -
       -      WNDRES="dopewars.res"
       -   
       -
       -         HAVE_FIXED_GTK="yes"
       -
       -      GUI_SERVER="yes"
       -else
       -   echo "$ac_t"""Configuring for Unix binary"" 1>&6
       -
       -      # Check whether --with-glib-prefix or --without-glib-prefix was given.
       -if test "${with_glib_prefix+set}" = set; then
       -  withval="$with_glib_prefix"
       -  glib_config_prefix="$withval"
       + 
        else
       -  glib_config_prefix=""
       +  echo "$ac_t""no" 1>&6
        fi
       +done
        
       -# Check whether --with-glib-exec-prefix or --without-glib-exec-prefix was given.
       -if test "${with_glib_exec_prefix+set}" = set; then
       -  withval="$with_glib_exec_prefix"
       -  glib_config_exec_prefix="$withval"
       +echo $ac_n "checking for working mmap""... $ac_c" 1>&6
       +echo "configure:2901: checking for working mmap" >&5
       +if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  glib_config_exec_prefix=""
       -fi
       -
       -# Check whether --enable-glibtest or --disable-glibtest was given.
       -if test "${enable_glibtest+set}" = set; then
       -  enableval="$enable_glibtest"
       -  :
       +  if test "$cross_compiling" = yes; then
       +  ac_cv_func_mmap_fixed_mapped=no
        else
       -  enable_glibtest=yes
       -fi
       +  cat > conftest.$ac_ext <<EOF
       +#line 2909 "configure"
       +#include "confdefs.h"
        
       +/* Thanks to Mike Haertel and Jim Avera for this test.
       +   Here is a matrix of mmap possibilities:
       +        mmap private not fixed
       +        mmap private fixed at somewhere currently unmapped
       +        mmap private fixed at somewhere already mapped
       +        mmap shared not fixed
       +        mmap shared fixed at somewhere currently unmapped
       +        mmap shared fixed at somewhere already mapped
       +   For private mappings, we should verify that changes cannot be read()
       +   back from the file, nor mmap's back from the file at a different
       +   address.  (There have been systems where private was not correctly
       +   implemented like the infamous i386 svr4.0, and systems where the
       +   VM page cache was not coherent with the filesystem buffer cache
       +   like early versions of FreeBSD and possibly contemporary NetBSD.)
       +   For shared mappings, we should conversely verify that changes get
       +   propogated back to all the places they're supposed to be.
        
       -  if test x$glib_config_exec_prefix != x ; then
       -     glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
       -     if test x${GLIB_CONFIG+set} != xset ; then
       -        GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
       -     fi
       -  fi
       -  if test x$glib_config_prefix != x ; then
       -     glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
       -     if test x${GLIB_CONFIG+set} != xset ; then
       -        GLIB_CONFIG=$glib_config_prefix/bin/glib-config
       -     fi
       -  fi
       +   Grep wants private fixed already mapped.
       +   The main things grep needs to know about mmap are:
       +   * does it exist and is it safe to write into the mmap'd area
       +   * how to use it (BSD variants)  */
       +#include <sys/types.h>
       +#include <fcntl.h>
       +#include <sys/mman.h>
        
       -  for module in . 
       -  do
       -      case "$module" in
       -         gmodule) 
       -             glib_config_args="$glib_config_args gmodule"
       -         ;;
       -         gthread) 
       -             glib_config_args="$glib_config_args gthread"
       -         ;;
       -      esac
       -  done
       +/* This mess was copied from the GNU getpagesize.h.  */
       +#ifndef HAVE_GETPAGESIZE
       +# ifdef HAVE_UNISTD_H
       +#  include <unistd.h>
       +# endif
        
       -  # Extract the first word of "glib-config", so it can be a program name with args.
       -set dummy glib-config; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:3301: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_GLIB_CONFIG'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  case "$GLIB_CONFIG" in
       -  /*)
       -  ac_cv_path_GLIB_CONFIG="$GLIB_CONFIG" # Let the user override the test with a path.
       -  ;;
       -  ?:/*)                         
       -  ac_cv_path_GLIB_CONFIG="$GLIB_CONFIG" # Let the user override the test with a dos path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       -  ac_dummy="$PATH"
       -  for ac_dir in $ac_dummy; do 
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      ac_cv_path_GLIB_CONFIG="$ac_dir/$ac_word"
       -      break
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_GLIB_CONFIG" && ac_cv_path_GLIB_CONFIG="no"
       -  ;;
       -esac
       -fi
       -GLIB_CONFIG="$ac_cv_path_GLIB_CONFIG"
       -if test -n "$GLIB_CONFIG"; then
       -  echo "$ac_t""$GLIB_CONFIG" 1>&6
       -else
       -  echo "$ac_t""no" 1>&6
       -fi
       +/* Assume that all systems that can run configure have sys/param.h.  */
       +# ifndef HAVE_SYS_PARAM_H
       +#  define HAVE_SYS_PARAM_H 1
       +# endif
        
       -  min_glib_version=1.2.0
       -  echo $ac_n "checking for GLIB - version >= $min_glib_version""... $ac_c" 1>&6
       -echo "configure:3336: checking for GLIB - version >= $min_glib_version" >&5
       -  no_glib=""
       -  if test "$GLIB_CONFIG" = "no" ; then
       -    no_glib=yes
       -  else
       -    GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
       -    GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
       -    glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
       -           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
       -    glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
       -           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
       -    glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
       -           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
       -    if test "x$enable_glibtest" = "xyes" ; then
       -      ac_save_CFLAGS="$CFLAGS"
       -      ac_save_LIBS="$LIBS"
       -      CFLAGS="$CFLAGS $GLIB_CFLAGS"
       -      LIBS="$GLIB_LIBS $LIBS"
       -      rm -f conf.glibtest
       -      if test "$cross_compiling" = yes; then
       -  echo $ac_n "cross compiling; assumed OK... $ac_c"
       -else
       -  cat > conftest.$ac_ext <<EOF
       -#line 3359 "configure"
       -#include "confdefs.h"
       +# ifdef _SC_PAGESIZE
       +#  define getpagesize() sysconf(_SC_PAGESIZE)
       +# else /* no _SC_PAGESIZE */
       +#  ifdef HAVE_SYS_PARAM_H
       +#   include <sys/param.h>
       +#   ifdef EXEC_PAGESIZE
       +#    define getpagesize() EXEC_PAGESIZE
       +#   else /* no EXEC_PAGESIZE */
       +#    ifdef NBPG
       +#     define getpagesize() NBPG * CLSIZE
       +#     ifndef CLSIZE
       +#      define CLSIZE 1
       +#     endif /* no CLSIZE */
       +#    else /* no NBPG */
       +#     ifdef NBPC
       +#      define getpagesize() NBPC
       +#     else /* no NBPC */
       +#      ifdef PAGESIZE
       +#       define getpagesize() PAGESIZE
       +#      endif /* PAGESIZE */
       +#     endif /* no NBPC */
       +#    endif /* no NBPG */
       +#   endif /* no EXEC_PAGESIZE */
       +#  else /* no HAVE_SYS_PARAM_H */
       +#   define getpagesize() 8192        /* punt totally */
       +#  endif /* no HAVE_SYS_PARAM_H */
       +# endif /* no _SC_PAGESIZE */
        
       -#include <glib.h>
       -#include <stdio.h>
       -#include <stdlib.h>
       +#endif /* no HAVE_GETPAGESIZE */
        
       -int 
       -main ()
       +#ifdef __cplusplus
       +extern "C" { void *malloc(unsigned); }
       +#else
       +char *malloc();
       +#endif
       +
       +int
       +main()
        {
       -  int major, minor, micro;
       -  char *tmp_version;
       +        char *data, *data2, *data3;
       +        int i, pagesize;
       +        int fd;
        
       -  system ("touch conf.glibtest");
       +        pagesize = getpagesize();
        
       -  /* HP/UX 9 (%@#!) writes to sscanf strings */
       -  tmp_version = g_strdup("$min_glib_version");
       -  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
       -     printf("%s, bad version string\n", "$min_glib_version");
       -     exit(1);
       -   }
       +        /*
       +         * First, make a file with some known garbage in it.
       +         */
       +        data = malloc(pagesize);
       +        if (!data)
       +                exit(1);
       +        for (i = 0; i < pagesize; ++i)
       +                *(data + i) = rand();
       +        umask(0);
       +        fd = creat("conftestmmap", 0600);
       +        if (fd < 0)
       +                exit(1);
       +        if (write(fd, data, pagesize) != pagesize)
       +                exit(1);
       +        close(fd);
       +
       +        /*
       +         * Next, try to mmap the file at a fixed address which
       +         * already has something else allocated at it.  If we can,
       +         * also make sure that we see the same garbage.
       +         */
       +        fd = open("conftestmmap", O_RDWR);
       +        if (fd < 0)
       +                exit(1);
       +        data2 = malloc(2 * pagesize);
       +        if (!data2)
       +                exit(1);
       +        data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
       +        if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
       +            MAP_PRIVATE | MAP_FIXED, fd, 0L))
       +                exit(1);
       +        for (i = 0; i < pagesize; ++i)
       +                if (*(data + i) != *(data2 + i))
       +                        exit(1);
        
       -  if ((glib_major_version != $glib_config_major_version) ||
       -      (glib_minor_version != $glib_config_minor_version) ||
       -      (glib_micro_version != $glib_config_micro_version))
       -    {
       -      printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
       -             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
       -             glib_major_version, glib_minor_version, glib_micro_version);
       -      printf ("*** was found! If glib-config was correct, then it is best\n");
       -      printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
       -      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
       -      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
       -      printf("*** required on your system.\n");
       -      printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
       -      printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
       -      printf("*** before re-running configure\n");
       -    } 
       -  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
       -           (glib_minor_version != GLIB_MINOR_VERSION) ||
       -           (glib_micro_version != GLIB_MICRO_VERSION))
       -    {
       -      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
       -             GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
       -      printf("*** library (version %d.%d.%d)\n",
       -             glib_major_version, glib_minor_version, glib_micro_version);
       -    }
       -  else
       -    {
       -      if ((glib_major_version > major) ||
       -        ((glib_major_version == major) && (glib_minor_version > minor)) ||
       -        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
       -      {
       -        return 0;
       -       }
       -     else
       -      {
       -        printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
       -               glib_major_version, glib_minor_version, glib_micro_version);
       -        printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
       -               major, minor, micro);
       -        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
       -        printf("***\n");
       -        printf("*** If you have already installed a sufficiently new version, this error\n");
       -        printf("*** probably means that the wrong copy of the glib-config shell script is\n");
       -        printf("*** being found. The easiest way to fix this is to remove the old version\n");
       -        printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
       -        printf("*** correct copy of glib-config. (In this case, you will have to\n");
       -        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
       -        printf("*** so that the correct libraries are found at run-time))\n");
       -      }
       -    }
       -  return 1;
       +        /*
       +         * Finally, make sure that changes to the mapped area
       +         * do not percolate back to the file as seen by read().
       +         * (This is a bug on some variants of i386 svr4.0.)
       +         */
       +        for (i = 0; i < pagesize; ++i)
       +                *(data2 + i) = *(data2 + i) + 1;
       +        data3 = malloc(pagesize);
       +        if (!data3)
       +                exit(1);
       +        if (read(fd, data3, pagesize) != pagesize)
       +                exit(1);
       +        for (i = 0; i < pagesize; ++i)
       +                if (*(data + i) != *(data3 + i))
       +                        exit(1);
       +        close(fd);
       +        unlink("conftestmmap");
       +        exit(0);
        }
        
        EOF
       -if { (eval echo configure:3435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       +if { (eval echo configure:3049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
        then
       -  :
       +  ac_cv_func_mmap_fixed_mapped=yes
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -fr conftest*
       -  no_glib=yes
       +  ac_cv_func_mmap_fixed_mapped=no
        fi
        rm -fr conftest*
        fi
        
       -       CFLAGS="$ac_save_CFLAGS"
       -       LIBS="$ac_save_LIBS"
       -     fi
       -  fi
       -  if test "x$no_glib" = x ; then
       -     echo "$ac_t""yes" 1>&6
       -     :     
       -  else
       -     echo "$ac_t""no" 1>&6
       -     if test "$GLIB_CONFIG" = "no" ; then
       -       echo "*** The glib-config script installed by GLIB could not be found"
       -       echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
       -       echo "*** your path, or set the GLIB_CONFIG environment variable to the"
       -       echo "*** full path to glib-config."
       -     else
       -       if test -f conf.glibtest ; then
       -        :
       -       else
       -          echo "*** Could not run GLIB test program, checking why..."
       -          CFLAGS="$CFLAGS $GLIB_CFLAGS"
       -          LIBS="$LIBS $GLIB_LIBS"
       -          cat > conftest.$ac_ext <<EOF
       -#line 3469 "configure"
       -#include "confdefs.h"
       -
       -#include <glib.h>
       -#include <stdio.h>
       +fi
        
       -int main() {
       - return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); 
       -; return 0; }
       +echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
       +if test $ac_cv_func_mmap_fixed_mapped = yes; then
       +  cat >> confdefs.h <<\EOF
       +#define HAVE_MMAP 1
        EOF
       -if { (eval echo configure:3479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       -  rm -rf conftest*
       -   echo "*** The test program compiled, but did not run. This usually means"
       -          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
       -          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
       -          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
       -          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
       -          echo "*** is required on your system"
       -          echo "***"
       -          echo "*** If you have an old version installed, it is best to remove it, although"
       -          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
       -          echo "***"
       -          echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
       -          echo "*** came with the system with the command"
       -          echo "***"
       -          echo "***    rpm --erase --nodeps gtk gtk-devel" 
       -else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -   echo "*** The test program failed to compile or link. See the file config.log for the"
       -          echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
       -          echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
       -          echo "*** may want to edit the glib-config script: $GLIB_CONFIG" 
       +
        fi
       -rm -f conftest*
       -          CFLAGS="$ac_save_CFLAGS"
       -          LIBS="$ac_save_LIBS"
       -       fi
       -     fi
       -     GLIB_CFLAGS=""
       -     GLIB_LIBS=""
       -     { echo "configure: error: Cannot find glib - aborting" 1>&2; exit 1; }
       -  fi
       -  
       -  
       -  rm -f conf.glibtest
        
        
       -      if test "$CURSES_CLIENT" = "yes" ; then
       -      echo $ac_n "checking for newterm in -lncurses""... $ac_c" 1>&6
       -echo "configure:3520: checking for newterm in -lncurses" >&5
       -ac_lib_var=`echo ncurses'_'newterm | sed 'y%./+-%__p_%'`
       -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
       +    echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6
       +echo "configure:3073: checking whether we are using the GNU C Library 2.1 or newer" >&5
       +if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  ac_save_LIBS="$LIBS"
       -LIBS="-lncurses  $LIBS"
       -cat > conftest.$ac_ext <<EOF
       -#line 3528 "configure"
       +  cat > conftest.$ac_ext <<EOF
       +#line 3078 "configure"
        #include "confdefs.h"
       -/* Override any gcc2 internal prototype to avoid an error.  */
       -/* We use char because int might match the return type of a gcc2
       -    builtin and then its argument prototype would still apply.  */
       -char newterm();
        
       -int main() {
       -newterm()
       -; return 0; }
       +#include <features.h>
       +#ifdef __GNU_LIBRARY__
       + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
       +  Lucky GNU user
       + #endif
       +#endif
       +        
        EOF
       -if { (eval echo configure:3539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
       +  egrep "Lucky GNU user" >/dev/null 2>&1; then
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=yes"
       +  ac_cv_gnu_library_2_1=yes
        else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=no"
       +  ac_cv_gnu_library_2_1=no
        fi
        rm -f conftest*
       -LIBS="$ac_save_LIBS"
        
       +      
       +    
        fi
       -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       -    ac_tr_lib=HAVE_LIB`echo ncurses | sed -e 's/[^a-zA-Z0-9_]/_/g' \
       -    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
       -  cat >> confdefs.h <<EOF
       -#define $ac_tr_lib 1
       -EOF
        
       -  LIBS="-lncurses $LIBS"
       -
       -else
       -  echo "$ac_t""no" 1>&6
       -fi
       +echo "$ac_t""$ac_cv_gnu_library_2_1" 1>&6
       +    
       +    GLIBC21="$ac_cv_gnu_library_2_1"
       +  
        
       -      if test "$ac_cv_lib_ncurses_newterm" = "no" ; then
       -         echo $ac_n "checking for newterm in -lcurses""... $ac_c" 1>&6
       -echo "configure:3568: checking for newterm in -lcurses" >&5
       -ac_lib_var=`echo curses'_'newterm | sed 'y%./+-%__p_%'`
       -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
       +                                    
       +   for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
       +stdlib.h string.h unistd.h sys/param.h
       +do
       +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
       +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
       +echo "configure:3114: checking for $ac_hdr" >&5
       +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  ac_save_LIBS="$LIBS"
       -LIBS="-lcurses  $LIBS"
       -cat > conftest.$ac_ext <<EOF
       -#line 3576 "configure"
       +  cat > conftest.$ac_ext <<EOF
       +#line 3119 "configure"
        #include "confdefs.h"
       -/* Override any gcc2 internal prototype to avoid an error.  */
       -/* We use char because int might match the return type of a gcc2
       -    builtin and then its argument prototype would still apply.  */
       -char newterm();
       -
       -int main() {
       -newterm()
       -; return 0; }
       +#include <$ac_hdr>
        EOF
       -if { (eval echo configure:3587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       +{ (eval echo configure:3124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
       +if test -z "$ac_err"; then
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=yes"
       +  eval "ac_cv_header_$ac_safe=yes"
        else
       +  echo "$ac_err" >&5
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=no"
       +  eval "ac_cv_header_$ac_safe=no"
        fi
        rm -f conftest*
       -LIBS="$ac_save_LIBS"
       -
        fi
       -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
       +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
          echo "$ac_t""yes" 1>&6
       -    ac_tr_lib=HAVE_LIB`echo curses | sed -e 's/[^a-zA-Z0-9_]/_/g' \
       -    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
       +    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
          cat >> confdefs.h <<EOF
       -#define $ac_tr_lib 1
       +#define $ac_tr_hdr 1
        EOF
       -
       -  LIBS="-lcurses $LIBS"
       -
       + 
        else
          echo "$ac_t""no" 1>&6
        fi
       +done
        
       -         if test "$ac_cv_lib_curses_newterm" = "no" ; then
       -            echo $ac_n "checking for newterm in -lcur_colr""... $ac_c" 1>&6
       -echo "configure:3616: checking for newterm in -lcur_colr" >&5
       -ac_lib_var=`echo cur_colr'_'newterm | sed 'y%./+-%__p_%'`
       -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
       +   for ac_func in feof_unlocked fgets_unlocked getcwd getegid geteuid \
       +getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
       +strdup strtoul tsearch __argz_count __argz_stringify __argz_next
       +do
       +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       +echo "configure:3155: checking for $ac_func" >&5
       +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  ac_save_LIBS="$LIBS"
       -LIBS="-lcur_colr  $LIBS"
       -cat > conftest.$ac_ext <<EOF
       -#line 3624 "configure"
       +  cat > conftest.$ac_ext <<EOF
       +#line 3160 "configure"
        #include "confdefs.h"
       +/* System header to define __stub macros and hopefully few prototypes,
       +    which can conflict with char $ac_func(); below.  */
       +#include <assert.h>
        /* Override any gcc2 internal prototype to avoid an error.  */
        /* We use char because int might match the return type of a gcc2
            builtin and then its argument prototype would still apply.  */
       -char newterm();
       +char $ac_func();
       +
       +int main() {
       +
       +/* The GNU C library defines this for functions which it implements
       +    to always fail with ENOSYS.  Some functions are actually named
       +    something starting with __ and the normal name is an alias.  */
       +#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
       +choke me
       +#else
       +$ac_func();
       +#endif
        
       -int main() {
       -newterm()
        ; return 0; }
        EOF
       -if { (eval echo configure:3635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:3183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=yes"
       +  eval "ac_cv_func_$ac_func=yes"
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  eval "ac_cv_lib_$ac_lib_var=no"
       +  eval "ac_cv_func_$ac_func=no"
        fi
        rm -f conftest*
       -LIBS="$ac_save_LIBS"
       -
        fi
       -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
       +
       +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
          echo "$ac_t""yes" 1>&6
       -    ac_tr_lib=HAVE_LIB`echo cur_colr | sed -e 's/[^a-zA-Z0-9_]/_/g' \
       -    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
       +    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
          cat >> confdefs.h <<EOF
       -#define $ac_tr_lib 1
       +#define $ac_tr_func 1
        EOF
       -
       -  LIBS="-lcur_colr $LIBS"
       -
       + 
        else
          echo "$ac_t""no" 1>&6
        fi
       +done
        
       -            if test "$ac_cv_lib_cur_colr_newterm" = "no" ; then
       -               echo "configure: warning: Cannot find any curses-type library" 1>&2
       -               CURSES_CLIENT="no"
       -            fi
       -         fi
       -      fi
       -   fi
       -
       -   if test "$GUI_CLIENT" = "yes" ; then
       -            # Check whether --with-gtk-prefix or --without-gtk-prefix was given.
       -if test "${with_gtk_prefix+set}" = set; then
       -  withval="$with_gtk_prefix"
       -  gtk_config_prefix="$withval"
       -else
       -  gtk_config_prefix=""
       -fi
       -
       -# Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given.
       -if test "${with_gtk_exec_prefix+set}" = set; then
       -  withval="$with_gtk_exec_prefix"
       -  gtk_config_exec_prefix="$withval"
       -else
       -  gtk_config_exec_prefix=""
       -fi
        
       -# Check whether --enable-gtktest or --disable-gtktest was given.
       -if test "${enable_gtktest+set}" = set; then
       -  enableval="$enable_gtktest"
       -  :
       -else
       -  enable_gtktest=yes
       +   
       +    
       +  # Check whether --with-libiconv-prefix or --without-libiconv-prefix was given.
       +if test "${with_libiconv_prefix+set}" = set; then
       +  withval="$with_libiconv_prefix"
       +  
       +    for dir in `echo "$withval" | tr : ' '`; do
       +      if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
       +      if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
       +    done
       +   
        fi
        
        
       -  for module in . 
       -  do
       -      case "$module" in
       -         gthread) 
       -             gtk_config_args="$gtk_config_args gthread"
       -         ;;
       -      esac
       -  done
       -
       -  if test x$gtk_config_exec_prefix != x ; then
       -     gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
       -     if test x${GTK_CONFIG+set} != xset ; then
       -        GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
       -     fi
       -  fi
       -  if test x$gtk_config_prefix != x ; then
       -     gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
       -     if test x${GTK_CONFIG+set} != xset ; then
       -        GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
       -     fi
       -  fi
       -
       -  # Extract the first word of "gtk-config", so it can be a program name with args.
       -set dummy gtk-config; ac_word=$2
       -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       -echo "configure:3721: checking for $ac_word" >&5
       -if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
       +  echo $ac_n "checking for iconv""... $ac_c" 1>&6
       +echo "configure:3223: checking for iconv" >&5
       +if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  case "$GTK_CONFIG" in
       -  /*)
       -  ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a path.
       -  ;;
       -  ?:/*)                         
       -  ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a dos path.
       -  ;;
       -  *)
       -  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       -  ac_dummy="$PATH"
       -  for ac_dir in $ac_dummy; do 
       -    test -z "$ac_dir" && ac_dir=.
       -    if test -f $ac_dir/$ac_word; then
       -      ac_cv_path_GTK_CONFIG="$ac_dir/$ac_word"
       -      break
       -    fi
       -  done
       -  IFS="$ac_save_ifs"
       -  test -z "$ac_cv_path_GTK_CONFIG" && ac_cv_path_GTK_CONFIG="no"
       -  ;;
       -esac
       -fi
       -GTK_CONFIG="$ac_cv_path_GTK_CONFIG"
       -if test -n "$GTK_CONFIG"; then
       -  echo "$ac_t""$GTK_CONFIG" 1>&6
       +  
       +    am_cv_func_iconv="no, consider installing GNU libiconv"
       +    am_cv_lib_iconv=no
       +    cat > conftest.$ac_ext <<EOF
       +#line 3231 "configure"
       +#include "confdefs.h"
       +#include <stdlib.h>
       +#include <iconv.h>
       +int main() {
       +iconv_t cd = iconv_open("","");
       +       iconv(cd,NULL,NULL,NULL,NULL);
       +       iconv_close(cd);
       +; return 0; }
       +EOF
       +if { (eval echo configure:3241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +  am_cv_func_iconv=yes
        else
       -  echo "$ac_t""no" 1>&6
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
        fi
       -
       -  min_gtk_version=1.2.0
       -  echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6
       -echo "configure:3756: checking for GTK - version >= $min_gtk_version" >&5
       -  no_gtk=""
       -  if test "$GTK_CONFIG" = "no" ; then
       -    no_gtk=yes
       -  else
       -    GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
       -    GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
       -    gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
       -           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
       -    gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
       -           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
       -    gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
       -           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
       -    if test "x$enable_gtktest" = "xyes" ; then
       -      ac_save_CFLAGS="$CFLAGS"
       -      ac_save_LIBS="$LIBS"
       -      CFLAGS="$CFLAGS $GTK_CFLAGS"
       -      LIBS="$GTK_LIBS $LIBS"
       -      rm -f conf.gtktest
       -      if test "$cross_compiling" = yes; then
       -  echo $ac_n "cross compiling; assumed OK... $ac_c"
       -else
       -  cat > conftest.$ac_ext <<EOF
       -#line 3779 "configure"
       +rm -f conftest*
       +    if test "$am_cv_func_iconv" != yes; then
       +      am_save_LIBS="$LIBS"
       +      LIBS="$LIBS -liconv"
       +      cat > conftest.$ac_ext <<EOF
       +#line 3253 "configure"
        #include "confdefs.h"
       -
       -#include <gtk/gtk.h>
       -#include <stdio.h>
        #include <stdlib.h>
       -
       -int 
       -main ()
       -{
       -  int major, minor, micro;
       -  char *tmp_version;
       -
       -  system ("touch conf.gtktest");
       -
       -  /* HP/UX 9 (%@#!) writes to sscanf strings */
       -  tmp_version = g_strdup("$min_gtk_version");
       -  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
       -     printf("%s, bad version string\n", "$min_gtk_version");
       -     exit(1);
       -   }
       -
       -  if ((gtk_major_version != $gtk_config_major_version) ||
       -      (gtk_minor_version != $gtk_config_minor_version) ||
       -      (gtk_micro_version != $gtk_config_micro_version))
       -    {
       -      printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
       -             $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
       -             gtk_major_version, gtk_minor_version, gtk_micro_version);
       -      printf ("*** was found! If gtk-config was correct, then it is best\n");
       -      printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
       -      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
       -      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
       -      printf("*** required on your system.\n");
       -      printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
       -      printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
       -      printf("*** before re-running configure\n");
       -    } 
       -#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
       -  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
       -           (gtk_minor_version != GTK_MINOR_VERSION) ||
       -           (gtk_micro_version != GTK_MICRO_VERSION))
       -    {
       -      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
       -             GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
       -      printf("*** library (version %d.%d.%d)\n",
       -             gtk_major_version, gtk_minor_version, gtk_micro_version);
       -    }
       -#endif /* defined (GTK_MAJOR_VERSION) ... */
       -  else
       -    {
       -      if ((gtk_major_version > major) ||
       -        ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
       -        ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
       -      {
       -        return 0;
       -       }
       -     else
       -      {
       -        printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
       -               gtk_major_version, gtk_minor_version, gtk_micro_version);
       -        printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
       -               major, minor, micro);
       -        printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
       -        printf("***\n");
       -        printf("*** If you have already installed a sufficiently new version, this error\n");
       -        printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
       -        printf("*** being found. The easiest way to fix this is to remove the old version\n");
       -        printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
       -        printf("*** correct copy of gtk-config. (In this case, you will have to\n");
       -        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
       -        printf("*** so that the correct libraries are found at run-time))\n");
       -      }
       -    }
       -  return 1;
       -}
       -
       +#include <iconv.h>
       +int main() {
       +iconv_t cd = iconv_open("","");
       +         iconv(cd,NULL,NULL,NULL,NULL);
       +         iconv_close(cd);
       +; return 0; }
        EOF
       -if { (eval echo configure:3857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       -then
       -  :
       +if { (eval echo configure:3263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +  am_cv_lib_iconv=yes
       +        am_cv_func_iconv=yes
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
       -  rm -fr conftest*
       -  no_gtk=yes
        fi
       -rm -fr conftest*
       +rm -f conftest*
       +      LIBS="$am_save_LIBS"
       +    fi
       +  
        fi
        
       -       CFLAGS="$ac_save_CFLAGS"
       -       LIBS="$ac_save_LIBS"
       -     fi
       -  fi
       -  if test "x$no_gtk" = x ; then
       -     echo "$ac_t""yes" 1>&6
       -     gtk_found="yes"     
       -  else
       -     echo "$ac_t""no" 1>&6
       -     if test "$GTK_CONFIG" = "no" ; then
       -       echo "*** The gtk-config script installed by GTK could not be found"
       -       echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
       -       echo "*** your path, or set the GTK_CONFIG environment variable to the"
       -       echo "*** full path to gtk-config."
       -     else
       -       if test -f conf.gtktest ; then
       -        :
       -       else
       -          echo "*** Could not run GTK test program, checking why..."
       -          CFLAGS="$CFLAGS $GTK_CFLAGS"
       -          LIBS="$LIBS $GTK_LIBS"
       -          cat > conftest.$ac_ext <<EOF
       -#line 3891 "configure"
       +echo "$ac_t""$am_cv_func_iconv" 1>&6
       +  if test "$am_cv_func_iconv" = yes; then
       +    cat >> confdefs.h <<\EOF
       +#define HAVE_ICONV 1
       +EOF
       +
       +    echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6
       +echo "configure:3284: checking for iconv declaration" >&5
       +    if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  
       +      cat > conftest.$ac_ext <<EOF
       +#line 3290 "configure"
        #include "confdefs.h"
        
       -#include <gtk/gtk.h>
       -#include <stdio.h>
       +#include <stdlib.h>
       +#include <iconv.h>
       +extern
       +#ifdef __cplusplus
       +"C"
       +#endif
       +#if defined(__STDC__) || defined(__cplusplus)
       +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
       +#else
       +size_t iconv();
       +#endif
        
        int main() {
       - return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); 
       +
        ; return 0; }
        EOF
       -if { (eval echo configure:3901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:3309: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
          rm -rf conftest*
       -   echo "*** The test program compiled, but did not run. This usually means"
       -          echo "*** that the run-time linker is not finding GTK or finding the wrong"
       -          echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
       -          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
       -          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
       -          echo "*** is required on your system"
       -          echo "***"
       -          echo "*** If you have an old version installed, it is best to remove it, although"
       -          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
       -          echo "***"
       -          echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
       -          echo "*** came with the system with the command"
       -          echo "***"
       -          echo "***    rpm --erase --nodeps gtk gtk-devel" 
       +  am_cv_proto_iconv_arg1=""
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -   echo "*** The test program failed to compile or link. See the file config.log for the"
       -          echo "*** exact error that occured. This usually means GTK was incorrectly installed"
       -          echo "*** or that you have moved GTK since it was installed. In the latter case, you"
       -          echo "*** may want to edit the gtk-config script: $GTK_CONFIG" 
       +  am_cv_proto_iconv_arg1="const"
        fi
        rm -f conftest*
       -          CFLAGS="$ac_save_CFLAGS"
       -          LIBS="$ac_save_LIBS"
       -       fi
       -     fi
       -     GTK_CFLAGS=""
       -     GTK_LIBS=""
       -     gtk_found="no"
       -  fi
       -  
       -  
       -  rm -f conf.gtktest
       -
       -      if test "$gtk_found" = "no" ; then
       -         echo "configure: warning: Cannot find GTK+" 1>&2
       -         GUI_CLIENT="no"
       -      else
       -         echo $ac_n "checking for non-buggy GTK+ ( >= 1.2.10 )""... $ac_c" 1>&6
       -echo "configure:3944: checking for non-buggy GTK+ ( >= 1.2.10 )" >&5
       -                  if test "$gtk_config_major_version" -gt 1 ; then
       -            HAVE_FIXED_GTK="yes"
       -         elif test "$gtk_config_major_version" -eq 1 ; then
       -            if test "$gtk_config_minor_version" -gt 2 ; then
       -                              HAVE_FIXED_GTK="yes"
       -            elif test "$gtk_config_minor_version" -eq 2 -a \
       -                      "$gtk_config_micro_version" -ge 10 ; then
       -               HAVE_FIXED_GTK="yes"
       -            fi
       -         fi
       -         echo "$ac_t"""$HAVE_FIXED_GTK"" 1>&6
       -      fi
       -   fi
       +      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
       +fi
        
       -      CFLAGS="$CFLAGS `glib-config --cflags`"
       -   LDFLAGS="$LDFLAGS `glib-config --libs`"
       +    am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
       +    echo "$ac_t""${ac_t:-
       +         }$am_cv_proto_iconv" 1>&6
       +    cat >> confdefs.h <<EOF
       +#define ICONV_CONST $am_cv_proto_iconv_arg1
       +EOF
        
       -      GUI_SERVER="no"
       +  fi
       +  LIBICONV=
       +  if test "$am_cv_lib_iconv" = yes; then
       +    LIBICONV="-liconv"
       +  fi
       +  
        
       -      echo $ac_n "checking for socklen_t data type""... $ac_c" 1>&6
       -echo "configure:3965: checking for socklen_t data type" >&5
       -   cat > conftest.$ac_ext <<EOF
       -#line 3967 "configure"
       +   
       +  echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6
       +echo "configure:3338: checking for nl_langinfo and CODESET" >&5
       +if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  cat > conftest.$ac_ext <<EOF
       +#line 3343 "configure"
        #include "confdefs.h"
       -#include <sys/types.h>
       -                   #include <sys/socket.h>
       +#include <langinfo.h>
        int main() {
       -socklen_t val
       +char* cs = nl_langinfo(CODESET);
        ; return 0; }
        EOF
       -if { (eval echo configure:3975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
       +if { (eval echo configure:3350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
       -  echo "$ac_t""yes" 1>&6
       -                   cat >> confdefs.h <<\EOF
       -#define HAVE_SOCKLEN_T 1
       -EOF
       -
       +  am_cv_langinfo_codeset=yes
        else
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  echo "$ac_t""no" 1>&6
       +  am_cv_langinfo_codeset=no
        fi
        rm -f conftest*
       +    
        fi
        
       -if test "$GUI_CLIENT" = "yes" ; then
       -   cat >> confdefs.h <<\EOF
       -#define GUI_CLIENT 1
       +echo "$ac_t""$am_cv_langinfo_codeset" 1>&6
       +  if test $am_cv_langinfo_codeset = yes; then
       +    cat >> confdefs.h <<\EOF
       +#define HAVE_LANGINFO_CODESET 1
        EOF
        
       +  fi
       +
       +   if test $ac_cv_header_locale_h = yes; then
       +    echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
       +echo "configure:3373: checking for LC_MESSAGES" >&5
       +if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  cat > conftest.$ac_ext <<EOF
       +#line 3378 "configure"
       +#include "confdefs.h"
       +#include <locale.h>
       +int main() {
       +return LC_MESSAGES
       +; return 0; }
       +EOF
       +if { (eval echo configure:3385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +  am_cv_val_LC_MESSAGES=yes
       +else
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
       +  rm -rf conftest*
       +  am_cv_val_LC_MESSAGES=no
       +fi
       +rm -f conftest*
        fi
        
       -if test "$CURSES_CLIENT" = "yes" ; then
       -   cat >> confdefs.h <<\EOF
       -#define CURSES_CLIENT 1
       +echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
       +    if test $am_cv_val_LC_MESSAGES = yes; then
       +      cat >> confdefs.h <<\EOF
       +#define HAVE_LC_MESSAGES 1
        EOF
        
       +    fi
       +  fi
       +   echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
       +echo "configure:3406: checking whether NLS is requested" >&5
       +        # Check whether --enable-nls or --disable-nls was given.
       +if test "${enable_nls+set}" = set; then
       +  enableval="$enable_nls"
       +  USE_NLS=$enableval
       +else
       +  USE_NLS=yes
        fi
        
       -# Check whether --enable-gui-server or --disable-gui-server was given.
       -if test "${enable_gui_server+set}" = set; then
       -  enableval="$enable_gui_server"
       -   GUI_SERVER="$enableval" 
       -fi
       +    echo "$ac_t""$USE_NLS" 1>&6
       +    
        
       +    BUILD_INCLUDED_LIBINTL=no
       +    USE_INCLUDED_LIBINTL=no
       +    INTLLIBS=
        
       -if test "$GUI_SERVER" = "yes" ; then
       -   cat >> confdefs.h <<\EOF
       -#define GUI_SERVER 1
       +        if test "$USE_NLS" = "yes"; then
       +      cat >> confdefs.h <<\EOF
       +#define ENABLE_NLS 1
        EOF
        
       +      echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
       +echo "configure:3428: checking whether included gettext is requested" >&5
       +      # Check whether --with-included-gettext or --without-included-gettext was given.
       +if test "${with_included_gettext+set}" = set; then
       +  withval="$with_included_gettext"
       +  nls_cv_force_use_gnu_gettext=$withval
       +else
       +  nls_cv_force_use_gnu_gettext=no
        fi
        
       -if test "$HAVE_FIXED_GTK" = "yes" ; then
       -   cat >> confdefs.h <<\EOF
       -#define HAVE_FIXED_GTK 1
       -EOF
       +      echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6
        
       -fi
       +      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
       +      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
       +                                CATOBJEXT=NONE
        
       -if test "$GUI_CLIENT" = "yes" -o "$GUI_SERVER" = "yes" ; then
       -      GTKPORT_C="gtkport.c"
       -   GTKPORT_O="gtkport.o"
       -   
       -   
       -fi
       +                
       +        
        
       -echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
       -echo "configure:4034: checking for ANSI C header files" >&5
       -if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
       +        ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
       +echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
       +echo "configure:3448: checking for libintl.h" >&5
       +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 4039 "configure"
       +#line 3453 "configure"
        #include "confdefs.h"
       -#include <stdlib.h>
       -#include <stdarg.h>
       -#include <string.h>
       -#include <float.h>
       +#include <libintl.h>
        EOF
        ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:4047: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       +{ (eval echo configure:3458: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
        ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
        if test -z "$ac_err"; then
          rm -rf conftest*
       -  ac_cv_header_stdc=yes
       +  eval "ac_cv_header_$ac_safe=yes"
        else
          echo "$ac_err" >&5
          echo "configure: failed program was:" >&5
          cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  ac_cv_header_stdc=no
       +  eval "ac_cv_header_$ac_safe=no"
       +fi
       +rm -f conftest*
       +fi
       +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
       +  echo "$ac_t""yes" 1>&6
       +  echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6
       +echo "configure:3475: checking for GNU gettext in libc" >&5
       +if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  cat > conftest.$ac_ext <<EOF
       +#line 3480 "configure"
       +#include "confdefs.h"
       +#include <libintl.h>
       +extern int _nl_msg_cat_cntr;
       +int main() {
       +bindtextdomain ("", "");
       +return (int) gettext ("") + _nl_msg_cat_cntr
       +; return 0; }
       +EOF
       +if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +  gt_cv_func_gnugettext1_libc=yes
       +else
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
       +  rm -rf conftest*
       +  gt_cv_func_gnugettext1_libc=no
        fi
        rm -f conftest*
       +fi
        
       -if test $ac_cv_header_stdc = yes; then
       -  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
       -cat > conftest.$ac_ext <<EOF
       -#line 4064 "configure"
       +echo "$ac_t""$gt_cv_func_gnugettext1_libc" 1>&6
       +
       +           if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
       +             echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6
       +echo "configure:3505: checking for GNU gettext in libintl" >&5
       +if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  gt_save_LIBS="$LIBS"
       +                LIBS="$LIBS -lintl $LIBICONV"
       +                cat > conftest.$ac_ext <<EOF
       +#line 3512 "configure"
        #include "confdefs.h"
       -#include <string.h>
       +#include <libintl.h>
       +extern int _nl_msg_cat_cntr;
       +int main() {
       +bindtextdomain ("", "");
       +return (int) gettext ("") + _nl_msg_cat_cntr
       +; return 0; }
        EOF
       -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
       -  egrep "memchr" >/dev/null 2>&1; then
       -  :
       +if { (eval echo configure:3521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +  gt_cv_func_gnugettext1_libintl=yes
       +else
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
       +  rm -rf conftest*
       +  gt_cv_func_gnugettext1_libintl=no
       +fi
       +rm -f conftest*
       +                LIBS="$gt_save_LIBS"
       +fi
       +
       +echo "$ac_t""$gt_cv_func_gnugettext1_libintl" 1>&6
       +           fi
       +
       +                                                       if test "$gt_cv_func_gnugettext1_libc" = "yes" \
       +              || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
       +                   && test "$PACKAGE" != gettext; }; then
       +             cat >> confdefs.h <<\EOF
       +#define HAVE_GETTEXT 1
       +EOF
       +
       +
       +             if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
       +                                                            INTLLIBS="-lintl $LIBICONV"
       +             fi
       +
       +             gt_save_LIBS="$LIBS"
       +             LIBS="$LIBS $INTLLIBS"
       +             for ac_func in dcgettext
       +do
       +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       +echo "configure:3554: checking for $ac_func" >&5
       +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  cat > conftest.$ac_ext <<EOF
       +#line 3559 "configure"
       +#include "confdefs.h"
       +/* System header to define __stub macros and hopefully few prototypes,
       +    which can conflict with char $ac_func(); below.  */
       +#include <assert.h>
       +/* Override any gcc2 internal prototype to avoid an error.  */
       +/* We use char because int might match the return type of a gcc2
       +    builtin and then its argument prototype would still apply.  */
       +char $ac_func();
       +
       +int main() {
       +
       +/* The GNU C library defines this for functions which it implements
       +    to always fail with ENOSYS.  Some functions are actually named
       +    something starting with __ and the normal name is an alias.  */
       +#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
       +choke me
       +#else
       +$ac_func();
       +#endif
       +
       +; return 0; }
       +EOF
       +if { (eval echo configure:3582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +  rm -rf conftest*
       +  eval "ac_cv_func_$ac_func=yes"
        else
       +  echo "configure: failed program was:" >&5
       +  cat conftest.$ac_ext >&5
          rm -rf conftest*
       -  ac_cv_header_stdc=no
       +  eval "ac_cv_func_$ac_func=no"
        fi
        rm -f conftest*
       -
        fi
        
       -if test $ac_cv_header_stdc = yes; then
       -  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
       -cat > conftest.$ac_ext <<EOF
       -#line 4082 "configure"
       -#include "confdefs.h"
       -#include <stdlib.h>
       +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
       +  echo "$ac_t""yes" 1>&6
       +    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
       +  cat >> confdefs.h <<EOF
       +#define $ac_tr_func 1
        EOF
       -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
       -  egrep "free" >/dev/null 2>&1; then
       -  :
       + 
        else
       -  rm -rf conftest*
       -  ac_cv_header_stdc=no
       +  echo "$ac_t""no" 1>&6
        fi
       -rm -f conftest*
       +done
        
       -fi
       +             LIBS="$gt_save_LIBS"
        
       -if test $ac_cv_header_stdc = yes; then
       -  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
       -if test "$cross_compiling" = yes; then
       -  :
       +                          # Extract the first word of "msgfmt", so it can be a program name with args.
       +set dummy msgfmt; ac_word=$2
       +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       +echo "configure:3611: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  cat > conftest.$ac_ext <<EOF
       -#line 4103 "configure"
       -#include "confdefs.h"
       -#include <ctype.h>
       -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
       -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
       -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
       -int main () { int i; for (i = 0; i < 256; i++)
       -if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
       -exit (0); }
       +  case "$MSGFMT" in
       +  /*)
       +  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
       +  ;;
       +  *)
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       +  for ac_dir in $PATH; do
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then
       +        ac_cv_path_MSGFMT="$ac_dir/$ac_word"
       +        break
       +      fi
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
       +  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
       +  ;;
       +esac
       +fi
       +MSGFMT="$ac_cv_path_MSGFMT"
       +if test "$MSGFMT" != ":"; then
       +  echo "$ac_t""$MSGFMT" 1>&6
       +else
       +  echo "$ac_t""no" 1>&6
       +fi
        
       -EOF
       -if { (eval echo configure:4114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       -then
       -  :
       +             # Extract the first word of "gmsgfmt", so it can be a program name with args.
       +set dummy gmsgfmt; ac_word=$2
       +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       +echo "configure:3645: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -fr conftest*
       -  ac_cv_header_stdc=no
       +  case "$GMSGFMT" in
       +  /*)
       +  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
       +  ;;
       +  ?:/*)                         
       +  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
       +  ;;
       +  *)
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       +  ac_dummy="$PATH"
       +  for ac_dir in $ac_dummy; do 
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
       +      break
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
       +  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
       +  ;;
       +esac
        fi
       -rm -fr conftest*
       +GMSGFMT="$ac_cv_path_GMSGFMT"
       +if test -n "$GMSGFMT"; then
       +  echo "$ac_t""$GMSGFMT" 1>&6
       +else
       +  echo "$ac_t""no" 1>&6
        fi
        
       +
       +                          # Extract the first word of "xgettext", so it can be a program name with args.
       +set dummy xgettext; ac_word=$2
       +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       +echo "configure:3682: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  case "$XGETTEXT" in
       +  /*)
       +  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
       +  ;;
       +  *)
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       +  for ac_dir in $PATH; do
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then
       +        ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
       +        break
       +      fi
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
       +  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
       +  ;;
       +esac
        fi
       +XGETTEXT="$ac_cv_path_XGETTEXT"
       +if test "$XGETTEXT" != ":"; then
       +  echo "$ac_t""$XGETTEXT" 1>&6
       +else
       +  echo "$ac_t""no" 1>&6
        fi
        
       -echo "$ac_t""$ac_cv_header_stdc" 1>&6
       -if test $ac_cv_header_stdc = yes; then
       -  cat >> confdefs.h <<\EOF
       -#define STDC_HEADERS 1
       -EOF
        
       +             CATOBJEXT=.gmo
       +           fi
       +        
       +else
       +  echo "$ac_t""no" 1>&6
        fi
        
       -echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
       -echo "configure:4138: checking for sys/wait.h that is POSIX.1 compatible" >&5
       -if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
       +
       +        if test "$CATOBJEXT" = "NONE"; then
       +                              nls_cv_use_gnu_gettext=yes
       +        fi
       +      fi
       +
       +      if test "$nls_cv_use_gnu_gettext" = "yes"; then
       +                INTLOBJS="\$(GETTOBJS)"
       +        # Extract the first word of "msgfmt", so it can be a program name with args.
       +set dummy msgfmt; ac_word=$2
       +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       +echo "configure:3732: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  cat > conftest.$ac_ext <<EOF
       -#line 4143 "configure"
       -#include "confdefs.h"
       -#include <sys/types.h>
       -#include <sys/wait.h>
       -#ifndef WEXITSTATUS
       -#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
       -#endif
       -#ifndef WIFEXITED
       -#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
       -#endif
       -int main() {
       -int s;
       -wait (&s);
       -s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
       -; return 0; }
       -EOF
       -if { (eval echo configure:4159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
       -  rm -rf conftest*
       -  ac_cv_header_sys_wait_h=yes
       +  case "$MSGFMT" in
       +  /*)
       +  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
       +  ;;
       +  *)
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       +  for ac_dir in $PATH; do
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then
       +        ac_cv_path_MSGFMT="$ac_dir/$ac_word"
       +        break
       +      fi
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
       +  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
       +  ;;
       +esac
       +fi
       +MSGFMT="$ac_cv_path_MSGFMT"
       +if test "$MSGFMT" != ":"; then
       +  echo "$ac_t""$MSGFMT" 1>&6
        else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  ac_cv_header_sys_wait_h=no
       +  echo "$ac_t""no" 1>&6
       +fi
       +
       +        # Extract the first word of "gmsgfmt", so it can be a program name with args.
       +set dummy gmsgfmt; ac_word=$2
       +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       +echo "configure:3766: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  case "$GMSGFMT" in
       +  /*)
       +  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
       +  ;;
       +  ?:/*)                         
       +  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
       +  ;;
       +  *)
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       +  ac_dummy="$PATH"
       +  for ac_dir in $ac_dummy; do 
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
       +      break
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
       +  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
       +  ;;
       +esac
       +fi
       +GMSGFMT="$ac_cv_path_GMSGFMT"
       +if test -n "$GMSGFMT"; then
       +  echo "$ac_t""$GMSGFMT" 1>&6
       +else
       +  echo "$ac_t""no" 1>&6
       +fi
       +
       +        # Extract the first word of "xgettext", so it can be a program name with args.
       +set dummy xgettext; ac_word=$2
       +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       +echo "configure:3802: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
       +  echo $ac_n "(cached) $ac_c" 1>&6
       +else
       +  case "$XGETTEXT" in
       +  /*)
       +  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
       +  ;;
       +  *)
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
       +  for ac_dir in $PATH; do
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then
       +        ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
       +        break
       +      fi
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
       +  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
       +  ;;
       +esac
        fi
       -rm -f conftest*
       +XGETTEXT="$ac_cv_path_XGETTEXT"
       +if test "$XGETTEXT" != ":"; then
       +  echo "$ac_t""$XGETTEXT" 1>&6
       +else
       +  echo "$ac_t""no" 1>&6
        fi
        
       -echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6
       -if test $ac_cv_header_sys_wait_h = yes; then
       -  cat >> confdefs.h <<\EOF
       -#define HAVE_SYS_WAIT_H 1
       -EOF
       +        
       +        BUILD_INCLUDED_LIBINTL=yes
       +        USE_INCLUDED_LIBINTL=yes
       +        CATOBJEXT=.gmo
       +        INTLLIBS="\$(top_builddir)/intl/libintl.a $LIBICONV"
       +        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
       +      fi
        
       -fi
       +                  if test "$GMSGFMT" != ":"; then
       +                        if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
       +          : ;
       +        else
       +          echo "$ac_t""found msgfmt program is not GNU msgfmt; ignore it" 1>&6
       +          GMSGFMT=":"
       +        fi
       +      fi
        
       -for ac_hdr in fcntl.h sys/time.h unistd.h stdlib.h
       +                  if test "$XGETTEXT" != ":"; then
       +                        if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
       +          : ;
       +        else
       +          echo "$ac_t""found xgettext program is not GNU xgettext; ignore it" 1>&6
       +          XGETTEXT=":"
       +        fi
       +      fi
       +
       +            POSUB=po
       +    fi
       +    
       +
       +
       +            if test "$PACKAGE" = gettext; then
       +      BUILD_INCLUDED_LIBINTL=yes
       +    fi
       +
       +                                            for ac_prog in bison
        do
       -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
       -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
       -echo "configure:4183: checking for $ac_hdr" >&5
       -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
       +# Extract the first word of "$ac_prog", so it can be a program name with args.
       +set dummy $ac_prog; ac_word=$2
       +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       +echo "configure:3873: checking for $ac_word" >&5
       +if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       -  cat > conftest.$ac_ext <<EOF
       -#line 4188 "configure"
       -#include "confdefs.h"
       -#include <$ac_hdr>
       -EOF
       -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
       -{ (eval echo configure:4193: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
       -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
       -if test -z "$ac_err"; then
       -  rm -rf conftest*
       -  eval "ac_cv_header_$ac_safe=yes"
       +  if test -n "$INTLBISON"; then
       +  ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test.
        else
       -  echo "$ac_err" >&5
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  eval "ac_cv_header_$ac_safe=no"
       +  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
       +  ac_dummy="$PATH"
       +  for ac_dir in $ac_dummy; do
       +    test -z "$ac_dir" && ac_dir=.
       +    if test -f $ac_dir/$ac_word; then
       +      ac_cv_prog_INTLBISON="$ac_prog"
       +      break
       +    fi
       +  done
       +  IFS="$ac_save_ifs"
        fi
       -rm -f conftest*
        fi
       -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
       -  echo "$ac_t""yes" 1>&6
       -    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
       -  cat >> confdefs.h <<EOF
       -#define $ac_tr_hdr 1
       -EOF
       - 
       +INTLBISON="$ac_cv_prog_INTLBISON"
       +if test -n "$INTLBISON"; then
       +  echo "$ac_t""$INTLBISON" 1>&6
        else
          echo "$ac_t""no" 1>&6
        fi
       +
       +test -n "$INTLBISON" && break
        done
        
       +    if test -z "$INTLBISON"; then
       +      ac_verc_fail=yes
       +    else
       +            echo $ac_n "checking version of bison""... $ac_c" 1>&6
       +echo "configure:3906: checking version of bison" >&5
       +      ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
       +      case $ac_prog_version in
       +        '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
       +        1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
       +           ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
       +        *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
       +      esac
       +      echo "$ac_t""$ac_prog_version" 1>&6
       +    fi
       +    if test $ac_verc_fail = yes; then
       +      INTLBISON=:
       +    fi
        
       -echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
       -echo "configure:4221: checking whether time.h and sys/time.h may both be included" >&5
       -if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  cat > conftest.$ac_ext <<EOF
       -#line 4226 "configure"
       -#include "confdefs.h"
       -#include <sys/types.h>
       -#include <sys/time.h>
       -#include <time.h>
       -int main() {
       -struct tm *tp;
       -; return 0; }
       -EOF
       -if { (eval echo configure:4235: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
       -  rm -rf conftest*
       -  ac_cv_header_time=yes
       -else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  ac_cv_header_time=no
       -fi
       -rm -f conftest*
       +                for lang in $ALL_LINGUAS; do
       +      GMOFILES="$GMOFILES $lang.gmo"
       +      POFILES="$POFILES $lang.po"
       +    done
       +
       +        
       +    
       +    
       +    
       +    
       +    
       +    
       +    
       +    
       +
       +        nls_cv_header_intl=
       +    nls_cv_header_libgt=
       +
       +        DATADIRNAME=share
       +    
       +
       +        INSTOBJEXT=.mo
       +    
       +
       +        GENCAT=gencat
       +    
       +  
       +
       +   if test "x$CATOBJEXT" != "x"; then
       +     if test "x$ALL_LINGUAS" = "x"; then
       +       LINGUAS=
       +     else
       +       echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
       +echo "configure:3953: checking for catalogs to be installed" >&5
       +       NEW_LINGUAS=
       +       for presentlang in $ALL_LINGUAS; do
       +         useit=no
       +         for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
       +           # Use the presentlang catalog if desiredlang is
       +           #   a. equal to presentlang, or
       +           #   b. a variant of presentlang (because in this case,
       +           #      presentlang can be used as a fallback for messages
       +           #      which are not translated in the desiredlang catalog).
       +           case "$desiredlang" in
       +             "$presentlang"*) useit=yes;;
       +           esac
       +         done
       +         if test $useit = yes; then
       +           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
       +         fi
       +       done
       +       LINGUAS=$NEW_LINGUAS
       +       echo "$ac_t""$LINGUAS" 1>&6
       +     fi
       +
       +          if test -n "$LINGUAS"; then
       +       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
       +     fi
       +   fi
       +
       +            MKINSTALLDIRS=
       +   if test -n "$ac_aux_dir"; then
       +     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
       +   fi
       +   if test -z "$MKINSTALLDIRS"; then
       +     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
       +   fi
       +   
       +
       +      INTL_LIBTOOL_SUFFIX_PREFIX=
       +   
       +  
       +if test "$gt_cv_func_gettext_libintl" = "yes"; then
       +    LIBS="-lintl  $LIBS"
        fi
        
       -echo "$ac_t""$ac_cv_header_time" 1>&6
       -if test $ac_cv_header_time = yes; then
       -  cat >> confdefs.h <<\EOF
       -#define TIME_WITH_SYS_TIME 1
       +localedir=${datadir}/locale
       +
       +
       +if test "$GUI_CLIENT" = "yes" ; then
       +   cat >> confdefs.h <<\EOF
       +#define GUI_CLIENT 1
        EOF
        
        fi
        
       -echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
       -echo "configure:4256: checking whether struct tm is in sys/time.h or time.h" >&5
       -if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
       -  echo $ac_n "(cached) $ac_c" 1>&6
       -else
       -  cat > conftest.$ac_ext <<EOF
       -#line 4261 "configure"
       -#include "confdefs.h"
       -#include <sys/types.h>
       -#include <time.h>
       -int main() {
       -struct tm *tp; tp->tm_sec;
       -; return 0; }
       +if test "$CURSES_CLIENT" = "yes" ; then
       +   cat >> confdefs.h <<\EOF
       +#define CURSES_CLIENT 1
        EOF
       -if { (eval echo configure:4269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
       -  rm -rf conftest*
       -  ac_cv_struct_tm=time.h
       -else
       -  echo "configure: failed program was:" >&5
       -  cat conftest.$ac_ext >&5
       -  rm -rf conftest*
       -  ac_cv_struct_tm=sys/time.h
       +
        fi
       -rm -f conftest*
       +
       +# Check whether --enable-gui-server or --disable-gui-server was given.
       +if test "${enable_gui_server+set}" = set; then
       +  enableval="$enable_gui_server"
       +   GUI_SERVER="$enableval" 
        fi
        
       -echo "$ac_t""$ac_cv_struct_tm" 1>&6
       -if test $ac_cv_struct_tm = sys/time.h; then
       -  cat >> confdefs.h <<\EOF
       -#define TM_IN_SYS_TIME 1
       +
       +if test "$GUI_SERVER" = "yes" ; then
       +   cat >> confdefs.h <<\EOF
       +#define GUI_SERVER 1
        EOF
        
        fi
        
       +if test "$HAVE_FIXED_GTK" = "yes" ; then
       +   cat >> confdefs.h <<\EOF
       +#define HAVE_FIXED_GTK 1
       +EOF
       +
       +fi
       +
       +if test "$GUI_CLIENT" = "yes" -o "$GUI_SERVER" = "yes" ; then
       +      GTKPORT_C="gtkport.c"
       +   GTKPORT_O="gtkport.o"
       +   
       +   
       +fi
        
        echo $ac_n "checking size of long long""... $ac_c" 1>&6
       -echo "configure:4291: checking size of long long" >&5
       +echo "configure:4042: checking size of long long" >&5
        if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       t@@ -4295,7 +4046,7 @@ else
            { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
        else
          cat > conftest.$ac_ext <<EOF
       -#line 4299 "configure"
       +#line 4050 "configure"
        #include "confdefs.h"
        #include <stdio.h>
        main()
       t@@ -4306,7 +4057,7 @@ main()
          exit(0);
        }
        EOF
       -if { (eval echo configure:4310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       +if { (eval echo configure:4061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
        then
          ac_cv_sizeof_long_long=`cat conftestval`
        else
       t@@ -4327,7 +4078,7 @@ EOF
        
        
        echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
       -echo "configure:4331: checking for 8-bit clean memcmp" >&5
       +echo "configure:4082: checking for 8-bit clean memcmp" >&5
        if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       t@@ -4335,7 +4086,7 @@ else
          ac_cv_func_memcmp_clean=no
        else
          cat > conftest.$ac_ext <<EOF
       -#line 4339 "configure"
       +#line 4090 "configure"
        #include "confdefs.h"
        
        main()
       t@@ -4345,7 +4096,7 @@ main()
        }
        
        EOF
       -if { (eval echo configure:4349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       +if { (eval echo configure:4100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
        then
          ac_cv_func_memcmp_clean=yes
        else
       t@@ -4363,7 +4114,7 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
        test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
        
        echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6
       -echo "configure:4367: checking whether setvbuf arguments are reversed" >&5
       +echo "configure:4118: checking whether setvbuf arguments are reversed" >&5
        if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
       t@@ -4371,7 +4122,7 @@ else
            { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
        else
          cat > conftest.$ac_ext <<EOF
       -#line 4375 "configure"
       +#line 4126 "configure"
        #include "confdefs.h"
        #include <stdio.h>
        /* If setvbuf has the reversed format, exit 0. */
       t@@ -4385,7 +4136,7 @@ main () {
          exit(0);                        /* Non-reversed systems segv here.  */
        }
        EOF
       -if { (eval echo configure:4389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
       +if { (eval echo configure:4140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
        then
          ac_cv_func_setvbuf_reversed=yes
        else
       t@@ -4409,12 +4160,12 @@ EOF
        fi
        
        echo $ac_n "checking for strftime""... $ac_c" 1>&6
       -echo "configure:4413: checking for strftime" >&5
       +echo "configure:4164: checking for strftime" >&5
        if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 4418 "configure"
       +#line 4169 "configure"
        #include "confdefs.h"
        /* System header to define __stub macros and hopefully few prototypes,
            which can conflict with char strftime(); below.  */
       t@@ -4437,7 +4188,7 @@ strftime();
        
        ; return 0; }
        EOF
       -if { (eval echo configure:4441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:4192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
          eval "ac_cv_func_strftime=yes"
        else
       t@@ -4459,7 +4210,7 @@ else
          echo "$ac_t""no" 1>&6
        # strftime is in -lintl on SCO UNIX.
        echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6
       -echo "configure:4463: checking for strftime in -lintl" >&5
       +echo "configure:4214: checking for strftime in -lintl" >&5
        ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'`
        if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
       t@@ -4467,7 +4218,7 @@ else
          ac_save_LIBS="$LIBS"
        LIBS="-lintl  $LIBS"
        cat > conftest.$ac_ext <<EOF
       -#line 4471 "configure"
       +#line 4222 "configure"
        #include "confdefs.h"
        /* Override any gcc2 internal prototype to avoid an error.  */
        /* We use char because int might match the return type of a gcc2
       t@@ -4478,7 +4229,7 @@ int main() {
        strftime()
        ; return 0; }
        EOF
       -if { (eval echo configure:4482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:4233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
          eval "ac_cv_lib_$ac_lib_var=yes"
        else
       t@@ -4507,12 +4258,12 @@ fi
        for ac_func in strdup strstr getopt_long
        do
        echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       -echo "configure:4511: checking for $ac_func" >&5
       +echo "configure:4262: checking for $ac_func" >&5
        if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 4516 "configure"
       +#line 4267 "configure"
        #include "confdefs.h"
        /* System header to define __stub macros and hopefully few prototypes,
            which can conflict with char $ac_func(); below.  */
       t@@ -4535,7 +4286,7 @@ $ac_func();
        
        ; return 0; }
        EOF
       -if { (eval echo configure:4539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:4290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
          eval "ac_cv_func_$ac_func=yes"
        else
       t@@ -4566,14 +4317,14 @@ if test "$CYGWIN" = "yes" ; then
        else
                    
        echo $ac_n "checking for library containing socket""... $ac_c" 1>&6
       -echo "configure:4570: checking for library containing socket" >&5
       +echo "configure:4321: checking for library containing socket" >&5
        if eval "test \"`echo '$''{'ac_cv_search_socket'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          ac_func_search_save_LIBS="$LIBS"
        ac_cv_search_socket="no"
        cat > conftest.$ac_ext <<EOF
       -#line 4577 "configure"
       +#line 4328 "configure"
        #include "confdefs.h"
        /* Override any gcc2 internal prototype to avoid an error.  */
        /* We use char because int might match the return type of a gcc2
       t@@ -4584,7 +4335,7 @@ int main() {
        socket()
        ; return 0; }
        EOF
       -if { (eval echo configure:4588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:4339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
          ac_cv_search_socket="none required"
        else
       t@@ -4595,7 +4346,7 @@ rm -f conftest*
        test "$ac_cv_search_socket" = "no" && for i in socket; do
        LIBS="-l$i  $ac_func_search_save_LIBS"
        cat > conftest.$ac_ext <<EOF
       -#line 4599 "configure"
       +#line 4350 "configure"
        #include "confdefs.h"
        /* Override any gcc2 internal prototype to avoid an error.  */
        /* We use char because int might match the return type of a gcc2
       t@@ -4606,7 +4357,7 @@ int main() {
        socket()
        ; return 0; }
        EOF
       -if { (eval echo configure:4610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:4361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
          ac_cv_search_socket="-l$i"
        break
       t@@ -4628,14 +4379,14 @@ else :
        fi
           
        echo $ac_n "checking for library containing gethostbyname""... $ac_c" 1>&6
       -echo "configure:4632: checking for library containing gethostbyname" >&5
       +echo "configure:4383: checking for library containing gethostbyname" >&5
        if eval "test \"`echo '$''{'ac_cv_search_gethostbyname'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          ac_func_search_save_LIBS="$LIBS"
        ac_cv_search_gethostbyname="no"
        cat > conftest.$ac_ext <<EOF
       -#line 4639 "configure"
       +#line 4390 "configure"
        #include "confdefs.h"
        /* Override any gcc2 internal prototype to avoid an error.  */
        /* We use char because int might match the return type of a gcc2
       t@@ -4646,7 +4397,7 @@ int main() {
        gethostbyname()
        ; return 0; }
        EOF
       -if { (eval echo configure:4650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:4401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
          ac_cv_search_gethostbyname="none required"
        else
       t@@ -4657,7 +4408,7 @@ rm -f conftest*
        test "$ac_cv_search_gethostbyname" = "no" && for i in nsl socket; do
        LIBS="-l$i  $ac_func_search_save_LIBS"
        cat > conftest.$ac_ext <<EOF
       -#line 4661 "configure"
       +#line 4412 "configure"
        #include "confdefs.h"
        /* Override any gcc2 internal prototype to avoid an error.  */
        /* We use char because int might match the return type of a gcc2
       t@@ -4668,7 +4419,7 @@ int main() {
        gethostbyname()
        ; return 0; }
        EOF
       -if { (eval echo configure:4672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:4423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
          ac_cv_search_gethostbyname="-l$i"
        break
       t@@ -4691,12 +4442,12 @@ fi
           for ac_func in socket gethostbyname select
        do
        echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       -echo "configure:4695: checking for $ac_func" >&5
       +echo "configure:4446: checking for $ac_func" >&5
        if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
          echo $ac_n "(cached) $ac_c" 1>&6
        else
          cat > conftest.$ac_ext <<EOF
       -#line 4700 "configure"
       +#line 4451 "configure"
        #include "confdefs.h"
        /* System header to define __stub macros and hopefully few prototypes,
            which can conflict with char $ac_func(); below.  */
       t@@ -4719,7 +4470,7 @@ $ac_func();
        
        ; return 0; }
        EOF
       -if { (eval echo configure:4723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
       +if { (eval echo configure:4474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
          rm -rf conftest*
          eval "ac_cv_func_$ac_func=yes"
        else
       t@@ -4933,38 +4684,43 @@ s%@AUTOHEADER@%$AUTOHEADER%g
        s%@MAKEINFO@%$MAKEINFO%g
        s%@SET_MAKE@%$SET_MAKE%g
        s%@CC@%$CC%g
       -s%@RANLIB@%$RANLIB%g
        s%@CPP@%$CPP%g
       +s%@WNDRES@%$WNDRES%g
       +s%@GLIB_CONFIG@%$GLIB_CONFIG%g
       +s%@GLIB_CFLAGS@%$GLIB_CFLAGS%g
       +s%@GLIB_LIBS@%$GLIB_LIBS%g
       +s%@GTK_CONFIG@%$GTK_CONFIG%g
       +s%@GTK_CFLAGS@%$GTK_CFLAGS%g
       +s%@GTK_LIBS@%$GTK_LIBS%g
       +s%@host@%$host%g
       +s%@host_alias@%$host_alias%g
       +s%@host_cpu@%$host_cpu%g
       +s%@host_vendor@%$host_vendor%g
       +s%@host_os@%$host_os%g
       +s%@RANLIB@%$RANLIB%g
        s%@ALLOCA@%$ALLOCA%g
       +s%@GLIBC21@%$GLIBC21%g
       +s%@LIBICONV@%$LIBICONV%g
        s%@USE_NLS@%$USE_NLS%g
        s%@MSGFMT@%$MSGFMT%g
        s%@GMSGFMT@%$GMSGFMT%g
        s%@XGETTEXT@%$XGETTEXT%g
       -s%@GENCAT@%$GENCAT%g
       +s%@INTLBISON@%$INTLBISON%g
       +s%@BUILD_INCLUDED_LIBINTL@%$BUILD_INCLUDED_LIBINTL%g
        s%@USE_INCLUDED_LIBINTL@%$USE_INCLUDED_LIBINTL%g
        s%@CATALOGS@%$CATALOGS%g
        s%@CATOBJEXT@%$CATOBJEXT%g
       -s%@DATADIRNAME@%$DATADIRNAME%g
        s%@GMOFILES@%$GMOFILES%g
       -s%@INSTOBJEXT@%$INSTOBJEXT%g
       -s%@INTLDEPS@%$INTLDEPS%g
        s%@INTLLIBS@%$INTLLIBS%g
        s%@INTLOBJS@%$INTLOBJS%g
        s%@POFILES@%$POFILES%g
        s%@POSUB@%$POSUB%g
       -s%@INCLUDE_LOCALE_H@%$INCLUDE_LOCALE_H%g
       -s%@GT_NO@%$GT_NO%g
       -s%@GT_YES@%$GT_YES%g
       +s%@DATADIRNAME@%$DATADIRNAME%g
       +s%@INSTOBJEXT@%$INSTOBJEXT%g
       +s%@GENCAT@%$GENCAT%g
        s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g
       -s%@l@%$l%g
       +s%@INTL_LIBTOOL_SUFFIX_PREFIX@%$INTL_LIBTOOL_SUFFIX_PREFIX%g
        s%@localedir@%$localedir%g
       -s%@WNDRES@%$WNDRES%g
       -s%@GLIB_CONFIG@%$GLIB_CONFIG%g
       -s%@GLIB_CFLAGS@%$GLIB_CFLAGS%g
       -s%@GLIB_LIBS@%$GLIB_LIBS%g
       -s%@GTK_CONFIG@%$GTK_CONFIG%g
       -s%@GTK_CFLAGS@%$GTK_CFLAGS%g
       -s%@GTK_LIBS@%$GTK_LIBS%g
        s%@GTKPORT_C@%$GTKPORT_C%g
        s%@GTKPORT_O@%$GTKPORT_O%g
        s%@LIBOBJS@%$LIBOBJS%g
       t@@ -5180,51 +4936,6 @@ cat >> $CONFIG_STATUS <<\EOF
        fi; done
        
        EOF
       -
       -cat >> $CONFIG_STATUS <<EOF
       -ac_sources="$nls_cv_header_libgt"
       -ac_dests="$nls_cv_header_intl"
       -EOF
       -
       -cat >> $CONFIG_STATUS <<\EOF
       -srcdir=$ac_given_srcdir
       -while test -n "$ac_sources"; do
       -  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
       -  set $ac_sources; ac_source=$1; shift; ac_sources=$*
       -
       -  echo "linking $srcdir/$ac_source to $ac_dest"
       -
       -  if test ! -r $srcdir/$ac_source; then
       -    { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; }
       -  fi
       -  rm -f $ac_dest
       -
       -  # Make relative symlinks.
       -  # Remove last slash and all that follows it.  Not all systems have dirname.
       -  ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'`
       -  if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then
       -    # The dest file is in a subdirectory.
       -    test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir"
       -    ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`"
       -    # A "../" for each directory in $ac_dest_dir_suffix.
       -    ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'`
       -  else
       -    ac_dest_dir_suffix= ac_dots=
       -  fi
       -
       -  case "$srcdir" in
       -  [/$]*) ac_rel_source="$srcdir/$ac_source" ;;
       -  *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;;
       -  esac
       -
       -  # Make a symlink if possible; otherwise try a hard link.
       -  if ln -s $ac_rel_source $ac_dest 2>/dev/null ||
       -    ln $srcdir/$ac_source $ac_dest; then :
       -  else
       -    { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; }
       -  fi
       -done
       -EOF
        cat >> $CONFIG_STATUS <<EOF
        
        
       t@@ -5232,9 +4943,35 @@ cat >> $CONFIG_STATUS <<EOF
        EOF
        cat >> $CONFIG_STATUS <<\EOF
        test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
       -case "$CONFIG_FILES" in *po/Makefile.in*)
       -        sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
       -      esac
       +for ac_file in $CONFIG_FILES; do
       +        # Support "outfile[:infile[:infile...]]"
       +        case "$ac_file" in
       +          *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
       +        esac
       +        # PO directories have a Makefile.in generated from Makefile.in.in.
       +        case "$ac_file" in */Makefile.in)
       +          # Adjust a relative srcdir.
       +          ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
       +          ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
       +          ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
       +          # In autoconf-2.13 it is called $ac_given_srcdir.
       +          # In autoconf-2.50 it is called $srcdir.
       +          test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
       +          case "$ac_given_srcdir" in
       +            .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
       +            /*) top_srcdir="$ac_given_srcdir" ;;
       +            *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
       +          esac
       +          if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
       +            rm -f "$ac_dir/POTFILES"
       +            test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
       +            sed -e "/^#/d" -e "/^[         ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
       +            test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
       +            sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
       +          fi
       +          ;;
       +        esac
       +      done
        sed -e "/POTFILES =/r po/POTFILES" -e 's/^prefix = /prefix = ${DESTDIR}/' po/Makefile.in > po/Makefile
        exit 0
        EOF
 (DIR) diff --git a/configure.in b/configure.in
       t@@ -9,21 +9,20 @@ AM_CONFIG_HEADER(config.h)
        
        dnl Checks for programs.
        AC_PROG_CC
       +AC_ISC_POSIX
        AC_PROG_INSTALL
        AC_PROG_MAKE_SET
        
       -dnl Do i18n stuff
       -ALL_LINGUAS="de pl pt_BR fr"
       -AM_GNU_GETTEXT
       -if test "$gt_cv_func_gettext_libintl" = "yes"; then
       -    LIBS="-lintl  $LIBS"
       -fi
       +dnl Checks for header files.
       +AC_HEADER_STDC
       +AC_HEADER_SYS_WAIT
       +AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h stdlib.h)
        
       -HAVE_FIXED_GTK="no"
       +dnl Checks for typedefs, structures, and compiler characteristics.
       +AC_HEADER_TIME
       +AC_STRUCT_TM
        
       -localedir=${datadir}/locale
       -AC_SUBST(localedir)
       -dnl AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
       +HAVE_FIXED_GTK="no"
        
        dnl Process client options
        AC_ARG_ENABLE(gui-client,
       t@@ -126,6 +125,16 @@ else
                          [AC_MSG_RESULT([no])])
        fi
        
       +dnl Do i18n stuff
       +ALL_LINGUAS="de pl pt_BR fr"
       +AM_GNU_GETTEXT
       +if test "$gt_cv_func_gettext_libintl" = "yes"; then
       +    LIBS="-lintl  $LIBS"
       +fi
       +
       +localedir=${datadir}/locale
       +AC_SUBST(localedir)
       +
        if test "$GUI_CLIENT" = "yes" ; then
           AC_DEFINE(GUI_CLIENT)
        fi
       t@@ -156,15 +165,6 @@ if test "$GUI_CLIENT" = "yes" -o "$GUI_SERVER" = "yes" ; then
           AC_SUBST(GTKPORT_O)
        fi
        
       -dnl Checks for header files.
       -AC_HEADER_STDC
       -AC_HEADER_SYS_WAIT
       -AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h stdlib.h)
       -
       -dnl Checks for typedefs, structures, and compiler characteristics.
       -AC_HEADER_TIME
       -AC_STRUCT_TM
       -
        dnl Can we use a long long datatype for price_t ?
        AC_CHECK_SIZEOF(long long)
        
 (DIR) diff --git a/intl/ChangeLog b/intl/ChangeLog
       t@@ -1,1086 +1,4 @@
       -1998-04-29  Ulrich Drepper  <drepper@cygnus.com>
       +2001-05-23  GNU  <bug-gnu-utils@gnu.org>
        
       -        * intl/localealias.c (read_alias_file): Use unsigned char for
       -        local variables.  Remove unused variable tp.
       -        * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char *
       -        for type of codeset.  For loosing Solaris systems.
       -        * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset.
       -        * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable
       -        len if not needed.
       -        Patches by Jim Meyering.
       +        * Version 0.10.38 released.
        
       -1998-04-28  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if
       -        mmap is not supported.
       -
       -        * hash-string.h: Don't include <values.h>.
       -
       -1998-04-27  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * textdomain.c: Use strdup is available.
       -
       -        * localealias.c: Define HAVE_MEMPCPY so that we can use this
       -        function.  Define and use semapahores to protect modfication of
       -        global objects when compiling for glibc.  Add code to allow
       -        freeing alias table.
       -
       -        * l10nflist.c: Don't assume stpcpy not being a macro.
       -
       -        * gettextP.h: Define internal_function macri if not already done.
       -        Use glibc byte-swap macros instead of defining SWAP when compiled
       -        for glibc.
       -        (struct loaded_domain): Add elements to allow unloading.
       -
       -        * Makefile.in (distclean): Don't remove libintl.h here.
       -
       -        * bindtextdomain.c: Carry over changes from glibc.  Use strdup if
       -        available.
       -
       -        * dcgettext.c: Don't assume stpcpy not being a macro.  Mark internal
       -        functions.  Add memory freeing code for glibc.
       -
       -        * dgettext.c: Update copyright.
       -
       -        * explodename.c: Include stdlib.h and string.h only if they exist.
       -        Use strings.h eventually.
       -
       -        * finddomain.c: Mark internal functions.  Use strdup if available.
       -        Add memory freeing code for glibc.
       -
       -1997-10-10 20:00  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * libgettext.h: Fix dummy textdomain and bindtextdomain macros.
       -        They should return reasonable values.
       -        Reported by Tom Tromey <tromey@cygnus.com>.
       -
       -1997-09-16 03:33  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined.
       -        * intlh.inst.in: Likewise.
       -        Reported by Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>.
       -
       -        * libintl.glibc: Update from current glibc version.
       -
       -1997-09-06 02:10  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * intlh.inst.in: Reformat copyright.
       -
       -1997-08-19 15:22  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * dcgettext.c (DCGETTEXT): Remove wrong comment.
       -
       -1997-08-16 00:13  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * Makefile.in (install-data): Don't change directory to install.
       -
       -1997-08-01 14:30  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * cat-compat.c: Fix copyright.
       -
       -        * localealias.c: Don't define strchr unless !HAVE_STRCHR.
       -
       -        * loadmsgcat.c: Update copyright.  Fix typos.
       -
       -        * l10nflist.c: Don't define strchr unless !HAVE_STRCHR.
       -        (_nl_make_l10nflist): Handle sponsor and revision correctly.
       -
       -        * gettext.c: Update copyright.
       -        * gettext.h: Likewise.
       -        * hash-string.h: Likewise.
       -
       -        * finddomain.c: Remoave dead code.  Define strchr only if
       -        !HAVE_STRCHR.
       -
       -        * explodename.c: Include <sys/types.h>.
       -
       -        * explodename.c: Reformat copyright text.
       -        (_nl_explode_name): Fix typo.
       -
       -        * dcgettext.c: Define and use __set_errno.
       -        (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is
       -        not defined.
       -
       -        * bindtextdom.c: Pretty printing.
       -
       -1997-05-01 02:25  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * dcgettext.c (guess_category_value): Don't depend on
       -        HAVE_LC_MESSAGES.  We don't need the macro here.
       -        Patch by Bruno Haible <haible@ilog.fr>.
       -
       -        * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL
       -        macro.  Instead use HAVE_LOCALE_NULL and define it when using
       -        glibc, as in dcgettext.c.
       -        Patch by Bruno Haible <haible@ilog.fr>.
       -
       -        * Makefile.in (CPPFLAGS): New variable.  Reported by Franc,ois
       -        Pinard.
       -
       -Mon Mar 10 06:51:17 1997  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * Makefile.in: Implement handling of libtool.
       -
       -        * gettextP.h: Change data structures for use of generic lowlevel
       -        i18n file handling.
       -
       -Wed Dec  4 20:21:18 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * textdomain.c: Put parentheses around arguments of memcpy macro
       -        definition.
       -        * localealias.c: Likewise.
       -        * l10nflist.c: Likewise.
       -        * finddomain.c: Likewise.
       -        * bindtextdom.c: Likewise.
       -        Reported by Thomas Esken.
       -
       -Mon Nov 25 22:57:51 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * textdomain.c: Move definition of `memcpy` macro to right
       -        position.
       -
       -Fri Nov 22 04:01:58 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using
       -         bcopy if not already defined.  Reported by Thomas Esken.
       -        * bindtextdom.c: Likewise.
       -        * l10nflist.c: Likewise.
       -        * localealias.c: Likewise.
       -        * textdomain.c: Likewise.
       -
       -Tue Oct 29 11:10:27 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * Makefile.in (libdir): Change to use exec_prefix instead of
       -         prefix.  Reported by Knut-HåvardAksnes <etokna@eto.ericsson.se>.
       -
       -Sat Aug 31 03:07:09 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * l10nflist.c (_nl_normalize_codeset): We convert to lower case,
       -        so don't prepend uppercase `ISO' for only numeric arg.
       -
       -Fri Jul 19 00:15:46 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after
       -        definition of _GNU_SOURCE.  Patch by Roland McGrath.
       -
       -        * Makefile.in (uninstall): Fix another bug with `for' loop and
       -        empty arguments.  Patch by Jim Meyering.  Correct name os
       -        uninstalled files: no intl- prefix anymore.
       -
       -        * Makefile.in (install-data): Again work around shells which
       -        cannot handle mpty for list.  Reported by Jim Meyering.
       -
       -Sat Jul 13 18:11:35 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * Makefile.in (install): Split goal.  Now depend on install-exec
       -        and install-data.
       -        (install-exec, install-data): New goals.  Created from former
       -        install goal.
       -        Reported by Karl Berry.
       -
       -Sat Jun 22 04:58:14 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * Makefile.in (MKINSTALLDIRS): New variable.  Path to
       -        mkinstalldirs script.
       -        (install): use MKINSTALLDIRS variable or if the script is not present
       -        try to find it in the $top_scrdir).
       -
       -Wed Jun 19 02:56:56 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * l10nflist.c: Linux libc *partly* includes the argz_* functions.
       -        Grr.  Work around by renaming the static version and use macros
       -        for renaming.
       -
       -Tue Jun 18 20:11:17 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * l10nflist.c: Correct presence test macros of __argz_* functions.
       -
       -        * l10nflist.c: Include <argz.h> based on test of it instead when
       -        __argz_* functions are available.
       -        Reported by Andreas Schwab.
       -
       -Thu Jun 13 15:17:44 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * explodename.c, l10nflist.c: Define NULL for dumb systems.
       -
       -Tue Jun 11 17:05:13 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * intlh.inst.in, libgettext.h (dcgettext): Rename local variable
       -        result to __result to prevent name clash.
       -
       -        * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to
       -        get prototype for stpcpy and strcasecmp.
       -
       -        * intlh.inst.in, libgettext.h: Move declaration of
       -        `_nl_msg_cat_cntr' outside __extension__ block to prevent warning
       -        from gcc's -Wnested-extern option.
       -
       -Fri Jun  7 01:58:00 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * Makefile.in (install): Remove comment.
       -
       -Thu Jun  6 17:28:17 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * Makefile.in (install): Work around for another Buglix stupidity.
       -        Always use an `else' close for `if's.  Reported by Nelson Beebe.
       -
       -        * Makefile.in (intlh.inst): Correct typo in phony rule.
       -        Reported by Nelson Beebe.
       -
       -Thu Jun  6 01:49:52 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * dcgettext.c (read_alias_file): Rename variable alloca_list to
       -        block_list as the macro calls assume.
       -        Patch by Eric Backus.
       -
       -        * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using
       -        malloc.
       -        (read_alias_file): Rename varriabe alloca_list to block_list as the
       -        macro calls assume.
       -        Patch by Eric Backus.
       -
       -        * l10nflist.c: Correct conditional for <argz.h> inclusion.
       -        Reported by Roland McGrath.
       -
       -        * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not
       -        all-@USE_NLS@.
       -
       -        * Makefile.in (install): intlh.inst comes from local dir, not
       -        $(srcdir).
       -
       -        * Makefile.in (intlh.inst): Special handling of this goal.  If
       -        used in gettext, this is really a rul to construct this file.  If
       -        used in any other package it is defined as a .PHONY rule with
       -        empty body.
       -
       -        * finddomain.c: Extract locale file information handling into
       -        l10nfile.c.  Rename local stpcpy__ function to stpcpy.
       -
       -        * dcgettext.c (stpcpy): Add local definition.
       -
       -        * l10nflist.c: Solve some portability problems.  Patches partly by
       -        Thomas Esken.  Add local definition of stpcpy.
       -
       -Tue Jun  4 02:47:49 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * intlh.inst.in: Don't depend including <locale.h> on
       -        HAVE_LOCALE_H.  Instead configure must rewrite this fiile
       -        depending on the result of the configure run.
       -
       -        * Makefile.in (install): libintl.inst is now called intlh.inst.
       -        Add rules for updating intlh.inst from intlh.inst.in.
       -
       -        * libintl.inst: Renamed to intlh.inst.in.
       -
       -        * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1
       -        because gcc has __buitlin_alloca.
       -        Reported by Roland McGrath.
       -
       -Mon Jun  3 00:32:16 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * Makefile.in (installcheck): New goal to fulfill needs of
       -        automake's distcheck.
       -
       -        * Makefile.in (install): Reorder commands so that VERSION is
       -        found.
       -
       -        * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in
       -        @datadir@/gettext.
       -        (COMSRCS): Add l10nfile.c.
       -        (OBJECTS): Add l10nfile.o.
       -        (DISTFILES): Rename to DISTFILE.normal.  Remove $(DISTFILES.common).
       -        (DISTFILE.gettext): Remove $(DISTFILES.common).
       -        (all-gettext): Remove goal.
       -        (install): If $(PACKAGE) = gettext install, otherwose do nothing.  No
       -        package but gettext itself should install libintl.h + headers.
       -        (dist): Extend goal to work for gettext, too.
       -        (dist-gettext): Remove goal.
       -
       -        * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc.
       -
       -Sun Jun  2 17:33:06 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * loadmsgcat.c (_nl_load_domain): Parameter is now comes from
       -        find_l10nfile.
       -
       -Sat Jun  1 02:23:03 1996  Ulrich Drepper  <drepper@cygnus.com>
       -
       -        * l10nflist.c (__argz_next): Add definition.
       -
       -        * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca
       -        code.  Use new l10nfile handling.
       -
       -        * localealias.c [!HAVE_ALLOCA]: Add code for handling missing
       -        alloca code.
       -
       -        * l10nflist.c: Initial revision.
       -
       -Tue Apr  2 18:51:18 1996  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (all-gettext): New goal.  Same as all-yes.
       -
       -Thu Mar 28 23:01:22 1996  Karl Eichwalder  <ke@ke.central.de>
       -
       -        * Makefile.in (gettextsrcdir): Define using @datadir@.
       -
       -Tue Mar 26 12:39:14 1996  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c: Include <ctype.h>.  Reported by Roland McGrath.
       -
       -Sat Mar 23 02:00:35 1996  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing
       -        with external declaration.
       -
       -Sat Mar  2 00:47:09 1996  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (all-no): Rename from all_no.
       -
       -Sat Feb 17 00:25:59 1996  Ulrich Drepper  <drepper@myware>
       -
       -        * gettextP.h [loaded_domain]: Array `successor' must now contain up
       -        to 63 elements (because of codeset name normalization).
       -
       -        * finddomain.c: Implement codeset name normalization.
       -
       -Thu Feb 15 04:39:09 1996  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (all): Define to `all-@USE_NLS@'.
       -        (all-yes, all_no): New goals.  `all-no' is noop, `all-yes'
       -        is former all.
       -
       -Mon Jan 15 21:46:01 1996  Howard Gayle  <howard@hal.com>
       -
       -        * localealias.c (alias_compare): Increment string pointers in loop
       -        of strcasecmp replacement.
       -
       -Fri Dec 29 21:16:34 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (install-src): Who commented this goal out ? :-)
       -
       -Fri Dec 29 15:08:16 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * dcgettext.c (DCGETTEXT): Save `errno'.  Failing system calls
       -        should not effect it because a missing catalog is no error.
       -        Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>.
       -
       -Tue Dec 19 22:09:13 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (Makefile): Explicitly use $(SHELL) for running
       -        shell scripts.
       -
       -Fri Dec 15 17:34:59 1995  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
       -
       -        * Makefile.in (install-src): Only install library and header when
       -        we use the own implementation.  Don't do it when using the
       -        system's gettext or catgets functions.
       -
       -        * dcgettext.c (find_msg): Must not swap domain->hash_size here.
       -
       -Sat Dec  9 16:24:37 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * localealias.c, libintl.inst, libgettext.h, hash-string.h,
       -        gettextP.h, finddomain.c, dcgettext.c, cat-compat.c:
       -        Use PARAMS instead of __P.  Suggested by Roland McGrath.
       -
       -Tue Dec  5 11:39:14 1995  Larry Schwimmer  <rosebud@cyclone.stanford.edu>
       -
       -        * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if
       -        !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty.
       -
       -Mon Dec  4 15:42:07 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (install-src):
       -        Install libintl.inst instead of libintl.h.install.
       -
       -Sat Dec  2 22:51:38 1995  Marcus Daniels  <marcus@sysc.pdx.edu>
       -
       -        * cat-compat.c (textdomain):
       -        Reverse order in which files are tried you load.  First
       -        try local file, when this failed absolute path.
       -
       -Wed Nov 29 02:03:53 1995  Nelson H. F. Beebe  <beebe@math.utah.edu>
       -
       -        * cat-compat.c (bindtextdomain): Add missing { }.
       -
       -Sun Nov 26 18:21:41 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * libintl.inst: Add missing __P definition.  Reported by Nelson Beebe.
       -
       -        * Makefile.in:
       -        Add dummy `all' and `dvi' goals.  Reported by Tom Tromey.
       -
       -Sat Nov 25 16:12:01 1995  Franc,ois Pinard  <pinard@iro.umontreal.ca>
       -
       -        * hash-string.h: Capitalize arguments of macros.
       -
       -Sat Nov 25 12:01:36 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (DISTFILES): Prevent files names longer than 13
       -        characters.  libintl.h.glibc->libintl.glibc,
       -        libintl.h.install->libintl.inst.  Reported by Joshua R. Poulson.
       -
       -Sat Nov 25 11:31:12 1995  Eric Backus  <ericb@lsid.hp.com>
       -
       -        * dcgettext.c: Fix bug in preprocessor conditionals.
       -
       -Sat Nov 25 02:35:27 1995  Nelson H. F. Beebe  <beebe@math.utah.edu>
       -
       -        * libgettext.h: Solaris cc does not understand
       -         #if !SYMBOL1 && !SYMBOL2.  Sad        but true.
       -
       -Thu Nov 23 16:22:14 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * hash-string.h (hash_string):
       -        Fix for machine with >32 bit `unsigned long's.
       -
       -        * dcgettext.c (DCGETTEXT):
       -        Fix horrible bug in loop for alternative translation.
       -
       -Thu Nov 23 01:45:29 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed:
       -        Some further simplifications in message number generation.
       -
       -Mon Nov 20 21:08:43 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * libintl.h.glibc: Use __const instead of const in prototypes.
       -
       -        * Makefile.in (install-src):
       -        Install libintl.h.install instead of libintl.h.  This
       -        is a stripped-down version.  Suggested by Peter Miller.
       -
       -        * libintl.h.install, libintl.h.glibc: Initial revision.
       -
       -        * localealias.c (_nl_expand_alias, read_alias_file):
       -        Protect prototypes in type casts by __P.
       -
       -Tue Nov 14 16:43:58 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * hash-string.h: Correct prototype for hash_string.
       -
       -Sun Nov 12 12:42:30 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * hash-string.h (hash_string): Add prototype.
       -
       -        * gettextP.h: Fix copyright.
       -        (SWAP): Add prototype.
       -
       -Wed Nov  8 22:56:33 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * localealias.c (read_alias_file): Forgot sizeof.
       -        Avoid calling *printf function.  This introduces a big overhead.
       -        Patch by Roland McGrath.
       -
       -Tue Nov  7 14:21:08 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy.
       -
       -        * finddomain.c (stpcpy):
       -        Define substitution function local.  The macro was to flaky.
       -
       -        * cat-compat.c: Fix typo.
       -
       -        * xopen-msg.sed, linux-msg.sed:
       -        While bringing message number to right place only accept digits.
       -
       -        * linux-msg.sed, xopen-msg.sed: Now that the counter does not have
       -        leading 0s we don't need to remove them.  Reported by Marcus
       -        Daniels.
       -
       -        * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in
       -        dependency.  Reported by Marcus Daniels.
       -
       -        * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement.
       -        Generally cleanup using #if instead of #ifndef.
       -
       -        * Makefile.in: Correct typos in comment.  By Franc,ois Pinard.
       -
       -Mon Nov  6 00:27:02 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (install-src): Don't install libintl.h and libintl.a
       -        if we use an available gettext implementation.
       -
       -Sun Nov  5 22:02:08 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS.  Reported
       -        by Franc,ois Pinard.
       -
       -        * libgettext.h: Use #if instead of #ifdef/#ifndef.
       -
       -        * finddomain.c:
       -        Comments describing what has to be done should start with FIXME.
       -
       -Sun Nov  5 19:38:01 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (DISTFILES): Split.  Use DISTFILES with normal meaning.
       -        DISTFILES.common names the files common to both dist goals.
       -        DISTFILES.gettext are the files only distributed in GNU gettext.
       -
       -Sun Nov  5 17:32:54 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * dcgettext.c (DCGETTEXT): Correct searching in derived locales.
       -        This was necessary since a change in _nl_find_msg several weeks
       -        ago.  I really don't know this is still not fixed.
       -
       -Sun Nov  5 12:43:12 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL.  This
       -        might mark a special condition.
       -
       -        * finddomain.c (make_entry_rec): Don't make illegal entry as decided.
       -
       -        * Makefile.in (dist): Suppress error message when ln failed.
       -        Get files from $(srcdir) explicitly.
       -
       -        * libgettext.h (gettext_const): Rename to gettext_noop.
       -
       -Fri Nov  3 07:36:50 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c (make_entry_rec):
       -        Protect against wrong locale names by testing mask.
       -
       -        * libgettext.h (gettext_const): Add macro definition.
       -        Capitalize macro arguments.
       -
       -Thu Nov  2 23:15:51 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c (_nl_find_domain):
       -        Test for pointer != NULL before accessing value.
       -        Reported by Tom Tromey.
       -
       -        * gettext.c (NULL):
       -        Define as (void*)0 instad of 0.  Reported by Franc,ois Pinard.
       -
       -Mon Oct 30 21:28:52 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering.
       -
       -Sat Oct 28 23:20:47 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * libgettext.h: Disable dcgettext optimization for Solaris 2.3.
       -
       -        * localealias.c (alias_compare):
       -        Peter Miller reported that tolower in some systems is
       -        even dumber than I thought.  Protect call by `isupper'.
       -
       -Fri Oct 27 22:22:51 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (libdir, includedir): New variables.
       -        (install-src): Install libintl.a and libintl.h in correct dirs.
       -
       -Fri Oct 27 22:07:29 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c.
       -
       -        * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques.
       -
       -        * localealias.c:
       -        Fix typo and superflous test.  Reported by Christian von Roques.
       -
       -Fri Oct  6 11:52:05 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c (_nl_find_domain):
       -        Correct some remainder from the pre-CEN syntax.  Now
       -        we don't have a constant number of successors anymore.
       -
       -Wed Sep 27 21:41:13 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (DISTFILES): Add libintl.h.glibc.
       -
       -        * Makefile.in (dist-libc): Add goal for packing sources for glibc.
       -        (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc.
       -
       -        * loadmsgcat.c: Forget to continue #if line.
       -
       -        * localealias.c:
       -        [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name
       -        space clean.
       -
       -        * dcgettext.c, finddomain.c: Better comment to last change.
       -
       -        * loadmsgcat.c:
       -        [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to
       -        __fstat, __open, __close, __read, __mmap, and __munmap resp
       -        to keep ANSI C name space clean.
       -
       -        * finddomain.c:
       -        [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean.
       -
       -        * dcgettext.c:
       -        [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to
       -        keep ANSI C name space clean.
       -
       -        * libgettext.h:
       -        Include sys/types.h for those old SysV systems out there.
       -        Reported by Francesco Potorti`.
       -
       -        * loadmsgcat.c (use_mmap): Define if compiled for glibc.
       -
       -        * bindtextdom.c: Include all those standard headers
       -        unconditionally if _LIBC is defined.
       -
       -        * finddomain.c: Fix 2 times defiend -> defined.
       -
       -        * textdomain.c: Include libintl.h instead of libgettext.h when
       -        compiling for glibc.  Include all those standard headers
       -        unconditionally if _LIBC is defined.
       -
       -        * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc.
       -
       -        * gettext.c:
       -        Include libintl.h instead of libgettext.h when compiling for glibc.
       -        Get NULL from stddef.h if we compile for glibc.
       -
       -        * finddomain.c: Include libintl.h instead of libgettext.h when
       -        compiling for glibc.  Include all those standard headers
       -        unconditionally if _LIBC is defined.
       -
       -        * dcgettext.c: Include all those standard headers unconditionally
       -        if _LIBC is defined.
       -
       -        * dgettext.c: If compiled in glibc include libintl.h instead of
       -        libgettext.h.
       -        (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc.
       -
       -        * dcgettext.c: If compiled in glibc include libintl.h instead of
       -        libgettext.h.
       -        (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc.
       -
       -        * bindtextdom.c:
       -        If compiled in glibc include libintl.h instead of libgettext.h.
       -
       -Mon Sep 25 22:23:06 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0.
       -        Reported by Marcus Daniels.
       -
       -        * cat-compat.c (bindtextdomain):
       -        String used in putenv must not be recycled.
       -        Reported by Marcus Daniels.
       -
       -        * libgettext.h (__USE_GNU_GETTEXT):
       -        Additional symbol to signal that we use GNU gettext
       -        library.
       -
       -        * cat-compat.c (bindtextdomain):
       -        Fix bug with the strange stpcpy replacement.
       -        Reported by Nelson Beebe.
       -
       -Sat Sep 23 08:23:51 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * cat-compat.c: Include <string.h> for stpcpy prototype.
       -
       -        * localealias.c (read_alias_file):
       -        While expand strdup code temporary variable `cp' hided
       -        higher level variable with same name.  Rename to `tp'.
       -
       -        * textdomain.c (textdomain):
       -        Avoid warning by using temporary variable in strdup code.
       -
       -        * finddomain.c (_nl_find_domain): Remove unused variable `application'.
       -
       -Thu Sep 21 15:51:44 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * localealias.c (alias_compare):
       -        Use strcasecmp() only if available.  Else use
       -        implementation in place.
       -
       -        * intl-compat.c:
       -        Wrapper functions now call *__ functions instead of __*.
       -
       -        * libgettext.h: Declare prototypes for *__ functions instead for __*.
       -
       -        * cat-compat.c, loadmsgcat.c:
       -        Don't use xmalloc, xstrdup, and stpcpy.  These functions are not part
       -        of the standard libc and so prevent libintl.a from being used
       -        standalone.
       -
       -        * bindtextdom.c:
       -        Don't use xmalloc, xstrdup, and stpcpy.  These functions are not part
       -        of the standard libc and so prevent libintl.a from being used
       -        standalone.
       -        Rename to bindtextdomain__ if not used in GNU C Library.
       -
       -        * dgettext.c:
       -        Rename function to dgettext__ if not used in GNU C Library.
       -
       -        * gettext.c:
       -        Don't use xmalloc, xstrdup, and stpcpy.  These functions are not part
       -        of the standard libc and so prevent libintl.a from being used
       -        standalone.
       -        Functions now called gettext__ if not used in GNU C Library.
       -
       -        * dcgettext.c, localealias.c, textdomain.c, finddomain.c:
       -        Don't use xmalloc, xstrdup, and stpcpy.  These functions are not part
       -        of the standard libc and so prevent libintl.a from being used
       -        standalone.
       -
       -Sun Sep 17 23:14:49 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c: Correct some bugs in handling of CEN standard
       -         locale definitions.
       -
       -Thu Sep  7 01:49:28 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c: Implement CEN syntax.
       -
       -        * gettextP.h (loaded_domain): Extend number of successors to 31.
       -
       -Sat Aug 19 19:25:29 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (aliaspath): Remove path to X11 locale dir.
       -
       -        * Makefile.in: Make install-src depend on install.  This helps
       -         gettext to install the sources and other packages can use the
       -         install goal.
       -
       -Sat Aug 19 15:19:33 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (uninstall): Remove stuff installed by install-src.
       -
       -Tue Aug 15 13:13:53 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * VERSION.in: Initial revision.
       -
       -        * Makefile.in (DISTFILES):
       -        Add VERSION file.  This is not necessary for gettext, but
       -        for other packages using this library.
       -
       -Tue Aug 15 06:16:44 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * gettextP.h (_nl_find_domain):
       -        New prototype after changing search strategy.
       -
       -        * finddomain.c (_nl_find_domain):
       -        We now try only to find a specified catalog.  Fall back to other
       -        catalogs listed in the locale list is now done in __dcgettext.
       -
       -        * dcgettext.c (__dcgettext):
       -        Now we provide message fall back even to different languages.
       -        I.e. if a message is not available in one language all the other
       -         in the locale list a tried.  Formerly fall back was only possible
       -         within one language.  Implemented by moving one loop from
       -         _nl_find_domain to here.
       -
       -Mon Aug 14 23:45:50 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (gettextsrcdir):
       -        Directory where source of GNU gettext library are made
       -        available.
       -        (INSTALL, INSTALL_DATA): Programs used for installing sources.
       -        (gettext-src): New.  Rule to install GNU gettext sources for use in
       -        gettextize shell script.
       -
       -Sun Aug 13 14:40:48 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * loadmsgcat.c (_nl_load_domain):
       -        Use mmap for loading only when munmap function is
       -        also available.
       -
       -        * Makefile.in (install): Depend on `all' goal.
       -
       -Wed Aug  9 11:04:33 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * localealias.c (read_alias_file):
       -        Do not overwrite '\n' when terminating alias value string.
       -
       -        * localealias.c (read_alias_file):
       -        Handle long lines.  Ignore the rest not fitting in
       -        the buffer after the initial `fgets' call.
       -
       -Wed Aug  9 00:54:29 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * gettextP.h (_nl_load_domain):
       -        Add prototype, replacing prototype for _nl_load_msg_cat.
       -
       -        * finddomain.c (_nl_find_domain):
       -        Remove unneeded variable filename and filename_len.
       -        (expand_alias): Remove prototype because functions does not
       -         exist anymore.
       -
       -        * localealias.c (read_alias_file):
       -        Change type of fname_len parameter to int.
       -        (xmalloc): Add prototype.
       -
       -        * loadmsgcat.c: Better prototypes for xmalloc.
       -
       -Tue Aug  8 22:30:39 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c (_nl_find_domain):
       -        Allow alias name to be constructed from the four components.
       -
       -        * Makefile.in (aliaspath): New variable.  Set to preliminary value.
       -        (SOURCES): Add localealias.c.
       -        (OBJECTS): Add localealias.o.
       -
       -        * gettextP.h: Add prototype for _nl_expand_alias.
       -
       -        * finddomain.c: Aliasing handled in intl/localealias.c.
       -
       -        * localealias.c: Aliasing for locale names.
       -
       -        * bindtextdom.c: Better prototypes for xmalloc and xstrdup.
       -
       -Mon Aug  7 23:47:42 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (DISTFILES): gettext.perl is now found in misc/.
       -
       -        * cat-compat.c (bindtextdomain):
       -        Correct implementation.  dirname parameter was not used.
       -        Reported by Marcus Daniels.
       -
       -        * gettextP.h (loaded_domain):
       -        New fields `successor' and `decided' for oo, lazy
       -        message handling implementation.
       -
       -        * dcgettext.c:
       -        Adopt for oo, lazy message handliing.
       -          Now we can inherit translations from less specific locales.
       -        (find_msg): New function.
       -
       -        * loadmsgcat.c, finddomain.c:
       -        Complete rewrite.  Implement oo, lazy message handling :-).
       -          We now have an additional environment variable `LANGUAGE' with
       -         a higher priority than LC_ALL for the LC_MESSAGE locale.
       -          Here we can set a colon separated list of specifications each
       -         of the form `language[_territory[.codeset]][@modifier]'.
       -
       -Sat Aug  5 09:55:42 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c (unistd.h):
       -        Include to get _PC_PATH_MAX defined on system having it.
       -
       -Fri Aug  4 22:42:00 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * finddomain.c (stpcpy): Include prototype.
       -
       -        * Makefile.in (dist): Remove `copying instead' message.
       -
       -Wed Aug  2 18:52:03 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (ID, TAGS): Do not use $^.
       -
       -Tue Aug  1 20:07:11 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (TAGS, ID): Use $^ as command argument.
       -        (TAGS): Give etags -o option t write to current directory,
       -         not $(srcdir).
       -        (ID): Use $(srcdir) instead os $(top_srcdir)/src.
       -        (distclean): Remove ID.
       -
       -Sun Jul 30 11:51:46 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (gnulocaledir):
       -        New variable, always using share/ for data directory.
       -        (DEFS): Add GNULOCALEDIR, used in finddomain.c.
       -
       -        * finddomain.c (_nl_default_dirname):
       -        Set to GNULOCALEDIR, because it always has to point
       -        to the directory where GNU gettext Library writes it to.
       -
       -        * intl-compat.c (textdomain, bindtextdomain):
       -        Undefine macros before function definition.
       -
       -Sat Jul 22 01:10:02 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * libgettext.h (_LIBINTL_H):
       -        Protect definition in case where this file is included as
       -        libgettext.h on Solaris machines.  Add comment about this.
       -
       -Wed Jul 19 02:36:42 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * intl-compat.c (textdomain): Correct typo.
       -
       -Wed Jul 19 01:51:35 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * dcgettext.c (dcgettext): Function now called __dcgettext.
       -
       -        * dgettext.c (dgettext): Now called __dgettext and calls
       -         __dcgettext.
       -
       -        * gettext.c (gettext):
       -        Function now called __gettext and calls __dgettext.
       -
       -        * textdomain.c (textdomain): Function now called __textdomain.
       -
       -        * bindtextdom.c (bindtextdomain): Function now called
       -         __bindtextdomain.
       -
       -        * intl-compat.c: Initial revision.
       -
       -        * Makefile.in (SOURCES): Add intl-compat.c.
       -        (OBJECTS): We always compile the GNU gettext library functions.
       -          OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o,
       -         and intl-compat.o.
       -          (GETTOBJS): Contains now only intl-compat.o.
       -
       -        * libgettext.h:
       -        Re-include protection matches dualistic character of libgettext.h.
       -        For all functions in GNU gettext library define __ counter part.
       -
       -        * finddomain.c (strchr): Define as index if not found in C library.
       -        (_nl_find_domain): For relative paths paste / in between.
       -
       -Tue Jul 18 16:37:45 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h.
       -
       -        * xopen-msg.sed: Fix bug with `msgstr ""' lines.
       -        A little bit better comments.
       -
       -Tue Jul 18 01:18:27 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in:
       -        po-mode.el, makelinks, combine-sh are now found in ../misc.
       -
       -        * po-mode.el, makelinks, combine-sh, elisp-comp:
       -        Moved to ../misc/.
       -
       -        * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__.
       -
       -Sun Jul 16 22:33:02 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (INSTALL, INSTALL_DATA): New variables.
       -        (install-data, uninstall): Install/uninstall .elc file.
       -
       -        * po-mode.el (Installation comment):
       -        Add .pox as possible extension of .po files.
       -
       -Sun Jul 16 13:23:27 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * elisp-comp: Complete new version by Franc,ois: This does not
       -         fail when not compiling in the source directory.
       -
       -Sun Jul 16 00:12:17 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (../po/cat-id-tbl.o):
       -        Use $(MAKE) instead of make for recursive make.
       -
       -        * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh.
       -        (install-exec): Add missing dummy goal.
       -        (install-data, uninstall): @ in multi-line shell command at
       -         beginning, not in front of echo.  Reported by Eric Backus.
       -
       -Sat Jul 15 00:21:28 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (DISTFILES):
       -        Rename libgettext.perl to gettext.perl to fit in 14 chars
       -        file systems.
       -
       -        * gettext.perl:
       -         Rename to gettext.perl to fit in 14 chars file systems.
       -
       -Thu Jul 13 23:17:20 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * cat-compat.c: If !STDC_HEADERS try to include malloc.h.
       -
       -Thu Jul 13 20:55:02 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * po2tbl.sed.in: Pretty printing.
       -
       -        * linux-msg.sed, xopen-msg.sed:
       -        Correct bugs with handling substitute flags in branches.
       -
       -        * hash-string.h (hash_string):
       -        Old K&R compilers don't under stand `unsigned char'.
       -
       -        * gettext.h (nls_uint32):
       -        Some old K&R compilers (eg HP) don't understand `unsigned int'.
       -
       -        * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes.
       -
       -Thu Jul 13 01:34:33 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (ELCFILES): New variable.
       -        (DISTFILES): Add elisp-comp.
       -        Add implicit rule for .el -> .elc compilation.
       -        (install-data): install $ELCFILES
       -        (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp.
       -
       -        * elisp-comp: Initial revision
       -
       -Wed Jul 12 16:14:52 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in:
       -        cat-id-tbl.c is now found in po/.  This enables us to use an identical
       -        intl/ directory in all packages.
       -
       -        * dcgettext.c (dcgettext): hashing does not work for table size <= 2.
       -
       -        * textdomain.c: fix typo (#if def -> #if defined)
       -
       -Tue Jul 11 18:44:43 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in (stamp-cat-id): use top_srcdir to address source files
       -        (DISTFILES,distclean): move tupdate.perl to src/
       -
       -        * po-to-tbl.sed.in:
       -        add additional jump to clear change flag to recognize multiline strings
       -
       -Tue Jul 11 01:32:50 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * textdomain.c: Protect inclusion of stdlib.h and string.h.
       -
       -        * loadmsgcat.c: Protect inclusion of stdlib.h.
       -
       -        * libgettext.h: Protect inclusion of locale.h.
       -        Allow use in C++ programs.
       -        Define NULL is not happened already.
       -
       -        * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of
       -        po-to-tbl.sed.
       -        (distclean): remove po-to-tbl.sed and tupdate.perl.
       -
       -        * tupdate.perl.in: Substitute Perl path even in exec line.
       -        Don't include entries without translation from old .po file.
       -
       -Tue Jul  4 00:41:51 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * tupdate.perl.in: use "Updated: " in msgid "".
       -
       -        * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR).
       -         Define getenv if !__STDC__.
       -
       -        * bindtextdom.c: Protect stdlib.h and string.h inclusion.
       -         Define free if !__STDC__.
       -
       -        * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
       -         Define free if !__STDC__.
       -
       -        * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
       -
       -Mon Jul  3 23:56:30 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR.
       -        Remove unneeded $(srcdir) from Makefile.in dependency.
       -
       -        * makelinks: Add copyright and short description.
       -
       -        * po-mode.el: Last version for 0.7.
       -
       -        * tupdate.perl.in: Fix die message.
       -
       -        * dcgettext.c: Protect include of string.h.
       -
       -        * gettext.c: Protect include of stdlib.h and further tries to get NULL.
       -
       -        * finddomain.c: Some corrections in includes.
       -
       -        * Makefile.in (INCLUDES): Prune list correct path to Makefile.in.
       -
       -        * po-to-tbl.sed: Adopt for new .po file format.
       -
       -        * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format.
       -
       -Sun Jul  2 23:55:03 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * tupdate.perl.in: Complete rewrite for new .po file format.
       -
       -Sun Jul  2 02:06:50 1995  Ulrich Drepper  <drepper@myware>
       -
       -        * First official release.  This directory contains all the code
       -        needed to internationalize own packages.  It provides functions
       -        which allow to use the X/Open catgets function with an interface
       -        like the Uniforum gettext function.  For system which does not
       -        have neither of those a complete implementation is provided.
 (DIR) diff --git a/intl/Makefile.in b/intl/Makefile.in
       t@@ -1,5 +1,5 @@
        # Makefile for directory with message catalog handling in GNU NLS Utilities.
       -# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
       +# Copyright (C) 1995-1998, 2000, 2001 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
       t@@ -28,75 +28,106 @@ VPATH = @srcdir@
        prefix = @prefix@
        exec_prefix = @exec_prefix@
        transform = @program_transform_name@
       -libdir = $(exec_prefix)/lib
       -includedir = $(prefix)/include
       -datadir = $(prefix)/@DATADIRNAME@
       +libdir = @libdir@
       +includedir = @includedir@
       +datadir = @datadir@
        localedir = $(datadir)/locale
       -gnulocaledir = $(prefix)/share/locale
       -gettextsrcdir = @datadir@/gettext/intl
       -aliaspath = $(localedir):.
       +gettextsrcdir = $(datadir)/gettext/intl
       +aliaspath = $(localedir)
        subdir = intl
        
        INSTALL = @INSTALL@
        INSTALL_DATA = @INSTALL_DATA@
        MKINSTALLDIRS = @MKINSTALLDIRS@
       +mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
        
       -l = @l@
       +l = @INTL_LIBTOOL_SUFFIX_PREFIX@
        
        AR = ar
        CC = @CC@
        LIBTOOL = @LIBTOOL@
        RANLIB = @RANLIB@
       +YACC = @INTLBISON@ -y -d
       +YFLAGS = --name-prefix=__gettext
        
       -DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
       --DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@
       +DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
       +-DLIBDIR=\"$(libdir)\" @DEFS@
        CPPFLAGS = @CPPFLAGS@
        CFLAGS = @CFLAGS@
        LDFLAGS = @LDFLAGS@
        
        COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
        
       -HEADERS = $(COMHDRS) libgettext.h loadinfo.h
       +HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h
        COMHDRS = gettext.h gettextP.h hash-string.h
       -SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
       +SOURCES = $(COMSRCS) intl-compat.c
        COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
        finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
       -explodename.c
       +explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
       +localcharset.c
        OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
        finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
       -explodename.$lo
       -CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
       +explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
       +plural.$lo localcharset.$lo
        GETTOBJS = intl-compat.$lo
       -DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
       -xopen-msg.sed $(HEADERS) $(SOURCES)
       +DISTFILES.common = Makefile.in \
       +config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
       +DISTFILES.generated = plural.c
        DISTFILES.normal = VERSION
       -DISTFILES.gettext = libintl.glibc intlh.inst.in
       +DISTFILES.gettext = libintl.glibc
       +DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c
       +
       +# Libtool's library version information for libintl.
       +# Before making a gettext release, the gettext maintainer must change this
       +# according to the libtool documentation, section "Library interface versions".
       +# Maintainers of other packages that include the intl directory must *not*
       +# change these values.
       +LTV_CURRENT=1
       +LTV_REVISION=1
       +LTV_AGE=0
        
        .SUFFIXES:
       -.SUFFIXES: .c .o .lo
       +.SUFFIXES: .c .y .o .lo .sin .sed
        .c.o:
                $(COMPILE) $<
        .c.lo:
                $(LIBTOOL) --mode=compile $(COMPILE) $<
        
       -INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib
       +.y.c:
       +        $(YACC) $(YFLAGS) --output $@ $<
       +        rm -f $*.h
        
       -all: all-@USE_INCLUDED_LIBINTL@
       +.sin.sed:
       +        sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
       +        mv t-$@ $@
       +
       +INCLUDES = -I.. -I. -I$(top_srcdir)/intl
        
       -all-yes: libintl.$la intlh.inst
       -all-no:
       +all: all-@USE_INCLUDED_LIBINTL@
       +all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
       +all-no: all-no-@BUILD_INCLUDED_LIBINTL@
       +all-no-yes: libgnuintl.$la
       +all-no-no:
        
       -libintl.a: $(OBJECTS)
       +libintl.a libgnuintl.a: $(OBJECTS)
                rm -f $@
                $(AR) cru $@ $(OBJECTS)
                $(RANLIB) $@
        
       -libintl.la: $(OBJECTS)
       -        $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
       -                   -version-info 1:0 -rpath $(libdir)
       +libintl.la libgnuintl.la: $(OBJECTS)
       +        $(LIBTOOL) --mode=link \
       +          $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
       +          $(OBJECTS) @LIBICONV@ \
       +          -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
       +          -rpath $(libdir) \
       +          -no-undefined
        
       -../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
       -        cd ../po && $(MAKE) cat-id-tbl.$lo
       +libintl.h: libgnuintl.h
       +        cp $(srcdir)/libgnuintl.h libintl.h
       +
       +charset.alias: config.charset
       +        $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
       +        mv t-$@ $@
        
        check: all
        
       t@@ -104,36 +135,70 @@ check: all
        # only use the library should use install instead.
        
        # We must not install the libintl.h/libintl.a files if we are on a
       -# system which has the gettext() function in its C library or in a
       -# separate library or use the catgets interface.  A special case is
       -# where configure found a previously installed GNU gettext library.
       +# system which has the GNU gettext() function in its C library or in a
       +# separate library.
        # If you want to use the one which comes with this version of the
        # package, you have to use `configure --with-included-gettext'.
        install: install-exec install-data
        install-exec: all
                if test "$(PACKAGE)" = "gettext" \
                   && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
       -          if test -r $(MKINSTALLDIRS); then \
       -            $(MKINSTALLDIRS) $(libdir) $(includedir); \
       +          $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
       +          $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
       +          $(LIBTOOL) --mode=install \
       +            $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
       +        else \
       +          : ; \
       +        fi
       +        if test '@USE_INCLUDED_LIBINTL@' = yes; then \
       +          $(mkinstalldirs) $(DESTDIR)$(libdir); \
       +          temp=$(DESTDIR)$(libdir)/t-charset.alias; \
       +          dest=$(DESTDIR)$(libdir)/charset.alias; \
       +          if test -f $(DESTDIR)$(libdir)/charset.alias; then \
       +            orig=$(DESTDIR)$(libdir)/charset.alias; \
       +            sed -f ref-add.sed $$orig > $$temp; \
       +            $(INSTALL_DATA) $$temp $$dest; \
       +            rm -f $$temp; \
                  else \
       -            $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
       +            if test @GLIBC21@ = no; then \
       +              orig=charset.alias; \
       +              sed -f ref-add.sed $$orig > $$temp; \
       +              $(INSTALL_DATA) $$temp $$dest; \
       +              rm -f $$temp; \
       +            fi; \
                  fi; \
       -          $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
       -          $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
       +          $(mkinstalldirs) $(DESTDIR)$(localedir); \
       +          test -f $(DESTDIR)$(localedir)/locale.alias \
       +            && orig=$(DESTDIR)$(localedir)/locale.alias \
       +            || orig=$(srcdir)/locale.alias; \
       +          temp=$(DESTDIR)$(localedir)/t-locale.alias; \
       +          dest=$(DESTDIR)$(localedir)/locale.alias; \
       +          sed -f ref-add.sed $$orig > $$temp; \
       +          $(INSTALL_DATA) $$temp $$dest; \
       +          rm -f $$temp; \
                else \
                  : ; \
                fi
        install-data: all
                if test "$(PACKAGE)" = "gettext"; then \
       -          if test -r $(MKINSTALLDIRS); then \
       -            $(MKINSTALLDIRS) $(gettextsrcdir); \
       -          else \
       -            $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
       -          fi; \
       -          $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
       +          $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
       +          $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
       +          $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
                  dists="$(DISTFILES.common)"; \
                  for file in $$dists; do \
       -            $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
       +            $(INSTALL_DATA) $(srcdir)/$$file \
       +                            $(DESTDIR)$(gettextsrcdir)/$$file; \
       +          done; \
       +          chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
       +          dists="$(DISTFILES.generated)"; \
       +          for file in $$dists; do \
       +            if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
       +            $(INSTALL_DATA) $$dir/$$file \
       +                            $(DESTDIR)$(gettextsrcdir)/$$file; \
       +          done; \
       +          dists="$(DISTFILES.obsolete)"; \
       +          for file in $$dists; do \
       +            rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
                  done; \
                else \
                  : ; \
       t@@ -143,14 +208,51 @@ install-data: all
        installcheck:
        
        uninstall:
       -        dists="$(DISTFILES.common)"; \
       -        for file in $$dists; do \
       -          rm -f $(gettextsrcdir)/$$file; \
       -        done
       +        if test "$(PACKAGE)" = "gettext" \
       +           && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
       +          rm -f $(DESTDIR)$(includedir)/libintl.h; \
       +          $(LIBTOOL) --mode=uninstall \
       +            rm -f $(DESTDIR)$(libdir)/libintl.$la; \
       +        else \
       +          : ; \
       +        fi
       +        if test '@USE_INCLUDED_LIBINTL@' = yes; then \
       +          if test -f $(DESTDIR)$(libdir)/charset.alias; then \
       +            temp=$(DESTDIR)$(libdir)/t-charset.alias; \
       +            dest=$(DESTDIR)$(libdir)/charset.alias; \
       +            sed -f ref-del.sed $$dest > $$temp; \
       +            if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
       +              rm -f $$dest; \
       +            else \
       +              $(INSTALL_DATA) $$temp $$dest; \
       +            fi; \
       +            rm -f $$temp; \
       +          fi; \
       +          if test -f $(DESTDIR)$(localedir)/locale.alias; then \
       +            temp=$(DESTDIR)$(localedir)/t-locale.alias; \
       +            dest=$(DESTDIR)$(localedir)/locale.alias; \
       +            sed -f ref-del.sed $$dest > $$temp; \
       +            if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
       +              rm -f $$dest; \
       +            else \
       +              $(INSTALL_DATA) $$temp $$dest; \
       +            fi; \
       +            rm -f $$temp; \
       +          fi; \
       +        else \
       +          : ; \
       +        fi
       +        if test "$(PACKAGE)" = "gettext"; then \
       +          for file in VERSION ChangeLog $(DISTFILES.common) $(DISTFILES.generated); do \
       +            rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
       +          done; \
       +        else \
       +          : ; \
       +        fi
        
        info dvi:
        
       -$(OBJECTS): ../config.h libgettext.h
       +$(OBJECTS): ../config.h libgnuintl.h
        bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
        dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
        
       t@@ -166,12 +268,19 @@ ID: $(HEADERS) $(SOURCES)
        
        
        mostlyclean:
       -        rm -f *.a *.o *.lo core core.*
       +        rm -f *.a *.la *.o *.lo core core.*
       +        rm -f libintl.h charset.alias ref-add.sed ref-del.sed
       +        rm -f -r .libs _libs
        
        clean: mostlyclean
        
        distclean: clean
       -        rm -f Makefile ID TAGS po2msg.sed po2tbl.sed
       +        rm -f Makefile ID TAGS
       +        if test "$(PACKAGE)" = gettext; then \
       +          rm -f ChangeLog.inst $(DISTFILES.normal); \
       +        else \
       +          : ; \
       +        fi
        
        maintainer-clean: distclean
                @echo "This command is intended for maintainers to use;"
       t@@ -181,34 +290,23 @@ maintainer-clean: distclean
        # GNU gettext needs not contain the file `VERSION' but contains some
        # other files which should not be distributed in other packages.
        distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
       -dist distdir: Makefile $(DISTFILES)
       +dist distdir: Makefile
                if test "$(PACKAGE)" = gettext; then \
                  additional="$(DISTFILES.gettext)"; \
                else \
                  additional="$(DISTFILES.normal)"; \
                fi; \
       -        for file in $(DISTFILES.common) $$additional; do \
       -          ln $(srcdir)/$$file $(distdir) 2> /dev/null \
       -            || cp -p $(srcdir)/$$file $(distdir); \
       +        $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
       +        for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
       +          if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
       +          ln $$dir/$$file $(distdir) 2> /dev/null \
       +            || cp -p $$dir/$$file $(distdir); \
                done
        
       -dist-libc:
       -        tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
       -
        Makefile: Makefile.in ../config.status
                cd .. \
                  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
        
       -# The dependency for intlh.inst is different in gettext and all other
       -# packages.  Because we cannot you GNU make features we have to solve
       -# the problem while rewriting Makefile.in.
       -@GT_YES@intlh.inst: intlh.inst.in ../config.status
       -@GT_YES@        cd .. \
       -@GT_YES@        && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
       -@GT_YES@          $(SHELL) ./config.status
       -@GT_NO@.PHONY: intlh.inst
       -@GT_NO@intlh.inst:
       -
        # Tell versions [3.59,3.63) of GNU make not to export all variables.
        # Otherwise a system limit (for SysV at least) may be exceeded.
        .NOEXPORT:
 (DIR) diff --git a/intl/VERSION b/intl/VERSION
       t@@ -1 +1 @@
       -GNU gettext library from gettext-0.10.35
       +GNU gettext library from gettext-0.10.38
 (DIR) diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c
       t@@ -1,5 +1,5 @@
        /* Implementation of the bindtextdomain(3) function
       -   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
       +   Copyright (C) 1995-1998, 2000, 2001 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
       t@@ -19,32 +19,39 @@
        # include <config.h>
        #endif
        
       -#if defined STDC_HEADERS || defined _LIBC
       -# include <stdlib.h>
       -#else
       -# ifdef HAVE_MALLOC_H
       -#  include <malloc.h>
       -# else
       -void free ();
       -# endif
       -#endif
       +#include <stddef.h>
       +#include <stdlib.h>
       +#include <string.h>
        
       -#if defined HAVE_STRING_H || defined _LIBC
       -# include <string.h>
       +#ifdef _LIBC
       +# include <libintl.h>
        #else
       -# include <strings.h>
       -# ifndef memcpy
       -#  define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
       -# endif
       +# include "libgnuintl.h"
        #endif
       +#include "gettextP.h"
        
        #ifdef _LIBC
       -# include <libintl.h>
       +/* We have to handle multi-threaded applications.  */
       +# include <bits/libc-lock.h>
        #else
       -# include "libgettext.h"
       +/* Provide dummy implementation if this is outside glibc.  */
       +# define __libc_rwlock_define(CLASS, NAME)
       +# define __libc_rwlock_wrlock(NAME)
       +# define __libc_rwlock_unlock(NAME)
       +#endif
       +
       +/* The internal variables in the standalone libintl.a must have different
       +   names than the internal variables in GNU libc, otherwise programs
       +   using libintl.a cannot be linked statically.  */
       +#if !defined _LIBC
       +# define _nl_default_dirname _nl_default_dirname__
       +# define _nl_domain_bindings _nl_domain_bindings__
       +#endif
       +
       +/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>.  */
       +#ifndef offsetof
       +# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
        #endif
       -#include "gettext.h"
       -#include "gettextP.h"
        
        /* @@ end of prolog @@ */
        
       t@@ -54,6 +61,9 @@ extern const char _nl_default_dirname[];
        /* List with bindings of specific domains.  */
        extern struct binding *_nl_domain_bindings;
        
       +/* Lock variable to protect the global data in the gettext implementation.  */
       +__libc_rwlock_define (extern, _nl_state_lock)
       +
        
        /* Names for the libintl functions are a problem.  They must not clash
           with existing names and they should follow ANSI C.  But this source
       t@@ -61,25 +71,48 @@ extern struct binding *_nl_domain_bindings;
           prefix.  So we have to make a difference here.  */
        #ifdef _LIBC
        # define BINDTEXTDOMAIN __bindtextdomain
       +# define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset
        # ifndef strdup
        #  define strdup(str) __strdup (str)
        # endif
        #else
        # define BINDTEXTDOMAIN bindtextdomain__
       +# define BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset__
        #endif
        
       -/* Specify that the DOMAINNAME message catalog will be found
       -   in DIRNAME rather than in the system locale data base.  */
       -char *
       -BINDTEXTDOMAIN (domainname, dirname)
       +/* Prototypes for local functions.  */
       +static void set_binding_values PARAMS ((const char *domainname,
       +                                        const char **dirnamep,
       +                                        const char **codesetp));
       +     
       +/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
       +   to be used for the DOMAINNAME message catalog.
       +   If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
       +   modified, only the current value is returned.
       +   If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
       +   modified nor returned.  */
       +static void
       +set_binding_values (domainname, dirnamep, codesetp)
             const char *domainname;
       -     const char *dirname;
       +     const char **dirnamep;
       +     const char **codesetp;
        {
          struct binding *binding;
       +  int modified;
        
          /* Some sanity checks.  */
          if (domainname == NULL || domainname[0] == '\0')
       -    return NULL;
       +    {
       +      if (dirnamep)
       +        *dirnamep = NULL;
       +      if (codesetp)
       +        *codesetp = NULL;
       +      return;
       +    }
       +
       +  __libc_rwlock_wrlock (_nl_state_lock);
       +
       +  modified = 0;
        
          for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
            {
       t@@ -95,83 +128,173 @@ BINDTEXTDOMAIN (domainname, dirname)
                }
            }
        
       -  if (dirname == NULL)
       -    /* The current binding has be to returned.  */
       -    return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
       -
          if (binding != NULL)
            {
       -      /* The domain is already bound.  If the new value and the old
       -         one are equal we simply do nothing.  Otherwise replace the
       -         old binding.  */
       -      if (strcmp (dirname, binding->dirname) != 0)
       +      if (dirnamep)
                {
       -          char *new_dirname;
       +          const char *dirname = *dirnamep;
        
       -          if (strcmp (dirname, _nl_default_dirname) == 0)
       -            new_dirname = (char *) _nl_default_dirname;
       +          if (dirname == NULL)
       +            /* The current binding has be to returned.  */
       +            *dirnamep = binding->dirname;
                  else
                    {
       +              /* The domain is already bound.  If the new value and the old
       +                 one are equal we simply do nothing.  Otherwise replace the
       +                 old binding.  */
       +              char *result = binding->dirname;
       +              if (strcmp (dirname, result) != 0)
       +                {
       +                  if (strcmp (dirname, _nl_default_dirname) == 0)
       +                    result = (char *) _nl_default_dirname;
       +                  else
       +                    {
        #if defined _LIBC || defined HAVE_STRDUP
       -              new_dirname = strdup (dirname);
       -              if (new_dirname == NULL)
       -                return NULL;
       +                      result = strdup (dirname);
        #else
       -              size_t len = strlen (dirname) + 1;
       -              new_dirname = (char *) malloc (len);
       -              if (new_dirname == NULL)
       -                return NULL;
       -
       -              memcpy (new_dirname, dirname, len);
       +                      size_t len = strlen (dirname) + 1;
       +                      result = (char *) malloc (len);
       +                      if (__builtin_expect (result != NULL, 1))
       +                        memcpy (result, dirname, len);
        #endif
       +                    }
       +
       +                  if (__builtin_expect (result != NULL, 1))
       +                    {
       +                      if (binding->dirname != _nl_default_dirname)
       +                        free (binding->dirname);
       +
       +                      binding->dirname = result;
       +                      modified = 1;
       +                    }
       +                }
       +              *dirnamep = result;
                    }
       +        }
        
       -          if (binding->dirname != _nl_default_dirname)
       -            free (binding->dirname);
       +      if (codesetp)
       +        {
       +          const char *codeset = *codesetp;
        
       -          binding->dirname = new_dirname;
       +          if (codeset == NULL)
       +            /* The current binding has be to returned.  */
       +            *codesetp = binding->codeset;
       +          else
       +            {
       +              /* The domain is already bound.  If the new value and the old
       +                 one are equal we simply do nothing.  Otherwise replace the
       +                 old binding.  */
       +              char *result = binding->codeset;
       +              if (result == NULL || strcmp (codeset, result) != 0)
       +                {
       +#if defined _LIBC || defined HAVE_STRDUP
       +                  result = strdup (codeset);
       +#else
       +                  size_t len = strlen (codeset) + 1;
       +                  result = (char *) malloc (len);
       +                  if (__builtin_expect (result != NULL, 1))
       +                    memcpy (result, codeset, len);
       +#endif
       +
       +                  if (__builtin_expect (result != NULL, 1))
       +                    {
       +                      if (binding->codeset != NULL)
       +                        free (binding->codeset);
       +
       +                      binding->codeset = result;
       +                      binding->codeset_cntr++;
       +                      modified = 1;
       +                    }
       +                }
       +              *codesetp = result;
       +            }
                }
            }
       +  else if ((dirnamep == NULL || *dirnamep == NULL)
       +           && (codesetp == NULL || *codesetp == NULL))
       +    {
       +      /* Simply return the default values.  */
       +      if (dirnamep)
       +        *dirnamep = _nl_default_dirname;
       +      if (codesetp)
       +        *codesetp = NULL;
       +    }
          else
            {
              /* We have to create a new binding.  */
       -#if !defined _LIBC && !defined HAVE_STRDUP
       -      size_t len;
       -#endif
       +      size_t len = strlen (domainname) + 1;
              struct binding *new_binding =
       -        (struct binding *) malloc (sizeof (*new_binding));
       +        (struct binding *) malloc (offsetof (struct binding, domainname) + len);
       +
       +      if (__builtin_expect (new_binding == NULL, 0))
       +        goto failed;
        
       -      if (new_binding == NULL)
       -        return NULL;
       +      memcpy (new_binding->domainname, domainname, len);
       +
       +      if (dirnamep)
       +        {
       +          const char *dirname = *dirnamep;
        
       +          if (dirname == NULL)
       +            /* The default value.  */
       +            dirname = _nl_default_dirname;
       +          else
       +            {
       +              if (strcmp (dirname, _nl_default_dirname) == 0)
       +                dirname = _nl_default_dirname;
       +              else
       +                {
       +                  char *result;
        #if defined _LIBC || defined HAVE_STRDUP
       -      new_binding->domainname = strdup (domainname);
       -      if (new_binding->domainname == NULL)
       -        return NULL;
       +                  result = strdup (dirname);
       +                  if (__builtin_expect (result == NULL, 0))
       +                    goto failed_dirname;
        #else
       -      len = strlen (domainname) + 1;
       -      new_binding->domainname = (char *) malloc (len);
       -      if (new_binding->domainname == NULL)
       -        return NULL;
       -      memcpy (new_binding->domainname, domainname, len);
       +                  size_t len = strlen (dirname) + 1;
       +                  result = (char *) malloc (len);
       +                  if (__builtin_expect (result == NULL, 0))
       +                    goto failed_dirname;
       +                  memcpy (result, dirname, len);
        #endif
       -
       -      if (strcmp (dirname, _nl_default_dirname) == 0)
       -        new_binding->dirname = (char *) _nl_default_dirname;
       +                  dirname = result;
       +                }
       +            }
       +          *dirnamep = dirname;
       +          new_binding->dirname = (char *) dirname;
       +        }
              else
       +        /* The default value.  */
       +        new_binding->dirname = (char *) _nl_default_dirname;
       +
       +      new_binding->codeset_cntr = 0;
       +
       +      if (codesetp)
                {
       +          const char *codeset = *codesetp;
       +
       +          if (codeset != NULL)
       +            {
       +              char *result;
       +
        #if defined _LIBC || defined HAVE_STRDUP
       -          new_binding->dirname = strdup (dirname);
       -          if (new_binding->dirname == NULL)
       -            return NULL;
       +              result = strdup (codeset);
       +              if (__builtin_expect (result == NULL, 0))
       +                goto failed_codeset;
        #else
       -          len = strlen (dirname) + 1;
       -          new_binding->dirname = (char *) malloc (len);
       -          if (new_binding->dirname == NULL)
       -            return NULL;
       -          memcpy (new_binding->dirname, dirname, len);
       +              size_t len = strlen (codeset) + 1;
       +              result = (char *) malloc (len);
       +              if (__builtin_expect (result == NULL, 0))
       +                goto failed_codeset;
       +              memcpy (result, codeset, len);
        #endif
       +              codeset = result;
       +              new_binding->codeset_cntr++;
       +            }
       +          *codesetp = codeset;
       +          new_binding->codeset = (char *) codeset;
                }
       +      else
       +        new_binding->codeset = NULL;
        
              /* Now enqueue it.  */
              if (_nl_domain_bindings == NULL
       t@@ -191,13 +314,55 @@ BINDTEXTDOMAIN (domainname, dirname)
                  binding->next = new_binding;
                }
        
       -      binding = new_binding;
       +      modified = 1;
       +
       +      /* Here we deal with memory allocation failures.  */
       +      if (0)
       +        {
       +        failed_codeset:
       +          if (new_binding->dirname != _nl_default_dirname)
       +            free (new_binding->dirname);
       +        failed_dirname:
       +          free (new_binding);
       +        failed:
       +          if (dirnamep)
       +            *dirnamep = NULL;
       +          if (codesetp)
       +            *codesetp = NULL;
       +        }
            }
        
       -  return binding->dirname;
       +  /* If we modified any binding, we flush the caches.  */
       +  if (modified)
       +    ++_nl_msg_cat_cntr;
       +
       +  __libc_rwlock_unlock (_nl_state_lock);
       +}
       +
       +/* Specify that the DOMAINNAME message catalog will be found
       +   in DIRNAME rather than in the system locale data base.  */
       +char *
       +BINDTEXTDOMAIN (domainname, dirname)
       +     const char *domainname;
       +     const char *dirname;
       +{
       +  set_binding_values (domainname, &dirname, NULL);
       +  return (char *) dirname;
       +}
       +
       +/* Specify the character encoding in which the messages from the
       +   DOMAINNAME message catalog will be returned.  */
       +char *
       +BIND_TEXTDOMAIN_CODESET (domainname, codeset)
       +     const char *domainname;
       +     const char *codeset;
       +{
       +  set_binding_values (domainname, NULL, &codeset);
       +  return (char *) codeset;
        }
        
        #ifdef _LIBC
       -/* Alias for function name in GNU C Library.  */
       +/* Aliases for function names in GNU C Library.  */
        weak_alias (__bindtextdomain, bindtextdomain);
       +weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset);
        #endif
 (DIR) diff --git a/intl/cat-compat.c b/intl/cat-compat.c
       t@@ -1,262 +0,0 @@
       -/* Compatibility code for gettext-using-catgets interface.
       -   Copyright (C) 1995, 1997 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 2, 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, write to the Free Software Foundation,
       -   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
       -
       -#ifdef HAVE_CONFIG_H
       -# include <config.h>
       -#endif
       -
       -#include <stdio.h>
       -
       -#ifdef STDC_HEADERS
       -# include <stdlib.h>
       -# include <string.h>
       -#else
       -char *getenv ();
       -# ifdef HAVE_MALLOC_H
       -#  include <malloc.h>
       -# endif
       -#endif
       -
       -#ifdef HAVE_NL_TYPES_H
       -# include <nl_types.h>
       -#endif
       -
       -#include "libgettext.h"
       -
       -/* @@ end of prolog @@ */
       -
       -/* XPG3 defines the result of `setlocale (category, NULL)' as:
       -   ``Directs `setlocale()' to query `category' and return the current
       -     setting of `local'.''
       -   However it does not specify the exact format.  And even worse: POSIX
       -   defines this not at all.  So we can use this feature only on selected
       -   system (e.g. those using GNU C Library).  */
       -#ifdef _LIBC
       -# define HAVE_LOCALE_NULL
       -#endif
       -
       -/* The catalog descriptor.  */
       -static nl_catd catalog = (nl_catd) -1;
       -
       -/* Name of the default catalog.  */
       -static const char default_catalog_name[] = "messages";
       -
       -/* Name of currently used catalog.  */
       -static const char *catalog_name = default_catalog_name;
       -
       -/* Get ID for given string.  If not found return -1.  */
       -static int msg_to_cat_id PARAMS ((const char *msg));
       -
       -/* Substitution for systems lacking this function in their C library.  */
       -#if !_LIBC && !HAVE_STPCPY
       -static char *stpcpy PARAMS ((char *dest, const char *src));
       -#endif
       -
       -
       -/* Set currently used domain/catalog.  */
       -char *
       -textdomain (domainname)
       -     const char *domainname;
       -{
       -  nl_catd new_catalog;
       -  char *new_name;
       -  size_t new_name_len;
       -  char *lang;
       -
       -#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
       -    && defined HAVE_LOCALE_NULL
       -  lang = setlocale (LC_MESSAGES, NULL);
       -#else
       -  lang = getenv ("LC_ALL");
       -  if (lang == NULL || lang[0] == '\0')
       -    {
       -      lang = getenv ("LC_MESSAGES");
       -      if (lang == NULL || lang[0] == '\0')
       -        lang = getenv ("LANG");
       -    }
       -#endif
       -  if (lang == NULL || lang[0] == '\0')
       -    lang = "C";
       -
       -  /* See whether name of currently used domain is asked.  */
       -  if (domainname == NULL)
       -    return (char *) catalog_name;
       -
       -  if (domainname[0] == '\0')
       -    domainname = default_catalog_name;
       -
       -  /* Compute length of added path element.  */
       -  new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
       -                 + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
       -                 + sizeof (".cat");
       -
       -  new_name = (char *) malloc (new_name_len);
       -  if (new_name == NULL)
       -    return NULL;
       -
       -  strcpy (new_name, PACKAGE);
       -  new_catalog = catopen (new_name, 0);
       -
       -  if (new_catalog == (nl_catd) -1)
       -    {
       -      /* NLSPATH search didn't work, try absolute path */
       -      sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
       -               PACKAGE);
       -      new_catalog = catopen (new_name, 0);
       -
       -      if (new_catalog == (nl_catd) -1)
       -        {
       -          free (new_name);
       -          return (char *) catalog_name;
       -        }
       -    }
       -
       -  /* Close old catalog.  */
       -  if (catalog != (nl_catd) -1)
       -    catclose (catalog);
       -  if (catalog_name != default_catalog_name)
       -    free ((char *) catalog_name);
       -
       -  catalog = new_catalog;
       -  catalog_name = new_name;
       -
       -  return (char *) catalog_name;
       -}
       -
       -char *
       -bindtextdomain (domainname, dirname)
       -     const char *domainname;
       -     const char *dirname;
       -{
       -#if HAVE_SETENV || HAVE_PUTENV
       -  char *old_val, *new_val, *cp;
       -  size_t new_val_len;
       -
       -  /* This does not make much sense here but to be compatible do it.  */
       -  if (domainname == NULL)
       -    return NULL;
       -
       -  /* Compute length of added path element.  If we use setenv we don't need
       -     the first byts for NLSPATH=, but why complicate the code for this
       -     peanuts.  */
       -  new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
       -                + sizeof ("/%L/LC_MESSAGES/%N.cat");
       -
       -  old_val = getenv ("NLSPATH");
       -  if (old_val == NULL || old_val[0] == '\0')
       -    {
       -      old_val = NULL;
       -      new_val_len += 1 + sizeof (LOCALEDIR) - 1
       -                     + sizeof ("/%L/LC_MESSAGES/%N.cat");
       -    }
       -  else
       -    new_val_len += strlen (old_val);
       -
       -  new_val = (char *) malloc (new_val_len);
       -  if (new_val == NULL)
       -    return NULL;
       -
       -# if HAVE_SETENV
       -  cp = new_val;
       -# else
       -  cp = stpcpy (new_val, "NLSPATH=");
       -# endif
       -
       -  cp = stpcpy (cp, dirname);
       -  cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
       -
       -  if (old_val == NULL)
       -    {
       -# if __STDC__
       -      stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
       -# else
       -
       -      cp = stpcpy (cp, LOCALEDIR);
       -      stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
       -# endif
       -    }
       -  else
       -    stpcpy (cp, old_val);
       -
       -# if HAVE_SETENV
       -  setenv ("NLSPATH", new_val, 1);
       -  free (new_val);
       -# else
       -  putenv (new_val);
       -  /* Do *not* free the environment entry we just entered.  It is used
       -     from now on.   */
       -# endif
       -
       -#endif
       -
       -  return (char *) domainname;
       -}
       -
       -#undef gettext
       -char *
       -gettext (msg)
       -     const char *msg;
       -{
       -  int msgid;
       -
       -  if (msg == NULL || catalog == (nl_catd) -1)
       -    return (char *) msg;
       -
       -  /* Get the message from the catalog.  We always use set number 1.
       -     The message ID is computed by the function `msg_to_cat_id'
       -     which works on the table generated by `po-to-tbl'.  */
       -  msgid = msg_to_cat_id (msg);
       -  if (msgid == -1)
       -    return (char *) msg;
       -
       -  return catgets (catalog, 1, msgid, (char *) msg);
       -}
       -
       -/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
       -   for the one equal to msg.  If it is found return the ID.  In case when
       -   the string is not found return -1.  */
       -static int
       -msg_to_cat_id (msg)
       -     const char *msg;
       -{
       -  int cnt;
       -
       -  for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
       -    if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
       -      return _msg_tbl[cnt]._msg_number;
       -
       -  return -1;
       -}
       -
       -
       -/* @@ begin of epilog @@ */
       -
       -/* We don't want libintl.a to depend on any other library.  So we
       -   avoid the non-standard function stpcpy.  In GNU C Library this
       -   function is available, though.  Also allow the symbol HAVE_STPCPY
       -   to be defined.  */
       -#if !_LIBC && !HAVE_STPCPY
       -static char *
       -stpcpy (dest, src)
       -     char *dest;
       -     const char *src;
       -{
       -  while ((*dest++ = *src++) != '\0')
       -    /* Do nothing. */ ;
       -  return dest - 1;
       -}
       -#endif
 (DIR) diff --git a/intl/config.charset b/intl/config.charset
       t@@ -0,0 +1,438 @@
       +#! /bin/sh
       +# Output a system dependent table of character encoding aliases.
       +#
       +#   Copyright (C) 2000-2001 Free Software Foundation, Inc.
       +#
       +#   This program is free software; you can redistribute it and/or modify it
       +#   under the terms of the GNU Library General Public License as published
       +#   by the Free Software Foundation; either version 2, 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
       +#   Library General Public License for more details.
       +#
       +#   You should have received a copy of the GNU Library General Public
       +#   License along with this program; if not, write to the Free Software
       +#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
       +#   USA.
       +#
       +# The table consists of lines of the form
       +#    ALIAS  CANONICAL
       +#
       +# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
       +# ALIAS is compared in a case sensitive way.
       +#
       +# CANONICAL is the GNU canonical name for this character encoding.
       +# It must be an encoding supported by libiconv. Support by GNU libc is
       +# also desirable. CANONICAL is case insensitive. Usually an upper case
       +# MIME charset name is preferred.
       +# The current list of GNU canonical charset names is as follows.
       +#
       +#       name                         used by which systems         a MIME name?
       +#   ASCII, ANSI_X3.4-1968     glibc solaris freebsd
       +#   ISO-8859-1                glibc aix hpux irix osf solaris freebsd   yes
       +#   ISO-8859-2                glibc aix hpux irix osf solaris freebsd   yes
       +#   ISO-8859-3                glibc                                     yes
       +#   ISO-8859-4                osf solaris freebsd                       yes
       +#   ISO-8859-5                glibc aix hpux irix osf solaris freebsd   yes
       +#   ISO-8859-6                glibc aix hpux solaris                    yes
       +#   ISO-8859-7                glibc aix hpux irix osf solaris           yes
       +#   ISO-8859-8                glibc aix hpux osf solaris                yes
       +#   ISO-8859-9                glibc aix hpux irix osf solaris           yes
       +#   ISO-8859-13               glibc
       +#   ISO-8859-15               glibc aix osf solaris freebsd
       +#   KOI8-R                    glibc solaris freebsd                     yes
       +#   KOI8-U                    glibc freebsd                             yes
       +#   CP437                     dos
       +#   CP775                     dos
       +#   CP850                     aix osf dos
       +#   CP852                     dos
       +#   CP855                     dos
       +#   CP856                     aix
       +#   CP857                     dos
       +#   CP861                     dos
       +#   CP862                     dos
       +#   CP864                     dos
       +#   CP865                     dos
       +#   CP866                     freebsd dos
       +#   CP869                     dos
       +#   CP874                     win32 dos
       +#   CP922                     aix
       +#   CP932                     aix win32 dos
       +#   CP943                     aix
       +#   CP949                     osf win32 dos
       +#   CP950                     win32 dos
       +#   CP1046                    aix
       +#   CP1124                    aix
       +#   CP1129                    aix
       +#   CP1250                    win32
       +#   CP1251                    glibc win32
       +#   CP1252                    aix win32
       +#   CP1253                    win32
       +#   CP1254                    win32
       +#   CP1255                    win32
       +#   CP1256                    win32
       +#   CP1257                    win32
       +#   GB2312                    glibc aix hpux irix solaris freebsd       yes
       +#   EUC-JP                    glibc aix hpux irix osf solaris freebsd   yes
       +#   EUC-KR                    glibc aix hpux irix osf solaris freebsd   yes
       +#   EUC-TW                    glibc aix hpux irix osf solaris
       +#   BIG5                      glibc aix hpux osf solaris freebsd        yes
       +#   BIG5HKSCS                 glibc
       +#   GBK                       aix osf win32 dos
       +#   GB18030                   glibc
       +#   SJIS                      hpux osf solaris freebsd
       +#   JOHAB                     glibc win32
       +#   TIS-620                   glibc aix hpux osf solaris
       +#   VISCII                    glibc                                     yes
       +#   HP-ROMAN8                 hpux
       +#   HP-ARABIC8                hpux
       +#   HP-GREEK8                 hpux
       +#   HP-HEBREW8                hpux
       +#   HP-TURKISH8               hpux
       +#   HP-KANA8                  hpux
       +#   DEC-KANJI                 osf
       +#   DEC-HANYU                 osf
       +#   UTF-8                     glibc aix hpux osf solaris                yes
       +#
       +# Note: Names which are not marked as being a MIME name should not be used in
       +# Internet protocols for information interchange (mail, news, etc.).
       +#
       +# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
       +# must understand both names and treat them as equivalent.
       +#
       +# The first argument passed to this file is the canonical host specification,
       +#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
       +# or
       +#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
       +
       +host="$1"
       +os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
       +echo "# This file contains a table of character encoding aliases,"
       +echo "# suitable for operating system '${os}'."
       +echo "# It was automatically generated from config.charset."
       +# List of references, updated during installation:
       +echo "# Packages using this file: "
       +case "$os" in
       +    linux* | *-gnu*)
       +        # With glibc-2.1 or newer, we don't need any canonicalization,
       +        # because glibc has iconv and both glibc and libiconv support all
       +        # GNU canonical names directly. Therefore, the Makefile does not
       +        # need to install the alias file at all.
       +        # The following applies only to glibc-2.0.x and older libcs.
       +        echo "ISO_646.IRV:1983 ASCII"
       +        ;;
       +    aix*)
       +        echo "ISO8859-1 ISO-8859-1"
       +        echo "ISO8859-2 ISO-8859-2"
       +        echo "ISO8859-5 ISO-8859-5"
       +        echo "ISO8859-6 ISO-8859-6"
       +        echo "ISO8859-7 ISO-8859-7"
       +        echo "ISO8859-8 ISO-8859-8"
       +        echo "ISO8859-9 ISO-8859-9"
       +        echo "ISO8859-15 ISO-8859-15"
       +        echo "IBM-850 CP850"
       +        echo "IBM-856 CP856"
       +        echo "IBM-921 ISO-8859-13"
       +        echo "IBM-922 CP922"
       +        echo "IBM-932 CP932"
       +        echo "IBM-943 CP943"
       +        echo "IBM-1046 CP1046"
       +        echo "IBM-1124 CP1124"
       +        echo "IBM-1129 CP1129"
       +        echo "IBM-1252 CP1252"
       +        echo "IBM-eucCN GB2312"
       +        echo "IBM-eucJP EUC-JP"
       +        echo "IBM-eucKR EUC-KR"
       +        echo "IBM-eucTW EUC-TW"
       +        echo "big5 BIG5"
       +        echo "GBK GBK"
       +        echo "TIS-620 TIS-620"
       +        echo "UTF-8 UTF-8"
       +        ;;
       +    hpux*)
       +        echo "iso88591 ISO-8859-1"
       +        echo "iso88592 ISO-8859-2"
       +        echo "iso88595 ISO-8859-5"
       +        echo "iso88596 ISO-8859-6"
       +        echo "iso88597 ISO-8859-7"
       +        echo "iso88598 ISO-8859-8"
       +        echo "iso88599 ISO-8859-9"
       +        echo "iso885915 ISO-8859-15"
       +        echo "roman8 HP-ROMAN8"
       +        echo "arabic8 HP-ARABIC8"
       +        echo "greek8 HP-GREEK8"
       +        echo "hebrew8 HP-HEBREW8"
       +        echo "turkish8 HP-TURKISH8"
       +        echo "kana8 HP-KANA8"
       +        echo "tis620 TIS-620"
       +        echo "big5 BIG5"
       +        echo "eucJP EUC-JP"
       +        echo "eucKR EUC-KR"
       +        echo "eucTW EUC-TW"
       +        echo "hp15CN GB2312"
       +        #echo "ccdc ?" # what is this?
       +        echo "SJIS SJIS"
       +        echo "utf8 UTF-8"
       +        ;;
       +    irix*)
       +        echo "ISO8859-1 ISO-8859-1"
       +        echo "ISO8859-2 ISO-8859-2"
       +        echo "ISO8859-5 ISO-8859-5"
       +        echo "ISO8859-7 ISO-8859-7"
       +        echo "ISO8859-9 ISO-8859-9"
       +        echo "eucCN GB2312"
       +        echo "eucJP EUC-JP"
       +        echo "eucKR EUC-KR"
       +        echo "eucTW EUC-TW"
       +        ;;
       +    osf*)
       +        echo "ISO8859-1 ISO-8859-1"
       +        echo "ISO8859-2 ISO-8859-2"
       +        echo "ISO8859-4 ISO-8859-4"
       +        echo "ISO8859-5 ISO-8859-5"
       +        echo "ISO8859-7 ISO-8859-7"
       +        echo "ISO8859-8 ISO-8859-8"
       +        echo "ISO8859-9 ISO-8859-9"
       +        echo "ISO8859-15 ISO-8859-15"
       +        echo "cp850 CP850"
       +        echo "big5 BIG5"
       +        echo "dechanyu DEC-HANYU"
       +        echo "dechanzi GB2312"
       +        echo "deckanji DEC-KANJI"
       +        echo "deckorean EUC-KR"
       +        echo "eucJP EUC-JP"
       +        echo "eucKR EUC-KR"
       +        echo "eucTW EUC-TW"
       +        echo "GBK GBK"
       +        echo "KSC5601 CP949"
       +        echo "sdeckanji EUC-JP"
       +        echo "SJIS SJIS"
       +        echo "TACTIS TIS-620"
       +        echo "UTF-8 UTF-8"
       +        ;;
       +    solaris*)
       +        echo "646 ASCII"
       +        echo "ISO8859-1 ISO-8859-1"
       +        echo "ISO8859-2 ISO-8859-2"
       +        echo "ISO8859-4 ISO-8859-4"
       +        echo "ISO8859-5 ISO-8859-5"
       +        echo "ISO8859-6 ISO-8859-6"
       +        echo "ISO8859-7 ISO-8859-7"
       +        echo "ISO8859-8 ISO-8859-8"
       +        echo "ISO8859-9 ISO-8859-9"
       +        echo "ISO8859-15 ISO-8859-15"
       +        echo "koi8-r KOI8-R"
       +        echo "BIG5 BIG5"
       +        echo "gb2312 GB2312"
       +        echo "cns11643 EUC-TW"
       +        echo "5601 EUC-KR"
       +        echo "eucJP EUC-JP"
       +        echo "PCK SJIS"
       +        echo "TIS620.2533 TIS-620"
       +        #echo "sun_eu_greek ?" # what is this?
       +        echo "UTF-8 UTF-8"
       +        ;;
       +    freebsd*)
       +        # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
       +        # localcharset.c falls back to using the full locale name
       +        # from the environment variables.
       +        echo "C ASCII"
       +        echo "US-ASCII ASCII"
       +        for l in la_LN lt_LN; do
       +          echo "$l.ASCII ASCII"
       +        done
       +        for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
       +                 fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
       +                 lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
       +          echo "$l.ISO_8859-1 ISO-8859-1"
       +          echo "$l.DIS_8859-15 ISO-8859-15"
       +        done
       +        for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
       +          echo "$l.ISO_8859-2 ISO-8859-2"
       +        done
       +        for l in la_LN lt_LT; do
       +          echo "$l.ISO_8859-4 ISO-8859-4"
       +        done
       +        for l in ru_RU ru_SU; do
       +          echo "$l.KOI8-R KOI8-R"
       +          echo "$l.ISO_8859-5 ISO-8859-5"
       +          echo "$l.CP866 CP866"
       +        done
       +        echo "uk_UA.KOI8-U KOI8-U"
       +        echo "zh_TW.BIG5 BIG5"
       +        echo "zh_TW.Big5 BIG5"
       +        echo "zh_CN.EUC GB2312"
       +        echo "ja_JP.EUC EUC-JP"
       +        echo "ja_JP.SJIS SJIS"
       +        echo "ja_JP.Shift_JIS SJIS"
       +        echo "ko_KR.EUC EUC-KR"
       +        ;;
       +    beos*)
       +        # BeOS has a single locale, and it has UTF-8 encoding.
       +        echo "* UTF-8"
       +        ;;
       +    msdosdjgpp*)
       +        # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
       +        # localcharset.c falls back to using the full locale name
       +        # from the environment variables.
       +        echo "#"
       +        echo "# The encodings given here may not all be correct."
       +        echo "# If you find that the encoding given for your language and"
       +        echo "# country is not the one your DOS machine actually uses, just"
       +        echo "# correct it in this file, and send a mail to"
       +        echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>"
       +        echo "# and Bruno Haible <haible@clisp.cons.org>."
       +        echo "#"
       +        echo "C ASCII"
       +        # ISO-8859-1 languages
       +        echo "ca CP850"
       +        echo "ca_ES CP850"
       +        echo "da CP865"    # not CP850 ??
       +        echo "da_DK CP865" # not CP850 ??
       +        echo "de CP850"
       +        echo "de_AT CP850"
       +        echo "de_CH CP850"
       +        echo "de_DE CP850"
       +        echo "en CP850"
       +        echo "en_AU CP850" # not CP437 ??
       +        echo "en_CA CP850"
       +        echo "en_GB CP850"
       +        echo "en_NZ CP437"
       +        echo "en_US CP437"
       +        echo "en_ZA CP850" # not CP437 ??
       +        echo "es CP850"
       +        echo "es_AR CP850"
       +        echo "es_BO CP850"
       +        echo "es_CL CP850"
       +        echo "es_CO CP850"
       +        echo "es_CR CP850"
       +        echo "es_CU CP850"
       +        echo "es_DO CP850"
       +        echo "es_EC CP850"
       +        echo "es_ES CP850"
       +        echo "es_GT CP850"
       +        echo "es_HN CP850"
       +        echo "es_MX CP850"
       +        echo "es_NI CP850"
       +        echo "es_PA CP850"
       +        echo "es_PY CP850"
       +        echo "es_PE CP850"
       +        echo "es_SV CP850"
       +        echo "es_UY CP850"
       +        echo "es_VE CP850"
       +        echo "et CP850"
       +        echo "et_EE CP850"
       +        echo "eu CP850"
       +        echo "eu_ES CP850"
       +        echo "fi CP850"
       +        echo "fi_FI CP850"
       +        echo "fr CP850"
       +        echo "fr_BE CP850"
       +        echo "fr_CA CP850"
       +        echo "fr_CH CP850"
       +        echo "fr_FR CP850"
       +        echo "ga CP850"
       +        echo "ga_IE CP850"
       +        echo "gd CP850"
       +        echo "gd_GB CP850"
       +        echo "gl CP850"
       +        echo "gl_ES CP850"
       +        echo "id CP850"    # not CP437 ??
       +        echo "id_ID CP850" # not CP437 ??
       +        echo "is CP861"    # not CP850 ??
       +        echo "is_IS CP861" # not CP850 ??
       +        echo "it CP850"
       +        echo "it_CH CP850"
       +        echo "it_IT CP850"
       +        echo "lt CP775"
       +        echo "lt_LT CP775"
       +        echo "lv CP775"
       +        echo "lv_LV CP775"
       +        echo "nb CP865"    # not CP850 ??
       +        echo "nb_NO CP865" # not CP850 ??
       +        echo "nl CP850"
       +        echo "nl_BE CP850"
       +        echo "nl_NL CP850"
       +        echo "nn CP865"    # not CP850 ??
       +        echo "nn_NO CP865" # not CP850 ??
       +        echo "no CP865"    # not CP850 ??
       +        echo "no_NO CP865" # not CP850 ??
       +        echo "pt CP850"
       +        echo "pt_BR CP850"
       +        echo "pt_PT CP850"
       +        echo "sv CP850"
       +        echo "sv_SE CP850"
       +        # ISO-8859-2 languages
       +        echo "cs CP852"
       +        echo "cs_CZ CP852"
       +        echo "hr CP852"
       +        echo "hr_HR CP852"
       +        echo "hu CP852"
       +        echo "hu_HU CP852"
       +        echo "pl CP852"
       +        echo "pl_PL CP852"
       +        echo "ro CP852"
       +        echo "ro_RO CP852"
       +        echo "sk CP852"
       +        echo "sk_SK CP852"
       +        echo "sl CP852"
       +        echo "sl_SI CP852"
       +        echo "sq CP852"
       +        echo "sq_AL CP852"
       +        echo "sr CP852"    # CP852 or CP866 or CP855 ??
       +        echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
       +        # ISO-8859-3 languages
       +        echo "mt CP850"
       +        echo "mt_MT CP850"
       +        # ISO-8859-5 languages
       +        echo "be CP866"
       +        echo "be_BE CP866"
       +        echo "bg CP866"    # not CP855 ??
       +        echo "bg_BG CP866" # not CP855 ??
       +        echo "mk CP866"    # not CP855 ??
       +        echo "mk_MK CP866" # not CP855 ??
       +        echo "ru KOI8-R"    # not CP866 ??
       +        echo "ru_RU KOI8-R" # not CP866 ??
       +        # ISO-8859-6 languages
       +        echo "ar CP864"
       +        echo "ar_AE CP864"
       +        echo "ar_DZ CP864"
       +        echo "ar_EG CP864"
       +        echo "ar_IQ CP864"
       +        echo "ar_IR CP864"
       +        echo "ar_JO CP864"
       +        echo "ar_KW CP864"
       +        echo "ar_MA CP864"
       +        echo "ar_OM CP864"
       +        echo "ar_QA CP864"
       +        echo "ar_SA CP864"
       +        echo "ar_SY CP864"
       +        # ISO-8859-7 languages
       +        echo "el CP869"
       +        echo "el_GR CP869"
       +        # ISO-8859-8 languages
       +        echo "he CP862"
       +        echo "he_IL CP862"
       +        # ISO-8859-9 languages
       +        echo "tr CP857"
       +        echo "tr_TR CP857"
       +        # Japanese
       +        echo "ja CP932"
       +        echo "ja_JP CP932"
       +        # Chinese
       +        echo "zh_CN GBK"
       +        echo "zh_TW CP950" # not CP938 ??
       +        # Korean
       +        echo "kr CP949"    # not CP934 ??
       +        echo "kr_KR CP949" # not CP934 ??
       +        # Thai
       +        echo "th CP874"
       +        echo "th_TH CP874"
       +        # Other
       +        echo "eo CP850"
       +        echo "eo_EO CP850"
       +        ;;
       +esac
 (DIR) diff --git a/intl/dcgettext.c b/intl/dcgettext.c
       t@@ -1,5 +1,5 @@
        /* Implementation of the dcgettext(3) function.
       -   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
       +   Copyright (C) 1995-1999, 2000, 2001 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
       t@@ -19,202 +19,25 @@
        # include <config.h>
        #endif
        
       -#include <sys/types.h>
       -
       -#ifdef __GNUC__
       -# define alloca __builtin_alloca
       -# define HAVE_ALLOCA 1
       -#else
       -# if defined HAVE_ALLOCA_H || defined _LIBC
       -#  include <alloca.h>
       -# else
       -#  ifdef _AIX
       - #pragma alloca
       -#  else
       -#   ifndef alloca
       -char *alloca ();
       -#   endif
       -#  endif
       -# endif
       -#endif
       -
       -#include <errno.h>
       -#ifndef errno
       -extern int errno;
       -#endif
       -#ifndef __set_errno
       -# define __set_errno(val) errno = (val)
       -#endif
       -
       -#if defined STDC_HEADERS || defined _LIBC
       -# include <stdlib.h>
       -#else
       -char *getenv ();
       -# ifdef HAVE_MALLOC_H
       -#  include <malloc.h>
       -# else
       -void free ();
       -# endif
       -#endif
       -
       -#if defined HAVE_STRING_H || defined _LIBC
       -# ifndef _GNU_SOURCE
       -#  define _GNU_SOURCE        1
       -# endif
       -# include <string.h>
       -#else
       -# include <strings.h>
       -#endif
       -#if !HAVE_STRCHR && !defined _LIBC
       -# ifndef strchr
       -#  define strchr index
       -# endif
       -#endif
       -
       -#if defined HAVE_UNISTD_H || defined _LIBC
       -# include <unistd.h>
       -#endif
       -
       -#include "gettext.h"
        #include "gettextP.h"
        #ifdef _LIBC
        # include <libintl.h>
        #else
       -# include "libgettext.h"
       +# include "libgnuintl.h"
        #endif
       -#include "hash-string.h"
        
        /* @@ end of prolog @@ */
        
       -#ifdef _LIBC
       -/* Rename the non ANSI C functions.  This is required by the standard
       -   because some ANSI C functions will require linking with this object
       -   file and the name space must not be polluted.  */
       -# define getcwd __getcwd
       -# ifndef stpcpy
       -#  define stpcpy __stpcpy
       -# endif
       -#else
       -# if !defined HAVE_GETCWD
       -char *getwd ();
       -#  define getcwd(buf, max) getwd (buf)
       -# else
       -char *getcwd ();
       -# endif
       -# ifndef HAVE_STPCPY
       -static char *stpcpy PARAMS ((char *dest, const char *src));
       -# endif
       -#endif
       -
       -/* Amount to increase buffer size by in each try.  */
       -#define PATH_INCR 32
       -
       -/* The following is from pathmax.h.  */
       -/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
       -   PATH_MAX but might cause redefinition warnings when sys/param.h is
       -   later included (as on MORE/BSD 4.3).  */
       -#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
       -# include <limits.h>
       -#endif
       -
       -#ifndef _POSIX_PATH_MAX
       -# define _POSIX_PATH_MAX 255
       -#endif
       -
       -#if !defined(PATH_MAX) && defined(_PC_PATH_MAX)
       -# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
       -#endif
       -
       -/* Don't include sys/param.h if it already has been.  */
       -#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN)
       -# include <sys/param.h>
       -#endif
       -
       -#if !defined(PATH_MAX) && defined(MAXPATHLEN)
       -# define PATH_MAX MAXPATHLEN
       -#endif
       -
       -#ifndef PATH_MAX
       -# define PATH_MAX _POSIX_PATH_MAX
       -#endif
       -
       -/* XPG3 defines the result of `setlocale (category, NULL)' as:
       -   ``Directs `setlocale()' to query `category' and return the current
       -     setting of `local'.''
       -   However it does not specify the exact format.  And even worse: POSIX
       -   defines this not at all.  So we can use this feature only on selected
       -   system (e.g. those using GNU C Library).  */
       -#ifdef _LIBC
       -# define HAVE_LOCALE_NULL
       -#endif
       -
       -/* Name of the default domain used for gettext(3) prior any call to
       -   textdomain(3).  The default value for this is "messages".  */
       -const char _nl_default_default_domain[] = "messages";
       -
       -/* Value used as the default domain for gettext(3).  */
       -const char *_nl_current_default_domain = _nl_default_default_domain;
       -
       -/* Contains the default location of the message catalogs.  */
       -const char _nl_default_dirname[] = GNULOCALEDIR;
       -
       -/* List with bindings of specific domains created by bindtextdomain()
       -   calls.  */
       -struct binding *_nl_domain_bindings;
       -
       -/* Prototypes for local functions.  */
       -static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
       -                               const char *msgid)) internal_function;
       -static const char *category_to_name PARAMS ((int category)) internal_function;
       -static const char *guess_category_value PARAMS ((int category,
       -                                                 const char *categoryname))
       -     internal_function;
       -
       -
       -/* For those loosing systems which don't have `alloca' we have to add
       -   some additional code emulating it.  */
       -#ifdef HAVE_ALLOCA
       -/* Nothing has to be done.  */
       -# define ADD_BLOCK(list, address) /* nothing */
       -# define FREE_BLOCKS(list) /* nothing */
       -#else
       -struct block_list
       -{
       -  void *address;
       -  struct block_list *next;
       -};
       -# define ADD_BLOCK(list, addr)                                                      \
       -  do {                                                                              \
       -    struct block_list *newp = (struct block_list *) malloc (sizeof (*newp));  \
       -    /* If we cannot get a free block we cannot add the new element to              \
       -       the list.  */                                                              \
       -    if (newp != NULL) {                                                              \
       -      newp->address = (addr);                                                      \
       -      newp->next = (list);                                                      \
       -      (list) = newp;                                                              \
       -    }                                                                              \
       -  } while (0)
       -# define FREE_BLOCKS(list)                                                      \
       -  do {                                                                              \
       -    while (list != NULL) {                                                      \
       -      struct block_list *old = list;                                              \
       -      list = list->next;                                                      \
       -      free (old);                                                              \
       -    }                                                                              \
       -  } while (0)
       -# undef alloca
       -# define alloca(size) (malloc (size))
       -#endif        /* have alloca */
       -
       -
        /* Names for the libintl functions are a problem.  They must not clash
           with existing names and they should follow ANSI C.  But this source
           code is also used in GNU C Library where the names have a __
           prefix.  So we have to make a difference here.  */
        #ifdef _LIBC
        # define DCGETTEXT __dcgettext
       +# define DCIGETTEXT __dcigettext
        #else
        # define DCGETTEXT dcgettext__
       +# define DCIGETTEXT dcigettext__
        #endif
        
        /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
       t@@ -225,400 +48,10 @@ DCGETTEXT (domainname, msgid, category)
             const char *msgid;
             int category;
        {
       -#ifndef HAVE_ALLOCA
       -  struct block_list *block_list = NULL;
       -#endif
       -  struct loaded_l10nfile *domain;
       -  struct binding *binding;
       -  const char *categoryname;
       -  const char *categoryvalue;
       -  char *dirname, *xdomainname;
       -  char *single_locale;
       -  char *retval;
       -  int saved_errno = errno;
       -
       -  /* If no real MSGID is given return NULL.  */
       -  if (msgid == NULL)
       -    return NULL;
       -
       -  /* If DOMAINNAME is NULL, we are interested in the default domain.  If
       -     CATEGORY is not LC_MESSAGES this might not make much sense but the
       -     defintion left this undefined.  */
       -  if (domainname == NULL)
       -    domainname = _nl_current_default_domain;
       -
       -  /* First find matching binding.  */
       -  for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
       -    {
       -      int compare = strcmp (domainname, binding->domainname);
       -      if (compare == 0)
       -        /* We found it!  */
       -        break;
       -      if (compare < 0)
       -        {
       -          /* It is not in the list.  */
       -          binding = NULL;
       -          break;
       -        }
       -    }
       -
       -  if (binding == NULL)
       -    dirname = (char *) _nl_default_dirname;
       -  else if (binding->dirname[0] == '/')
       -    dirname = binding->dirname;
       -  else
       -    {
       -      /* We have a relative path.  Make it absolute now.  */
       -      size_t dirname_len = strlen (binding->dirname) + 1;
       -      size_t path_max;
       -      char *ret;
       -
       -      path_max = (unsigned) PATH_MAX;
       -      path_max += 2;                /* The getcwd docs say to do this.  */
       -
       -      dirname = (char *) alloca (path_max + dirname_len);
       -      ADD_BLOCK (block_list, dirname);
       -
       -      __set_errno (0);
       -      while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
       -        {
       -          path_max += PATH_INCR;
       -          dirname = (char *) alloca (path_max + dirname_len);
       -          ADD_BLOCK (block_list, dirname);
       -          __set_errno (0);
       -        }
       -
       -      if (ret == NULL)
       -        {
       -          /* We cannot get the current working directory.  Don't signal an
       -             error but simply return the default string.  */
       -          FREE_BLOCKS (block_list);
       -          __set_errno (saved_errno);
       -          return (char *) msgid;
       -        }
       -
       -      stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
       -    }
       -
       -  /* Now determine the symbolic name of CATEGORY and its value.  */
       -  categoryname = category_to_name (category);
       -  categoryvalue = guess_category_value (category, categoryname);
       -
       -  xdomainname = (char *) alloca (strlen (categoryname)
       -                                 + strlen (domainname) + 5);
       -  ADD_BLOCK (block_list, xdomainname);
       -
       -  stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
       -                  domainname),
       -          ".mo");
       -
       -  /* Creating working area.  */
       -  single_locale = (char *) alloca (strlen (categoryvalue) + 1);
       -  ADD_BLOCK (block_list, single_locale);
       -
       -
       -  /* Search for the given string.  This is a loop because we perhaps
       -     got an ordered list of languages to consider for th translation.  */
       -  while (1)
       -    {
       -      /* Make CATEGORYVALUE point to the next element of the list.  */
       -      while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
       -        ++categoryvalue;
       -      if (categoryvalue[0] == '\0')
       -        {
       -          /* The whole contents of CATEGORYVALUE has been searched but
       -             no valid entry has been found.  We solve this situation
       -             by implicitly appending a "C" entry, i.e. no translation
       -             will take place.  */
       -          single_locale[0] = 'C';
       -          single_locale[1] = '\0';
       -        }
       -      else
       -        {
       -          char *cp = single_locale;
       -          while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
       -            *cp++ = *categoryvalue++;
       -          *cp = '\0';
       -        }
       -
       -      /* If the current locale value is C (or POSIX) we don't load a
       -         domain.  Return the MSGID.  */
       -      if (strcmp (single_locale, "C") == 0
       -          || strcmp (single_locale, "POSIX") == 0)
       -        {
       -          FREE_BLOCKS (block_list);
       -          __set_errno (saved_errno);
       -          return (char *) msgid;
       -        }
       -
       -
       -      /* Find structure describing the message catalog matching the
       -         DOMAINNAME and CATEGORY.  */
       -      domain = _nl_find_domain (dirname, single_locale, xdomainname);
       -
       -      if (domain != NULL)
       -        {
       -          retval = find_msg (domain, msgid);
       -
       -          if (retval == NULL)
       -            {
       -              int cnt;
       -
       -              for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
       -                {
       -                  retval = find_msg (domain->successor[cnt], msgid);
       -
       -                  if (retval != NULL)
       -                    break;
       -                }
       -            }
       -
       -          if (retval != NULL)
       -            {
       -              FREE_BLOCKS (block_list);
       -              __set_errno (saved_errno);
       -              return retval;
       -            }
       -        }
       -    }
       -  /* NOTREACHED */
       +  return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
        }
        
        #ifdef _LIBC
        /* Alias for function name in GNU C Library.  */
        weak_alias (__dcgettext, dcgettext);
        #endif
       -
       -
       -static char *
       -internal_function
       -find_msg (domain_file, msgid)
       -     struct loaded_l10nfile *domain_file;
       -     const char *msgid;
       -{
       -  size_t top, act, bottom;
       -  struct loaded_domain *domain;
       -
       -  if (domain_file->decided == 0)
       -    _nl_load_domain (domain_file);
       -
       -  if (domain_file->data == NULL)
       -    return NULL;
       -
       -  domain = (struct loaded_domain *) domain_file->data;
       -
       -  /* Locate the MSGID and its translation.  */
       -  if (domain->hash_size > 2 && domain->hash_tab != NULL)
       -    {
       -      /* Use the hashing table.  */
       -      nls_uint32 len = strlen (msgid);
       -      nls_uint32 hash_val = hash_string (msgid);
       -      nls_uint32 idx = hash_val % domain->hash_size;
       -      nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
       -      nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
       -
       -      if (nstr == 0)
       -        /* Hash table entry is empty.  */
       -        return NULL;
       -
       -      if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
       -          && strcmp (msgid,
       -                     domain->data + W (domain->must_swap,
       -                                       domain->orig_tab[nstr - 1].offset)) == 0)
       -        return (char *) domain->data + W (domain->must_swap,
       -                                          domain->trans_tab[nstr - 1].offset);
       -
       -      while (1)
       -        {
       -          if (idx >= domain->hash_size - incr)
       -            idx -= domain->hash_size - incr;
       -          else
       -            idx += incr;
       -
       -          nstr = W (domain->must_swap, domain->hash_tab[idx]);
       -          if (nstr == 0)
       -            /* Hash table entry is empty.  */
       -            return NULL;
       -
       -          if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
       -              && strcmp (msgid,
       -                         domain->data + W (domain->must_swap,
       -                                           domain->orig_tab[nstr - 1].offset))
       -                 == 0)
       -            return (char *) domain->data
       -              + W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
       -        }
       -      /* NOTREACHED */
       -    }
       -
       -  /* Now we try the default method:  binary search in the sorted
       -     array of messages.  */
       -  bottom = 0;
       -  top = domain->nstrings;
       -  while (bottom < top)
       -    {
       -      int cmp_val;
       -
       -      act = (bottom + top) / 2;
       -      cmp_val = strcmp (msgid, domain->data
       -                               + W (domain->must_swap,
       -                                    domain->orig_tab[act].offset));
       -      if (cmp_val < 0)
       -        top = act;
       -      else if (cmp_val > 0)
       -        bottom = act + 1;
       -      else
       -        break;
       -    }
       -
       -  /* If an translation is found return this.  */
       -  return bottom >= top ? NULL : (char *) domain->data
       -                                + W (domain->must_swap,
       -                                     domain->trans_tab[act].offset);
       -}
       -
       -
       -/* Return string representation of locale CATEGORY.  */
       -static const char *
       -internal_function
       -category_to_name (category)
       -     int category;
       -{
       -  const char *retval;
       -
       -  switch (category)
       -  {
       -#ifdef LC_COLLATE
       -  case LC_COLLATE:
       -    retval = "LC_COLLATE";
       -    break;
       -#endif
       -#ifdef LC_CTYPE
       -  case LC_CTYPE:
       -    retval = "LC_CTYPE";
       -    break;
       -#endif
       -#ifdef LC_MONETARY
       -  case LC_MONETARY:
       -    retval = "LC_MONETARY";
       -    break;
       -#endif
       -#ifdef LC_NUMERIC
       -  case LC_NUMERIC:
       -    retval = "LC_NUMERIC";
       -    break;
       -#endif
       -#ifdef LC_TIME
       -  case LC_TIME:
       -    retval = "LC_TIME";
       -    break;
       -#endif
       -#ifdef LC_MESSAGES
       -  case LC_MESSAGES:
       -    retval = "LC_MESSAGES";
       -    break;
       -#endif
       -#ifdef LC_RESPONSE
       -  case LC_RESPONSE:
       -    retval = "LC_RESPONSE";
       -    break;
       -#endif
       -#ifdef LC_ALL
       -  case LC_ALL:
       -    /* This might not make sense but is perhaps better than any other
       -       value.  */
       -    retval = "LC_ALL";
       -    break;
       -#endif
       -  default:
       -    /* If you have a better idea for a default value let me know.  */
       -    retval = "LC_XXX";
       -  }
       -
       -  return retval;
       -}
       -
       -/* Guess value of current locale from value of the environment variables.  */
       -static const char *
       -internal_function
       -guess_category_value (category, categoryname)
       -     int category;
       -     const char *categoryname;
       -{
       -  const char *retval;
       -
       -  /* The highest priority value is the `LANGUAGE' environment
       -     variable.  This is a GNU extension.  */
       -  retval = getenv ("LANGUAGE");
       -  if (retval != NULL && retval[0] != '\0')
       -    return retval;
       -
       -  /* `LANGUAGE' is not set.  So we have to proceed with the POSIX
       -     methods of looking to `LC_ALL', `LC_xxx', and `LANG'.  On some
       -     systems this can be done by the `setlocale' function itself.  */
       -#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
       -  return setlocale (category, NULL);
       -#else
       -  /* Setting of LC_ALL overwrites all other.  */
       -  retval = getenv ("LC_ALL");
       -  if (retval != NULL && retval[0] != '\0')
       -    return retval;
       -
       -  /* Next comes the name of the desired category.  */
       -  retval = getenv (categoryname);
       -  if (retval != NULL && retval[0] != '\0')
       -    return retval;
       -
       -  /* Last possibility is the LANG environment variable.  */
       -  retval = getenv ("LANG");
       -  if (retval != NULL && retval[0] != '\0')
       -    return retval;
       -
       -  /* We use C as the default domain.  POSIX says this is implementation
       -     defined.  */
       -  return "C";
       -#endif
       -}
       -
       -/* @@ begin of epilog @@ */
       -
       -/* We don't want libintl.a to depend on any other library.  So we
       -   avoid the non-standard function stpcpy.  In GNU C Library this
       -   function is available, though.  Also allow the symbol HAVE_STPCPY
       -   to be defined.  */
       -#if !_LIBC && !HAVE_STPCPY
       -static char *
       -stpcpy (dest, src)
       -     char *dest;
       -     const char *src;
       -{
       -  while ((*dest++ = *src++) != '\0')
       -    /* Do nothing. */ ;
       -  return dest - 1;
       -}
       -#endif
       -
       -
       -#ifdef _LIBC
       -/* If we want to free all resources we have to do some work at
       -   program's end.  */
       -static void __attribute__ ((unused))
       -free_mem (void)
       -{
       -  struct binding *runp;
       -
       -  for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next)
       -    {
       -      free (runp->domainname);
       -      if (runp->dirname != _nl_default_dirname)
       -        /* Yes, this is a pointer comparison.  */
       -        free (runp->dirname);
       -    }
       -
       -  if (_nl_current_default_domain != _nl_default_default_domain)
       -    /* Yes, again a pointer comparison.  */
       -    free ((char *) _nl_current_default_domain);
       -}
       -
       -text_set_element (__libc_subfreeres, free_mem);
       -#endif
 (DIR) diff --git a/intl/dcngettext.c b/intl/dcngettext.c
       t@@ -0,0 +1,59 @@
       +/* Implementation of the dcngettext(3) function.
       +   Copyright (C) 1995-1999, 2000, 2001 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 2, 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, write to the Free Software Foundation,
       +   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
       +
       +#ifdef HAVE_CONFIG_H
       +# include <config.h>
       +#endif
       +
       +#include "gettextP.h"
       +#ifdef _LIBC
       +# include <libintl.h>
       +#else
       +# include "libgnuintl.h"
       +#endif
       +
       +/* @@ end of prolog @@ */
       +
       +/* Names for the libintl functions are a problem.  They must not clash
       +   with existing names and they should follow ANSI C.  But this source
       +   code is also used in GNU C Library where the names have a __
       +   prefix.  So we have to make a difference here.  */
       +#ifdef _LIBC
       +# define DCNGETTEXT __dcngettext
       +# define DCIGETTEXT __dcigettext
       +#else
       +# define DCNGETTEXT dcngettext__
       +# define DCIGETTEXT dcigettext__
       +#endif
       +
       +/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
       +   locale.  */
       +char *
       +DCNGETTEXT (domainname, msgid1, msgid2, n, category)
       +     const char *domainname;
       +     const char *msgid1;
       +     const char *msgid2;
       +     unsigned long int n;
       +     int category;
       +{
       +  return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
       +}
       +
       +#ifdef _LIBC
       +/* Alias for function name in GNU C Library.  */
       +weak_alias (__dcngettext, dcngettext);
       +#endif
 (DIR) diff --git a/intl/dgettext.c b/intl/dgettext.c
       t@@ -1,5 +1,5 @@
       -/* Implementation of the dgettext(3) function
       -   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
       +/* Implementation of the dgettext(3) function.
       +   Copyright (C) 1995-1997, 2000, 2001 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
       t@@ -19,14 +19,13 @@
        # include <config.h>
        #endif
        
       -#if defined HAVE_LOCALE_H || defined _LIBC
       -# include <locale.h>
       -#endif
       +#include <locale.h>
        
       +#include "gettextP.h"
        #ifdef _LIBC
        # include <libintl.h>
        #else
       -# include "libgettext.h"
       +# include "libgnuintl.h"
        #endif
        
        /* @@ end of prolog @@ */
 (DIR) diff --git a/intl/dngettext.c b/intl/dngettext.c
       t@@ -0,0 +1,60 @@
       +/* Implementation of the dngettext(3) function.
       +   Copyright (C) 1995-1997, 2000, 2001 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 2, 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, write to the Free Software Foundation,
       +   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
       +
       +#ifdef HAVE_CONFIG_H
       +# include <config.h>
       +#endif
       +
       +#include <locale.h>
       +
       +#include "gettextP.h"
       +#ifdef _LIBC
       +# include <libintl.h>
       +#else
       +# include "libgnuintl.h"
       +#endif
       +
       +/* @@ end of prolog @@ */
       +
       +/* Names for the libintl functions are a problem.  They must not clash
       +   with existing names and they should follow ANSI C.  But this source
       +   code is also used in GNU C Library where the names have a __
       +   prefix.  So we have to make a difference here.  */
       +#ifdef _LIBC
       +# define DNGETTEXT __dngettext
       +# define DCNGETTEXT __dcngettext
       +#else
       +# define DNGETTEXT dngettext__
       +# define DCNGETTEXT dcngettext__
       +#endif
       +
       +/* Look up MSGID in the DOMAINNAME message catalog of the current
       +   LC_MESSAGES locale and skip message according to the plural form.  */
       +char *
       +DNGETTEXT (domainname, msgid1, msgid2, n)
       +     const char *domainname;
       +     const char *msgid1;
       +     const char *msgid2;
       +     unsigned long int n;
       +{
       +  return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
       +}
       +
       +#ifdef _LIBC
       +/* Alias for function name in GNU C Library.  */
       +weak_alias (__dngettext, dngettext);
       +#endif
 (DIR) diff --git a/intl/explodename.c b/intl/explodename.c
       t@@ -1,4 +1,4 @@
       -/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
       +/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
           Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
        
           This program is free software; you can redistribute it and/or modify
       t@@ -19,15 +19,8 @@
        # include <config.h>
        #endif
        
       -#if defined STDC_HEADERS || defined _LIBC
       -# include <stdlib.h>
       -#endif
       -
       -#if defined HAVE_STRING_H || defined _LIBC
       -# include <string.h>
       -#else
       -# include <strings.h>
       -#endif
       +#include <stdlib.h>
       +#include <string.h>
        #include <sys/types.h>
        
        #include "loadinfo.h"
       t@@ -43,6 +36,18 @@
        
        /* @@ end of prolog @@ */
        
       +char *
       +_nl_find_language (name)
       +     const char *name;
       +{
       +  while (name[0] != '\0' && name[0] != '_' && name[0] != '@'
       +         && name[0] != '+' && name[0] != ',')
       +    ++name;
       +
       +  return (char *) name;
       +}
       +
       +
        int
        _nl_explode_name (name, language, modifier, territory, codeset,
                          normalized_codeset, special, sponsor, revision)
       t@@ -74,9 +79,7 @@ _nl_explode_name (name, language, modifier, territory, codeset,
          mask = 0;
          syntax = undecided;
          *language = cp = name;
       -  while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@'
       -         && cp[0] != '+' && cp[0] != ',')
       -    ++cp;
       +  cp = _nl_find_language (*language);
        
          if (*language == cp)
            /* This does not make sense: language has to be specified.  Use
 (DIR) diff --git a/intl/finddomain.c b/intl/finddomain.c
       t@@ -1,6 +1,6 @@
        /* Handle list of needed message catalogs
       -   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
       -   Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
       +   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
       +   Written by Ulrich Drepper <drepper@gnu.org>, 1995.
        
           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
       t@@ -20,45 +20,20 @@
        # include <config.h>
        #endif
        
       -#include <ctype.h>
       -#include <errno.h>
        #include <stdio.h>
        #include <sys/types.h>
       -
       -#if defined STDC_HEADERS || defined _LIBC
       -# include <stdlib.h>
       -#else
       -# ifdef HAVE_MALLOC_H
       -#  include <malloc.h>
       -# else
       -void free ();
       -# endif
       -#endif
       -
       -#if defined HAVE_STRING_H || defined _LIBC
       -# include <string.h>
       -#else
       -# include <strings.h>
       -# ifndef memcpy
       -#  define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
       -# endif
       -#endif
       -#if !HAVE_STRCHR && !defined _LIBC
       -# ifndef strchr
       -#  define strchr index
       -# endif
       -#endif
       +#include <stdlib.h>
       +#include <string.h>
        
        #if defined HAVE_UNISTD_H || defined _LIBC
        # include <unistd.h>
        #endif
        
       -#include "gettext.h"
        #include "gettextP.h"
        #ifdef _LIBC
        # include <libintl.h>
        #else
       -# include "libgettext.h"
       +# include "libgnuintl.h"
        #endif
        
        /* @@ end of prolog @@ */
       t@@ -71,10 +46,11 @@ static struct loaded_l10nfile *_nl_loaded_domains;
           established bindings.  */
        struct loaded_l10nfile *
        internal_function
       -_nl_find_domain (dirname, locale, domainname)
       +_nl_find_domain (dirname, locale, domainname, domainbinding)
             const char *dirname;
             char *locale;
             const char *domainname;
       +     struct binding *domainbinding;
        {
          struct loaded_l10nfile *retval;
          const char *language;
       t@@ -120,7 +96,7 @@ _nl_find_domain (dirname, locale, domainname)
              int cnt;
        
              if (retval->decided == 0)
       -        _nl_load_domain (retval);
       +        _nl_load_domain (retval, domainbinding);
        
              if (retval->data != NULL)
                return retval;
       t@@ -128,7 +104,7 @@ _nl_find_domain (dirname, locale, domainname)
              for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
                {
                  if (retval->successor[cnt]->decided == 0)
       -            _nl_load_domain (retval->successor[cnt]);
       +            _nl_load_domain (retval->successor[cnt], domainbinding);
        
                  if (retval->successor[cnt]->data != NULL)
                    break;
       t@@ -175,14 +151,14 @@ _nl_find_domain (dirname, locale, domainname)
            return NULL;
        
          if (retval->decided == 0)
       -    _nl_load_domain (retval);
       +    _nl_load_domain (retval, domainbinding);
          if (retval->data == NULL)
            {
              int cnt;
              for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
                {
                  if (retval->successor[cnt]->decided == 0)
       -            _nl_load_domain (retval->successor[cnt]);
       +            _nl_load_domain (retval->successor[cnt], domainbinding);
                  if (retval->successor[cnt]->data != NULL)
                    break;
                }
       t@@ -192,6 +168,10 @@ _nl_find_domain (dirname, locale, domainname)
          if (alias_value != NULL)
            free (locale);
        
       +  /* The space for normalized_codeset is dynamically allocated.  Free it.  */
       +  if (mask & XPG_NORM_CODESET)
       +    free ((void *) normalized_codeset);
       +
          return retval;
        }
        
       t@@ -208,6 +188,7 @@ free_mem (void)
              if (runp->data != NULL)
                _nl_unload_domain ((struct loaded_domain *) runp->data);
              runp = runp->next;
       +      free ((char *) here->filename);
              free (here);
            }
        }
 (DIR) diff --git a/intl/gettext.c b/intl/gettext.c
       t@@ -1,5 +1,5 @@
        /* Implementation of gettext(3) function.
       -   Copyright (C) 1995, 1997 Free Software Foundation, Inc.
       +   Copyright (C) 1995, 1997, 2000, 2001 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
       t@@ -23,21 +23,14 @@
        # define __need_NULL
        # include <stddef.h>
        #else
       -# ifdef STDC_HEADERS
       -#  include <stdlib.h>                /* Just for NULL.  */
       -# else
       -#  ifdef HAVE_STRING_H
       -#   include <string.h>
       -#  else
       -#   define NULL ((void *) 0)
       -#  endif
       -# endif
       +# include <stdlib.h>                /* Just for NULL.  */
        #endif
        
       +#include "gettextP.h"
        #ifdef _LIBC
        # include <libintl.h>
        #else
       -# include "libgettext.h"
       +# include "libgnuintl.h"
        #endif
        
        /* @@ end of prolog @@ */
       t@@ -48,10 +41,10 @@
           prefix.  So we have to make a difference here.  */
        #ifdef _LIBC
        # define GETTEXT __gettext
       -# define DGETTEXT __dgettext
       +# define DCGETTEXT __dcgettext
        #else
        # define GETTEXT gettext__
       -# define DGETTEXT dgettext__
       +# define DCGETTEXT dcgettext__
        #endif
        
        /* Look up MSGID in the current default message catalog for the current
       t@@ -61,7 +54,7 @@ char *
        GETTEXT (msgid)
             const char *msgid;
        {
       -  return DGETTEXT (NULL, msgid);
       +  return DCGETTEXT (NULL, msgid, LC_MESSAGES);
        }
        
        #ifdef _LIBC
 (DIR) diff --git a/intl/gettext.h b/intl/gettext.h
       t@@ -1,5 +1,5 @@
       -/* Internal header for GNU gettext internationalization functions.
       -   Copyright (C) 1995, 1997 Free Software Foundation, Inc.
       +/* Description of GNU message catalog format: general file layout.
       +   Copyright (C) 1995, 1997, 2000, 2001 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
       t@@ -11,16 +11,13 @@
           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 Library General Public
       -   License along with the GNU C Library; see the file COPYING.LIB.  If not,
       -   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
       -   Boston, MA 02111-1307, USA.  */
       +   You should have received a copy of the GNU General Public License
       +   along with this program; if not, write to the Free Software Foundation,
       +   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
        
        #ifndef _GETTEXT_H
        #define _GETTEXT_H 1
        
       -#include <stdio.h>
       -
        #if HAVE_LIMITS_H || _LIBC
        # include <limits.h>
        #endif
       t@@ -37,9 +34,8 @@
        /* The following contortions are an attempt to use the C preprocessor
           to determine an unsigned integral type that is 32 bits wide.  An
           alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
       -   doing that would require that the configure script compile and *run*
       -   the resulting executable.  Locally running cross-compiled executables
       -   is usually not possible.  */
       +   as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
       +   when cross-compiling.  */
        
        #if __STDC__
        # define UINT_MAX_32_BITS 4294967295U
 (DIR) diff --git a/intl/gettextP.h b/intl/gettextP.h
       t@@ -1,6 +1,6 @@
       -/* Header describing internals of gettext library
       -   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
       -   Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
       +/* Header describing internals of libintl library.
       +   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
       +   Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
        
           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
       t@@ -19,8 +19,20 @@
        #ifndef _GETTEXTP_H
        #define _GETTEXTP_H
        
       +#include <stddef.h>                /* Get size_t.  */
       +
       +#ifdef _LIBC
       +# include "../iconv/gconv_int.h"
       +#else
       +# if HAVE_ICONV
       +#  include <iconv.h>
       +# endif
       +#endif
       +
        #include "loadinfo.h"
        
       +#include "gettext.h"                /* Get nls_uint32.  */
       +
        /* @@ end of prolog @@ */
        
        #ifndef PARAMS
       t@@ -35,6 +47,12 @@
        # define internal_function
        #endif
        
       +/* Tell the compiler when a conditional or integer expression is
       +   almost always true or almost always false.  */
       +#ifndef HAVE_BUILTIN_EXPECT
       +# define __builtin_expect(expr, val) (expr)
       +#endif
       +
        #ifndef W
        # define W(flag, data) ((flag) ? SWAP (data) : (data))
        #endif
       t@@ -44,8 +62,6 @@
        # include <byteswap.h>
        # define SWAP(i) bswap_32 (i)
        #else
       -static nls_uint32 SWAP PARAMS ((nls_uint32 i));
       -
        static inline nls_uint32
        SWAP (i)
             nls_uint32 i;
       t@@ -55,6 +71,52 @@ SWAP (i)
        #endif
        
        
       +/* This is the representation of the expressions to determine the
       +   plural form.  */
       +struct expression
       +{
       +  int nargs;                        /* Number of arguments.  */
       +  enum operator
       +  {
       +    /* Without arguments:  */
       +    var,                        /* The variable "n".  */
       +    num,                        /* Decimal number.  */
       +    /* Unary operators:  */
       +    lnot,                        /* Logical NOT.  */
       +    /* Binary operators:  */
       +    mult,                        /* Multiplication.  */
       +    divide,                        /* Division.  */
       +    module,                        /* Module operation.  */
       +    plus,                        /* Addition.  */
       +    minus,                        /* Subtraction.  */
       +    less_than,                        /* Comparison.  */
       +    greater_than,                /* Comparison.  */
       +    less_or_equal,                /* Comparison.  */
       +    greater_or_equal,                /* Comparison.  */
       +    equal,                        /* Comparision for equality.  */
       +    not_equal,                        /* Comparision for inequality.  */
       +    land,                        /* Logical AND.  */
       +    lor,                        /* Logical OR.  */
       +    /* Ternary operators:  */
       +    qmop                        /* Question mark operator.  */
       +  } operation;
       +  union
       +  {
       +    unsigned long int num;        /* Number value for `num'.  */
       +    struct expression *args[3];        /* Up to three arguments.  */
       +  } val;
       +};
       +
       +/* This is the data structure to pass information to the parser and get
       +   the result in a thread-safe way.  */
       +struct parse_args
       +{
       +  const char *cp;
       +  struct expression *res;
       +};
       +
       +
       +/* The representation of an opened message catalog.  */
        struct loaded_domain
        {
          const char *data;
       t@@ -66,23 +128,123 @@ struct loaded_domain
          struct string_desc *trans_tab;
          nls_uint32 hash_size;
          nls_uint32 *hash_tab;
       +  int codeset_cntr;
       +#ifdef _LIBC
       +  __gconv_t conv;
       +#else
       +# if HAVE_ICONV
       +  iconv_t conv;
       +# endif
       +#endif
       +  char **conv_tab;
       +
       +  struct expression *plural;
       +  unsigned long int nplurals;
        };
        
       +/* We want to allocate a string at the end of the struct.  But ISO C
       +   doesn't allow zero sized arrays.  */
       +#ifdef __GNUC__
       +# define ZERO 0
       +#else
       +# define ZERO 1
       +#endif
       +
       +/* A set of settings bound to a message domain.  Used to store settings
       +   from bindtextdomain() and bind_textdomain_codeset().  */
        struct binding
        {
          struct binding *next;
       -  char *domainname;
          char *dirname;
       +  int codeset_cntr;        /* Incremented each time codeset changes.  */
       +  char *codeset;
       +  char domainname[ZERO];
        };
        
       +/* A counter which is incremented each time some previous translations
       +   become invalid.
       +   This variable is part of the external ABI of the GNU libintl.  */
       +extern int _nl_msg_cat_cntr;
       +
        struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
                                                         char *__locale,
       -                                                 const char *__domainname))
       +                                                 const char *__domainname,
       +                                              struct binding *__domainbinding))
             internal_function;
       -void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
       +void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
       +                              struct binding *__domainbinding))
             internal_function;
        void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
             internal_function;
       +const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
       +                                          struct loaded_domain *__domain,
       +                                          struct binding *__domainbinding))
       +     internal_function;
       +void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain))
       +     internal_function;
       +
       +char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
       +                            struct binding *domainbinding,
       +                            const char *msgid, size_t *lengthp))
       +     internal_function;
       +
       +#ifdef _LIBC
       +extern char *__gettext PARAMS ((const char *__msgid));
       +extern char *__dgettext PARAMS ((const char *__domainname,
       +                                 const char *__msgid));
       +extern char *__dcgettext PARAMS ((const char *__domainname,
       +                                  const char *__msgid, int __category));
       +extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
       +                                 unsigned long int __n));
       +extern char *__dngettext PARAMS ((const char *__domainname,
       +                                  const char *__msgid1, const char *__msgid2,
       +                                  unsigned long int n));
       +extern char *__dcngettext PARAMS ((const char *__domainname,
       +                                   const char *__msgid1, const char *__msgid2,
       +                                   unsigned long int __n, int __category));
       +extern char *__dcigettext PARAMS ((const char *__domainname,
       +                                   const char *__msgid1, const char *__msgid2,
       +                                   int __plural, unsigned long int __n,
       +                                   int __category));
       +extern char *__textdomain PARAMS ((const char *__domainname));
       +extern char *__bindtextdomain PARAMS ((const char *__domainname,
       +                                       const char *__dirname));
       +extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname,
       +                                                const char *__codeset));
       +#else
       +extern char *gettext__ PARAMS ((const char *__msgid));
       +extern char *dgettext__ PARAMS ((const char *__domainname,
       +                                 const char *__msgid));
       +extern char *dcgettext__ PARAMS ((const char *__domainname,
       +                                  const char *__msgid, int __category));
       +extern char *ngettext__ PARAMS ((const char *__msgid1, const char *__msgid2,
       +                                 unsigned long int __n));
       +extern char *dngettext__ PARAMS ((const char *__domainname,
       +                                  const char *__msgid1, const char *__msgid2,
       +                                  unsigned long int __n));
       +extern char *dcngettext__ PARAMS ((const char *__domainname,
       +                                   const char *__msgid1, const char *__msgid2,
       +                                   unsigned long int __n, int __category));
       +extern char *dcigettext__ PARAMS ((const char *__domainname,
       +                                   const char *__msgid1, const char *__msgid2,
       +                                   int __plural, unsigned long int __n,
       +                                   int __category));
       +extern char *textdomain__ PARAMS ((const char *__domainname));
       +extern char *bindtextdomain__ PARAMS ((const char *__domainname,
       +                                       const char *__dirname));
       +extern char *bind_textdomain_codeset__ PARAMS ((const char *__domainname,
       +                                                const char *__codeset));
       +#endif
       +
       +#ifdef _LIBC
       +extern void __gettext_free_exp PARAMS ((struct expression *exp))
       +     internal_function;
       +extern int __gettextparse PARAMS ((void *arg));
       +#else
       +extern void gettext_free_exp__ PARAMS ((struct expression *exp))
       +     internal_function;
       +extern int gettextparse__ PARAMS ((void *arg));
       +#endif
        
        /* @@ begin of epilog @@ */
        
 (DIR) diff --git a/intl/hash-string.h b/intl/hash-string.h
       t@@ -1,5 +1,5 @@
       -/* Implements a string hashing function.
       -   Copyright (C) 1995, 1997 Free Software Foundation, Inc.
       +/* Description of GNU message catalog format: string hashing function.
       +   Copyright (C) 1995, 1997, 1998, 2000, 2001 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
       t@@ -11,10 +11,9 @@
           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 Library General Public
       -   License along with the GNU C Library; see the file COPYING.LIB.  If not,
       -   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
       -   Boston, MA 02111-1307, USA.  */
       +   You should have received a copy of the GNU General Public License
       +   along with this program; if not, write to the Free Software Foundation,
       +   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
        
        /* @@ end of prolog @@ */
        
       t@@ -33,9 +32,9 @@
        /* Defines the so called `hashpjw' function by P.J. Weinberger
           [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
           1986, 1987 Bell Telephone Laboratories, Inc.]  */
       -static unsigned long hash_string PARAMS ((const char *__str_param));
       +static unsigned long int hash_string PARAMS ((const char *__str_param));
        
       -static inline unsigned long
       +static inline unsigned long int
        hash_string (str_param)
             const char *str_param;
        {
       t@@ -47,8 +46,8 @@ hash_string (str_param)
          while (*str != '\0')
            {
              hval <<= 4;
       -      hval += (unsigned long) *str++;
       -      g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4));
       +      hval += (unsigned long int) *str++;
       +      g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
              if (g != 0)
                {
                  hval ^= g >> (HASHWORDBITS - 8);
 (DIR) diff --git a/intl/intl-compat.c b/intl/intl-compat.c
       t@@ -1,6 +1,6 @@
        /* intl-compat.c - Stub functions to call gettext functions from GNU gettext
           Library.
       -   Copyright (C) 1995 Software Foundation, Inc.
       +   Copyright (C) 1995, 2000, 2001 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
       t@@ -20,24 +20,79 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
        # include <config.h>
        #endif
        
       -#include "libgettext.h"
       +#include "libgnuintl.h"
       +#include "gettextP.h"
        
        /* @@ end of prolog @@ */
        
       +/* This file redirects the gettext functions (without prefix or suffix) to
       +   those defined in the included GNU gettext library (with "__" suffix).
       +   It is compiled into libintl when the included GNU gettext library is
       +   configured --with-included-gettext.
       +
       +   This redirection works also in the case that the system C library or
       +   the system libintl library contain gettext/textdomain/... functions.
       +   If it didn't, we would need to add preprocessor level redirections to
       +   libgnuintl.h of the following form:
       +
       +#    define gettext gettext__
       +#    define dgettext dgettext__
       +#    define dcgettext dcgettext__
       +#    define ngettext ngettext__
       +#    define dngettext dngettext__
       +#    define dcngettext dcngettext__
       +#    define textdomain textdomain__
       +#    define bindtextdomain bindtextdomain__
       +#    define bind_textdomain_codeset bind_textdomain_codeset__
       +
       +   How does this redirection work? There are two cases.
       +   A. When libintl.a is linked into an executable, it works because
       +      functions defined in the executable always override functions in
       +      the shared libraries.
       +   B. When libintl.so is used, it works because
       +      1. those systems defining gettext/textdomain/... in the C library
       +         (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are
       +         ELF systems and define these symbols as weak, thus explicitly
       +         letting other shared libraries override it.
       +      2. those systems defining gettext/textdomain/... in a standalone
       +         libintl.so library (namely, Solaris 2.3 and newer) have this
       +         shared library in /usr/lib, and the linker will search /usr/lib
       +         *after* the directory where the GNU gettext library is installed.
       +
       +   A third case, namely when libintl.a is linked into a shared library
       +   whose name is not libintl.so, is not supported. In this case, on
       +   Solaris, when -lintl precedes the linker option for the shared library
       +   containing GNU gettext, the system's gettext would indeed override
       +   the GNU gettext. Anyone doing this kind of stuff must be clever enough
       +   to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker
       +   command line.  */
       +
        
        #undef gettext
        #undef dgettext
        #undef dcgettext
       +#undef ngettext
       +#undef dngettext
       +#undef dcngettext
        #undef textdomain
        #undef bindtextdomain
       +#undef bind_textdomain_codeset
        
        
        char *
       -bindtextdomain (domainname, dirname)
       +gettext (msgid)
       +     const char *msgid;
       +{
       +  return gettext__ (msgid);
       +}
       +
       +
       +char *
       +dgettext (domainname, msgid)
             const char *domainname;
       -     const char *dirname;
       +     const char *msgid;
        {
       -  return bindtextdomain__ (domainname, dirname);
       +  return dgettext__ (domainname, msgid);
        }
        
        
       t@@ -52,19 +107,35 @@ dcgettext (domainname, msgid, category)
        
        
        char *
       -dgettext (domainname, msgid)
       +ngettext (msgid1, msgid2, n)
       +     const char *msgid1;
       +     const char *msgid2;
       +     unsigned long int n;
       +{
       +  return ngettext__ (msgid1, msgid2, n);
       +}
       +
       +
       +char *
       +dngettext (domainname, msgid1, msgid2, n)
             const char *domainname;
       -     const char *msgid;
       +     const char *msgid1;
       +     const char *msgid2;
       +     unsigned long int n;
        {
       -  return dgettext__ (domainname, msgid);
       +  return dngettext__ (domainname, msgid1, msgid2, n);
        }
        
        
        char *
       -gettext (msgid)
       -     const char *msgid;
       +dcngettext (domainname, msgid1, msgid2, n, category)
       +     const char *domainname;
       +     const char *msgid1;
       +     const char *msgid2;
       +     unsigned long int n;
       +     int category;
        {
       -  return gettext__ (msgid);
       +  return dcngettext__ (domainname, msgid1, msgid2, n, category);
        }
        
        
       t@@ -74,3 +145,21 @@ textdomain (domainname)
        {
          return textdomain__ (domainname);
        }
       +
       +
       +char *
       +bindtextdomain (domainname, dirname)
       +     const char *domainname;
       +     const char *dirname;
       +{
       +  return bindtextdomain__ (domainname, dirname);
       +}
       +
       +
       +char *
       +bind_textdomain_codeset (domainname, codeset)
       +     const char *domainname;
       +     const char *codeset;
       +{
       +  return bind_textdomain_codeset__ (domainname, codeset);
       +}
 (DIR) diff --git a/intl/l10nflist.c b/intl/l10nflist.c
       t@@ -1,5 +1,4 @@
       -/* Handle list of needed message catalogs
       -   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
       +/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
           Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
        
           This program is free software; you can redistribute it and/or modify
       t@@ -16,22 +15,18 @@
           along with this program; if not, write to the Free Software Foundation,
           Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
        
       +/* Tell glibc's <string.h> to provide a prototype for stpcpy().
       +   This must come before <config.h> because <config.h> may include
       +   <features.h>, and once <features.h> has been included, it's too late.  */
       +#ifndef _GNU_SOURCE
       +# define _GNU_SOURCE        1
       +#endif
       +
        #ifdef HAVE_CONFIG_H
        # include <config.h>
        #endif
        
       -
       -#if defined HAVE_STRING_H || defined _LIBC
       -# ifndef _GNU_SOURCE
       -#  define _GNU_SOURCE        1
       -# endif
       -# include <string.h>
       -#else
       -# include <strings.h>
       -# ifndef memcpy
       -#  define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
       -# endif
       -#endif
       +#include <string.h>
        #if !HAVE_STRCHR && !defined _LIBC
        # ifndef strchr
        #  define strchr index
       t@@ -43,10 +38,7 @@
        #endif
        #include <ctype.h>
        #include <sys/types.h>
       -
       -#if defined STDC_HEADERS || defined _LIBC
       -# include <stdlib.h>
       -#endif
       +#include <stdlib.h>
        
        #include "loadinfo.h"
        
       t@@ -224,7 +216,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
        
          /* Construct file name.  */
          memcpy (abs_filename, dirlist, dirlist_len);
       -  __argz_stringify (abs_filename, dirlist_len, ':');
       +  __argz_stringify (abs_filename, dirlist_len, PATH_SEPARATOR);
          cp = abs_filename + (dirlist_len - 1);
          *cp++ = '/';
          cp = stpcpy (cp, language);
       t@@ -349,10 +341,11 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
        
        /* Normalize codeset name.  There is no standard for the codeset
           names.  Normalization allows the user to use any of the common
       -   names.  */
       +   names.  The return value is dynamically allocated and has to be
       +   freed by the caller.  */
        const char *
        _nl_normalize_codeset (codeset, name_len)
       -     const unsigned char *codeset;
       +     const char *codeset;
             size_t name_len;
        {
          int len = 0;
 (DIR) diff --git a/intl/libgettext.h b/intl/libgettext.h
       t@@ -1,5 +1,5 @@
       -/* Message catalogs for internationalization.
       -   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
       +/* Convenience header for conditional use of GNU <libintl.h>.
       +   Copyright (C) 1995-1998, 2000, 2001 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
       t@@ -15,168 +15,34 @@
           along with this program; if not, write to the Free Software Foundation,
           Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
        
       -/* Because on some systems (e.g. Solaris) we sometimes have to include
       -   the systems libintl.h as well as this file we have more complex
       -   include protection above.  But the systems header might perhaps also
       -   define _LIBINTL_H and therefore we have to protect the definition here.  */
       -
       -#if !defined _LIBINTL_H || !defined _LIBGETTEXT_H
       -#ifndef _LIBINTL_H
       -# define _LIBINTL_H        1
       -#endif
       -#define _LIBGETTEXT_H        1
       -
       -/* We define an additional symbol to signal that we use the GNU
       -   implementation of gettext.  */
       -#define __USE_GNU_GETTEXT 1
       -
       -#include <sys/types.h>
       -
       -#if HAVE_LOCALE_H
       -# include <locale.h>
       -#endif
       -
       -
       -#ifdef __cplusplus
       -extern "C" {
       -#endif
       -
       -/* @@ end of prolog @@ */
       -
       -#ifndef PARAMS
       -# if __STDC__ || defined __cplusplus
       -#  define PARAMS(args) args
       -# else
       -#  define PARAMS(args) ()
       -# endif
       -#endif
       -
       -#ifndef NULL
       -# if !defined __cplusplus || defined __GNUC__
       -#  define NULL ((void *) 0)
       -# else
       -#  define NULL (0)
       -# endif
       -#endif
       -
       -#if !HAVE_LC_MESSAGES
       -/* This value determines the behaviour of the gettext() and dgettext()
       -   function.  But some system does not have this defined.  Define it
       -   to a default value.  */
       -# define LC_MESSAGES (-1)
       -#endif
       -
       -
       -/* Declarations for gettext-using-catgets interface.  Derived from
       -   Jim Meyering's libintl.h.  */
       -struct _msg_ent
       -{
       -  const char *_msg;
       -  int _msg_number;
       -};
       -
       -
       -#if HAVE_CATGETS
       -/* These two variables are defined in the automatically by po-to-tbl.sed
       -   generated file `cat-id-tbl.c'.  */
       -extern const struct _msg_ent _msg_tbl[];
       -extern int _msg_tbl_length;
       -#endif
       -
       -
       -/* For automatical extraction of messages sometimes no real
       -   translation is needed.  Instead the string itself is the result.  */
       -#define gettext_noop(Str) (Str)
       -
       -/* Look up MSGID in the current default message catalog for the current
       -   LC_MESSAGES locale.  If not found, returns MSGID itself (the default
       -   text).  */
       -extern char *gettext PARAMS ((const char *__msgid));
       -extern char *gettext__ PARAMS ((const char *__msgid));
       -
       -/* Look up MSGID in the DOMAINNAME message catalog for the current
       -   LC_MESSAGES locale.  */
       -extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
       -extern char *dgettext__ PARAMS ((const char *__domainname,
       -                                 const char *__msgid));
       -
       -/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
       -   locale.  */
       -extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
       -                                int __category));
       -extern char *dcgettext__ PARAMS ((const char *__domainname,
       -                                  const char *__msgid, int __category));
       -
       -
       -/* Set the current default message catalog to DOMAINNAME.
       -   If DOMAINNAME is null, return the current default.
       -   If DOMAINNAME is "", reset to the default of "messages".  */
       -extern char *textdomain PARAMS ((const char *__domainname));
       -extern char *textdomain__ PARAMS ((const char *__domainname));
       -
       -/* Specify that the DOMAINNAME message catalog will be found
       -   in DIRNAME rather than in the system locale data base.  */
       -extern char *bindtextdomain PARAMS ((const char *__domainname,
       -                                  const char *__dirname));
       -extern char *bindtextdomain__ PARAMS ((const char *__domainname,
       -                                    const char *__dirname));
       +#ifndef _LIBGETTEXT_H
       +#define _LIBGETTEXT_H 1
        
       +/* NLS can be disabled through the configure --disable-nls option.  */
        #if ENABLE_NLS
        
       -/* Solaris 2.3 has the gettext function but dcgettext is missing.
       -   So we omit this optimization for Solaris 2.3.  BTW, Solaris 2.4
       -   has dcgettext.  */
       -# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT)
       -
       -#  define gettext(Msgid)                                                      \
       -     dgettext (NULL, Msgid)
       -
       -#  define dgettext(Domainname, Msgid)                                              \
       -     dcgettext (Domainname, Msgid, LC_MESSAGES)
       -
       -#  if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
       -/* This global variable is defined in loadmsgcat.c.  We need a sign,
       -   whether a new catalog was loaded, which can be associated with all
       -   translations.  */
       -extern int _nl_msg_cat_cntr;
       -
       -#   define dcgettext(Domainname, Msgid, Category)                              \
       -  (__extension__                                                              \
       -   ({                                                                              \
       -     char *__result;                                                              \
       -     if (__builtin_constant_p (Msgid))                                              \
       -       {                                                                      \
       -         static char *__translation__;                                              \
       -         static int __catalog_counter__;                                      \
       -         if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr)    \
       -           {                                                                      \
       -             __translation__ =                                                      \
       -               dcgettext__ (Domainname, Msgid, Category);                      \
       -             __catalog_counter__ = _nl_msg_cat_cntr;                              \
       -           }                                                                      \
       -         __result = __translation__;                                              \
       -       }                                                                      \
       -     else                                                                      \
       -       __result = dcgettext__ (Domainname, Msgid, Category);                      \
       -     __result;                                                                      \
       -    }))
       -#  endif
       -# endif
       +/* Get declarations of GNU message catalog functions.  */
       +# include <libintl.h>
        
        #else
        
        # define gettext(Msgid) (Msgid)
        # define dgettext(Domainname, Msgid) (Msgid)
        # define dcgettext(Domainname, Msgid, Category) (Msgid)
       -# define textdomain(Domainname) ((char *) Domainname)
       -# define bindtextdomain(Domainname, Dirname) ((char *) Dirname)
       +# define ngettext(Msgid1, Msgid2, N) \
       +    ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
       +# define dngettext(Domainname, Msgid1, Msgid2, N) \
       +    ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
       +# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
       +    ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
       +# define textdomain(Domainname) ((char *) (Domainname))
       +# define bindtextdomain(Domainname, Dirname) ((char *) (Dirname))
       +# define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset))
        
        #endif
        
       -/* @@ begin of epilog @@ */
       -
       -#ifdef __cplusplus
       -}
       -#endif
       +/* For automatical extraction of messages sometimes no real
       +   translation is needed.  Instead the string itself is the result.  */
       +#define gettext_noop(Str) (Str)
        
       -#endif
       +#endif /* _LIBGETTEXT_H */
 (DIR) diff --git a/intl/libgnuintl.h b/intl/libgnuintl.h
       t@@ -0,0 +1,127 @@
       +/* Message catalogs for internationalization.
       +   Copyright (C) 1995-1997, 2000, 2001 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 2, 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, write to the Free Software Foundation,
       +   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
       +
       +#ifndef _LIBINTL_H
       +#define _LIBINTL_H        1
       +
       +#include <locale.h>
       +
       +/* The LC_MESSAGES locale category is the category used by the functions
       +   gettext() and dgettext().  It is specified in POSIX, but not in ANSI C.
       +   On systems that don't define it, use an arbitrary value instead.
       +   On Solaris, <locale.h> defines __LOCALE_H then includes <libintl.h> (i.e.
       +   this file!) and then only defines LC_MESSAGES.  To avoid a redefinition
       +   warning, don't define LC_MESSAGES in this case.  */
       +#if !defined LC_MESSAGES && !defined __LOCALE_H
       +# define LC_MESSAGES 1729
       +#endif
       +
       +/* We define an additional symbol to signal that we use the GNU
       +   implementation of gettext.  */
       +#define __USE_GNU_GETTEXT 1
       +
       +/* Resolve a platform specific conflict on DJGPP.  GNU gettext takes
       +   precedence over _conio_gettext.  */
       +#ifdef __DJGPP__
       +# undef gettext
       +# define gettext gettext
       +#endif
       +
       +#ifndef PARAMS
       +# if __STDC__ || defined __cplusplus
       +#  define PARAMS(args) args
       +# else
       +#  define PARAMS(args) ()
       +# endif
       +#endif
       +
       +#ifdef __cplusplus
       +extern "C" {
       +#endif
       +
       +/* Look up MSGID in the current default message catalog for the current
       +   LC_MESSAGES locale.  If not found, returns MSGID itself (the default
       +   text).  */
       +extern char *gettext PARAMS ((const char *__msgid));
       +
       +/* Look up MSGID in the DOMAINNAME message catalog for the current
       +   LC_MESSAGES locale.  */
       +extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
       +
       +/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
       +   locale.  */
       +extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
       +                                int __category));
       +
       +
       +/* Similar to `gettext' but select the plural form corresponding to the
       +   number N.  */
       +extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
       +                               unsigned long int __n));
       +
       +/* Similar to `dgettext' but select the plural form corresponding to the
       +   number N.  */
       +extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1,
       +                                const char *__msgid2, unsigned long int __n));
       +
       +/* Similar to `dcgettext' but select the plural form corresponding to the
       +   number N.  */
       +extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1,
       +                                 const char *__msgid2, unsigned long int __n,
       +                                 int __category));
       +
       +
       +/* Set the current default message catalog to DOMAINNAME.
       +   If DOMAINNAME is null, return the current default.
       +   If DOMAINNAME is "", reset to the default of "messages".  */
       +extern char *textdomain PARAMS ((const char *__domainname));
       +
       +/* Specify that the DOMAINNAME message catalog will be found
       +   in DIRNAME rather than in the system locale data base.  */
       +extern char *bindtextdomain PARAMS ((const char *__domainname,
       +                                     const char *__dirname));
       +
       +/* Specify the character encoding in which the messages from the
       +   DOMAINNAME message catalog will be returned.  */
       +extern char *bind_textdomain_codeset PARAMS ((const char *__domainname,
       +                                              const char *__codeset));
       +
       +
       +/* Optimized version of the functions above.  */
       +#if defined __OPTIMIZED
       +/* These are macros, but could also be inline functions.  */
       +
       +# define gettext(msgid)                                                              \
       +  dgettext (NULL, msgid)
       +
       +# define dgettext(domainname, msgid)                                              \
       +  dcgettext (domainname, msgid, LC_MESSAGES)
       +
       +# define ngettext(msgid1, msgid2, n)                                              \
       +  dngettext (NULL, msgid1, msgid2, n)
       +
       +# define dngettext(domainname, msgid1, msgid2, n)                              \
       +  dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES)
       +
       +#endif /* Optimizing. */
       +
       +
       +#ifdef __cplusplus
       +}
       +#endif
       +
       +#endif /* libintl.h */
 (DIR) diff --git a/intl/linux-msg.sed b/intl/linux-msg.sed
       t@@ -1,100 +0,0 @@
       -# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
       -# Copyright (C) 1995 Free Software Foundation, Inc.
       -# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
       -#
       -# 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 2, 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, write to the Free Software
       -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
       -#
       -#
       -# The first directive in the .msg should be the definition of the
       -# message set number.  We use always set number 1.
       -#
       -1 {
       -  i\
       -$set 1 # Automatically created by po2msg.sed
       -  h
       -  s/.*/0/
       -  x
       -}
       -#
       -# Mitch's old catalog format does not allow comments.
       -#
       -# We copy the original message as a comment into the .msg file.
       -#
       -/^msgid/ {
       -  s/msgid[         ]*"//
       -#
       -# This does not work now with the new format.
       -# /"$/! {
       -#   s/\\$//
       -#   s/$/ ... (more lines following)"/
       -# }
       -  x
       -# The following nice solution is by
       -# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
       -  td
       -# Increment a decimal number in pattern space.
       -# First hide trailing `9' digits.
       -  :d
       -  s/9\(_*\)$/_\1/
       -  td
       -# Assure at least one digit is available.
       -  s/^\(_*\)$/0\1/
       -# Increment the last digit.
       -  s/8\(_*\)$/9\1/
       -  s/7\(_*\)$/8\1/
       -  s/6\(_*\)$/7\1/
       -  s/5\(_*\)$/6\1/
       -  s/4\(_*\)$/5\1/
       -  s/3\(_*\)$/4\1/
       -  s/2\(_*\)$/3\1/
       -  s/1\(_*\)$/2\1/
       -  s/0\(_*\)$/1\1/
       -# Convert the hidden `9' digits to `0's.
       -  s/_/0/g
       -  x
       -  G
       -  s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
       -}
       -#
       -# The .msg file contains, other then the .po file, only the translations
       -# but each given a unique ID.  Starting from 1 and incrementing by 1 for
       -# each message we assign them to the messages.
       -# It is important that the .po file used to generate the cat-id-tbl.c file
       -# (with po-to-tbl) is the same as the one used here.  (At least the order
       -# of declarations must not be changed.)
       -#
       -/^msgstr/ {
       -  s/msgstr[         ]*"\(.*\)"/# \1/
       -# Clear substitution flag.
       -  tb
       -# Append the next line.
       -  :b
       -  N
       -# Look whether second part is continuation line.
       -  s/\(.*\n\)"\(.*\)"/\1\2/
       -# Yes, then branch.
       -  ta
       -  P
       -  D
       -# Note that D includes a jump to the start!!
       -# We found a continuation line.  But before printing insert '\'.
       -  :a
       -  s/\(.*\)\(\n.*\)/\1\\\2/
       -  P
       -# We cannot use D here.
       -  s/.*\n\(.*\)/\1/
       -  tb
       -}
       -d
 (DIR) diff --git a/intl/loadinfo.h b/intl/loadinfo.h
       t@@ -1,4 +1,4 @@
       -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
       +/* Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc.
           This file is part of the GNU C Library.
           Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
        
       t@@ -16,6 +16,9 @@
           along with this program; if not, write to the Free Software Foundation,
           Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
        
       +#ifndef _LOADINFO_H
       +#define _LOADINFO_H        1
       +
        #ifndef PARAMS
        # if __STDC__
        #  define PARAMS(args) args
       t@@ -24,6 +27,25 @@
        # endif
        #endif
        
       +#ifndef internal_function
       +# define internal_function
       +#endif
       +
       +/* Tell the compiler when a conditional or integer expression is
       +   almost always true or almost always false.  */
       +#ifndef HAVE_BUILTIN_EXPECT
       +# define __builtin_expect(expr, val) (expr)
       +#endif
       +
       +/* Separator in PATH like lists of pathnames.  */
       +#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
       +  /* Win32, OS/2, DOS */
       +# define PATH_SEPARATOR ';'
       +#else
       +  /* Unix */
       +# define PATH_SEPARATOR ':'
       +#endif
       +
        /* Encoding of locale name parts.  */
        #define CEN_REVISION                1
        #define CEN_SPONSOR                2
       t@@ -50,7 +72,11 @@ struct loaded_l10nfile
        };
        
        
       -extern const char *_nl_normalize_codeset PARAMS ((const unsigned char *codeset,
       +/* Normalize codeset name.  There is no standard for the codeset
       +   names.  Normalization allows the user to use any of the common
       +   names.  The return value is dynamically allocated and has to be
       +   freed by the caller.  */
       +extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
                                                          size_t name_len));
        
        extern struct loaded_l10nfile *
       t@@ -66,6 +92,8 @@ _nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
        
        extern const char *_nl_expand_alias PARAMS ((const char *name));
        
       +/* normalized_codeset is dynamically allocated and has to be freed by
       +   the caller.  */
        extern int _nl_explode_name PARAMS ((char *name, const char **language,
                                             const char **modifier,
                                             const char **territory,
       t@@ -74,3 +102,7 @@ extern int _nl_explode_name PARAMS ((char *name, const char **language,
                                             const char **special,
                                             const char **sponsor,
                                             const char **revision));
       +
       +extern char *_nl_find_language PARAMS ((const char *name));
       +
       +#endif        /* loadinfo.h */
 (DIR) diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
       t@@ -1,5 +1,5 @@
        /* Load needed message catalogs.
       -   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
       +   Copyright (C) 1995-1999, 2000, 2001 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
       t@@ -15,29 +15,68 @@
           along with this program; if not, write to the Free Software Foundation,
           Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
        
       +/* Tell glibc's <string.h> to provide a prototype for mempcpy().
       +   This must come before <config.h> because <config.h> may include
       +   <features.h>, and once <features.h> has been included, it's too late.  */
       +#ifndef _GNU_SOURCE
       +# define _GNU_SOURCE    1
       +#endif
       +
        #ifdef HAVE_CONFIG_H
        # include <config.h>
        #endif
        
       +#include <ctype.h>
       +#include <errno.h>
        #include <fcntl.h>
        #include <sys/types.h>
        #include <sys/stat.h>
        
       -#if defined STDC_HEADERS || defined _LIBC
       -# include <stdlib.h>
       +#ifdef __GNUC__
       +# define alloca __builtin_alloca
       +# define HAVE_ALLOCA 1
       +#else
       +# if defined HAVE_ALLOCA_H || defined _LIBC
       +#  include <alloca.h>
       +# else
       +#  ifdef _AIX
       + #pragma alloca
       +#  else
       +#   ifndef alloca
       +char *alloca ();
       +#   endif
       +#  endif
       +# endif
        #endif
        
       +#include <stdlib.h>
       +#include <string.h>
       +
        #if defined HAVE_UNISTD_H || defined _LIBC
        # include <unistd.h>
        #endif
        
       -#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC
       +#ifdef _LIBC
       +# include <langinfo.h>
       +# include <locale.h>
       +#endif
       +
       +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
       +    || (defined _LIBC && defined _POSIX_MAPPED_FILES)
        # include <sys/mman.h>
       +# undef HAVE_MMAP
       +# define HAVE_MMAP        1
       +#else
       +# undef HAVE_MMAP
        #endif
        
        #include "gettext.h"
        #include "gettextP.h"
        
       +#ifdef _LIBC
       +# include "../locale/localeinfo.h"
       +#endif
       +
        /* @@ end of prolog @@ */
        
        #ifdef _LIBC
       t@@ -51,32 +90,275 @@
        # define munmap __munmap
        #endif
        
       +/* Names for the libintl functions are a problem.  They must not clash
       +   with existing names and they should follow ANSI C.  But this source
       +   code is also used in GNU C Library where the names have a __
       +   prefix.  So we have to make a difference here.  */
       +#ifdef _LIBC
       +# define PLURAL_PARSE __gettextparse
       +#else
       +# define PLURAL_PARSE gettextparse__
       +#endif
       +
       +/* For those losing systems which don't have `alloca' we have to add
       +   some additional code emulating it.  */
       +#ifdef HAVE_ALLOCA
       +# define freea(p) /* nothing */
       +#else
       +# define alloca(n) malloc (n)
       +# define freea(p) free (p)
       +#endif
       +
       +/* For systems that distinguish between text and binary I/O.
       +   O_BINARY is usually declared in <fcntl.h>. */
       +#if !defined O_BINARY && defined _O_BINARY
       +  /* For MSC-compatible compilers.  */
       +# define O_BINARY _O_BINARY
       +# define O_TEXT _O_TEXT
       +#endif
       +#ifdef __BEOS__
       +  /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect.  */
       +# undef O_BINARY
       +# undef O_TEXT
       +#endif
       +/* On reasonable systems, binary I/O is the default.  */
       +#ifndef O_BINARY
       +# define O_BINARY 0
       +#endif
       +
        /* We need a sign, whether a new catalog was loaded, which can be associated
           with all translations.  This is important if the translations are
           cached by one of GCC's features.  */
       -int _nl_msg_cat_cntr = 0;
       +int _nl_msg_cat_cntr;
       +
       +#if (defined __GNUC__ && !defined __APPLE_CC__) \
       +    || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
       +
       +/* These structs are the constant expression for the germanic plural
       +   form determination.  It represents the expression  "n != 1".  */
       +static const struct expression plvar =
       +{
       +  .nargs = 0,
       +  .operation = var,
       +};
       +static const struct expression plone =
       +{
       +  .nargs = 0,
       +  .operation = num,
       +  .val =
       +  {
       +    .num = 1
       +  }
       +};
       +static struct expression germanic_plural =
       +{
       +  .nargs = 2,
       +  .operation = not_equal,
       +  .val =
       +  {
       +    .args =
       +    {
       +      [0] = (struct expression *) &plvar,
       +      [1] = (struct expression *) &plone
       +    }
       +  }
       +};
       +
       +# define INIT_GERMANIC_PLURAL()
       +
       +#else
       +
       +/* For compilers without support for ISO C 99 struct/union initializers:
       +   Initialization at run-time.  */
       +
       +static struct expression plvar;
       +static struct expression plone;
       +static struct expression germanic_plural;
       +
       +static void
       +init_germanic_plural ()
       +{
       +  if (plone.val.num == 0)
       +    {
       +      plvar.nargs = 0;
       +      plvar.operation = var;
       +
       +      plone.nargs = 0;
       +      plone.operation = num;
       +      plone.val.num = 1;
       +
       +      germanic_plural.nargs = 2;
       +      germanic_plural.operation = not_equal;
       +      germanic_plural.val.args[0] = &plvar;
       +      germanic_plural.val.args[1] = &plone;
       +    }
       +}
       +
       +# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
       +
       +#endif
       +
       +
       +/* Initialize the codeset dependent parts of an opened message catalog.
       +   Return the header entry.  */
       +const char *
       +internal_function
       +_nl_init_domain_conv (domain_file, domain, domainbinding)
       +     struct loaded_l10nfile *domain_file;
       +     struct loaded_domain *domain;
       +     struct binding *domainbinding;
       +{
       +  /* Find out about the character set the file is encoded with.
       +     This can be found (in textual form) in the entry "".  If this
       +     entry does not exist or if this does not contain the `charset='
       +     information, we will assume the charset matches the one the
       +     current locale and we don't have to perform any conversion.  */
       +  char *nullentry;
       +  size_t nullentrylen;
       +
       +  /* Preinitialize fields, to avoid recursion during _nl_find_msg.  */
       +  domain->codeset_cntr =
       +    (domainbinding != NULL ? domainbinding->codeset_cntr : 0);
       +#ifdef _LIBC
       +  domain->conv = (__gconv_t) -1;
       +#else
       +# if HAVE_ICONV
       +  domain->conv = (iconv_t) -1;
       +# endif
       +#endif
       +  domain->conv_tab = NULL;
        
       +  /* Get the header entry.  */
       +  nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen);
       +
       +  if (nullentry != NULL)
       +    {
       +#if defined _LIBC || HAVE_ICONV
       +      const char *charsetstr;
       +
       +      charsetstr = strstr (nullentry, "charset=");
       +      if (charsetstr != NULL)
       +        {
       +          size_t len;
       +          char *charset;
       +          const char *outcharset;
       +
       +          charsetstr += strlen ("charset=");
       +          len = strcspn (charsetstr, " \t\n");
       +
       +          charset = (char *) alloca (len + 1);
       +# if defined _LIBC || HAVE_MEMPCPY
       +          *((char *) mempcpy (charset, charsetstr, len)) = '\0';
       +# else
       +          memcpy (charset, charsetstr, len);
       +          charset[len] = '\0';
       +# endif
       +
       +          /* The output charset should normally be determined by the
       +             locale.  But sometimes the locale is not used or not correctly
       +             set up, so we provide a possibility for the user to override
       +             this.  Moreover, the value specified through
       +             bind_textdomain_codeset overrides both.  */
       +          if (domainbinding != NULL && domainbinding->codeset != NULL)
       +            outcharset = domainbinding->codeset;
       +          else
       +            {
       +              outcharset = getenv ("OUTPUT_CHARSET");
       +              if (outcharset == NULL || outcharset[0] == '\0')
       +                {
       +# ifdef _LIBC
       +                  outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string;
       +# else
       +#  if HAVE_ICONV
       +                  extern const char *locale_charset (void);
       +                  outcharset = locale_charset ();
       +#  endif
       +# endif
       +                }
       +            }
       +
       +# ifdef _LIBC
       +          /* We always want to use transliteration.  */
       +          outcharset = norm_add_slashes (outcharset, "TRANSLIT");
       +          charset = norm_add_slashes (charset, NULL);
       +          if (__gconv_open (outcharset, charset, &domain->conv,
       +                            GCONV_AVOID_NOCONV)
       +              != __GCONV_OK)
       +            domain->conv = (__gconv_t) -1;
       +# else
       +#  if HAVE_ICONV
       +          /* When using GNU libiconv, we want to use transliteration.  */
       +#   if _LIBICONV_VERSION >= 0x0105
       +          len = strlen (outcharset);
       +          {
       +            char *tmp = (char *) alloca (len + 10 + 1);
       +            memcpy (tmp, outcharset, len);
       +            memcpy (tmp + len, "//TRANSLIT", 10 + 1);
       +            outcharset = tmp;
       +          }
       +#   endif
       +          domain->conv = iconv_open (outcharset, charset);
       +#   if _LIBICONV_VERSION >= 0x0105
       +          freea (outcharset);
       +#   endif
       +#  endif
       +# endif
       +
       +          freea (charset);
       +        }
       +#endif /* _LIBC || HAVE_ICONV */
       +    }
       +
       +  return nullentry;
       +}
       +
       +/* Frees the codeset dependent parts of an opened message catalog.  */
       +void
       +internal_function
       +_nl_free_domain_conv (domain)
       +     struct loaded_domain *domain;
       +{
       +  if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
       +    free (domain->conv_tab);
       +
       +#ifdef _LIBC
       +  if (domain->conv != (__gconv_t) -1)
       +    __gconv_close (domain->conv);
       +#else
       +# if HAVE_ICONV
       +  if (domain->conv != (iconv_t) -1)
       +    iconv_close (domain->conv);
       +# endif
       +#endif
       +}
        
        /* Load the message catalogs specified by FILENAME.  If it is no valid
           message catalog do nothing.  */
        void
        internal_function
       -_nl_load_domain (domain_file)
       +_nl_load_domain (domain_file, domainbinding)
             struct loaded_l10nfile *domain_file;
       +     struct binding *domainbinding;
        {
          int fd;
          size_t size;
       +#ifdef _LIBC
       +  struct stat64 st;
       +#else
          struct stat st;
       +#endif
          struct mo_file_header *data = (struct mo_file_header *) -1;
       -#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
       -    || defined _LIBC
          int use_mmap = 0;
       -#endif
          struct loaded_domain *domain;
       +  const char *nullentry;
        
          domain_file->decided = 1;
          domain_file->data = NULL;
        
       +  /* Note that it would be useless to store domainbinding in domain_file
       +     because domainbinding might be == NULL now but != NULL later (after
       +     a call to bind_textdomain_codeset).  */
       +
          /* If the record does not represent a valid locale the FILENAME
             might be NULL.  This can happen when according to the given
             specification the locale file name is different for XPG and CEN
       t@@ -85,28 +367,32 @@ _nl_load_domain (domain_file)
            return;
        
          /* Try to open the addressed file.  */
       -  fd = open (domain_file->filename, O_RDONLY);
       +  fd = open (domain_file->filename, O_RDONLY | O_BINARY);
          if (fd == -1)
            return;
        
          /* We must know about the size of the file.  */
       -  if (fstat (fd, &st) != 0
       -      || (size = (size_t) st.st_size) != st.st_size
       -      || size < sizeof (struct mo_file_header))
       +  if (
       +#ifdef _LIBC
       +      __builtin_expect (fstat64 (fd, &st) != 0, 0)
       +#else
       +      __builtin_expect (fstat (fd, &st) != 0, 0)
       +#endif
       +      || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0)
       +      || __builtin_expect (size < sizeof (struct mo_file_header), 0))
            {
              /* Something went wrong.  */
              close (fd);
              return;
            }
        
       -#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
       -    || defined _LIBC
       +#ifdef HAVE_MMAP
          /* Now we are ready to load the file.  If mmap() is available we try
             this first.  If not available or it failed we try to load it.  */
          data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
                                                 MAP_PRIVATE, fd, 0);
        
       -  if (data != (struct mo_file_header *) -1)
       +  if (__builtin_expect (data != (struct mo_file_header *) -1, 1))
            {
              /* mmap() call was successful.  */
              close (fd);
       t@@ -130,12 +416,15 @@ _nl_load_domain (domain_file)
              do
                {
                  long int nb = (long int) read (fd, read_ptr, to_read);
       -          if (nb == -1)
       +          if (nb <= 0)
                    {
       +#ifdef EINTR
       +              if (nb == -1 && errno == EINTR)
       +                continue;
       +#endif
                      close (fd);
                      return;
                    }
       -
                  read_ptr += nb;
                  to_read -= nb;
                }
       t@@ -146,11 +435,11 @@ _nl_load_domain (domain_file)
        
          /* Using the magic number we can test whether it really is a message
             catalog file.  */
       -  if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
       +  if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED,
       +                        0))
            {
              /* The magic number is wrong: not a message catalog file.  */
       -#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
       -    || defined _LIBC
       +#ifdef HAVE_MMAP
              if (use_mmap)
                munmap ((caddr_t) data, size);
              else
       t@@ -159,17 +448,13 @@ _nl_load_domain (domain_file)
              return;
            }
        
       -  domain_file->data
       -    = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
       -  if (domain_file->data == NULL)
       +  domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
       +  if (domain == NULL)
            return;
       +  domain_file->data = domain;
        
       -  domain = (struct loaded_domain *) domain_file->data;
          domain->data = (char *) data;
       -#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
       -    || defined _LIBC
          domain->use_mmap = use_mmap;
       -#endif
          domain->mmap_size = size;
          domain->must_swap = data->magic != _MAGIC;
        
       t@@ -187,9 +472,8 @@ _nl_load_domain (domain_file)
                ((char *) data + W (domain->must_swap, data->hash_tab_offset));
              break;
            default:
       -      /* This is an illegal revision.  */
       -#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
       -    || defined _LIBC
       +      /* This is an invalid revision.  */
       +#ifdef HAVE_MMAP
              if (use_mmap)
                munmap ((caddr_t) data, size);
              else
       t@@ -200,9 +484,62 @@ _nl_load_domain (domain_file)
              return;
            }
        
       -  /* Show that one domain is changed.  This might make some cached
       -     translations invalid.  */
       -  ++_nl_msg_cat_cntr;
       +  /* Now initialize the character set converter from the character set
       +     the file is encoded with (found in the header entry) to the domain's
       +     specified character set or the locale's character set.  */
       +  nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
       +
       +  /* Also look for a plural specification.  */
       +  if (nullentry != NULL)
       +    {
       +      const char *plural;
       +      const char *nplurals;
       +
       +      plural = strstr (nullentry, "plural=");
       +      nplurals = strstr (nullentry, "nplurals=");
       +      if (plural == NULL || nplurals == NULL)
       +        goto no_plural;
       +      else
       +        {
       +          /* First get the number.  */
       +          char *endp;
       +          unsigned long int n;
       +          struct parse_args args;
       +
       +          nplurals += 9;
       +          while (*nplurals != '\0' && isspace (*nplurals))
       +            ++nplurals;
       +#if defined HAVE_STRTOUL || defined _LIBC
       +          n = strtoul (nplurals, &endp, 10);
       +#else
       +          for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
       +            n = n * 10 + (*endp - '0');
       +#endif
       +          domain->nplurals = n;
       +          if (nplurals == endp)
       +            goto no_plural;
       +
       +          /* Due to the restrictions bison imposes onto the interface of the
       +             scanner function we have to put the input string and the result
       +             passed up from the parser into the same structure which address
       +             is passed down to the parser.  */
       +          plural += 7;
       +          args.cp = plural;
       +          if (PLURAL_PARSE (&args) != 0)
       +            goto no_plural;
       +          domain->plural = args.res;
       +        }
       +    }
       +  else
       +    {
       +      /* By default we are using the Germanic form: singular form only
       +         for `one', the plural form otherwise.  Yes, this is also what
       +         English is using since English is a Germanic language.  */
       +    no_plural:
       +      INIT_GERMANIC_PLURAL ();
       +      domain->plural = &germanic_plural;
       +      domain->nplurals = 2;
       +    }
        }
        
        
       t@@ -212,9 +549,16 @@ internal_function
        _nl_unload_domain (domain)
             struct loaded_domain *domain;
        {
       +  if (domain->plural != &germanic_plural)
       +    __gettext_free_exp (domain->plural);
       +
       +  _nl_free_domain_conv (domain);
       +
       +# ifdef _POSIX_MAPPED_FILES
          if (domain->use_mmap)
            munmap ((caddr_t) domain->data, domain->mmap_size);
          else
       +# endif        /* _POSIX_MAPPED_FILES */
            free ((void *) domain->data);
        
          free (domain);
 (DIR) diff --git a/intl/localcharset.c b/intl/localcharset.c
       t@@ -0,0 +1,271 @@
       +/* Determine a canonical name for the current locale's character encoding.
       +
       +   Copyright (C) 2000-2001 Free Software Foundation, Inc.
       +
       +   This program is free software; you can redistribute it and/or modify it
       +   under the terms of the GNU Library General Public License as published
       +   by the Free Software Foundation; either version 2, 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
       +   Library General Public License for more details.
       +
       +   You should have received a copy of the GNU Library General Public
       +   License along with this program; if not, write to the Free Software
       +   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
       +   USA.  */
       +
       +/* Written by Bruno Haible <haible@clisp.cons.org>.  */
       +
       +#ifdef HAVE_CONFIG_H
       +# include <config.h>
       +#endif
       +
       +#if HAVE_STDDEF_H
       +# include <stddef.h>
       +#endif
       +
       +#include <stdio.h>
       +#if HAVE_STRING_H
       +# include <string.h>
       +#else
       +# include <strings.h>
       +#endif
       +#if HAVE_STDLIB_H
       +# include <stdlib.h>
       +#endif
       +
       +#if defined _WIN32 || defined __WIN32__
       +# undef WIN32   /* avoid warning on mingw32 */
       +# define WIN32
       +#endif
       +
       +#ifndef WIN32
       +# if HAVE_LANGINFO_CODESET
       +#  include <langinfo.h>
       +# else
       +#  if HAVE_SETLOCALE
       +#   include <locale.h>
       +#  endif
       +# endif
       +#else /* WIN32 */
       +# define WIN32_LEAN_AND_MEAN
       +# include <windows.h>
       +#endif
       +
       +#ifndef DIRECTORY_SEPARATOR
       +# define DIRECTORY_SEPARATOR '/'
       +#endif
       +
       +#ifndef ISSLASH
       +# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
       +#endif
       +
       +/* The following static variable is declared 'volatile' to avoid a
       +   possible multithread problem in the function get_charset_aliases. If we
       +   are running in a threaded environment, and if two threads initialize
       +   'charset_aliases' simultaneously, both will produce the same value,
       +   and everything will be ok if the two assignments to 'charset_aliases'
       +   are atomic. But I don't know what will happen if the two assignments mix.  */
       +#if __STDC__ != 1
       +# define volatile /* empty */
       +#endif
       +/* Pointer to the contents of the charset.alias file, if it has already been
       +   read, else NULL.  Its format is:
       +   ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0'  */
       +static char * volatile charset_aliases;
       +
       +/* Return a pointer to the contents of the charset.alias file.  */
       +static const char *
       +get_charset_aliases ()
       +{
       +  char *cp;
       +
       +  cp = charset_aliases;
       +  if (cp == NULL)
       +    {
       +#ifndef WIN32
       +      FILE *fp;
       +      const char *dir = LIBDIR;
       +      const char *base = "charset.alias";
       +      char *file_name;
       +
       +      /* Concatenate dir and base into freshly allocated file_name.  */
       +      {
       +        size_t dir_len = strlen (dir);
       +        size_t base_len = strlen (base);
       +        int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
       +        file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
       +        if (file_name != NULL)
       +          {
       +            memcpy (file_name, dir, dir_len);
       +            if (add_slash)
       +              file_name[dir_len] = DIRECTORY_SEPARATOR;
       +            memcpy (file_name + dir_len + add_slash, base, base_len + 1);
       +          }
       +      }
       +
       +      if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
       +        /* Out of memory or file not found, treat it as empty.  */
       +        cp = "";
       +      else
       +        {
       +          /* Parse the file's contents.  */
       +          int c;
       +          char buf1[50+1];
       +          char buf2[50+1];
       +          char *res_ptr = NULL;
       +          size_t res_size = 0;
       +          size_t l1, l2;
       +
       +          for (;;)
       +            {
       +              c = getc (fp);
       +              if (c == EOF)
       +                break;
       +              if (c == '\n' || c == ' ' || c == '\t')
       +                continue;
       +              if (c == '#')
       +                {
       +                  /* Skip comment, to end of line.  */
       +                  do
       +                    c = getc (fp);
       +                  while (!(c == EOF || c == '\n'));
       +                  if (c == EOF)
       +                    break;
       +                  continue;
       +                }
       +              ungetc (c, fp);
       +              if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
       +                break;
       +              l1 = strlen (buf1);
       +              l2 = strlen (buf2);
       +              if (res_size == 0)
       +                {
       +                  res_size = l1 + 1 + l2 + 1;
       +                  res_ptr = malloc (res_size + 1);
       +                }
       +              else
       +                {
       +                  res_size += l1 + 1 + l2 + 1;
       +                  res_ptr = realloc (res_ptr, res_size + 1);
       +                }
       +              if (res_ptr == NULL)
       +                {
       +                  /* Out of memory. */
       +                  res_size = 0;
       +                  break;
       +                }
       +              strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
       +              strcpy (res_ptr + res_size - (l2 + 1), buf2);
       +            }
       +          fclose (fp);
       +          if (res_size == 0)
       +            cp = "";
       +          else
       +            {
       +              *(res_ptr + res_size) = '\0';
       +              cp = res_ptr;
       +            }
       +        }
       +
       +      if (file_name != NULL)
       +        free (file_name);
       +
       +#else /* WIN32 */
       +
       +      /* To avoid the troubles of installing a separate file in the same
       +         directory as the DLL and of retrieving the DLL's directory at
       +         runtime, simply inline the aliases here.  */
       +
       +      cp = "CP936" "\0" "GBK" "\0"
       +           "CP1361" "\0" "JOHAB" "\0";
       +#endif
       +
       +      charset_aliases = cp;
       +    }
       +
       +  return cp;
       +}
       +
       +/* Determine the current locale's character encoding, and canonicalize it
       +   into one of the canonical names listed in config.charset.
       +   The result must not be freed; it is statically allocated.
       +   If the canonical name cannot be determined, the result is a non-canonical
       +   name.  */
       +
       +#ifdef STATIC
       +STATIC
       +#endif
       +const char *
       +locale_charset ()
       +{
       +  const char *codeset;
       +  const char *aliases;
       +
       +#ifndef WIN32
       +
       +# if HAVE_LANGINFO_CODESET
       +
       +  /* Most systems support nl_langinfo (CODESET) nowadays.  */
       +  codeset = nl_langinfo (CODESET);
       +
       +# else
       +
       +  /* On old systems which lack it, use setlocale or getenv.  */
       +  const char *locale = NULL;
       +
       +  /* But most old systems don't have a complete set of locales.  Some
       +     (like SunOS 4 or DJGPP) have only the C locale.  Therefore we don't
       +     use setlocale here; it would return "C" when it doesn't support the
       +     locale name the user has set.  */
       +#  if HAVE_SETLOCALE && 0
       +  locale = setlocale (LC_CTYPE, NULL);
       +#  endif
       +  if (locale == NULL || locale[0] == '\0')
       +    {
       +      locale = getenv ("LC_ALL");
       +      if (locale == NULL || locale[0] == '\0')
       +        {
       +          locale = getenv ("LC_CTYPE");
       +          if (locale == NULL || locale[0] == '\0')
       +            locale = getenv ("LANG");
       +        }
       +    }
       +
       +  /* On some old systems, one used to set locale = "iso8859_1". On others,
       +     you set it to "language_COUNTRY.charset". In any case, we resolve it
       +     through the charset.alias file.  */
       +  codeset = locale;
       +
       +# endif
       +
       +#else /* WIN32 */
       +
       +  static char buf[2 + 10 + 1];
       +
       +  /* Win32 has a function returning the locale's codepage as a number.  */
       +  sprintf (buf, "CP%u", GetACP ());
       +  codeset = buf;
       +
       +#endif
       +
       +  if (codeset == NULL)
       +    /* The canonical name cannot be determined.  */
       +    codeset = "";
       +
       +  /* Resolve alias. */
       +  for (aliases = get_charset_aliases ();
       +       *aliases != '\0';
       +       aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
       +    if (strcmp (codeset, aliases) == 0
       +        || (aliases[0] == '*' && aliases[1] == '\0'))
       +      {
       +        codeset = aliases + strlen (aliases) + 1;
       +        break;
       +      }
       +
       +  return codeset;
       +}
 (DIR) diff --git a/intl/locale.alias b/intl/locale.alias
       t@@ -0,0 +1,77 @@
       +# Locale name alias data base.
       +# Copyright (C) 1996,1997,1998,1999,2000,2001 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 2, 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, write to the Free Software
       +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
       +
       +# The format of this file is the same as for the corresponding file of
       +# the X Window System, which normally can be found in
       +#        /usr/lib/X11/locale/locale.alias
       +# A single line contains two fields: an alias and a substitution value.
       +# All entries are case independent.
       +
       +# Note: This file is far from being complete.  If you have a value for
       +# your own site which you think might be useful for others too, share
       +# it with the rest of us.  Send it using the `glibcbug' script to
       +# bugs@gnu.org.
       +
       +# Packages using this file: 
       +
       +bokmal                no_NO.ISO-8859-1
       +bokmål                no_NO.ISO-8859-1
       +catalan                ca_ES.ISO-8859-1
       +croatian        hr_HR.ISO-8859-2
       +czech                cs_CZ.ISO-8859-2
       +danish          da_DK.ISO-8859-1
       +dansk                da_DK.ISO-8859-1
       +deutsch                de_DE.ISO-8859-1
       +dutch                nl_NL.ISO-8859-1
       +eesti                et_EE.ISO-8859-1
       +estonian        et_EE.ISO-8859-1
       +finnish         fi_FI.ISO-8859-1
       +français        fr_FR.ISO-8859-1
       +french                fr_FR.ISO-8859-1
       +galego                gl_ES.ISO-8859-1
       +galician        gl_ES.ISO-8859-1
       +german                de_DE.ISO-8859-1
       +greek           el_GR.ISO-8859-7
       +hebrew          iw_IL.ISO-8859-8
       +hrvatski        hr_HR.ISO-8859-2
       +hungarian       hu_HU.ISO-8859-2
       +icelandic       is_IS.ISO-8859-1
       +italian         it_IT.ISO-8859-1
       +japanese        ja_JP.eucJP
       +japanese.euc        ja_JP.eucJP
       +ja_JP                ja_JP.eucJP
       +ja_JP.ujis        ja_JP.eucJP
       +japanese.sjis        ja_JP.SJIS
       +korean                ko_KR.eucKR
       +korean.euc         ko_KR.eucKR
       +ko_KR                ko_KR.eucKR
       +lithuanian      lt_LT.ISO-8859-13
       +nb_NO                no_NO.ISO-8859-1
       +nb_NO.ISO-8859-1 no_NO.ISO-8859-1
       +norwegian       no_NO.ISO-8859-1
       +nynorsk                nn_NO.ISO-8859-1
       +polish          pl_PL.ISO-8859-2
       +portuguese      pt_PT.ISO-8859-1
       +romanian        ro_RO.ISO-8859-2
       +russian         ru_RU.ISO-8859-5
       +slovak          sk_SK.ISO-8859-2
       +slovene         sl_SI.ISO-8859-2
       +slovenian       sl_SI.ISO-8859-2
       +spanish         es_ES.ISO-8859-1
       +swedish         sv_SE.ISO-8859-1
       +thai                th_TH.TIS-620
       +turkish         tr_TR.ISO-8859-9
 (DIR) diff --git a/intl/localealias.c b/intl/localealias.c
       t@@ -1,6 +1,5 @@
        /* Handle aliases for locale names.
       -   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
       -   Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
       +   Copyright (C) 1995-1999, 2000, 2001 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
       t@@ -16,6 +15,13 @@
           along with this program; if not, write to the Free Software Foundation,
           Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
        
       +/* Tell glibc's <string.h> to provide a prototype for mempcpy().
       +   This must come before <config.h> because <config.h> may include
       +   <features.h>, and once <features.h> has been included, it's too late.  */
       +#ifndef _GNU_SOURCE
       +# define _GNU_SOURCE    1
       +#endif
       +
        #ifdef HAVE_CONFIG_H
        # include <config.h>
        #endif
       t@@ -41,35 +47,15 @@ char *alloca ();
        # endif
        #endif
        
       -#if defined STDC_HEADERS || defined _LIBC
       -# include <stdlib.h>
       -#else
       -char *getenv ();
       -# ifdef HAVE_MALLOC_H
       -#  include <malloc.h>
       -# else
       -void free ();
       -# endif
       -#endif
       +#include <stdlib.h>
        
       -#if defined HAVE_STRING_H || defined _LIBC
       -# ifndef _GNU_SOURCE
       -#  define _GNU_SOURCE        1
       -# endif
       -# include <string.h>
       -#else
       -# include <strings.h>
       -# ifndef memcpy
       -#  define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
       -# endif
       -#endif
       +#include <string.h>
        #if !HAVE_STRCHR && !defined _LIBC
        # ifndef strchr
        #  define strchr index
        # endif
        #endif
        
       -#include "gettext.h"
        #include "gettextP.h"
        
        /* @@ end of prolog @@ */
       t@@ -80,7 +66,9 @@ void free ();
           file and the name space must not be polluted.  */
        # define strcasecmp __strcasecmp
        
       -# define mempcpy __mempcpy
       +# ifndef mempcpy
       +#  define mempcpy __mempcpy
       +# endif
        # define HAVE_MEMPCPY        1
        
        /* We need locking here since we can be called from different places.  */
       t@@ -89,41 +77,27 @@ void free ();
        __libc_lock_define_initialized (static, lock);
        #endif
        
       +#ifndef internal_function
       +# define internal_function
       +#endif
        
       -/* For those loosing systems which don't have `alloca' we have to add
       +/* For those losing systems which don't have `alloca' we have to add
           some additional code emulating it.  */
        #ifdef HAVE_ALLOCA
       -/* Nothing has to be done.  */
       -# define ADD_BLOCK(list, address) /* nothing */
       -# define FREE_BLOCKS(list) /* nothing */
       +# define freea(p) /* nothing */
        #else
       -struct block_list
       -{
       -  void *address;
       -  struct block_list *next;
       -};
       -# define ADD_BLOCK(list, addr)                                                      \
       -  do {                                                                              \
       -    struct block_list *newp = (struct block_list *) malloc (sizeof (*newp));  \
       -    /* If we cannot get a free block we cannot add the new element to              \
       -       the list.  */                                                              \
       -    if (newp != NULL) {                                                              \
       -      newp->address = (addr);                                                      \
       -      newp->next = (list);                                                      \
       -      (list) = newp;                                                              \
       -    }                                                                              \
       -  } while (0)
       -# define FREE_BLOCKS(list)                                                      \
       -  do {                                                                              \
       -    while (list != NULL) {                                                      \
       -      struct block_list *old = list;                                              \
       -      list = list->next;                                                      \
       -      free (old);                                                              \
       -    }                                                                              \
       -  } while (0)
       -# undef alloca
       -# define alloca(size) (malloc (size))
       -#endif        /* have alloca */
       +# define alloca(n) malloc (n)
       +# define freea(p) free (p)
       +#endif
       +
       +#if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED
       +# undef fgets
       +# define fgets(buf, len, s) fgets_unlocked (buf, len, s)
       +#endif
       +#if defined _LIBC_REENTRANT || defined HAVE_FEOF_UNLOCKED
       +# undef feof
       +# define feof(s) feof_unlocked (s)
       +#endif
        
        
        struct alias_map
       t@@ -133,18 +107,18 @@ struct alias_map
        };
        
        
       -static char *string_space = NULL;
       -static size_t string_space_act = 0;
       -static size_t string_space_max = 0;
       +static char *string_space;
       +static size_t string_space_act;
       +static size_t string_space_max;
        static struct alias_map *map;
       -static size_t nmap = 0;
       -static size_t maxmap = 0;
       +static size_t nmap;
       +static size_t maxmap;
        
        
        /* Prototypes for local functions.  */
        static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
             internal_function;
       -static void extend_alias_table PARAMS ((void));
       +static int extend_alias_table PARAMS ((void));
        static int alias_compare PARAMS ((const struct alias_map *map1,
                                          const struct alias_map *map2));
        
       t@@ -190,11 +164,12 @@ _nl_expand_alias (name)
                {
                  const char *start;
        
       -          while (locale_alias_path[0] == ':')
       +          while (locale_alias_path[0] == PATH_SEPARATOR)
                    ++locale_alias_path;
                  start = locale_alias_path;
        
       -          while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
       +          while (locale_alias_path[0] != '\0'
       +                 && locale_alias_path[0] != PATH_SEPARATOR)
                    ++locale_alias_path;
        
                  if (start < locale_alias_path)
       t@@ -217,16 +192,12 @@ read_alias_file (fname, fname_len)
             const char *fname;
             int fname_len;
        {
       -#ifndef HAVE_ALLOCA
       -  struct block_list *block_list = NULL;
       -#endif
          FILE *fp;
          char *full_fname;
          size_t added;
          static const char aliasfile[] = "/locale.alias";
        
          full_fname = (char *) alloca (fname_len + sizeof aliasfile);
       -  ADD_BLOCK (block_list, full_fname);
        #ifdef HAVE_MEMPCPY
          mempcpy (mempcpy (full_fname, fname, fname_len),
                   aliasfile, sizeof aliasfile);
       t@@ -236,11 +207,9 @@ read_alias_file (fname, fname_len)
        #endif
        
          fp = fopen (full_fname, "r");
       +  freea (full_fname);
          if (fp == NULL)
       -    {
       -      FREE_BLOCKS (block_list);
       -      return 0;
       -    }
       +    return 0;
        
          added = 0;
          while (!feof (fp))
       t@@ -250,10 +219,10 @@ read_alias_file (fname, fname_len)
                 b) these fields must be usable as file names and so must not
                    be that long
               */
       -      unsigned char buf[BUFSIZ];
       -      unsigned char *alias;
       -      unsigned char *value;
       -      unsigned char *cp;
       +      char buf[BUFSIZ];
       +      char *alias;
       +      char *value;
       +      char *cp;
        
              if (fgets (buf, sizeof buf, fp) == NULL)
                /* EOF reached.  */
       t@@ -312,7 +281,8 @@ read_alias_file (fname, fname_len)
                        *cp++ = '\0';
        
                      if (nmap >= maxmap)
       -                extend_alias_table ();
       +                if (__builtin_expect (extend_alias_table (), 0))
       +                  return added;
        
                      alias_len = strlen (alias) + 1;
                      value_len = strlen (value) + 1;
       t@@ -325,10 +295,19 @@ read_alias_file (fname, fname_len)
                                                ? alias_len + value_len : 1024));
                          char *new_pool = (char *) realloc (string_space, new_size);
                          if (new_pool == NULL)
       +                    return added;
       +
       +                  if (__builtin_expect (string_space != new_pool, 0))
                            {
       -                      FREE_BLOCKS (block_list);
       -                      return added;
       +                      size_t i;
       +
       +                      for (i = 0; i < nmap; i++)
       +                        {
       +                          map[i].alias += new_pool - string_space;
       +                          map[i].value += new_pool - string_space;
       +                        }
                            }
       +
                          string_space = new_pool;
                          string_space_max = new_size;
                        }
       t@@ -355,12 +334,11 @@ read_alias_file (fname, fname_len)
            qsort (map, nmap, sizeof (struct alias_map),
                   (int (*) PARAMS ((const void *, const void *))) alias_compare);
        
       -  FREE_BLOCKS (block_list);
          return added;
        }
        
        
       -static void
       +static int
        extend_alias_table ()
        {
          size_t new_size;
       t@@ -371,10 +349,11 @@ extend_alias_table ()
                                                        * sizeof (struct alias_map)));
          if (new_map == NULL)
            /* Simply don't extend: we don't have any more core.  */
       -    return;
       +    return -1;
        
          map = new_map;
          maxmap = new_size;
       +  return 0;
        }
        
        
 (DIR) diff --git a/intl/ngettext.c b/intl/ngettext.c
       t@@ -0,0 +1,67 @@
       +/* Implementation of ngettext(3) function.
       +   Copyright (C) 1995, 1997, 2000, 2001 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 2, 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, write to the Free Software Foundation,
       +   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
       +
       +#ifdef HAVE_CONFIG_H
       +# include <config.h>
       +#endif
       +
       +#ifdef _LIBC
       +# define __need_NULL
       +# include <stddef.h>
       +#else
       +# include <stdlib.h>                /* Just for NULL.  */
       +#endif
       +
       +#include "gettextP.h"
       +#ifdef _LIBC
       +# include <libintl.h>
       +#else
       +# include "libgnuintl.h"
       +#endif
       +
       +#include <locale.h>
       +
       +/* @@ end of prolog @@ */
       +
       +/* Names for the libintl functions are a problem.  They must not clash
       +   with existing names and they should follow ANSI C.  But this source
       +   code is also used in GNU C Library where the names have a __
       +   prefix.  So we have to make a difference here.  */
       +#ifdef _LIBC
       +# define NGETTEXT __ngettext
       +# define DCNGETTEXT __dcngettext
       +#else
       +# define NGETTEXT ngettext__
       +# define DCNGETTEXT dcngettext__
       +#endif
       +
       +/* Look up MSGID in the current default message catalog for the current
       +   LC_MESSAGES locale.  If not found, returns MSGID itself (the default
       +   text).  */
       +char *
       +NGETTEXT (msgid1, msgid2, n)
       +     const char *msgid1;
       +     const char *msgid2;
       +     unsigned long int n;
       +{
       +  return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
       +}
       +
       +#ifdef _LIBC
       +/* Alias for function name in GNU C Library.  */
       +weak_alias (__ngettext, ngettext);
       +#endif
 (DIR) diff --git a/intl/plural.c b/intl/plural.c
       t@@ -0,0 +1,1325 @@
       +
       +/*  A Bison parser, made from plural.y
       +    by GNU Bison version 1.28  */
       +
       +#define YYBISON 1  /* Identify Bison output.  */
       +
       +#define yyparse __gettextparse
       +#define yylex __gettextlex
       +#define yyerror __gettexterror
       +#define yylval __gettextlval
       +#define yychar __gettextchar
       +#define yydebug __gettextdebug
       +#define yynerrs __gettextnerrs
       +#define        EQUOP2        257
       +#define        CMPOP2        258
       +#define        ADDOP2        259
       +#define        MULOP2        260
       +#define        NUMBER        261
       +
       +#line 1 "plural.y"
       +
       +/* Expression parsing for plural form selection.
       +   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
       +   Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
       +
       +   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 2, 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, write to the Free Software Foundation,
       +   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
       +
       +/* The bison generated parser uses alloca.  AIX 3 forces us to put this
       +   declaration at the beginning of the file.  The declaration in bison's
       +   skeleton file comes too late.  This must come before <config.h>
       +   because <config.h> may include arbitrary system headers.  */
       +#if defined _AIX && !defined __GNUC__
       + #pragma alloca
       +#endif
       +
       +#ifdef HAVE_CONFIG_H
       +# include <config.h>
       +#endif
       +
       +#include <stdlib.h>
       +#include "gettextP.h"
       +
       +/* Names for the libintl functions are a problem.  They must not clash
       +   with existing names and they should follow ANSI C.  But this source
       +   code is also used in GNU C Library where the names have a __
       +   prefix.  So we have to make a difference here.  */
       +#ifdef _LIBC
       +# define FREE_EXPRESSION __gettext_free_exp
       +#else
       +# define FREE_EXPRESSION gettext_free_exp__
       +# define __gettextparse gettextparse__
       +#endif
       +
       +#define YYLEX_PARAM        &((struct parse_args *) arg)->cp
       +#define YYPARSE_PARAM        arg
       +
       +#line 52 "plural.y"
       +typedef union {
       +  unsigned long int num;
       +  enum operator op;
       +  struct expression *exp;
       +} YYSTYPE;
       +#line 58 "plural.y"
       +
       +/* Prototypes for local functions.  */
       +static struct expression *new_exp PARAMS ((int nargs, enum operator op,
       +                                           struct expression * const *args));
       +static inline struct expression *new_exp_0 PARAMS ((enum operator op));
       +static inline struct expression *new_exp_1 PARAMS ((enum operator op,
       +                                                   struct expression *right));
       +static struct expression *new_exp_2 PARAMS ((enum operator op,
       +                                             struct expression *left,
       +                                             struct expression *right));
       +static inline struct expression *new_exp_3 PARAMS ((enum operator op,
       +                                                   struct expression *bexp,
       +                                                   struct expression *tbranch,
       +                                                   struct expression *fbranch));
       +static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
       +static void yyerror PARAMS ((const char *str));
       +
       +/* Allocation of expressions.  */
       +
       +static struct expression *
       +new_exp (nargs, op, args)
       +     int nargs;
       +     enum operator op;
       +     struct expression * const *args;
       +{
       +  int i;
       +  struct expression *newp;
       +
       +  /* If any of the argument could not be malloc'ed, just return NULL.  */
       +  for (i = nargs - 1; i >= 0; i--)
       +    if (args[i] == NULL)
       +      goto fail;
       +
       +  /* Allocate a new expression.  */
       +  newp = (struct expression *) malloc (sizeof (*newp));
       +  if (newp != NULL)
       +    {
       +      newp->nargs = nargs;
       +      newp->operation = op;
       +      for (i = nargs - 1; i >= 0; i--)
       +        newp->val.args[i] = args[i];
       +      return newp;
       +    }
       +
       + fail:
       +  for (i = nargs - 1; i >= 0; i--)
       +    FREE_EXPRESSION (args[i]);
       +
       +  return NULL;
       +}
       +
       +static inline struct expression *
       +new_exp_0 (op)
       +     enum operator op;
       +{
       +  return new_exp (0, op, NULL);
       +}
       +
       +static inline struct expression *
       +new_exp_1 (op, right)
       +     enum operator op;
       +     struct expression *right;
       +{
       +  struct expression *args[1];
       +
       +  args[0] = right;
       +  return new_exp (1, op, args);
       +}
       +
       +static struct expression *
       +new_exp_2 (op, left, right)
       +     enum operator op;
       +     struct expression *left;
       +     struct expression *right;
       +{
       +  struct expression *args[2];
       +
       +  args[0] = left;
       +  args[1] = right;
       +  return new_exp (2, op, args);
       +}
       +
       +static inline struct expression *
       +new_exp_3 (op, bexp, tbranch, fbranch)
       +     enum operator op;
       +     struct expression *bexp;
       +     struct expression *tbranch;
       +     struct expression *fbranch;
       +{
       +  struct expression *args[3];
       +
       +  args[0] = bexp;
       +  args[1] = tbranch;
       +  args[2] = fbranch;
       +  return new_exp (3, op, args);
       +}
       +
       +#include <stdio.h>
       +
       +#ifndef __cplusplus
       +#ifndef __STDC__
       +#define const
       +#endif
       +#endif
       +
       +
       +
       +#define        YYFINAL                27
       +#define        YYFLAG                -32768
       +#define        YYNTBASE        16
       +
       +#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
       +
       +static const char yytranslate[] = {     0,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,    10,     2,     2,     2,     2,     5,     2,    14,
       +    15,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,    12,     2,     2,
       +     2,     2,     3,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,    13,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     4,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       +     2,     2,     2,     2,     2,     1,     6,     7,     8,     9,
       +    11
       +};
       +
       +#if YYDEBUG != 0
       +static const short yyprhs[] = {     0,
       +     0,     2,     8,    12,    16,    20,    24,    28,    32,    35,
       +    37,    39
       +};
       +
       +static const short yyrhs[] = {    17,
       +     0,    17,     3,    17,    12,    17,     0,    17,     4,    17,
       +     0,    17,     5,    17,     0,    17,     6,    17,     0,    17,
       +     7,    17,     0,    17,     8,    17,     0,    17,     9,    17,
       +     0,    10,    17,     0,    13,     0,    11,     0,    14,    17,
       +    15,     0
       +};
       +
       +#endif
       +
       +#if YYDEBUG != 0
       +static const short yyrline[] = { 0,
       +   177,   185,   189,   193,   197,   201,   205,   209,   213,   217,
       +   221,   226
       +};
       +#endif
       +
       +
       +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
       +
       +static const char * const yytname[] = {   "$","error","$undefined.","'?'","'|'",
       +"'&'","EQUOP2","CMPOP2","ADDOP2","MULOP2","'!'","NUMBER","':'","'n'","'('","')'",
       +"start","exp", NULL
       +};
       +#endif
       +
       +static const short yyr1[] = {     0,
       +    16,    17,    17,    17,    17,    17,    17,    17,    17,    17,
       +    17,    17
       +};
       +
       +static const short yyr2[] = {     0,
       +     1,     5,     3,     3,     3,     3,     3,     3,     2,     1,
       +     1,     3
       +};
       +
       +static const short yydefact[] = {     0,
       +     0,    11,    10,     0,     1,     9,     0,     0,     0,     0,
       +     0,     0,     0,     0,    12,     0,     3,     4,     5,     6,
       +     7,     8,     0,     2,     0,     0,     0
       +};
       +
       +static const short yydefgoto[] = {    25,
       +     5
       +};
       +
       +static const short yypact[] = {    -9,
       +    -9,-32768,-32768,    -9,    34,-32768,    11,    -9,    -9,    -9,
       +    -9,    -9,    -9,    -9,-32768,    24,    39,    43,    16,    26,
       +    -3,-32768,    -9,    34,    21,    53,-32768
       +};
       +
       +static const short yypgoto[] = {-32768,
       +    -1
       +};
       +
       +
       +#define        YYLAST                53
       +
       +
       +static const short yytable[] = {     6,
       +     1,     2,     7,     3,     4,    14,    16,    17,    18,    19,
       +    20,    21,    22,     8,     9,    10,    11,    12,    13,    14,
       +    26,    24,    12,    13,    14,    15,     8,     9,    10,    11,
       +    12,    13,    14,    13,    14,    23,     8,     9,    10,    11,
       +    12,    13,    14,    10,    11,    12,    13,    14,    11,    12,
       +    13,    14,    27
       +};
       +
       +static const short yycheck[] = {     1,
       +    10,    11,     4,    13,    14,     9,     8,     9,    10,    11,
       +    12,    13,    14,     3,     4,     5,     6,     7,     8,     9,
       +     0,    23,     7,     8,     9,    15,     3,     4,     5,     6,
       +     7,     8,     9,     8,     9,    12,     3,     4,     5,     6,
       +     7,     8,     9,     5,     6,     7,     8,     9,     6,     7,
       +     8,     9,     0
       +};
       +#define YYPURE 1
       +
       +/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
       +#line 3 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
       +/* This file comes from bison-1.28.  */
       +
       +/* Skeleton output parser for bison,
       +   Copyright (C) 1984, 1989, 1990 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 2, 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, write to the Free Software
       +   Foundation, Inc., 59 Temple Place - Suite 330,
       +   Boston, MA 02111-1307, USA.  */
       +
       +/* As a special exception, when this file is copied by Bison into a
       +   Bison output file, you may use that output file without restriction.
       +   This special exception was added by the Free Software Foundation
       +   in version 1.24 of Bison.  */
       +
       +/* This is the parser code that is written into each bison parser
       +  when the %semantic_parser declaration is not specified in the grammar.
       +  It was written by Richard Stallman by simplifying the hairy parser
       +  used when %semantic_parser is specified.  */
       +
       +#ifndef YYSTACK_USE_ALLOCA
       +#ifdef alloca
       +#define YYSTACK_USE_ALLOCA
       +#else /* alloca not defined */
       +#ifdef __GNUC__
       +#define YYSTACK_USE_ALLOCA
       +#define alloca __builtin_alloca
       +#else /* not GNU C.  */
       +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
       +#define YYSTACK_USE_ALLOCA
       +#include <alloca.h>
       +#else /* not sparc */
       +/* We think this test detects Watcom and Microsoft C.  */
       +/* This used to test MSDOS, but that is a bad idea
       +   since that symbol is in the user namespace.  */
       +#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
       +#if 0 /* No need for malloc.h, which pollutes the namespace;
       +         instead, just don't use alloca.  */
       +#include <malloc.h>
       +#endif
       +#else /* not MSDOS, or __TURBOC__ */
       +#if defined(_AIX)
       +/* I don't know what this was needed for, but it pollutes the namespace.
       +   So I turned it off.   rms, 2 May 1997.  */
       +/* #include <malloc.h>  */
       + #pragma alloca
       +#define YYSTACK_USE_ALLOCA
       +#else /* not MSDOS, or __TURBOC__, or _AIX */
       +#if 0
       +#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
       +                 and on HPUX 10.  Eventually we can turn this on.  */
       +#define YYSTACK_USE_ALLOCA
       +#define alloca __builtin_alloca
       +#endif /* __hpux */
       +#endif
       +#endif /* not _AIX */
       +#endif /* not MSDOS, or __TURBOC__ */
       +#endif /* not sparc */
       +#endif /* not GNU C */
       +#endif /* alloca not defined */
       +#endif /* YYSTACK_USE_ALLOCA not defined */
       +
       +#ifdef YYSTACK_USE_ALLOCA
       +#define YYSTACK_ALLOC alloca
       +#else
       +#define YYSTACK_ALLOC malloc
       +#endif
       +
       +/* Note: there must be only one dollar sign in this file.
       +   It is replaced by the list of actions, each action
       +   as one case of the switch.  */
       +
       +#define yyerrok                (yyerrstatus = 0)
       +#define yyclearin        (yychar = YYEMPTY)
       +#define YYEMPTY                -2
       +#define YYEOF                0
       +#define YYACCEPT        goto yyacceptlab
       +#define YYABORT         goto yyabortlab
       +#define YYERROR                goto yyerrlab1
       +/* Like YYERROR except do call yyerror.
       +   This remains here temporarily to ease the
       +   transition to the new meaning of YYERROR, for GCC.
       +   Once GCC version 2 has supplanted version 1, this can go.  */
       +#define YYFAIL                goto yyerrlab
       +#define YYRECOVERING()  (!!yyerrstatus)
       +#define YYBACKUP(token, value) \
       +do                                                                \
       +  if (yychar == YYEMPTY && yylen == 1)                                \
       +    { yychar = (token), yylval = (value);                        \
       +      yychar1 = YYTRANSLATE (yychar);                                \
       +      YYPOPSTACK;                                                \
       +      goto yybackup;                                                \
       +    }                                                                \
       +  else                                                                \
       +    { yyerror ("syntax error: cannot back up"); YYERROR; }        \
       +while (0)
       +
       +#define YYTERROR        1
       +#define YYERRCODE        256
       +
       +#ifndef YYPURE
       +#define YYLEX                yylex()
       +#endif
       +
       +#ifdef YYPURE
       +#ifdef YYLSP_NEEDED
       +#ifdef YYLEX_PARAM
       +#define YYLEX                yylex(&yylval, &yylloc, YYLEX_PARAM)
       +#else
       +#define YYLEX                yylex(&yylval, &yylloc)
       +#endif
       +#else /* not YYLSP_NEEDED */
       +#ifdef YYLEX_PARAM
       +#define YYLEX                yylex(&yylval, YYLEX_PARAM)
       +#else
       +#define YYLEX                yylex(&yylval)
       +#endif
       +#endif /* not YYLSP_NEEDED */
       +#endif
       +
       +/* If nonreentrant, generate the variables here */
       +
       +#ifndef YYPURE
       +
       +int        yychar;                        /*  the lookahead symbol                */
       +YYSTYPE        yylval;                        /*  the semantic value of the                */
       +                                /*  lookahead symbol                        */
       +
       +#ifdef YYLSP_NEEDED
       +YYLTYPE yylloc;                        /*  location data for the lookahead        */
       +                                /*  symbol                                */
       +#endif
       +
       +int yynerrs;                        /*  number of parse errors so far       */
       +#endif  /* not YYPURE */
       +
       +#if YYDEBUG != 0
       +int yydebug;                        /*  nonzero means print parse trace        */
       +/* Since this is uninitialized, it does not stop multiple parsers
       +   from coexisting.  */
       +#endif
       +
       +/*  YYINITDEPTH indicates the initial size of the parser's stacks        */
       +
       +#ifndef        YYINITDEPTH
       +#define YYINITDEPTH 200
       +#endif
       +
       +/*  YYMAXDEPTH is the maximum size the stacks can grow to
       +    (effective only if the built-in stack extension method is used).  */
       +
       +#if YYMAXDEPTH == 0
       +#undef YYMAXDEPTH
       +#endif
       +
       +#ifndef YYMAXDEPTH
       +#define YYMAXDEPTH 10000
       +#endif
       +
       +/* Define __yy_memcpy.  Note that the size argument
       +   should be passed with type unsigned int, because that is what the non-GCC
       +   definitions require.  With GCC, __builtin_memcpy takes an arg
       +   of type size_t, but it can handle unsigned int.  */
       +
       +#if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
       +#define __yy_memcpy(TO,FROM,COUNT)        __builtin_memcpy(TO,FROM,COUNT)
       +#else                                /* not GNU C or C++ */
       +#ifndef __cplusplus
       +
       +/* This is the most reliable way to avoid incompatibilities
       +   in available built-in functions on various systems.  */
       +static void
       +__yy_memcpy (to, from, count)
       +     char *to;
       +     char *from;
       +     unsigned int count;
       +{
       +  register char *f = from;
       +  register char *t = to;
       +  register int i = count;
       +
       +  while (i-- > 0)
       +    *t++ = *f++;
       +}
       +
       +#else /* __cplusplus */
       +
       +/* This is the most reliable way to avoid incompatibilities
       +   in available built-in functions on various systems.  */
       +static void
       +__yy_memcpy (char *to, char *from, unsigned int count)
       +{
       +  register char *t = to;
       +  register char *f = from;
       +  register int i = count;
       +
       +  while (i-- > 0)
       +    *t++ = *f++;
       +}
       +
       +#endif
       +#endif
       +
       +#line 217 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
       +
       +/* The user can define YYPARSE_PARAM as the name of an argument to be passed
       +   into yyparse.  The argument should have type void *.
       +   It should actually point to an object.
       +   Grammar actions can access the variable by casting it
       +   to the proper pointer type.  */
       +
       +#ifdef YYPARSE_PARAM
       +#ifdef __cplusplus
       +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
       +#define YYPARSE_PARAM_DECL
       +#else /* not __cplusplus */
       +#define YYPARSE_PARAM_ARG YYPARSE_PARAM
       +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
       +#endif /* not __cplusplus */
       +#else /* not YYPARSE_PARAM */
       +#define YYPARSE_PARAM_ARG
       +#define YYPARSE_PARAM_DECL
       +#endif /* not YYPARSE_PARAM */
       +
       +/* Prevent warning if -Wstrict-prototypes.  */
       +#ifdef __GNUC__
       +#ifdef YYPARSE_PARAM
       +int yyparse (void *);
       +#else
       +int yyparse (void);
       +#endif
       +#endif
       +
       +int
       +yyparse(YYPARSE_PARAM_ARG)
       +     YYPARSE_PARAM_DECL
       +{
       +  register int yystate;
       +  register int yyn;
       +  register short *yyssp;
       +  register YYSTYPE *yyvsp;
       +  int yyerrstatus;        /*  number of tokens to shift before error messages enabled */
       +  int yychar1 = 0;                /*  lookahead token as an internal (translated) token number */
       +
       +  short        yyssa[YYINITDEPTH];        /*  the state stack                        */
       +  YYSTYPE yyvsa[YYINITDEPTH];        /*  the semantic value stack                */
       +
       +  short *yyss = yyssa;                /*  refer to the stacks thru separate pointers */
       +  YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
       +
       +#ifdef YYLSP_NEEDED
       +  YYLTYPE yylsa[YYINITDEPTH];        /*  the location stack                        */
       +  YYLTYPE *yyls = yylsa;
       +  YYLTYPE *yylsp;
       +
       +#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
       +#else
       +#define YYPOPSTACK   (yyvsp--, yyssp--)
       +#endif
       +
       +  int yystacksize = YYINITDEPTH;
       +  int yyfree_stacks = 0;
       +
       +#ifdef YYPURE
       +  int yychar;
       +  YYSTYPE yylval;
       +  int yynerrs;
       +#ifdef YYLSP_NEEDED
       +  YYLTYPE yylloc;
       +#endif
       +#endif
       +
       +  YYSTYPE yyval;                /*  the variable used to return                */
       +                                /*  semantic values from the action        */
       +                                /*  routines                                */
       +
       +  int yylen;
       +
       +#if YYDEBUG != 0
       +  if (yydebug)
       +    fprintf(stderr, "Starting parse\n");
       +#endif
       +
       +  yystate = 0;
       +  yyerrstatus = 0;
       +  yynerrs = 0;
       +  yychar = YYEMPTY;                /* Cause a token to be read.  */
       +
       +  /* Initialize stack pointers.
       +     Waste one element of value and location stack
       +     so that they stay on the same level as the state stack.
       +     The wasted elements are never initialized.  */
       +
       +  yyssp = yyss - 1;
       +  yyvsp = yyvs;
       +#ifdef YYLSP_NEEDED
       +  yylsp = yyls;
       +#endif
       +
       +/* Push a new state, which is found in  yystate  .  */
       +/* In all cases, when you get here, the value and location stacks
       +   have just been pushed. so pushing a state here evens the stacks.  */
       +yynewstate:
       +
       +  *++yyssp = yystate;
       +
       +  if (yyssp >= yyss + yystacksize - 1)
       +    {
       +      /* Give user a chance to reallocate the stack */
       +      /* Use copies of these so that the &'s don't force the real ones into memory. */
       +      YYSTYPE *yyvs1 = yyvs;
       +      short *yyss1 = yyss;
       +#ifdef YYLSP_NEEDED
       +      YYLTYPE *yyls1 = yyls;
       +#endif
       +
       +      /* Get the current used size of the three stacks, in elements.  */
       +      int size = yyssp - yyss + 1;
       +
       +#ifdef yyoverflow
       +      /* Each stack pointer address is followed by the size of
       +         the data in use in that stack, in bytes.  */
       +#ifdef YYLSP_NEEDED
       +      /* This used to be a conditional around just the two extra args,
       +         but that might be undefined if yyoverflow is a macro.  */
       +      yyoverflow("parser stack overflow",
       +                 &yyss1, size * sizeof (*yyssp),
       +                 &yyvs1, size * sizeof (*yyvsp),
       +                 &yyls1, size * sizeof (*yylsp),
       +                 &yystacksize);
       +#else
       +      yyoverflow("parser stack overflow",
       +                 &yyss1, size * sizeof (*yyssp),
       +                 &yyvs1, size * sizeof (*yyvsp),
       +                 &yystacksize);
       +#endif
       +
       +      yyss = yyss1; yyvs = yyvs1;
       +#ifdef YYLSP_NEEDED
       +      yyls = yyls1;
       +#endif
       +#else /* no yyoverflow */
       +      /* Extend the stack our own way.  */
       +      if (yystacksize >= YYMAXDEPTH)
       +        {
       +          yyerror("parser stack overflow");
       +          if (yyfree_stacks)
       +            {
       +              free (yyss);
       +              free (yyvs);
       +#ifdef YYLSP_NEEDED
       +              free (yyls);
       +#endif
       +            }
       +          return 2;
       +        }
       +      yystacksize *= 2;
       +      if (yystacksize > YYMAXDEPTH)
       +        yystacksize = YYMAXDEPTH;
       +#ifndef YYSTACK_USE_ALLOCA
       +      yyfree_stacks = 1;
       +#endif
       +      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
       +      __yy_memcpy ((char *)yyss, (char *)yyss1,
       +                   size * (unsigned int) sizeof (*yyssp));
       +      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
       +      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
       +                   size * (unsigned int) sizeof (*yyvsp));
       +#ifdef YYLSP_NEEDED
       +      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
       +      __yy_memcpy ((char *)yyls, (char *)yyls1,
       +                   size * (unsigned int) sizeof (*yylsp));
       +#endif
       +#endif /* no yyoverflow */
       +
       +      yyssp = yyss + size - 1;
       +      yyvsp = yyvs + size - 1;
       +#ifdef YYLSP_NEEDED
       +      yylsp = yyls + size - 1;
       +#endif
       +
       +#if YYDEBUG != 0
       +      if (yydebug)
       +        fprintf(stderr, "Stack size increased to %d\n", yystacksize);
       +#endif
       +
       +      if (yyssp >= yyss + yystacksize - 1)
       +        YYABORT;
       +    }
       +
       +#if YYDEBUG != 0
       +  if (yydebug)
       +    fprintf(stderr, "Entering state %d\n", yystate);
       +#endif
       +
       +  goto yybackup;
       + yybackup:
       +
       +/* Do appropriate processing given the current state.  */
       +/* Read a lookahead token if we need one and don't already have one.  */
       +/* yyresume: */
       +
       +  /* First try to decide what to do without reference to lookahead token.  */
       +
       +  yyn = yypact[yystate];
       +  if (yyn == YYFLAG)
       +    goto yydefault;
       +
       +  /* Not known => get a lookahead token if don't already have one.  */
       +
       +  /* yychar is either YYEMPTY or YYEOF
       +     or a valid token in external form.  */
       +
       +  if (yychar == YYEMPTY)
       +    {
       +#if YYDEBUG != 0
       +      if (yydebug)
       +        fprintf(stderr, "Reading a token: ");
       +#endif
       +      yychar = YYLEX;
       +    }
       +
       +  /* Convert token to internal form (in yychar1) for indexing tables with */
       +
       +  if (yychar <= 0)                /* This means end of input. */
       +    {
       +      yychar1 = 0;
       +      yychar = YYEOF;                /* Don't call YYLEX any more */
       +
       +#if YYDEBUG != 0
       +      if (yydebug)
       +        fprintf(stderr, "Now at end of input.\n");
       +#endif
       +    }
       +  else
       +    {
       +      yychar1 = YYTRANSLATE(yychar);
       +
       +#if YYDEBUG != 0
       +      if (yydebug)
       +        {
       +          fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
       +          /* Give the individual parser a way to print the precise meaning
       +             of a token, for further debugging info.  */
       +#ifdef YYPRINT
       +          YYPRINT (stderr, yychar, yylval);
       +#endif
       +          fprintf (stderr, ")\n");
       +        }
       +#endif
       +    }
       +
       +  yyn += yychar1;
       +  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
       +    goto yydefault;
       +
       +  yyn = yytable[yyn];
       +
       +  /* yyn is what to do for this token type in this state.
       +     Negative => reduce, -yyn is rule number.
       +     Positive => shift, yyn is new state.
       +       New state is final state => don't bother to shift,
       +       just return success.
       +     0, or most negative number => error.  */
       +
       +  if (yyn < 0)
       +    {
       +      if (yyn == YYFLAG)
       +        goto yyerrlab;
       +      yyn = -yyn;
       +      goto yyreduce;
       +    }
       +  else if (yyn == 0)
       +    goto yyerrlab;
       +
       +  if (yyn == YYFINAL)
       +    YYACCEPT;
       +
       +  /* Shift the lookahead token.  */
       +
       +#if YYDEBUG != 0
       +  if (yydebug)
       +    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
       +#endif
       +
       +  /* Discard the token being shifted unless it is eof.  */
       +  if (yychar != YYEOF)
       +    yychar = YYEMPTY;
       +
       +  *++yyvsp = yylval;
       +#ifdef YYLSP_NEEDED
       +  *++yylsp = yylloc;
       +#endif
       +
       +  /* count tokens shifted since error; after three, turn off error status.  */
       +  if (yyerrstatus) yyerrstatus--;
       +
       +  yystate = yyn;
       +  goto yynewstate;
       +
       +/* Do the default action for the current state.  */
       +yydefault:
       +
       +  yyn = yydefact[yystate];
       +  if (yyn == 0)
       +    goto yyerrlab;
       +
       +/* Do a reduction.  yyn is the number of a rule to reduce with.  */
       +yyreduce:
       +  yylen = yyr2[yyn];
       +  if (yylen > 0)
       +    yyval = yyvsp[1-yylen]; /* implement default value of the action */
       +
       +#if YYDEBUG != 0
       +  if (yydebug)
       +    {
       +      int i;
       +
       +      fprintf (stderr, "Reducing via rule %d (line %d), ",
       +               yyn, yyrline[yyn]);
       +
       +      /* Print the symbols being reduced, and their result.  */
       +      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
       +        fprintf (stderr, "%s ", yytname[yyrhs[i]]);
       +      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
       +    }
       +#endif
       +
       +
       +  switch (yyn) {
       +
       +case 1:
       +#line 178 "plural.y"
       +{
       +            if (yyvsp[0].exp == NULL)
       +              YYABORT;
       +            ((struct parse_args *) arg)->res = yyvsp[0].exp;
       +          ;
       +    break;}
       +case 2:
       +#line 186 "plural.y"
       +{
       +            yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
       +          ;
       +    break;}
       +case 3:
       +#line 190 "plural.y"
       +{
       +            yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
       +          ;
       +    break;}
       +case 4:
       +#line 194 "plural.y"
       +{
       +            yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
       +          ;
       +    break;}
       +case 5:
       +#line 198 "plural.y"
       +{
       +            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
       +          ;
       +    break;}
       +case 6:
       +#line 202 "plural.y"
       +{
       +            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
       +          ;
       +    break;}
       +case 7:
       +#line 206 "plural.y"
       +{
       +            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
       +          ;
       +    break;}
       +case 8:
       +#line 210 "plural.y"
       +{
       +            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
       +          ;
       +    break;}
       +case 9:
       +#line 214 "plural.y"
       +{
       +            yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
       +          ;
       +    break;}
       +case 10:
       +#line 218 "plural.y"
       +{
       +            yyval.exp = new_exp_0 (var);
       +          ;
       +    break;}
       +case 11:
       +#line 222 "plural.y"
       +{
       +            if ((yyval.exp = new_exp_0 (num)) != NULL)
       +              yyval.exp->val.num = yyvsp[0].num;
       +          ;
       +    break;}
       +case 12:
       +#line 227 "plural.y"
       +{
       +            yyval.exp = yyvsp[-1].exp;
       +          ;
       +    break;}
       +}
       +   /* the action file gets copied in in place of this dollarsign */
       +#line 543 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
       +
       +  yyvsp -= yylen;
       +  yyssp -= yylen;
       +#ifdef YYLSP_NEEDED
       +  yylsp -= yylen;
       +#endif
       +
       +#if YYDEBUG != 0
       +  if (yydebug)
       +    {
       +      short *ssp1 = yyss - 1;
       +      fprintf (stderr, "state stack now");
       +      while (ssp1 != yyssp)
       +        fprintf (stderr, " %d", *++ssp1);
       +      fprintf (stderr, "\n");
       +    }
       +#endif
       +
       +  *++yyvsp = yyval;
       +
       +#ifdef YYLSP_NEEDED
       +  yylsp++;
       +  if (yylen == 0)
       +    {
       +      yylsp->first_line = yylloc.first_line;
       +      yylsp->first_column = yylloc.first_column;
       +      yylsp->last_line = (yylsp-1)->last_line;
       +      yylsp->last_column = (yylsp-1)->last_column;
       +      yylsp->text = 0;
       +    }
       +  else
       +    {
       +      yylsp->last_line = (yylsp+yylen-1)->last_line;
       +      yylsp->last_column = (yylsp+yylen-1)->last_column;
       +    }
       +#endif
       +
       +  /* Now "shift" the result of the reduction.
       +     Determine what state that goes to,
       +     based on the state we popped back to
       +     and the rule number reduced by.  */
       +
       +  yyn = yyr1[yyn];
       +
       +  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
       +  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
       +    yystate = yytable[yystate];
       +  else
       +    yystate = yydefgoto[yyn - YYNTBASE];
       +
       +  goto yynewstate;
       +
       +yyerrlab:   /* here on detecting error */
       +
       +  if (! yyerrstatus)
       +    /* If not already recovering from an error, report this error.  */
       +    {
       +      ++yynerrs;
       +
       +#ifdef YYERROR_VERBOSE
       +      yyn = yypact[yystate];
       +
       +      if (yyn > YYFLAG && yyn < YYLAST)
       +        {
       +          int size = 0;
       +          char *msg;
       +          int x, count;
       +
       +          count = 0;
       +          /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
       +          for (x = (yyn < 0 ? -yyn : 0);
       +               x < (sizeof(yytname) / sizeof(char *)); x++)
       +            if (yycheck[x + yyn] == x)
       +              size += strlen(yytname[x]) + 15, count++;
       +          msg = (char *) malloc(size + 15);
       +          if (msg != 0)
       +            {
       +              strcpy(msg, "parse error");
       +
       +              if (count < 5)
       +                {
       +                  count = 0;
       +                  for (x = (yyn < 0 ? -yyn : 0);
       +                       x < (sizeof(yytname) / sizeof(char *)); x++)
       +                    if (yycheck[x + yyn] == x)
       +                      {
       +                        strcat(msg, count == 0 ? ", expecting `" : " or `");
       +                        strcat(msg, yytname[x]);
       +                        strcat(msg, "'");
       +                        count++;
       +                      }
       +                }
       +              yyerror(msg);
       +              free(msg);
       +            }
       +          else
       +            yyerror ("parse error; also virtual memory exceeded");
       +        }
       +      else
       +#endif /* YYERROR_VERBOSE */
       +        yyerror("parse error");
       +    }
       +
       +  goto yyerrlab1;
       +yyerrlab1:   /* here on error raised explicitly by an action */
       +
       +  if (yyerrstatus == 3)
       +    {
       +      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
       +
       +      /* return failure if at end of input */
       +      if (yychar == YYEOF)
       +        YYABORT;
       +
       +#if YYDEBUG != 0
       +      if (yydebug)
       +        fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
       +#endif
       +
       +      yychar = YYEMPTY;
       +    }
       +
       +  /* Else will try to reuse lookahead token
       +     after shifting the error token.  */
       +
       +  yyerrstatus = 3;                /* Each real token shifted decrements this */
       +
       +  goto yyerrhandle;
       +
       +yyerrdefault:  /* current state does not do anything special for the error token. */
       +
       +#if 0
       +  /* This is wrong; only states that explicitly want error tokens
       +     should shift them.  */
       +  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
       +  if (yyn) goto yydefault;
       +#endif
       +
       +yyerrpop:   /* pop the current state because it cannot handle the error token */
       +
       +  if (yyssp == yyss) YYABORT;
       +  yyvsp--;
       +  yystate = *--yyssp;
       +#ifdef YYLSP_NEEDED
       +  yylsp--;
       +#endif
       +
       +#if YYDEBUG != 0
       +  if (yydebug)
       +    {
       +      short *ssp1 = yyss - 1;
       +      fprintf (stderr, "Error: state stack now");
       +      while (ssp1 != yyssp)
       +        fprintf (stderr, " %d", *++ssp1);
       +      fprintf (stderr, "\n");
       +    }
       +#endif
       +
       +yyerrhandle:
       +
       +  yyn = yypact[yystate];
       +  if (yyn == YYFLAG)
       +    goto yyerrdefault;
       +
       +  yyn += YYTERROR;
       +  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
       +    goto yyerrdefault;
       +
       +  yyn = yytable[yyn];
       +  if (yyn < 0)
       +    {
       +      if (yyn == YYFLAG)
       +        goto yyerrpop;
       +      yyn = -yyn;
       +      goto yyreduce;
       +    }
       +  else if (yyn == 0)
       +    goto yyerrpop;
       +
       +  if (yyn == YYFINAL)
       +    YYACCEPT;
       +
       +#if YYDEBUG != 0
       +  if (yydebug)
       +    fprintf(stderr, "Shifting error token, ");
       +#endif
       +
       +  *++yyvsp = yylval;
       +#ifdef YYLSP_NEEDED
       +  *++yylsp = yylloc;
       +#endif
       +
       +  yystate = yyn;
       +  goto yynewstate;
       +
       + yyacceptlab:
       +  /* YYACCEPT comes here.  */
       +  if (yyfree_stacks)
       +    {
       +      free (yyss);
       +      free (yyvs);
       +#ifdef YYLSP_NEEDED
       +      free (yyls);
       +#endif
       +    }
       +  return 0;
       +
       + yyabortlab:
       +  /* YYABORT comes here.  */
       +  if (yyfree_stacks)
       +    {
       +      free (yyss);
       +      free (yyvs);
       +#ifdef YYLSP_NEEDED
       +      free (yyls);
       +#endif
       +    }
       +  return 1;
       +}
       +#line 232 "plural.y"
       +
       +
       +void
       +internal_function
       +FREE_EXPRESSION (exp)
       +     struct expression *exp;
       +{
       +  if (exp == NULL)
       +    return;
       +
       +  /* Handle the recursive case.  */
       +  switch (exp->nargs)
       +    {
       +    case 3:
       +      FREE_EXPRESSION (exp->val.args[2]);
       +      /* FALLTHROUGH */
       +    case 2:
       +      FREE_EXPRESSION (exp->val.args[1]);
       +      /* FALLTHROUGH */
       +    case 1:
       +      FREE_EXPRESSION (exp->val.args[0]);
       +      /* FALLTHROUGH */
       +    default:
       +      break;
       +    }
       +
       +  free (exp);
       +}
       +
       +
       +static int
       +yylex (lval, pexp)
       +     YYSTYPE *lval;
       +     const char **pexp;
       +{
       +  const char *exp = *pexp;
       +  int result;
       +
       +  while (1)
       +    {
       +      if (exp[0] == '\0')
       +        {
       +          *pexp = exp;
       +          return YYEOF;
       +        }
       +
       +      if (exp[0] != ' ' && exp[0] != '\t')
       +        break;
       +
       +      ++exp;
       +    }
       +
       +  result = *exp++;
       +  switch (result)
       +    {
       +    case '0': case '1': case '2': case '3': case '4':
       +    case '5': case '6': case '7': case '8': case '9':
       +      {
       +        unsigned long int n = result - '0';
       +        while (exp[0] >= '0' && exp[0] <= '9')
       +          {
       +            n *= 10;
       +            n += exp[0] - '0';
       +            ++exp;
       +          }
       +        lval->num = n;
       +        result = NUMBER;
       +      }
       +      break;
       +
       +    case '=':
       +      if (exp[0] == '=')
       +        {
       +          ++exp;
       +          lval->op = equal;
       +          result = EQUOP2;
       +        }
       +      else
       +        result = YYERRCODE;
       +      break;
       +
       +    case '!':
       +      if (exp[0] == '=')
       +        {
       +          ++exp;
       +          lval->op = not_equal;
       +          result = EQUOP2;
       +        }
       +      break;
       +
       +    case '&':
       +    case '|':
       +      if (exp[0] == result)
       +        ++exp;
       +      else
       +        result = YYERRCODE;
       +      break;
       +
       +    case '<':
       +      if (exp[0] == '=')
       +        {
       +          ++exp;
       +          lval->op = less_or_equal;
       +        }
       +      else
       +        lval->op = less_than;
       +      result = CMPOP2;
       +      break;
       +
       +    case '>':
       +      if (exp[0] == '=')
       +        {
       +          ++exp;
       +          lval->op = greater_or_equal;
       +        }
       +      else
       +        lval->op = greater_than;
       +      result = CMPOP2;
       +      break;
       +
       +    case '*':
       +      lval->op = mult;
       +      result = MULOP2;
       +      break;
       +
       +    case '/':
       +      lval->op = divide;
       +      result = MULOP2;
       +      break;
       +
       +    case '%':
       +      lval->op = module;
       +      result = MULOP2;
       +      break;
       +
       +    case '+':
       +      lval->op = plus;
       +      result = ADDOP2;
       +      break;
       +
       +    case '-':
       +      lval->op = minus;
       +      result = ADDOP2;
       +      break;
       +
       +    case 'n':
       +    case '?':
       +    case ':':
       +    case '(':
       +    case ')':
       +      /* Nothing, just return the character.  */
       +      break;
       +
       +    case ';':
       +    case '\n':
       +    case '\0':
       +      /* Be safe and let the user call this function again.  */
       +      --exp;
       +      result = YYEOF;
       +      break;
       +
       +    default:
       +      result = YYERRCODE;
       +#if YYDEBUG != 0
       +      --exp;
       +#endif
       +      break;
       +    }
       +
       +  *pexp = exp;
       +
       +  return result;
       +}
       +
       +
       +static void
       +yyerror (str)
       +     const char *str;
       +{
       +  /* Do nothing.  We don't print error messages here.  */
       +}
 (DIR) diff --git a/intl/plural.y b/intl/plural.y
       t@@ -0,0 +1,412 @@
       +%{
       +/* Expression parsing for plural form selection.
       +   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
       +   Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
       +
       +   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 2, 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, write to the Free Software Foundation,
       +   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
       +
       +/* The bison generated parser uses alloca.  AIX 3 forces us to put this
       +   declaration at the beginning of the file.  The declaration in bison's
       +   skeleton file comes too late.  This must come before <config.h>
       +   because <config.h> may include arbitrary system headers.  */
       +#if defined _AIX && !defined __GNUC__
       + #pragma alloca
       +#endif
       +
       +#ifdef HAVE_CONFIG_H
       +# include <config.h>
       +#endif
       +
       +#include <stdlib.h>
       +#include "gettextP.h"
       +
       +/* Names for the libintl functions are a problem.  They must not clash
       +   with existing names and they should follow ANSI C.  But this source
       +   code is also used in GNU C Library where the names have a __
       +   prefix.  So we have to make a difference here.  */
       +#ifdef _LIBC
       +# define FREE_EXPRESSION __gettext_free_exp
       +#else
       +# define FREE_EXPRESSION gettext_free_exp__
       +# define __gettextparse gettextparse__
       +#endif
       +
       +#define YYLEX_PARAM        &((struct parse_args *) arg)->cp
       +#define YYPARSE_PARAM        arg
       +%}
       +%pure_parser
       +%expect 10
       +
       +%union {
       +  unsigned long int num;
       +  enum operator op;
       +  struct expression *exp;
       +}
       +
       +%{
       +/* Prototypes for local functions.  */
       +static struct expression *new_exp PARAMS ((int nargs, enum operator op,
       +                                           struct expression * const *args));
       +static inline struct expression *new_exp_0 PARAMS ((enum operator op));
       +static inline struct expression *new_exp_1 PARAMS ((enum operator op,
       +                                                   struct expression *right));
       +static struct expression *new_exp_2 PARAMS ((enum operator op,
       +                                             struct expression *left,
       +                                             struct expression *right));
       +static inline struct expression *new_exp_3 PARAMS ((enum operator op,
       +                                                   struct expression *bexp,
       +                                                   struct expression *tbranch,
       +                                                   struct expression *fbranch));
       +static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
       +static void yyerror PARAMS ((const char *str));
       +
       +/* Allocation of expressions.  */
       +
       +static struct expression *
       +new_exp (nargs, op, args)
       +     int nargs;
       +     enum operator op;
       +     struct expression * const *args;
       +{
       +  int i;
       +  struct expression *newp;
       +
       +  /* If any of the argument could not be malloc'ed, just return NULL.  */
       +  for (i = nargs - 1; i >= 0; i--)
       +    if (args[i] == NULL)
       +      goto fail;
       +
       +  /* Allocate a new expression.  */
       +  newp = (struct expression *) malloc (sizeof (*newp));
       +  if (newp != NULL)
       +    {
       +      newp->nargs = nargs;
       +      newp->operation = op;
       +      for (i = nargs - 1; i >= 0; i--)
       +        newp->val.args[i] = args[i];
       +      return newp;
       +    }
       +
       + fail:
       +  for (i = nargs - 1; i >= 0; i--)
       +    FREE_EXPRESSION (args[i]);
       +
       +  return NULL;
       +}
       +
       +static inline struct expression *
       +new_exp_0 (op)
       +     enum operator op;
       +{
       +  return new_exp (0, op, NULL);
       +}
       +
       +static inline struct expression *
       +new_exp_1 (op, right)
       +     enum operator op;
       +     struct expression *right;
       +{
       +  struct expression *args[1];
       +
       +  args[0] = right;
       +  return new_exp (1, op, args);
       +}
       +
       +static struct expression *
       +new_exp_2 (op, left, right)
       +     enum operator op;
       +     struct expression *left;
       +     struct expression *right;
       +{
       +  struct expression *args[2];
       +
       +  args[0] = left;
       +  args[1] = right;
       +  return new_exp (2, op, args);
       +}
       +
       +static inline struct expression *
       +new_exp_3 (op, bexp, tbranch, fbranch)
       +     enum operator op;
       +     struct expression *bexp;
       +     struct expression *tbranch;
       +     struct expression *fbranch;
       +{
       +  struct expression *args[3];
       +
       +  args[0] = bexp;
       +  args[1] = tbranch;
       +  args[2] = fbranch;
       +  return new_exp (3, op, args);
       +}
       +
       +%}
       +
       +/* This declares that all operators have the same associativity and the
       +   precedence order as in C.  See [Harbison, Steele: C, A Reference Manual].
       +   There is no unary minus and no bitwise operators.
       +   Operators with the same syntactic behaviour have been merged into a single
       +   token, to save space in the array generated by bison.  */
       +%right '?'                /*   ?                */
       +%left '|'                /*   ||                */
       +%left '&'                /*   &&                */
       +%left EQUOP2                /*   == !=        */
       +%left CMPOP2                /*   < > <= >=        */
       +%left ADDOP2                /*   + -        */
       +%left MULOP2                /*   * / %        */
       +%right '!'                /*   !                */
       +
       +%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2
       +%token <num> NUMBER
       +%type <exp> exp
       +
       +%%
       +
       +start:          exp
       +          {
       +            if ($1 == NULL)
       +              YYABORT;
       +            ((struct parse_args *) arg)->res = $1;
       +          }
       +        ;
       +
       +exp:          exp '?' exp ':' exp
       +          {
       +            $$ = new_exp_3 (qmop, $1, $3, $5);
       +          }
       +        | exp '|' exp
       +          {
       +            $$ = new_exp_2 (lor, $1, $3);
       +          }
       +        | exp '&' exp
       +          {
       +            $$ = new_exp_2 (land, $1, $3);
       +          }
       +        | exp EQUOP2 exp
       +          {
       +            $$ = new_exp_2 ($2, $1, $3);
       +          }
       +        | exp CMPOP2 exp
       +          {
       +            $$ = new_exp_2 ($2, $1, $3);
       +          }
       +        | exp ADDOP2 exp
       +          {
       +            $$ = new_exp_2 ($2, $1, $3);
       +          }
       +        | exp MULOP2 exp
       +          {
       +            $$ = new_exp_2 ($2, $1, $3);
       +          }
       +        | '!' exp
       +          {
       +            $$ = new_exp_1 (lnot, $2);
       +          }
       +        | 'n'
       +          {
       +            $$ = new_exp_0 (var);
       +          }
       +        | NUMBER
       +          {
       +            if (($$ = new_exp_0 (num)) != NULL)
       +              $$->val.num = $1;
       +          }
       +        | '(' exp ')'
       +          {
       +            $$ = $2;
       +          }
       +        ;
       +
       +%%
       +
       +void
       +internal_function
       +FREE_EXPRESSION (exp)
       +     struct expression *exp;
       +{
       +  if (exp == NULL)
       +    return;
       +
       +  /* Handle the recursive case.  */
       +  switch (exp->nargs)
       +    {
       +    case 3:
       +      FREE_EXPRESSION (exp->val.args[2]);
       +      /* FALLTHROUGH */
       +    case 2:
       +      FREE_EXPRESSION (exp->val.args[1]);
       +      /* FALLTHROUGH */
       +    case 1:
       +      FREE_EXPRESSION (exp->val.args[0]);
       +      /* FALLTHROUGH */
       +    default:
       +      break;
       +    }
       +
       +  free (exp);
       +}
       +
       +
       +static int
       +yylex (lval, pexp)
       +     YYSTYPE *lval;
       +     const char **pexp;
       +{
       +  const char *exp = *pexp;
       +  int result;
       +
       +  while (1)
       +    {
       +      if (exp[0] == '\0')
       +        {
       +          *pexp = exp;
       +          return YYEOF;
       +        }
       +
       +      if (exp[0] != ' ' && exp[0] != '\t')
       +        break;
       +
       +      ++exp;
       +    }
       +
       +  result = *exp++;
       +  switch (result)
       +    {
       +    case '0': case '1': case '2': case '3': case '4':
       +    case '5': case '6': case '7': case '8': case '9':
       +      {
       +        unsigned long int n = result - '0';
       +        while (exp[0] >= '0' && exp[0] <= '9')
       +          {
       +            n *= 10;
       +            n += exp[0] - '0';
       +            ++exp;
       +          }
       +        lval->num = n;
       +        result = NUMBER;
       +      }
       +      break;
       +
       +    case '=':
       +      if (exp[0] == '=')
       +        {
       +          ++exp;
       +          lval->op = equal;
       +          result = EQUOP2;
       +        }
       +      else
       +        result = YYERRCODE;
       +      break;
       +
       +    case '!':
       +      if (exp[0] == '=')
       +        {
       +          ++exp;
       +          lval->op = not_equal;
       +          result = EQUOP2;
       +        }
       +      break;
       +
       +    case '&':
       +    case '|':
       +      if (exp[0] == result)
       +        ++exp;
       +      else
       +        result = YYERRCODE;
       +      break;
       +
       +    case '<':
       +      if (exp[0] == '=')
       +        {
       +          ++exp;
       +          lval->op = less_or_equal;
       +        }
       +      else
       +        lval->op = less_than;
       +      result = CMPOP2;
       +      break;
       +
       +    case '>':
       +      if (exp[0] == '=')
       +        {
       +          ++exp;
       +          lval->op = greater_or_equal;
       +        }
       +      else
       +        lval->op = greater_than;
       +      result = CMPOP2;
       +      break;
       +
       +    case '*':
       +      lval->op = mult;
       +      result = MULOP2;
       +      break;
       +
       +    case '/':
       +      lval->op = divide;
       +      result = MULOP2;
       +      break;
       +
       +    case '%':
       +      lval->op = module;
       +      result = MULOP2;
       +      break;
       +
       +    case '+':
       +      lval->op = plus;
       +      result = ADDOP2;
       +      break;
       +
       +    case '-':
       +      lval->op = minus;
       +      result = ADDOP2;
       +      break;
       +
       +    case 'n':
       +    case '?':
       +    case ':':
       +    case '(':
       +    case ')':
       +      /* Nothing, just return the character.  */
       +      break;
       +
       +    case ';':
       +    case '\n':
       +    case '\0':
       +      /* Be safe and let the user call this function again.  */
       +      --exp;
       +      result = YYEOF;
       +      break;
       +
       +    default:
       +      result = YYERRCODE;
       +#if YYDEBUG != 0
       +      --exp;
       +#endif
       +      break;
       +    }
       +
       +  *pexp = exp;
       +
       +  return result;
       +}
       +
       +
       +static void
       +yyerror (str)
       +     const char *str;
       +{
       +  /* Do nothing.  We don't print error messages here.  */
       +}
 (DIR) diff --git a/intl/po2tbl.sed.in b/intl/po2tbl.sed.in
       t@@ -1,102 +0,0 @@
       -# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
       -# Copyright (C) 1995 Free Software Foundation, Inc.
       -# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
       -#
       -# 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 2, 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, write to the Free Software
       -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
       -#
       -1 {
       -  i\
       -/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot.  */\
       -\
       -#if HAVE_CONFIG_H\
       -# include <config.h>\
       -#endif\
       -\
       -#include "libgettext.h"\
       -\
       -const struct _msg_ent _msg_tbl[] = {
       -  h
       -  s/.*/0/
       -  x
       -}
       -#
       -# Write msgid entries in C array form.
       -#
       -/^msgid/ {
       -  s/msgid[         ]*\(".*"\)/  {\1/
       -  tb
       -# Append the next line
       -  :b
       -  N
       -# Look whether second part is continuation line.
       -  s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
       -# Yes, then branch.
       -  ta
       -# Because we assume that the input file correctly formed the line
       -# just read cannot be again be a msgid line.  So it's safe to ignore
       -# it.
       -  s/\(.*\)\n.*/\1/
       -  bc
       -# We found a continuation line.  But before printing insert '\'.
       -  :a
       -  s/\(.*\)\(\n.*\)/\1\\\2/
       -  P
       -# We cannot use D here.
       -  s/.*\n\(.*\)/\1/
       -# Some buggy seds do not clear the `successful substitution since last ``t'''
       -# flag on `N', so we do a `t' here to clear it.
       -  tb
       -# Not reached
       -  :c
       -  x
       -# The following nice solution is by
       -# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
       -  td
       -# Increment a decimal number in pattern space.
       -# First hide trailing `9' digits.
       -  :d
       -  s/9\(_*\)$/_\1/
       -  td
       -# Assure at least one digit is available.
       -  s/^\(_*\)$/0\1/
       -# Increment the last digit.
       -  s/8\(_*\)$/9\1/
       -  s/7\(_*\)$/8\1/
       -  s/6\(_*\)$/7\1/
       -  s/5\(_*\)$/6\1/
       -  s/4\(_*\)$/5\1/
       -  s/3\(_*\)$/4\1/
       -  s/2\(_*\)$/3\1/
       -  s/1\(_*\)$/2\1/
       -  s/0\(_*\)$/1\1/
       -# Convert the hidden `9' digits to `0's.
       -  s/_/0/g
       -  x
       -  G
       -  s/\(.*\)\n\([0-9]*\)/\1, \2},/
       -  s/\(.*\)"$/\1/
       -  p
       -}
       -#
       -# Last line.
       -#
       -$ {
       -  i\
       -};\
       -
       -  g
       -  s/0*\(.*\)/int _msg_tbl_length = \1;/p
       -}
       -d
 (DIR) diff --git a/intl/ref-add.sin b/intl/ref-add.sin
       t@@ -0,0 +1,31 @@
       +# Add this package to a list of references stored in a text file.
       +#
       +#   Copyright (C) 2000 Free Software Foundation, Inc.
       +#
       +#   This program is free software; you can redistribute it and/or modify it
       +#   under the terms of the GNU Library General Public License as published
       +#   by the Free Software Foundation; either version 2, 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
       +#   Library General Public License for more details.
       +#
       +#   You should have received a copy of the GNU Library General Public
       +#   License along with this program; if not, write to the Free Software
       +#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
       +#   USA.
       +#
       +# Written by Bruno Haible <haible@clisp.cons.org>.
       +#
       +/^# Packages using this file: / {
       +  s/# Packages using this file://
       +  ta
       +  :a
       +  s/ @PACKAGE@ / @PACKAGE@ /
       +  tb
       +  s/ $/ @PACKAGE@ /
       +  :b
       +  s/^/# Packages using this file:/
       +}
 (DIR) diff --git a/intl/ref-del.sin b/intl/ref-del.sin
       t@@ -0,0 +1,26 @@
       +# Remove this package from a list of references stored in a text file.
       +#
       +#   Copyright (C) 2000 Free Software Foundation, Inc.
       +#
       +#   This program is free software; you can redistribute it and/or modify it
       +#   under the terms of the GNU Library General Public License as published
       +#   by the Free Software Foundation; either version 2, 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
       +#   Library General Public License for more details.
       +#
       +#   You should have received a copy of the GNU Library General Public
       +#   License along with this program; if not, write to the Free Software
       +#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
       +#   USA.
       +#
       +# Written by Bruno Haible <haible@clisp.cons.org>.
       +#
       +/^# Packages using this file: / {
       +  s/# Packages using this file://
       +  s/ @PACKAGE@ / /
       +  s/^/# Packages using this file:/
       +}
 (DIR) diff --git a/intl/textdomain.c b/intl/textdomain.c
       t@@ -1,6 +1,5 @@
        /* Implementation of the textdomain(3) function.
       -   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
       -   Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
       +   Copyright (C) 1995-1998, 2000, 2001 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
       t@@ -20,23 +19,32 @@
        # include <config.h>
        #endif
        
       -#if defined STDC_HEADERS || defined _LIBC
       -# include <stdlib.h>
       -#endif
       +#include <stdlib.h>
       +#include <string.h>
        
       -#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
       -# include <string.h>
       +#ifdef _LIBC
       +# include <libintl.h>
        #else
       -# include <strings.h>
       -# ifndef memcpy
       -#  define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
       -# endif
       +# include "libgnuintl.h"
        #endif
       +#include "gettextP.h"
        
        #ifdef _LIBC
       -# include <libintl.h>
       +/* We have to handle multi-threaded applications.  */
       +# include <bits/libc-lock.h>
        #else
       -# include "libgettext.h"
       +/* Provide dummy implementation if this is outside glibc.  */
       +# define __libc_rwlock_define(CLASS, NAME)
       +# define __libc_rwlock_wrlock(NAME)
       +# define __libc_rwlock_unlock(NAME)
       +#endif
       +
       +/* The internal variables in the standalone libintl.a must have different
       +   names than the internal variables in GNU libc, otherwise programs
       +   using libintl.a cannot be linked statically.  */
       +#if !defined _LIBC
       +# define _nl_default_default_domain _nl_default_default_domain__
       +# define _nl_current_default_domain _nl_current_default_domain__
        #endif
        
        /* @@ end of prolog @@ */
       t@@ -61,6 +69,9 @@ extern const char *_nl_current_default_domain;
        # define TEXTDOMAIN textdomain__
        #endif
        
       +/* Lock variable to protect the global data in the gettext implementation.  */
       +__libc_rwlock_define (extern, _nl_state_lock)
       +
        /* Set the current default message catalog to DOMAINNAME.
           If DOMAINNAME is null, return the current default.
           If DOMAINNAME is "", reset to the default of "messages".  */
       t@@ -68,38 +79,60 @@ char *
        TEXTDOMAIN (domainname)
             const char *domainname;
        {
       -  char *old;
       +  char *new_domain;
       +  char *old_domain;
        
          /* A NULL pointer requests the current setting.  */
          if (domainname == NULL)
            return (char *) _nl_current_default_domain;
        
       -  old = (char *) _nl_current_default_domain;
       +  __libc_rwlock_wrlock (_nl_state_lock);
       +
       +  old_domain = (char *) _nl_current_default_domain;
        
          /* If domain name is the null string set to default domain "messages".  */
          if (domainname[0] == '\0'
              || strcmp (domainname, _nl_default_default_domain) == 0)
       -    _nl_current_default_domain = _nl_default_default_domain;
       +    {
       +      _nl_current_default_domain = _nl_default_default_domain;
       +      new_domain = (char *) _nl_current_default_domain;
       +    }
       +  else if (strcmp (domainname, old_domain) == 0)
       +    /* This can happen and people will use it to signal that some
       +       environment variable changed.  */
       +    new_domain = old_domain;
          else
            {
              /* If the following malloc fails `_nl_current_default_domain'
                 will be NULL.  This value will be returned and so signals we
                 are out of core.  */
        #if defined _LIBC || defined HAVE_STRDUP
       -      _nl_current_default_domain = strdup (domainname);
       +      new_domain = strdup (domainname);
        #else
              size_t len = strlen (domainname) + 1;
       -      char *cp = (char *) malloc (len);
       -      if (cp != NULL)
       -        memcpy (cp, domainname, len);
       -      _nl_current_default_domain = cp;
       +      new_domain = (char *) malloc (len);
       +      if (new_domain != NULL)
       +        memcpy (new_domain, domainname, len);
        #endif
       +
       +      if (new_domain != NULL)
       +        _nl_current_default_domain = new_domain;
       +    }
       +
       +  /* We use this possibility to signal a change of the loaded catalogs
       +     since this is most likely the case and there is no other easy we
       +     to do it.  Do it only when the call was successful.  */
       +  if (new_domain != NULL)
       +    {
       +      ++_nl_msg_cat_cntr;
       +
       +      if (old_domain != new_domain && old_domain != _nl_default_default_domain)
       +        free (old_domain);
            }
        
       -  if (old != _nl_default_default_domain)
       -    free (old);
       +  __libc_rwlock_unlock (_nl_state_lock);
        
       -  return (char *) _nl_current_default_domain;
       +  return new_domain;
        }
        
        #ifdef _LIBC
 (DIR) diff --git a/intl/xopen-msg.sed b/intl/xopen-msg.sed
       t@@ -1,104 +0,0 @@
       -# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
       -# Copyright (C) 1995 Free Software Foundation, Inc.
       -# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
       -#
       -# 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 2, 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, write to the Free Software
       -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
       -#
       -#
       -# The first directive in the .msg should be the definition of the
       -# message set number.  We use always set number 1.
       -#
       -1 {
       -  i\
       -$set 1 # Automatically created by po2msg.sed
       -  h
       -  s/.*/0/
       -  x
       -}
       -#
       -# We copy all comments into the .msg file.  Perhaps they can help.
       -#
       -/^#/ s/^#[         ]*/$ /p
       -#
       -# We copy the original message as a comment into the .msg file.
       -#
       -/^msgid/ {
       -# Does not work now
       -#  /"$/! {
       -#    s/\\$//
       -#    s/$/ ... (more lines following)"/
       -#  }
       -  s/^msgid[         ]*"\(.*\)"$/$ Original Message: \1/
       -  p
       -}
       -#
       -# The .msg file contains, other then the .po file, only the translations
       -# but each given a unique ID.  Starting from 1 and incrementing by 1 for
       -# each message we assign them to the messages.
       -# It is important that the .po file used to generate the cat-id-tbl.c file
       -# (with po-to-tbl) is the same as the one used here.  (At least the order
       -# of declarations must not be changed.)
       -#
       -/^msgstr/ {
       -  s/msgstr[         ]*"\(.*\)"/\1/
       -  x
       -# The following nice solution is by
       -# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
       -  td
       -# Increment a decimal number in pattern space.
       -# First hide trailing `9' digits.
       -  :d
       -  s/9\(_*\)$/_\1/
       -  td
       -# Assure at least one digit is available.
       -  s/^\(_*\)$/0\1/
       -# Increment the last digit.
       -  s/8\(_*\)$/9\1/
       -  s/7\(_*\)$/8\1/
       -  s/6\(_*\)$/7\1/
       -  s/5\(_*\)$/6\1/
       -  s/4\(_*\)$/5\1/
       -  s/3\(_*\)$/4\1/
       -  s/2\(_*\)$/3\1/
       -  s/1\(_*\)$/2\1/
       -  s/0\(_*\)$/1\1/
       -# Convert the hidden `9' digits to `0's.
       -  s/_/0/g
       -  x
       -# Bring the line in the format `<number> <message>'
       -  G
       -  s/^[^\n]*$/& /
       -  s/\(.*\)\n\([0-9]*\)/\2 \1/
       -# Clear flag from last substitution.
       -  tb
       -# Append the next line.
       -  :b
       -  N
       -# Look whether second part is a continuation line.
       -  s/\(.*\n\)"\(.*\)"/\1\2/
       -# Yes, then branch.
       -  ta
       -  P
       -  D
       -# Note that `D' includes a jump to the start!!
       -# We found a continuation line.  But before printing insert '\'.
       -  :a
       -  s/\(.*\)\(\n.*\)/\1\\\2/
       -  P
       -# We cannot use the sed command `D' here
       -  s/.*\n\(.*\)/\1/
       -  tb
       -}
       -d
 (DIR) diff --git a/src/gtkport.c b/src/gtkport.c
       t@@ -3174,6 +3174,7 @@ GtkItemFactory *gtk_item_factory_new(GtkType container_type,
           new_fac->path=g_strdup(path);
           new_fac->accel_group = accel_group;
           new_fac->top_widget=gtk_menu_bar_new();
       +   new_fac->translate_func=NULL;
           return new_fac;
        }
        
       t@@ -3192,26 +3193,40 @@ static gint PathCmp(const gchar *path1,const gchar *path2) {
           return Match;
        }
        
       +static gchar *TransPath(GtkItemFactory *ifactory,gchar *path) {
       +  gchar *transpath=NULL;
       +
       +  if (ifactory->translate_func) {
       +    transpath = (*ifactory->translate_func)(path,ifactory->translate_data);
       +  }
       +
       +  return transpath ? transpath : path;
       +}
       +
        static void gtk_item_factory_parse_path(GtkItemFactory *ifactory,
                                                gchar *path,
                                                GtkItemFactoryChild **parent,
                                                GString *menu_title) {
       -   GSList *list;
       -   GtkItemFactoryChild *child;
       -   gchar *root,*pt;
       -
       -   pt=strrchr(path,'/');
       -   if (!pt) return;
       -   g_string_assign(menu_title,pt+1);
       -   root=g_strdup(path);
       -   root[pt-path]='\0';
       -
       -
       -   for (list=ifactory->children;list;list=g_slist_next(list)) {
       -      child=(GtkItemFactoryChild *)list->data;
       -      if (PathCmp(child->path,root)==1) { *parent=child; break; }
       -   }
       -   g_free(root);
       +  GSList *list;
       +  GtkItemFactoryChild *child;
       +  gchar *root,*pt,*transpath;
       +
       +  transpath = TransPath(ifactory,path);
       +  pt=strrchr(transpath,'/');
       +  if (pt) g_string_assign(menu_title,pt+1);
       +
       +  pt=strrchr(path,'/');
       +  if (!pt) return;
       +  root=g_strdup(path);
       +  root[pt-path]='\0';
       +
       +  for (list=ifactory->children;list;list=g_slist_next(list)) {
       +    child=(GtkItemFactoryChild *)list->data;
       +    if (PathCmp(child->path,root)==1) {
       +      *parent=child; break;
       +    }
       +  }
       +  g_free(root);
        }
        
        static gboolean gtk_item_factory_parse_accel(GtkItemFactory *ifactory,
       t@@ -3254,7 +3269,7 @@ void gtk_item_factory_create_item(GtkItemFactory *ifactory,
           GtkWidget *menu_item,*menu;
           ACCEL accel;
           gboolean haveaccel;
       -
       +   
           new_child=g_new0(GtkItemFactoryChild,1);
           new_child->path=g_strdup(entry->path);
        
       t@@ -3890,6 +3905,8 @@ void gtk_item_factory_set_translate_func(GtkItemFactory *ifactory,
                                                 GtkTranslateFunc func,
                                                 gpointer data,
                                                 GtkDestroyNotify notify) {
       +  ifactory->translate_func = func;
       +  ifactory->translate_data = data;
        }
        
        void gtk_widget_grab_default(GtkWidget *widget) {
 (DIR) diff --git a/src/gtkport.h b/src/gtkport.h
       t@@ -330,6 +330,8 @@ struct _GtkItemFactory {
           gchar *path;
           GtkAccelGroup *accel_group;
           GtkWidget *top_widget;
       +   GtkTranslateFunc translate_func;
       +   gpointer translate_data;
        };
        
        struct _GtkBoxChild {
 (DIR) diff --git a/src/nls.h b/src/nls.h
       t@@ -23,24 +23,28 @@
        #define __NLS_H__
        
        #ifdef HAVE_CONFIG_H
       -#include <config.h>
       +# include <config.h>
        #endif
        
        #ifdef ENABLE_NLS
       -#include <locale.h>
       -#include <libintl.h>
       -#define _(String) gettext (String)
       -#ifdef gettext_noop
       -#define N_(String) gettext_noop (String)
       +# include <locale.h>
       +# ifdef HAVE_GETTEXT
       +#  include <libintl.h>
       +# else
       +#  include "../intl/libintl.h"
       +# endif
       +# define _(String) gettext (String)
       +# ifdef gettext_noop
       +#  define N_(String) gettext_noop (String)
       +# else
       +#  define N_(String) (String)
       +# endif
        #else
       -#define N_(String) (String)
       -#endif
       -#else
       -#define gettext(String) (String)
       -#define dgettext(Domain,Message) (Message)
       -#define dcgettext(Domain,Message,Type) (Message)
       -#define _(String) (String)
       -#define N_(String) (String)
       +# define gettext(String) (String)
       +# define dgettext(Domain,Message) (Message)
       +# define dcgettext(Domain,Message,Type) (Message)
       +# define _(String) (String)
       +# define N_(String) (String)
        #endif
        
        #endif /* __NLS_H__ */
 (DIR) diff --git a/src/winmain.c b/src/winmain.c
       t@@ -93,33 +93,88 @@ static void LogFilePrintFunc(const gchar *string) {
          }
        }
        
       -static void LogFileEnd() {
       -   if (LogFile) fclose(LogFile);
       +static void LogFileEnd(void) {
       +  if (LogFile) fclose(LogFile);
        }
        
       +#ifdef ENABLE_NLS
       +static gchar *GetWindowsLocale(void) {
       +  LCID userID;
       +  WORD lang,sublang;
       +  static gchar langenv[30];  /* Should only be 5 chars, so this'll be plenty */
       +  gchar *oldlang;
       +
       +  langenv[0]='\0';
       +  strcpy(langenv,"LANG=");
       +
       +  oldlang = getenv("LANG");
       +
       +  if (oldlang) {
       +    g_print("Started with LANG = %s\n",oldlang);
       +    return NULL;
       +  }
       +
       +  userID = GetUserDefaultLCID();
       +  lang = PRIMARYLANGID(LANGIDFROMLCID(userID));
       +  sublang = SUBLANGID(LANGIDFROMLCID(userID));
       +
       +  switch(lang) {
       +    case LANG_ENGLISH:
       +      strcat(langenv,"en");
       +      if (sublang==SUBLANG_ENGLISH_UK) strcat(langenv,"_gb");
       +      break;
       +    case LANG_FRENCH:
       +      strcat(langenv,"fr"); break;
       +    case LANG_GERMAN:
       +      strcat(langenv,"de"); break;
       +    case LANG_POLISH:
       +      strcat(langenv,"pl"); break;
       +    case LANG_PORTUGUESE:
       +      strcat(langenv,"pt");
       +      if (sublang==SUBLANG_PORTUGUESE_BRAZILIAN) strcat(langenv,"_br");
       +      break;
       +  }
       +
       +  if (strlen(langenv) > 5) {
       +    g_print("Using Windows language %s\n",langenv);
       +    return langenv;
       +  } else return NULL;
       +}
       +#endif  /* ENABLE_NLS */
       +
        int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
                             LPSTR lpszCmdParam,int nCmdShow) {
           gchar **split;
           int argc;
        #ifdef ENABLE_NLS
       -   setlocale(LC_ALL,"");
       -   bindtextdomain(PACKAGE,LOCALEDIR);
       -   textdomain(PACKAGE);
       +   gchar *winlocale;
        #endif
       +
           g_log_set_handler(NULL,LogMask()|G_LOG_LEVEL_MESSAGE|G_LOG_LEVEL_WARNING|
                             G_LOG_LEVEL_CRITICAL,LogMessage,NULL);
       -   split=g_strsplit(lpszCmdParam," ",0);
       -   argc=0;
       -   while (split[argc] && split[argc][0]) argc++;
           LogFileStart();
           g_set_print_handler(LogFilePrintFunc);
        
       +#ifdef ENABLE_NLS
       +   winlocale=GetWindowsLocale();
       +   if (winlocale) putenv(winlocale);
       +
       +   setlocale(LC_ALL,"");
       +   bindtextdomain(PACKAGE,LOCALEDIR);
       +   textdomain(PACKAGE);
       +#endif
       +
        /* Informational comment placed at the start of the Windows log file
           (this is used for messages printed during processing of the config
           files - under Unix these are just printed to stdout) */
           g_print(_("# This is the dopewars startup log, containing any\n"
                     "# informative messages resulting from configuration\n"
                     "# file processing and the like.\n\n"));
       +
       +   split=g_strsplit(lpszCmdParam," ",0);
       +   argc=0;
       +   while (split[argc] && split[argc][0]) argc++;
       +
           if (GeneralStartup(argc,split)==0) {
              if (WantVersion || WantHelp) {
                 WindowPrintStart();