diff -uNr nagios-plugins-1.4.11/aclocal.m4 nagios-plugins-1.4.12/aclocal.m4
--- nagios-plugins-1.4.11/aclocal.m4	2007-12-13 23:42:25.000000000 +0100
+++ nagios-plugins-1.4.12/aclocal.m4	2008-05-28 00:04:55.000000000 +0200
@@ -7258,9 +7258,9 @@
 ]) # _AM_PROG_TAR
 
 m4_include([m4/np_mysqlclient.m4])
-m4_include([gl/m4/absolute-header.m4])
 m4_include([gl/m4/alloca.m4])
 m4_include([gl/m4/arpa_inet_h.m4])
+m4_include([gl/m4/base64.m4])
 m4_include([gl/m4/c-strtod.m4])
 m4_include([gl/m4/cloexec.m4])
 m4_include([gl/m4/codeset.m4])
@@ -7272,6 +7272,8 @@
 m4_include([gl/m4/exitfail.m4])
 m4_include([gl/m4/extensions.m4])
 m4_include([gl/m4/fcntl-safer.m4])
+m4_include([gl/m4/float_h.m4])
+m4_include([gl/m4/floorf.m4])
 m4_include([gl/m4/fstypename.m4])
 m4_include([gl/m4/fsusage.m4])
 m4_include([gl/m4/getaddrinfo.m4])
@@ -7279,25 +7281,25 @@
 m4_include([gl/m4/getloadavg.m4])
 m4_include([gl/m4/getopt.m4])
 m4_include([gl/m4/gettext.m4])
+m4_include([gl/m4/glibc21.m4])
 m4_include([gl/m4/gnulib-common.m4])
 m4_include([gl/m4/gnulib-comp.m4])
 m4_include([gl/m4/iconv.m4])
+m4_include([gl/m4/include_next.m4])
 m4_include([gl/m4/inet_ntop.m4])
 m4_include([gl/m4/inline.m4])
+m4_include([gl/m4/intlmacosx.m4])
 m4_include([gl/m4/intmax_t.m4])
 m4_include([gl/m4/inttypes_h.m4])
 m4_include([gl/m4/lib-ld.m4])
 m4_include([gl/m4/lib-link.m4])
 m4_include([gl/m4/lib-prefix.m4])
-m4_include([gl/m4/lock.m4])
-m4_include([gl/m4/longdouble.m4])
+m4_include([gl/m4/localcharset.m4])
 m4_include([gl/m4/longlong.m4])
 m4_include([gl/m4/ls-mntd-fs.m4])
-m4_include([gl/m4/mbchar.m4])
-m4_include([gl/m4/mbiter.m4])
-m4_include([gl/m4/mbrtowc.m4])
-m4_include([gl/m4/memchr.m4])
-m4_include([gl/m4/minmax.m4])
+m4_include([gl/m4/malloc.m4])
+m4_include([gl/m4/math_h.m4])
+m4_include([gl/m4/mbstate_t.m4])
 m4_include([gl/m4/mountlist.m4])
 m4_include([gl/m4/netinet_in_h.m4])
 m4_include([gl/m4/nls.m4])
@@ -7315,12 +7317,14 @@
 m4_include([gl/m4/stdbool.m4])
 m4_include([gl/m4/stdint.m4])
 m4_include([gl/m4/stdint_h.m4])
-m4_include([gl/m4/strcase.m4])
+m4_include([gl/m4/stdio_h.m4])
+m4_include([gl/m4/stdlib_h.m4])
 m4_include([gl/m4/strdup.m4])
+m4_include([gl/m4/strerror.m4])
+m4_include([gl/m4/string_h.m4])
 m4_include([gl/m4/strndup.m4])
 m4_include([gl/m4/strnlen.m4])
 m4_include([gl/m4/sys_socket_h.m4])
-m4_include([gl/m4/ulonglong.m4])
 m4_include([gl/m4/unistd-safer.m4])
 m4_include([gl/m4/unistd_h.m4])
 m4_include([gl/m4/vasnprintf.m4])
@@ -7329,7 +7333,6 @@
 m4_include([gl/m4/wchar.m4])
 m4_include([gl/m4/wchar_t.m4])
 m4_include([gl/m4/wctype.m4])
-m4_include([gl/m4/wcwidth.m4])
 m4_include([gl/m4/wint_t.m4])
 m4_include([gl/m4/xalloc.m4])
 m4_include([gl/m4/xsize.m4])
diff -uNr nagios-plugins-1.4.11/BUGS nagios-plugins-1.4.12/BUGS
--- nagios-plugins-1.4.11/BUGS	2007-12-13 23:39:36.000000000 +0100
+++ nagios-plugins-1.4.12/BUGS	2008-05-28 00:01:05.000000000 +0200
@@ -4,13 +4,19 @@
 
 For the 1.4.11 release:
 
-1724055 - check_dns: does not sort address data
+1939578 - check_jabber: Always returns WARNING with Openfire server
+1939529 - check_tcp: Expiring SSL certs produce confusing messages
+1928399 - check_porcs METRIC_CPU should ignore kernel processes on FreeBSD
+1922579 - check_ldap: ldap_init implicitly converted
+1904965 - check_apt: SECURITY_RE is not correct
+1894850 - check_ping: incorrectly parses ping6 output
+1868822 - check_http link fails with openssl installed
+1867716 - check_snmp invalid performance data
+1864404 - check_smtp/check_http miscalculate timezones in cert expiry
 1681516 - output too verbose for various checks
 1670261 - check_snmp might require snmpget with LD_LIBRARY_PATH
 1569488 - check_ifoperstatus.pl: -n option does't work (help required!)
 1523748 - check_disk should error if warn range is subset of critical
-1498923 - check_ldap build error on Solaris 9
-1480574 - check_disk missing -lm on Solaris
 1478287 - check_dns fails with CNAMEs
 1469468 - signal handler in popen.c is broken
 1381604 - Perlsec breaks any perl plugin with perl 5.8.x
diff -uNr nagios-plugins-1.4.11/build-aux/config.rpath nagios-plugins-1.4.12/build-aux/config.rpath
--- nagios-plugins-1.4.11/build-aux/config.rpath	2007-01-29 11:06:46.000000000 +0100
+++ nagios-plugins-1.4.12/build-aux/config.rpath	2008-02-12 12:07:18.000000000 +0100
@@ -2,7 +2,7 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2006 Free Software Foundation, Inc.
+#   Copyright 1996-2008 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
@@ -64,7 +64,7 @@
           ;;
       esac
       ;;
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       ;;
     hpux9* | hpux10* | hpux11*)
       wl='-Wl,'
@@ -74,7 +74,7 @@
       ;;
     newsos6)
       ;;
-    linux*)
+    linux* | k*bsd*-gnu)
       case $cc_basename in
         icc* | ecc*)
           wl='-Wl,'
@@ -100,7 +100,7 @@
     osf3* | osf4* | osf5*)
       wl='-Wl,'
       ;;
-    sco3.2v5*)
+    rdos*)
       ;;
     solaris*)
       wl='-Wl,'
@@ -108,11 +108,14 @@
     sunos4*)
       wl='-Qoption ld '
       ;;
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    sysv4 | sysv4.2uw2* | sysv4.3*)
       wl='-Wl,'
       ;;
     sysv4*MP*)
       ;;
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      wl='-Wl,'
+      ;;
     unicos*)
       wl='-Wl,'
       ;;
@@ -155,7 +158,7 @@
   # option of GNU ld is called -rpath, not --rpath.
   hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
   case "$host_os" in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
         ld_shlibs=no
@@ -189,11 +192,11 @@
         ld_shlibs=no
       fi
       ;;
-    interix3*)
+    interix[3-9]*)
       hardcode_direct=no
       hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
       ;;
-    linux*)
+    gnu* | linux* | k*bsd*-gnu)
       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
         :
       else
@@ -251,7 +254,7 @@
         hardcode_direct=unsupported
       fi
       ;;
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
         # On IA64, the linker does run time linking by default, so we don't
         # have to do anything special.
@@ -261,7 +264,7 @@
         # Test if we are trying to use run time linking or normal
         # AIX style linking. If -brtl is somewhere in LDFLAGS, we
         # need to do runtime linking.
-        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+        case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
           for ld_flag in $LDFLAGS; do
             if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
               aix_use_runtimelinking=yes
@@ -280,7 +283,7 @@
             strings "$collect2name" | grep resolve_lib_name >/dev/null
           then
             # We have reworked collect2
-            hardcode_direct=yes
+            :
           else
             # We have old collect2
             hardcode_direct=unsupported
@@ -359,7 +362,7 @@
       hardcode_direct=yes
       hardcode_minus_L=yes
       ;;
-    freebsd* | kfreebsd*-gnu | dragonfly*)
+    freebsd* | dragonfly*)
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       ;;
@@ -412,18 +415,22 @@
       hardcode_libdir_separator=:
       ;;
     openbsd*)
-      hardcode_direct=yes
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      if test -f /usr/libexec/ld.so; then
+        hardcode_direct=yes
+        if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+          hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+        else
+          case "$host_os" in
+            openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+              hardcode_libdir_flag_spec='-R$libdir'
+              ;;
+            *)
+              hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+              ;;
+          esac
+        fi
       else
-        case "$host_os" in
-          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-            hardcode_libdir_flag_spec='-R$libdir'
-            ;;
-          *)
-            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-            ;;
-        esac
+        ld_shlibs=no
       fi
       ;;
     os2*)
@@ -471,7 +478,7 @@
         ld_shlibs=yes
       fi
       ;;
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
       ;;
     sysv5* | sco3.2v5* | sco5v6*)
       hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
@@ -498,7 +505,7 @@
   aix3*)
     library_names_spec='$libname.a'
     ;;
-  aix4* | aix5*)
+  aix[4-9]*)
     library_names_spec='$libname$shrext'
     ;;
   amigaos*)
@@ -523,9 +530,6 @@
     ;;
   freebsd1*)
     ;;
-  kfreebsd*-gnu)
-    library_names_spec='$libname$shrext'
-    ;;
   freebsd* | dragonfly*)
     case "$host_os" in
       freebsd[123]*)
@@ -551,7 +555,7 @@
     esac
     library_names_spec='$libname$shrext'
     ;;
-  interix3*)
+  interix[3-9]*)
     library_names_spec='$libname$shrext'
     ;;
   irix5* | irix6* | nonstopux*)
@@ -572,7 +576,7 @@
     ;;
   linux*oldld* | linux*aout* | linux*coff*)
     ;;
-  linux*)
+  linux* | k*bsd*-gnu)
     library_names_spec='$libname$shrext'
     ;;
   knetbsd*-gnu)
@@ -598,6 +602,8 @@
   osf3* | osf4* | osf5*)
     library_names_spec='$libname$shrext'
     ;;
+  rdos*)
+    ;;
   solaris*)
     library_names_spec='$libname$shrext'
     ;;
diff -uNr nagios-plugins-1.4.11/build-aux/link-warning.h nagios-plugins-1.4.12/build-aux/link-warning.h
--- nagios-plugins-1.4.11/build-aux/link-warning.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/build-aux/link-warning.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,28 @@
+/* GL_LINK_WARNING("literal string") arranges to emit the literal string as
+   a linker warning on most glibc systems.
+   We use a linker warning rather than a preprocessor warning, because
+   #warning cannot be used inside macros.  */
+#ifndef GL_LINK_WARNING
+  /* This works on platforms with GNU ld and ELF object format.
+     Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
+     Testing __ELF__ guarantees the ELF object format.
+     Testing __GNUC__ is necessary for the compound expression syntax.  */
+# if defined __GLIBC__ && defined __ELF__ && defined __GNUC__
+#  define GL_LINK_WARNING(message) \
+     GL_LINK_WARNING1 (__FILE__, __LINE__, message)
+#  define GL_LINK_WARNING1(file, line, message) \
+     GL_LINK_WARNING2 (file, line, message)  /* macroexpand file and line */
+#  define GL_LINK_WARNING2(file, line, message) \
+     GL_LINK_WARNING3 (file ":" #line ": warning: " message)
+#  define GL_LINK_WARNING3(message) \
+     ({ static const char warning[sizeof (message)]		\
+          __attribute__ ((__unused__,				\
+                          __section__ (".gnu.warning"),		\
+                          __aligned__ (1)))			\
+          = message "\n";					\
+        (void)0;						\
+     })
+# else
+#  define GL_LINK_WARNING(message) ((void) 0)
+# endif
+#endif
diff -uNr nagios-plugins-1.4.11/ChangeLog nagios-plugins-1.4.12/ChangeLog
--- nagios-plugins-1.4.11/ChangeLog	2007-12-13 23:39:36.000000000 +0100
+++ nagios-plugins-1.4.12/ChangeLog	2008-05-28 00:01:05.000000000 +0200
@@ -1,3 +1,799 @@
+2008-05-27 21:52  tonvoon
+
+	* [r2003] THANKS.in, configure.in:
+	  Not picking up solaris systems correctly for check_dhcp. Only
+	  affected SunStudio compiles of check_dhcp (1890260 - Rob Windsor)
+
+2008-05-27 21:31  tonvoon
+
+	* [r2002] plugins/check_by_ssh.c:
+	  Addition to help to state that -f will always return OK if ssh
+	  command is executed (Alain Dewit - 1852198)
+
+2008-05-27 13:35  tonvoon
+
+	* [r2001] plugins-root/pst3.c:
+	  Add additional PID column heading
+
+2008-05-26 09:43  dermoth
+
+	* [r2000] NEWS:
+	  correct typo in NEWS
+
+2008-05-23 09:09  dermoth
+
+	* [r1999] REQUIREMENTS:
+	  Add a note about radiusclient
+
+2008-05-22 08:25  dermoth
+
+	* [r1998] NEWS, configure.in:
+	  Fix linking against OpenSSL where libdl is required
+
+2008-05-21 08:57  dermoth
+
+	* [r1997] NEWS, plugins/check_by_ssh.c, plugins/t/check_by_ssh.t:
+	  Fixed passive option in check_by_ssh Also: - On non-skipped
+	  stderr, check_by_ssh now returns UNKNOWN or worse (result from
+	  command) instead of always UNKNOWN. - Fixed passive tests and
+	  make is always run the specified number of tests (using fail if
+	  there's nothing to test).
+
+2008-05-20 11:37  dermoth
+
+	* [r1996] plugins/t/check_by_ssh.t:
+	  Oops - forgot to remove the SKIP block (which didn't seem to work
+	  fine)
+
+2008-05-20 11:32  dermoth
+
+	* [r1995] plugins/t/check_by_ssh.t:
+	  Add check_by_ssh tests (passive checks are broken - should be
+	  fixed before next release!)
+
+2008-05-20 07:57  dermoth
+
+	* [r1994] NEWS, plugins/check_radius.c:
+	  Clobber password in check_radius process list aguments
+
+2008-05-13 09:14  dermoth
+
+	* [r1992] plugins/check_dns.c:
+	  Typo
+
+2008-05-07 10:02  dermoth
+
+	* [r1991] plugins-root/check_dhcp.c, plugins-root/check_icmp.c,
+	  plugins/check_apt.c, plugins/check_by_ssh.c,
+	  plugins/check_cluster.c, plugins/check_dig.c,
+	  plugins/check_disk.c, plugins/check_dns.c, plugins/check_fping.c,
+	  plugins/check_game.c, plugins/check_hpjd.c, plugins/check_http.c,
+	  plugins/check_ide_smart.c, plugins/check_ldap.c,
+	  plugins/check_load.c, plugins/check_mrtg.c,
+	  plugins/check_mrtgtraf.c, plugins/check_mysql.c,
+	  plugins/check_mysql_query.c, plugins/check_nagios.c,
+	  plugins/check_nt.c, plugins/check_ntp.c,
+	  plugins/check_ntp_peer.c, plugins/check_ntp_time.c,
+	  plugins/check_nwstat.c, plugins/check_overcr.c,
+	  plugins/check_pgsql.c, plugins/check_ping.c,
+	  plugins/check_procs.c, plugins/check_radius.c,
+	  plugins/check_real.c, plugins/check_smtp.c, plugins/check_snmp.c,
+	  plugins/check_ssh.c, plugins/check_swap.c, plugins/check_tcp.c,
+	  plugins/check_time.c, plugins/check_ups.c, plugins/check_users.c,
+	  plugins/utils.h:
+	  Added support for --extra-opts in all C plugins (disabled by
+	  default, see configure --help)
+
+2008-05-07 10:01  dermoth
+
+	* [r1990] NEWS, THANKS.in, plugins/check_ping.c:
+	  Added performance data to check_ping (Christian Schneemann)
+
+2008-05-02 09:28  dermoth
+
+	* [r1989] NEWS, plugins/negate.c:
+	  negate now has the ability to replace the status text as well
+	  (-s, --substitute) Also changed: - default timeout to 11 instead
+	  of 9 (since it's recommended to have a higher timeout, and many
+	  plugins default to 10 seconds) - If there's no STDOUT lines
+	  returned, still returns the returned result if it's NON-ok
+	  instead of forcing it to UNKNOWN
+
+2008-04-30 12:50  dermoth
+
+	* [r1988] NEWS, plugins/check_mysql.c, plugins/check_mysql_query.c,
+	  plugins/t/check_mysql.t:
+	  Add socket support to check_mysql* Also clears the password from
+	  check_mysql command-line options
+
+2008-04-29 14:54  hweiss
+
+	* [r1987] configure.in:
+	  Support "--without-pgsql" (reported by Alex Songe via IRC).
+
+2008-04-29 09:01  dermoth
+
+	* [r1986] plugins/check_ntp.c, plugins/check_ntp_peer.c,
+	  plugins/check_ntp_time.c:
+	  Use UT_THRESHOLDS_NOTES in all plugins
+
+2008-04-29 09:01  dermoth
+
+	* [r1985] plugins-root/check_dhcp.c, plugins-root/check_icmp.c:
+	  --help output cleanup (plus removal of spaces on blank lines)
+
+2008-04-27 14:35  dermoth
+
+	* [r1984] plugins/check_apt.c, plugins/check_by_ssh.c,
+	  plugins/check_cluster.c, plugins/check_dig.c,
+	  plugins/check_disk.c, plugins/check_dns.c, plugins/check_dummy.c,
+	  plugins/check_fping.c, plugins/check_game.c,
+	  plugins/check_hpjd.c, plugins/check_http.c,
+	  plugins/check_ide_smart.c, plugins/check_ldap.c,
+	  plugins/check_load.c, plugins/check_mrtg.c,
+	  plugins/check_mrtgtraf.c, plugins/check_mysql.c,
+	  plugins/check_mysql_query.c, plugins/check_nagios.c,
+	  plugins/check_nt.c, plugins/check_ntp.c,
+	  plugins/check_ntp_peer.c, plugins/check_nwstat.c,
+	  plugins/check_overcr.c, plugins/check_pgsql.c,
+	  plugins/check_ping.c, plugins/check_procs.c,
+	  plugins/check_radius.c, plugins/check_real.c,
+	  plugins/check_snmp.c, plugins/check_swap.c, plugins/check_ups.c,
+	  plugins/utils.h:
+	  --help output cleanup (plus removal of spaces on blank lines)
+
+2008-04-23 08:19  dermoth
+
+	* [r1983] plugins/check_radius.c:
+	  Correct typo and make the --help notes a bit simpler.
+
+2008-04-17 10:46  dermoth
+
+	* [r1979] plugins/check_dns.c:
+	  Correct the help text
+
+2008-04-17 10:37  dermoth
+
+	* [r1978] NEWS, plugins/check_dns.c:
+	  Allow to repeat -a to set multiple possible addresses
+
+2008-04-05 08:02  dermoth
+
+	* [r1977] NEWS, plugins/check_ntp.c, plugins/check_ntp_peer.c:
+	  check_ntp and check_ntp_peer now show proper jitter/stratum
+	  thresholds longopts in --help
+
+2008-04-04 10:11  dermoth
+
+	* [r1976] lib/extra_opts.c, lib/parse_ini.c, lib/tests/test_ini.c,
+	  lib/tests/test_opts.c:
+	  make parse_ini die like in N::P if section isn't found
+
+2008-04-02 09:19  dermoth
+
+	* [r1974] lib/Makefile.config-opts, lib/tests/Makefile.config-opts:
+	  Delete obsolete files
+
+2008-04-02 09:11  dermoth
+
+	* [r1973] configure.in, lib/Makefile.am, lib/parse_ini.c,
+	  lib/tests/Makefile.am, lib/tests/test_ini.t,
+	  lib/tests/test_opts.t, po/de.po, po/fr.po, po/nagios-plugins.pot:
+	  - Add --enable-extra-opts configure option for compiling
+	  extra-opts support - Auto-update po/pot files
+
+2008-04-01 09:38  dermoth
+
+	* [r1972] lib/parse_ini.c:
+	  fix the obvious...
+
+2008-04-01 09:31  dermoth
+
+	* [r1971] lib/extra_opts.c, lib/extra_opts.h:
+	  np_extra_opts now retain pointers from argv so that plugins can
+	  still overwrite sensitive options
+
+2008-03-31 07:07  dermoth
+
+	* [r1970] gl:
+	  update svn:ignore property (last gnulib update added many
+	  auto-generated files)
+
+2008-03-31 07:04  dermoth
+
+	* [r1969] lib/extra_opts.c, lib/tests/test_opts.c:
+	  Fix bug with --extra-opts as last argument with no value Fix
+	  problem with duplicate function name (function should eventually
+	  move to /lib)
+
+2008-03-31 05:31  dermoth
+
+	* [r1968] lib/extra_opts.c, lib/extra_opts.h, lib/parse_ini.c,
+	  lib/parse_ini.h, lib/tests/test_ini.c, lib/tests/test_opts.c:
+	  Fix for last commit - I accidentaly broke my local Makefile and
+	  tests weren't being re-compiled.
+
+2008-03-30 14:02  dermoth
+
+	* [r1967] lib/extra_opts.c, lib/extra_opts.h,
+	  lib/tests/test_opts.c:
+	  - Remove the last argument of np_extra_opts - Code cleanups and
+	  comments
+
+2008-03-29 15:35  dermoth
+
+	* [r1966] lib/tests:
+	  Update svn:ignore property
+
+2008-03-26 09:46  dermoth
+
+	* [r1962] lib/parse_ini.c, lib/parse_ini.h, lib/tests/plugins.ini,
+	  lib/tests/test_opts.c:
+	  write ini-file lookup function + tests
+
+2008-03-24 07:02  dermoth
+
+	* [r1961] lib/extra_opts.c, lib/extra_opts.h,
+	  lib/tests/config-opts.ini, lib/tests/test_opts.c,
+	  lib/tests/test_opts.t:
+	  Add extra-opts argument parsing with tests
+
+2008-03-24 06:28  dermoth
+
+	* [r1960] lib/parse_ini.c, lib/parse_ini.h:
+	  Replace broken usage of NAGIOS_CONFIG_PATH with a stub function
+	  (that will try to find a config file in the future...) Allow NULL
+	  locator (default file/section)
+
+2008-03-20 11:53  dermoth
+
+	* [r1959] plugins/check_dig.c:
+	  - Fix bug #1920671 - Make --help output looks nice
+
+2008-03-18 10:59  tonvoon
+
+	* [r1955] plugins/tests/check_procs.t:
+	  Include test for check_procs, using input file
+
+2008-03-18 01:21  tonvoon
+
+	* [r1954] plugins/check_procs.c, plugins/tests/var,
+	  plugins/tests/var/ps-axwo.darwin,
+	  plugins/tests/var/ps_axwo.debian:
+	  Updated check_procs with a hidden --input-file option. Include
+	  some sample outputs for testing
+
+2008-03-17 23:08  tonvoon
+
+	* [r1953] plugins/t/check_nagios.t:
+	  Don't run check_nagios tests on Solaris, because of pst3
+	  requirement
+
+2008-03-16 18:10  dermoth
+
+	* [r1951] lib/tests/config-dos.ini, lib/tests/plugin.ini,
+	  lib/tests/test_ini.c:
+	  Add tests: - DOS-newline ini file - section defined twice
+
+2008-03-15 22:42  dermoth
+
+	* [r1950] lib/parse_ini.c:
+	  parse_ini now reads the default section if the request one can't
+	  be found. All tests should return ok now.
+
+2008-03-15 21:51  dermoth
+
+	* [r1949] lib/parse_ini.c:
+	  Oops - this line shouldn't have been here (doesn't even work
+	  anyways) ;)
+
+2008-03-15 20:47  dermoth
+
+	* [r1948] lib/parse_ini.c, lib/tests/plugin.ini,
+	  lib/tests/test_ini.c:
+	  - Make equal-less parameters illegal - parameters without
+	  argument after '=' are now assumed to be argument-less - Add a
+	  testcase for space in stanza and various argument-less parameters
+
+2008-03-15 20:34  dermoth
+
+	* [r1947] lib/parse_ini.c:
+	  Fix handling of leading and trailing spaces in stanza
+
+2008-03-15 16:17  dermoth
+
+	* [r1946] lib/parse_ini.c, lib/tests/test_ini.c:
+	  Fix segfault in test_ini.c and uncomment the affected tests Fix
+	  bug in stanza parsing where full section could be skipped Fix
+	  single-argument options
+
+2008-03-15 04:51  dermoth
+
+	* [r1945] lib/parse_ini.c, lib/parse_ini.h, lib/tests/test_ini.c,
+	  lib/tests/test_ini.t:
+	  This commit consist of two changes: 1. Make np_get_defaults
+	  return a linked list instead of a string. It will then be easy to
+	  convert the linked list back to an argument array. 2. Fix tests
+	  3-4 of test_ini.c.
+	  
+	  A test_ini.t was added too. parse_ini and test_ini aren't
+	  included yet in the build makefiles.
+
+2008-03-15 00:14  psychotrahe
+
+	* [r1944] plugins/check_http.c:
+	  Add port to Host Header to prevent problems with non default
+	  ports (Christophe Dupre #1881898)
+
+2008-03-14 23:47  psychotrahe
+
+	* [r1943] NEWS, plugins/check_dig.c:
+	  Added -A/--dig-arguments to check_dig (#1889453/#1874041)
+
+2008-03-14 22:35  psychotrahe
+
+	* [r1942] plugins/check_smtp.c:
+	  Enhanced check_smtp to actually print invalid response text
+	  (#1911239)
+
+2008-03-14 15:44  tonvoon
+
+	* [r1941] NEWS, plugins-root/Makefile.am, plugins/Makefile.am:
+	  Fixed 64 bit pst3 when tries to link to gettext. Gettext linked
+	  dynamically, if necessary
+
+2008-03-14 10:17  dermoth
+
+	* [r1940] gl/charset.alias, gl/configmake.h, gl/math.h,
+	  gl/ref-add.sed, gl/ref-del.sed, gl/stdio.h, gl/stdlib.h,
+	  gl/string.h, gl/unistd.h:
+	  These files are generated automatically during the make process,
+	  and removed by make clean.
+
+2008-03-11 00:37  tonvoon
+
+	* [r1939] configure.in, gl/m4/mbstate_t.m4:
+	  Possible fix for HP-UX compile problems of regex_internal.c
+
+2008-03-11 00:10  tonvoon
+
+	* [r1938] configure.in, lib/utils_base.c, plugins-root/Makefile.am,
+	  plugins/check_http.c, plugins/check_smtp.c, plugins/common.h:
+	  Fixed link -m64 problems on pst3 for solaris. Fixed
+	  _FILE_OFFSET_BITS redefinition warnings. Fixed helper ar error in
+	  ./configure
+
+2008-02-28 16:21  tonvoon
+
+	* [r1937] NEWS, configure.in, plugins-root/Makefile.am,
+	  plugins-root/pst3.c, plugins/check_procs.c,
+	  plugins/t/check_procs.t:
+	  Reverted check_procs for solaris back to using pst3 due to
+	  truncation for argument fields using other methods
+
+2008-02-28 12:54  tonvoon
+
+	* [r1936] tools/build_perl_modules:
+	  Fix where PERL5LIB is blank
+
+2008-02-18 11:23  tonvoon
+
+	* [r1935] NEWS:
+	  Added CVE MITRE tracking number
+
+2008-02-13 20:36  psychotrahe
+
+	* [r1934] NEWS, plugins/check_pgsql.c:
+	  check_pgsql now builds with postgres lib v8.3 (Jan Wagner
+	  #1878972)
+
+2008-02-13 19:14  psychotrahe
+
+	* [r1933] plugins/check_disk.c:
+	  Fix --local argument handling (Jan Wagner #1878971)
+
+2008-02-13 15:10  dermoth
+
+	* [r1932] plugins/check_disk.c:
+	  Fix broken intending (The whole file use spaces only except my
+	  last patch and 1-3 other places).
+
+2008-02-13 11:37  dermoth
+
+	* [r1931] gl:
+	  Add two files to svn:ignore
+
+2008-02-13 11:05  dermoth
+
+	* [r1930] lib/utils_base.c, plugins/check_disk.c:
+	  set_thresholds now let the user free the thresolds. (P.S.: When
+	  you set twice the thresholds for a path in check disk (like using
+	  -C followed by -p ) it overrides them. All new elements are
+	  created with np_add_parameter which initialises the thresholds to
+	  NULL.)
+
+2008-02-13 04:18  dermoth
+
+	* [r1929] NEWS:
+	  News, nothing else.
+
+2008-02-13 04:16  dermoth
+
+	* [r1928] plugins/common.h:
+	  This floorf workaround is Nnot needed anymore since floorf is
+	  part of Gnulib
+
+2008-02-13 04:07  dermoth
+
+	* [r1927] lib/tests/test_base64.c:
+	  Reverting patch to test 8-bit data: Still broken on Solaris
+	  (7-bit works as before)
+
+2008-02-12 12:03  dermoth
+
+	* [r1926] gl/Makefile.am, gl/base64.c, gl/base64.h,
+	  gl/charset.alias, gl/configmake.h, gl/floor.c, gl/floorf.c,
+	  gl/m4/base64.m4, gl/m4/floorf.m4, gl/m4/gnulib-cache.m4,
+	  gl/m4/gnulib-comp.m4, gl/m4/math_h.m4, gl/math.h, gl/math.in.h,
+	  gl/ref-add.sed, gl/ref-del.sed, gl/stdio.h, gl/stdlib.h,
+	  gl/string.h, gl/unistd.h, lib/Makefile.am, lib/base64.c,
+	  lib/base64.h, lib/tests/Makefile.am, lib/tests/test_base64.c,
+	  plugins/check_http.c, plugins/check_smtp.c:
+	  Import Gnulib floorf and base64 and removed our old base64
+	  library.
+
+2008-02-12 11:07  dermoth
+
+	* [r1925] build-aux/config.rpath, build-aux/link-warning.h,
+	  gl/Makefile.am, gl/alloca.c, gl/alloca.in.h, gl/alloca_.h,
+	  gl/asnprintf.c, gl/asprintf.c, gl/basename.c, gl/c-strtod.c,
+	  gl/cloexec.c, gl/config.charset, gl/creat-safer.c, gl/dirname.c,
+	  gl/dirname.h, gl/dup-safer.c, gl/error.c, gl/error.h, gl/exit.h,
+	  gl/exitfail.c, gl/exitfail.h, gl/fcntl--.h, gl/fcntl-safer.h,
+	  gl/fd-safer.c, gl/float+.h, gl/float.in.h, gl/fsusage.c,
+	  gl/fsusage.h, gl/full-read.c, gl/full-read.h, gl/full-write.c,
+	  gl/full-write.h, gl/gai_strerror.c, gl/getaddrinfo.c,
+	  gl/getaddrinfo.h, gl/gethostname.c, gl/getloadavg.c, gl/getopt.c,
+	  gl/getopt.in.h, gl/getopt1.c, gl/getopt_.h, gl/getopt_int.h,
+	  gl/gettext.h, gl/inet_ntop.c, gl/inet_ntop.h, gl/intprops.h,
+	  gl/localcharset.c, gl/localcharset.h, gl/m4/absolute-header.m4,
+	  gl/m4/alloca.m4, gl/m4/extensions.m4, gl/m4/float_h.m4,
+	  gl/m4/fsusage.m4, gl/m4/getaddrinfo.m4, gl/m4/getloadavg.m4,
+	  gl/m4/gettext.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4,
+	  gl/m4/gnulib-comp.m4, gl/m4/iconv.m4, gl/m4/include_next.m4,
+	  gl/m4/intdiv0.m4, gl/m4/intl.m4, gl/m4/intlmacosx.m4,
+	  gl/m4/intmax_t.m4, gl/m4/lib-link.m4, gl/m4/localcharset.m4,
+	  gl/m4/lock.m4, gl/m4/longdouble.m4, gl/m4/longlong.m4,
+	  gl/m4/malloc.m4, gl/m4/mbchar.m4, gl/m4/mbiter.m4,
+	  gl/m4/mbrtowc.m4, gl/m4/memchr.m4, gl/m4/minmax.m4,
+	  gl/m4/netinet_in_h.m4, gl/m4/po.m4, gl/m4/printf-posix.m4,
+	  gl/m4/regex.m4, gl/m4/snprintf.m4, gl/m4/socklen.m4,
+	  gl/m4/stdint.m4, gl/m4/stdio_h.m4, gl/m4/stdlib_h.m4,
+	  gl/m4/strcase.m4, gl/m4/strdup.m4, gl/m4/strerror.m4,
+	  gl/m4/string_h.m4, gl/m4/strndup.m4, gl/m4/strnlen.m4,
+	  gl/m4/sys_socket_h.m4, gl/m4/uintmax_t.m4, gl/m4/ulonglong.m4,
+	  gl/m4/unistd_h.m4, gl/m4/vasnprintf.m4, gl/m4/vasprintf.m4,
+	  gl/m4/vsnprintf.m4, gl/m4/wchar.m4, gl/m4/wctype.m4,
+	  gl/m4/wcwidth.m4, gl/m4/wint_t.m4, gl/malloc.c, gl/mbchar.c,
+	  gl/mbchar.h, gl/mbuiter.h, gl/memchr.c, gl/minmax.h,
+	  gl/mountlist.c, gl/mountlist.h, gl/netinet_in.in.h,
+	  gl/open-safer.c, gl/pipe-safer.c, gl/printf-args.c,
+	  gl/printf-args.h, gl/printf-parse.c, gl/printf-parse.h,
+	  gl/ref-add.sin, gl/ref-del.sin, gl/regcomp.c, gl/regex.c,
+	  gl/regex.h, gl/regex_internal.c, gl/regex_internal.h,
+	  gl/regexec.c, gl/safe-read.c, gl/safe-read.h, gl/safe-write.c,
+	  gl/safe-write.h, gl/size_max.h, gl/snprintf.c, gl/snprintf.h,
+	  gl/socket_.h, gl/stdbool.in.h, gl/stdbool_.h, gl/stdint.in.h,
+	  gl/stdint_.h, gl/stdio.in.h, gl/stdlib.in.h, gl/strcase.h,
+	  gl/strcasecmp.c, gl/strdup.c, gl/strdup.h, gl/strerror.c,
+	  gl/string.in.h, gl/stripslash.c, gl/strncasecmp.c, gl/strndup.c,
+	  gl/strndup.h, gl/strnlen.c, gl/strnlen.h, gl/strnlen1.c,
+	  gl/strnlen1.h, gl/sys_socket.in.h, gl/unistd--.h,
+	  gl/unistd-safer.h, gl/unistd.in.h, gl/unistd_.h, gl/vasnprintf.c,
+	  gl/vasnprintf.h, gl/vasprintf.c, gl/vasprintf.h, gl/vsnprintf.c,
+	  gl/vsnprintf.h, gl/wchar.in.h, gl/wchar_.h, gl/wctype.in.h,
+	  gl/wctype_.h, gl/wcwidth.h, gl/xalloc-die.c, gl/xalloc.h,
+	  gl/xmalloc.c, gl/xsize.h, gl/xstrndup.c, gl/xstrndup.h,
+	  plugins/common.h, po/Makevars:
+	  Sync to latest Gnulib
+
+2008-02-11 21:36  tonvoon
+
+	* [r1924] REQUIREMENTS:
+	  Hints re: SSL features
+
+2008-02-11 21:23  tonvoon
+
+	* [r1923] configure.in:
+	  Added link to FAQ for redhat spopen problem
+
+2008-01-31 11:52  dermoth
+
+	* [r1920] plugins-root/check_dhcp.c, plugins-root/check_icmp.c,
+	  plugins-root/pst3.c:
+	  Bump plugins-root/ to GPLv3
+
+2008-01-31 11:45  dermoth
+
+	* [r1919] plugins/common.h, plugins/netutils.h, plugins/popen.h,
+	  plugins/runcmd.h:
+	  Bump plugins/ to GPLv3 (header files)
+
+2008-01-31 11:27  dermoth
+
+	* [r1918] plugins/negate.c, plugins/netutils.c, plugins/popen.c,
+	  plugins/runcmd.c, plugins/sslutils.c, plugins/urlize.c,
+	  plugins/utils.c:
+	  Bump plugins/ to GPLv3 (non-plugind files)
+
+2008-01-31 10:44  dermoth
+
+	* [r1917] plugins/check_overcr.c, plugins/check_pgsql.c,
+	  plugins/check_ping.c, plugins/check_procs.c,
+	  plugins/check_radius.c, plugins/check_real.c,
+	  plugins/check_smtp.c, plugins/check_snmp.c, plugins/check_ssh.c,
+	  plugins/check_swap.c, plugins/check_tcp.c, plugins/check_time.c,
+	  plugins/check_ups.c, plugins/check_users.c:
+	  Bump plugin/ to GPLv3 (check_overcr to check_users)
+
+2008-01-30 10:53  dermoth
+
+	* [r1916] plugins/check_apt.c, plugins/check_by_ssh.c,
+	  plugins/check_cluster.c, plugins/check_dig.c,
+	  plugins/check_disk.c, plugins/check_dns.c, plugins/check_dummy.c,
+	  plugins/check_fping.c, plugins/check_game.c,
+	  plugins/check_hpjd.c, plugins/check_http.c,
+	  plugins/check_ide_smart.c, plugins/check_ldap.c,
+	  plugins/check_load.c, plugins/check_mrtg.c,
+	  plugins/check_mrtgtraf.c, plugins/check_mysql.c,
+	  plugins/check_mysql_query.c, plugins/check_nagios.c,
+	  plugins/check_nt.c, plugins/check_ntp.c,
+	  plugins/check_ntp_peer.c, plugins/check_ntp_time.c,
+	  plugins/check_nwstat.c:
+	  Bump plugins/ to GPLv3 (check_apt to check_nwstat)
+
+2008-01-30 09:46  dermoth
+
+	* [r1915] lib/utils_disk.c, lib/utils_tcp.c:
+	  details...
+
+2008-01-30 09:38  dermoth
+
+	* [r1914] lib/tests/test_base64.c, lib/tests/test_cmd.c,
+	  lib/tests/test_disk.c, lib/tests/test_ini.c,
+	  lib/tests/test_tcp.c, lib/tests/test_utils.c:
+	  Bump lib/tests to GPLv3
+
+2008-01-30 09:33  dermoth
+
+	* [r1913] lib/parse_ini.c, lib/utils_base.c, lib/utils_cmd.c,
+	  lib/utils_disk.c, lib/utils_tcp.c:
+	  Bump /lib to GPLv3
+
+2008-01-30 09:03  dermoth
+
+	* [r1912] lib/parse_ini.c:
+	  new standardized GPLv3 header (will be applied to all C files)
+
+2008-01-29 10:27  dermoth
+
+	* [r1911] NEWS, plugins/check_ntp_peer.c:
+	  check_ntp_peer now checks for the LI_ALARM flag
+
+2008-01-29 08:55  dermoth
+
+	* [r1910] NEWS:
+	  typo
+
+2008-01-29 08:54  dermoth
+
+	* [r1909] NEWS, plugins/check_ntp.c, plugins/check_ntp_time.c:
+	  Fix bugs and flaws in best offset server selection of
+	  check_ntp_time and (deprecated) check_ntp
+
+2008-01-26 15:55  dermoth
+
+	* [r1908] NEWS, THANKS.in, plugins/check_ntp_peer.c,
+	  plugins/check_ntp_time.c:
+	  Fix help text of check_ntp_* (Bug #1880095)
+
+2008-01-15 11:34  dermoth
+
+	* [r1907] NEWS, plugins/check_disk.c:
+	  Fix check_disk disk usage calculation when using --group=NAME
+	  (related to bug #1348746)
+
+2008-01-15 09:40  dermoth
+
+	* [r1906] NEWS, configure.in:
+	  Add AC_SYS_LARGEFILE to configure.in (check_disk should now work
+	  with large file systems (2TB+) on all archs that supports it)
+
+2008-01-10 07:49  dermoth
+
+	* [r1905] lib/tests/test_cmd.c:
+	  Add a return-code check (also test cmd_run without out/err
+	  buffers)
+
+2008-01-09 04:27  dermoth
+
+	* [r1904] tools/tinderbox_build:
+	  make test-debug generate lots of false errors in tinderbox.
+	  Turning off until we find a solution (so al least we can watch
+	  the tinderbox for breakages again)
+
+2008-01-08 23:08  psychotrahe
+
+	* [r1903] plugins/check_dns.c:
+	  Fixed reverse lookup damaged by previous commit
+
+2008-01-08 16:05  tonvoon
+
+	* [r1902] plugins/t/check_dns.t:
+	  Changed default test values for check_dns (using nagios.com)
+
+2008-01-08 11:57  tonvoon
+
+	* [r1901] plugins/t/check_ftp.t, plugins/t/check_imap.t,
+	  plugins/t/check_jabber.t, plugins/t/check_pop.t,
+	  plugins/t/check_tcp.t:
+	  Reverted commits 1898 and 1899 due to reversion of 1879
+
+2008-01-08 11:51  tonvoon
+
+	* [r1900] NEWS, plugins/check_tcp.c:
+	  Reverted commit 1879 where an invalid hostname returns UNKNOWN -
+	  back to CRITICAL
+
+2008-01-08 11:35  dermoth
+
+	* [r1899] plugins/t/check_imap.t, plugins/t/check_jabber.t,
+	  plugins/t/check_pop.t:
+	  more r1879 fixes
+
+2008-01-08 11:27  dermoth
+
+	* [r1898] plugins/t/check_ftp.t, plugins/t/check_tcp.t:
+	  Fix test breakages for commit r1879: check_tcp now returns
+	  UNKNOWN with an invalid hostname on command line
+
+2008-01-08 02:06  hweiss
+
+	* [r1897] plugins-root/check_icmp.c:
+	  Hide some debug output which was printed even without "-v" (under
+	  certain circumstances).
+
+2008-01-08 01:51  hweiss
+
+	* [r1896] plugins-root/check_icmp.c:
+	  Fix the handling of ICMP packets which are not echo replies (such
+	  as destination unreachable messages) or which are not directed at
+	  us.
+
+2008-01-08 01:43  hweiss
+
+	* [r1895] plugins-root/check_icmp.c:
+	  Get rid of a cast which increases the required alignment.
+
+2008-01-08 01:40  hweiss
+
+	* [r1894] plugins-root/check_icmp.c:
+	  Mark some constant strings "const".
+
+2008-01-07 02:04  hweiss
+
+	* [r1893] plugins/netutils.c:
+	  Support "[IPv6]" address syntax.
+
+2008-01-07 01:59  hweiss
+
+	* [r1892] plugins/check_http.c:
+	  My assumption that "-H example.com:80" didn't work (see my
+	  previous commit) was wrong, it worked if used together with "-I".
+	  So, here's support for "-H [IPv6]:port", "-H [IPv6]", "-H IPv6",
+	  "-H IPv4:port", "-H IPv4", and "-H host:port".
+
+2008-01-06 19:45  hweiss
+
+	* [r1891] plugins/check_http.c:
+	  Remove support for specifying the port number using "-H
+	  example.com:80". Since this didn't work anyway (because ":80"
+	  wasn't stripped from the "host_name" after extracting the
+	  "server_port"), nobody can be using this syntax, and it prevents
+	  "-H" from accepting IPv6 addresses (neufeind - 1865082). IMO,
+	  fixing it to recognize both ":80" and IPv6 addresses isn't worth
+	  it, as the ":80" syntax doesn't seem very useful for Nagios
+	  plugins (given the way how they are usually called in Nagios
+	  command definitions).
+
+2008-01-06 15:44  dermoth
+
+	* [r1890] lib/tests/test_base64.c:
+	  Fix base64 test (known string wasn't null-terminated)
+
+2008-01-06 07:04  dermoth
+
+	* [r1889] lib/tests/test_cmd.c:
+	  Fix tinderbox breakage
+
+2008-01-06 00:10  psychotrahe
+
+	* [r1888] plugins/check_ldap.c:
+	  If unspecified set LDAP_OPT_SUCCESS to LDAP_SUCCESS (Sergei
+	  Haramundanis - #1498923)
+
+2008-01-05 14:09  dermoth
+
+	* [r1887] NEWS, plugins/check_ntp.c, plugins/check_ntp_time.c:
+	  Fix Bug #1862300: check_ntp_time segfault in 1.4.11 (Also apply
+	  to check_ntp)
+
+2008-01-05 01:06  psychotrahe
+
+	* [r1886] NEWS, THANKS.in, plugins/check_dns.c:
+	  check_dns now sorts addresses for -a support with multiple
+	  address replies (Matthias Urlichs #1724052)
+
+2008-01-04 22:10  psychotrahe
+
+	* [r1885] plugins/check_procs.c:
+	  Cleaned check_procs usage output (Ferenc Wagner #1862218)
+
+2007-12-21 14:19  hweiss
+
+	* [r1884] plugins-root/check_icmp.c:
+	  Fix INADDR_NONE value (for systems which don't define it).
+
+2007-12-21 14:17  hweiss
+
+	* [r1883] plugins-root/check_icmp.c:
+	  Include <sys/sockio.h> (if available) to get SIOCGIFADDR defined
+	  on Solaris.
+
+2007-12-21 13:25  hweiss
+
+	* [r1882] NEWS, THANKS.in, plugins-root/check_icmp.c:
+	  New "-s" option to specify the source IP address (thanks to
+	  Harald Jenny for providing the patch and to Patrick Cervicek for
+	  looking into it!)
+
+2007-12-21 04:23  dermoth
+
+	* [r1881] plugins/check_ldap.c:
+	  Remove c formating from translated strings (makes translation
+	  easier)
+
+2007-12-19 18:41  hweiss
+
+	* [r1880] plugins/check_ldap.c:
+	  Fix the "--help" output.
+
+2007-12-19 10:08  tonvoon
+
+	* [r1879] NEWS, plugins/check_tcp.c:
+	  check_tcp now returns UNKNOWN with an invalid hostname on command
+	  line
+
+2007-12-17 11:47  tonvoon
+
+	* [r1877] NEWS, THANKS.in, plugins/check_nt.c:
+	  Add check_nt -v INSTANCES (Alessandro Ren)
+
+2007-12-13 23:17  tonvoon
+
+	* [r1876] plugins/check_nwstat.c:
+	  Fixed help output (Christian Mies)
+
+2007-12-13 23:12  tonvoon
+
+	* [r1875] NEWS:
+	  NEWS edited for consistent grammar
+
+2007-12-13 22:39  tonvoon
+
+	* [r1873] BUGS, ChangeLog, NEWS, configure.in, package.def:
+	  Preparation for 1.4.11
+
 2007-12-13 22:22  tonvoon
 
 	* [r1872] NEWS, THANKS.in, plugins-root/Makefile.am:
@@ -599,7 +1395,7 @@
 2007-07-07 11:54  psychotrahe
 
 	* [r1750] plugins-scripts/check_file_age.pl:
-	  substituted $ID$ through $Revision: 1873 $ in print_revision call
+	  substituted $ID$ through $Revision: 2004 $ in print_revision call
 
 2007-07-07 11:40  psychotrahe
 
diff -uNr nagios-plugins-1.4.11/config.h.in nagios-plugins-1.4.12/config.h.in
--- nagios-plugins-1.4.11/config.h.in	2007-12-13 23:42:33.000000000 +0100
+++ nagios-plugins-1.4.12/config.h.in	2008-05-28 00:05:04.000000000 +0200
@@ -1,17 +1,5 @@
 /* config.h.in.  Generated from configure.in by autoheader.  */
 
-/* Define this to an absolute name of <stdint.h>. */
-#undef ABSOLUTE_STDINT_H
-
-/* Define this to an absolute name of <unistd.h>. */
-#undef ABSOLUTE_UNISTD_H
-
-/* Define this to an absolute name of <wchar.h>. */
-#undef ABSOLUTE_WCHAR_H
-
-/* Define this to an absolute name of <wctype.h>. */
-#undef ABSOLUTE_WCTYPE_H
-
 /* Define to the number of bits in type 'ptrdiff_t'. */
 #undef BITSIZEOF_PTRDIFF_T
 
@@ -80,20 +68,20 @@
 /* Define to 1 when using the gnulib module fcntl-safer. */
 #undef GNULIB_FCNTL_SAFER
 
+/* Define to indicate the 'malloc' module. */
+#undef GNULIB_MALLOC_GNU
+
 /* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
    may be supplied by this distribution. */
 #undef HAVE_ALLOCA
 
-/* Define HAVE_ALLOCA_H for backward compatibility with older code that
-   includes <alloca.h> only if HAVE_ALLOCA_H is defined. */
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+   */
 #undef HAVE_ALLOCA_H
 
 /* Define to 1 if you have the <arpa/inet.h> header file. */
 #undef HAVE_ARPA_INET_H
 
-/* Define to 1 if you have the <bp-sym.h> header file. */
-#undef HAVE_BP_SYM_H
-
 /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
    CoreFoundation framework. */
 #undef HAVE_CFLOCALECOPYCURRENT
@@ -112,6 +100,10 @@
    */
 #undef HAVE_DCGETTEXT
 
+/* Define to 1 if you have the declaration of `floorf', and to 0 if you don't.
+   */
+#undef HAVE_DECL_FLOORF
+
 /* Define to 1 if you have the declaration of `freeaddrinfo', and to 0 if you
    don't. */
 #undef HAVE_DECL_FREEADDRINFO
@@ -124,6 +116,10 @@
    don't. */
 #undef HAVE_DECL_GETADDRINFO
 
+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+   don't. */
+#undef HAVE_DECL_GETC_UNLOCKED
+
 /* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
    */
 #undef HAVE_DECL_GETENV
@@ -148,13 +144,13 @@
    */
 #undef HAVE_DECL_STRDUP
 
-/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+/* Define to 1 if you have the declaration of `strerror', and to 0 if you
    don't. */
-#undef HAVE_DECL_STRERROR_R
+#undef HAVE_DECL_STRERROR
 
-/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you
+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
    don't. */
-#undef HAVE_DECL_STRNCASECMP
+#undef HAVE_DECL_STRERROR_R
 
 /* Define to 1 if you have the declaration of `strndup', and to 0 if you
    don't. */
@@ -176,9 +172,9 @@
    don't. */
 #undef HAVE_DECL_VSNPRINTF
 
-/* Define to 1 if you have the declaration of `wcwidth', and to 0 if you
+/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you
    don't. */
-#undef HAVE_DECL_WCWIDTH
+#undef HAVE_DECL__SNPRINTF
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
@@ -195,6 +191,9 @@
 /* Define to 1 if you have the <features.h> header file. */
 #undef HAVE_FEATURES_H
 
+/* Define to 1 if you have the <float.h> header file. */
+#undef HAVE_FLOAT_H
+
 /* Define to 1 if you have the `floor' function. */
 #undef HAVE_FLOOR
 
@@ -204,12 +203,6 @@
 /* Define to 1 if you have the `fs_stat_dev' function. */
 #undef HAVE_FS_STAT_DEV
 
-/* Define to 1 if you have the `gai_strerror' function. */
-#undef HAVE_GAI_STRERROR
-
-/* Define to 1 if you have the `getaddrinfo' function. */
-#undef HAVE_GETADDRINFO
-
 /* Define to 1 if you have the `gethostbyname' function. */
 #undef HAVE_GETHOSTBYNAME
 
@@ -243,9 +236,12 @@
 /* Define to 1 if you have the `hasmntopt' function. */
 #undef HAVE_HASMNTOPT
 
-/* Define if you have the iconv() function. */
+/* Define if you have the iconv() function and it works. */
 #undef HAVE_ICONV
 
+/* Define if your compiler supports the #include_next directive. */
+#undef HAVE_INCLUDE_NEXT
+
 /* Define to 1 if you have the `inet_ntop' function. */
 #undef HAVE_INET_NTOP
 
@@ -270,6 +266,9 @@
 /* Define to 1 if <sys/socket.h> defines AF_INET6. */
 #undef HAVE_IPV6
 
+/* Define to 1 if you have the `isblank' function. */
+#undef HAVE_ISBLANK
+
 /* Define to 1 if you have the `iswcntrl' function. */
 #undef HAVE_ISWCNTRL
 
@@ -303,12 +302,18 @@
 /* Define to 1 if you have the `dgc' library (-ldgc). */
 #undef HAVE_LIBDGC
 
+/* Define to 1 if you have the `dl' library (-ldl). */
+#undef HAVE_LIBDL
+
 /* Define to 1 if you have the `kstat' library (-lkstat). */
 #undef HAVE_LIBKSTAT
 
 /* Define to 1 if you have the `ldap' library (-lldap). */
 #undef HAVE_LIBLDAP
 
+/* Define to 1 if you have the `perfstat' library (-lperfstat). */
+#undef HAVE_LIBPERFSTAT
+
 /* Define to 1 if you have the `pq' library (-lpq). */
 #undef HAVE_LIBPQ
 
@@ -328,12 +333,6 @@
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
-/* Define if you have the 'long double' type. */
-#undef HAVE_LONG_DOUBLE
-
-/* Define if you have the 'long long' type. */
-#undef HAVE_LONG_LONG
-
 /* Define to 1 if the system has the type `long long int'. */
 #undef HAVE_LONG_LONG_INT
 
@@ -344,6 +343,9 @@
    to 0 otherwise. */
 #undef HAVE_MALLOC
 
+/* Define if the 'malloc' function is POSIX compliant. */
+#undef HAVE_MALLOC_POSIX
+
 /* Define to 1 if you have the <math.h> header file. */
 #undef HAVE_MATH_H
 
@@ -353,24 +355,12 @@
 /* Define to 1 if <wchar.h> declares mbstate_t. */
 #undef HAVE_MBSTATE_T
 
-/* Define to 1 if you have the `memchr' function. */
-#undef HAVE_MEMCHR
-
 /* Define to 1 if you have the `memmove' function. */
 #undef HAVE_MEMMOVE
 
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
-/* Define to 1 if you have the `mempcpy' function. */
-#undef HAVE_MEMPCPY
-
-/* Define to 1 if <limits.h> defines the MIN and MAX macros. */
-#undef HAVE_MINMAX_IN_LIMITS_H
-
-/* Define to 1 if <sys/param.h> defines the MIN and MAX macros. */
-#undef HAVE_MINMAX_IN_SYS_PARAM_H
-
 /* Define to 1 if you have the <mntent.h> header file. */
 #undef HAVE_MNTENT_H
 
@@ -428,9 +418,6 @@
 /* Define to 1 if you have the `pstat_getdynamic' function. */
 #undef HAVE_PSTAT_GETDYNAMIC
 
-/* Define to 1 if the system has the type `ptrdiff_t'. */
-#undef HAVE_PTRDIFF_T
-
 /* Define to 1 if you have the <rsa.h> header file. */
 #undef HAVE_RSA_H
 
@@ -474,6 +461,9 @@
    uintmax_t. */
 #undef HAVE_STDINT_H_WITH_UINTMAX
 
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
 /* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H
 
@@ -489,9 +479,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define to 1 if you have the `strncasecmp' function. */
-#undef HAVE_STRNCASECMP
-
 /* Define if you have the strndup() function and it works. */
 #undef HAVE_STRNDUP
 
@@ -645,9 +632,6 @@
 /* Define to 1 if you have the <wctype.h> header file. */
 #undef HAVE_WCTYPE_H
 
-/* Define to 1 if you have the `wcwidth' function. */
-#undef HAVE_WCWIDTH
-
 /* Define to 1 if you have the <winsock2.h> header file. */
 #undef HAVE_WINSOCK2_H
 
@@ -731,6 +715,9 @@
 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
 #undef NO_MINUS_C_MINUS_O
 
+/* Enable INI file parsing. */
+#undef NP_EXTRA_OPTS
+
 /* path and args for nslookup */
 #undef NSLOOKUP_COMMAND
 
@@ -825,6 +812,12 @@
 /* Forced workaround on redhat in spopen */
 #undef REDHAT_SPOPEN_ERROR
 
+/* Define this to 1 if strerror is broken. */
+#undef REPLACE_STRERROR
+
+/* Define if vasnprintf exists but is overridden by gnulib. */
+#undef REPLACE_VASNPRINTF
+
 /* Define as the return type of signal handlers (`int' or `void'). */
 #undef RETSIGTYPE
 
@@ -939,18 +932,17 @@
    'wint_t'. */
 #undef WINT_T_SUFFIX
 
-/* Define to 1 if on AIX 3.
-   System headers sometimes define this.
-   We just want to avoid a redefinition error message.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
 
 /* Enable GNU extensions on systems that have them.  */
 #ifndef _GNU_SOURCE
 # undef _GNU_SOURCE
 #endif
 
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
 /* Define to 1 if on MINIX. */
 #undef _MINIX
 
@@ -964,16 +956,27 @@
 /* Define if you want regoff_t to be at least as wide POSIX requires. */
 #undef _REGEX_LARGE_OFFSETS
 
-/* Enable extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
 #endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
 #ifndef _POSIX_PTHREAD_SEMANTICS
 # undef _POSIX_PTHREAD_SEMANTICS
 #endif
+/* Enable extensions on HP NonStop.  */
 #ifndef _TANDEM_SOURCE
 # undef _TANDEM_SOURCE
 #endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
 
 /* Define to rpl_ if the getopt replacement functions and variables should be
    used. */
@@ -985,7 +988,7 @@
 /* hpux specific code in check_dhcp.c */
 #undef __hpux__
 
-/* sun specific code in check_dhcp.c */
+/* linux specific code in check_dhcp.c */
 #undef __linux__
 
 /* sun specific code in check_dhcp.c */
@@ -1012,6 +1015,10 @@
 /* Define to `int' if <sys/types.h> does not define. */
 #undef pid_t
 
+/* Define as the type of the result of subtracting two pointers, if the system
+   doesn't define it. */
+#undef ptrdiff_t
+
 /* Define to rpl_re_comp if the replacement should be used. */
 #undef re_comp
 
@@ -1057,9 +1064,18 @@
 /* Define to rpl_regfree if the replacement should be used. */
 #undef regfree
 
-/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
-   supported. Do not define if restrict is supported directly. */
+/* Define to the equivalent of the C99 'restrict' keyword, or to
+   nothing if this is not supported.  Do not define if restrict is
+   supported directly.  */
 #undef restrict
+/* Work around a bug in Sun C++: it does not support _Restrict, even
+   though the corresponding Sun C compiler does, which causes
+   "#define restrict _Restrict" in the previous line.  Perhaps some future
+   version of Sun C++ will work with _Restrict; if so, it'll probably
+   define __RESTRICT, just as Sun C does.  */
+#if defined __SUNPRO_CC && !defined __RESTRICT
+# define _Restrict
+#endif
 
 /* Define to `unsigned int' if <sys/types.h> does not define. */
 #undef size_t
diff -uNr nagios-plugins-1.4.11/configure nagios-plugins-1.4.12/configure
--- nagios-plugins-1.4.11/configure	2007-12-13 23:42:38.000000000 +0100
+++ nagios-plugins-1.4.12/configure	2008-05-28 00:05:10.000000000 +0200
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.in .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for nagios-plugins 1.4.11.
+# Generated by GNU Autoconf 2.61 for nagios-plugins 1.4.12.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -727,8 +727,8 @@
 # Identity of this package.
 PACKAGE_NAME='nagios-plugins'
 PACKAGE_TARNAME='nagios-plugins'
-PACKAGE_VERSION='1.4.11'
-PACKAGE_STRING='nagios-plugins 1.4.11'
+PACKAGE_VERSION='1.4.12'
+PACKAGE_STRING='nagios-plugins 1.4.12'
 PACKAGE_BUGREPORT=''
 
 ac_unique_file="NPTest.pm"
@@ -893,6 +893,8 @@
 SOCKETLIBS
 MATHLIBS
 EXTRA_TEST
+USE_PARSE_INI_TRUE
+USE_PARSE_INI_FALSE
 PGLIBS
 PGINCLUDE
 RADIUSLIBS
@@ -907,6 +909,7 @@
 check_tcp_ssl
 SSLLIBS
 PATH_TO_PS
+PST3CFLAGS
 PATH_TO_PING
 PATH_TO_PING6
 PATH_TO_NSLOOKUP
@@ -933,6 +936,7 @@
 EXTRA_NETOBJS
 DEPLIBS
 USE_NLS
+GETTEXT_MACRO_VERSION
 MSGFMT
 GMSGFMT
 MSGFMT_015
@@ -940,6 +944,7 @@
 XGETTEXT
 XGETTEXT_015
 MSGMERGE
+XGETTEXT_EXTRA_OPTIONS
 INTL_MACOSX_LIBS
 LIBICONV
 LTLIBICONV
@@ -953,19 +958,136 @@
 ALLOCA
 ALLOCA_H
 ARPA_INET_H
+INCLUDE_NEXT
+NEXT_FLOAT_H
+FLOAT_H
+GNULIB_CEILF
+GNULIB_CEILL
+GNULIB_FLOORF
+GNULIB_FLOORL
+GNULIB_FREXP
+GNULIB_FREXPL
+GNULIB_ISFINITE
+GNULIB_LDEXPL
+GNULIB_MATHL
+GNULIB_ROUND
+GNULIB_ROUNDF
+GNULIB_ROUNDL
+GNULIB_SIGNBIT
+GNULIB_TRUNC
+GNULIB_TRUNCF
+GNULIB_TRUNCL
+HAVE_DECL_ACOSL
+HAVE_DECL_ASINL
+HAVE_DECL_ATANL
+HAVE_DECL_COSL
+HAVE_DECL_EXPL
+HAVE_DECL_FREXPL
+HAVE_DECL_LDEXPL
+HAVE_DECL_LOGL
+HAVE_DECL_SINL
+HAVE_DECL_SQRTL
+HAVE_DECL_TANL
+HAVE_DECL_TRUNC
+HAVE_DECL_TRUNCF
+HAVE_DECL_TRUNCL
+REPLACE_CEILF
+REPLACE_CEILL
+REPLACE_FLOORF
+REPLACE_FLOORL
+REPLACE_FREXP
+REPLACE_FREXPL
+REPLACE_ISFINITE
+REPLACE_LDEXPL
+REPLACE_ROUND
+REPLACE_ROUNDF
+REPLACE_ROUNDL
+REPLACE_SIGNBIT
+REPLACE_SIGNBIT_USING_GCC
+FLOORF_LIBM
+NEXT_SYS_SOCKET_H
+HAVE_SYS_SOCKET_H
+HAVE_WINSOCK2_H
+HAVE_WS2TCPIP_H
 SYS_SOCKET_H
 NEED_SETGID
 KMEM_GROUP
 GETLOADAVG_LIBS
 GETOPT_H
+GLIBC21
+LOCALCHARSET_TESTS_ENVIRONMENT
+HAVE_MALLOC_POSIX
+GNULIB_MALLOC_POSIX
+GNULIB_REALLOC_POSIX
+GNULIB_CALLOC_POSIX
+GNULIB_GETSUBOPT
+GNULIB_MKDTEMP
+GNULIB_MKSTEMP
+GNULIB_PUTENV
+GNULIB_SETENV
+GNULIB_UNSETENV
+HAVE_CALLOC_POSIX
+HAVE_GETSUBOPT
+HAVE_MKDTEMP
+HAVE_REALLOC_POSIX
+HAVE_SETENV
+HAVE_UNSETENV
+REPLACE_MKSTEMP
+REPLACE_PUTENV
+VOID_UNSETENV
+NEXT_MATH_H
+NEXT_NETINET_IN_H
+HAVE_NETINET_IN_H
 NETINET_IN_H
+GNULIB_FPRINTF_POSIX
+GNULIB_PRINTF_POSIX
+GNULIB_SNPRINTF
+GNULIB_SPRINTF_POSIX
+GNULIB_VFPRINTF_POSIX
+GNULIB_VPRINTF_POSIX
+GNULIB_VSNPRINTF
+GNULIB_VSPRINTF_POSIX
+GNULIB_VASPRINTF
+GNULIB_FOPEN
+GNULIB_FREOPEN
+GNULIB_FSEEK
+GNULIB_FSEEKO
+GNULIB_FTELL
+GNULIB_FTELLO
+GNULIB_FFLUSH
+GNULIB_GETDELIM
+GNULIB_GETLINE
+REPLACE_FPRINTF
+REPLACE_VFPRINTF
+REPLACE_PRINTF
+REPLACE_VPRINTF
+REPLACE_SNPRINTF
+HAVE_DECL_SNPRINTF
+REPLACE_VSNPRINTF
+HAVE_DECL_VSNPRINTF
+REPLACE_SPRINTF
+REPLACE_VSPRINTF
+HAVE_VASPRINTF
+REPLACE_VASPRINTF
+REPLACE_FOPEN
+REPLACE_FREOPEN
+HAVE_FSEEKO
+REPLACE_FSEEKO
+REPLACE_FSEEK
+HAVE_FTELLO
+REPLACE_FTELLO
+REPLACE_FTELL
+REPLACE_FFLUSH
+HAVE_DECL_GETDELIM
+HAVE_DECL_GETLINE
+REPLACE_GETLINE
 STDBOOL_H
 HAVE__BOOL
 HAVE_LONG_LONG_INT
 HAVE_UNSIGNED_LONG_LONG_INT
 HAVE_INTTYPES_H
 HAVE_SYS_TYPES_H
-ABSOLUTE_STDINT_H
+NEXT_STDINT_H
 HAVE_STDINT_H
 HAVE_SYS_INTTYPES_H
 HAVE_SYS_BITYPES_H
@@ -983,20 +1105,106 @@
 WCHAR_T_SUFFIX
 WINT_T_SUFFIX
 STDINT_H
-UNISTD_H
-ABSOLUTE_UNISTD_H
+NEXT_STDIO_H
+NEXT_STDLIB_H
+GNULIB_MEMMEM
+GNULIB_MEMPCPY
+GNULIB_MEMRCHR
+GNULIB_STPCPY
+GNULIB_STPNCPY
+GNULIB_STRCHRNUL
+GNULIB_STRDUP
+GNULIB_STRNDUP
+GNULIB_STRNLEN
+GNULIB_STRPBRK
+GNULIB_STRSEP
+GNULIB_STRSTR
+GNULIB_STRCASESTR
+GNULIB_STRTOK_R
+GNULIB_MBSLEN
+GNULIB_MBSNLEN
+GNULIB_MBSCHR
+GNULIB_MBSRCHR
+GNULIB_MBSSTR
+GNULIB_MBSCASECMP
+GNULIB_MBSNCASECMP
+GNULIB_MBSPCASECMP
+GNULIB_MBSCASESTR
+GNULIB_MBSCSPN
+GNULIB_MBSPBRK
+GNULIB_MBSSPN
+GNULIB_MBSSEP
+GNULIB_MBSTOK_R
+GNULIB_STRERROR
+GNULIB_STRSIGNAL
+HAVE_DECL_MEMMEM
+HAVE_MEMPCPY
+HAVE_DECL_MEMRCHR
+HAVE_STPCPY
+HAVE_STPNCPY
+HAVE_STRCHRNUL
+HAVE_DECL_STRDUP
+HAVE_STRNDUP
+HAVE_DECL_STRNDUP
+HAVE_DECL_STRNLEN
+HAVE_STRPBRK
+HAVE_STRSEP
+HAVE_STRCASESTR
+HAVE_DECL_STRTOK_R
+HAVE_DECL_STRERROR
+HAVE_DECL_STRSIGNAL
+REPLACE_STRERROR
+REPLACE_STRSIGNAL
+REPLACE_MEMMEM
+REPLACE_STRCASESTR
+REPLACE_STRSTR
+NEXT_STRING_H
+GNULIB_CHOWN
+GNULIB_DUP2
+GNULIB_FCHDIR
+GNULIB_FTRUNCATE
+GNULIB_GETCWD
+GNULIB_GETLOGIN_R
+GNULIB_GETPAGESIZE
+GNULIB_LCHOWN
+GNULIB_LSEEK
+GNULIB_READLINK
+GNULIB_SLEEP
+HAVE_DUP2
+HAVE_FTRUNCATE
+HAVE_GETPAGESIZE
+HAVE_READLINK
+HAVE_SLEEP
+HAVE_DECL_GETLOGIN_R
+HAVE_OS_H
+HAVE_SYS_PARAM_H
+REPLACE_CHOWN
+REPLACE_FCHDIR
+REPLACE_GETCWD
+REPLACE_GETPAGESIZE
+REPLACE_LCHOWN
+REPLACE_LSEEK
+NEXT_UNISTD_H
+HAVE_UNISTD_H
 EOVERFLOW
-ABSOLUTE_WCHAR_H
+GNULIB_WCWIDTH
+HAVE_DECL_WCWIDTH
+REPLACE_WCWIDTH
 WCHAR_H
+HAVE_WCHAR_H
+NEXT_WCHAR_H
+HAVE_ISWCNTRL
 HAVE_WINT_T
-ABSOLUTE_WCTYPE_H
+NEXT_WCTYPE_H
 HAVE_WCTYPE_H
 WCTYPE_H
 LIBGNU_LIBDEPS
 LIBGNU_LTLIBDEPS
 LTLIBOBJS
 gl_LIBOBJS
-gl_LTLIBOBJS'
+gl_LTLIBOBJS
+gltests_LIBOBJS
+gltests_LTLIBOBJS'
 ac_subst_files=''
       ac_precious_vars='build_alias
 host_alias
@@ -1515,7 +1723,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures nagios-plugins 1.4.11 to adapt to many kinds of systems.
+\`configure' configures nagios-plugins 1.4.12 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1585,7 +1793,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of nagios-plugins 1.4.11:";;
+     short | recursive ) echo "Configuration of nagios-plugins 1.4.12:";;
    esac
   cat <<\_ACEOF
 
@@ -1594,14 +1802,14 @@
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
-  --enable-threads={posix|solaris|pth|win32}
-                          specify multithreading API
-  --disable-threads       build without multithread safety
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-static[=PKGS]  build static libraries [default=yes]
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
+  --disable-largefile     omit support for large files
+  --enable-extra-opts     Enables parsing of plugins ini config files for
+                          extra options (default: no)
   --disable-nls           do not use Native Language Support
   --disable-rpath         do not hardcode runtime library paths
   --enable-redhat-pthread-workaround
@@ -1655,9 +1863,12 @@
   --with-libintl-prefix[=DIR]  search for libintl in DIR/include and DIR/lib
   --without-libintl-prefix     don't search for libintl in includedir and libdir
   --without-included-regex
-                          don't compile regex; this is the default on systems
-                          with recent-enough versions of the GNU C Library
-                          (use with caution on other systems)
+                          don't compile regex; this is the default on 32-bit
+                          systems with recent-enough versions of the GNU C
+                          Library (use with caution on other systems). On
+                          systems with 64-bit ptrdiff_t and 32-bit int,
+                          --with-included-regex is the default, in case regex
+                          functions operate on very long strings (>2GB)
 
 Some influential environment variables:
   CC          C compiler command
@@ -1737,7 +1948,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-nagios-plugins configure 1.4.11
+nagios-plugins configure 1.4.12
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1751,7 +1962,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by nagios-plugins $as_me 1.4.11, which was
+It was created by nagios-plugins $as_me 1.4.12, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -2026,26 +2237,31 @@
 
 gt_needs="$gt_needs need-ngettext"
 gl_header_list="$gl_header_list arpa/inet.h"
+gl_header_list="$gl_header_list float.h"
 gl_header_list="$gl_header_list sys/param.h"
 gl_header_list="$gl_header_list sys/vfs.h"
 gl_header_list="$gl_header_list sys/fs_types.h"
 gl_header_list="$gl_header_list sys/socket.h"
-gl_header_list="$gl_header_list netinet/in.h"
 gl_header_list="$gl_header_list netdb.h"
+gl_header_list="$gl_header_list netinet/in.h"
+gl_header_list="$gl_header_list math.h"
 gl_header_list="$gl_header_list sys/statvfs.h"
 gl_header_list="$gl_header_list locale.h"
+gl_func_list="$gl_func_list isblank"
 gl_func_list="$gl_func_list iswctype"
 gl_func_list="$gl_func_list mbrtowc"
-gl_func_list="$gl_func_list mempcpy"
 gl_func_list="$gl_func_list wcrtomb"
 gl_func_list="$gl_func_list wcscoll"
 gl_header_list="$gl_header_list stdint.h"
+gl_header_list="$gl_header_list wchar.h"
+gl_header_list="$gl_header_list stdio.h"
+gl_header_list="$gl_header_list stdlib.h"
+gl_header_list="$gl_header_list string.h"
 gl_header_list="$gl_header_list unistd.h"
 gl_func_list="$gl_func_list pipe"
-gl_header_list="$gl_header_list wchar.h"
+gl_func_list="$gl_func_list vasnprintf"
 gl_func_list="$gl_func_list iswcntrl"
 gl_header_list="$gl_header_list wctype.h"
-gl_func_list="$gl_func_list wcwidth"
 # Check that the precious variables saved in the cache have kept the same
 # value.
 ac_cache_corrupted=false
@@ -2446,7 +2662,7 @@
 
 # Define the identity of the package.
  PACKAGE='nagios-plugins'
- VERSION='1.4.11'
+ VERSION='1.4.12'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4302,35 +4518,6 @@
  EGREP="$ac_cv_path_EGREP"
 
 
-
-{ echo "$as_me:$LINENO: checking for AIX" >&5
-echo $ECHO_N "checking for AIX... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef _AIX
-  yes
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-cat >>confdefs.h <<\_ACEOF
-#define _ALL_SOURCE 1
-_ACEOF
-
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-rm -f conftest*
-
-
 { echo "$as_me:$LINENO: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then
@@ -4574,7 +4761,8 @@
 done
 
 
-if test "${ac_cv_header_minix_config_h+set}" = set; then
+
+  if test "${ac_cv_header_minix_config_h+set}" = set; then
   { echo "$as_me:$LINENO: checking for minix/config.h" >&5
 echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_minix_config_h+set}" = set; then
@@ -4706,7 +4894,7 @@
 fi
 
 
-if test "$MINIX" = yes; then
+  if test "$MINIX" = yes; then
 
 cat >>confdefs.h <<\_ACEOF
 #define _POSIX_SOURCE 1
@@ -4722,15 +4910,7 @@
 #define _MINIX 1
 _ACEOF
 
-fi
-
-
-
-
-
-
-
-
+  fi
 
 
 
@@ -4791,52 +4971,20 @@
 _ACEOF
 
   cat >>confdefs.h <<\_ACEOF
-#define _POSIX_PTHREAD_SEMANTICS 1
+#define _ALL_SOURCE 1
 _ACEOF
 
   cat >>confdefs.h <<\_ACEOF
-#define _TANDEM_SOURCE 1
+#define _GNU_SOURCE 1
 _ACEOF
 
+  cat >>confdefs.h <<\_ACEOF
+#define _POSIX_PTHREAD_SEMANTICS 1
+_ACEOF
 
-
-
-
-
-       # Check whether --enable-threads was given.
-if test "${enable_threads+set}" = set; then
-  enableval=$enable_threads; gl_use_threads=$enableval
-else
-  case "$host_os" in
-                            osf*) gl_use_threads=no ;;
-       *)    gl_use_threads=yes ;;
-     esac
-
-fi
-
-  if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
-    # For using <pthread.h>:
-    case "$host_os" in
-      osf*)
-        # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
-        # groks <pthread.h>. cc also understands the flag -pthread, but
-        # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
-        # 2. putting a flag into CPPFLAGS that has an effect on the linker
-        # causes the AC_TRY_LINK test below to succeed unexpectedly,
-        # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
-        CPPFLAGS="$CPPFLAGS -D_REENTRANT"
-        ;;
-    esac
-    # Some systems optimize for single-threaded programs by default, and
-    # need special flags to disable these optimizations. For example, the
-    # definition of 'errno' in <errno.h>.
-    case "$host_os" in
-      aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;;
-      solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;;
-    esac
-  fi
-
-
+  cat >>confdefs.h <<\_ACEOF
+#define _TANDEM_SOURCE 1
+_ACEOF
 
 
 
@@ -5445,7 +5593,7 @@
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 5448 "configure"' > conftest.$ac_ext
+  echo '#line 5596 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -7698,11 +7846,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7701: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7849: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7705: \$? = $ac_status" >&5
+   echo "$as_me:7853: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -7966,11 +8114,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7969: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8117: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7973: \$? = $ac_status" >&5
+   echo "$as_me:8121: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8070,11 +8218,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8073: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8221: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8077: \$? = $ac_status" >&5
+   echo "$as_me:8225: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -10367,7 +10515,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10370 "configure"
+#line 10518 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10467,7 +10615,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10470 "configure"
+#line 10618 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12803,11 +12951,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:12806: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12954: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:12810: \$? = $ac_status" >&5
+   echo "$as_me:12958: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -12907,11 +13055,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:12910: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13058: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:12914: \$? = $ac_status" >&5
+   echo "$as_me:13062: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -14468,11 +14616,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14471: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14619: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14475: \$? = $ac_status" >&5
+   echo "$as_me:14623: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -14572,11 +14720,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14575: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14723: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14579: \$? = $ac_status" >&5
+   echo "$as_me:14727: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16759,11 +16907,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16762: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16910: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16766: \$? = $ac_status" >&5
+   echo "$as_me:16914: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -17027,11 +17175,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17030: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17178: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:17034: \$? = $ac_status" >&5
+   echo "$as_me:17182: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -17131,11 +17279,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17134: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17282: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:17138: \$? = $ac_status" >&5
+   echo "$as_me:17286: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -19969,6 +20117,356 @@
 
 fi
 
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then
+  enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+  { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
+echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_largefile_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+	 # IRIX 6.2 and later do not support large files by default,
+	 # so use the C compiler's -n32 option if that helps.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+	 rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+	 CC="$CC -n32"
+	 rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_largefile_CC=' -n32'; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+	 break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; }
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
+
+  { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_file_offset_bits=no; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_file_offset_bits=64; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_file_offset_bits=unknown
+  break
+done
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
+echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -f conftest*
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
+echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_large_files+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_large_files=no; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_large_files=1; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_large_files=unknown
+  break
+done
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
+echo "${ECHO_T}$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -f conftest*
+  fi
+fi
+
 
 { echo "$as_me:$LINENO: checking for working strtod" >&5
 echo $ECHO_N "checking for working strtod... $ECHO_C" >&6; }
@@ -21064,6 +21562,33 @@
 fi
 
 
+# Check whether --enable-extra-opts was given.
+if test "${enable_extra_opts+set}" = set; then
+  enableval=$enable_extra_opts; enable_extra_opts=$enableval
+else
+  enable_extra_opts=no
+fi
+
+
+
+if test "$enable_extra_opts" = "yes"; then
+  USE_PARSE_INI_TRUE=
+  USE_PARSE_INI_FALSE='#'
+else
+  USE_PARSE_INI_TRUE='#'
+  USE_PARSE_INI_FALSE=
+fi
+
+if test "$enable_extra_opts" = "yes" ; then
+	EXTRA_TEST="$EXTRA_TEST test_ini test_opts"
+
+
+cat >>confdefs.h <<\_ACEOF
+#define NP_EXTRA_OPTS 1
+_ACEOF
+
+fi
+
 _SAVEDLIBS="$LIBS"
 _SAVEDCPPFLAGS="$CPPFLAGS"
 
@@ -21137,7 +21662,7 @@
 
 fi
 
-if test "$ac_cv_lib_crypt_main" = "yes"; then
+if test "$ac_cv_lib_crypt_main" = "yes" -a "x$PGSQL" != "xno"; then
   if test -n "$PGSQL"; then
     LDFLAGS="$LDFLAGS -L$PGSQL/lib"
     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
@@ -22931,6 +23456,148 @@
 fi
 
 
+{ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_dl_dlopen=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
+if test $ac_cv_lib_dl_dlopen = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBDL 1
+_ACEOF
+
+  LIBS="-ldl $LIBS"
+
+fi
+
+
+{ echo "$as_me:$LINENO: checking for shl_load in -ldl" >&5
+echo $ECHO_N "checking for shl_load in -ldl... $ECHO_C" >&6; }
+if test "${ac_cv_lib_dl_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_dl_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_dl_shl_load=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_shl_load" >&6; }
+if test $ac_cv_lib_dl_shl_load = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBDL 1
+_ACEOF
+
+  LIBS="-ldl $LIBS"
+
+fi
+
+
 if ! test x"$with_openssl" = x"no"; then
 		if ! test -d "$with_openssl"; then
 		for d in $OPENSSL_DIRS; do
@@ -24410,37 +25077,35 @@
 _ACEOF
 
 
-
-{ echo "$as_me:$LINENO: checking for va_copy" >&5
-echo $ECHO_N "checking for va_copy... $ECHO_C" >&6; }
-if test "${ac_cv_HAVE_VA_COPY+set}" = set; then
+{ echo "$as_me:$LINENO: checking for mbstate_t" >&5
+echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6; }
+if test "${ac_cv_type_mbstate_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-
-cat >conftest.$ac_ext <<_ACEOF
+  cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <stdarg.h>
-va_list ap1,ap2;
+$ac_includes_default
+#	    include <wchar.h>
 int
 main ()
 {
-va_copy(ap1,ap2);
+mbstate_t x; return sizeof x;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -24449,28 +25114,93 @@
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_HAVE_VA_COPY=yes
+       } && test -s conftest.$ac_objext; then
+  ac_cv_type_mbstate_t=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_HAVE_VA_COPY=no
+	ac_cv_type_mbstate_t=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_HAVE_VA_COPY" >&5
-echo "${ECHO_T}$ac_cv_HAVE_VA_COPY" >&6; }
-if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
+{ echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5
+echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6; }
+   if test $ac_cv_type_mbstate_t = yes; then
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_VA_COPY 1
+#define HAVE_MBSTATE_T 1
 _ACEOF
 
-else
+   else
+
+cat >>confdefs.h <<\_ACEOF
+#define mbstate_t int
+_ACEOF
+
+   fi
+
+{ echo "$as_me:$LINENO: checking for va_copy" >&5
+echo $ECHO_N "checking for va_copy... $ECHO_C" >&6; }
+if test "${ac_cv_HAVE_VA_COPY+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+va_list ap1,ap2;
+int
+main ()
+{
+va_copy(ap1,ap2);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_HAVE_VA_COPY=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_HAVE_VA_COPY=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_HAVE_VA_COPY" >&5
+echo "${ECHO_T}$ac_cv_HAVE_VA_COPY" >&6; }
+if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_VA_COPY 1
+_ACEOF
+
+else
     { echo "$as_me:$LINENO: checking for __va_copy" >&5
 echo $ECHO_N "checking for __va_copy... $ECHO_C" >&6; }
 if test "${ac_cv_HAVE___VA_COPY+set}" = set; then
@@ -24961,15 +25691,40 @@
 	{ echo "$as_me:$LINENO: result: (command-line) $ac_cv_ps_command" >&5
 echo "${ECHO_T}(command-line) $ac_cv_ps_command" >&6; }
 
-elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \
-	egrep -i "^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND" > /dev/null
-then
-	ac_cv_ps_varlist="&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos"
-	ac_cv_ps_command="/usr/ucb/ps -alxwwn"
-	ac_cv_ps_format="%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"
-	ac_cv_ps_cols=8
-	{ echo "$as_me:$LINENO: result: $ac_cv_ps_command" >&5
-echo "${ECHO_T}$ac_cv_ps_command" >&6; }
+elif test "$ac_cv_uname_s" = "SunOS"; then
+        #
+        # this is a very, very ugly hack, to hardcode the location for plugins
+        #
+        if test "$libexecdir" = '${exec_prefix}/libexec'; then
+                if test "$exec_prefix" = "NONE"; then
+                        if test "$prefix" = "NONE"; then
+                                pst3="$ac_default_prefix/libexec/pst3"
+                        else
+                                pst3="$prefix/libexec/pst3"
+                        fi
+                else
+                        pst3="$exec_prefix/libexec/pst3"
+                fi
+        else
+                pst3="$libexecdir/pst3"
+        fi
+        ac_cv_ps_command="$pst3"
+        ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+        ac_cv_ps_varlist="procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos"
+        ac_cv_ps_cols=9
+        { echo "$as_me:$LINENO: result: using nagios-plugins internal ps command (pst3) for solaris" >&5
+echo "${ECHO_T}using nagios-plugins internal ps command (pst3) for solaris" >&6; }
+	if test `isainfo -b` = 64 ; then
+		PST3CFLAGS="-m64"
+
+		{ echo "$as_me:$LINENO: using 64bit pst3" >&5
+echo "$as_me: using 64bit pst3" >&6;}
+	else
+		{ echo "$as_me:$LINENO: using 32bit pst3" >&5
+echo "$as_me: using 32bit pst3" >&6;}
+	fi
+        EXTRAS_ROOT="$EXTRAS_ROOT pst3"
+
 
 elif ps axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
 	egrep -i "^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND" > /dev/null
@@ -27696,7 +28451,7 @@
 _ACEOF
 
 	;;
-	*sun* | solaris*)
+	*sun* | *solaris*)
 
 cat >>confdefs.h <<\_ACEOF
 #define __sun__ 1
@@ -27733,6 +28488,9 @@
 
 
 
+      GETTEXT_MACRO_VERSION=0.17
+
+
 
 
 # Prepare PATH_SEPARATOR.
@@ -28008,6 +28766,9 @@
         test -n "$localedir" || localedir='${datadir}/locale'
 
 
+    test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+
+
   ac_config_commands="$ac_config_commands po-directories"
 
 
@@ -29021,6 +29782,132 @@
 { echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
 echo "${ECHO_T}$am_cv_func_iconv" >&6; }
   if test "$am_cv_func_iconv" = yes; then
+    { echo "$as_me:$LINENO: checking for working iconv" >&5
+echo $ECHO_N "checking for working iconv... $ECHO_C" >&6; }
+if test "${am_cv_func_iconv_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+            am_save_LIBS="$LIBS"
+      if test $am_cv_lib_iconv = yes; then
+        LIBS="$LIBS $LIBICONV"
+      fi
+      if test "$cross_compiling" = yes; then
+  case "$host_os" in
+           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+           *)            am_cv_func_iconv_works="guessing yes" ;;
+         esac
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+     returns.  */
+  {
+    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+    if (cd_utf8_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_utf8_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          return 1;
+      }
+  }
+#if 0 /* This bug could be worked around by the caller.  */
+  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
+  {
+    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+    if (cd_88591_to_utf8 != (iconv_t)(-1))
+      {
+        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        char buf[50];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_88591_to_utf8,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if ((int)res > 0)
+          return 1;
+      }
+  }
+#endif
+  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+     provided.  */
+  if (/* Try standardized names.  */
+      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+      /* Try IRIX, OSF/1 names.  */
+      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+      /* Try AIX names.  */
+      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+      /* Try HP-UX names.  */
+      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+    return 1;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  am_cv_func_iconv_works=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+      LIBS="$am_save_LIBS"
+
+fi
+{ echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5
+echo "${ECHO_T}$am_cv_func_iconv_works" >&6; }
+    case "$am_cv_func_iconv_works" in
+      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+      *)   am_func_iconv=yes ;;
+    esac
+  else
+    am_func_iconv=no am_cv_lib_iconv=no
+  fi
+  if test "$am_func_iconv" = yes; then
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_ICONV 1
@@ -29722,6 +30609,8 @@
 
 if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then
 	if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
+		{ echo "$as_me:$LINENO: See http://nagiosplugins.org/faq/compile/configure_appears_to_hang if this next part takes a long time" >&5
+echo "$as_me: See http://nagiosplugins.org/faq/compile/configure_appears_to_hang if this next part takes a long time" >&6;}
 		{ echo "$as_me:$LINENO: checking for redhat spopen problem" >&5
 echo $ECHO_N "checking for redhat spopen problem... $ECHO_C" >&6; }
 		( cd config_test && make && make test ) > /dev/null 2>&1
@@ -29905,6 +30794,10 @@
 # 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=\${LIBOBJDIR}alloca.$ac_objext
 
 cat >>confdefs.h <<\_ACEOF
@@ -30266,6 +31159,150 @@
 
 
 
+{ echo "$as_me:$LINENO: checking for inline" >&5
+echo $ECHO_N "checking for inline... $ECHO_C" >&6; }
+if test "${ac_cv_c_inline+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_inline=$ac_kw
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+echo "${ECHO_T}$ac_cv_c_inline" >&6; }
+
+
+case $ac_cv_c_inline in
+  inline | yes) ;;
+  *)
+    case $ac_cv_c_inline in
+      no) ac_val=;;
+      *) ac_val=$ac_cv_c_inline;;
+    esac
+    cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+    ;;
+esac
+
+{ echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5
+echo $ECHO_N "checking for C/C++ restrict keyword... $ECHO_C" >&6; }
+if test "${ac_cv_c_restrict+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_c_restrict=no
+   # The order here caters to the fact that C++ does not require restrict.
+   for ac_kw in __restrict __restrict__ _Restrict restrict; do
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+typedef int * int_ptr;
+	int foo (int_ptr $ac_kw ip) {
+	return ip[0];
+       }
+int
+main ()
+{
+int s[1];
+	int * $ac_kw t = s;
+	t[0] = 0;
+	return foo(t)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_restrict=$ac_kw
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     test "$ac_cv_c_restrict" != no && break
+   done
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5
+echo "${ECHO_T}$ac_cv_c_restrict" >&6; }
+
+
+ case $ac_cv_c_restrict in
+   restrict) ;;
+   no) cat >>confdefs.h <<\_ACEOF
+#define restrict
+_ACEOF
+ ;;
+   *)  cat >>confdefs.h <<_ACEOF
+#define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
+
 
     { echo "$as_me:$LINENO: checking whether system is Windows or MSDOS" >&5
 echo $ECHO_N "checking whether system is Windows or MSDOS... $ECHO_C" >&6; }
@@ -30739,9 +31776,81 @@
 fi
 
 
+  XGETTEXT_EXTRA_OPTIONS=
+
+
+
+  { echo "$as_me:$LINENO: checking whether the preprocessor supports include_next" >&5
+echo $ECHO_N "checking whether the preprocessor supports include_next... $ECHO_C" >&6; }
+if test "${gl_cv_have_include_next+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  rm -rf conftestd1 conftestd2
+     mkdir conftestd1 conftestd2
+     cat <<EOF > conftestd1/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+     cat <<EOF > conftestd2/conftest.h
+#ifndef DEFINED_IN_CONFTESTD1
+#error "include_next test doesn't work"
+#endif
+#define DEFINED_IN_CONFTESTD2
+EOF
+     save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -Iconftestd1 -Iconftestd2"
+     cat >conftest.$ac_ext <<_ACEOF
+#include <conftest.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_have_include_next=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_have_include_next=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     CPPFLAGS="$save_CPPFLAGS"
+     rm -rf conftestd1 conftestd2
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_have_include_next" >&5
+echo "${ECHO_T}$gl_cv_have_include_next" >&6; }
+  if test $gl_cv_have_include_next = yes; then
+
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_INCLUDE_NEXT 1
+_ACEOF
 
 
+    INCLUDE_NEXT=include_next
+  else
+    INCLUDE_NEXT=include
+  fi
 
 
 
@@ -30751,37 +31860,92 @@
 
 
 
+  GNULIB_CEILF=0;
+  GNULIB_CEILL=0;
+  GNULIB_FLOORF=0;
+  GNULIB_FLOORL=0;
+  GNULIB_FREXP=0;
+  GNULIB_FREXPL=0;
+  GNULIB_ISFINITE=0;
+  GNULIB_LDEXPL=0;
+  GNULIB_MATHL=0;
+  GNULIB_ROUND=0;
+  GNULIB_ROUNDF=0;
+  GNULIB_ROUNDL=0;
+  GNULIB_SIGNBIT=0;
+  GNULIB_TRUNC=0;
+  GNULIB_TRUNCF=0;
+  GNULIB_TRUNCL=0;
+    HAVE_DECL_ACOSL=1;
+  HAVE_DECL_ASINL=1;
+  HAVE_DECL_ATANL=1;
+  HAVE_DECL_COSL=1;
+  HAVE_DECL_EXPL=1;
+  HAVE_DECL_FREXPL=1;
+  HAVE_DECL_LDEXPL=1;
+  HAVE_DECL_LOGL=1;
+  HAVE_DECL_SINL=1;
+  HAVE_DECL_SQRTL=1;
+  HAVE_DECL_TANL=1;
+  HAVE_DECL_TRUNC=1;
+  HAVE_DECL_TRUNCF=1;
+  HAVE_DECL_TRUNCL=1;
+  REPLACE_CEILF=0;
+  REPLACE_CEILL=0;
+  REPLACE_FLOORF=0;
+  REPLACE_FLOORL=0;
+  REPLACE_FREXP=0;
+  REPLACE_FREXPL=0;
+  REPLACE_ISFINITE=0;
+  REPLACE_LDEXPL=0;
+  REPLACE_ROUND=0;
+  REPLACE_ROUNDF=0;
+  REPLACE_ROUNDL=0;
+  REPLACE_SIGNBIT=0;
+  REPLACE_SIGNBIT_USING_GCC=0;
 
 
 
 
 
-{ echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5
-echo $ECHO_N "checking for C/C++ restrict keyword... $ECHO_C" >&6; }
-if test "${ac_cv_c_restrict+set}" = set; then
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking whether <sys/socket.h> is self-contained" >&5
+echo $ECHO_N "checking whether <sys/socket.h> is self-contained... $ECHO_C" >&6; }
+if test "${gl_cv_header_sys_socket_h_selfcontained+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_c_restrict=no
-   # Try the official restrict keyword, then gcc's __restrict, and
-   # the less common variants.
-   for ac_kw in restrict __restrict __restrict__ _Restrict; do
-     cat >conftest.$ac_ext <<_ACEOF
+
+      cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-typedef int * int_ptr;
-        int foo (int_ptr $ac_kw ip) {
-        return ip[0];
-       }
+#include <sys/socket.h>
 int
 main ()
 {
-int s[1];
-        int * $ac_kw t = s;
-        t[0] = 0;
-        return foo(t)
+
   ;
   return 0;
 }
@@ -30803,51 +31967,79 @@
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_c_restrict=$ac_kw
+  gl_cv_header_sys_socket_h_selfcontained=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-
+	gl_cv_header_sys_socket_h_selfcontained=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     test "$ac_cv_c_restrict" != no && break
-   done
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5
-echo "${ECHO_T}$ac_cv_c_restrict" >&6; }
- case $ac_cv_c_restrict in
-   restrict) ;;
-   no)
-cat >>confdefs.h <<\_ACEOF
-#define restrict
-_ACEOF
- ;;
-   *)  cat >>confdefs.h <<_ACEOF
-#define restrict $ac_cv_c_restrict
-_ACEOF
- ;;
- esac
+{ echo "$as_me:$LINENO: result: $gl_cv_header_sys_socket_h_selfcontained" >&5
+echo "${ECHO_T}$gl_cv_header_sys_socket_h_selfcontained" >&6; }
+  if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
+    SYS_SOCKET_H=''
+  else
+    SYS_SOCKET_H='sys/socket.h'
 
 
 
 
+  :
 
 
 
 
 
-  :
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_socket_h='<'sys/socket.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <sys/socket.h>" >&5
+echo $ECHO_N "checking absolute name of <sys/socket.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_sys_socket_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	  if test $ac_cv_header_sys_socket_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/socket.h>
+
+_ACEOF
+	    	    	    	    gl_cv_next_sys_socket_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/sys/socket.h#{
+		 s#.*"\(.*/sys/socket.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_sys_socket_h='<'sys/socket.h'>'
+	  fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_sys_socket_h" >&5
+echo "${ECHO_T}$gl_cv_next_sys_socket_h" >&6; }
+     fi
+     NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h
 
 
 
-  if test $ac_cv_header_sys_socket_h = yes; then
-    SYS_SOCKET_H=''
-  else
+    if test $ac_cv_header_sys_socket_h = yes; then
+      HAVE_SYS_SOCKET_H=1
+      HAVE_WINSOCK2_H=0
+      HAVE_WS2TCPIP_H=0
+    else
+      HAVE_SYS_SOCKET_H=0
 
 
 for ac_header in winsock2.h ws2tcpip.h
@@ -30989,7 +32181,20 @@
 
 done
 
-    SYS_SOCKET_H='sys/socket.h'
+      if test $ac_cv_header_winsock2_h = yes; then
+        HAVE_WINSOCK2_H=1
+      else
+        HAVE_WINSOCK2_H=0
+      fi
+      if test $ac_cv_header_ws2tcpip_h = yes; then
+        HAVE_WS2TCPIP_H=1
+      else
+        HAVE_WS2TCPIP_H=0
+      fi
+    fi
+
+
+
   fi
 
 
@@ -31002,6 +32207,12 @@
 
 
 
+
+
+
+
+
+
   :
 
 
@@ -31145,81 +32356,6 @@
 
   fi
 
-{ echo "$as_me:$LINENO: checking for inline" >&5
-echo $ECHO_N "checking for inline... $ECHO_C" >&6; }
-if test "${ac_cv_c_inline+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_c_inline=$ac_kw
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
-echo "${ECHO_T}$ac_cv_c_inline" >&6; }
-
-
-case $ac_cv_c_inline in
-  inline | yes) ;;
-  *)
-    case $ac_cv_c_inline in
-      no) ac_val=;;
-      *) ac_val=$ac_cv_c_inline;;
-    esac
-    cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
-    ;;
-esac
-
-
-
-
-
-
-
 
   if test -z "$GETOPT_H"; then
 
@@ -31724,9 +32860,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking for mbstate_t" >&5
-echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6; }
-if test "${ac_cv_type_mbstate_t+set}" = set; then
+
+  { echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
+echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6; }
+if test "${am_cv_langinfo_codeset+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -31735,24 +32872,23 @@
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
-#	    include <wchar.h>
+#include <langinfo.h>
 int
 main ()
 {
-mbstate_t x; return sizeof x;
+char* cs = nl_langinfo(CODESET); return !cs;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -31761,36 +32897,34 @@
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_mbstate_t=yes
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  am_cv_langinfo_codeset=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_type_mbstate_t=no
+	am_cv_langinfo_codeset=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5
-echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6; }
-   if test $ac_cv_type_mbstate_t = yes; then
+{ echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5
+echo "${ECHO_T}$am_cv_langinfo_codeset" >&6; }
+  if test $am_cv_langinfo_codeset = yes; then
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_MBSTATE_T 1
+#define HAVE_LANGINFO_CODESET 1
 _ACEOF
 
-   else
-
-cat >>confdefs.h <<\_ACEOF
-#define mbstate_t int
-_ACEOF
+  fi
 
-   fi
 
-    { echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5
-echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6; }
-if test "${gl_cv_func_mbrtowc+set}" = set; then
+      { echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5
+echo $ECHO_N "checking whether getc_unlocked is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -31799,27 +32933,26 @@
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <wchar.h>
+$ac_includes_default
 int
 main ()
 {
-wchar_t wc;
-              char const s[] = "";
-              size_t n = 1;
-              mbstate_t state;
-              return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));
+#ifndef getc_unlocked
+  (void) getc_unlocked;
+#endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -31828,36 +32961,40 @@
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  gl_cv_func_mbrtowc=yes
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_getc_unlocked=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	gl_cv_func_mbrtowc=no
+	ac_cv_have_decl_getc_unlocked=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc" >&5
-echo "${ECHO_T}$gl_cv_func_mbrtowc" >&6; }
-  if test $gl_cv_func_mbrtowc = yes; then
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5
+echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6; }
+if test $ac_cv_have_decl_getc_unlocked = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MBRTOWC 1
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED 0
 _ACEOF
 
-  fi
 
+fi
 
 
 
 
-  { echo "$as_me:$LINENO: checking whether <limits.h> defines MIN and MAX" >&5
-echo $ECHO_N "checking whether <limits.h> defines MIN and MAX... $ECHO_C" >&6; }
-if test "${gl_cv_minmax_in_limits_h+set}" = set; then
+    { echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5
+echo $ECHO_N "checking whether we are using the GNU C Library 2.1 or newer... $ECHO_C" >&6; }
+if test "${ac_cv_gnu_library_2_1+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -31866,74 +33003,52 @@
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <limits.h>
-int x = MIN (42, 17);
-int
-main ()
-{
 
-  ;
-  return 0;
-}
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_minmax_in_limits_h=yes
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky GNU user" >/dev/null 2>&1; then
+  ac_cv_gnu_library_2_1=yes
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	gl_cv_minmax_in_limits_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_gnu_library_2_1=no
 fi
-{ echo "$as_me:$LINENO: result: $gl_cv_minmax_in_limits_h" >&5
-echo "${ECHO_T}$gl_cv_minmax_in_limits_h" >&6; }
-  if test $gl_cv_minmax_in_limits_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MINMAX_IN_LIMITS_H 1
-_ACEOF
+rm -f conftest*
 
-  fi
 
 
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5
+echo "${ECHO_T}$ac_cv_gnu_library_2_1" >&6; }
 
+    GLIBC21="$ac_cv_gnu_library_2_1"
 
 
 
-  { echo "$as_me:$LINENO: checking whether <sys/param.h> defines MIN and MAX" >&5
-echo $ECHO_N "checking whether <sys/param.h> defines MIN and MAX... $ECHO_C" >&6; }
-if test "${gl_cv_minmax_in_sys_param_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking whether malloc, realloc, calloc are POSIX compliant" >&5
+echo $ECHO_N "checking whether malloc, realloc, calloc are POSIX compliant... $ECHO_C" >&6; }
+if test "${gl_cv_func_malloc_posix+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+
+                        cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <sys/param.h>
-int x = MIN (42, 17);
+
 int
 main ()
 {
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+         choke me
+         #endif
 
   ;
   return 0;
@@ -31956,29 +33071,40 @@
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  gl_cv_minmax_in_sys_param_h=yes
+  gl_cv_func_malloc_posix=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	gl_cv_minmax_in_sys_param_h=no
+	gl_cv_func_malloc_posix=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $gl_cv_minmax_in_sys_param_h" >&5
-echo "${ECHO_T}$gl_cv_minmax_in_sys_param_h" >&6; }
-  if test $gl_cv_minmax_in_sys_param_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MINMAX_IN_SYS_PARAM_H 1
-_ACEOF
-
-  fi
-
 
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_func_malloc_posix" >&5
+echo "${ECHO_T}$gl_cv_func_malloc_posix" >&6; }
 
 
+  GNULIB_MALLOC_POSIX=0;
+  GNULIB_REALLOC_POSIX=0;
+  GNULIB_CALLOC_POSIX=0;
+  GNULIB_GETSUBOPT=0;
+  GNULIB_MKDTEMP=0;
+  GNULIB_MKSTEMP=0;
+  GNULIB_PUTENV=0;
+  GNULIB_SETENV=0;
+  GNULIB_UNSETENV=0;
+    HAVE_CALLOC_POSIX=1;
+  HAVE_GETSUBOPT=1;
+  HAVE_MALLOC_POSIX=1;
+  HAVE_MKDTEMP=1;
+  HAVE_REALLOC_POSIX=1;
+  HAVE_SETENV=1;
+  HAVE_UNSETENV=1;
+  REPLACE_MKSTEMP=0;
+  REPLACE_PUTENV=0;
+  VOID_UNSETENV=0;
 
 
 
@@ -31992,65 +33118,11 @@
 
 
 
-  { echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
-echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6; }
-if test "${am_cv_langinfo_codeset+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <langinfo.h>
-int
-main ()
-{
-char* cs = nl_langinfo(CODESET); return !cs;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  am_cv_langinfo_codeset=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-	am_cv_langinfo_codeset=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 
-fi
-{ echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5
-echo "${ECHO_T}$am_cv_langinfo_codeset" >&6; }
-  if test $am_cv_langinfo_codeset = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LANGINFO_CODESET 1
-_ACEOF
 
-  fi
 
 
 
@@ -32239,6 +33311,50 @@
   fi
 
 
+  GNULIB_FPRINTF_POSIX=0;
+  GNULIB_PRINTF_POSIX=0;
+  GNULIB_SNPRINTF=0;
+  GNULIB_SPRINTF_POSIX=0;
+  GNULIB_VFPRINTF_POSIX=0;
+  GNULIB_VPRINTF_POSIX=0;
+  GNULIB_VSNPRINTF=0;
+  GNULIB_VSPRINTF_POSIX=0;
+  GNULIB_VASPRINTF=0;
+  GNULIB_FOPEN=0;
+  GNULIB_FREOPEN=0;
+  GNULIB_FSEEK=0;
+  GNULIB_FSEEKO=0;
+  GNULIB_FTELL=0;
+  GNULIB_FTELLO=0;
+  GNULIB_FFLUSH=0;
+  GNULIB_GETDELIM=0;
+  GNULIB_GETLINE=0;
+    REPLACE_FPRINTF=0;
+  REPLACE_VFPRINTF=0;
+  REPLACE_PRINTF=0;
+  REPLACE_VPRINTF=0;
+  REPLACE_SNPRINTF=0;
+  HAVE_DECL_SNPRINTF=1;
+  REPLACE_VSNPRINTF=0;
+  HAVE_DECL_VSNPRINTF=1;
+  REPLACE_SPRINTF=0;
+  REPLACE_VSPRINTF=0;
+  HAVE_VASPRINTF=1;
+  REPLACE_VASPRINTF=0;
+  REPLACE_FOPEN=0;
+  REPLACE_FREOPEN=0;
+  HAVE_FSEEKO=1;
+  REPLACE_FSEEKO=0;
+  REPLACE_FSEEK=0;
+  HAVE_FTELLO=1;
+  REPLACE_FTELLO=0;
+  REPLACE_FTELL=0;
+  REPLACE_FFLUSH=0;
+  HAVE_DECL_GETDELIM=1;
+  HAVE_DECL_GETLINE=1;
+  REPLACE_GETLINE=0;
+
+
       { echo "$as_me:$LINENO: checking whether snprintf is declared" >&5
 echo $ECHO_N "checking whether snprintf is declared... $ECHO_C" >&6; }
 if test "${ac_cv_have_decl_snprintf+set}" = set; then
@@ -32500,26 +33616,40 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+
+  /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-long long int ll = 9223372036854775807ll;
-	    long long int nll = -9223372036854775807LL;
-	    typedef int a[((-9223372036854775807LL < 0
-			    && 0 < 9223372036854775807ll)
-			   ? 1 : -1)];
-	    int i = 63;
+/* For now, do not test the preprocessor; as of 2007 there are too many
+	 implementations with broken preprocessors.  Perhaps this can
+	 be revisited in 2012.  In the meantime, code should not expect
+	 #if to work with literals wider than 32 bits.  */
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+		     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+		     ? 1 : -1)];
+      int i = 63;
 int
 main ()
 {
-long long int llmax = 9223372036854775807ll;
-	    return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-		    | (llmax / ll) | (llmax % ll));
+/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+	      | (llmax / ll) | (llmax % ll)
+	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+	      | (ullmax / ull) | (ullmax % ull));
   ;
   return 0;
 }
+
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (ac_try="$ac_link"
@@ -32539,7 +33669,7 @@
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext &&
        $as_test_x conftest$ac_exeext; then
-  		        if test "$cross_compiling" = yes; then
+  			if test "$cross_compiling" = yes; then
   ac_cv_type_long_long_int=yes
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -32632,24 +33762,40 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+
+  /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-unsigned long long int ull = 18446744073709551615ULL;
-	    typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1
-			   ? 1 : -1)];
-	   int i = 63;
+/* For now, do not test the preprocessor; as of 2007 there are too many
+	 implementations with broken preprocessors.  Perhaps this can
+	 be revisited in 2012.  In the meantime, code should not expect
+	 #if to work with literals wider than 32 bits.  */
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+		     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+		     ? 1 : -1)];
+      int i = 63;
 int
 main ()
 {
-unsigned long long int ullmax = 18446744073709551615ull;
-	    return (ull << 63 | ull >> 63 | ull << i | ull >> i
-		    | ullmax / ull | ullmax % ull);
+/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+	      | (llmax / ll) | (llmax % ll)
+	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+	      | (ullmax / ull) | (ullmax % ull));
   ;
   return 0;
 }
+
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (ac_try="$ac_link"
@@ -32697,6 +33843,77 @@
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  GNULIB_MEMMEM=0;
+  GNULIB_MEMPCPY=0;
+  GNULIB_MEMRCHR=0;
+  GNULIB_STPCPY=0;
+  GNULIB_STPNCPY=0;
+  GNULIB_STRCHRNUL=0;
+  GNULIB_STRDUP=0;
+  GNULIB_STRNDUP=0;
+  GNULIB_STRNLEN=0;
+  GNULIB_STRPBRK=0;
+  GNULIB_STRSEP=0;
+  GNULIB_STRSTR=0;
+  GNULIB_STRCASESTR=0;
+  GNULIB_STRTOK_R=0;
+  GNULIB_MBSLEN=0;
+  GNULIB_MBSNLEN=0;
+  GNULIB_MBSCHR=0;
+  GNULIB_MBSRCHR=0;
+  GNULIB_MBSSTR=0;
+  GNULIB_MBSCASECMP=0;
+  GNULIB_MBSNCASECMP=0;
+  GNULIB_MBSPCASECMP=0;
+  GNULIB_MBSCASESTR=0;
+  GNULIB_MBSCSPN=0;
+  GNULIB_MBSPBRK=0;
+  GNULIB_MBSSPN=0;
+  GNULIB_MBSSEP=0;
+  GNULIB_MBSTOK_R=0;
+  GNULIB_STRERROR=0;
+  GNULIB_STRSIGNAL=0;
+    HAVE_DECL_MEMMEM=1;
+  HAVE_MEMPCPY=1;
+  HAVE_DECL_MEMRCHR=1;
+  HAVE_STPCPY=1;
+  HAVE_STPNCPY=1;
+  HAVE_STRCHRNUL=1;
+  HAVE_DECL_STRDUP=1;
+  HAVE_STRNDUP=1;
+  HAVE_DECL_STRNDUP=1;
+  HAVE_DECL_STRNLEN=1;
+  HAVE_STRPBRK=1;
+  HAVE_STRSEP=1;
+  HAVE_STRCASESTR=1;
+  HAVE_DECL_STRTOK_R=1;
+  HAVE_DECL_STRERROR=1;
+  HAVE_DECL_STRSIGNAL=1;
+  REPLACE_STRERROR=0;
+  REPLACE_STRSIGNAL=0;
+  REPLACE_MEMMEM=0;
+  REPLACE_STRCASESTR=0;
+  REPLACE_STRSTR=0;
+
+
       { echo "$as_me:$LINENO: checking whether strdup is declared" >&5
 echo $ECHO_N "checking whether strdup is declared... $ECHO_C" >&6; }
 if test "${ac_cv_have_decl_strdup+set}" = set; then
@@ -32767,6 +33984,242 @@
 
 
 
+
+  { echo "$as_me:$LINENO: checking for working strerror function" >&5
+echo $ECHO_N "checking for working strerror function... $ECHO_C" >&6; }
+if test "${gl_cv_func_working_strerror+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+         cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+int
+main ()
+{
+return !*strerror (-2);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_func_working_strerror=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_func_working_strerror=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+int
+main ()
+{
+return !*strerror (-2);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  gl_cv_func_working_strerror=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gl_cv_func_working_strerror=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_func_working_strerror" >&5
+echo "${ECHO_T}$gl_cv_func_working_strerror" >&6; }
+  if test $gl_cv_func_working_strerror = no ; then
+    REPLACE_STRERROR=1
+
+  { echo "$as_me:$LINENO: checking whether strerror is declared" >&5
+echo $ECHO_N "checking whether strerror is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_strerror+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef strerror
+  (void) strerror;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_strerror=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_strerror=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror" >&5
+echo "${ECHO_T}$ac_cv_have_decl_strerror" >&6; }
+if test $ac_cv_have_decl_strerror = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRERROR 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRERROR 0
+_ACEOF
+
+
+fi
+
+
+
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+  :
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_string_h='<'string.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <string.h>" >&5
+echo $ECHO_N "checking absolute name of <string.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_string_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	  if test $ac_cv_header_string_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+	    	    	    	    gl_cv_next_string_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/string.h#{
+		 s#.*"\(.*/string.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_string_h='<'string.h'>'
+	  fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_string_h" >&5
+echo "${ECHO_T}$gl_cv_next_string_h" >&6; }
+     fi
+     NEXT_STRING_H=$gl_cv_next_string_h
+
+
+
+
+
       { echo "$as_me:$LINENO: checking whether strndup is declared" >&5
 echo $ECHO_N "checking whether strndup is declared... $ECHO_C" >&6; }
 if test "${ac_cv_have_decl_strndup+set}" = set; then
@@ -32907,6 +34360,33 @@
 
 
 
+  GNULIB_CHOWN=0;
+  GNULIB_DUP2=0;
+  GNULIB_FCHDIR=0;
+  GNULIB_FTRUNCATE=0;
+  GNULIB_GETCWD=0;
+  GNULIB_GETLOGIN_R=0;
+  GNULIB_GETPAGESIZE=0;
+  GNULIB_LCHOWN=0;
+  GNULIB_LSEEK=0;
+  GNULIB_READLINK=0;
+  GNULIB_SLEEP=0;
+    HAVE_DUP2=1;
+  HAVE_FTRUNCATE=1;
+  HAVE_GETPAGESIZE=1;
+  HAVE_READLINK=1;
+  HAVE_SLEEP=1;
+  HAVE_DECL_GETLOGIN_R=1;
+  HAVE_OS_H=0;
+  HAVE_SYS_PARAM_H=0;
+  REPLACE_CHOWN=0;
+  REPLACE_FCHDIR=0;
+  REPLACE_GETCWD=0;
+  REPLACE_GETPAGESIZE=0;
+  REPLACE_LCHOWN=0;
+  REPLACE_LSEEK=0;
+
+
 
 
 
@@ -33331,71 +34811,10 @@
   fi
 
 
-  { echo "$as_me:$LINENO: checking for long double" >&5
-echo $ECHO_N "checking for long double... $ECHO_C" >&6; }
-if test "${gt_cv_c_long_double+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$GCC" = yes; then
-       gt_cv_c_long_double=yes
-     else
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-         /* The Stardent Vistra knows sizeof(long double), but does not support it.  */
-         long double foo = 0.0;
-         /* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
-         int array [2*(sizeof(long double) >= sizeof(double)) - 1];
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_c_long_double=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-	gt_cv_c_long_double=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-fi
-{ echo "$as_me:$LINENO: result: $gt_cv_c_long_double" >&5
-echo "${ECHO_T}$gt_cv_c_long_double" >&6; }
-  if test $gt_cv_c_long_double = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LONG_DOUBLE 1
-_ACEOF
 
-  fi
 
 
   { echo "$as_me:$LINENO: checking for wchar_t" >&5
@@ -33643,17 +35062,6 @@
 
 
 
-  ac_cv_type_long_long=$ac_cv_type_long_long_int
-  if test $ac_cv_type_long_long = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LONG_LONG 1
-_ACEOF
-
-  fi
-
-
-
 
   { echo "$as_me:$LINENO: checking for intmax_t" >&5
 echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6; }
@@ -33721,7 +35129,7 @@
 
   else
 
-    test $ac_cv_type_long_long = yes \
+    test $ac_cv_type_long_long_int = yes \
       && ac_type='long long' \
       || ac_type='long'
 
@@ -33802,18 +35210,10 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
+  GNULIB_WCWIDTH=0;
+    HAVE_DECL_WCWIDTH=1;
+  REPLACE_WCWIDTH=0;
+  WCHAR_H=
 
 
 
@@ -33842,6 +35242,9 @@
   gl_cond_libtool=false
   gl_libdeps=
   gl_ltlibdeps=
+
+
+
   gl_source_base='gl'
 
 
@@ -33900,12 +35303,6 @@
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA_H 1
-_ACEOF
-
-
-
 
   :
 
@@ -33920,19 +35317,52 @@
   fi
 
 
+  { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
+if test -z "$MKDIR_P"; then
+  if test "${ac_cv_path_mkdir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in mkdir gmkdir; do
+	 for ac_exec_ext in '' $ac_executable_extensions; do
+	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir (GNU coreutils) '* | \
+	     'mkdir (coreutils) '* | \
+	     'mkdir (fileutils) '4.1*)
+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       break 3;;
+	   esac
+	 done
+       done
+done
+IFS=$as_save_IFS
 
-  gl_LIBOBJS="$gl_LIBOBJS c-strtod.$ac_objext"
+fi
 
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    test -d ./--version && rmdir ./--version
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+echo "${ECHO_T}$MKDIR_P" >&6; }
 
-  :
 
 
-  gl_LIBOBJS="$gl_LIBOBJS cloexec.$ac_objext"
 
 
-  gl_LIBOBJS="$gl_LIBOBJS basename.$ac_objext"
-  gl_LIBOBJS="$gl_LIBOBJS dirname.$ac_objext"
-  gl_LIBOBJS="$gl_LIBOBJS stripslash.$ac_objext"
 
 
 
@@ -33940,14 +35370,69 @@
 
 
 
-  { echo "$as_me:$LINENO: checking whether // is distinct from /" >&5
-echo $ECHO_N "checking whether // is distinct from /... $ECHO_C" >&6; }
-if test "${gl_cv_double_slash_root+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-   if test x"$cross_compiling" = xyes ; then
-	# When cross-compiling, there is no way to tell whether // is special
-	# short of a list of hosts.  However, the only known hosts to date
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS c-strtod.$ac_objext"
+
+
+
+  :
+
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS cloexec.$ac_objext"
+
+
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS basename.$ac_objext"
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS dirname.$ac_objext"
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS stripslash.$ac_objext"
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking whether // is distinct from /" >&5
+echo $ECHO_N "checking whether // is distinct from /... $ECHO_C" >&6; }
+if test "${gl_cv_double_slash_root+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+   if test x"$cross_compiling" = xyes ; then
+	# When cross-compiling, there is no way to tell whether // is special
+	# short of a list of hosts.  However, the only known hosts to date
 	# that have a distinct // are Apollo DomainOS (too old to port to),
 	# Cygwin, and z/OS.  If anyone knows of another system for which // has
 	# special semantics and is distinct from /, please report it to
@@ -33980,7 +35465,17 @@
   fi
 
 
-  { echo "$as_me:$LINENO: checking for error_at_line" >&5
+
+
+
+
+
+
+
+
+
+
+{ echo "$as_me:$LINENO: checking for error_at_line" >&5
 echo $ECHO_N "checking for error_at_line... $ECHO_C" >&6; }
 if test "${ac_cv_lib_error_at_line+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -34032,7 +35527,15 @@
 { echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5
 echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6; }
 if test $ac_cv_lib_error_at_line = no; then
+
+
+
+
+
+
+
   gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext"
+
 fi
 
 
@@ -34041,16 +35544,48 @@
 
 
 
+
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format"
+
+
+
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format"
+
+
+
+
+
+
+
+
+
   gl_LIBOBJS="$gl_LIBOBJS exitfail.$ac_objext"
 
+
     :
 
 
+
+
+
+
+
+
+
   gl_LIBOBJS="$gl_LIBOBJS open-safer.$ac_objext"
+
+
+
+
+
+
+
+
   gl_LIBOBJS="$gl_LIBOBJS creat-safer.$ac_objext"
 
 
 
+
 cat >>confdefs.h <<\_ACEOF
 #define GNULIB_FCNTL_SAFER 1
 _ACEOF
@@ -34058,6 +35593,276 @@
 
 
 
+
+  FLOAT_H=
+  case "$host_os" in
+    beos* | openbsd*)
+      FLOAT_H=float.h
+
+
+
+  :
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_float_h='<'float.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <float.h>" >&5
+echo $ECHO_N "checking absolute name of <float.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_float_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	  if test $ac_cv_header_float_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <float.h>
+
+_ACEOF
+	    	    	    	    gl_cv_next_float_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/float.h#{
+		 s#.*"\(.*/float.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_float_h='<'float.h'>'
+	  fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_float_h" >&5
+echo "${ECHO_T}$gl_cv_next_float_h" >&6; }
+     fi
+     NEXT_FLOAT_H=$gl_cv_next_float_h
+
+
+
+      ;;
+  esac
+
+
+
+
+
+    { echo "$as_me:$LINENO: checking whether floorf is declared" >&5
+echo $ECHO_N "checking whether floorf is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_floorf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <math.h>
+
+int
+main ()
+{
+#ifndef floorf
+  (void) floorf;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_floorf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_floorf=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_floorf" >&5
+echo "${ECHO_T}$ac_cv_have_decl_floorf" >&6; }
+if test $ac_cv_have_decl_floorf = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FLOORF 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FLOORF 0
+_ACEOF
+
+
+fi
+
+
+  if test "$ac_cv_have_decl_floorf" = yes; then
+
+  if test "${gl_cv_func_floorf_libm+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    gl_cv_func_floorf_libm=?
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+       #ifndef __NO_MATH_INLINES
+       # define __NO_MATH_INLINES 1 /* for glibc */
+       #endif
+       #include <math.h>
+       float x;
+int
+main ()
+{
+x = floorf(x);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  gl_cv_func_floorf_libm=
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+    if test "$gl_cv_func_floorf_libm" = "?"; then
+      save_LIBS="$LIBS"
+      LIBS="$LIBS -lm"
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+         #ifndef __NO_MATH_INLINES
+         # define __NO_MATH_INLINES 1 /* for glibc */
+         #endif
+         #include <math.h>
+         float x;
+int
+main ()
+{
+x = floorf(x);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  gl_cv_func_floorf_libm="-lm"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+      LIBS="$save_LIBS"
+    fi
+
+fi
+
+  FLOORF_LIBM="$gl_cv_func_floorf_libm"
+
+    if test "$FLOORF_LIBM" = "?"; then
+                  REPLACE_FLOORF=1
+    fi
+  else
+    REPLACE_FLOORF=1
+  fi
+  if test $REPLACE_FLOORF = 1; then
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS floorf.$ac_objext"
+
+    FLOORF_LIBM=
+  fi
+
+
+
+
+
+  GNULIB_FLOORF=1
+
+
+
   :
 
 
@@ -34168,6 +35973,11 @@
 statvfs in GNU libc on BeOS operates differently: it only makes a system
 call.
 #endif
+
+#ifdef __osf__
+"Do not use Tru64's statvfs implementation"
+#endif
+
 #include <sys/statvfs.h>
 int
 main ()
@@ -34658,7 +36468,15 @@
 
 
   if test $gl_cv_fs_space = yes; then
-    gl_LIBOBJS="$gl_LIBOBJS fsusage.$ac_objext"
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS fsusage.$ac_objext"
+
 
 
 
@@ -34872,9 +36690,17 @@
   fi
 
 
-  { echo "$as_me:$LINENO: checking how to do getaddrinfo, freeaddrinfo and getnameinfo" >&5
+    { echo "$as_me:$LINENO: checking how to do getaddrinfo, freeaddrinfo and getnameinfo" >&5
 echo "$as_me: checking how to do getaddrinfo, freeaddrinfo and getnameinfo" >&6;}
 
+
+  :
+
+
+
+
+
+
   { echo "$as_me:$LINENO: checking for library containing getaddrinfo" >&5
 echo $ECHO_N "checking for library containing getaddrinfo... $ECHO_C" >&6; }
 if test "${ac_cv_search_getaddrinfo+set}" = set; then
@@ -34958,56 +36784,32 @@
 
 fi
 
-
-for ac_func in getaddrinfo
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for getaddrinfo" >&5
+echo $ECHO_N "checking for getaddrinfo... $ECHO_C" >&6; }
+if test "${gl_cv_func_getaddrinfo+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+
+    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
 #endif
-char $ac_func ();
-/* 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
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
 #endif
+#include <stddef.h>
 
 int
 main ()
 {
-return $ac_func ();
+getaddrinfo("", "", NULL, NULL);
   ;
   return 0;
 }
@@ -35030,27 +36832,20 @@
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext &&
        $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
+  gl_cv_func_getaddrinfo=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	eval "$as_ac_var=no"
+	gl_cv_func_getaddrinfo=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-else
-
+{ echo "$as_me:$LINENO: result: $gl_cv_func_getaddrinfo" >&5
+echo "${ECHO_T}$gl_cv_func_getaddrinfo" >&6; }
+  if test $gl_cv_func_getaddrinfo = no; then
     { echo "$as_me:$LINENO: checking for getaddrinfo in ws2tcpip.h and -lws2_32" >&5
 echo $ECHO_N "checking for getaddrinfo in ws2tcpip.h and -lws2_32... $ECHO_C" >&6; }
 if test "${gl_cv_w32_getaddrinfo+set}" = set; then
@@ -35070,11 +36865,12 @@
 #ifdef HAVE_WS2TCPIP_H
 #include <ws2tcpip.h>
 #endif
+#include <stddef.h>
 
 int
 main ()
 {
-getaddrinfo(0, 0, 0, 0);
+getaddrinfo(NULL, NULL, NULL, NULL);
   ;
   return 0;
 }
@@ -35114,63 +36910,50 @@
     if test "$gl_cv_w32_getaddrinfo" = "yes"; then
       LIBS="$LIBS -lws2_32"
     else
-      gl_LIBOBJS="$gl_LIBOBJS getaddrinfo.$ac_objext"
-    fi
 
-fi
-done
 
 
 
-for ac_func in gai_strerror
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS getaddrinfo.$ac_objext"
+
+    fi
+  fi
+
+  # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an
+  # inline function declared in ws2tcpip.h, so we need to get that
+  # header included somehow.
+  { echo "$as_me:$LINENO: checking for gai_strerror (possibly via ws2tcpip.h)" >&5
+echo $ECHO_N "checking for gai_strerror (possibly via ws2tcpip.h)... $ECHO_C" >&6; }
+if test "${gl_cv_func_gai_strerror+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+
+      cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
 #endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
 #endif
-char $ac_func ();
-/* 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
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
 #endif
+#include <stddef.h>
 
 int
 main ()
 {
-return $ac_func ();
+gai_strerror (NULL);
   ;
   return 0;
 }
@@ -35193,32 +36976,33 @@
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext &&
        $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
+  gl_cv_func_gai_strerror=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	eval "$as_ac_var=no"
+	gl_cv_func_gai_strerror=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ echo "$as_me:$LINENO: result: $gl_cv_func_gai_strerror" >&5
+echo "${ECHO_T}$gl_cv_func_gai_strerror" >&6; }
+  if test $gl_cv_func_gai_strerror = no; then
+
+
+
+
+
 
-else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-fi
-done
 
+  gl_LIBOBJS="$gl_LIBOBJS gai_strerror.$ac_objext"
 
-  { echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5
+  fi
+
+
+    { echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5
 echo $ECHO_N "checking for library containing gethostbyname... $ECHO_C" >&6; }
 if test "${ac_cv_search_gethostbyname+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -35496,11 +37280,12 @@
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
 #endif
+#include <stddef.h>
 
 int
 main ()
 {
-gethostbyname(0);
+gethostbyname(NULL);
   ;
   return 0;
 }
@@ -35963,6 +37748,13 @@
 
 
 
+
+
+
+
+
+
+
 for ac_func in gethostname
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -36054,10 +37846,13 @@
 _ACEOF
 
 else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+
+    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+
 fi
 done
 
+
   if test $ac_cv_func_gethostname = no; then
 
 
@@ -36426,18 +38221,15 @@
 
 test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes
 
-# Some systems with -lutil have (and need) -lkvm as well, some do not.
-# On Solaris, -lkvm requires nlist from -lelf, so check that first
-# to get the right answer into the cache.
-# For kstat on solaris, we need libelf to force the definition of SVR4 below.
-if test $gl_have_func = no; then
-  { echo "$as_me:$LINENO: checking for elf_begin in -lelf" >&5
-echo $ECHO_N "checking for elf_begin in -lelf... $ECHO_C" >&6; }
-if test "${ac_cv_lib_elf_elf_begin+set}" = set; then
+# AIX has libperfstat which does not require root
+
+{ echo "$as_me:$LINENO: checking for perfstat_cpu_total in -lperfstat" >&5
+echo $ECHO_N "checking for perfstat_cpu_total in -lperfstat... $ECHO_C" >&6; }
+if test "${ac_cv_lib_perfstat_perfstat_cpu_total+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lelf  $LIBS"
+LIBS="-lperfstat  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -36451,11 +38243,11 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char elf_begin ();
+char perfstat_cpu_total ();
 int
 main ()
 {
-return elf_begin ();
+return perfstat_cpu_total ();
   ;
   return 0;
 }
@@ -36478,29 +38270,106 @@
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext &&
        $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_elf_elf_begin=yes
+  ac_cv_lib_perfstat_perfstat_cpu_total=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_lib_elf_elf_begin=no
+	ac_cv_lib_perfstat_perfstat_cpu_total=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_elf_elf_begin" >&5
-echo "${ECHO_T}$ac_cv_lib_elf_elf_begin" >&6; }
-if test $ac_cv_lib_elf_elf_begin = yes; then
-  LIBS="-lelf $LIBS"
-fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_perfstat_perfstat_cpu_total" >&5
+echo "${ECHO_T}$ac_cv_lib_perfstat_perfstat_cpu_total" >&6; }
+if test $ac_cv_lib_perfstat_perfstat_cpu_total = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBPERFSTAT 1
+_ACEOF
+
+  LIBS="-lperfstat $LIBS"
 
 fi
+
+test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_have_func=yes
+
+# Some systems with -lutil have (and need) -lkvm as well, some do not.
+# On Solaris, -lkvm requires nlist from -lelf, so check that first
+# to get the right answer into the cache.
+# For kstat on solaris, we need libelf to force the definition of SVR4 below.
 if test $gl_have_func = no; then
-  { echo "$as_me:$LINENO: checking for kvm_open in -lkvm" >&5
-echo $ECHO_N "checking for kvm_open in -lkvm... $ECHO_C" >&6; }
-if test "${ac_cv_lib_kvm_kvm_open+set}" = set; then
+  { echo "$as_me:$LINENO: checking for elf_begin in -lelf" >&5
+echo $ECHO_N "checking for elf_begin in -lelf... $ECHO_C" >&6; }
+if test "${ac_cv_lib_elf_elf_begin+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lelf  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char elf_begin ();
+int
+main ()
+{
+return elf_begin ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_elf_elf_begin=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_elf_elf_begin=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_elf_elf_begin" >&5
+echo "${ECHO_T}$ac_cv_lib_elf_elf_begin" >&6; }
+if test $ac_cv_lib_elf_elf_begin = yes; then
+  LIBS="-lelf $LIBS"
+fi
+
+fi
+if test $gl_have_func = no; then
+  { echo "$as_me:$LINENO: checking for kvm_open in -lkvm" >&5
+echo $ECHO_N "checking for kvm_open in -lkvm... $ECHO_C" >&6; }
+if test "${ac_cv_lib_kvm_kvm_open+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -36799,8 +38668,16 @@
 _ACEOF
 
 else
+
+
+
+
+
+
+
   gl_LIBOBJS="$gl_LIBOBJS getloadavg.$ac_objext"
 
+
 cat >>confdefs.h <<\_ACEOF
 #define C_GETLOADAVG 1
 _ACEOF
@@ -37773,9 +39650,25 @@
 
   if test -n "$GETOPT_H"; then
 
+
+
+
+
+
+
+
   gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+
+
+
+
+
+
+
+
   gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
 
+
   GETOPT_H=getopt.h
 
 cat >>confdefs.h <<\_ACEOF
@@ -37800,6 +39693,15 @@
 
 
 
+
+
+
+
+
+
+
+
+
 for ac_func in inet_ntop
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -37891,12 +39793,15 @@
 _ACEOF
 
 else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+
+    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+
 fi
 done
 
 
 
+
   :
 
 
@@ -38046,6 +39951,21 @@
   fi
 
 
+
+
+  :
+
+
+
+
+
+
+
+
+
+  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
+
+
 for ac_header in stdlib.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -38260,7 +40180,15 @@
 #define HAVE_MALLOC 0
 _ACEOF
 
-   gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+
 
 cat >>confdefs.h <<\_ACEOF
 #define malloc rpl_malloc
@@ -38271,255 +40199,85 @@
 
 
 
+cat >>confdefs.h <<\_ACEOF
+#define GNULIB_MALLOC_GNU 1
+_ACEOF
 
-  gl_LIBOBJS="$gl_LIBOBJS mbchar.$ac_objext"
 
 
+  if test $gl_cv_func_malloc_posix = yes; then
+    HAVE_MALLOC_POSIX=1
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MALLOC_POSIX 1
+_ACEOF
 
-  :
+  else
 
 
 
-for ac_func in memchr
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* 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
-#endif
+  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+    HAVE_MALLOC_POSIX=0
+  fi
 
-	eval "$as_ac_var=no"
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-fi
-done
 
-  if test $ac_cv_func_memchr = no; then
+  GNULIB_MALLOC_POSIX=1
 
 
-for ac_header in bp-sym.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_header_compiler=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
-fi
+  :
 
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_math_h='<'math.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <math.h>" >&5
+echo $ECHO_N "checking absolute name of <math.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_math_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
 
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+	  if test $ac_cv_header_math_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <math.h>
 
-fi
-
-done
-
+_ACEOF
+	    	    	    	    gl_cv_next_math_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/math.h#{
+		 s#.*"\(.*/math.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_math_h='<'math.h'>'
+	  fi
 
-  fi
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_math_h" >&5
+echo "${ECHO_T}$gl_cv_next_math_h" >&6; }
+     fi
+     NEXT_MATH_H=$gl_cv_next_math_h
 
 
 
@@ -40144,7 +41902,15 @@
 
 
   if test $gl_cv_list_mounted_fs = yes; then
-    gl_LIBOBJS="$gl_LIBOBJS mountlist.$ac_objext"
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS mountlist.$ac_objext"
+
 
 
 for ac_header in sys/mntent.h
@@ -40404,188 +42170,491 @@
   fi
 
 
-
-  :
-
-
-
-
-
-  if test $ac_cv_header_netinet_in_h = yes; then
-    NETINET_IN_H=''
-  else
-    NETINET_IN_H='netinet/in.h'
-  fi
-
-
-
-
-  :
-
-
-
-
-
-
-
-# Check whether --with-included-regex was given.
-if test "${with_included_regex+set}" = set; then
-  withval=$with_included_regex;
-fi
-
-
-  case $with_included_regex in #(
-  yes|no) ac_use_included_regex=$with_included_regex
-	;;
-  '')
-    # If the system regex support is good enough that it passes the
-    # following run test, then default to *not* using the included regex.c.
-    # If cross compiling, assume the test would fail and use the included
-    # regex.c.  The first failing regular expression is from `Spencer ere
-    # test #75' in grep-2.3.
-    { echo "$as_me:$LINENO: checking for working re_compile_pattern" >&5
-echo $ECHO_N "checking for working re_compile_pattern... $ECHO_C" >&6; }
-if test "${gl_cv_func_re_compile_pattern_working+set}" = set; then
+  { echo "$as_me:$LINENO: checking whether <netinet/in.h> is self-contained" >&5
+echo $ECHO_N "checking whether <netinet/in.h> is self-contained... $ECHO_C" >&6; }
+if test "${gl_cv_header_netinet_in_h_selfcontained+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test "$cross_compiling" = yes; then
-         gl_cv_func_re_compile_pattern_working=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
+
+      cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
-	   #if HAVE_LOCALE_H
-	    #include <locale.h>
-	   #endif
-	   #include <limits.h>
-	   #include <regex.h>
-
+#include <netinet/in.h>
 int
 main ()
 {
-static struct re_pattern_buffer regex;
-	    unsigned char folded_chars[UCHAR_MAX + 1];
-	    int i;
-	    const char *s;
-	    struct re_registers regs;
-
-	    #if HAVE_LOCALE_H
-	      /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
-		 This test needs valgrind to catch the bug on Debian
-		 GNU/Linux 3.1 x86, but it might catch the bug better
-		 on other platforms and it shouldn't hurt to try the
-		 test here.  */
-	      if (setlocale (LC_ALL, "en_US.UTF-8"))
-		{
-		  static char const pat[] = "insert into";
-		  static char const data[] =
-		    "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
-		  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
-				 | RE_ICASE);
-		  memset (&regex, 0, sizeof regex);
-		  s = re_compile_pattern (pat, sizeof pat - 1, &regex);
-		  if (s)
-		    return 1;
-		  if (re_search (&regex, data, sizeof data - 1,
-				 0, sizeof data - 1, &regs)
-		      != -1)
-		    return 1;
-		  if (! setlocale (LC_ALL, "C"))
-		    return 1;
-		}
-	    #endif
-
-	    re_set_syntax (RE_SYNTAX_POSIX_EGREP);
-	    memset (&regex, 0, sizeof (regex));
-	    for (i = 0; i <= UCHAR_MAX; i++)
-	      folded_chars[i] = i;
-	    regex.translate = folded_chars;
-	    s = re_compile_pattern ("a[[:]:]]b\n", 11, &regex);
-	    /* This should fail with _Invalid character class name_ error.  */
-	    if (!s)
-	      exit (1);
-
-	    /* This should succeed, but does not for e.g. glibc-2.1.3.  */
-	    memset (&regex, 0, sizeof (regex));
-	    s = re_compile_pattern ("{1", 2, &regex);
-
-	    if (s)
-	      exit (1);
-
-	    /* The following example is derived from a problem report
-	       against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
-	    memset (&regex, 0, sizeof (regex));
-	    s = re_compile_pattern ("[an\371]*n", 7, &regex);
-	    if (s)
-	      exit (1);
-
-	    /* This should match, but does not for e.g. glibc-2.2.1.  */
-	    if (re_match (&regex, "an", 2, 0, &regs) != 2)
-	      exit (1);
-
-	    memset (&regex, 0, sizeof (regex));
-	    s = re_compile_pattern ("x", 1, &regex);
-	    if (s)
-	      exit (1);
-
-	    /* The version of regex.c in e.g. GNU libc-2.2.93 did not
-	       work with a negative RANGE argument.  */
-	    if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
-	      exit (1);
-
-	    /* The version of regex.c in older versions of gnulib
-	       ignored RE_ICASE.  Detect that problem too.  */
-	    memset (&regex, 0, sizeof (regex));
-	    re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE);
-	    s = re_compile_pattern ("x", 1, &regex);
-	    if (s)
-	      exit (1);
 
-	    if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
-	      exit (1);
-
-	    /* REG_STARTEND was added to glibc on 2004-01-15.
-	       Reject older versions.  */
-	    if (! REG_STARTEND)
-	      exit (1);
-
-	    /* Reject hosts whose regoff_t values are too narrow.
-	       These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t
-	       and 32-bit int.  */
-	    if (sizeof (regoff_t) < sizeof (ptrdiff_t)
-		|| sizeof (regoff_t) < sizeof (ssize_t))
-	      exit (1);
-
-	    exit (0);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_re_compile_pattern_working=yes
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_header_netinet_in_h_selfcontained=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_header_netinet_in_h_selfcontained=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_header_netinet_in_h_selfcontained" >&5
+echo "${ECHO_T}$gl_cv_header_netinet_in_h_selfcontained" >&6; }
+  if test $gl_cv_header_netinet_in_h_selfcontained = yes; then
+    NETINET_IN_H=''
+  else
+    NETINET_IN_H='netinet/in.h'
+
+for ac_header in netinet/in.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+  :
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_netinet_in_h='<'netinet/in.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <netinet/in.h>" >&5
+echo $ECHO_N "checking absolute name of <netinet/in.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_netinet_in_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	  if test $ac_cv_header_netinet_in_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <netinet/in.h>
+
+_ACEOF
+	    	    	    	    gl_cv_next_netinet_in_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/netinet/in.h#{
+		 s#.*"\(.*/netinet/in.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_netinet_in_h='<'netinet/in.h'>'
+	  fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_netinet_in_h" >&5
+echo "${ECHO_T}$gl_cv_next_netinet_in_h" >&6; }
+     fi
+     NEXT_NETINET_IN_H=$gl_cv_next_netinet_in_h
+
+
+
+    if test $ac_cv_header_netinet_in_h = yes; then
+      HAVE_NETINET_IN_H=1
+    else
+      HAVE_NETINET_IN_H=0
+    fi
+
+  fi
+
+
+  { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
+if test -z "$MKDIR_P"; then
+  if test "${ac_cv_path_mkdir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in mkdir gmkdir; do
+	 for ac_exec_ext in '' $ac_executable_extensions; do
+	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir (GNU coreutils) '* | \
+	     'mkdir (coreutils) '* | \
+	     'mkdir (fileutils) '4.1*)
+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       break 3;;
+	   esac
+	 done
+       done
+done
+IFS=$as_save_IFS
+
+fi
+
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    test -d ./--version && rmdir ./--version
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+echo "${ECHO_T}$MKDIR_P" >&6; }
+
+
+
+  :
+
+
+
+
+
+
+
+# Check whether --with-included-regex was given.
+if test "${with_included_regex+set}" = set; then
+  withval=$with_included_regex;
+fi
+
+
+  case $with_included_regex in #(
+  yes|no) ac_use_included_regex=$with_included_regex
+	;;
+  '')
+    # If the system regex support is good enough that it passes the
+    # following run test, then default to *not* using the included regex.c.
+    # If cross compiling, assume the test would fail and use the included
+    # regex.c.
+    { echo "$as_me:$LINENO: checking for working re_compile_pattern" >&5
+echo $ECHO_N "checking for working re_compile_pattern... $ECHO_C" >&6; }
+if test "${gl_cv_func_re_compile_pattern_working+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+         gl_cv_func_re_compile_pattern_working=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+	   #if HAVE_LOCALE_H
+	    #include <locale.h>
+	   #endif
+	   #include <limits.h>
+	   #include <regex.h>
+
+int
+main ()
+{
+static struct re_pattern_buffer regex;
+	    unsigned char folded_chars[UCHAR_MAX + 1];
+	    int i;
+	    const char *s;
+	    struct re_registers regs;
+
+	    #if HAVE_LOCALE_H
+	      /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
+		 This test needs valgrind to catch the bug on Debian
+		 GNU/Linux 3.1 x86, but it might catch the bug better
+		 on other platforms and it shouldn't hurt to try the
+		 test here.  */
+	      if (setlocale (LC_ALL, "en_US.UTF-8"))
+		{
+		  static char const pat[] = "insert into";
+		  static char const data[] =
+		    "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
+		  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
+				 | RE_ICASE);
+		  memset (&regex, 0, sizeof regex);
+		  s = re_compile_pattern (pat, sizeof pat - 1, &regex);
+		  if (s)
+		    return 1;
+		  if (re_search (&regex, data, sizeof data - 1,
+				 0, sizeof data - 1, &regs)
+		      != -1)
+		    return 1;
+		  if (! setlocale (LC_ALL, "C"))
+		    return 1;
+		}
+	    #endif
+
+	    /* This test is from glibc bug 3957, reported by Andrew Mackey.  */
+	    re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("a[^x]b", 6, &regex);
+	    if (s)
+	      return 1;
+
+	    /* This should fail, but succeeds for glibc-2.5.  */
+	    if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+	      return 1;
+
+	    /* This regular expression is from Spencer ere test number 75
+	       in grep-2.3.  */
+	    re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+	    memset (&regex, 0, sizeof regex);
+	    for (i = 0; i <= UCHAR_MAX; i++)
+	      folded_chars[i] = i;
+	    regex.translate = folded_chars;
+	    s = re_compile_pattern ("a[[:]:]]b\n", 11, &regex);
+	    /* This should fail with _Invalid character class name_ error.  */
+	    if (!s)
+	      return 1;
+
+	    /* This should succeed, but does not for glibc-2.1.3.  */
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("{1", 2, &regex);
+
+	    if (s)
+	      return 1;
+
+	    /* The following example is derived from a problem report
+	       against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("[an\371]*n", 7, &regex);
+	    if (s)
+	      return 1;
+
+	    /* This should match, but does not for glibc-2.2.1.  */
+	    if (re_match (&regex, "an", 2, 0, &regs) != 2)
+	      return 1;
+
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("x", 1, &regex);
+	    if (s)
+	      return 1;
+
+	    /* glibc-2.2.93 does not work with a negative RANGE argument.  */
+	    if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+	      return 1;
+
+	    /* The version of regex.c in older versions of gnulib
+	       ignored RE_ICASE.  Detect that problem too.  */
+	    re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE);
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("x", 1, &regex);
+	    if (s)
+	      return 1;
+
+	    if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+	      return 1;
+
+	    /* Catch a bug reported by Vin Shelton in
+	       http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
+	       */
+	    re_set_syntax (RE_SYNTAX_POSIX_BASIC
+			   & ~RE_CONTEXT_INVALID_DUP
+			   & ~RE_NO_EMPTY_RANGES);
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
+	    if (s)
+	      return 1;
+
+	    /* REG_STARTEND was added to glibc on 2004-01-15.
+	       Reject older versions.  */
+	    if (! REG_STARTEND)
+	      return 1;
+
+	    /* Reject hosts whose regoff_t values are too narrow.
+	       These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t
+	       and 32-bit int.  */
+	    if (sizeof (regoff_t) < sizeof (ptrdiff_t)
+		|| sizeof (regoff_t) < sizeof (ssize_t))
+	      return 1;
+
+	    return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  gl_cv_func_re_compile_pattern_working=yes
 else
   echo "$as_me: program exited with status $ac_status" >&5
 echo "$as_me: failed program was:" >&5
@@ -40693,7 +42762,14 @@
 #define regfree rpl_regfree
 _ACEOF
 
-    gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
 
 
 
@@ -40790,6 +42866,13 @@
   fi
 
 
+
+
+
+
+
+
+
   gl_LIBOBJS="$gl_LIBOBJS safe-read.$ac_objext"
 
 
@@ -40797,6 +42880,14 @@
 
 
 
+
+
+
+
+
+
+
+
   gl_LIBOBJS="$gl_LIBOBJS safe-write.$ac_objext"
 
 
@@ -40807,6 +42898,7 @@
 
 
 
+
 for ac_header in stdint.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -41671,6 +43763,7 @@
 
 
 
+
 for ac_func in snprintf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -41761,20 +43854,42 @@
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
-else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
 fi
 done
 
+  if test $ac_cv_func_snprintf = no; then
+
+
+
+
+
 
-  :
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext"
 
+  if test $ac_cv_func_snprintf = yes; then
+    REPLACE_SNPRINTF=1
+  fi
+  :
+
+  fi
 
   :
 
+
+
+
+
+  if test $ac_cv_have_decl_snprintf = no; then
+    HAVE_DECL_SNPRINTF=0
+  fi
+
+
+
+  GNULIB_SNPRINTF=1
+
      { echo "$as_me:$LINENO: checking for socklen_t" >&5
 echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6; }
 if test "${ac_cv_type_socklen_t+set}" = set; then
@@ -41839,7 +43954,7 @@
 else
   { echo "$as_me:$LINENO: checking for socklen_t equivalent" >&5
 echo $ECHO_N "checking for socklen_t equivalent... $ECHO_C" >&6; }
-      if test "${gl_cv_gl_cv_socklen_t_equiv+set}" = set; then
+      if test "${gl_cv_socklen_t_equiv+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   # Systems have either "struct sockaddr *" or
@@ -42022,49 +44137,63 @@
   fi
 
 
-    if test $ac_cv_header_stdint_h = yes; then
-      { echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5
-echo $ECHO_N "checking absolute name of <stdint.h>... $ECHO_C" >&6; }
-if test "${gl_cv_absolute_stdint_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+
+
 
   :
 
 
 
 
-    if test $ac_cv_header_stdint_h = yes; then
-      cat >conftest.$ac_ext <<_ACEOF
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stdint_h='<'stdint.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5
+echo $ECHO_N "checking absolute name of <stdint.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_stdint_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	  if test $ac_cv_header_stdint_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <stdint.h>
+
 _ACEOF
-      gl_cv_absolute_stdint_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-sed -n '\#/stdint.h#{s#.*"\(.*/stdint.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
-    fi
+	    	    	    	    gl_cv_next_stdint_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/stdint.h#{
+		 s#.*"\(.*/stdint.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_stdint_h='<'stdint.h'>'
+	  fi
 
 fi
-{ echo "$as_me:$LINENO: result: $gl_cv_absolute_stdint_h" >&5
-echo "${ECHO_T}$gl_cv_absolute_stdint_h" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define ABSOLUTE_STDINT_H "$gl_cv_absolute_stdint_h"
-_ACEOF
+{ echo "$as_me:$LINENO: result: $gl_cv_next_stdint_h" >&5
+echo "${ECHO_T}$gl_cv_next_stdint_h" >&6; }
+     fi
+     NEXT_STDINT_H=$gl_cv_next_stdint_h
 
 
-    ABSOLUTE_STDINT_H=\"$gl_cv_absolute_stdint_h\"
+
+  if test $ac_cv_header_stdint_h = yes; then
     HAVE_STDINT_H=1
   else
-    ABSOLUTE_STDINT_H=\"no/such/file/stdint.h\"
     HAVE_STDINT_H=0
   fi
 
 
-
-          if test $ac_cv_header_stdint_h = yes; then
+    if test $ac_cv_header_stdint_h = yes; then
     { echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5
 echo $ECHO_N "checking whether stdint.h conforms to C99... $ECHO_C" >&6; }
 if test "${gl_cv_header_working_stdint_h+set}" = set; then
@@ -42079,10 +44208,27 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#include <stddef.h>
 #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
 #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#include ABSOLUTE_STDINT_H
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
+
+
 #ifdef INT8_MAX
 int8_t a1 = INT8_MAX;
 int8_t a1min = INT8_MIN;
@@ -42154,12 +44300,32 @@
 #endif
 intmax_t i = INTMAX_MAX;
 uintmax_t j = UINTMAX_MAX;
+
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+#define TYPE_MAXIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
 struct s {
-  int check_PTRDIFF: PTRDIFF_MIN < 0 && 0 < PTRDIFF_MAX ? 1 : -1;
-  int check_SIG_ATOMIC: SIG_ATOMIC_MIN <= 0 && 0 < SIG_ATOMIC_MAX ? 1 : -1;
-  int check_SIZE: 0 < SIZE_MAX ? 1 : -1;
-  int check_WCHAR: WCHAR_MIN <= 0 && 0 < WCHAR_MAX ? 1 : -1;
-  int check_WINT: WINT_MIN <= 0 && 0 < WINT_MAX ? 1 : -1;
+  int check_PTRDIFF:
+      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+      ? 1 : -1;
+  /* Detect bug in FreeBSD 6.0 / ia64.  */
+  int check_SIG_ATOMIC:
+      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+      ? 1 : -1;
+  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+  int check_WCHAR:
+      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+      ? 1 : -1;
+  /* Detect bug in mingw.  */
+  int check_WINT:
+      WINT_MIN == TYPE_MINIMUM (wint_t)
+      && WINT_MAX == TYPE_MAXIMUM (wint_t)
+      ? 1 : -1;
 
   /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
   int check_UINT8_C:
@@ -42389,6 +44555,14 @@
 
 
 
+  :
+
+
+
+
+
+
+
 
 
 
@@ -42415,9 +44589,11 @@
      included before <wchar.h>.  */
   #include <stddef.h>
   #include <signal.h>
-  #include <stdio.h>
-  #include <time.h>
-  #include <wchar.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
 #include <limits.h>
 int
@@ -42460,9 +44636,11 @@
      included before <wchar.h>.  */
   #include <stddef.h>
   #include <signal.h>
-  #include <stdio.h>
-  #include <time.h>
-  #include <wchar.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
 #include <limits.h>
 int
@@ -42522,9 +44700,11 @@
      included before <wchar.h>.  */
   #include <stddef.h>
   #include <signal.h>
-  #include <stdio.h>
-  #include <time.h>
-  #include <wchar.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
 #include <limits.h>
 int
@@ -42567,9 +44747,11 @@
      included before <wchar.h>.  */
   #include <stddef.h>
   #include <signal.h>
-  #include <stdio.h>
-  #include <time.h>
-  #include <wchar.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
 #include <limits.h>
 int
@@ -42639,9 +44821,11 @@
      included before <wchar.h>.  */
   #include <stddef.h>
   #include <signal.h>
-  #include <stdio.h>
-  #include <time.h>
-  #include <wchar.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
 #include <limits.h>
 int
@@ -42697,9 +44881,11 @@
      included before <wchar.h>.  */
   #include <stddef.h>
   #include <signal.h>
-  #include <stdio.h>
-  #include <time.h>
-  #include <wchar.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
 #include <limits.h>
 static long int longval () { return sizeof ($gltype) * CHAR_BIT; }
@@ -42806,9 +44992,11 @@
      included before <wchar.h>.  */
   #include <stddef.h>
   #include <signal.h>
-  #include <stdio.h>
-  #include <time.h>
-  #include <wchar.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
             int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
 int
@@ -42909,9 +45097,11 @@
      included before <wchar.h>.  */
   #include <stddef.h>
   #include <signal.h>
-  #include <stdio.h>
-  #include <time.h>
-  #include <wchar.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
               extern $gltype foo;
               extern $gltype1 foo;
@@ -42974,7 +45164,7 @@
 
 
 
-      gl_LIBOBJS="$gl_LIBOBJS strcasecmp.$ac_objext"
+
 
 
   :
@@ -42982,174 +45172,106 @@
 
 
 
-for ac_func in strncasecmp
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stdio_h='<'stdio.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <stdio.h>" >&5
+echo $ECHO_N "checking absolute name of <stdio.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_stdio_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+
+	  if test $ac_cv_header_stdio_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+#include <stdio.h>
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+_ACEOF
+	    	    	    	    gl_cv_next_stdio_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/stdio.h#{
+		 s#.*"\(.*/stdio.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_stdio_h='<'stdio.h'>'
+	  fi
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_stdio_h" >&5
+echo "${ECHO_T}$gl_cv_next_stdio_h" >&6; }
+     fi
+     NEXT_STDIO_H=$gl_cv_next_stdio_h
 
-#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* 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
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-	eval "$as_ac_var=no"
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-fi
-done
 
-  { echo "$as_me:$LINENO: checking whether strncasecmp is declared" >&5
-echo $ECHO_N "checking whether strncasecmp is declared... $ECHO_C" >&6; }
-if test "${ac_cv_have_decl_strncasecmp+set}" = set; then
+
+
+  :
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stdlib_h='<'stdlib.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <stdlib.h>" >&5
+echo $ECHO_N "checking absolute name of <stdlib.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_stdlib_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+
+	  if test $ac_cv_header_stdlib_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strncasecmp
-  (void) strncasecmp;
-#endif
+#include <stdlib.h>
 
-  ;
-  return 0;
-}
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strncasecmp=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+	    	    	    	    gl_cv_next_stdlib_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/stdlib.h#{
+		 s#.*"\(.*/stdlib.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_stdlib_h='<'stdlib.h'>'
+	  fi
 
-	ac_cv_have_decl_strncasecmp=no
 fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_stdlib_h" >&5
+echo "${ECHO_T}$gl_cv_next_stdlib_h" >&6; }
+     fi
+     NEXT_STDLIB_H=$gl_cv_next_stdlib_h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strncasecmp" >&5
-echo "${ECHO_T}$ac_cv_have_decl_strncasecmp" >&6; }
-if test $ac_cv_have_decl_strncasecmp = yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNCASECMP 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNCASECMP 0
-_ACEOF
 
 
-fi
 
 
-  if test $ac_cv_func_strncasecmp = no; then
 
-  :
 
-  fi
 
 
 
@@ -43245,21 +45367,58 @@
 _ACEOF
 
 else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+
+    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+
 fi
 done
 
 
+
   :
 
 
 
 
 
+  if test $ac_cv_have_decl_strdup = no; then
+    HAVE_DECL_STRDUP=0
+  fi
   :
 
 
 
+  GNULIB_STRDUP=1
+
+
+
+  if test $gl_cv_func_working_strerror = no; then
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
+
+
+cat >>confdefs.h <<_ACEOF
+#define REPLACE_STRERROR $REPLACE_STRERROR
+_ACEOF
+
+  fi
+
+
+
+  GNULIB_STRERROR=1
+
+
+
+
+
+
+
 
 
   :
@@ -43268,6 +45427,9 @@
 
 
 
+  if test $ac_cv_have_decl_strndup = no; then
+    HAVE_DECL_STRNDUP=0
+  fi
 
   # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
   { echo "$as_me:$LINENO: checking for working strndup" >&5
@@ -43391,7 +45553,7 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <string.h>
-		 	#include <stdlib.h>
+			#include <stdlib.h>
 int
 main ()
 {
@@ -43451,12 +45613,37 @@
 _ACEOF
 
   else
-    gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
+    HAVE_STRNDUP=0
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
+
     :
   fi
 
 
 
+  GNULIB_STRNDUP=1
+
+
+
+
+
+
+  :
+
+
+
+
+
+  if test $ac_cv_have_decl_strnlen = no; then
+    HAVE_DECL_STRNLEN=0
+  fi
 
   { echo "$as_me:$LINENO: checking for working strnlen" >&5
 echo $ECHO_N "checking for working strnlen... $ECHO_C" >&6; }
@@ -43532,10 +45719,18 @@
 fi
 { echo "$as_me:$LINENO: result: $ac_cv_func_strnlen_working" >&5
 echo "${ECHO_T}$ac_cv_func_strnlen_working" >&6; }
-test $ac_cv_func_strnlen_working = no && gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
+test $ac_cv_func_strnlen_working = no &&
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
+
 
   if test $ac_cv_func_strnlen_working = no; then
-    # This is necessary because automake-1.6.1 doens't understand
+    # This is necessary because automake-1.6.1 doesn't understand
     # that the above use of AC_FUNC_STRNLEN means we may have to use
     # lib/strnlen.c.
     #AC_LIBOBJ(strnlen)
@@ -43544,16 +45739,70 @@
 #define strnlen rpl_strnlen
 _ACEOF
 
+    :
+  fi
+
 
 
-  :
+  GNULIB_STRNLEN=1
+
+
+  { echo "$as_me:$LINENO: checking whether <sys/socket.h> is self-contained" >&5
+echo $ECHO_N "checking whether <sys/socket.h> is self-contained... $ECHO_C" >&6; }
+if test "${gl_cv_header_sys_socket_h_selfcontained+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/socket.h>
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_header_sys_socket_h_selfcontained=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+	gl_cv_header_sys_socket_h_selfcontained=no
+fi
 
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_header_sys_socket_h_selfcontained" >&5
+echo "${ECHO_T}$gl_cv_header_sys_socket_h_selfcontained" >&6; }
+  if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
+    SYS_SOCKET_H=''
+  else
+    SYS_SOCKET_H='sys/socket.h'
 
-  fi
 
 
 
@@ -43563,9 +45812,52 @@
 
 
 
-  if test $ac_cv_header_sys_socket_h = yes; then
-    SYS_SOCKET_H=''
-  else
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_socket_h='<'sys/socket.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <sys/socket.h>" >&5
+echo $ECHO_N "checking absolute name of <sys/socket.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_sys_socket_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	  if test $ac_cv_header_sys_socket_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/socket.h>
+
+_ACEOF
+	    	    	    	    gl_cv_next_sys_socket_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/sys/socket.h#{
+		 s#.*"\(.*/sys/socket.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_sys_socket_h='<'sys/socket.h'>'
+	  fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_sys_socket_h" >&5
+echo "${ECHO_T}$gl_cv_next_sys_socket_h" >&6; }
+     fi
+     NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h
+
+
+
+    if test $ac_cv_header_sys_socket_h = yes; then
+      HAVE_SYS_SOCKET_H=1
+      HAVE_WINSOCK2_H=0
+      HAVE_WS2TCPIP_H=0
+    else
+      HAVE_SYS_SOCKET_H=0
 
 
 for ac_header in winsock2.h ws2tcpip.h
@@ -43707,7 +45999,20 @@
 
 done
 
-    SYS_SOCKET_H='sys/socket.h'
+      if test $ac_cv_header_winsock2_h = yes; then
+        HAVE_WINSOCK2_H=1
+      else
+        HAVE_WINSOCK2_H=0
+      fi
+      if test $ac_cv_header_ws2tcpip_h = yes; then
+        HAVE_WS2TCPIP_H=1
+      else
+        HAVE_WS2TCPIP_H=0
+      fi
+    fi
+
+
+
   fi
 
 
@@ -43755,150 +46060,106 @@
 
 
 
-for ac_header in unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+
+
+
+
+  :
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_unistd_h='<'unistd.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <unistd.h>" >&5
+echo $ECHO_N "checking absolute name of <unistd.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_unistd_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
+
+	  if test $ac_cv_header_unistd_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
+#include <unistd.h>
+
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+	    	    	    	    gl_cv_next_unistd_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/unistd.h#{
+		 s#.*"\(.*/unistd.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_unistd_h='<'unistd.h'>'
+	  fi
 
-	ac_header_compiler=no
 fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_unistd_h" >&5
+echo "${ECHO_T}$gl_cv_next_unistd_h" >&6; }
+     fi
+     NEXT_UNISTD_H=$gl_cv_next_unistd_h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
-fi
 
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+  :
 
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
 
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-    UNISTD_H=''
 
-else
 
-    UNISTD_H='unistd.h'
+  if test $ac_cv_header_unistd_h = yes; then
+    HAVE_UNISTD_H=1
+  else
+    HAVE_UNISTD_H=0
+  fi
 
-fi
 
-done
+
+
+  :
+
+
+
+
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS dup-safer.$ac_objext"
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS fd-safer.$ac_objext"
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS pipe-safer.$ac_objext"
+
 
 
 
@@ -43909,164 +46170,62 @@
 
 
 
-  if test $ac_cv_header_unistd_h = yes; then
-      { echo "$as_me:$LINENO: checking absolute name of <unistd.h>" >&5
-echo $ECHO_N "checking absolute name of <unistd.h>... $ECHO_C" >&6; }
-if test "${gl_cv_absolute_unistd_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+  if test $ac_cv_func_vasnprintf = no; then
+
 
   :
 
 
 
 
-    if test $ac_cv_header_unistd_h = yes; then
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
-_ACEOF
-      gl_cv_absolute_unistd_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-sed -n '\#/unistd.h#{s#.*"\(.*/unistd.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
-    fi
 
-fi
-{ echo "$as_me:$LINENO: result: $gl_cv_absolute_unistd_h" >&5
-echo "${ECHO_T}$gl_cv_absolute_unistd_h" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define ABSOLUTE_UNISTD_H "$gl_cv_absolute_unistd_h"
-_ACEOF
 
 
-    ABSOLUTE_UNISTD_H=\"$gl_cv_absolute_unistd_h\"
-  fi
 
 
 
 
 
-  :
+  gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext"
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS dup-safer.$ac_objext"
-  gl_LIBOBJS="$gl_LIBOBJS fd-safer.$ac_objext"
-  gl_LIBOBJS="$gl_LIBOBJS pipe-safer.$ac_objext"
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext"
 
-for ac_func in vasnprintf
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* 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
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-	eval "$as_ac_var=no"
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+  gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext"
 
-else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-fi
-done
 
-  if test $ac_cv_func_vasnprintf = no; then
-    gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext"
-    gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext"
-    gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext"
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext"
+
+  if test $ac_cv_func_vasnprintf = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define REPLACE_VASNPRINTF 1
+_ACEOF
+
+  fi
+
+
+
+
 
 
 
@@ -44127,9 +46286,11 @@
 { echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
 echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6; }
 if test $ac_cv_type_ptrdiff_t = yes; then
+  :
+else
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_PTRDIFF_T 1
+cat >>confdefs.h <<\_ACEOF
+#define ptrdiff_t long
 _ACEOF
 
 
@@ -44144,7 +46305,6 @@
 
 
 
-
 for ac_func in snprintf wcslen
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -44238,6 +46398,76 @@
 fi
 done
 
+      { echo "$as_me:$LINENO: checking whether _snprintf is declared" >&5
+echo $ECHO_N "checking whether _snprintf is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl__snprintf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdio.h>
+
+int
+main ()
+{
+#ifndef _snprintf
+  (void) _snprintf;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl__snprintf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl__snprintf=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl__snprintf" >&5
+echo "${ECHO_T}$ac_cv_have_decl__snprintf" >&6; }
+if test $ac_cv_have_decl__snprintf = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__SNPRINTF 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__SNPRINTF 0
+_ACEOF
+
+
+fi
+
+
+
 
 
 
@@ -44335,13 +46565,10 @@
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
-else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
 fi
 done
 
   if test $ac_cv_func_vasprintf = no; then
-    gl_LIBOBJS="$gl_LIBOBJS asprintf.$ac_objext"
 
 
 
@@ -44349,10 +46576,49 @@
 
 
 
+
+  gl_LIBOBJS="$gl_LIBOBJS vasprintf.$ac_objext"
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS asprintf.$ac_objext"
+
+
+  if test $ac_cv_func_vasprintf = yes; then
+    REPLACE_VASPRINTF=1
+  else
+    HAVE_VASPRINTF=0
   fi
 
 
 
+
+
+
+
+
+  fi
+
+
+
+  GNULIB_VASPRINTF=1
+
+
+
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=asprintf:2:c-format"
+
+
+
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=vasprintf:2:c-format"
+
+
+
+
 for ac_func in vsnprintf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -44443,20 +46709,43 @@
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
-else
-  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
 fi
 done
 
+  if test $ac_cv_func_vsnprintf = no; then
+
+
+
 
-  :
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS vsnprintf.$ac_objext"
+
+  if test $ac_cv_func_vsnprintf = yes; then
+    REPLACE_VSNPRINTF=1
+  fi
   :
 
+  fi
+
+  :
+
+
+
+
+
+  if test $ac_cv_have_decl_vsnprintf = no; then
+    HAVE_DECL_VSNPRINTF=0
+  fi
+
+
+
+  GNULIB_VSNPRINTF=1
+
+
 
   { echo "$as_me:$LINENO: checking whether <wchar.h> is standalone" >&5
 echo $ECHO_N "checking whether <wchar.h> is standalone... $ECHO_C" >&6; }
@@ -44496,44 +46785,70 @@
 fi
 { echo "$as_me:$LINENO: result: $gl_cv_header_wchar_h_standalone" >&5
 echo "${ECHO_T}$gl_cv_header_wchar_h_standalone" >&6; }
-  if test $gl_cv_header_wchar_h_standalone = yes; then
-    WCHAR_H=
+  if test $gl_cv_header_wchar_h_standalone != yes; then
+    WCHAR_H=wchar.h
+  fi
+
+
+  :
+
+
+
+
+
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
   else
-      { echo "$as_me:$LINENO: checking absolute name of <wchar.h>" >&5
-echo $ECHO_N "checking absolute name of <wchar.h>... $ECHO_C" >&6; }
-if test "${gl_cv_absolute_wchar_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+    HAVE_WCHAR_H=0
+  fi
+
+
+
 
   :
 
 
 
 
-    if test $ac_cv_header_wchar_h = yes; then
-      cat >conftest.$ac_ext <<_ACEOF
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_wchar_h='<'wchar.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <wchar.h>" >&5
+echo $ECHO_N "checking absolute name of <wchar.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_wchar_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	  if test $ac_cv_header_wchar_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <wchar.h>
-_ACEOF
-      gl_cv_absolute_wchar_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-sed -n '\#/wchar.h#{s#.*"\(.*/wchar.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
-    fi
 
-fi
-{ echo "$as_me:$LINENO: result: $gl_cv_absolute_wchar_h" >&5
-echo "${ECHO_T}$gl_cv_absolute_wchar_h" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define ABSOLUTE_WCHAR_H "$gl_cv_absolute_wchar_h"
 _ACEOF
+	    	    	    	    gl_cv_next_wchar_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/wchar.h#{
+		 s#.*"\(.*/wchar.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_wchar_h='<'wchar.h'>'
+	  fi
 
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_wchar_h" >&5
+echo "${ECHO_T}$gl_cv_next_wchar_h" >&6; }
+     fi
+     NEXT_WCHAR_H=$gl_cv_next_wchar_h
 
-    ABSOLUTE_WCHAR_H=\"$gl_cv_absolute_wchar_h\"
-    WCHAR_H=wchar.h
-  fi
 
 
 
@@ -44545,6 +46860,12 @@
 
 
 
+  if test $ac_cv_func_iswcntrl = yes; then
+    HAVE_ISWCNTRL=1
+  else
+    HAVE_ISWCNTRL=0
+  fi
+
 
   :
 
@@ -44564,56 +46885,9 @@
 
   WCTYPE_H=wctype.h
   if test $ac_cv_header_wctype_h = yes; then
-    if test "$ac_cv_func_iswcntrl" = yes; then
+    if test $ac_cv_func_iswcntrl = yes; then
       WCTYPE_H=
     fi
-              { echo "$as_me:$LINENO: checking absolute name of <wctype.h>" >&5
-echo $ECHO_N "checking absolute name of <wctype.h>... $ECHO_C" >&6; }
-if test "${gl_cv_absolute_wctype_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-  :
-
-
-
-
-    if test $ac_cv_header_wctype_h = yes; then
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <wctype.h>
-_ACEOF
-      gl_cv_absolute_wctype_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-sed -n '\#/wctype.h#{s#.*"\(.*/wctype.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
-    fi
-
-fi
-{ echo "$as_me:$LINENO: result: $gl_cv_absolute_wctype_h" >&5
-echo "${ECHO_T}$gl_cv_absolute_wctype_h" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define ABSOLUTE_WCTYPE_H "$gl_cv_absolute_wctype_h"
-_ACEOF
-
-
-    ABSOLUTE_WCTYPE_H=\"$gl_cv_absolute_wctype_h\"
-    HAVE_WCTYPE_H=1
-  else
-    ABSOLUTE_WCTYPE_H=\"no/such/file/wctype.h\"
-    HAVE_WCTYPE_H=0
-  fi
-
-
-
-
-
-
-
-
-
 
 
 
@@ -44624,91 +46898,57 @@
 
 
 
-  :
 
-
-
-
-
-
-  { echo "$as_me:$LINENO: checking whether wcwidth is declared" >&5
-echo $ECHO_N "checking whether wcwidth is declared... $ECHO_C" >&6; }
-if test "${ac_cv_have_decl_wcwidth+set}" = set; then
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_wctype_h='<'wctype.h'>'
+     else
+       { echo "$as_me:$LINENO: checking absolute name of <wctype.h>" >&5
+echo $ECHO_N "checking absolute name of <wctype.h>... $ECHO_C" >&6; }
+if test "${gl_cv_next_wctype_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+
+	  if test $ac_cv_header_wctype_h = yes; then
+	    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+#include <wctype.h>
 
-/* AIX 3.2.5 declares wcwidth in <string.h>. */
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
+_ACEOF
+	    	    	    	    gl_cv_next_wctype_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+	       sed -n '\#/wctype.h#{
+		 s#.*"\(.*/wctype.h\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'
+	  else
+	    gl_cv_next_wctype_h='<'wctype.h'>'
+	  fi
 
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_next_wctype_h" >&5
+echo "${ECHO_T}$gl_cv_next_wctype_h" >&6; }
+     fi
+     NEXT_WCTYPE_H=$gl_cv_next_wctype_h
 
-int
-main ()
-{
-#ifndef wcwidth
-  (void) wcwidth;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_wcwidth=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_have_decl_wcwidth=no
-fi
+    HAVE_WCTYPE_H=1
+  else
+    HAVE_WCTYPE_H=0
+  fi
+
+
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_wcwidth" >&5
-echo "${ECHO_T}$ac_cv_have_decl_wcwidth" >&6; }
-if test $ac_cv_have_decl_wcwidth = yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_WCWIDTH 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_WCWIDTH 0
-_ACEOF
 
 
-fi
 
 
 
@@ -44716,6 +46956,7 @@
 
 
 
+
   :
 
 
@@ -44871,17 +47112,27 @@
   :
 
 
-  LIBGNU_LIBDEPS="$gl_libdeps"
 
-  LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
 
 
 
+  gltests_libdeps=
+  gltests_ltlibdeps=
+
+
 
+  gl_source_base='tests'
 
 
 
-if test "$ac_cv_uname_s" = 'SunOS' -a "$ac_cv_prog_ac_ct_AR" = 'false' ; then
+
+  LIBGNU_LIBDEPS="$gl_libdeps"
+
+  LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
+
+
+
+if test "$ac_cv_uname_s" = 'SunOS' -a \( "x$ac_cv_prog_ac_ct_AR" = "x" -o "$ac_cv_prog_ac_ct_AR" = 'false' \) ; then
 	{ { echo "$as_me:$LINENO: error: No ar found for Solaris - is /usr/ccs/bin in PATH?" >&5
 echo "$as_me: error: No ar found for Solaris - is /usr/ccs/bin in PATH?" >&2;}
    { (exit 1); exit 1; }; }
@@ -45006,6 +47257,13 @@
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${USE_PARSE_INI_TRUE}" && test -z "${USE_PARSE_INI_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"USE_PARSE_INI\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_PARSE_INI\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"GL_COND_LIBTOOL\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -45030,6 +47288,22 @@
 
 
 
+    gltests_libobjs=
+    gltests_ltlibobjs=
+    if test -n "$gltests_LIBOBJS"; then
+      # Remove the extension.
+      sed_drop_objext='s/\.o$//;s/\.obj$//'
+      for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
+        gltests_libobjs="$gltests_libobjs $i.$ac_objext"
+        gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+      done
+    fi
+    gltests_LIBOBJS=$gltests_libobjs
+
+    gltests_LTLIBOBJS=$gltests_ltlibobjs
+
+
+
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -45329,7 +47603,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by nagios-plugins $as_me 1.4.11, which was
+This file was extended by nagios-plugins $as_me 1.4.12, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -45382,7 +47656,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-nagios-plugins config.status 1.4.11
+nagios-plugins config.status 1.4.12
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -45745,6 +48019,8 @@
 SOCKETLIBS!$SOCKETLIBS$ac_delim
 MATHLIBS!$MATHLIBS$ac_delim
 EXTRA_TEST!$EXTRA_TEST$ac_delim
+USE_PARSE_INI_TRUE!$USE_PARSE_INI_TRUE$ac_delim
+USE_PARSE_INI_FALSE!$USE_PARSE_INI_FALSE$ac_delim
 PGLIBS!$PGLIBS$ac_delim
 PGINCLUDE!$PGINCLUDE$ac_delim
 RADIUSLIBS!$RADIUSLIBS$ac_delim
@@ -45759,6 +48035,7 @@
 check_tcp_ssl!$check_tcp_ssl$ac_delim
 SSLLIBS!$SSLLIBS$ac_delim
 PATH_TO_PS!$PATH_TO_PS$ac_delim
+PST3CFLAGS!$PST3CFLAGS$ac_delim
 PATH_TO_PING!$PATH_TO_PING$ac_delim
 PATH_TO_PING6!$PATH_TO_PING6$ac_delim
 PATH_TO_NSLOOKUP!$PATH_TO_NSLOOKUP$ac_delim
@@ -45785,6 +48062,7 @@
 EXTRA_NETOBJS!$EXTRA_NETOBJS$ac_delim
 DEPLIBS!$DEPLIBS$ac_delim
 USE_NLS!$USE_NLS$ac_delim
+GETTEXT_MACRO_VERSION!$GETTEXT_MACRO_VERSION$ac_delim
 MSGFMT!$MSGFMT$ac_delim
 GMSGFMT!$GMSGFMT$ac_delim
 MSGFMT_015!$MSGFMT_015$ac_delim
@@ -45792,6 +48070,7 @@
 XGETTEXT!$XGETTEXT$ac_delim
 XGETTEXT_015!$XGETTEXT_015$ac_delim
 MSGMERGE!$MSGMERGE$ac_delim
+XGETTEXT_EXTRA_OPTIONS!$XGETTEXT_EXTRA_OPTIONS$ac_delim
 INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim
 LIBICONV!$LIBICONV$ac_delim
 LTLIBICONV!$LTLIBICONV$ac_delim
@@ -45805,19 +48084,152 @@
 ALLOCA!$ALLOCA$ac_delim
 ALLOCA_H!$ALLOCA_H$ac_delim
 ARPA_INET_H!$ARPA_INET_H$ac_delim
+INCLUDE_NEXT!$INCLUDE_NEXT$ac_delim
+NEXT_FLOAT_H!$NEXT_FLOAT_H$ac_delim
+FLOAT_H!$FLOAT_H$ac_delim
+GNULIB_CEILF!$GNULIB_CEILF$ac_delim
+GNULIB_CEILL!$GNULIB_CEILL$ac_delim
+GNULIB_FLOORF!$GNULIB_FLOORF$ac_delim
+GNULIB_FLOORL!$GNULIB_FLOORL$ac_delim
+GNULIB_FREXP!$GNULIB_FREXP$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+GNULIB_FREXPL!$GNULIB_FREXPL$ac_delim
+GNULIB_ISFINITE!$GNULIB_ISFINITE$ac_delim
+GNULIB_LDEXPL!$GNULIB_LDEXPL$ac_delim
+GNULIB_MATHL!$GNULIB_MATHL$ac_delim
+GNULIB_ROUND!$GNULIB_ROUND$ac_delim
+GNULIB_ROUNDF!$GNULIB_ROUNDF$ac_delim
+GNULIB_ROUNDL!$GNULIB_ROUNDL$ac_delim
+GNULIB_SIGNBIT!$GNULIB_SIGNBIT$ac_delim
+GNULIB_TRUNC!$GNULIB_TRUNC$ac_delim
+GNULIB_TRUNCF!$GNULIB_TRUNCF$ac_delim
+GNULIB_TRUNCL!$GNULIB_TRUNCL$ac_delim
+HAVE_DECL_ACOSL!$HAVE_DECL_ACOSL$ac_delim
+HAVE_DECL_ASINL!$HAVE_DECL_ASINL$ac_delim
+HAVE_DECL_ATANL!$HAVE_DECL_ATANL$ac_delim
+HAVE_DECL_COSL!$HAVE_DECL_COSL$ac_delim
+HAVE_DECL_EXPL!$HAVE_DECL_EXPL$ac_delim
+HAVE_DECL_FREXPL!$HAVE_DECL_FREXPL$ac_delim
+HAVE_DECL_LDEXPL!$HAVE_DECL_LDEXPL$ac_delim
+HAVE_DECL_LOGL!$HAVE_DECL_LOGL$ac_delim
+HAVE_DECL_SINL!$HAVE_DECL_SINL$ac_delim
+HAVE_DECL_SQRTL!$HAVE_DECL_SQRTL$ac_delim
+HAVE_DECL_TANL!$HAVE_DECL_TANL$ac_delim
+HAVE_DECL_TRUNC!$HAVE_DECL_TRUNC$ac_delim
+HAVE_DECL_TRUNCF!$HAVE_DECL_TRUNCF$ac_delim
+HAVE_DECL_TRUNCL!$HAVE_DECL_TRUNCL$ac_delim
+REPLACE_CEILF!$REPLACE_CEILF$ac_delim
+REPLACE_CEILL!$REPLACE_CEILL$ac_delim
+REPLACE_FLOORF!$REPLACE_FLOORF$ac_delim
+REPLACE_FLOORL!$REPLACE_FLOORL$ac_delim
+REPLACE_FREXP!$REPLACE_FREXP$ac_delim
+REPLACE_FREXPL!$REPLACE_FREXPL$ac_delim
+REPLACE_ISFINITE!$REPLACE_ISFINITE$ac_delim
+REPLACE_LDEXPL!$REPLACE_LDEXPL$ac_delim
+REPLACE_ROUND!$REPLACE_ROUND$ac_delim
+REPLACE_ROUNDF!$REPLACE_ROUNDF$ac_delim
+REPLACE_ROUNDL!$REPLACE_ROUNDL$ac_delim
+REPLACE_SIGNBIT!$REPLACE_SIGNBIT$ac_delim
+REPLACE_SIGNBIT_USING_GCC!$REPLACE_SIGNBIT_USING_GCC$ac_delim
+FLOORF_LIBM!$FLOORF_LIBM$ac_delim
+NEXT_SYS_SOCKET_H!$NEXT_SYS_SOCKET_H$ac_delim
+HAVE_SYS_SOCKET_H!$HAVE_SYS_SOCKET_H$ac_delim
+HAVE_WINSOCK2_H!$HAVE_WINSOCK2_H$ac_delim
+HAVE_WS2TCPIP_H!$HAVE_WS2TCPIP_H$ac_delim
 SYS_SOCKET_H!$SYS_SOCKET_H$ac_delim
 NEED_SETGID!$NEED_SETGID$ac_delim
 KMEM_GROUP!$KMEM_GROUP$ac_delim
 GETLOADAVG_LIBS!$GETLOADAVG_LIBS$ac_delim
 GETOPT_H!$GETOPT_H$ac_delim
+GLIBC21!$GLIBC21$ac_delim
+LOCALCHARSET_TESTS_ENVIRONMENT!$LOCALCHARSET_TESTS_ENVIRONMENT$ac_delim
+HAVE_MALLOC_POSIX!$HAVE_MALLOC_POSIX$ac_delim
+GNULIB_MALLOC_POSIX!$GNULIB_MALLOC_POSIX$ac_delim
+GNULIB_REALLOC_POSIX!$GNULIB_REALLOC_POSIX$ac_delim
+GNULIB_CALLOC_POSIX!$GNULIB_CALLOC_POSIX$ac_delim
+GNULIB_GETSUBOPT!$GNULIB_GETSUBOPT$ac_delim
+GNULIB_MKDTEMP!$GNULIB_MKDTEMP$ac_delim
+GNULIB_MKSTEMP!$GNULIB_MKSTEMP$ac_delim
+GNULIB_PUTENV!$GNULIB_PUTENV$ac_delim
+GNULIB_SETENV!$GNULIB_SETENV$ac_delim
+GNULIB_UNSETENV!$GNULIB_UNSETENV$ac_delim
+HAVE_CALLOC_POSIX!$HAVE_CALLOC_POSIX$ac_delim
+HAVE_GETSUBOPT!$HAVE_GETSUBOPT$ac_delim
+HAVE_MKDTEMP!$HAVE_MKDTEMP$ac_delim
+HAVE_REALLOC_POSIX!$HAVE_REALLOC_POSIX$ac_delim
+HAVE_SETENV!$HAVE_SETENV$ac_delim
+HAVE_UNSETENV!$HAVE_UNSETENV$ac_delim
+REPLACE_MKSTEMP!$REPLACE_MKSTEMP$ac_delim
+REPLACE_PUTENV!$REPLACE_PUTENV$ac_delim
+VOID_UNSETENV!$VOID_UNSETENV$ac_delim
+NEXT_MATH_H!$NEXT_MATH_H$ac_delim
+NEXT_NETINET_IN_H!$NEXT_NETINET_IN_H$ac_delim
+HAVE_NETINET_IN_H!$HAVE_NETINET_IN_H$ac_delim
 NETINET_IN_H!$NETINET_IN_H$ac_delim
-STDBOOL_H!$STDBOOL_H$ac_delim
-HAVE__BOOL!$HAVE__BOOL$ac_delim
-HAVE_LONG_LONG_INT!$HAVE_LONG_LONG_INT$ac_delim
-HAVE_UNSIGNED_LONG_LONG_INT!$HAVE_UNSIGNED_LONG_LONG_INT$ac_delim
-HAVE_INTTYPES_H!$HAVE_INTTYPES_H$ac_delim
-HAVE_SYS_TYPES_H!$HAVE_SYS_TYPES_H$ac_delim
-ABSOLUTE_STDINT_H!$ABSOLUTE_STDINT_H$ac_delim
+GNULIB_FPRINTF_POSIX!$GNULIB_FPRINTF_POSIX$ac_delim
+GNULIB_PRINTF_POSIX!$GNULIB_PRINTF_POSIX$ac_delim
+GNULIB_SNPRINTF!$GNULIB_SNPRINTF$ac_delim
+GNULIB_SPRINTF_POSIX!$GNULIB_SPRINTF_POSIX$ac_delim
+GNULIB_VFPRINTF_POSIX!$GNULIB_VFPRINTF_POSIX$ac_delim
+GNULIB_VPRINTF_POSIX!$GNULIB_VPRINTF_POSIX$ac_delim
+GNULIB_VSNPRINTF!$GNULIB_VSNPRINTF$ac_delim
+GNULIB_VSPRINTF_POSIX!$GNULIB_VSPRINTF_POSIX$ac_delim
+GNULIB_VASPRINTF!$GNULIB_VASPRINTF$ac_delim
+GNULIB_FOPEN!$GNULIB_FOPEN$ac_delim
+GNULIB_FREOPEN!$GNULIB_FREOPEN$ac_delim
+GNULIB_FSEEK!$GNULIB_FSEEK$ac_delim
+GNULIB_FSEEKO!$GNULIB_FSEEKO$ac_delim
+GNULIB_FTELL!$GNULIB_FTELL$ac_delim
+GNULIB_FTELLO!$GNULIB_FTELLO$ac_delim
+GNULIB_FFLUSH!$GNULIB_FFLUSH$ac_delim
+GNULIB_GETDELIM!$GNULIB_GETDELIM$ac_delim
+GNULIB_GETLINE!$GNULIB_GETLINE$ac_delim
+REPLACE_FPRINTF!$REPLACE_FPRINTF$ac_delim
+REPLACE_VFPRINTF!$REPLACE_VFPRINTF$ac_delim
+REPLACE_PRINTF!$REPLACE_PRINTF$ac_delim
+REPLACE_VPRINTF!$REPLACE_VPRINTF$ac_delim
+REPLACE_SNPRINTF!$REPLACE_SNPRINTF$ac_delim
+HAVE_DECL_SNPRINTF!$HAVE_DECL_SNPRINTF$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -45838,7 +48250,7 @@
 fi
 
 cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
+cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
 _ACEOF
 sed '
@@ -45859,6 +48271,31 @@
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+REPLACE_VSNPRINTF!$REPLACE_VSNPRINTF$ac_delim
+HAVE_DECL_VSNPRINTF!$HAVE_DECL_VSNPRINTF$ac_delim
+REPLACE_SPRINTF!$REPLACE_SPRINTF$ac_delim
+REPLACE_VSPRINTF!$REPLACE_VSPRINTF$ac_delim
+HAVE_VASPRINTF!$HAVE_VASPRINTF$ac_delim
+REPLACE_VASPRINTF!$REPLACE_VASPRINTF$ac_delim
+REPLACE_FOPEN!$REPLACE_FOPEN$ac_delim
+REPLACE_FREOPEN!$REPLACE_FREOPEN$ac_delim
+HAVE_FSEEKO!$HAVE_FSEEKO$ac_delim
+REPLACE_FSEEKO!$REPLACE_FSEEKO$ac_delim
+REPLACE_FSEEK!$REPLACE_FSEEK$ac_delim
+HAVE_FTELLO!$HAVE_FTELLO$ac_delim
+REPLACE_FTELLO!$REPLACE_FTELLO$ac_delim
+REPLACE_FTELL!$REPLACE_FTELL$ac_delim
+REPLACE_FFLUSH!$REPLACE_FFLUSH$ac_delim
+HAVE_DECL_GETDELIM!$HAVE_DECL_GETDELIM$ac_delim
+HAVE_DECL_GETLINE!$HAVE_DECL_GETLINE$ac_delim
+REPLACE_GETLINE!$REPLACE_GETLINE$ac_delim
+STDBOOL_H!$STDBOOL_H$ac_delim
+HAVE__BOOL!$HAVE__BOOL$ac_delim
+HAVE_LONG_LONG_INT!$HAVE_LONG_LONG_INT$ac_delim
+HAVE_UNSIGNED_LONG_LONG_INT!$HAVE_UNSIGNED_LONG_LONG_INT$ac_delim
+HAVE_INTTYPES_H!$HAVE_INTTYPES_H$ac_delim
+HAVE_SYS_TYPES_H!$HAVE_SYS_TYPES_H$ac_delim
+NEXT_STDINT_H!$NEXT_STDINT_H$ac_delim
 HAVE_STDINT_H!$HAVE_STDINT_H$ac_delim
 HAVE_SYS_INTTYPES_H!$HAVE_SYS_INTTYPES_H$ac_delim
 HAVE_SYS_BITYPES_H!$HAVE_SYS_BITYPES_H$ac_delim
@@ -45876,13 +48313,138 @@
 WCHAR_T_SUFFIX!$WCHAR_T_SUFFIX$ac_delim
 WINT_T_SUFFIX!$WINT_T_SUFFIX$ac_delim
 STDINT_H!$STDINT_H$ac_delim
-UNISTD_H!$UNISTD_H$ac_delim
-ABSOLUTE_UNISTD_H!$ABSOLUTE_UNISTD_H$ac_delim
+NEXT_STDIO_H!$NEXT_STDIO_H$ac_delim
+NEXT_STDLIB_H!$NEXT_STDLIB_H$ac_delim
+GNULIB_MEMMEM!$GNULIB_MEMMEM$ac_delim
+GNULIB_MEMPCPY!$GNULIB_MEMPCPY$ac_delim
+GNULIB_MEMRCHR!$GNULIB_MEMRCHR$ac_delim
+GNULIB_STPCPY!$GNULIB_STPCPY$ac_delim
+GNULIB_STPNCPY!$GNULIB_STPNCPY$ac_delim
+GNULIB_STRCHRNUL!$GNULIB_STRCHRNUL$ac_delim
+GNULIB_STRDUP!$GNULIB_STRDUP$ac_delim
+GNULIB_STRNDUP!$GNULIB_STRNDUP$ac_delim
+GNULIB_STRNLEN!$GNULIB_STRNLEN$ac_delim
+GNULIB_STRPBRK!$GNULIB_STRPBRK$ac_delim
+GNULIB_STRSEP!$GNULIB_STRSEP$ac_delim
+GNULIB_STRSTR!$GNULIB_STRSTR$ac_delim
+GNULIB_STRCASESTR!$GNULIB_STRCASESTR$ac_delim
+GNULIB_STRTOK_R!$GNULIB_STRTOK_R$ac_delim
+GNULIB_MBSLEN!$GNULIB_MBSLEN$ac_delim
+GNULIB_MBSNLEN!$GNULIB_MBSNLEN$ac_delim
+GNULIB_MBSCHR!$GNULIB_MBSCHR$ac_delim
+GNULIB_MBSRCHR!$GNULIB_MBSRCHR$ac_delim
+GNULIB_MBSSTR!$GNULIB_MBSSTR$ac_delim
+GNULIB_MBSCASECMP!$GNULIB_MBSCASECMP$ac_delim
+GNULIB_MBSNCASECMP!$GNULIB_MBSNCASECMP$ac_delim
+GNULIB_MBSPCASECMP!$GNULIB_MBSPCASECMP$ac_delim
+GNULIB_MBSCASESTR!$GNULIB_MBSCASESTR$ac_delim
+GNULIB_MBSCSPN!$GNULIB_MBSCSPN$ac_delim
+GNULIB_MBSPBRK!$GNULIB_MBSPBRK$ac_delim
+GNULIB_MBSSPN!$GNULIB_MBSSPN$ac_delim
+GNULIB_MBSSEP!$GNULIB_MBSSEP$ac_delim
+GNULIB_MBSTOK_R!$GNULIB_MBSTOK_R$ac_delim
+GNULIB_STRERROR!$GNULIB_STRERROR$ac_delim
+GNULIB_STRSIGNAL!$GNULIB_STRSIGNAL$ac_delim
+HAVE_DECL_MEMMEM!$HAVE_DECL_MEMMEM$ac_delim
+HAVE_MEMPCPY!$HAVE_MEMPCPY$ac_delim
+HAVE_DECL_MEMRCHR!$HAVE_DECL_MEMRCHR$ac_delim
+HAVE_STPCPY!$HAVE_STPCPY$ac_delim
+HAVE_STPNCPY!$HAVE_STPNCPY$ac_delim
+HAVE_STRCHRNUL!$HAVE_STRCHRNUL$ac_delim
+HAVE_DECL_STRDUP!$HAVE_DECL_STRDUP$ac_delim
+HAVE_STRNDUP!$HAVE_STRNDUP$ac_delim
+HAVE_DECL_STRNDUP!$HAVE_DECL_STRNDUP$ac_delim
+HAVE_DECL_STRNLEN!$HAVE_DECL_STRNLEN$ac_delim
+HAVE_STRPBRK!$HAVE_STRPBRK$ac_delim
+HAVE_STRSEP!$HAVE_STRSEP$ac_delim
+HAVE_STRCASESTR!$HAVE_STRCASESTR$ac_delim
+HAVE_DECL_STRTOK_R!$HAVE_DECL_STRTOK_R$ac_delim
+HAVE_DECL_STRERROR!$HAVE_DECL_STRERROR$ac_delim
+HAVE_DECL_STRSIGNAL!$HAVE_DECL_STRSIGNAL$ac_delim
+REPLACE_STRERROR!$REPLACE_STRERROR$ac_delim
+REPLACE_STRSIGNAL!$REPLACE_STRSIGNAL$ac_delim
+REPLACE_MEMMEM!$REPLACE_MEMMEM$ac_delim
+REPLACE_STRCASESTR!$REPLACE_STRCASESTR$ac_delim
+REPLACE_STRSTR!$REPLACE_STRSTR$ac_delim
+NEXT_STRING_H!$NEXT_STRING_H$ac_delim
+GNULIB_CHOWN!$GNULIB_CHOWN$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-4.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+GNULIB_DUP2!$GNULIB_DUP2$ac_delim
+GNULIB_FCHDIR!$GNULIB_FCHDIR$ac_delim
+GNULIB_FTRUNCATE!$GNULIB_FTRUNCATE$ac_delim
+GNULIB_GETCWD!$GNULIB_GETCWD$ac_delim
+GNULIB_GETLOGIN_R!$GNULIB_GETLOGIN_R$ac_delim
+GNULIB_GETPAGESIZE!$GNULIB_GETPAGESIZE$ac_delim
+GNULIB_LCHOWN!$GNULIB_LCHOWN$ac_delim
+GNULIB_LSEEK!$GNULIB_LSEEK$ac_delim
+GNULIB_READLINK!$GNULIB_READLINK$ac_delim
+GNULIB_SLEEP!$GNULIB_SLEEP$ac_delim
+HAVE_DUP2!$HAVE_DUP2$ac_delim
+HAVE_FTRUNCATE!$HAVE_FTRUNCATE$ac_delim
+HAVE_GETPAGESIZE!$HAVE_GETPAGESIZE$ac_delim
+HAVE_READLINK!$HAVE_READLINK$ac_delim
+HAVE_SLEEP!$HAVE_SLEEP$ac_delim
+HAVE_DECL_GETLOGIN_R!$HAVE_DECL_GETLOGIN_R$ac_delim
+HAVE_OS_H!$HAVE_OS_H$ac_delim
+HAVE_SYS_PARAM_H!$HAVE_SYS_PARAM_H$ac_delim
+REPLACE_CHOWN!$REPLACE_CHOWN$ac_delim
+REPLACE_FCHDIR!$REPLACE_FCHDIR$ac_delim
+REPLACE_GETCWD!$REPLACE_GETCWD$ac_delim
+REPLACE_GETPAGESIZE!$REPLACE_GETPAGESIZE$ac_delim
+REPLACE_LCHOWN!$REPLACE_LCHOWN$ac_delim
+REPLACE_LSEEK!$REPLACE_LSEEK$ac_delim
+NEXT_UNISTD_H!$NEXT_UNISTD_H$ac_delim
+HAVE_UNISTD_H!$HAVE_UNISTD_H$ac_delim
 EOVERFLOW!$EOVERFLOW$ac_delim
-ABSOLUTE_WCHAR_H!$ABSOLUTE_WCHAR_H$ac_delim
+GNULIB_WCWIDTH!$GNULIB_WCWIDTH$ac_delim
+HAVE_DECL_WCWIDTH!$HAVE_DECL_WCWIDTH$ac_delim
+REPLACE_WCWIDTH!$REPLACE_WCWIDTH$ac_delim
 WCHAR_H!$WCHAR_H$ac_delim
+HAVE_WCHAR_H!$HAVE_WCHAR_H$ac_delim
+NEXT_WCHAR_H!$NEXT_WCHAR_H$ac_delim
+HAVE_ISWCNTRL!$HAVE_ISWCNTRL$ac_delim
 HAVE_WINT_T!$HAVE_WINT_T$ac_delim
-ABSOLUTE_WCTYPE_H!$ABSOLUTE_WCTYPE_H$ac_delim
+NEXT_WCTYPE_H!$NEXT_WCTYPE_H$ac_delim
 HAVE_WCTYPE_H!$HAVE_WCTYPE_H$ac_delim
 WCTYPE_H!$WCTYPE_H$ac_delim
 LIBGNU_LIBDEPS!$LIBGNU_LIBDEPS$ac_delim
@@ -45890,9 +48452,11 @@
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 gl_LIBOBJS!$gl_LIBOBJS$ac_delim
 gl_LTLIBOBJS!$gl_LTLIBOBJS$ac_delim
+gltests_LIBOBJS!$gltests_LIBOBJS$ac_delim
+gltests_LTLIBOBJS!$gltests_LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 31; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 45; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -45910,7 +48474,7 @@
 fi
 
 cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof
+cat >"\$tmp/subs-5.sed" <<\CEOF$ac_eof
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
 _ACEOF
 sed '
@@ -46179,7 +48743,7 @@
 s&@INSTALL@&$ac_INSTALL&;t t
 s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" >$tmp/out
+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" | sed -f "$tmp/subs-4.sed" | sed -f "$tmp/subs-5.sed" >$tmp/out
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
@@ -46613,6 +49177,7 @@
 echo "                      --with-mysql: $with_mysql"
 echo "                    --with-openssl: $with_openssl"
 echo "                     --with-gnutls: $with_gnutls"
+echo "               --enable-extra-opts: $enable_extra_opts"
 echo "                       --with-perl: $with_perl"
 echo "             --enable-perl-modules: $enable_perl_modules"
 echo "                     --with-cgiurl: $with_cgiurl"
diff -uNr nagios-plugins-1.4.11/configure.in nagios-plugins-1.4.12/configure.in
--- nagios-plugins-1.4.11/configure.in	2007-12-13 23:39:36.000000000 +0100
+++ nagios-plugins-1.4.12/configure.in	2008-05-28 00:01:05.000000000 +0200
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_REVISION ($Revision: 1873 $)
+AC_REVISION ($Revision: 2004 $)
 AC_PREREQ(2.59)
-AC_INIT(nagios-plugins,1.4.11)
+AC_INIT(nagios-plugins,1.4.12)
 AC_CONFIG_SRCDIR(NPTest.pm)
 AC_CONFIG_FILES(gl/Makefile)
 AC_CONFIG_AUX_DIR(build-aux)
@@ -48,6 +48,7 @@
 AM_PROG_CC_C_O
 
 AC_FUNC_ERROR_AT_LINE
+AC_SYS_LARGEFILE
 
 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
 
@@ -159,6 +160,19 @@
 	AC_SUBST(EXTRA_TEST)
 	)
 
+dnl INI Parsing
+AC_ARG_ENABLE(extra-opts,
+  AC_HELP_STRING([--enable-extra-opts], 
+		[Enables parsing of plugins ini config files for extra options (default: no)]),
+	[enable_extra_opts=$enableval],
+	[enable_extra_opts=no])
+AM_CONDITIONAL([USE_PARSE_INI],[test "$enable_extra_opts" = "yes"])
+if test "$enable_extra_opts" = "yes" ; then
+	EXTRA_TEST="$EXTRA_TEST test_ini test_opts"
+	AC_SUBST(EXTRA_TEST)
+	AC_DEFINE(NP_EXTRA_OPTS,[1],[Enable INI file parsing.])
+fi
+
 dnl Check for PostgreSQL libraries
 _SAVEDLIBS="$LIBS"
 _SAVEDCPPFLAGS="$CPPFLAGS"
@@ -167,7 +181,7 @@
 		[sets path to pgsql installation]),
 	PGSQL=$withval,)
 AC_CHECK_LIB(crypt,main)
-if test "$ac_cv_lib_crypt_main" = "yes"; then
+if test "$ac_cv_lib_crypt_main" = "yes" -a "x$PGSQL" != "xno"; then
   if test -n "$PGSQL"; then
     LDFLAGS="$LDFLAGS -L$PGSQL/lib"
     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
@@ -323,6 +337,14 @@
   CPPFLAGS="$_SAVEDCPPFLAGS"
 fi
 
+dnl *** The following block comes from wget configure.ac ***
+dnl Unfortunately, as of this writing (OpenSSL 0.9.6), the libcrypto
+dnl shared library doesn't record its dependency on libdl, so we
+dnl need to check for it ourselves so we won't fail to link due to a
+dnl lack of -ldl.  Most OSes use dlopen(), but HP-UX uses
+dnl shl_load().
+AC_CHECK_LIB(dl,dlopen)
+AC_CHECK_LIB(dl,shl_load)
 
 dnl openssl detection/configuration
 if ! test x"$with_openssl" = x"no"; then
@@ -434,6 +456,7 @@
 AC_TYPE_PID_T
 AC_TYPE_SIZE_T
 AC_TYPE_SIGNAL
+AC_TYPE_MBSTATE_T
 
 AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[
 AC_TRY_LINK([#include <stdarg.h>
@@ -511,16 +534,49 @@
 	ac_cv_ps_cols="$PS_COLS"
 	AC_MSG_RESULT([(command-line) $ac_cv_ps_command])
 
+dnl Now using the pst3/kmem hack for solaris systems to avoid truncation
+elif test "$ac_cv_uname_s" = "SunOS"; then
+        #
+        # this is a very, very ugly hack, to hardcode the location for plugins
+        #
+        if test "$libexecdir" = '${exec_prefix}/libexec'; then
+                if test "$exec_prefix" = "NONE"; then
+                        if test "$prefix" = "NONE"; then
+                                pst3="$ac_default_prefix/libexec/pst3"
+                        else
+                                pst3="$prefix/libexec/pst3"
+                        fi
+                else
+                        pst3="$exec_prefix/libexec/pst3"
+                fi
+        else
+                pst3="$libexecdir/pst3"
+        fi
+        ac_cv_ps_command="$pst3"
+        ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+        ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+        ac_cv_ps_cols=9
+        AC_MSG_RESULT([using nagios-plugins internal ps command (pst3) for solaris])
+	if test `isainfo -b` = 64 ; then
+		PST3CFLAGS="-m64"
+		AC_SUBST(PST3CFLAGS)
+		AC_MSG_NOTICE([using 64bit pst3])	
+	else
+		AC_MSG_NOTICE([using 32bit pst3])
+	fi
+        EXTRAS_ROOT="$EXTRAS_ROOT pst3"
+
+dnl Removing this for the moment - Ton
 dnl Using /usr/ucb/ps on Solaris systems, to avoid truncation
 dnl Limitation that command name is not available
-elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \
-	egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null
-then
-	ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]"
-	ac_cv_ps_command="/usr/ucb/ps -alxwwn"
-	ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"]
-	ac_cv_ps_cols=8
-	AC_MSG_RESULT([$ac_cv_ps_command])
+dnl elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \
+dnl	egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null
+dnl then
+dnl 	ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]"
+dnl 	ac_cv_ps_command="/usr/ucb/ps -alxwwn"
+dnl 	ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"]
+dnl 	ac_cv_ps_cols=8
+dnl 	AC_MSG_RESULT([$ac_cv_ps_command])
 
 dnl Some gnu/linux systems (debian for one) don't like -axwo and need axwo.
 dnl so test for this first...
@@ -1475,9 +1531,9 @@
 		AC_DEFINE(__bsd__,1,[bsd specific code in check_dhcp.c])
 	;;
 	*linux*)
-		AC_DEFINE(__linux__,1,[sun specific code in check_dhcp.c])
+		AC_DEFINE(__linux__,1,[linux specific code in check_dhcp.c])
 	;;
-	*sun* | solaris*)
+	*sun* | *solaris*)
 		AC_DEFINE(__sun__,1,[sun specific code in check_dhcp.c])
 	;;
 	*hpux*)  
@@ -1507,6 +1563,7 @@
 	[ac_cv_enable_redhat_pthread_workaround=test])
 if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then
 	if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
+		AC_MSG_NOTICE([See http://nagiosplugins.org/faq/compile/configure_appears_to_hang if this next part takes a long time])
 		AC_MSG_CHECKING(for redhat spopen problem)
 		( cd config_test && make && make test ) > /dev/null 2>&1
 		if test $? -eq 0 ; then
@@ -1534,7 +1591,7 @@
 gl_INIT
 
 dnl Some helpful common compile errors checked here
-if test "$ac_cv_uname_s" = 'SunOS' -a "$ac_cv_prog_ac_ct_AR" = 'false' ; then
+if test "$ac_cv_uname_s" = 'SunOS' -a \( "x$ac_cv_prog_ac_ct_AR" = "x" -o "$ac_cv_prog_ac_ct_AR" = 'false' \) ; then
 	AC_MSG_ERROR(No ar found for Solaris - is /usr/ccs/bin in PATH?)
 fi
 
@@ -1585,6 +1642,7 @@
 ACX_FEATURE([with],[mysql])
 ACX_FEATURE([with],[openssl])
 ACX_FEATURE([with],[gnutls])
+ACX_FEATURE([enable],[extra-opts])
 ACX_FEATURE([with],[perl])
 ACX_FEATURE([enable],[perl-modules])
 ACX_FEATURE([with],[cgiurl])
diff -uNr nagios-plugins-1.4.11/gl/alloca.c nagios-plugins-1.4.12/gl/alloca.c
--- nagios-plugins-1.4.11/gl/alloca.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/alloca.c	2008-02-12 12:07:18.000000000 +0100
@@ -486,4 +486,4 @@
 #  endif /* CRAY */
 
 # endif /* no alloca */
-#endif /* not GCC version 2 */
+#endif /* not GCC version 3 */
diff -uNr nagios-plugins-1.4.11/gl/alloca_.h nagios-plugins-1.4.12/gl/alloca_.h
--- nagios-plugins-1.4.11/gl/alloca_.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/alloca_.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,54 +0,0 @@
-/* Memory allocation on the stack.
-
-   Copyright (C) 1995, 1999, 2001, 2002, 2003, 2004, 2006 Free Software
-   Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published
-   by the Free Software Foundation; either version 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
-
-/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
-   means there is a real alloca function.  */
-#ifndef _GNULIB_ALLOCA_H
-# define _GNULIB_ALLOCA_H
-
-/* alloca (N) returns a pointer to N bytes of memory
-   allocated on the stack, which will last until the function returns.
-   Use of alloca should be avoided:
-     - inside arguments of function calls - undefined behaviour,
-     - in inline functions - the allocation may actually last until the
-       calling function returns,
-     - for huge N (say, N >= 65536) - you never know how large (or small)
-       the stack is, and when the stack cannot fulfill the memory allocation
-       request, the program just crashes.
- */
-
-#ifndef alloca
-# ifdef __GNUC__
-#  define alloca __builtin_alloca
-# elif defined _AIX
-#  define alloca __alloca
-# elif defined _MSC_VER
-#  include <malloc.h>
-#  define alloca _alloca
-# else
-#  include <stddef.h>
-#  ifdef  __cplusplus
-extern "C"
-#  endif
-void *alloca (size_t);
-# endif
-#endif
-
-#endif /* _GNULIB_ALLOCA_H */
diff -uNr nagios-plugins-1.4.11/gl/alloca.in.h nagios-plugins-1.4.12/gl/alloca.in.h
--- nagios-plugins-1.4.11/gl/alloca.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/alloca.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,54 @@
+/* Memory allocation on the stack.
+
+   Copyright (C) 1995, 1999, 2001-2004, 2006-2007 Free Software
+   Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published
+   by the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
+
+/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
+   means there is a real alloca function.  */
+#ifndef _GL_ALLOCA_H
+#define _GL_ALLOCA_H
+
+/* alloca (N) returns a pointer to N bytes of memory
+   allocated on the stack, which will last until the function returns.
+   Use of alloca should be avoided:
+     - inside arguments of function calls - undefined behaviour,
+     - in inline functions - the allocation may actually last until the
+       calling function returns,
+     - for huge N (say, N >= 65536) - you never know how large (or small)
+       the stack is, and when the stack cannot fulfill the memory allocation
+       request, the program just crashes.
+ */
+
+#ifndef alloca
+# ifdef __GNUC__
+#  define alloca __builtin_alloca
+# elif defined _AIX
+#  define alloca __alloca
+# elif defined _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  include <stddef.h>
+#  ifdef  __cplusplus
+extern "C"
+#  endif
+void *alloca (size_t);
+# endif
+#endif
+
+#endif /* _GL_ALLOCA_H */
diff -uNr nagios-plugins-1.4.11/gl/asnprintf.c nagios-plugins-1.4.12/gl/asnprintf.c
--- nagios-plugins-1.4.11/gl/asnprintf.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/asnprintf.c	2008-02-12 12:07:18.000000000 +0100
@@ -3,7 +3,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
diff -uNr nagios-plugins-1.4.11/gl/asprintf.c nagios-plugins-1.4.12/gl/asprintf.c
--- nagios-plugins-1.4.11/gl/asprintf.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/asprintf.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,9 +1,9 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006-2007 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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -18,7 +18,11 @@
 #include <config.h>
 
 /* Specification.  */
-#include "vasprintf.h"
+#ifdef IN_LIBASPRINTF
+# include "vasprintf.h"
+#else
+# include <stdio.h>
+#endif
 
 #include <stdarg.h>
 
diff -uNr nagios-plugins-1.4.11/gl/base64.c nagios-plugins-1.4.12/gl/base64.c
--- nagios-plugins-1.4.11/gl/base64.c	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/base64.c	2008-02-12 13:03:58.000000000 +0100
@@ -0,0 +1,425 @@
+/* base64.c -- Encode binary data using printable characters.
+   Copyright (C) 1999, 2000, 2001, 2004, 2005, 2006 Free Software
+   Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Simon Josefsson.  Partially adapted from GNU MailUtils
+ * (mailbox/filter_trans.c, as of 2004-11-28).  Improved by review
+ * from Paul Eggert, Bruno Haible, and Stepan Kasal.
+ *
+ * See also RFC 3548 <http://www.ietf.org/rfc/rfc3548.txt>.
+ *
+ * Be careful with error checking.  Here is how you would typically
+ * use these functions:
+ *
+ * bool ok = base64_decode_alloc (in, inlen, &out, &outlen);
+ * if (!ok)
+ *   FAIL: input was not valid base64
+ * if (out == NULL)
+ *   FAIL: memory allocation error
+ * OK: data in OUT/OUTLEN
+ *
+ * size_t outlen = base64_encode_alloc (in, inlen, &out);
+ * if (out == NULL && outlen == 0 && inlen != 0)
+ *   FAIL: input too long
+ * if (out == NULL)
+ *   FAIL: memory allocation error
+ * OK: data in OUT/OUTLEN.
+ *
+ */
+
+#include <config.h>
+
+/* Get prototype. */
+#include "base64.h"
+
+/* Get malloc. */
+#include <stdlib.h>
+
+/* Get UCHAR_MAX. */
+#include <limits.h>
+
+/* C89 compliant way to cast 'char' to 'unsigned char'. */
+static inline unsigned char
+to_uchar (char ch)
+{
+  return ch;
+}
+
+/* Base64 encode IN array of size INLEN into OUT array of size OUTLEN.
+   If OUTLEN is less than BASE64_LENGTH(INLEN), write as many bytes as
+   possible.  If OUTLEN is larger than BASE64_LENGTH(INLEN), also zero
+   terminate the output buffer. */
+void
+base64_encode (const char *restrict in, size_t inlen,
+	       char *restrict out, size_t outlen)
+{
+  static const char b64str[64] =
+    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+  while (inlen && outlen)
+    {
+      *out++ = b64str[(to_uchar (in[0]) >> 2) & 0x3f];
+      if (!--outlen)
+	break;
+      *out++ = b64str[((to_uchar (in[0]) << 4)
+		       + (--inlen ? to_uchar (in[1]) >> 4 : 0))
+		      & 0x3f];
+      if (!--outlen)
+	break;
+      *out++ =
+	(inlen
+	 ? b64str[((to_uchar (in[1]) << 2)
+		   + (--inlen ? to_uchar (in[2]) >> 6 : 0))
+		  & 0x3f]
+	 : '=');
+      if (!--outlen)
+	break;
+      *out++ = inlen ? b64str[to_uchar (in[2]) & 0x3f] : '=';
+      if (!--outlen)
+	break;
+      if (inlen)
+	inlen--;
+      if (inlen)
+	in += 3;
+    }
+
+  if (outlen)
+    *out = '\0';
+}
+
+/* Allocate a buffer and store zero terminated base64 encoded data
+   from array IN of size INLEN, returning BASE64_LENGTH(INLEN), i.e.,
+   the length of the encoded data, excluding the terminating zero.  On
+   return, the OUT variable will hold a pointer to newly allocated
+   memory that must be deallocated by the caller.  If output string
+   length would overflow, 0 is returned and OUT is set to NULL.  If
+   memory allocation failed, OUT is set to NULL, and the return value
+   indicates length of the requested memory block, i.e.,
+   BASE64_LENGTH(inlen) + 1. */
+size_t
+base64_encode_alloc (const char *in, size_t inlen, char **out)
+{
+  size_t outlen = 1 + BASE64_LENGTH (inlen);
+
+  /* Check for overflow in outlen computation.
+   *
+   * If there is no overflow, outlen >= inlen.
+   *
+   * If the operation (inlen + 2) overflows then it yields at most +1, so
+   * outlen is 0.
+   *
+   * If the multiplication overflows, we lose at least half of the
+   * correct value, so the result is < ((inlen + 2) / 3) * 2, which is
+   * less than (inlen + 2) * 0.66667, which is less than inlen as soon as
+   * (inlen > 4).
+   */
+  if (inlen > outlen)
+    {
+      *out = NULL;
+      return 0;
+    }
+
+  *out = malloc (outlen);
+  if (!*out)
+    return outlen;
+
+  base64_encode (in, inlen, *out, outlen);
+
+  return outlen - 1;
+}
+
+/* With this approach this file works independent of the charset used
+   (think EBCDIC).  However, it does assume that the characters in the
+   Base64 alphabet (A-Za-z0-9+/) are encoded in 0..255.  POSIX
+   1003.1-2001 require that char and unsigned char are 8-bit
+   quantities, though, taking care of that problem.  But this may be a
+   potential problem on non-POSIX C99 platforms.
+
+   IBM C V6 for AIX mishandles "#define B64(x) ...'x'...", so use "_"
+   as the formal parameter rather than "x".  */
+#define B64(_)					\
+  ((_) == 'A' ? 0				\
+   : (_) == 'B' ? 1				\
+   : (_) == 'C' ? 2				\
+   : (_) == 'D' ? 3				\
+   : (_) == 'E' ? 4				\
+   : (_) == 'F' ? 5				\
+   : (_) == 'G' ? 6				\
+   : (_) == 'H' ? 7				\
+   : (_) == 'I' ? 8				\
+   : (_) == 'J' ? 9				\
+   : (_) == 'K' ? 10				\
+   : (_) == 'L' ? 11				\
+   : (_) == 'M' ? 12				\
+   : (_) == 'N' ? 13				\
+   : (_) == 'O' ? 14				\
+   : (_) == 'P' ? 15				\
+   : (_) == 'Q' ? 16				\
+   : (_) == 'R' ? 17				\
+   : (_) == 'S' ? 18				\
+   : (_) == 'T' ? 19				\
+   : (_) == 'U' ? 20				\
+   : (_) == 'V' ? 21				\
+   : (_) == 'W' ? 22				\
+   : (_) == 'X' ? 23				\
+   : (_) == 'Y' ? 24				\
+   : (_) == 'Z' ? 25				\
+   : (_) == 'a' ? 26				\
+   : (_) == 'b' ? 27				\
+   : (_) == 'c' ? 28				\
+   : (_) == 'd' ? 29				\
+   : (_) == 'e' ? 30				\
+   : (_) == 'f' ? 31				\
+   : (_) == 'g' ? 32				\
+   : (_) == 'h' ? 33				\
+   : (_) == 'i' ? 34				\
+   : (_) == 'j' ? 35				\
+   : (_) == 'k' ? 36				\
+   : (_) == 'l' ? 37				\
+   : (_) == 'm' ? 38				\
+   : (_) == 'n' ? 39				\
+   : (_) == 'o' ? 40				\
+   : (_) == 'p' ? 41				\
+   : (_) == 'q' ? 42				\
+   : (_) == 'r' ? 43				\
+   : (_) == 's' ? 44				\
+   : (_) == 't' ? 45				\
+   : (_) == 'u' ? 46				\
+   : (_) == 'v' ? 47				\
+   : (_) == 'w' ? 48				\
+   : (_) == 'x' ? 49				\
+   : (_) == 'y' ? 50				\
+   : (_) == 'z' ? 51				\
+   : (_) == '0' ? 52				\
+   : (_) == '1' ? 53				\
+   : (_) == '2' ? 54				\
+   : (_) == '3' ? 55				\
+   : (_) == '4' ? 56				\
+   : (_) == '5' ? 57				\
+   : (_) == '6' ? 58				\
+   : (_) == '7' ? 59				\
+   : (_) == '8' ? 60				\
+   : (_) == '9' ? 61				\
+   : (_) == '+' ? 62				\
+   : (_) == '/' ? 63				\
+   : -1)
+
+static const signed char b64[0x100] = {
+  B64 (0), B64 (1), B64 (2), B64 (3),
+  B64 (4), B64 (5), B64 (6), B64 (7),
+  B64 (8), B64 (9), B64 (10), B64 (11),
+  B64 (12), B64 (13), B64 (14), B64 (15),
+  B64 (16), B64 (17), B64 (18), B64 (19),
+  B64 (20), B64 (21), B64 (22), B64 (23),
+  B64 (24), B64 (25), B64 (26), B64 (27),
+  B64 (28), B64 (29), B64 (30), B64 (31),
+  B64 (32), B64 (33), B64 (34), B64 (35),
+  B64 (36), B64 (37), B64 (38), B64 (39),
+  B64 (40), B64 (41), B64 (42), B64 (43),
+  B64 (44), B64 (45), B64 (46), B64 (47),
+  B64 (48), B64 (49), B64 (50), B64 (51),
+  B64 (52), B64 (53), B64 (54), B64 (55),
+  B64 (56), B64 (57), B64 (58), B64 (59),
+  B64 (60), B64 (61), B64 (62), B64 (63),
+  B64 (64), B64 (65), B64 (66), B64 (67),
+  B64 (68), B64 (69), B64 (70), B64 (71),
+  B64 (72), B64 (73), B64 (74), B64 (75),
+  B64 (76), B64 (77), B64 (78), B64 (79),
+  B64 (80), B64 (81), B64 (82), B64 (83),
+  B64 (84), B64 (85), B64 (86), B64 (87),
+  B64 (88), B64 (89), B64 (90), B64 (91),
+  B64 (92), B64 (93), B64 (94), B64 (95),
+  B64 (96), B64 (97), B64 (98), B64 (99),
+  B64 (100), B64 (101), B64 (102), B64 (103),
+  B64 (104), B64 (105), B64 (106), B64 (107),
+  B64 (108), B64 (109), B64 (110), B64 (111),
+  B64 (112), B64 (113), B64 (114), B64 (115),
+  B64 (116), B64 (117), B64 (118), B64 (119),
+  B64 (120), B64 (121), B64 (122), B64 (123),
+  B64 (124), B64 (125), B64 (126), B64 (127),
+  B64 (128), B64 (129), B64 (130), B64 (131),
+  B64 (132), B64 (133), B64 (134), B64 (135),
+  B64 (136), B64 (137), B64 (138), B64 (139),
+  B64 (140), B64 (141), B64 (142), B64 (143),
+  B64 (144), B64 (145), B64 (146), B64 (147),
+  B64 (148), B64 (149), B64 (150), B64 (151),
+  B64 (152), B64 (153), B64 (154), B64 (155),
+  B64 (156), B64 (157), B64 (158), B64 (159),
+  B64 (160), B64 (161), B64 (162), B64 (163),
+  B64 (164), B64 (165), B64 (166), B64 (167),
+  B64 (168), B64 (169), B64 (170), B64 (171),
+  B64 (172), B64 (173), B64 (174), B64 (175),
+  B64 (176), B64 (177), B64 (178), B64 (179),
+  B64 (180), B64 (181), B64 (182), B64 (183),
+  B64 (184), B64 (185), B64 (186), B64 (187),
+  B64 (188), B64 (189), B64 (190), B64 (191),
+  B64 (192), B64 (193), B64 (194), B64 (195),
+  B64 (196), B64 (197), B64 (198), B64 (199),
+  B64 (200), B64 (201), B64 (202), B64 (203),
+  B64 (204), B64 (205), B64 (206), B64 (207),
+  B64 (208), B64 (209), B64 (210), B64 (211),
+  B64 (212), B64 (213), B64 (214), B64 (215),
+  B64 (216), B64 (217), B64 (218), B64 (219),
+  B64 (220), B64 (221), B64 (222), B64 (223),
+  B64 (224), B64 (225), B64 (226), B64 (227),
+  B64 (228), B64 (229), B64 (230), B64 (231),
+  B64 (232), B64 (233), B64 (234), B64 (235),
+  B64 (236), B64 (237), B64 (238), B64 (239),
+  B64 (240), B64 (241), B64 (242), B64 (243),
+  B64 (244), B64 (245), B64 (246), B64 (247),
+  B64 (248), B64 (249), B64 (250), B64 (251),
+  B64 (252), B64 (253), B64 (254), B64 (255)
+};
+
+#if UCHAR_MAX == 255
+# define uchar_in_range(c) true
+#else
+# define uchar_in_range(c) ((c) <= 255)
+#endif
+
+/* Return true if CH is a character from the Base64 alphabet, and
+   false otherwise.  Note that '=' is padding and not considered to be
+   part of the alphabet.  */
+bool
+isbase64 (char ch)
+{
+  return uchar_in_range (to_uchar (ch)) && 0 <= b64[to_uchar (ch)];
+}
+
+/* Decode base64 encoded input array IN of length INLEN to output
+   array OUT that can hold *OUTLEN bytes.  Return true if decoding was
+   successful, i.e. if the input was valid base64 data, false
+   otherwise.  If *OUTLEN is too small, as many bytes as possible will
+   be written to OUT.  On return, *OUTLEN holds the length of decoded
+   bytes in OUT.  Note that as soon as any non-alphabet characters are
+   encountered, decoding is stopped and false is returned.  This means
+   that, when applicable, you must remove any line terminators that is
+   part of the data stream before calling this function.  */
+bool
+base64_decode (const char *restrict in, size_t inlen,
+	       char *restrict out, size_t *outlen)
+{
+  size_t outleft = *outlen;
+
+  while (inlen >= 2)
+    {
+      if (!isbase64 (in[0]) || !isbase64 (in[1]))
+	break;
+
+      if (outleft)
+	{
+	  *out++ = ((b64[to_uchar (in[0])] << 2)
+		    | (b64[to_uchar (in[1])] >> 4));
+	  outleft--;
+	}
+
+      if (inlen == 2)
+	break;
+
+      if (in[2] == '=')
+	{
+	  if (inlen != 4)
+	    break;
+
+	  if (in[3] != '=')
+	    break;
+
+	}
+      else
+	{
+	  if (!isbase64 (in[2]))
+	    break;
+
+	  if (outleft)
+	    {
+	      *out++ = (((b64[to_uchar (in[1])] << 4) & 0xf0)
+			| (b64[to_uchar (in[2])] >> 2));
+	      outleft--;
+	    }
+
+	  if (inlen == 3)
+	    break;
+
+	  if (in[3] == '=')
+	    {
+	      if (inlen != 4)
+		break;
+	    }
+	  else
+	    {
+	      if (!isbase64 (in[3]))
+		break;
+
+	      if (outleft)
+		{
+		  *out++ = (((b64[to_uchar (in[2])] << 6) & 0xc0)
+			    | b64[to_uchar (in[3])]);
+		  outleft--;
+		}
+	    }
+	}
+
+      in += 4;
+      inlen -= 4;
+    }
+
+  *outlen -= outleft;
+
+  if (inlen != 0)
+    return false;
+
+  return true;
+}
+
+/* Allocate an output buffer in *OUT, and decode the base64 encoded
+   data stored in IN of size INLEN to the *OUT buffer.  On return, the
+   size of the decoded data is stored in *OUTLEN.  OUTLEN may be NULL,
+   if the caller is not interested in the decoded length.  *OUT may be
+   NULL to indicate an out of memory error, in which case *OUTLEN
+   contains the size of the memory block needed.  The function returns
+   true on successful decoding and memory allocation errors.  (Use the
+   *OUT and *OUTLEN parameters to differentiate between successful
+   decoding and memory error.)  The function returns false if the
+   input was invalid, in which case *OUT is NULL and *OUTLEN is
+   undefined. */
+bool
+base64_decode_alloc (const char *in, size_t inlen, char **out,
+		     size_t *outlen)
+{
+  /* This may allocate a few bytes too much, depending on input,
+     but it's not worth the extra CPU time to compute the exact amount.
+     The exact amount is 3 * inlen / 4, minus 1 if the input ends
+     with "=" and minus another 1 if the input ends with "==".
+     Dividing before multiplying avoids the possibility of overflow.  */
+  size_t needlen = 3 * (inlen / 4) + 2;
+
+  *out = malloc (needlen);
+  if (!*out)
+    return true;
+
+  if (!base64_decode (in, inlen, *out, &needlen))
+    {
+      free (*out);
+      *out = NULL;
+      return false;
+    }
+
+  if (outlen)
+    *outlen = needlen;
+
+  return true;
+}
diff -uNr nagios-plugins-1.4.11/gl/base64.h nagios-plugins-1.4.12/gl/base64.h
--- nagios-plugins-1.4.11/gl/base64.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/base64.h	2008-02-12 13:03:58.000000000 +0100
@@ -0,0 +1,45 @@
+/* base64.h -- Encode binary data using printable characters.
+   Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+   Written by Simon Josefsson.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef BASE64_H
+# define BASE64_H
+
+/* Get size_t. */
+# include <stddef.h>
+
+/* Get bool. */
+# include <stdbool.h>
+
+/* This uses that the expression (n+(k-1))/k means the smallest
+   integer >= n/k, i.e., the ceiling of n/k.  */
+# define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4)
+
+extern bool isbase64 (char ch);
+
+extern void base64_encode (const char *restrict in, size_t inlen,
+			   char *restrict out, size_t outlen);
+
+extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out);
+
+extern bool base64_decode (const char *restrict in, size_t inlen,
+			   char *restrict out, size_t *outlen);
+
+extern bool base64_decode_alloc (const char *in, size_t inlen,
+				 char **out, size_t *outlen);
+
+#endif /* BASE64_H */
diff -uNr nagios-plugins-1.4.11/gl/basename.c nagios-plugins-1.4.12/gl/basename.c
--- nagios-plugins-1.4.11/gl/basename.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/basename.c	2008-02-12 12:07:18.000000000 +0100
@@ -3,10 +3,10 @@
    Copyright (C) 1990, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006 Free
    Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff -uNr nagios-plugins-1.4.11/gl/cloexec.c nagios-plugins-1.4.12/gl/cloexec.c
--- nagios-plugins-1.4.11/gl/cloexec.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/cloexec.c	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 1991, 2004, 2005, 2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
    The code is taken from glibc/manual/llio.texi  */
 
diff -uNr nagios-plugins-1.4.11/gl/config.charset nagios-plugins-1.4.12/gl/config.charset
--- nagios-plugins-1.4.11/gl/config.charset	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/config.charset	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,649 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+#   Copyright (C) 2000-2004, 2006-2007 Free Software Foundation, Inc.
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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              MIME?             used by which systems
+#   ASCII, ANSI_X3.4-1968       glibc solaris freebsd netbsd darwin
+#   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
+#   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
+#   ISO-8859-3              Y   glibc solaris
+#   ISO-8859-4              Y   osf solaris freebsd netbsd openbsd darwin
+#   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
+#   ISO-8859-6              Y   glibc aix hpux solaris
+#   ISO-8859-7              Y   glibc aix hpux irix osf solaris netbsd openbsd darwin
+#   ISO-8859-8              Y   glibc aix hpux osf solaris
+#   ISO-8859-9              Y   glibc aix hpux irix osf solaris darwin
+#   ISO-8859-13                 glibc netbsd openbsd darwin
+#   ISO-8859-14                 glibc
+#   ISO-8859-15                 glibc aix osf solaris freebsd netbsd openbsd darwin
+#   KOI8-R                  Y   glibc solaris freebsd netbsd openbsd darwin
+#   KOI8-U                  Y   glibc freebsd netbsd openbsd darwin
+#   KOI8-T                      glibc
+#   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 netbsd openbsd darwin dos
+#   CP869                       dos
+#   CP874                       woe32 dos
+#   CP922                       aix
+#   CP932                       aix woe32 dos
+#   CP943                       aix
+#   CP949                       osf woe32 dos
+#   CP950                       woe32 dos
+#   CP1046                      aix
+#   CP1124                      aix
+#   CP1125                      dos
+#   CP1129                      aix
+#   CP1250                      woe32
+#   CP1251                      glibc solaris netbsd openbsd darwin woe32
+#   CP1252                      aix woe32
+#   CP1253                      woe32
+#   CP1254                      woe32
+#   CP1255                      glibc woe32
+#   CP1256                      woe32
+#   CP1257                      woe32
+#   GB2312                  Y   glibc aix hpux irix solaris freebsd netbsd darwin
+#   EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   EUC-TW                      glibc aix hpux irix osf solaris netbsd
+#   BIG5                    Y   glibc aix hpux osf solaris freebsd netbsd darwin
+#   BIG5-HKSCS                  glibc solaris
+#   GBK                         glibc aix osf solaris woe32 dos
+#   GB18030                     glibc solaris netbsd
+#   SHIFT_JIS               Y   hpux osf solaris freebsd netbsd darwin
+#   JOHAB                       glibc solaris woe32
+#   TIS-620                     glibc aix hpux osf solaris
+#   VISCII                  Y   glibc
+#   TCVN5712-1                  glibc
+#   GEORGIAN-PS                 glibc
+#   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                   Y   glibc aix hpux osf solaris netbsd darwin
+#
+# 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-gnulibc1*)
+	# Linux libc5 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 "POSIX ASCII"
+	for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
+	         en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
+	         en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
+	         es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
+	         et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
+	         fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
+	         it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
+	         sv_FI sv_SE; do
+	  echo "$l ISO-8859-1"
+	  echo "$l.iso-8859-1 ISO-8859-1"
+	  echo "$l.iso-8859-15 ISO-8859-15"
+	  echo "$l.iso-8859-15@euro ISO-8859-15"
+	  echo "$l@euro ISO-8859-15"
+	  echo "$l.cp-437 CP437"
+	  echo "$l.cp-850 CP850"
+	  echo "$l.cp-1252 CP1252"
+	  echo "$l.cp-1252@euro CP1252"
+	  #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
+	  echo "$l.utf-8 UTF-8"
+	  echo "$l.utf-8@euro UTF-8"
+	done
+	for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
+	         sl_SI sr sr_CS sr_YU; do
+	  echo "$l ISO-8859-2"
+	  echo "$l.iso-8859-2 ISO-8859-2"
+	  echo "$l.cp-852 CP852"
+	  echo "$l.cp-1250 CP1250"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in mk mk_MK ru ru_RU; do
+	  echo "$l ISO-8859-5"
+	  echo "$l.iso-8859-5 ISO-8859-5"
+	  echo "$l.koi8-r KOI8-R"
+	  echo "$l.cp-866 CP866"
+	  echo "$l.cp-1251 CP1251"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in ar ar_SA; do
+	  echo "$l ISO-8859-6"
+	  echo "$l.iso-8859-6 ISO-8859-6"
+	  echo "$l.cp-864 CP864"
+	  #echo "$l.cp-868 CP868" # not a commonly used encoding
+	  echo "$l.cp-1256 CP1256"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in el el_GR gr gr_GR; do
+	  echo "$l ISO-8859-7"
+	  echo "$l.iso-8859-7 ISO-8859-7"
+	  echo "$l.cp-869 CP869"
+	  echo "$l.cp-1253 CP1253"
+	  echo "$l.cp-1253@euro CP1253"
+	  echo "$l.utf-8 UTF-8"
+	  echo "$l.utf-8@euro UTF-8"
+	done
+	for l in he he_IL iw iw_IL; do
+	  echo "$l ISO-8859-8"
+	  echo "$l.iso-8859-8 ISO-8859-8"
+	  echo "$l.cp-862 CP862"
+	  echo "$l.cp-1255 CP1255"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in tr tr_TR; do
+	  echo "$l ISO-8859-9"
+	  echo "$l.iso-8859-9 ISO-8859-9"
+	  echo "$l.cp-857 CP857"
+	  echo "$l.cp-1254 CP1254"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in lt lt_LT lv lv_LV; do
+	  #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
+	  echo "$l ISO-8859-13"
+	done
+	for l in ru_UA uk uk_UA; do
+	  echo "$l KOI8-U"
+	done
+	for l in zh zh_CN; do
+	  #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
+	  echo "$l GB2312"
+	done
+	for l in ja ja_JP ja_JP.EUC; do
+	  echo "$l EUC-JP"
+	done
+	for l in ko ko_KR; do
+	  echo "$l EUC-KR"
+	done
+	for l in th th_TH; do
+	  echo "$l TIS-620"
+	done
+	for l in fa fa_IR; do
+	  #echo "$l ISIRI-3342" # a broken encoding
+	  echo "$l.utf-8 UTF-8"
+	done
+	;;
+    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 SHIFT_JIS"
+	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 SHIFT_JIS"
+	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-3 ISO-8859-3"
+	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 "ansi-1251 CP1251"
+	echo "BIG5 BIG5"
+	echo "Big5-HKSCS BIG5-HKSCS"
+	echo "gb2312 GB2312"
+	echo "GBK GBK"
+	echo "GB18030 GB18030"
+	echo "cns11643 EUC-TW"
+	echo "5601 EUC-KR"
+	echo "ko_KR.johap92 JOHAB"
+	echo "eucJP EUC-JP"
+	echo "PCK SHIFT_JIS"
+	echo "TIS620.2533 TIS-620"
+	#echo "sun_eu_greek ?" # what is this?
+	echo "UTF-8 UTF-8"
+	;;
+    freebsd* | os2*)
+	# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
+	# reuse FreeBSD's locale data for OS/2.
+	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 SHIFT_JIS"
+	echo "ja_JP.Shift_JIS SHIFT_JIS"
+	echo "ko_KR.EUC EUC-KR"
+	;;
+    netbsd*)
+	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-7 ISO-8859-7"
+	echo "ISO8859-13 ISO-8859-13"
+	echo "ISO8859-15 ISO-8859-15"
+	echo "eucCN GB2312"
+	echo "eucJP EUC-JP"
+	echo "eucKR EUC-KR"
+	echo "eucTW EUC-TW"
+	echo "BIG5 BIG5"
+	echo "SJIS SHIFT_JIS"
+	;;
+    openbsd*)
+	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-7 ISO-8859-7"
+	echo "ISO8859-13 ISO-8859-13"
+	echo "ISO8859-15 ISO-8859-15"
+	;;
+    darwin[56]*)
+	# Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	echo "C ASCII"
+	for l in en_AU en_CA en_GB en_US la_LN; do
+	  echo "$l.US-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 nl_BE \
+	         nl_NL no_NO pt_PT sv_SE; do
+	  echo "$l ISO-8859-1"
+	  echo "$l.ISO8859-1 ISO-8859-1"
+	  echo "$l.ISO8859-15 ISO-8859-15"
+	done
+	for l in la_LN; do
+	  echo "$l.ISO8859-1 ISO-8859-1"
+	  echo "$l.ISO8859-15 ISO-8859-15"
+	done
+	for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
+	  echo "$l.ISO8859-2 ISO-8859-2"
+	done
+	for l in la_LN lt_LT; do
+	  echo "$l.ISO8859-4 ISO-8859-4"
+	done
+	for l in ru_RU; do
+	  echo "$l.KOI8-R KOI8-R"
+	  echo "$l.ISO8859-5 ISO-8859-5"
+	  echo "$l.CP866 CP866"
+	done
+	for l in bg_BG; do
+	  echo "$l.CP1251 CP1251"
+	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 SHIFT_JIS"
+	echo "ko_KR.EUC EUC-KR"
+	;;
+    darwin*)
+	# Darwin 7.5 has nl_langinfo(CODESET), but it is useless:
+	# - It returns the empty string when LANG is set to a locale of the
+	#   form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
+	#   LC_CTYPE file.
+	# - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
+	#   the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
+	# - The documentation says:
+	#     "... all code that calls BSD system routines should ensure
+	#      that the const *char parameters of these routines are in UTF-8
+	#      encoding. All BSD system functions expect their string
+	#      parameters to be in UTF-8 encoding and nothing else."
+	#   It also says
+	#     "An additional caveat is that string parameters for files,
+	#      paths, and other file-system entities must be in canonical
+	#      UTF-8. In a canonical UTF-8 Unicode string, all decomposable
+	#      characters are decomposed ..."
+	#   but this is not true: You can pass non-decomposed UTF-8 strings
+	#   to file system functions, and it is the OS which will convert
+	#   them to decomposed UTF-8 before accessing the file system.
+	# - The Apple Terminal application displays UTF-8 by default.
+	# - However, other applications are free to use different encodings:
+	#   - xterm uses ISO-8859-1 by default.
+	#   - TextEdit uses MacRoman by default.
+	# We prefer UTF-8 over decomposed UTF-8-MAC because one should
+	# minimize the use of decomposed Unicode. Unfortunately, through the
+	# Darwin file system, decomposed UTF-8 strings are leaked into user
+	# space nevertheless.
+	echo "* UTF-8"
+	;;
+    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 <juan.guerrero@gmx.de>"
+	echo "# and Bruno Haible <bruno@clisp.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_CS 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 CP866"
+	echo "ru_RU CP866"
+	echo "uk CP1125"
+	echo "uk_UA CP1125"
+	# 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
diff -uNr nagios-plugins-1.4.11/gl/creat-safer.c nagios-plugins-1.4.12/gl/creat-safer.c
--- nagios-plugins-1.4.11/gl/creat-safer.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/creat-safer.c	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Jim Meyering.  */
 
diff -uNr nagios-plugins-1.4.11/gl/c-strtod.c nagios-plugins-1.4.12/gl/c-strtod.c
--- nagios-plugins-1.4.11/gl/c-strtod.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/c-strtod.c	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff -uNr nagios-plugins-1.4.11/gl/dirname.c nagios-plugins-1.4.12/gl/dirname.c
--- nagios-plugins-1.4.11/gl/dirname.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/dirname.c	2008-02-12 12:07:18.000000000 +0100
@@ -3,10 +3,10 @@
    Copyright (C) 1990, 1998, 2000, 2001, 2003, 2004, 2005, 2006 Free Software
    Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff -uNr nagios-plugins-1.4.11/gl/dirname.h nagios-plugins-1.4.12/gl/dirname.h
--- nagios-plugins-1.4.11/gl/dirname.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/dirname.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
     Copyright (C) 1998, 2001, 2003-2006 Free Software Foundation, Inc.
 
-    This program is free software; you can redistribute it and/or modify
+    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.
+    the Free Software Foundation; either version 3 of the License, or
+    (at your option) any later version.
 
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
     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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef DIRNAME_H_
 # define DIRNAME_H_ 1
diff -uNr nagios-plugins-1.4.11/gl/dup-safer.c nagios-plugins-1.4.12/gl/dup-safer.c
--- nagios-plugins-1.4.11/gl/dup-safer.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/dup-safer.c	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2001, 2004, 2005, 2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff -uNr nagios-plugins-1.4.11/gl/error.c nagios-plugins-1.4.12/gl/error.c
--- nagios-plugins-1.4.11/gl/error.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/error.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,20 +1,19 @@
 /* Error handler for noninteractive utilities
-   Copyright (C) 1990-1998, 2000-2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1990-1998, 2000-2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by David MacKenzie <djm@gnu.ai.mit.edu>.  */
 
@@ -31,6 +30,7 @@
 
 #if !_LIBC && ENABLE_NLS
 # include "gettext.h"
+# define _(msgid) gettext (msgid)
 #endif
 
 #ifdef _LIBC
diff -uNr nagios-plugins-1.4.11/gl/error.h nagios-plugins-1.4.12/gl/error.h
--- nagios-plugins-1.4.11/gl/error.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/error.h	2008-02-12 12:07:18.000000000 +0100
@@ -1,27 +1,26 @@
 /* Declaration for error-reporting function
-   Copyright (C) 1995, 1996, 1997, 2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 2003, 2006, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _ERROR_H
 #define _ERROR_H 1
 
 #ifndef __attribute__
 /* This feature is available in gcc versions 2.5 and later.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
 #  define __attribute__(Spec) /* empty */
 # endif
 /* The __-protected variants of `format' and `printf' attributes
diff -uNr nagios-plugins-1.4.11/gl/exitfail.c nagios-plugins-1.4.12/gl/exitfail.c
--- nagios-plugins-1.4.11/gl/exitfail.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/exitfail.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,11 +1,11 @@
 /* Failure exit status
 
-   Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,13 +13,12 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING.
-   If not, write to the Free Software Foundation,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
 #include "exitfail.h"
-#include "exit.h"
+
+#include <stdlib.h>
 
 int volatile exit_failure = EXIT_FAILURE;
diff -uNr nagios-plugins-1.4.11/gl/exitfail.h nagios-plugins-1.4.12/gl/exitfail.h
--- nagios-plugins-1.4.11/gl/exitfail.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/exitfail.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2002 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,6 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING.
-   If not, write to the Free Software Foundation,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 extern int volatile exit_failure;
diff -uNr nagios-plugins-1.4.11/gl/exit.h nagios-plugins-1.4.12/gl/exit.h
--- nagios-plugins-1.4.11/gl/exit.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/exit.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
-/* exit() function.
-   Copyright (C) 1995, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _EXIT_H
-#define _EXIT_H
-
-/* Get exit() declaration.  */
-#include <stdlib.h>
-
-/* Some systems do not define EXIT_*, despite otherwise supporting C89.  */
-#ifndef EXIT_SUCCESS
-# define EXIT_SUCCESS 0
-#endif
-#ifndef EXIT_FAILURE
-# define EXIT_FAILURE 1
-#endif
-
-#endif /* _EXIT_H */
diff -uNr nagios-plugins-1.4.11/gl/fcntl--.h nagios-plugins-1.4.12/gl/fcntl--.h
--- nagios-plugins-1.4.11/gl/fcntl--.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/fcntl--.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2005 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff -uNr nagios-plugins-1.4.11/gl/fcntl-safer.h nagios-plugins-1.4.12/gl/fcntl-safer.h
--- nagios-plugins-1.4.11/gl/fcntl-safer.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/fcntl-safer.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2005 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff -uNr nagios-plugins-1.4.11/gl/fd-safer.c nagios-plugins-1.4.12/gl/fd-safer.c
--- nagios-plugins-1.4.11/gl/fd-safer.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/fd-safer.c	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff -uNr nagios-plugins-1.4.11/gl/float+.h nagios-plugins-1.4.12/gl/float+.h
--- nagios-plugins-1.4.11/gl/float+.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/float+.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,148 @@
+/* Supplemental information about the floating-point formats.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _FLOATPLUS_H
+#define _FLOATPLUS_H
+
+#include <float.h>
+#include <limits.h>
+
+/* Number of bits in the mantissa of a floating-point number, including the
+   "hidden bit".  */
+#if FLT_RADIX == 2
+# define FLT_MANT_BIT FLT_MANT_DIG
+# define DBL_MANT_BIT DBL_MANT_DIG
+# define LDBL_MANT_BIT LDBL_MANT_DIG
+#elif FLT_RADIX == 4
+# define FLT_MANT_BIT (FLT_MANT_DIG * 2)
+# define DBL_MANT_BIT (DBL_MANT_DIG * 2)
+# define LDBL_MANT_BIT (LDBL_MANT_DIG * 2)
+#elif FLT_RADIX == 16
+# define FLT_MANT_BIT (FLT_MANT_DIG * 4)
+# define DBL_MANT_BIT (DBL_MANT_DIG * 4)
+# define LDBL_MANT_BIT (LDBL_MANT_DIG * 4)
+#endif
+
+/* Bit mask that can be used to mask the exponent, as an unsigned number.  */
+#define FLT_EXP_MASK ((FLT_MAX_EXP - FLT_MIN_EXP) | 7)
+#define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7)
+#define LDBL_EXP_MASK ((LDBL_MAX_EXP - LDBL_MIN_EXP) | 7)
+
+/* Number of bits used for the exponent of a floating-point number, including
+   the exponent's sign.  */
+#define FLT_EXP_BIT \
+  (FLT_EXP_MASK < 0x100 ? 8 : \
+   FLT_EXP_MASK < 0x200 ? 9 : \
+   FLT_EXP_MASK < 0x400 ? 10 : \
+   FLT_EXP_MASK < 0x800 ? 11 : \
+   FLT_EXP_MASK < 0x1000 ? 12 : \
+   FLT_EXP_MASK < 0x2000 ? 13 : \
+   FLT_EXP_MASK < 0x4000 ? 14 : \
+   FLT_EXP_MASK < 0x8000 ? 15 : \
+   FLT_EXP_MASK < 0x10000 ? 16 : \
+   FLT_EXP_MASK < 0x20000 ? 17 : \
+   FLT_EXP_MASK < 0x40000 ? 18 : \
+   FLT_EXP_MASK < 0x80000 ? 19 : \
+   FLT_EXP_MASK < 0x100000 ? 20 : \
+   FLT_EXP_MASK < 0x200000 ? 21 : \
+   FLT_EXP_MASK < 0x400000 ? 22 : \
+   FLT_EXP_MASK < 0x800000 ? 23 : \
+   FLT_EXP_MASK < 0x1000000 ? 24 : \
+   FLT_EXP_MASK < 0x2000000 ? 25 : \
+   FLT_EXP_MASK < 0x4000000 ? 26 : \
+   FLT_EXP_MASK < 0x8000000 ? 27 : \
+   FLT_EXP_MASK < 0x10000000 ? 28 : \
+   FLT_EXP_MASK < 0x20000000 ? 29 : \
+   FLT_EXP_MASK < 0x40000000 ? 30 : \
+   FLT_EXP_MASK <= 0x7fffffff ? 31 : \
+   32)
+#define DBL_EXP_BIT \
+  (DBL_EXP_MASK < 0x100 ? 8 : \
+   DBL_EXP_MASK < 0x200 ? 9 : \
+   DBL_EXP_MASK < 0x400 ? 10 : \
+   DBL_EXP_MASK < 0x800 ? 11 : \
+   DBL_EXP_MASK < 0x1000 ? 12 : \
+   DBL_EXP_MASK < 0x2000 ? 13 : \
+   DBL_EXP_MASK < 0x4000 ? 14 : \
+   DBL_EXP_MASK < 0x8000 ? 15 : \
+   DBL_EXP_MASK < 0x10000 ? 16 : \
+   DBL_EXP_MASK < 0x20000 ? 17 : \
+   DBL_EXP_MASK < 0x40000 ? 18 : \
+   DBL_EXP_MASK < 0x80000 ? 19 : \
+   DBL_EXP_MASK < 0x100000 ? 20 : \
+   DBL_EXP_MASK < 0x200000 ? 21 : \
+   DBL_EXP_MASK < 0x400000 ? 22 : \
+   DBL_EXP_MASK < 0x800000 ? 23 : \
+   DBL_EXP_MASK < 0x1000000 ? 24 : \
+   DBL_EXP_MASK < 0x2000000 ? 25 : \
+   DBL_EXP_MASK < 0x4000000 ? 26 : \
+   DBL_EXP_MASK < 0x8000000 ? 27 : \
+   DBL_EXP_MASK < 0x10000000 ? 28 : \
+   DBL_EXP_MASK < 0x20000000 ? 29 : \
+   DBL_EXP_MASK < 0x40000000 ? 30 : \
+   DBL_EXP_MASK <= 0x7fffffff ? 31 : \
+   32)
+#define LDBL_EXP_BIT \
+  (LDBL_EXP_MASK < 0x100 ? 8 : \
+   LDBL_EXP_MASK < 0x200 ? 9 : \
+   LDBL_EXP_MASK < 0x400 ? 10 : \
+   LDBL_EXP_MASK < 0x800 ? 11 : \
+   LDBL_EXP_MASK < 0x1000 ? 12 : \
+   LDBL_EXP_MASK < 0x2000 ? 13 : \
+   LDBL_EXP_MASK < 0x4000 ? 14 : \
+   LDBL_EXP_MASK < 0x8000 ? 15 : \
+   LDBL_EXP_MASK < 0x10000 ? 16 : \
+   LDBL_EXP_MASK < 0x20000 ? 17 : \
+   LDBL_EXP_MASK < 0x40000 ? 18 : \
+   LDBL_EXP_MASK < 0x80000 ? 19 : \
+   LDBL_EXP_MASK < 0x100000 ? 20 : \
+   LDBL_EXP_MASK < 0x200000 ? 21 : \
+   LDBL_EXP_MASK < 0x400000 ? 22 : \
+   LDBL_EXP_MASK < 0x800000 ? 23 : \
+   LDBL_EXP_MASK < 0x1000000 ? 24 : \
+   LDBL_EXP_MASK < 0x2000000 ? 25 : \
+   LDBL_EXP_MASK < 0x4000000 ? 26 : \
+   LDBL_EXP_MASK < 0x8000000 ? 27 : \
+   LDBL_EXP_MASK < 0x10000000 ? 28 : \
+   LDBL_EXP_MASK < 0x20000000 ? 29 : \
+   LDBL_EXP_MASK < 0x40000000 ? 30 : \
+   LDBL_EXP_MASK <= 0x7fffffff ? 31 : \
+   32)
+
+/* Number of bits used for a floating-point number: the mantissa (not
+   counting the "hidden bit", since it may or may not be explicit), the
+   exponent, and the sign.  */
+#define FLT_TOTAL_BIT ((FLT_MANT_BIT - 1) + FLT_EXP_BIT + 1)
+#define DBL_TOTAL_BIT ((DBL_MANT_BIT - 1) + DBL_EXP_BIT + 1)
+#define LDBL_TOTAL_BIT ((LDBL_MANT_BIT - 1) + LDBL_EXP_BIT + 1)
+
+/* Number of bytes used for a floating-point number.
+   This can be smaller than the 'sizeof'.  For example, on i386 systems,
+   'long double' most often have LDBL_MANT_BIT = 64, LDBL_EXP_BIT = 16, hence
+   LDBL_TOTAL_BIT = 80 bits, i.e. 10 bytes of consecutive memory, but
+   sizeof (long double) = 12 or = 16.  */
+#define SIZEOF_FLT ((FLT_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
+#define SIZEOF_DBL ((DBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
+#define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
+
+/* Verify that SIZEOF_FLT <= sizeof (float) etc.  */
+typedef int verify_sizeof_flt[2 * (SIZEOF_FLT <= sizeof (float)) - 1];
+typedef int verify_sizeof_dbl[2 * (SIZEOF_DBL <= sizeof (double)) - 1];
+typedef int verify_sizeof_ldbl[2 * (SIZEOF_LDBL <= sizeof (long double)) - 1];
+
+#endif /* _FLOATPLUS_H */
diff -uNr nagios-plugins-1.4.11/gl/float.in.h nagios-plugins-1.4.12/gl/float.in.h
--- nagios-plugins-1.4.11/gl/float.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/float.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,58 @@
+/* A correct <float.h>.
+
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _GL_FLOAT_H
+
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_FLOAT_H@
+
+#ifndef _GL_FLOAT_H
+#define _GL_FLOAT_H
+
+/* 'long double' properties.  */
+#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
+/* Number of mantissa units, in base FLT_RADIX.  */
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG   64
+/* Number of decimal digits that is sufficient for representing a number.  */
+# undef LDBL_DIG
+# define LDBL_DIG        18
+/* x-1 where x is the smallest representable number > 1.  */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON    1.0842021724855044340E-19L
+/* Minimum e such that FLT_RADIX^(e-1) is a normalized number.  */
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
+/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number.  */
+# undef LDBL_MAX_EXP
+# define LDBL_MAX_EXP    16384
+/* Minimum positive normalized number.  */
+# undef LDBL_MIN
+# define LDBL_MIN        3.3621031431120935063E-4932L
+/* Maximum representable finite number.  */
+# undef LDBL_MAX
+# define LDBL_MAX        1.1897314953572317650E+4932L
+/* Minimum e such that 10^e is in the range of normalized numbers.  */
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP (-4931)
+/* Maximum e such that 10^e is in the range of representable finite numbers.  */
+# undef LDBL_MAX_10_EXP
+# define LDBL_MAX_10_EXP 4932
+#endif
+
+#endif /* _GL_FLOAT_H */
+#endif /* _GL_FLOAT_H */
diff -uNr nagios-plugins-1.4.11/gl/floor.c nagios-plugins-1.4.12/gl/floor.c
--- nagios-plugins-1.4.11/gl/floor.c	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/floor.c	2008-02-12 13:03:58.000000000 +0100
@@ -0,0 +1,93 @@
+/* Round towards negative infinity.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <math.h>
+
+#include <float.h>
+
+#ifdef USE_LONG_DOUBLE
+# define FUNC floorl
+# define DOUBLE long double
+# define MANT_DIG LDBL_MANT_DIG
+# define L_(literal) literal##L
+#elif ! defined USE_FLOAT
+# define FUNC floor
+# define DOUBLE double
+# define MANT_DIG DBL_MANT_DIG
+# define L_(literal) literal
+#else /* defined USE_FLOAT */
+# define FUNC floorf
+# define DOUBLE float
+# define MANT_DIG FLT_MANT_DIG
+# define L_(literal) literal##f
+#endif
+
+/* 2^(MANT_DIG-1).  */
+static const DOUBLE TWO_MANT_DIG =
+  /* Assume MANT_DIG <= 5 * 31.
+     Use the identity
+       n = floor(n/5) + floor((n+1)/5) + ... + floor((n+4)/5).  */
+  (DOUBLE) (1U << ((MANT_DIG - 1) / 5))
+  * (DOUBLE) (1U << ((MANT_DIG - 1 + 1) / 5))
+  * (DOUBLE) (1U << ((MANT_DIG - 1 + 2) / 5))
+  * (DOUBLE) (1U << ((MANT_DIG - 1 + 3) / 5))
+  * (DOUBLE) (1U << ((MANT_DIG - 1 + 4) / 5));
+
+DOUBLE
+FUNC (DOUBLE x)
+{
+  /* The use of 'volatile' guarantees that excess precision bits are dropped
+     at each addition step and before the following comparison at the caller's
+     site.  It is necessary on x86 systems where double-floats are not IEEE
+     compliant by default, to avoid that the results become platform and compiler
+     option dependent.  'volatile' is a portable alternative to gcc's
+     -ffloat-store option.  */
+  volatile DOUBLE y = x;
+  volatile DOUBLE z = y;
+
+  if (z > L_(0.0))
+    {
+      /* Avoid rounding errors for values near 2^k, where k >= MANT_DIG-1.  */
+      if (z < TWO_MANT_DIG)
+	{
+	  /* Round to the next integer (nearest or up or down, doesn't matter).  */
+	  z += TWO_MANT_DIG;
+	  z -= TWO_MANT_DIG;
+	  /* Enforce rounding down.  */
+	  if (z > y)
+	    z -= L_(1.0);
+	}
+    }
+  else if (z < L_(0.0))
+    {
+      /* Avoid rounding errors for values near -2^k, where k >= MANT_DIG-1.  */
+      if (z > - TWO_MANT_DIG)
+	{
+	  /* Round to the next integer (nearest or up or down, doesn't matter).  */
+	  z -= TWO_MANT_DIG;
+	  z += TWO_MANT_DIG;
+	  /* Enforce rounding down.  */
+	  if (z > y)
+	    z -= L_(1.0);
+	}
+    }
+  return z;
+}
diff -uNr nagios-plugins-1.4.11/gl/floorf.c nagios-plugins-1.4.12/gl/floorf.c
--- nagios-plugins-1.4.11/gl/floorf.c	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/floorf.c	2008-02-12 13:03:58.000000000 +0100
@@ -0,0 +1,20 @@
+/* Round towards negative infinity.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#define USE_FLOAT
+#include "floor.c"
diff -uNr nagios-plugins-1.4.11/gl/fsusage.c nagios-plugins-1.4.12/gl/fsusage.c
--- nagios-plugins-1.4.11/gl/fsusage.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/fsusage.c	2008-02-12 12:07:18.000000000 +0100
@@ -3,10 +3,10 @@
    Copyright (C) 1991, 1992, 1996, 1998, 1999, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff -uNr nagios-plugins-1.4.11/gl/fsusage.h nagios-plugins-1.4.12/gl/fsusage.h
--- nagios-plugins-1.4.11/gl/fsusage.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/fsusage.h	2008-02-12 12:07:18.000000000 +0100
@@ -3,10 +3,10 @@
    Copyright (C) 1991, 1992, 1997, 2003, 2004, 2005, 2006 Free Software
    Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Space usage statistics for a file system.  Blocks are 512-byte. */
 
diff -uNr nagios-plugins-1.4.11/gl/full-read.c nagios-plugins-1.4.12/gl/full-read.c
--- nagios-plugins-1.4.11/gl/full-read.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/full-read.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,10 +1,10 @@
 /* An interface to read that retries after partial reads and interrupts.
    Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -12,8 +12,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #define FULL_READ
 #include "full-write.c"
diff -uNr nagios-plugins-1.4.11/gl/full-read.h nagios-plugins-1.4.12/gl/full-read.h
--- nagios-plugins-1.4.11/gl/full-read.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/full-read.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2002 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, read to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stddef.h>
 
diff -uNr nagios-plugins-1.4.11/gl/full-write.c nagios-plugins-1.4.12/gl/full-write.c
--- nagios-plugins-1.4.11/gl/full-write.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/full-write.c	2008-02-12 12:07:18.000000000 +0100
@@ -3,10 +3,10 @@
    Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
    2004, 2005, 2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff -uNr nagios-plugins-1.4.11/gl/full-write.h nagios-plugins-1.4.12/gl/full-write.h
--- nagios-plugins-1.4.11/gl/full-write.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/full-write.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2002-2003 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stddef.h>
 
diff -uNr nagios-plugins-1.4.11/gl/gai_strerror.c nagios-plugins-1.4.12/gl/gai_strerror.c
--- nagios-plugins-1.4.11/gl/gai_strerror.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/gai_strerror.c	2008-02-12 12:07:18.000000000 +0100
@@ -4,7 +4,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -52,6 +52,7 @@
     { EAI_SERVICE, N_("Servname not supported for ai_socktype") },
     { EAI_SOCKTYPE, N_("ai_socktype not supported") },
     { EAI_SYSTEM, N_("System error") },
+    { EAI_OVERFLOW, N_("Argument buffer too small") },
 #ifdef __USE_GNU
     { EAI_INPROGRESS, N_("Processing request in progress") },
     { EAI_CANCELED, N_("Request canceled") },
diff -uNr nagios-plugins-1.4.11/gl/getaddrinfo.c nagios-plugins-1.4.12/gl/getaddrinfo.c
--- nagios-plugins-1.4.11/gl/getaddrinfo.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/getaddrinfo.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,11 +1,11 @@
 /* Get address information (partial implementation).
-   Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006 Free Software
+   Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006, 2007 Free Software
    Foundation, Inc.
    Contributed by Simon Josefsson <simon@josefsson.org>.
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -28,9 +28,12 @@
 /* Get calloc. */
 #include <stdlib.h>
 
-/* Get memcpy. */
+/* Get memcpy, strdup. */
 #include <string.h>
 
+/* Get snprintf. */
+#include <stdio.h>
+
 #include <stdbool.h>
 
 #include "gettext.h"
@@ -38,8 +41,6 @@
 #define N_(String) String
 
 #include "inet_ntop.h"
-#include "snprintf.h"
-#include "strdup.h"
 
 /* BeOS has AF_INET, but not PF_INET.  */
 #ifndef PF_INET
@@ -178,7 +179,7 @@
       const char *proto =
 	(hints && hints->ai_socktype == SOCK_DGRAM) ? "udp" : "tcp";
 
-      if (!(hints->ai_flags & AI_NUMERICSERV))
+      if (hints == NULL || !(hints->ai_flags & AI_NUMERICSERV))
 	/* FIXME: Use getservbyname_r if available. */
 	se = getservbyname (servname, proto);
 
diff -uNr nagios-plugins-1.4.11/gl/getaddrinfo.h nagios-plugins-1.4.12/gl/getaddrinfo.h
--- nagios-plugins-1.4.11/gl/getaddrinfo.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/getaddrinfo.h	2008-02-12 12:07:18.000000000 +0100
@@ -5,7 +5,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
diff -uNr nagios-plugins-1.4.11/gl/gethostname.c nagios-plugins-1.4.12/gl/gethostname.c
--- nagios-plugins-1.4.11/gl/gethostname.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/gethostname.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,11 +1,11 @@
 /* gethostname emulation for SysV and POSIX.1.
 
-   Copyright (C) 1992, 2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1992, 2003, 2006, 2008 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* David MacKenzie <djm@gnu.ai.mit.edu> */
 
@@ -24,6 +23,8 @@
 # include <sys/utsname.h>
 #endif
 
+#include <string.h>
+
 /* Put up to LEN chars of the host name into NAME.
    Null terminate it if the name is shorter than LEN.
    Return 0 if ok, -1 if error.  */
diff -uNr nagios-plugins-1.4.11/gl/getloadavg.c nagios-plugins-1.4.12/gl/getloadavg.c
--- nagios-plugins-1.4.11/gl/getloadavg.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/getloadavg.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,16 +1,16 @@
 /* Get the system load averages.
 
    Copyright (C) 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994,
-   1995, 1997, 1999, 2000, 2003, 2004, 2005, 2006 Free Software
+   1995, 1997, 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with gnulib.
    Bugs can be reported to bug-gnulib@gnu.org.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,9 +18,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Compile-time symbols that this file uses:
 
@@ -32,6 +30,8 @@
 				If that isn't an option, then just put
 				AC_CHECK_FUNCS(pstat_getdynamic) in your
 				configure.in file.
+   HAVE_LIBPERFSTAT Define this if your system has the
+				perfstat_cpu_total function in libperfstat (AIX).
    FIXUP_KERNEL_SYMBOL_ADDR()	Adjust address in returned struct nlist.
    KERNEL_FILE			Name of the kernel file to nlist.
    LDAV_CVT()			Scale the load average from the kernel.
@@ -188,6 +188,8 @@
 #  include <sys/socket.h>
 #  include <net/route.h>
 #  include <sys/table.h>
+/* Tru64 4.0D's table.h redefines sys */
+#  undef sys
 # endif
 
 # if defined (__osf__) && (defined (mips) || defined (__mips__))
@@ -254,7 +256,7 @@
 #   define LOAD_AVE_TYPE long
 #  endif
 
-#  ifdef _AIX
+#  if defined _AIX && ! defined HAVE_LIBPERFSTAT
 #   define LOAD_AVE_TYPE long
 #  endif
 
@@ -309,7 +311,7 @@
 #   define FSCALE 100.0
 #  endif
 
-#  ifdef _AIX
+#  if defined _AIX && !defined HAVE_LIBPERFSTAT
 #   define FSCALE 65536.0
 #  endif
 
@@ -347,7 +349,7 @@
 #  define LDAV_SYMBOL "_Loadavg"
 # endif
 
-# if !defined (LDAV_SYMBOL) && ((defined (hpux) && !defined (hp9000s300)) || defined (_SEQUENT_) || defined (SVR4) || defined (ISC) || defined (sgi) || (defined (ardent) && defined (titan)) || defined (_AIX))
+# if !defined (LDAV_SYMBOL) && ((defined (hpux) && !defined (hp9000s300)) || defined (_SEQUENT_) || defined (SVR4) || defined (ISC) || defined (sgi) || (defined (ardent) && defined (titan)) || (defined (_AIX) && !defined(HAVE_LIBPERFSTAT)))
 #  define LDAV_SYMBOL "avenrun"
 # endif
 
@@ -404,6 +406,14 @@
 
 # endif /* LOAD_AVE_TYPE */
 
+# if defined HAVE_LIBPERFSTAT
+#  include <libperfstat.h>
+#  include <sys/proc.h>
+#  ifndef SBITS
+#   define SBITS 16
+#  endif
+# endif
+
 # if defined (__GNU__) && !defined (NeXT)
 /* Note that NeXT Openstep defines __GNU__ even though it should not.  */
 /* GNU system acts much like NeXT, for load average purposes,
@@ -568,6 +578,22 @@
 
 # endif /* hpux && HAVE_PSTAT_GETDYNAMIC */
 
+# if ! defined LDAV_DONE && defined HAVE_LIBPERFSTAT
+#  define LDAV_DONE
+#  undef LOAD_AVE_TYPE
+/* Use perfstat_cpu_total because we don't have to be root. */
+  {
+    perfstat_cpu_total_t cpu_stats;
+    int result = perfstat_cpu_total (NULL, &cpu_stats, sizeof cpu_stats, 1);
+    if (result == -1)
+      return result;
+    loadavg[0] = cpu_stats.loadavg[0] / (double)(1 << SBITS);
+    loadavg[1] = cpu_stats.loadavg[1] / (double)(1 << SBITS);
+    loadavg[2] = cpu_stats.loadavg[2] / (double)(1 << SBITS);
+    elem = 3;
+  }
+# endif
+
 # if !defined (LDAV_DONE) && (defined (__linux__) || defined (__CYGWIN__))
 #  define LDAV_DONE
 #  undef LOAD_AVE_TYPE
diff -uNr nagios-plugins-1.4.11/gl/getopt1.c nagios-plugins-1.4.12/gl/getopt1.c
--- nagios-plugins-1.4.11/gl/getopt1.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/getopt1.c	2008-02-12 12:07:18.000000000 +0100
@@ -3,19 +3,18 @@
      Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifdef _LIBC
 # include <getopt.h>
diff -uNr nagios-plugins-1.4.11/gl/getopt.c nagios-plugins-1.4.12/gl/getopt.c
--- nagios-plugins-1.4.11/gl/getopt.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/getopt.c	2008-02-12 12:07:18.000000000 +0100
@@ -6,19 +6,18 @@
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LIBC
 # include <config.h>
diff -uNr nagios-plugins-1.4.11/gl/getopt_.h nagios-plugins-1.4.12/gl/getopt_.h
--- nagios-plugins-1.4.11/gl/getopt_.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/getopt_.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,226 +0,0 @@
-/* Declarations for getopt.
-   Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006
-   Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _GETOPT_H
-
-#ifndef __need_getopt
-# define _GETOPT_H 1
-#endif
-
-/* Standalone applications should #define __GETOPT_PREFIX to an
-   identifier that prefixes the external functions and variables
-   defined in this header.  When this happens, include the
-   headers that might declare getopt so that they will not cause
-   confusion if included after this file.  Then systematically rename
-   identifiers so that they do not collide with the system functions
-   and variables.  Renaming avoids problems with some compilers and
-   linkers.  */
-#if defined __GETOPT_PREFIX && !defined __need_getopt
-# include <stdlib.h>
-# include <stdio.h>
-# include <unistd.h>
-# undef __need_getopt
-# undef getopt
-# undef getopt_long
-# undef getopt_long_only
-# undef optarg
-# undef opterr
-# undef optind
-# undef optopt
-# define __GETOPT_CONCAT(x, y) x ## y
-# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
-# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
-# define getopt __GETOPT_ID (getopt)
-# define getopt_long __GETOPT_ID (getopt_long)
-# define getopt_long_only __GETOPT_ID (getopt_long_only)
-# define optarg __GETOPT_ID (optarg)
-# define opterr __GETOPT_ID (opterr)
-# define optind __GETOPT_ID (optind)
-# define optopt __GETOPT_ID (optopt)
-#endif
-
-/* Standalone applications get correct prototypes for getopt_long and
-   getopt_long_only; they declare "char **argv".  libc uses prototypes
-   with "char *const *argv" that are incorrect because getopt_long and
-   getopt_long_only can permute argv; this is required for backward
-   compatibility (e.g., for LSB 2.0.1).
-
-   This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt',
-   but it caused redefinition warnings if both unistd.h and getopt.h were
-   included, since unistd.h includes getopt.h having previously defined
-   __need_getopt.
-
-   The only place where __getopt_argv_const is used is in definitions
-   of getopt_long and getopt_long_only below, but these are visible
-   only if __need_getopt is not defined, so it is quite safe to rewrite
-   the conditional as follows:
-*/
-#if !defined __need_getopt
-# if defined __GETOPT_PREFIX
-#  define __getopt_argv_const /* empty */
-# else
-#  define __getopt_argv_const const
-# endif
-#endif
-
-/* If __GNU_LIBRARY__ is not already defined, either we are being used
-   standalone, or this is the first header included in the source file.
-   If we are being used with glibc, we need to include <features.h>, but
-   that does not exist if we are standalone.  So: if __GNU_LIBRARY__ is
-   not defined, include <ctype.h>, which will pull in <features.h> for us
-   if it's from glibc.  (Why ctype.h?  It's guaranteed to exist and it
-   doesn't flood the namespace with stuff the way some other headers do.)  */
-#if !defined __GNU_LIBRARY__
-# include <ctype.h>
-#endif
-
-#ifndef __THROW
-# ifndef __GNUC_PREREQ
-#  define __GNUC_PREREQ(maj, min) (0)
-# endif
-# if defined __cplusplus && __GNUC_PREREQ (2,8)
-#  define __THROW	throw ()
-# else
-#  define __THROW
-# endif
-#endif
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns -1, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
-   for unrecognized options.  */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized.  */
-
-extern int optopt;
-
-#ifndef __need_getopt
-/* Describe the long-named options requested by the application.
-   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-   of `struct option' terminated by an element containing a name which is
-   zero.
-
-   The field `has_arg' is:
-   no_argument		(or 0) if the option does not take an argument,
-   required_argument	(or 1) if the option requires an argument,
-   optional_argument	(or 2) if the option takes an optional argument.
-
-   If the field `flag' is not NULL, it points to a variable that is set
-   to the value given in the field `val' when the option is found, but
-   left unchanged if the option is not found.
-
-   To have a long-named option do something other than set an `int' to
-   a compiled-in constant, such as set a value from `optarg', set the
-   option's `flag' field to zero and its `val' field to a nonzero
-   value (the equivalent single-letter option character, if there is
-   one).  For long options that have a zero `flag' field, `getopt'
-   returns the contents of the `val' field.  */
-
-struct option
-{
-  const char *name;
-  /* has_arg can't be an enum because some compilers complain about
-     type mismatches in all the code that assumes it is an int.  */
-  int has_arg;
-  int *flag;
-  int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'.  */
-
-# define no_argument		0
-# define required_argument	1
-# define optional_argument	2
-#endif	/* need getopt */
-
-
-/* Get definitions and prototypes for functions to process the
-   arguments in ARGV (ARGC of them, minus the program name) for
-   options given in OPTS.
-
-   Return the option character from OPTS just read.  Return -1 when
-   there are no more options.  For unrecognized options, or options
-   missing arguments, `optopt' is set to the option letter, and '?' is
-   returned.
-
-   The OPTS string is a list of characters which are recognized option
-   letters, optionally followed by colons, specifying that that letter
-   takes an argument, to be placed in `optarg'.
-
-   If a letter in OPTS is followed by two colons, its argument is
-   optional.  This behavior is specific to the GNU `getopt'.
-
-   The argument `--' causes premature termination of argument
-   scanning, explicitly telling `getopt' that there are no more
-   options.
-
-   If OPTS begins with `-', then non-option arguments are treated as
-   arguments to the option '\1'.  This behavior is specific to the GNU
-   `getopt'.  If OPTS begins with `+', or POSIXLY_CORRECT is set in
-   the environment, then do not permute arguments.  */
-
-extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
-       __THROW;
-
-#ifndef __need_getopt
-extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,
-			const char *__shortopts,
-		        const struct option *__longopts, int *__longind)
-       __THROW;
-extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
-			     const char *__shortopts,
-		             const struct option *__longopts, int *__longind)
-       __THROW;
-
-#endif
-
-#ifdef	__cplusplus
-}
-#endif
-
-/* Make sure we later can get all the definitions and declarations.  */
-#undef __need_getopt
-
-#endif /* getopt.h */
diff -uNr nagios-plugins-1.4.11/gl/getopt.in.h nagios-plugins-1.4.12/gl/getopt.in.h
--- nagios-plugins-1.4.11/gl/getopt.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/getopt.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,225 @@
+/* Declarations for getopt.
+   Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006,2007
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _GETOPT_H
+
+#ifndef __need_getopt
+# define _GETOPT_H 1
+#endif
+
+/* Standalone applications should #define __GETOPT_PREFIX to an
+   identifier that prefixes the external functions and variables
+   defined in this header.  When this happens, include the
+   headers that might declare getopt so that they will not cause
+   confusion if included after this file.  Then systematically rename
+   identifiers so that they do not collide with the system functions
+   and variables.  Renaming avoids problems with some compilers and
+   linkers.  */
+#if defined __GETOPT_PREFIX && !defined __need_getopt
+# include <stdlib.h>
+# include <stdio.h>
+# include <unistd.h>
+# undef __need_getopt
+# undef getopt
+# undef getopt_long
+# undef getopt_long_only
+# undef optarg
+# undef opterr
+# undef optind
+# undef optopt
+# define __GETOPT_CONCAT(x, y) x ## y
+# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
+# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
+# define getopt __GETOPT_ID (getopt)
+# define getopt_long __GETOPT_ID (getopt_long)
+# define getopt_long_only __GETOPT_ID (getopt_long_only)
+# define optarg __GETOPT_ID (optarg)
+# define opterr __GETOPT_ID (opterr)
+# define optind __GETOPT_ID (optind)
+# define optopt __GETOPT_ID (optopt)
+#endif
+
+/* Standalone applications get correct prototypes for getopt_long and
+   getopt_long_only; they declare "char **argv".  libc uses prototypes
+   with "char *const *argv" that are incorrect because getopt_long and
+   getopt_long_only can permute argv; this is required for backward
+   compatibility (e.g., for LSB 2.0.1).
+
+   This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt',
+   but it caused redefinition warnings if both unistd.h and getopt.h were
+   included, since unistd.h includes getopt.h having previously defined
+   __need_getopt.
+
+   The only place where __getopt_argv_const is used is in definitions
+   of getopt_long and getopt_long_only below, but these are visible
+   only if __need_getopt is not defined, so it is quite safe to rewrite
+   the conditional as follows:
+*/
+#if !defined __need_getopt
+# if defined __GETOPT_PREFIX
+#  define __getopt_argv_const /* empty */
+# else
+#  define __getopt_argv_const const
+# endif
+#endif
+
+/* If __GNU_LIBRARY__ is not already defined, either we are being used
+   standalone, or this is the first header included in the source file.
+   If we are being used with glibc, we need to include <features.h>, but
+   that does not exist if we are standalone.  So: if __GNU_LIBRARY__ is
+   not defined, include <ctype.h>, which will pull in <features.h> for us
+   if it's from glibc.  (Why ctype.h?  It's guaranteed to exist and it
+   doesn't flood the namespace with stuff the way some other headers do.)  */
+#if !defined __GNU_LIBRARY__
+# include <ctype.h>
+#endif
+
+#ifndef __THROW
+# ifndef __GNUC_PREREQ
+#  define __GNUC_PREREQ(maj, min) (0)
+# endif
+# if defined __cplusplus && __GNUC_PREREQ (2,8)
+#  define __THROW	throw ()
+# else
+#  define __THROW
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* For communication from `getopt' to the caller.
+   When `getopt' finds an option that takes an argument,
+   the argument value is returned here.
+   Also, when `ordering' is RETURN_IN_ORDER,
+   each non-option ARGV-element is returned here.  */
+
+extern char *optarg;
+
+/* Index in ARGV of the next element to be scanned.
+   This is used for communication to and from the caller
+   and for communication between successive calls to `getopt'.
+
+   On entry to `getopt', zero means this is the first call; initialize.
+
+   When `getopt' returns -1, this is the index of the first of the
+   non-option elements that the caller should itself scan.
+
+   Otherwise, `optind' communicates from one call to the next
+   how much of ARGV has been scanned so far.  */
+
+extern int optind;
+
+/* Callers store zero here to inhibit the error message `getopt' prints
+   for unrecognized options.  */
+
+extern int opterr;
+
+/* Set to an option character which was unrecognized.  */
+
+extern int optopt;
+
+#ifndef __need_getopt
+/* Describe the long-named options requested by the application.
+   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+   of `struct option' terminated by an element containing a name which is
+   zero.
+
+   The field `has_arg' is:
+   no_argument		(or 0) if the option does not take an argument,
+   required_argument	(or 1) if the option requires an argument,
+   optional_argument	(or 2) if the option takes an optional argument.
+
+   If the field `flag' is not NULL, it points to a variable that is set
+   to the value given in the field `val' when the option is found, but
+   left unchanged if the option is not found.
+
+   To have a long-named option do something other than set an `int' to
+   a compiled-in constant, such as set a value from `optarg', set the
+   option's `flag' field to zero and its `val' field to a nonzero
+   value (the equivalent single-letter option character, if there is
+   one).  For long options that have a zero `flag' field, `getopt'
+   returns the contents of the `val' field.  */
+
+struct option
+{
+  const char *name;
+  /* has_arg can't be an enum because some compilers complain about
+     type mismatches in all the code that assumes it is an int.  */
+  int has_arg;
+  int *flag;
+  int val;
+};
+
+/* Names for the values of the `has_arg' field of `struct option'.  */
+
+# define no_argument		0
+# define required_argument	1
+# define optional_argument	2
+#endif	/* need getopt */
+
+
+/* Get definitions and prototypes for functions to process the
+   arguments in ARGV (ARGC of them, minus the program name) for
+   options given in OPTS.
+
+   Return the option character from OPTS just read.  Return -1 when
+   there are no more options.  For unrecognized options, or options
+   missing arguments, `optopt' is set to the option letter, and '?' is
+   returned.
+
+   The OPTS string is a list of characters which are recognized option
+   letters, optionally followed by colons, specifying that that letter
+   takes an argument, to be placed in `optarg'.
+
+   If a letter in OPTS is followed by two colons, its argument is
+   optional.  This behavior is specific to the GNU `getopt'.
+
+   The argument `--' causes premature termination of argument
+   scanning, explicitly telling `getopt' that there are no more
+   options.
+
+   If OPTS begins with `-', then non-option arguments are treated as
+   arguments to the option '\1'.  This behavior is specific to the GNU
+   `getopt'.  If OPTS begins with `+', or POSIXLY_CORRECT is set in
+   the environment, then do not permute arguments.  */
+
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+       __THROW;
+
+#ifndef __need_getopt
+extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,
+			const char *__shortopts,
+		        const struct option *__longopts, int *__longind)
+       __THROW;
+extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
+			     const char *__shortopts,
+		             const struct option *__longopts, int *__longind)
+       __THROW;
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Make sure we later can get all the definitions and declarations.  */
+#undef __need_getopt
+
+#endif /* getopt.h */
diff -uNr nagios-plugins-1.4.11/gl/getopt_int.h nagios-plugins-1.4.12/gl/getopt_int.h
--- nagios-plugins-1.4.11/gl/getopt_int.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/getopt_int.h	2008-02-12 12:07:18.000000000 +0100
@@ -3,19 +3,18 @@
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _GETOPT_INT_H
 #define _GETOPT_INT_H	1
diff -uNr nagios-plugins-1.4.11/gl/gettext.h nagios-plugins-1.4.12/gl/gettext.h
--- nagios-plugins-1.4.11/gl/gettext.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/gettext.h	2008-02-12 12:07:18.000000000 +0100
@@ -3,7 +3,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
diff -uNr nagios-plugins-1.4.11/gl/inet_ntop.c nagios-plugins-1.4.12/gl/inet_ntop.c
--- nagios-plugins-1.4.11/gl/inet_ntop.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/inet_ntop.c	2008-02-12 12:07:18.000000000 +0100
@@ -4,7 +4,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
diff -uNr nagios-plugins-1.4.11/gl/inet_ntop.h nagios-plugins-1.4.12/gl/inet_ntop.h
--- nagios-plugins-1.4.11/gl/inet_ntop.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/inet_ntop.h	2008-02-12 12:07:18.000000000 +0100
@@ -3,7 +3,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
diff -uNr nagios-plugins-1.4.11/gl/intprops.h nagios-plugins-1.4.12/gl/intprops.h
--- nagios-plugins-1.4.11/gl/intprops.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/intprops.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff -uNr nagios-plugins-1.4.11/gl/localcharset.c nagios-plugins-1.4.12/gl/localcharset.c
--- nagios-plugins-1.4.11/gl/localcharset.c	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/localcharset.c	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,460 @@
+/* Determine a canonical name for the current locale's character encoding.
+
+   Copyright (C) 2000-2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "localcharset.h"
+
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#if defined _WIN32 || defined __WIN32__
+# define WIN32_NATIVE
+#endif
+
+#if defined __EMX__
+/* Assume EMX program runs on OS/2, even if compiled under DOS.  */
+# define OS2
+#endif
+
+#if !defined WIN32_NATIVE
+# if HAVE_LANGINFO_CODESET
+#  include <langinfo.h>
+# else
+#  if 0 /* see comment below */
+#   include <locale.h>
+#  endif
+# endif
+# ifdef __CYGWIN__
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+# endif
+#elif defined WIN32_NATIVE
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+#if defined OS2
+# define INCL_DOS
+# include <os2.h>
+#endif
+
+#if ENABLE_RELOCATABLE
+# include "relocatable.h"
+#else
+# define relocate(pathname) (pathname)
+#endif
+
+/* Get LIBDIR.  */
+#ifndef LIBDIR
+# include "configmake.h"
+#endif
+
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+  /* Win32, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#endif
+
+#ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+#endif
+
+#ifndef ISSLASH
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+#endif
+
+#if HAVE_DECL_GETC_UNLOCKED
+# undef getc
+# define getc getc_unlocked
+#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 const char * volatile charset_aliases;
+
+/* Return a pointer to the contents of the charset.alias file.  */
+static const char *
+get_charset_aliases (void)
+{
+  const char *cp;
+
+  cp = charset_aliases;
+  if (cp == NULL)
+    {
+#if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
+      FILE *fp;
+      const char *dir;
+      const char *base = "charset.alias";
+      char *file_name;
+
+      /* Make it possible to override the charset.alias location.  This is
+	 necessary for running the testsuite before "make install".  */
+      dir = getenv ("CHARSETALIASDIR");
+      if (dir == NULL || dir[0] == '\0')
+	dir = relocate (LIBDIR);
+
+      /* 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.  */
+	  char *res_ptr = NULL;
+	  size_t res_size = 0;
+
+	  for (;;)
+	    {
+	      int c;
+	      char buf1[50+1];
+	      char buf2[50+1];
+	      size_t l1, l2;
+	      char *old_res_ptr;
+
+	      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);
+	      old_res_ptr = res_ptr;
+	      if (res_size == 0)
+		{
+		  res_size = l1 + 1 + l2 + 1;
+		  res_ptr = (char *) malloc (res_size + 1);
+		}
+	      else
+		{
+		  res_size += l1 + 1 + l2 + 1;
+		  res_ptr = (char *) realloc (res_ptr, res_size + 1);
+		}
+	      if (res_ptr == NULL)
+		{
+		  /* Out of memory. */
+		  res_size = 0;
+		  if (old_res_ptr != NULL)
+		    free (old_res_ptr);
+		  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
+
+# if defined VMS
+      /* To avoid the troubles of an extra file charset.alias_vms in the
+	 sources of many GNU packages, simply inline the aliases here.  */
+      /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
+	 "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
+	 section 10.7 "Handling Different Character Sets".  */
+      cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
+	   "ISO8859-2" "\0" "ISO-8859-2" "\0"
+	   "ISO8859-5" "\0" "ISO-8859-5" "\0"
+	   "ISO8859-7" "\0" "ISO-8859-7" "\0"
+	   "ISO8859-8" "\0" "ISO-8859-8" "\0"
+	   "ISO8859-9" "\0" "ISO-8859-9" "\0"
+	   /* Japanese */
+	   "eucJP" "\0" "EUC-JP" "\0"
+	   "SJIS" "\0" "SHIFT_JIS" "\0"
+	   "DECKANJI" "\0" "DEC-KANJI" "\0"
+	   "SDECKANJI" "\0" "EUC-JP" "\0"
+	   /* Chinese */
+	   "eucTW" "\0" "EUC-TW" "\0"
+	   "DECHANYU" "\0" "DEC-HANYU" "\0"
+	   "DECHANZI" "\0" "GB2312" "\0"
+	   /* Korean */
+	   "DECKOREAN" "\0" "EUC-KR" "\0";
+# endif
+
+# if defined WIN32_NATIVE || defined __CYGWIN__
+      /* 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"
+	   "CP20127" "\0" "ASCII" "\0"
+	   "CP20866" "\0" "KOI8-R" "\0"
+	   "CP20936" "\0" "GB2312" "\0"
+	   "CP21866" "\0" "KOI8-RU" "\0"
+	   "CP28591" "\0" "ISO-8859-1" "\0"
+	   "CP28592" "\0" "ISO-8859-2" "\0"
+	   "CP28593" "\0" "ISO-8859-3" "\0"
+	   "CP28594" "\0" "ISO-8859-4" "\0"
+	   "CP28595" "\0" "ISO-8859-5" "\0"
+	   "CP28596" "\0" "ISO-8859-6" "\0"
+	   "CP28597" "\0" "ISO-8859-7" "\0"
+	   "CP28598" "\0" "ISO-8859-8" "\0"
+	   "CP28599" "\0" "ISO-8859-9" "\0"
+	   "CP28605" "\0" "ISO-8859-15" "\0"
+	   "CP38598" "\0" "ISO-8859-8" "\0"
+	   "CP51932" "\0" "EUC-JP" "\0"
+	   "CP51936" "\0" "GB2312" "\0"
+	   "CP51949" "\0" "EUC-KR" "\0"
+	   "CP51950" "\0" "EUC-TW" "\0"
+	   "CP54936" "\0" "GB18030" "\0"
+	   "CP65001" "\0" "UTF-8" "\0";
+# endif
+#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 (void)
+{
+  const char *codeset;
+  const char *aliases;
+
+#if !(defined WIN32_NATIVE || defined OS2)
+
+# if HAVE_LANGINFO_CODESET
+
+  /* Most systems support nl_langinfo (CODESET) nowadays.  */
+  codeset = nl_langinfo (CODESET);
+
+#  ifdef __CYGWIN__
+  /* Cygwin 2006 does not have locales.  nl_langinfo (CODESET) always
+     returns "US-ASCII".  As long as this is not fixed, return the suffix
+     of the locale name from the environment variables (if present) or
+     the codepage as a number.  */
+  if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
+    {
+      const char *locale;
+      static char buf[2 + 10 + 1];
+
+      locale = getenv ("LC_ALL");
+      if (locale == NULL || locale[0] == '\0')
+	{
+	  locale = getenv ("LC_CTYPE");
+	  if (locale == NULL || locale[0] == '\0')
+	    locale = getenv ("LANG");
+	}
+      if (locale != NULL && locale[0] != '\0')
+	{
+	  /* If the locale name contains an encoding after the dot, return
+	     it.  */
+	  const char *dot = strchr (locale, '.');
+
+	  if (dot != NULL)
+	    {
+	      const char *modifier;
+
+	      dot++;
+	      /* Look for the possible @... trailer and remove it, if any.  */
+	      modifier = strchr (dot, '@');
+	      if (modifier == NULL)
+		return dot;
+	      if (modifier - dot < sizeof (buf))
+		{
+		  memcpy (buf, dot, modifier - dot);
+		  buf [modifier - dot] = '\0';
+		  return buf;
+		}
+	    }
+	}
+
+      /* Woe32 has a function returning the locale's codepage as a number.  */
+      sprintf (buf, "CP%u", GetACP ());
+      codeset = buf;
+    }
+#  endif
+
+# 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 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
+
+#elif defined WIN32_NATIVE
+
+  static char buf[2 + 10 + 1];
+
+  /* Woe32 has a function returning the locale's codepage as a number.  */
+  sprintf (buf, "CP%u", GetACP ());
+  codeset = buf;
+
+#elif defined OS2
+
+  const char *locale;
+  static char buf[2 + 10 + 1];
+  ULONG cp[3];
+  ULONG cplen;
+
+  /* Allow user to override the codeset, as set in the operating system,
+     with standard language environment variables.  */
+  locale = getenv ("LC_ALL");
+  if (locale == NULL || locale[0] == '\0')
+    {
+      locale = getenv ("LC_CTYPE");
+      if (locale == NULL || locale[0] == '\0')
+	locale = getenv ("LANG");
+    }
+  if (locale != NULL && locale[0] != '\0')
+    {
+      /* If the locale name contains an encoding after the dot, return it.  */
+      const char *dot = strchr (locale, '.');
+
+      if (dot != NULL)
+	{
+	  const char *modifier;
+
+	  dot++;
+	  /* Look for the possible @... trailer and remove it, if any.  */
+	  modifier = strchr (dot, '@');
+	  if (modifier == NULL)
+	    return dot;
+	  if (modifier - dot < sizeof (buf))
+	    {
+	      memcpy (buf, dot, modifier - dot);
+	      buf [modifier - dot] = '\0';
+	      return buf;
+	    }
+	}
+
+      /* Resolve through the charset.alias file.  */
+      codeset = locale;
+    }
+  else
+    {
+      /* OS/2 has a function returning the locale's codepage as a number.  */
+      if (DosQueryCp (sizeof (cp), cp, &cplen))
+	codeset = "";
+      else
+	{
+	  sprintf (buf, "CP%u", cp[0]);
+	  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;
+      }
+
+  /* Don't return an empty string.  GNU libc and GNU libiconv interpret
+     the empty string as denoting "the locale's character encoding",
+     thus GNU libiconv would call this function a second time.  */
+  if (codeset[0] == '\0')
+    codeset = "ASCII";
+
+  return codeset;
+}
diff -uNr nagios-plugins-1.4.11/gl/localcharset.h nagios-plugins-1.4.12/gl/localcharset.h
--- nagios-plugins-1.4.11/gl/localcharset.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/localcharset.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,41 @@
+/* Determine a canonical name for the current locale's character encoding.
+   Copyright (C) 2000-2003 Free Software Foundation, Inc.
+   This file is part of the GNU CHARSET Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _LOCALCHARSET_H
+#define _LOCALCHARSET_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* 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.  */
+extern const char * locale_charset (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LOCALCHARSET_H */
diff -uNr nagios-plugins-1.4.11/gl/m4/absolute-header.m4 nagios-plugins-1.4.12/gl/m4/absolute-header.m4
--- nagios-plugins-1.4.11/gl/m4/absolute-header.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/absolute-header.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,44 +0,0 @@
-# absolute-header.m4 serial 6
-dnl Copyright (C) 2006 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.
-
-dnl From Derek Price.
-
-# gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...)
-# ---------------------------------------
-# Find the absolute name of a header file, assuming the header exists.
-# If the header were sys/inttypes.h, this macro would define
-# ABSOLUTE_SYS_INTTYPES_H to the `""' quoted absolute name of sys/inttypes.h
-# in config.h
-# (e.g. `#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"').
-# The three "///" are to pacify Sun C 5.8, which otherwise would say
-# "warning: #include of /usr/include/... may be non-portable".
-# Use `""', not `<>', so that the /// cannot be confused with a C99 comment.
-AC_DEFUN([gl_ABSOLUTE_HEADER],
-[AC_LANG_PREPROC_REQUIRE()dnl
-AC_FOREACH([gl_HEADER_NAME], [$1],
-  [AS_VAR_PUSHDEF([gl_absolute_header],
-                  [gl_cv_absolute_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl
-  AC_CACHE_CHECK([absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
-    m4_quote(m4_defn([gl_absolute_header])),
-    [AS_VAR_PUSHDEF([ac_header_exists],
-                    [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl
-    AC_CHECK_HEADERS_ONCE(m4_quote(m4_defn([gl_HEADER_NAME])))dnl
-    if test AS_VAR_GET(ac_header_exists) = yes; then
-      AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]])])
-dnl eval is necessary to expand ac_cpp.
-dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell.
-      AS_VAR_SET(gl_absolute_header,
-[`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
-sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#;s#^/[^/]#//&#;p;q;}'`])
-    fi
-    AS_VAR_POPDEF([ac_header_exists])dnl
-    ])dnl
-  AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_quote(m4_defn([gl_HEADER_NAME]))),
-                     ["AS_VAR_GET(gl_absolute_header)"],
-                     [Define this to an absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>.])
-  AS_VAR_POPDEF([gl_absolute_header])dnl
-])dnl
-])# gl_ABSOLUTE_HEADER
diff -uNr nagios-plugins-1.4.11/gl/m4/alloca.m4 nagios-plugins-1.4.12/gl/m4/alloca.m4
--- nagios-plugins-1.4.11/gl/m4/alloca.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/alloca.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# alloca.m4 serial 7
-dnl Copyright (C) 2002-2004, 2006 Free Software Foundation, Inc.
+# alloca.m4 serial 8
+dnl Copyright (C) 2002-2004, 2006, 2007 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.
@@ -39,10 +39,6 @@
     ALLOCA_H=alloca.h
   fi
   AC_SUBST([ALLOCA_H])
-
-  AC_DEFINE(HAVE_ALLOCA_H, 1,
-    [Define HAVE_ALLOCA_H for backward compatibility with older code
-     that includes <alloca.h> only if HAVE_ALLOCA_H is defined.])
 ])
 
 # Prerequisites of lib/alloca.c.
diff -uNr nagios-plugins-1.4.11/gl/m4/base64.m4 nagios-plugins-1.4.12/gl/m4/base64.m4
--- nagios-plugins-1.4.11/gl/m4/base64.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/base64.m4	2008-02-12 13:03:58.000000000 +0100
@@ -0,0 +1,16 @@
+# base64.m4 serial 3
+dnl Copyright (C) 2004, 2006 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.
+
+AC_DEFUN([gl_FUNC_BASE64],
+[
+  gl_PREREQ_BASE64
+])
+
+# Prerequisites of lib/base64.c.
+AC_DEFUN([gl_PREREQ_BASE64], [
+  AC_REQUIRE([AC_C_INLINE])
+  AC_REQUIRE([AC_C_RESTRICT])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/extensions.m4 nagios-plugins-1.4.12/gl/m4/extensions.m4
--- nagios-plugins-1.4.11/gl/m4/extensions.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/extensions.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,14 +1,14 @@
-# serial 4  -*- Autoconf -*-
+# serial 5  -*- Autoconf -*-
 # Enable extensions on systems that normally disable them.
 
-# Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
 # Autoconf.  Perhaps we can remove this once we can assume Autoconf
-# 2.61 or later everywhere, but since CVS Autoconf mutates rapidly
+# 2.62 or later everywhere, but since CVS Autoconf mutates rapidly
 # enough in this area it's likely we'll need to redefine
 # AC_USE_SYSTEM_EXTENSIONS for quite some time.
 
@@ -16,26 +16,48 @@
 # ------------------------
 # Enable extensions on systems that normally disable them,
 # typically due to standards-conformance issues.
+# Remember that #undef in AH_VERBATIM gets replaced with #define by
+# AC_DEFINE.  The goal here is to define all known feature-enabling
+# macros, then, if reports of conflicts are made, disable macros that
+# cause problems on some platforms (such as __EXTENSIONS__).
 AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
-[
-  AC_BEFORE([$0], [AC_COMPILE_IFELSE])
-  AC_BEFORE([$0], [AC_RUN_IFELSE])
-
-  AC_REQUIRE([AC_GNU_SOURCE])
-  AC_REQUIRE([AC_AIX])
-  AC_REQUIRE([AC_MINIX])
+[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
+AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
+
+  AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
+  if test "$MINIX" = yes; then
+    AC_DEFINE([_POSIX_SOURCE], [1],
+      [Define to 1 if you need to in order for `stat' and other
+       things to work.])
+    AC_DEFINE([_POSIX_1_SOURCE], [2],
+      [Define to 2 if the system does not provide POSIX.1 features
+       except with this defined.])
+    AC_DEFINE([_MINIX], [1],
+      [Define to 1 if on MINIX.])
+  fi
 
   AH_VERBATIM([__EXTENSIONS__],
-[/* Enable extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
+[/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
 #endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
 #ifndef _POSIX_PTHREAD_SEMANTICS
 # undef _POSIX_PTHREAD_SEMANTICS
 #endif
+/* Enable extensions on HP NonStop.  */
 #ifndef _TANDEM_SOURCE
 # undef _TANDEM_SOURCE
-#endif])
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+])
   AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
     [ac_cv_safe_to_define___extensions__],
     [AC_COMPILE_IFELSE(
@@ -46,9 +68,11 @@
        [ac_cv_safe_to_define___extensions__=no])])
   test $ac_cv_safe_to_define___extensions__ = yes &&
     AC_DEFINE([__EXTENSIONS__])
+  AC_DEFINE([_ALL_SOURCE])
+  AC_DEFINE([_GNU_SOURCE])
   AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
   AC_DEFINE([_TANDEM_SOURCE])
-])
+])# AC_USE_SYSTEM_EXTENSIONS
 
 # gl_USE_SYSTEM_EXTENSIONS
 # ------------------------
diff -uNr nagios-plugins-1.4.11/gl/m4/float_h.m4 nagios-plugins-1.4.12/gl/m4/float_h.m4
--- nagios-plugins-1.4.11/gl/m4/float_h.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/float_h.m4	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,19 @@
+# float_h.m4 serial 3
+dnl Copyright (C) 2007 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.
+
+AC_DEFUN([gl_FLOAT_H],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  FLOAT_H=
+  case "$host_os" in
+    beos* | openbsd*)
+      FLOAT_H=float.h
+      gl_CHECK_NEXT_HEADERS([float.h])
+      ;;
+  esac
+  AC_SUBST([FLOAT_H])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/floorf.m4 nagios-plugins-1.4.12/gl/m4/floorf.m4
--- nagios-plugins-1.4.11/gl/m4/floorf.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/floorf.m4	2008-02-12 13:03:58.000000000 +0100
@@ -0,0 +1,62 @@
+# floorf.m4 serial 3
+dnl Copyright (C) 2007 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.
+
+AC_DEFUN([gl_FUNC_FLOORF],
+[
+  AC_REQUIRE([gl_MATH_H_DEFAULTS])
+  dnl Persuade glibc <math.h> to declare floorf().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  dnl Test whether floorf() is declared.
+  AC_CHECK_DECLS([floorf], , , [#include <math.h>])
+  if test "$ac_cv_have_decl_floorf" = yes; then
+    dnl Test whether floorf() can be used without libm.
+    gl_FUNC_FLOORF_LIBS
+    if test "$FLOORF_LIBM" = "?"; then
+      dnl Sun C 5.0 on Solaris declares floorf() and has it in the system-wide
+      dnl libm.so, but not in the libm.so that the compiler uses.
+      REPLACE_FLOORF=1
+    fi
+  else
+    REPLACE_FLOORF=1
+  fi
+  if test $REPLACE_FLOORF = 1; then
+    AC_LIBOBJ([floorf])
+    FLOORF_LIBM=
+  fi
+  AC_SUBST([REPLACE_FLOORF])
+  AC_SUBST([FLOORF_LIBM])
+])
+
+# Determines the libraries needed to get the floorf() function.
+# Sets FLOORF_LIBM.
+AC_DEFUN([gl_FUNC_FLOORF_LIBS],
+[
+  AC_CACHE_VAL([gl_cv_func_floorf_libm], [
+    gl_cv_func_floorf_libm=?
+    AC_TRY_LINK([
+       #ifndef __NO_MATH_INLINES
+       # define __NO_MATH_INLINES 1 /* for glibc */
+       #endif
+       #include <math.h>
+       float x;],
+      [x = floorf(x);],
+      [gl_cv_func_floorf_libm=])
+    if test "$gl_cv_func_floorf_libm" = "?"; then
+      save_LIBS="$LIBS"
+      LIBS="$LIBS -lm"
+      AC_TRY_LINK([
+         #ifndef __NO_MATH_INLINES
+         # define __NO_MATH_INLINES 1 /* for glibc */
+         #endif
+         #include <math.h>
+         float x;],
+        [x = floorf(x);],
+        [gl_cv_func_floorf_libm="-lm"])
+      LIBS="$save_LIBS"
+    fi
+  ])
+  FLOORF_LIBM="$gl_cv_func_floorf_libm"
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/fsusage.m4 nagios-plugins-1.4.12/gl/m4/fsusage.m4
--- nagios-plugins-1.4.11/gl/m4/fsusage.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/fsusage.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,8 +1,7 @@
-#serial 22
+#serial 23
 # Obtaining file system usage information.
 
-# Copyright (C) 1997, 1998, 2000, 2001, 2003, 2004, 2005, 2006 Free Software
-# Foundation, Inc.
+# Copyright (C) 1997, 1998, 2000, 2001, 2003-2007 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -55,6 +54,11 @@
 statvfs in GNU libc on BeOS operates differently: it only makes a system
 call.
 #endif
+
+#ifdef __osf__
+"Do not use Tru64's statvfs implementation"
+#endif
+
 #include <sys/statvfs.h>],
 			      [struct statvfs fsd; statvfs (0, &fsd);],
 			      fu_cv_sys_stat_statvfs=yes,
diff -uNr nagios-plugins-1.4.11/gl/m4/getaddrinfo.m4 nagios-plugins-1.4.12/gl/m4/getaddrinfo.m4
--- nagios-plugins-1.4.11/gl/m4/getaddrinfo.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/getaddrinfo.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,15 +1,31 @@
-# getaddrinfo.m4 serial 11
-dnl Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+# getaddrinfo.m4 serial 15
+dnl Copyright (C) 2004, 2005, 2006, 2007 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.
 
 AC_DEFUN([gl_GETADDRINFO],
 [
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
   AC_MSG_NOTICE([checking how to do getaddrinfo, freeaddrinfo and getnameinfo])
 
+  AC_CHECK_HEADERS_ONCE(netdb.h)
+
   AC_SEARCH_LIBS(getaddrinfo, [nsl socket])
-  AC_CHECK_FUNCS(getaddrinfo,, [
+  AC_CACHE_CHECK([for getaddrinfo], [gl_cv_func_getaddrinfo], [
+    AC_TRY_LINK([
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#include <stddef.h>
+], [getaddrinfo("", "", NULL, NULL);],
+      [gl_cv_func_getaddrinfo=yes],
+      [gl_cv_func_getaddrinfo=no])])
+  if test $gl_cv_func_getaddrinfo = no; then
     AC_CACHE_CHECK(for getaddrinfo in ws2tcpip.h and -lws2_32,
 		   gl_cv_w32_getaddrinfo, [
       gl_cv_w32_getaddrinfo=no
@@ -19,21 +35,46 @@
 #ifdef HAVE_WS2TCPIP_H
 #include <ws2tcpip.h>
 #endif
-], [getaddrinfo(0, 0, 0, 0);], gl_cv_w32_getaddrinfo=yes)
+#include <stddef.h>
+], [getaddrinfo(NULL, NULL, NULL, NULL);], gl_cv_w32_getaddrinfo=yes)
     LIBS="$am_save_LIBS"])
     if test "$gl_cv_w32_getaddrinfo" = "yes"; then
       LIBS="$LIBS -lws2_32"
     else
       AC_LIBOBJ(getaddrinfo)
     fi
-    ])
+  fi
+
+  # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an
+  # inline function declared in ws2tcpip.h, so we need to get that
+  # header included somehow.
+  AC_CACHE_CHECK([for gai_strerror (possibly via ws2tcpip.h)],
+    gl_cv_func_gai_strerror, [
+      AC_TRY_LINK([
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+#include <stddef.h>
+], [gai_strerror (NULL);],
+        [gl_cv_func_gai_strerror=yes],
+        [gl_cv_func_gai_strerror=no])])
+  if test $gl_cv_func_gai_strerror = no; then
+    AC_LIBOBJ(gai_strerror)
+  fi
 
-  AC_REPLACE_FUNCS(gai_strerror)
   gl_PREREQ_GETADDRINFO
 ])
 
 # Prerequisites of lib/getaddrinfo.h and lib/getaddrinfo.c.
 AC_DEFUN([gl_PREREQ_GETADDRINFO], [
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
   AC_SEARCH_LIBS(gethostbyname, [inet nsl])
   AC_SEARCH_LIBS(getservbyname, [inet nsl socket xnet])
   AC_CHECK_FUNCS(gethostbyname,, [
@@ -46,7 +87,8 @@
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
 #endif
-], [gethostbyname(0);], gl_cv_w32_gethostbyname=yes)
+#include <stddef.h>
+], [gethostbyname(NULL);], gl_cv_w32_gethostbyname=yes)
     LIBS="$am_save_LIBS"])
     if test "$gl_cv_w32_gethostbyname" = "yes"; then
       LIBS="$LIBS -lws2_32"
@@ -56,7 +98,7 @@
   AC_REQUIRE([gl_SOCKET_FAMILIES])
   AC_REQUIRE([gl_HEADER_SYS_SOCKET])
   AC_REQUIRE([AC_C_INLINE])
-  AC_REQUIRE([AC_GNU_SOURCE])
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_HEADERS_ONCE(netinet/in.h netdb.h)
   AC_CHECK_DECLS([getaddrinfo, freeaddrinfo, gai_strerror, getnameinfo],,,[
   /* sys/types.h is not needed according to POSIX, but the
diff -uNr nagios-plugins-1.4.11/gl/m4/getloadavg.m4 nagios-plugins-1.4.12/gl/m4/getloadavg.m4
--- nagios-plugins-1.4.11/gl/m4/getloadavg.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/getloadavg.m4	2008-02-12 12:07:18.000000000 +0100
@@ -31,6 +31,10 @@
 AC_CHECK_LIB(kstat, kstat_open)
 test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes
 
+# AIX has libperfstat which does not require root
+AC_CHECK_LIB(perfstat, perfstat_cpu_total)
+test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_have_func=yes
+
 # Some systems with -lutil have (and need) -lkvm as well, some do not.
 # On Solaris, -lkvm requires nlist from -lelf, so check that first
 # to get the right answer into the cache.
diff -uNr nagios-plugins-1.4.11/gl/m4/gettext.m4 nagios-plugins-1.4.12/gl/m4/gettext.m4
--- nagios-plugins-1.4.11/gl/m4/gettext.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/gettext.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# gettext.m4 serial 59 (gettext-0.16.1)
-dnl Copyright (C) 1995-2006 Free Software Foundation, Inc.
+# gettext.m4 serial 60 (gettext-0.17)
+dnl Copyright (C) 1995-2007 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.
@@ -362,44 +362,6 @@
 ])
 
 
-dnl Checks for special options needed on MacOS X.
-dnl Defines INTL_MACOSX_LIBS.
-AC_DEFUN([gt_INTL_MACOSX],
-[
-  dnl Check for API introduced in MacOS X 10.2.
-  AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
-    gt_cv_func_CFPreferencesCopyAppValue,
-    [gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
-       [CFPreferencesCopyAppValue(NULL, NULL)],
-       [gt_cv_func_CFPreferencesCopyAppValue=yes],
-       [gt_cv_func_CFPreferencesCopyAppValue=no])
-     LIBS="$gt_save_LIBS"])
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
-    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
-      [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
-  fi
-  dnl Check for API introduced in MacOS X 10.3.
-  AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
-    [gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
-       [gt_cv_func_CFLocaleCopyCurrent=yes],
-       [gt_cv_func_CFLocaleCopyCurrent=no])
-     LIBS="$gt_save_LIBS"])
-  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-    AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
-      [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
-  fi
-  INTL_MACOSX_LIBS=
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
-  fi
-  AC_SUBST([INTL_MACOSX_LIBS])
-])
-
-
 dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
 m4_define([gt_NEEDS_INIT],
 [
diff -uNr nagios-plugins-1.4.11/gl/m4/glibc21.m4 nagios-plugins-1.4.12/gl/m4/glibc21.m4
--- nagios-plugins-1.4.11/gl/m4/glibc21.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/glibc21.m4	2007-01-24 23:47:25.000000000 +0100
@@ -0,0 +1,30 @@
+# glibc21.m4 serial 3
+dnl Copyright (C) 2000-2002, 2004 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.
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([gl_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"
+  ]
+)
diff -uNr nagios-plugins-1.4.11/gl/m4/gnulib-common.m4 nagios-plugins-1.4.12/gl/m4/gnulib-common.m4
--- nagios-plugins-1.4.11/gl/m4/gnulib-common.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/gnulib-common.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,4 +1,4 @@
-# gnulib-common.m4 serial 2
+# gnulib-common.m4 serial 3
 dnl Copyright (C) 2007 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -20,3 +20,46 @@
     [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
      MKDIR_P='$(mkdir_p)'
      AC_SUBST([MKDIR_P])])])
+
+# AC_C_RESTRICT
+# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61,
+# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++
+# works.
+# This definition can be removed once autoconf >= 2.62 can be assumed.
+AC_DEFUN([AC_C_RESTRICT],
+[AC_CACHE_CHECK([for C/C++ restrict keyword], ac_cv_c_restrict,
+  [ac_cv_c_restrict=no
+   # The order here caters to the fact that C++ does not require restrict.
+   for ac_kw in __restrict __restrict__ _Restrict restrict; do
+     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+      [[typedef int * int_ptr;
+	int foo (int_ptr $ac_kw ip) {
+	return ip[0];
+       }]],
+      [[int s[1];
+	int * $ac_kw t = s;
+	t[0] = 0;
+	return foo(t)]])],
+      [ac_cv_c_restrict=$ac_kw])
+     test "$ac_cv_c_restrict" != no && break
+   done
+  ])
+ AH_VERBATIM([restrict],
+[/* Define to the equivalent of the C99 'restrict' keyword, or to
+   nothing if this is not supported.  Do not define if restrict is
+   supported directly.  */
+#undef restrict
+/* Work around a bug in Sun C++: it does not support _Restrict, even
+   though the corresponding Sun C compiler does, which causes
+   "#define restrict _Restrict" in the previous line.  Perhaps some future
+   version of Sun C++ will work with _Restrict; if so, it'll probably
+   define __RESTRICT, just as Sun C does.  */
+#if defined __SUNPRO_CC && !defined __RESTRICT
+# define _Restrict
+#endif])
+ case $ac_cv_c_restrict in
+   restrict) ;;
+   no) AC_DEFINE([restrict], []) ;;
+   *)  AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;;
+ esac
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/gnulib-comp.m4 nagios-plugins-1.4.12/gl/m4/gnulib-comp.m4
--- nagios-plugins-1.4.11/gl/m4/gnulib-comp.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/gnulib-comp.m4	2008-02-12 13:03:58.000000000 +0100
@@ -27,78 +27,98 @@
   AC_REQUIRE([AC_PROG_RANLIB])
   AC_REQUIRE([AC_GNU_SOURCE])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  AC_REQUIRE([gl_LOCK_EARLY])
 ])
 
 # This macro should be invoked from ./configure.in, in the section
 # "Check for header files, types and library functions".
 AC_DEFUN([gl_INIT],
 [
-  m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ]))
-  m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS]))
-  m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES]))
   AM_CONDITIONAL([GL_COND_LIBTOOL], [false])
   gl_cond_libtool=false
   gl_libdeps=
   gl_ltlibdeps=
+  m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ]))
+  m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS]))
+  m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES]))
   gl_source_base='gl'
   gl_FUNC_ALLOCA
   gl_HEADER_ARPA_INET
+  AC_PROG_MKDIR_P
+  gl_FUNC_BASE64
   gl_C_STRTOD
   gl_CLOEXEC
   gl_DIRNAME
   gl_DOUBLE_SLASH_ROOT
   gl_ERROR
+  m4_ifdef([AM_XGETTEXT_OPTION],
+    [AM_XGETTEXT_OPTION([--flag=error:3:c-format])
+     AM_XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
   gl_EXITFAIL
-  dnl gl_USE_SYSTEM_EXTENSIONS must be added quite early to configure.ac.
   gl_FCNTL_SAFER
   gl_MODULE_INDICATOR([fcntl-safer])
+  gl_FLOAT_H
+  gl_FUNC_FLOORF
+  gl_MATH_MODULE_INDICATOR([floorf])
   gl_FSUSAGE
   gl_GETADDRINFO
   gl_FUNC_GETHOSTNAME
   gl_GETLOADAVG([$gl_source_base])
   gl_GETOPT
   dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac.
-  AM_GNU_GETTEXT_VERSION([0.15])
+  AM_GNU_GETTEXT_VERSION([0.17])
+  AC_SUBST([LIBINTL])
+  AC_SUBST([LTLIBINTL])
   gl_INET_NTOP
   gl_INLINE
+  gl_LOCALCHARSET
+  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
+  AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
   AC_FUNC_MALLOC
-  gl_MBCHAR
-  gl_MBITER
-  gl_FUNC_MEMCHR
-  gl_MINMAX
+  AC_DEFINE([GNULIB_MALLOC_GNU], 1, [Define to indicate the 'malloc' module.])
+  gl_FUNC_MALLOC_POSIX
+  gl_STDLIB_MODULE_INDICATOR([malloc-posix])
+  gl_MATH_H
   gl_MOUNTLIST
   gl_HEADER_NETINET_IN
+  AC_PROG_MKDIR_P
   gl_REGEX
   gl_SAFE_READ
   gl_SAFE_WRITE
   gl_SIZE_MAX
   gl_FUNC_SNPRINTF
+  gl_STDIO_MODULE_INDICATOR([snprintf])
   gl_TYPE_SOCKLEN_T
   gt_TYPE_SSIZE_T
   AM_STDBOOL_H
   gl_STDINT_H
-  gl_STRCASE
+  gl_STDIO_H
+  gl_STDLIB_H
   gl_FUNC_STRDUP
+  gl_STRING_MODULE_INDICATOR([strdup])
+  gl_FUNC_STRERROR
+  gl_STRING_MODULE_INDICATOR([strerror])
+  gl_HEADER_STRING_H
   gl_FUNC_STRNDUP
+  gl_STRING_MODULE_INDICATOR([strndup])
   gl_FUNC_STRNLEN
+  gl_STRING_MODULE_INDICATOR([strnlen])
   gl_HEADER_SYS_SOCKET
   AC_PROG_MKDIR_P
-  gl_HEADER_UNISTD
+  gl_UNISTD_H
   gl_UNISTD_SAFER
   gl_FUNC_VASNPRINTF
   gl_FUNC_VASPRINTF
+  gl_STDIO_MODULE_INDICATOR([vasprintf])
+  m4_ifdef([AM_XGETTEXT_OPTION],
+    [AM_XGETTEXT_OPTION([--flag=asprintf:2:c-format])
+     AM_XGETTEXT_OPTION([--flag=vasprintf:2:c-format])])
   gl_FUNC_VSNPRINTF
+  gl_STDIO_MODULE_INDICATOR([vsnprintf])
   gl_WCHAR_H
   gl_WCTYPE_H
-  gl_FUNC_WCWIDTH
   gl_XALLOC
   gl_XSIZE
   gl_XSTRNDUP
-  LIBGNU_LIBDEPS="$gl_libdeps"
-  AC_SUBST([LIBGNU_LIBDEPS])
-  LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
-  AC_SUBST([LIBGNU_LTLIBDEPS])
   m4_popdef([AC_LIBSOURCES])
   m4_popdef([AC_REPLACE_FUNCS])
   m4_popdef([AC_LIBOBJ])
@@ -116,48 +136,137 @@
     AC_SUBST([gl_LIBOBJS], [$gl_libobjs])
     AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs])
   ])
+  gltests_libdeps=
+  gltests_ltlibdeps=
+  m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ]))
+  m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS]))
+  m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES]))
+  gl_source_base='tests'
+  m4_popdef([AC_LIBSOURCES])
+  m4_popdef([AC_REPLACE_FUNCS])
+  m4_popdef([AC_LIBOBJ])
+  AC_CONFIG_COMMANDS_PRE([
+    gltests_libobjs=
+    gltests_ltlibobjs=
+    if test -n "$gltests_LIBOBJS"; then
+      # Remove the extension.
+      sed_drop_objext='s/\.o$//;s/\.obj$//'
+      for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
+        gltests_libobjs="$gltests_libobjs $i.$ac_objext"
+        gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+      done
+    fi
+    AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs])
+    AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs])
+  ])
+  LIBGNU_LIBDEPS="$gl_libdeps"
+  AC_SUBST([LIBGNU_LIBDEPS])
+  LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
+  AC_SUBST([LIBGNU_LTLIBDEPS])
 ])
 
 # Like AC_LIBOBJ, except that the module name goes
 # into gl_LIBOBJS instead of into LIBOBJS.
-AC_DEFUN([gl_LIBOBJ],
-  [gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext"])
+AC_DEFUN([gl_LIBOBJ], [
+  AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl
+  gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext"
+])
+
+# m4_foreach_w is provided by autoconf-2.59c and later.
+# This definition is to accommodate developers using versions
+# of autoconf older than that.
+m4_ifndef([m4_foreach_w],
+  [m4_define([m4_foreach_w],
+    [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
 
 # Like AC_REPLACE_FUNCS, except that the module name goes
 # into gl_LIBOBJS instead of into LIBOBJS.
-AC_DEFUN([gl_REPLACE_FUNCS],
-  [AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)])])
+AC_DEFUN([gl_REPLACE_FUNCS], [
+  m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
+  AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)])
+])
+
+# Like AC_LIBSOURCES, except the directory where the source file is
+# expected is derived from the gnulib-tool parametrization,
+# and alloca is special cased (for the alloca-opt module).
+# We could also entirely rely on EXTRA_lib..._SOURCES.
+AC_DEFUN([gl_LIBSOURCES], [
+  m4_foreach([_gl_NAME], [$1], [
+    m4_if(_gl_NAME, [alloca.c], [], [
+      m4_syscmd([test -r gl/]_gl_NAME[ || test ! -d gl])dnl
+      m4_if(m4_sysval, [0], [],
+        [AC_FATAL([missing gl/]_gl_NAME)])
+    ])
+  ])
+])
+
+# Like AC_LIBOBJ, except that the module name goes
+# into gltests_LIBOBJS instead of into LIBOBJS.
+AC_DEFUN([gltests_LIBOBJ], [
+  AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl
+  gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext"
+])
+
+# m4_foreach_w is provided by autoconf-2.59c and later.
+# This definition is to accommodate developers using versions
+# of autoconf older than that.
+m4_ifndef([m4_foreach_w],
+  [m4_define([m4_foreach_w],
+    [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
 
-# Like AC_LIBSOURCES, except that it does nothing.
-# We rely on EXTRA_lib..._SOURCES instead.
-AC_DEFUN([gl_LIBSOURCES],
-  [])
+# Like AC_REPLACE_FUNCS, except that the module name goes
+# into gltests_LIBOBJS instead of into LIBOBJS.
+AC_DEFUN([gltests_REPLACE_FUNCS], [
+  m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
+  AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)])
+])
+
+# Like AC_LIBSOURCES, except the directory where the source file is
+# expected is derived from the gnulib-tool parametrization,
+# and alloca is special cased (for the alloca-opt module).
+# We could also entirely rely on EXTRA_lib..._SOURCES.
+AC_DEFUN([gltests_LIBSOURCES], [
+  m4_foreach([_gl_NAME], [$1], [
+    m4_if(_gl_NAME, [alloca.c], [], [
+      m4_syscmd([test -r tests/]_gl_NAME[ || test ! -d tests])dnl
+      m4_if(m4_sysval, [0], [],
+        [AC_FATAL([missing tests/]_gl_NAME)])
+    ])
+  ])
+])
 
 # This macro records the list of files which have been installed by
 # gnulib-tool and may be removed by future gnulib-tool invocations.
 AC_DEFUN([gl_FILE_LIST], [
   build-aux/config.rpath
+  build-aux/link-warning.h
   lib/alloca.c
-  lib/alloca_.h
+  lib/alloca.in.h
   lib/asnprintf.c
   lib/asprintf.c
+  lib/base64.c
+  lib/base64.h
   lib/basename.c
   lib/c-strtod.c
   lib/c-strtod.h
   lib/cloexec.c
   lib/cloexec.h
+  lib/config.charset
   lib/creat-safer.c
   lib/dirname.c
   lib/dirname.h
   lib/dup-safer.c
   lib/error.c
   lib/error.h
-  lib/exit.h
   lib/exitfail.c
   lib/exitfail.h
   lib/fcntl--.h
   lib/fcntl-safer.h
   lib/fd-safer.c
+  lib/float+.h
+  lib/float.in.h
+  lib/floor.c
+  lib/floorf.c
   lib/fsusage.c
   lib/fsusage.h
   lib/full-read.c
@@ -170,27 +279,28 @@
   lib/gethostname.c
   lib/getloadavg.c
   lib/getopt.c
+  lib/getopt.in.h
   lib/getopt1.c
-  lib/getopt_.h
   lib/getopt_int.h
   lib/gettext.h
   lib/inet_ntop.c
   lib/inet_ntop.h
   lib/intprops.h
+  lib/localcharset.c
+  lib/localcharset.h
   lib/malloc.c
-  lib/mbchar.c
-  lib/mbchar.h
-  lib/mbuiter.h
-  lib/memchr.c
-  lib/minmax.h
+  lib/math.in.h
   lib/mountlist.c
   lib/mountlist.h
+  lib/netinet_in.in.h
   lib/open-safer.c
   lib/pipe-safer.c
   lib/printf-args.c
   lib/printf-args.h
   lib/printf-parse.c
   lib/printf-parse.h
+  lib/ref-add.sin
+  lib/ref-del.sin
   lib/regcomp.c
   lib/regex.c
   lib/regex.h
@@ -203,34 +313,26 @@
   lib/safe-write.h
   lib/size_max.h
   lib/snprintf.c
-  lib/snprintf.h
-  lib/socket_.h
-  lib/stdbool_.h
-  lib/stdint_.h
-  lib/strcase.h
-  lib/strcasecmp.c
+  lib/stdbool.in.h
+  lib/stdint.in.h
+  lib/stdio.in.h
+  lib/stdlib.in.h
   lib/strdup.c
-  lib/strdup.h
+  lib/strerror.c
+  lib/string.in.h
   lib/stripslash.c
-  lib/strncasecmp.c
   lib/strndup.c
-  lib/strndup.h
   lib/strnlen.c
-  lib/strnlen.h
-  lib/strnlen1.c
-  lib/strnlen1.h
+  lib/sys_socket.in.h
   lib/unistd--.h
   lib/unistd-safer.h
-  lib/unistd_.h
+  lib/unistd.in.h
   lib/vasnprintf.c
   lib/vasnprintf.h
   lib/vasprintf.c
-  lib/vasprintf.h
   lib/vsnprintf.c
-  lib/vsnprintf.h
-  lib/wchar_.h
-  lib/wctype_.h
-  lib/wcwidth.h
+  lib/wchar.in.h
+  lib/wctype.in.h
   lib/xalloc-die.c
   lib/xalloc.h
   lib/xmalloc.c
@@ -240,6 +342,7 @@
   m4/absolute-header.m4
   m4/alloca.m4
   m4/arpa_inet_h.m4
+  m4/base64.m4
   m4/c-strtod.m4
   m4/cloexec.m4
   m4/codeset.m4
@@ -251,6 +354,8 @@
   m4/exitfail.m4
   m4/extensions.m4
   m4/fcntl-safer.m4
+  m4/float_h.m4
+  m4/floorf.m4
   m4/fstypename.m4
   m4/fsusage.m4
   m4/getaddrinfo.m4
@@ -262,11 +367,13 @@
   m4/glibc21.m4
   m4/gnulib-common.m4
   m4/iconv.m4
+  m4/include_next.m4
   m4/inet_ntop.m4
   m4/inline.m4
   m4/intdiv0.m4
   m4/intl.m4
   m4/intldir.m4
+  m4/intlmacosx.m4
   m4/intmax.m4
   m4/intmax_t.m4
   m4/inttypes-pri.m4
@@ -275,15 +382,12 @@
   m4/lib-ld.m4
   m4/lib-link.m4
   m4/lib-prefix.m4
+  m4/localcharset.m4
   m4/lock.m4
-  m4/longdouble.m4
   m4/longlong.m4
   m4/ls-mntd-fs.m4
-  m4/mbchar.m4
-  m4/mbiter.m4
-  m4/mbrtowc.m4
-  m4/memchr.m4
-  m4/minmax.m4
+  m4/malloc.m4
+  m4/math_h.m4
   m4/mountlist.m4
   m4/netinet_in_h.m4
   m4/nls.m4
@@ -302,13 +406,15 @@
   m4/stdbool.m4
   m4/stdint.m4
   m4/stdint_h.m4
-  m4/strcase.m4
+  m4/stdio_h.m4
+  m4/stdlib_h.m4
   m4/strdup.m4
+  m4/strerror.m4
+  m4/string_h.m4
   m4/strndup.m4
   m4/strnlen.m4
   m4/sys_socket_h.m4
   m4/uintmax_t.m4
-  m4/ulonglong.m4
   m4/unistd-safer.m4
   m4/unistd_h.m4
   m4/vasnprintf.m4
@@ -318,7 +424,6 @@
   m4/wchar.m4
   m4/wchar_t.m4
   m4/wctype.m4
-  m4/wcwidth.m4
   m4/wint_t.m4
   m4/xalloc.m4
   m4/xsize.m4
diff -uNr nagios-plugins-1.4.11/gl/m4/iconv.m4 nagios-plugins-1.4.12/gl/m4/iconv.m4
--- nagios-plugins-1.4.11/gl/m4/iconv.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/iconv.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# iconv.m4 serial AM4 (gettext-0.11.3)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+# iconv.m4 serial AM6 (gettext-0.17)
+dnl Copyright (C) 2000-2002, 2007 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.
@@ -21,6 +21,7 @@
 [
   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_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
 
   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
   dnl accordingly.
@@ -33,7 +34,7 @@
   am_save_CPPFLAGS="$CPPFLAGS"
   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
 
-  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+  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>
@@ -56,7 +57,85 @@
     fi
   ])
   if test "$am_cv_func_iconv" = yes; then
-    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+    AC_CACHE_CHECK([for working iconv], am_cv_func_iconv_works, [
+      dnl This tests against bugs in AIX 5.1 and HP-UX 11.11.
+      am_save_LIBS="$LIBS"
+      if test $am_cv_lib_iconv = yes; then
+        LIBS="$LIBS $LIBICONV"
+      fi
+      AC_TRY_RUN([
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+     returns.  */
+  {
+    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+    if (cd_utf8_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_utf8_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          return 1;
+      }
+  }
+#if 0 /* This bug could be worked around by the caller.  */
+  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
+  {
+    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+    if (cd_88591_to_utf8 != (iconv_t)(-1))
+      {
+        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        char buf[50];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_88591_to_utf8,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if ((int)res > 0)
+          return 1;
+      }
+  }
+#endif
+  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+     provided.  */
+  if (/* Try standardized names.  */
+      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+      /* Try IRIX, OSF/1 names.  */
+      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+      /* Try AIX names.  */
+      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+      /* Try HP-UX names.  */
+      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+    return 1;
+  return 0;
+}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no],
+        [case "$host_os" in
+           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+           *)            am_cv_func_iconv_works="guessing yes" ;;
+         esac])
+      LIBS="$am_save_LIBS"
+    ])
+    case "$am_cv_func_iconv_works" in
+      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+      *)   am_func_iconv=yes ;;
+    esac
+  else
+    am_func_iconv=no am_cv_lib_iconv=no
+  fi
+  if test "$am_func_iconv" = yes; then
+    AC_DEFINE(HAVE_ICONV, 1,
+      [Define if you have the iconv() function and it works.])
   fi
   if test "$am_cv_lib_iconv" = yes; then
     AC_MSG_CHECKING([how to link with libiconv])
diff -uNr nagios-plugins-1.4.11/gl/m4/include_next.m4 nagios-plugins-1.4.12/gl/m4/include_next.m4
--- nagios-plugins-1.4.11/gl/m4/include_next.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/include_next.m4	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,107 @@
+# include_next.m4 serial 4
+dnl Copyright (C) 2006, 2007 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.
+
+dnl From Paul Eggert and Derek Price.
+
+AC_DEFUN([gl_INCLUDE_NEXT],
+[
+  AC_LANG_PREPROC_REQUIRE()
+  AC_CACHE_CHECK([whether the preprocessor supports include_next],
+    [gl_cv_have_include_next],
+    [rm -rf conftestd1 conftestd2
+     mkdir conftestd1 conftestd2
+     cat <<EOF > conftestd1/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+     cat <<EOF > conftestd2/conftest.h
+#ifndef DEFINED_IN_CONFTESTD1
+#error "include_next test doesn't work"
+#endif
+#define DEFINED_IN_CONFTESTD2
+EOF
+     save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -Iconftestd1 -Iconftestd2"
+     AC_COMPILE_IFELSE([#include <conftest.h>],
+       [gl_cv_have_include_next=yes],
+       [gl_cv_have_include_next=no])
+     CPPFLAGS="$save_CPPFLAGS"
+     rm -rf conftestd1 conftestd2
+    ])
+  if test $gl_cv_have_include_next = yes; then
+
+    dnl FIXME: Remove HAVE_INCLUDE_NEXT and update everything that uses it
+    dnl to use @INCLUDE_NEXT@ instead.
+    AC_DEFINE([HAVE_INCLUDE_NEXT], 1,
+	      [Define if your compiler supports the #include_next directive.])
+
+    INCLUDE_NEXT=include_next
+  else
+    INCLUDE_NEXT=include
+  fi
+  AC_SUBST([INCLUDE_NEXT])
+])
+
+# gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...)
+# ------------------------------------------
+# For each arg foo.h, if #include_next works, define NEXT_FOO_H to be
+# '<foo.h>'; otherwise define it to be
+# '"///usr/include/foo.h"', or whatever other absolute file name is suitable.
+# That way, a header file with the following line:
+#	#@INCLUDE_NEXT@ @NEXT_FOO_H@
+# behaves (after sed substitution) as if it contained
+#	#include_next <foo.h>
+# even if the compiler does not support include_next.
+# The three "///" are to pacify Sun C 5.8, which otherwise would say
+# "warning: #include of /usr/include/... may be non-portable".
+# Use `""', not `<>', so that the /// cannot be confused with a C99 comment.
+AC_DEFUN([gl_CHECK_NEXT_HEADERS],
+[
+  AC_REQUIRE([gl_INCLUDE_NEXT])
+  AC_CHECK_HEADERS_ONCE([$1])
+
+  AC_FOREACH([gl_HEADER_NAME], [$1],
+    [AS_VAR_PUSHDEF([gl_next_header],
+		    [gl_cv_next_]m4_quote(m4_defn([gl_HEADER_NAME])))
+     if test $gl_cv_have_include_next = yes; then
+       AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+     else
+       AC_CACHE_CHECK(
+	 [absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
+	 m4_quote(m4_defn([gl_next_header])),
+	 [AS_VAR_PUSHDEF([gl_header_exists],
+			 [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))
+	  if test AS_VAR_GET(gl_header_exists) = yes; then
+	    AC_LANG_CONFTEST(
+	      [AC_LANG_SOURCE(
+		 [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]]
+	       )])
+	    dnl eval is necessary to expand ac_cpp.
+	    dnl Ultrix and Pyramid sh refuse to redirect output of eval,
+	    dnl so use subshell.
+	    AS_VAR_SET([gl_next_header],
+	      ['"'`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+	       sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{
+		 s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'])
+	  else
+	    AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+	  fi
+	  AS_VAR_POPDEF([gl_header_exists])])
+     fi
+     AC_SUBST(
+       AS_TR_CPP([NEXT_]m4_quote(m4_defn([gl_HEADER_NAME]))),
+       [AS_VAR_GET([gl_next_header])])
+     AS_VAR_POPDEF([gl_next_header])])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/intlmacosx.m4 nagios-plugins-1.4.12/gl/m4/intlmacosx.m4
--- nagios-plugins-1.4.11/gl/m4/intlmacosx.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/intlmacosx.m4	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,51 @@
+# intlmacosx.m4 serial 1 (gettext-0.17)
+dnl Copyright (C) 2004-2007 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.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Checks for special options needed on MacOS X.
+dnl Defines INTL_MACOSX_LIBS.
+AC_DEFUN([gt_INTL_MACOSX],
+[
+  dnl Check for API introduced in MacOS X 10.2.
+  AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+    gt_cv_func_CFPreferencesCopyAppValue,
+    [gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
+       [CFPreferencesCopyAppValue(NULL, NULL)],
+       [gt_cv_func_CFPreferencesCopyAppValue=yes],
+       [gt_cv_func_CFPreferencesCopyAppValue=no])
+     LIBS="$gt_save_LIBS"])
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
+      [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+  fi
+  dnl Check for API introduced in MacOS X 10.3.
+  AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
+    [gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
+       [gt_cv_func_CFLocaleCopyCurrent=yes],
+       [gt_cv_func_CFLocaleCopyCurrent=no])
+     LIBS="$gt_save_LIBS"])
+  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
+      [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+  fi
+  INTL_MACOSX_LIBS=
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+  fi
+  AC_SUBST([INTL_MACOSX_LIBS])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/intmax_t.m4 nagios-plugins-1.4.12/gl/m4/intmax_t.m4
--- nagios-plugins-1.4.11/gl/m4/intmax_t.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/intmax_t.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# intmax_t.m4 serial 5
-dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc.
+# intmax_t.m4 serial 6
+dnl Copyright (C) 1997-2004, 2006-2007 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.
@@ -18,8 +18,8 @@
   AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
   AC_REQUIRE([gl_AC_HEADER_STDINT_H])
   if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
-    AC_REQUIRE([gl_AC_TYPE_LONG_LONG])
-    test $ac_cv_type_long_long = yes \
+    AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+    test $ac_cv_type_long_long_int = yes \
       && ac_type='long long' \
       || ac_type='long'
     AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
@@ -51,8 +51,8 @@
     AC_DEFINE(HAVE_INTMAX_T, 1,
       [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
   else
-    AC_REQUIRE([gl_AC_TYPE_LONG_LONG])
-    test $ac_cv_type_long_long = yes \
+    AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+    test $ac_cv_type_long_long_int = yes \
       && ac_type='long long' \
       || ac_type='long'
     AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
diff -uNr nagios-plugins-1.4.11/gl/m4/lib-link.m4 nagios-plugins-1.4.12/gl/m4/lib-link.m4
--- nagios-plugins-1.4.11/gl/m4/lib-link.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/lib-link.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,4 +1,4 @@
-# lib-link.m4 serial 13 (gettext-0.16.2)
+# lib-link.m4 serial 13 (gettext-0.17)
 dnl Copyright (C) 2001-2007 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
diff -uNr nagios-plugins-1.4.11/gl/m4/localcharset.m4 nagios-plugins-1.4.12/gl/m4/localcharset.m4
--- nagios-plugins-1.4.11/gl/m4/localcharset.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/localcharset.m4	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,16 @@
+# localcharset.m4 serial 5
+dnl Copyright (C) 2002, 2004, 2006 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.
+
+AC_DEFUN([gl_LOCALCHARSET],
+[
+  dnl Prerequisites of lib/localcharset.c.
+  AC_REQUIRE([AM_LANGINFO_CODESET])
+  AC_CHECK_DECLS_ONCE(getc_unlocked)
+
+  dnl Prerequisites of the lib/Makefile.am snippet.
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gl_GLIBC21])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/lock.m4 nagios-plugins-1.4.12/gl/m4/lock.m4
--- nagios-plugins-1.4.11/gl/m4/lock.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/lock.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,311 +0,0 @@
-# lock.m4 serial 6 (gettext-0.16)
-dnl Copyright (C) 2005-2006 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.
-
-dnl From Bruno Haible.
-
-dnl Tests for a multithreading library to be used.
-dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS,
-dnl USE_PTH_THREADS, USE_WIN32_THREADS
-dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use
-dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with
-dnl libtool).
-dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for
-dnl programs that really need multithread functionality. The difference
-dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak
-dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread".
-dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
-dnl multithread-safe programs.
-
-AC_DEFUN([gl_LOCK_EARLY],
-[
-  AC_REQUIRE([gl_LOCK_EARLY_BODY])
-])
-
-dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once.
-
-AC_DEFUN([gl_LOCK_EARLY_BODY],
-[
-  dnl Ordering constraints: This macro modifies CPPFLAGS in a way that
-  dnl influences the result of the autoconf tests that test for *_unlocked
-  dnl declarations, on AIX 5 at least. Therefore it must come early.
-  AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl
-  AC_BEFORE([$0], [gl_ARGP])dnl
-
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([AC_GNU_SOURCE]) dnl needed for pthread_rwlock_t on glibc systems
-  dnl Check for multithreading.
-  AC_ARG_ENABLE(threads,
-AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API])
-AC_HELP_STRING([--disable-threads], [build without multithread safety]),
-    [gl_use_threads=$enableval],
-    [case "$host_os" in
-       dnl Disable multithreading by default on OSF/1, because it interferes
-       dnl with fork()/exec(): When msgexec is linked with -lpthread, its child
-       dnl process gets an endless segmentation fault inside execvp().
-       osf*) gl_use_threads=no ;;
-       *)    gl_use_threads=yes ;;
-     esac
-    ])
-  if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
-    # For using <pthread.h>:
-    case "$host_os" in
-      osf*)
-        # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
-        # groks <pthread.h>. cc also understands the flag -pthread, but
-        # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
-        # 2. putting a flag into CPPFLAGS that has an effect on the linker
-        # causes the AC_TRY_LINK test below to succeed unexpectedly,
-        # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
-        CPPFLAGS="$CPPFLAGS -D_REENTRANT"
-        ;;
-    esac
-    # Some systems optimize for single-threaded programs by default, and
-    # need special flags to disable these optimizations. For example, the
-    # definition of 'errno' in <errno.h>.
-    case "$host_os" in
-      aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;;
-      solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;;
-    esac
-  fi
-])
-
-dnl The guts of gl_LOCK. Needs to be expanded only once.
-
-AC_DEFUN([gl_LOCK_BODY],
-[
-  AC_REQUIRE([gl_LOCK_EARLY_BODY])
-  gl_threads_api=none
-  LIBTHREAD=
-  LTLIBTHREAD=
-  LIBMULTITHREAD=
-  LTLIBMULTITHREAD=
-  if test "$gl_use_threads" != no; then
-    dnl Check whether the compiler and linker support weak declarations.
-    AC_MSG_CHECKING([whether imported symbols can be declared weak])
-    gl_have_weak=no
-    AC_TRY_LINK([extern void xyzzy ();
-#pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes])
-    AC_MSG_RESULT([$gl_have_weak])
-    if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
-      # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
-      # it groks <pthread.h>. It's added above, in gl_LOCK_EARLY_BODY.
-      AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no)
-      if test "$gl_have_pthread_h" = yes; then
-        # Other possible tests:
-        #   -lpthreads (FSU threads, PCthreads)
-        #   -lgthreads
-        gl_have_pthread=
-        # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist
-        # in libc. IRIX 6.5 has the first one in both libc and libpthread, but
-        # the second one only in libpthread, and lock.c needs it.
-        AC_TRY_LINK([#include <pthread.h>],
-          [pthread_mutex_lock((pthread_mutex_t*)0);
-           pthread_mutexattr_init((pthread_mutexattr_t*)0);],
-          [gl_have_pthread=yes])
-        # Test for libpthread by looking for pthread_kill. (Not pthread_self,
-        # since it is defined as a macro on OSF/1.)
-        if test -n "$gl_have_pthread"; then
-          # The program links fine without libpthread. But it may actually
-          # need to link with libpthread in order to create multiple threads.
-          AC_CHECK_LIB(pthread, pthread_kill,
-            [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
-             # On Solaris and HP-UX, most pthread functions exist also in libc.
-             # Therefore pthread_in_use() needs to actually try to create a
-             # thread: pthread_create from libc will fail, whereas
-             # pthread_create will actually create a thread.
-             case "$host_os" in
-               solaris* | hpux*)
-                 AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1,
-                   [Define if the pthread_in_use() detection is hard.])
-             esac
-            ])
-        else
-          # Some library is needed. Try libpthread and libc_r.
-          AC_CHECK_LIB(pthread, pthread_kill,
-            [gl_have_pthread=yes
-             LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread
-             LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread])
-          if test -z "$gl_have_pthread"; then
-            # For FreeBSD 4.
-            AC_CHECK_LIB(c_r, pthread_kill,
-              [gl_have_pthread=yes
-               LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r
-               LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r])
-          fi
-        fi
-        if test -n "$gl_have_pthread"; then
-          gl_threads_api=posix
-          AC_DEFINE([USE_POSIX_THREADS], 1,
-            [Define if the POSIX multithreading library can be used.])
-          if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
-            if test $gl_have_weak = yes; then
-              AC_DEFINE([USE_POSIX_THREADS_WEAK], 1,
-                [Define if references to the POSIX multithreading library should be made weak.])
-              LIBTHREAD=
-              LTLIBTHREAD=
-            fi
-          fi
-          # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the
-          # pthread_rwlock_* functions.
-          AC_CHECK_TYPE([pthread_rwlock_t],
-            [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1,
-               [Define if the POSIX multithreading library has read/write locks.])],
-            [],
-            [#include <pthread.h>])
-          # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
-          AC_TRY_COMPILE([#include <pthread.h>],
-            [#if __FreeBSD__ == 4
-error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
-#else
-int x = (int)PTHREAD_MUTEX_RECURSIVE;
-return !x;
-#endif],
-            [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1,
-               [Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])])
-        fi
-      fi
-    fi
-    if test -z "$gl_have_pthread"; then
-      if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then
-        gl_have_solaristhread=
-        gl_save_LIBS="$LIBS"
-        LIBS="$LIBS -lthread"
-        AC_TRY_LINK([#include <thread.h>
-#include <synch.h>],
-          [thr_self();],
-          [gl_have_solaristhread=yes])
-        LIBS="$gl_save_LIBS"
-        if test -n "$gl_have_solaristhread"; then
-          gl_threads_api=solaris
-          LIBTHREAD=-lthread
-          LTLIBTHREAD=-lthread
-          LIBMULTITHREAD="$LIBTHREAD"
-          LTLIBMULTITHREAD="$LTLIBTHREAD"
-          AC_DEFINE([USE_SOLARIS_THREADS], 1,
-            [Define if the old Solaris multithreading library can be used.])
-          if test $gl_have_weak = yes; then
-            AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1,
-              [Define if references to the old Solaris multithreading library should be made weak.])
-            LIBTHREAD=
-            LTLIBTHREAD=
-          fi
-        fi
-      fi
-    fi
-    if test "$gl_use_threads" = pth; then
-      gl_save_CPPFLAGS="$CPPFLAGS"
-      AC_LIB_LINKFLAGS(pth)
-      gl_have_pth=
-      gl_save_LIBS="$LIBS"
-      LIBS="$LIBS -lpth"
-      AC_TRY_LINK([#include <pth.h>], [pth_self();], gl_have_pth=yes)
-      LIBS="$gl_save_LIBS"
-      if test -n "$gl_have_pth"; then
-        gl_threads_api=pth
-        LIBTHREAD="$LIBPTH"
-        LTLIBTHREAD="$LTLIBPTH"
-        LIBMULTITHREAD="$LIBTHREAD"
-        LTLIBMULTITHREAD="$LTLIBTHREAD"
-        AC_DEFINE([USE_PTH_THREADS], 1,
-          [Define if the GNU Pth multithreading library can be used.])
-        if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
-          if test $gl_have_weak = yes; then
-            AC_DEFINE([USE_PTH_THREADS_WEAK], 1,
-              [Define if references to the GNU Pth multithreading library should be made weak.])
-            LIBTHREAD=
-            LTLIBTHREAD=
-          fi
-        fi
-      else
-        CPPFLAGS="$gl_save_CPPFLAGS"
-      fi
-    fi
-    if test -z "$gl_have_pthread"; then
-      if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then
-        if { case "$host_os" in
-               mingw*) true;;
-               *) false;;
-             esac
-           }; then
-          gl_threads_api=win32
-          AC_DEFINE([USE_WIN32_THREADS], 1,
-            [Define if the Win32 multithreading API can be used.])
-        fi
-      fi
-    fi
-  fi
-  AC_MSG_CHECKING([for multithread API to use])
-  AC_MSG_RESULT([$gl_threads_api])
-  AC_SUBST(LIBTHREAD)
-  AC_SUBST(LTLIBTHREAD)
-  AC_SUBST(LIBMULTITHREAD)
-  AC_SUBST(LTLIBMULTITHREAD)
-])
-
-AC_DEFUN([gl_LOCK],
-[
-  AC_REQUIRE([gl_LOCK_EARLY])
-  AC_REQUIRE([gl_LOCK_BODY])
-  gl_PREREQ_LOCK
-])
-
-# Prerequisites of lib/lock.c.
-AC_DEFUN([gl_PREREQ_LOCK], [
-  AC_REQUIRE([AC_C_INLINE])
-])
-
-dnl Survey of platforms:
-dnl
-dnl Platform          Available   Compiler    Supports   test-lock
-dnl                   flavours    option      weak       result
-dnl ---------------   ---------   ---------   --------   ---------
-dnl Linux 2.4/glibc   posix       -lpthread       Y      OK
-dnl
-dnl GNU Hurd/glibc    posix
-dnl
-dnl FreeBSD 5.3       posix       -lc_r           Y
-dnl                   posix       -lkse ?         Y
-dnl                   posix       -lpthread ?     Y
-dnl                   posix       -lthr           Y
-dnl
-dnl FreeBSD 5.2       posix       -lc_r           Y
-dnl                   posix       -lkse           Y
-dnl                   posix       -lthr           Y
-dnl
-dnl FreeBSD 4.0,4.10  posix       -lc_r           Y      OK
-dnl
-dnl NetBSD 1.6        --
-dnl
-dnl OpenBSD 3.4       posix       -lpthread       Y      OK
-dnl
-dnl MacOS X 10.[123]  posix       -lpthread       Y      OK
-dnl
-dnl Solaris 7,8,9     posix       -lpthread       Y      Sol 7,8: 0.0; Sol 9: OK
-dnl                   solaris     -lthread        Y      Sol 7,8: 0.0; Sol 9: OK
-dnl
-dnl HP-UX 11          posix       -lpthread       N (cc) OK
-dnl                                               Y (gcc)
-dnl
-dnl IRIX 6.5          posix       -lpthread       Y      0.5
-dnl
-dnl AIX 4.3,5.1       posix       -lpthread       N      AIX 4: 0.5; AIX 5: OK
-dnl
-dnl OSF/1 4.0,5.1     posix       -pthread (cc)   N      OK
-dnl                               -lpthread (gcc) Y
-dnl
-dnl Cygwin            posix       -lpthread       Y      OK
-dnl
-dnl Any of the above  pth         -lpth                  0.0
-dnl
-dnl Mingw             win32                       N      OK
-dnl
-dnl BeOS 5            --
-dnl
-dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is
-dnl turned off:
-dnl   OK if all three tests terminate OK,
-dnl   0.5 if the first test terminates OK but the second one loops endlessly,
-dnl   0.0 if the first test already loops endlessly.
diff -uNr nagios-plugins-1.4.11/gl/m4/longdouble.m4 nagios-plugins-1.4.12/gl/m4/longdouble.m4
--- nagios-plugins-1.4.11/gl/m4/longdouble.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/longdouble.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,31 +0,0 @@
-# longdouble.m4 serial 2 (gettext-0.15)
-dnl Copyright (C) 2002-2003, 2006 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.
-
-dnl From Bruno Haible.
-dnl Test whether the compiler supports the 'long double' type.
-dnl Prerequisite: AC_PROG_CC
-
-dnl This file is only needed in autoconf <= 2.59.  Newer versions of autoconf
-dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics.
-
-AC_DEFUN([gt_TYPE_LONGDOUBLE],
-[
-  AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
-    [if test "$GCC" = yes; then
-       gt_cv_c_long_double=yes
-     else
-       AC_TRY_COMPILE([
-         /* The Stardent Vistra knows sizeof(long double), but does not support it.  */
-         long double foo = 0.0;
-         /* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
-         int array [2*(sizeof(long double) >= sizeof(double)) - 1];
-         ], ,
-         gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
-     fi])
-  if test $gt_cv_c_long_double = yes; then
-    AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
-  fi
-])
diff -uNr nagios-plugins-1.4.11/gl/m4/longlong.m4 nagios-plugins-1.4.12/gl/m4/longlong.m4
--- nagios-plugins-1.4.11/gl/m4/longlong.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/longlong.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# longlong.m4 serial 10
-dnl Copyright (C) 1999-2006 Free Software Foundation, Inc.
+# longlong.m4 serial 13
+dnl Copyright (C) 1999-2007 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.
@@ -7,8 +7,8 @@
 dnl From Paul Eggert.
 
 # Define HAVE_LONG_LONG_INT if 'long long int' works.
-# This fixes a bug in Autoconf 2.60, but can be removed once we
-# assume 2.61 everywhere.
+# This fixes a bug in Autoconf 2.61, but can be removed once we
+# assume 2.62 everywhere.
 
 # Note: If the type 'long long int' exists but is only 32 bits large
 # (as on some very old compilers), HAVE_LONG_LONG_INT will not be
@@ -18,20 +18,11 @@
 [
   AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
     [AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-	  [[long long int ll = 9223372036854775807ll;
-	    long long int nll = -9223372036854775807LL;
-	    typedef int a[((-9223372036854775807LL < 0
-			    && 0 < 9223372036854775807ll)
-			   ? 1 : -1)];
-	    int i = 63;]],
-	  [[long long int llmax = 9223372036854775807ll;
-	    return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-		    | (llmax / ll) | (llmax % ll));]])],
+       [_AC_TYPE_LONG_LONG_SNIPPET],
        [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
 	dnl If cross compiling, assume the bug isn't important, since
 	dnl nobody cross compiles for this platform as far as we know.
-        AC_RUN_IFELSE(
+	AC_RUN_IFELSE(
 	  [AC_LANG_PROGRAM(
 	     [[@%:@include <limits.h>
 	       @%:@ifndef LLONG_MAX
@@ -60,13 +51,56 @@
   fi
 ])
 
-# This macro is obsolescent and should go away soon.
-AC_DEFUN([gl_AC_TYPE_LONG_LONG],
+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+# This fixes a bug in Autoconf 2.61, but can be removed once we
+# assume 2.62 everywhere.
+
+# Note: If the type 'unsigned long long int' exists but is only 32 bits
+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+# will not be defined. In this case you can treat 'unsigned long long int'
+# like 'unsigned long int'.
+
+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
 [
-  AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-  ac_cv_type_long_long=$ac_cv_type_long_long_int
-  if test $ac_cv_type_long_long = yes; then
-    AC_DEFINE(HAVE_LONG_LONG, 1,
-      [Define if you have the 'long long' type.])
+  AC_CACHE_CHECK([for unsigned long long int],
+    [ac_cv_type_unsigned_long_long_int],
+    [AC_LINK_IFELSE(
+       [_AC_TYPE_LONG_LONG_SNIPPET],
+       [ac_cv_type_unsigned_long_long_int=yes],
+       [ac_cv_type_unsigned_long_long_int=no])])
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1,
+      [Define to 1 if the system has the type `unsigned long long int'.])
   fi
 ])
+
+# Expands to a C program that can be used to test for simultaneous support
+# of 'long long' and 'unsigned long long'. We don't want to say that
+# 'long long' is available if 'unsigned long long' is not, or vice versa,
+# because too many programs rely on the symmetry between signed and unsigned
+# integer types (excluding 'bool').
+AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
+[
+  AC_LANG_PROGRAM(
+    [[/* For now, do not test the preprocessor; as of 2007 there are too many
+	 implementations with broken preprocessors.  Perhaps this can
+	 be revisited in 2012.  In the meantime, code should not expect
+	 #if to work with literals wider than 32 bits.  */
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+		     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+		     ? 1 : -1)];
+      int i = 63;]],
+    [[/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+	      | (llmax / ll) | (llmax % ll)
+	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+	      | (ullmax / ull) | (ullmax % ull));]])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/malloc.m4 nagios-plugins-1.4.12/gl/m4/malloc.m4
--- nagios-plugins-1.4.11/gl/m4/malloc.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/malloc.m4	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,41 @@
+# malloc.m4 serial 8
+dnl Copyright (C) 2007 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.
+
+# gl_FUNC_MALLOC_POSIX
+# --------------------
+# Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it
+# fails), and replace malloc if it is not.
+AC_DEFUN([gl_FUNC_MALLOC_POSIX],
+[
+  AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+  if test $gl_cv_func_malloc_posix = yes; then
+    HAVE_MALLOC_POSIX=1
+    AC_DEFINE([HAVE_MALLOC_POSIX], 1,
+      [Define if the 'malloc' function is POSIX compliant.])
+  else
+    AC_LIBOBJ([malloc])
+    HAVE_MALLOC_POSIX=0
+  fi
+  AC_SUBST([HAVE_MALLOC_POSIX])
+])
+
+# Test whether malloc, realloc, calloc are POSIX compliant,
+# Set gl_cv_func_malloc_posix to yes or no accordingly.
+AC_DEFUN([gl_CHECK_MALLOC_POSIX],
+[
+  AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant],
+    [gl_cv_func_malloc_posix],
+    [
+      dnl It is too dangerous to try to allocate a large amount of memory:
+      dnl some systems go to their knees when you do that. So assume that
+      dnl all Unix implementations of the function are POSIX compliant.
+      AC_TRY_COMPILE([],
+        [#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+         choke me
+         #endif
+        ], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no])
+    ])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/math_h.m4 nagios-plugins-1.4.12/gl/m4/math_h.m4
--- nagios-plugins-1.4.11/gl/m4/math_h.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/math_h.m4	2008-02-12 13:03:58.000000000 +0100
@@ -0,0 +1,66 @@
+# math_h.m4 serial 9
+dnl Copyright (C) 2007-2008 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.
+
+AC_DEFUN([gl_MATH_H],
+[
+  AC_REQUIRE([gl_MATH_H_DEFAULTS])
+  gl_CHECK_NEXT_HEADERS([math.h])
+])
+
+AC_DEFUN([gl_MATH_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_MATH_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_MATH_H_DEFAULTS],
+[
+  GNULIB_CEILF=0;    AC_SUBST([GNULIB_CEILF])
+  GNULIB_CEILL=0;    AC_SUBST([GNULIB_CEILL])
+  GNULIB_FLOORF=0;   AC_SUBST([GNULIB_FLOORF])
+  GNULIB_FLOORL=0;   AC_SUBST([GNULIB_FLOORL])
+  GNULIB_FREXP=0;    AC_SUBST([GNULIB_FREXP])
+  GNULIB_FREXPL=0;   AC_SUBST([GNULIB_FREXPL])
+  GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE])
+  GNULIB_LDEXPL=0;   AC_SUBST([GNULIB_LDEXPL])
+  GNULIB_MATHL=0;    AC_SUBST([GNULIB_MATHL])
+  GNULIB_ROUND=0;    AC_SUBST([GNULIB_ROUND])
+  GNULIB_ROUNDF=0;   AC_SUBST([GNULIB_ROUNDF])
+  GNULIB_ROUNDL=0;   AC_SUBST([GNULIB_ROUNDL])
+  GNULIB_SIGNBIT=0;  AC_SUBST([GNULIB_SIGNBIT])
+  GNULIB_TRUNC=0;    AC_SUBST([GNULIB_TRUNC])
+  GNULIB_TRUNCF=0;   AC_SUBST([GNULIB_TRUNCF])
+  GNULIB_TRUNCL=0;   AC_SUBST([GNULIB_TRUNCL])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DECL_ACOSL=1;           AC_SUBST([HAVE_DECL_ACOSL])
+  HAVE_DECL_ASINL=1;           AC_SUBST([HAVE_DECL_ASINL])
+  HAVE_DECL_ATANL=1;           AC_SUBST([HAVE_DECL_ATANL])
+  HAVE_DECL_COSL=1;            AC_SUBST([HAVE_DECL_COSL])
+  HAVE_DECL_EXPL=1;            AC_SUBST([HAVE_DECL_EXPL])
+  HAVE_DECL_FREXPL=1;          AC_SUBST([HAVE_DECL_FREXPL])
+  HAVE_DECL_LDEXPL=1;          AC_SUBST([HAVE_DECL_LDEXPL])
+  HAVE_DECL_LOGL=1;            AC_SUBST([HAVE_DECL_LOGL])
+  HAVE_DECL_SINL=1;            AC_SUBST([HAVE_DECL_SINL])
+  HAVE_DECL_SQRTL=1;           AC_SUBST([HAVE_DECL_SQRTL])
+  HAVE_DECL_TANL=1;            AC_SUBST([HAVE_DECL_TANL])
+  HAVE_DECL_TRUNC=1;           AC_SUBST([HAVE_DECL_TRUNC])
+  HAVE_DECL_TRUNCF=1;          AC_SUBST([HAVE_DECL_TRUNCF])
+  HAVE_DECL_TRUNCL=1;          AC_SUBST([HAVE_DECL_TRUNCL])
+  REPLACE_CEILF=0;             AC_SUBST([REPLACE_CEILF])
+  REPLACE_CEILL=0;             AC_SUBST([REPLACE_CEILL])
+  REPLACE_FLOORF=0;            AC_SUBST([REPLACE_FLOORF])
+  REPLACE_FLOORL=0;            AC_SUBST([REPLACE_FLOORL])
+  REPLACE_FREXP=0;             AC_SUBST([REPLACE_FREXP])
+  REPLACE_FREXPL=0;            AC_SUBST([REPLACE_FREXPL])
+  REPLACE_ISFINITE=0;          AC_SUBST([REPLACE_ISFINITE])
+  REPLACE_LDEXPL=0;            AC_SUBST([REPLACE_LDEXPL])
+  REPLACE_ROUND=0;             AC_SUBST([REPLACE_ROUND])
+  REPLACE_ROUNDF=0;            AC_SUBST([REPLACE_ROUNDF])
+  REPLACE_ROUNDL=0;            AC_SUBST([REPLACE_ROUNDL])
+  REPLACE_SIGNBIT=0;           AC_SUBST([REPLACE_SIGNBIT])
+  REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/mbchar.m4 nagios-plugins-1.4.12/gl/m4/mbchar.m4
--- nagios-plugins-1.4.11/gl/m4/mbchar.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/mbchar.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-# mbchar.m4 serial 5
-dnl Copyright (C) 2005-2007 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.
-
-dnl autoconf tests required for use of mbchar.m4
-dnl From Bruno Haible.
-
-AC_DEFUN([gl_MBCHAR],
-[
-  AC_REQUIRE([AC_GNU_SOURCE])
-  AC_LIBOBJ([mbchar])
-])
diff -uNr nagios-plugins-1.4.11/gl/m4/mbiter.m4 nagios-plugins-1.4.12/gl/m4/mbiter.m4
--- nagios-plugins-1.4.11/gl/m4/mbiter.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/mbiter.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
-# mbiter.m4 serial 2
-dnl Copyright (C) 2005 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.
-
-dnl autoconf tests required for use of mbiter.h
-dnl From Bruno Haible.
-
-AC_DEFUN([gl_MBITER],
-[
-  AC_REQUIRE([AC_TYPE_MBSTATE_T])
-  dnl The following line is that so the user can test HAVE_MBRTOWC before
-  dnl #include "mbiter.h" or "mbuiter.h".
-  AC_REQUIRE([gl_FUNC_MBRTOWC])
-  :
-])
diff -uNr nagios-plugins-1.4.11/gl/m4/mbrtowc.m4 nagios-plugins-1.4.12/gl/m4/mbrtowc.m4
--- nagios-plugins-1.4.11/gl/m4/mbrtowc.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/mbrtowc.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,31 +0,0 @@
-# mbrtowc.m4 serial 8
-dnl Copyright (C) 2001-2002, 2004-2005 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.
-
-dnl From Paul Eggert
-
-dnl This file can be removed, and gl_FUNC_MBRTOWC replaced with
-dnl AC_FUNC_MBRTOWC, when autoconf 2.60 can be assumed everywhere.
-
-AC_DEFUN([gl_FUNC_MBRTOWC],
-[
-  dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60.
-  AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
-    gl_cv_func_mbrtowc,
-    [AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-            [[#include <wchar.h>]],
-            [[wchar_t wc;
-              char const s[] = "";
-              size_t n = 1;
-              mbstate_t state;
-              return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])],
-       gl_cv_func_mbrtowc=yes,
-       gl_cv_func_mbrtowc=no)])
-  if test $gl_cv_func_mbrtowc = yes; then
-    AC_DEFINE([HAVE_MBRTOWC], 1,
-      [Define to 1 if mbrtowc and mbstate_t are properly declared.])
-  fi
-])
diff -uNr nagios-plugins-1.4.11/gl/m4/mbstate_t.m4 nagios-plugins-1.4.12/gl/m4/mbstate_t.m4
--- nagios-plugins-1.4.11/gl/m4/mbstate_t.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/mbstate_t.m4	2008-03-11 01:37:13.000000000 +0100
@@ -0,0 +1,30 @@
+# mbstate_t.m4 serial 9
+dnl Copyright (C) 2000, 2001, 2002 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.
+
+# From Paul Eggert.
+
+# BeOS 5 has <wchar.h> but does not define mbstate_t,
+# so you can't declare an object of that type.
+# Check for this incompatibility with Standard C.
+
+# AC_TYPE_MBSTATE_T
+# -----------------
+AC_DEFUN([AC_TYPE_MBSTATE_T],
+  [AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t,
+     [AC_COMPILE_IFELSE(
+	[AC_LANG_PROGRAM(
+	   [AC_INCLUDES_DEFAULT
+#	    include <wchar.h>],
+	   [mbstate_t x; return sizeof x;])],
+	[ac_cv_type_mbstate_t=yes],
+	[ac_cv_type_mbstate_t=no])])
+   if test $ac_cv_type_mbstate_t = yes; then
+     AC_DEFINE([HAVE_MBSTATE_T], 1,
+	       [Define to 1 if <wchar.h> declares mbstate_t.])
+   else
+     AC_DEFINE([mbstate_t], int,
+	       [Define to a type if <wchar.h> does not define.])
+   fi])
diff -uNr nagios-plugins-1.4.11/gl/m4/memchr.m4 nagios-plugins-1.4.12/gl/m4/memchr.m4
--- nagios-plugins-1.4.11/gl/m4/memchr.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/memchr.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-# memchr.m4 serial 4
-dnl Copyright (C) 2002, 2003, 2004 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.
-
-AC_DEFUN([gl_FUNC_MEMCHR],
-[
-  AC_REPLACE_FUNCS(memchr)
-  if test $ac_cv_func_memchr = no; then
-    gl_PREREQ_MEMCHR
-  fi
-])
-
-# Prerequisites of lib/memchr.c.
-AC_DEFUN([gl_PREREQ_MEMCHR], [
-  AC_CHECK_HEADERS(bp-sym.h)
-])
diff -uNr nagios-plugins-1.4.11/gl/m4/minmax.m4 nagios-plugins-1.4.12/gl/m4/minmax.m4
--- nagios-plugins-1.4.11/gl/m4/minmax.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/minmax.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,41 +0,0 @@
-# minmax.m4 serial 2
-dnl Copyright (C) 2005 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.
-
-AC_PREREQ(2.52)
-
-AC_DEFUN([gl_MINMAX],
-[
-  AC_REQUIRE([gl_PREREQ_MINMAX])
-])
-
-# Prerequisites of lib/minmax.h.
-AC_DEFUN([gl_PREREQ_MINMAX],
-[
-  gl_MINMAX_IN_HEADER([limits.h])
-  gl_MINMAX_IN_HEADER([sys/param.h])
-])
-
-dnl gl_MINMAX_IN_HEADER(HEADER)
-dnl The parameter has to be a literal header name; it cannot be macro,
-dnl nor a shell variable. (Because autoheader collects only AC_DEFINE
-dnl invocations with a literal macro name.)
-AC_DEFUN([gl_MINMAX_IN_HEADER],
-[
-  m4_pushdef([header], AS_TR_SH([$1]))
-  m4_pushdef([HEADER], AS_TR_CPP([$1]))
-  AC_CACHE_CHECK([whether <$1> defines MIN and MAX],
-    [gl_cv_minmax_in_]header,
-    [AC_TRY_COMPILE([#include <$1>
-int x = MIN (42, 17);], [],
-       [gl_cv_minmax_in_]header[=yes],
-       [gl_cv_minmax_in_]header[=no])])
-  if test $gl_cv_minmax_in_[]header = yes; then
-    AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1,
-      [Define to 1 if <$1> defines the MIN and MAX macros.])
-  fi
-  m4_popdef([HEADER])
-  m4_popdef([header])
-])
diff -uNr nagios-plugins-1.4.11/gl/m4/netinet_in_h.m4 nagios-plugins-1.4.12/gl/m4/netinet_in_h.m4
--- nagios-plugins-1.4.11/gl/m4/netinet_in_h.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/netinet_in_h.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,18 +1,30 @@
-# netinet_in_h.m4 serial 1
-dnl Copyright (C) 2006 Free Software Foundation, Inc.
+# netinet_in_h.m4 serial 3
+dnl Copyright (C) 2006-2007 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.
 
-dnl Written by Simon Josefsson
-
 AC_DEFUN([gl_HEADER_NETINET_IN],
 [
-  AC_CHECK_HEADERS_ONCE([netinet/in.h])
-  if test $ac_cv_header_netinet_in_h = yes; then
+  AC_CACHE_CHECK([whether <netinet/in.h> is self-contained],
+    [gl_cv_header_netinet_in_h_selfcontained],
+    [
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netinet/in.h>], [])],
+        [gl_cv_header_netinet_in_h_selfcontained=yes],
+        [gl_cv_header_netinet_in_h_selfcontained=no])
+    ])
+  if test $gl_cv_header_netinet_in_h_selfcontained = yes; then
     NETINET_IN_H=''
   else
     NETINET_IN_H='netinet/in.h'
+    AC_CHECK_HEADERS([netinet/in.h])
+    gl_CHECK_NEXT_HEADERS([netinet/in.h])
+    if test $ac_cv_header_netinet_in_h = yes; then
+      HAVE_NETINET_IN_H=1
+    else
+      HAVE_NETINET_IN_H=0
+    fi
+    AC_SUBST([HAVE_NETINET_IN_H])
   fi
-  AC_SUBST(NETINET_IN_H)
+  AC_SUBST([NETINET_IN_H])
 ])
diff -uNr nagios-plugins-1.4.11/gl/m4/po.m4 nagios-plugins-1.4.12/gl/m4/po.m4
--- nagios-plugins-1.4.11/gl/m4/po.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/po.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# po.m4 serial 13 (gettext-0.15)
-dnl Copyright (C) 1995-2006 Free Software Foundation, Inc.
+# po.m4 serial 15 (gettext-0.17)
+dnl Copyright (C) 1995-2007 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.
@@ -27,6 +27,10 @@
   AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
   AC_REQUIRE([AM_NLS])dnl
 
+  dnl Release version of the gettext macros. This is used to ensure that
+  dnl the gettext macros and po/Makefile.in.in are in sync.
+  AC_SUBST([GETTEXT_MACRO_VERSION], [0.17])
+
   dnl Perform the following tests also if --disable-nls has been given,
   dnl because they are needed for "make dist" to work.
 
@@ -84,6 +88,10 @@
   test -n "$localedir" || localedir='${datadir}/locale'
   AC_SUBST([localedir])
 
+  dnl Support for AM_XGETTEXT_OPTION.
+  test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+  AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
+
   AC_CONFIG_COMMANDS([po-directories], [[
     for ac_file in $CONFIG_FILES; do
       # Support "outfile[:infile[:infile...]]"
@@ -426,3 +434,16 @@
   fi
   mv "$ac_file.tmp" "$ac_file"
 ])
+
+dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
+AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
+[
+  XGETTEXT_EXTRA_OPTIONS=
+])
+
+dnl Registers an option to be passed to xgettext in the po subdirectory.
+AC_DEFUN([AM_XGETTEXT_OPTION],
+[
+  AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/regex.m4 nagios-plugins-1.4.12/gl/m4/regex.m4
--- nagios-plugins-1.4.11/gl/m4/regex.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/regex.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,4 +1,4 @@
-#serial 42
+#serial 48
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
 # 2006, 2007 Free Software Foundation, Inc.
@@ -18,9 +18,12 @@
 
   AC_ARG_WITH([included-regex],
     [AC_HELP_STRING([--without-included-regex],
-		    [don't compile regex; this is the default on
+		    [don't compile regex; this is the default on 32-bit
 		     systems with recent-enough versions of the GNU C
-		     Library (use with caution on other systems)])])
+		     Library (use with caution on other systems).
+		     On systems with 64-bit ptrdiff_t and 32-bit int,
+		     --with-included-regex is the default, in case
+		     regex functions operate on very long strings (>2GB)])])
 
   case $with_included_regex in #(
   yes|no) ac_use_included_regex=$with_included_regex
@@ -29,8 +32,7 @@
     # If the system regex support is good enough that it passes the
     # following run test, then default to *not* using the included regex.c.
     # If cross compiling, assume the test would fail and use the included
-    # regex.c.  The first failing regular expression is from `Spencer ere
-    # test #75' in grep-2.3.
+    # regex.c.
     AC_CACHE_CHECK([for working re_compile_pattern],
 		   [gl_cv_func_re_compile_pattern_working],
       [AC_RUN_IFELSE(
@@ -74,68 +76,91 @@
 		}
 	    #endif
 
+	    /* This test is from glibc bug 3957, reported by Andrew Mackey.  */
+	    re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("a[^x]b", 6, &regex);
+	    if (s)
+	      return 1;
+
+	    /* This should fail, but succeeds for glibc-2.5.  */
+	    if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+	      return 1;
+
+	    /* This regular expression is from Spencer ere test number 75
+	       in grep-2.3.  */
 	    re_set_syntax (RE_SYNTAX_POSIX_EGREP);
-	    memset (&regex, 0, sizeof (regex));
+	    memset (&regex, 0, sizeof regex);
 	    for (i = 0; i <= UCHAR_MAX; i++)
 	      folded_chars[i] = i;
 	    regex.translate = folded_chars;
 	    s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, &regex);
 	    /* This should fail with _Invalid character class name_ error.  */
 	    if (!s)
-	      exit (1);
+	      return 1;
 
-	    /* This should succeed, but does not for e.g. glibc-2.1.3.  */
-	    memset (&regex, 0, sizeof (regex));
+	    /* This should succeed, but does not for glibc-2.1.3.  */
+	    memset (&regex, 0, sizeof regex);
 	    s = re_compile_pattern ("{1", 2, &regex);
 
 	    if (s)
-	      exit (1);
+	      return 1;
 
 	    /* The following example is derived from a problem report
 	       against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
-	    memset (&regex, 0, sizeof (regex));
+	    memset (&regex, 0, sizeof regex);
 	    s = re_compile_pattern ("[an\371]*n", 7, &regex);
 	    if (s)
-	      exit (1);
+	      return 1;
 
-	    /* This should match, but does not for e.g. glibc-2.2.1.  */
+	    /* This should match, but does not for glibc-2.2.1.  */
 	    if (re_match (&regex, "an", 2, 0, &regs) != 2)
-	      exit (1);
+	      return 1;
 
-	    memset (&regex, 0, sizeof (regex));
+	    memset (&regex, 0, sizeof regex);
 	    s = re_compile_pattern ("x", 1, &regex);
 	    if (s)
-	      exit (1);
+	      return 1;
 
-	    /* The version of regex.c in e.g. GNU libc-2.2.93 did not
-	       work with a negative RANGE argument.  */
+	    /* glibc-2.2.93 does not work with a negative RANGE argument.  */
 	    if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
-	      exit (1);
+	      return 1;
 
 	    /* The version of regex.c in older versions of gnulib
 	       ignored RE_ICASE.  Detect that problem too.  */
-	    memset (&regex, 0, sizeof (regex));
 	    re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE);
+	    memset (&regex, 0, sizeof regex);
 	    s = re_compile_pattern ("x", 1, &regex);
 	    if (s)
-	      exit (1);
+	      return 1;
 
 	    if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
-	      exit (1);
+	      return 1;
+
+	    /* Catch a bug reported by Vin Shelton in
+	       http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
+	       */
+	    re_set_syntax (RE_SYNTAX_POSIX_BASIC
+			   & ~RE_CONTEXT_INVALID_DUP
+			   & ~RE_NO_EMPTY_RANGES);
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
+	    if (s)
+	      return 1;
 
 	    /* REG_STARTEND was added to glibc on 2004-01-15.
 	       Reject older versions.  */
 	    if (! REG_STARTEND)
-	      exit (1);
+	      return 1;
 
 	    /* Reject hosts whose regoff_t values are too narrow.
 	       These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t
 	       and 32-bit int.  */
 	    if (sizeof (regoff_t) < sizeof (ptrdiff_t)
 		|| sizeof (regoff_t) < sizeof (ssize_t))
-	      exit (1);
+	      return 1;
 
-	    exit (0);]])],
+	    return 0;]])],
        [gl_cv_func_re_compile_pattern_working=yes],
        [gl_cv_func_re_compile_pattern_working=no],
        dnl When crosscompiling, assume it is not working.
@@ -190,9 +215,8 @@
 # Prerequisites of lib/regex.c and lib/regex_internal.c.
 AC_DEFUN([gl_PREREQ_REGEX],
 [
-  AC_REQUIRE([AC_GNU_SOURCE])
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
   AC_REQUIRE([AC_C_RESTRICT])
-  AC_REQUIRE([AM_LANGINFO_CODESET])
-  AC_CHECK_FUNCS_ONCE([iswctype mbrtowc mempcpy wcrtomb wcscoll])
+  AC_CHECK_FUNCS_ONCE([isblank iswctype mbrtowc wcrtomb wcscoll])
   AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>])
 ])
diff -uNr nagios-plugins-1.4.11/gl/m4/snprintf.m4 nagios-plugins-1.4.12/gl/m4/snprintf.m4
--- nagios-plugins-1.4.11/gl/m4/snprintf.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/snprintf.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,13 +1,29 @@
-# snprintf.m4 serial 2
-dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+# snprintf.m4 serial 4
+dnl Copyright (C) 2002, 2003, 2004, 2007 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.
 
 AC_DEFUN([gl_FUNC_SNPRINTF],
 [
-  AC_REPLACE_FUNCS(snprintf)
-  AC_CHECK_DECLS_ONCE(snprintf)
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  AC_CHECK_FUNCS([snprintf])
+  if test $ac_cv_func_snprintf = no; then
+    gl_REPLACE_SNPRINTF
+  fi
+  AC_CHECK_DECLS_ONCE([snprintf])
+  if test $ac_cv_have_decl_snprintf = no; then
+    HAVE_DECL_SNPRINTF=0
+  fi
+])
+
+AC_DEFUN([gl_REPLACE_SNPRINTF],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  AC_LIBOBJ([snprintf])
+  if test $ac_cv_func_snprintf = yes; then
+    REPLACE_SNPRINTF=1
+  fi
   gl_PREREQ_SNPRINTF
 ])
 
diff -uNr nagios-plugins-1.4.11/gl/m4/socklen.m4 nagios-plugins-1.4.12/gl/m4/socklen.m4
--- nagios-plugins-1.4.11/gl/m4/socklen.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/socklen.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# socklen.m4 serial 4
-dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+# socklen.m4 serial 6
+dnl Copyright (C) 2005, 2006, 2007 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.
@@ -12,14 +12,14 @@
 dnl have to test to find something that will work.
 
 dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find
-dnl it there first.  That file is included by gnulib's socket_.h, which
+dnl it there first.  That file is included by gnulib's sys_socket.in.h, which
 dnl all users of this module should include.  Cygwin must not include
 dnl ws2tcpip.h.
 AC_DEFUN([gl_TYPE_SOCKLEN_T],
   [AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl
    AC_CHECK_TYPE([socklen_t], ,
      [AC_MSG_CHECKING([for socklen_t equivalent])
-      AC_CACHE_VAL([gl_cv_gl_cv_socklen_t_equiv],
+      AC_CACHE_VAL([gl_cv_socklen_t_equiv],
 	[# Systems have either "struct sockaddr *" or
 	 # "void *" as the second argument to getpeername
 	 gl_cv_socklen_t_equiv=
diff -uNr nagios-plugins-1.4.11/gl/m4/stdint.m4 nagios-plugins-1.4.12/gl/m4/stdint.m4
--- nagios-plugins-1.4.11/gl/m4/stdint.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/stdint.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# stdint.m4 serial 22
-dnl Copyright (C) 2001-2002, 2004-2007 Free Software Foundation, Inc.
+# stdint.m4 serial 29
+dnl Copyright (C) 2001-2007 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.
@@ -45,32 +45,32 @@
   fi
   AC_SUBST([HAVE_SYS_TYPES_H])
 
-  dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_stdint_h.
+  gl_CHECK_NEXT_HEADERS([stdint.h])
   if test $ac_cv_header_stdint_h = yes; then
-    gl_ABSOLUTE_HEADER([stdint.h])
-    ABSOLUTE_STDINT_H=\"$gl_cv_absolute_stdint_h\"
     HAVE_STDINT_H=1
   else
-    ABSOLUTE_STDINT_H=\"no/such/file/stdint.h\"
     HAVE_STDINT_H=0
   fi
-  AC_SUBST([ABSOLUTE_STDINT_H])
   AC_SUBST([HAVE_STDINT_H])
 
-  dnl Now see whether we need a substitute <stdint.h>.  Use
-  dnl ABSOLUTE_STDINT_H, not <stdint.h>, so that it also works during
-  dnl a "config.status --recheck" if a stdint.h has been
-  dnl created in the build directory.
+  dnl Now see whether we need a substitute <stdint.h>.
   if test $ac_cv_header_stdint_h = yes; then
     AC_CACHE_CHECK([whether stdint.h conforms to C99],
       [gl_cv_header_working_stdint_h],
       [gl_cv_header_working_stdint_h=no
        AC_COMPILE_IFELSE([
          AC_LANG_PROGRAM([[
-#include <stddef.h>
 #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
 #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#include ABSOLUTE_STDINT_H
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+]
+gl_STDINT_INCLUDES
+[
 #ifdef INT8_MAX
 int8_t a1 = INT8_MAX;
 int8_t a1min = INT8_MIN;
@@ -142,12 +142,32 @@
 #endif
 intmax_t i = INTMAX_MAX;
 uintmax_t j = UINTMAX_MAX;
+
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+#define TYPE_MAXIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
 struct s {
-  int check_PTRDIFF: PTRDIFF_MIN < 0 && 0 < PTRDIFF_MAX ? 1 : -1;
-  int check_SIG_ATOMIC: SIG_ATOMIC_MIN <= 0 && 0 < SIG_ATOMIC_MAX ? 1 : -1;
-  int check_SIZE: 0 < SIZE_MAX ? 1 : -1;
-  int check_WCHAR: WCHAR_MIN <= 0 && 0 < WCHAR_MAX ? 1 : -1;
-  int check_WINT: WINT_MIN <= 0 && 0 < WINT_MAX ? 1 : -1;
+  int check_PTRDIFF:
+      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+      ? 1 : -1;
+  /* Detect bug in FreeBSD 6.0 / ia64.  */
+  int check_SIG_ATOMIC:
+      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+      ? 1 : -1;
+  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+  int check_WCHAR:
+      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+      ? 1 : -1;
+  /* Detect bug in mingw.  */
+  int check_WINT:
+      WINT_MIN == TYPE_MINIMUM (wint_t)
+      && WINT_MAX == TYPE_MAXIMUM (wint_t)
+      ? 1 : -1;
 
   /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
   int check_UINT8_C:
@@ -202,6 +222,10 @@
     fi
     AC_SUBST([HAVE_SYS_BITYPES_H])
 
+    dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
+    dnl character support).
+    AC_CHECK_HEADERS_ONCE([wchar.h])
+
     gl_STDINT_TYPE_PROPERTIES
     STDINT_H=stdint.h
   fi
@@ -337,14 +361,16 @@
      included before <wchar.h>.  */
   #include <stddef.h>
   #include <signal.h>
-  #include <stdio.h>
-  #include <time.h>
-  #include <wchar.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 ]])
 
 dnl gl_STDINT_TYPE_PROPERTIES
 dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t
-dnl of interest to stdint_.h.
+dnl of interest to stdint.in.h.
 AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
 [
   gl_STDINT_BITSIZEOF([ptrdiff_t sig_atomic_t size_t wchar_t wint_t],
diff -uNr nagios-plugins-1.4.11/gl/m4/stdio_h.m4 nagios-plugins-1.4.12/gl/m4/stdio_h.m4
--- nagios-plugins-1.4.11/gl/m4/stdio_h.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/stdio_h.m4	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,85 @@
+# stdio_h.m4 serial 9
+dnl Copyright (C) 2007 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.
+
+AC_DEFUN([gl_STDIO_H],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  gl_CHECK_NEXT_HEADERS([stdio.h])
+])
+
+AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_STDIO_H_DEFAULTS],
+[
+  GNULIB_FPRINTF_POSIX=0;  AC_SUBST([GNULIB_FPRINTF_POSIX])
+  GNULIB_PRINTF_POSIX=0;   AC_SUBST([GNULIB_PRINTF_POSIX])
+  GNULIB_SNPRINTF=0;       AC_SUBST([GNULIB_SNPRINTF])
+  GNULIB_SPRINTF_POSIX=0;  AC_SUBST([GNULIB_SPRINTF_POSIX])
+  GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX])
+  GNULIB_VPRINTF_POSIX=0;  AC_SUBST([GNULIB_VPRINTF_POSIX])
+  GNULIB_VSNPRINTF=0;      AC_SUBST([GNULIB_VSNPRINTF])
+  GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX])
+  GNULIB_VASPRINTF=0;      AC_SUBST([GNULIB_VASPRINTF])
+  GNULIB_FOPEN=0;          AC_SUBST([GNULIB_FOPEN])
+  GNULIB_FREOPEN=0;        AC_SUBST([GNULIB_FREOPEN])
+  GNULIB_FSEEK=0;          AC_SUBST([GNULIB_FSEEK])
+  GNULIB_FSEEKO=0;         AC_SUBST([GNULIB_FSEEKO])
+  GNULIB_FTELL=0;          AC_SUBST([GNULIB_FTELL])
+  GNULIB_FTELLO=0;         AC_SUBST([GNULIB_FTELLO])
+  GNULIB_FFLUSH=0;         AC_SUBST([GNULIB_FFLUSH])
+  GNULIB_GETDELIM=0;       AC_SUBST([GNULIB_GETDELIM])
+  GNULIB_GETLINE=0;        AC_SUBST([GNULIB_GETLINE])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  REPLACE_FPRINTF=0;       AC_SUBST([REPLACE_FPRINTF])
+  REPLACE_VFPRINTF=0;      AC_SUBST([REPLACE_VFPRINTF])
+  REPLACE_PRINTF=0;        AC_SUBST([REPLACE_PRINTF])
+  REPLACE_VPRINTF=0;       AC_SUBST([REPLACE_VPRINTF])
+  REPLACE_SNPRINTF=0;      AC_SUBST([REPLACE_SNPRINTF])
+  HAVE_DECL_SNPRINTF=1;    AC_SUBST([HAVE_DECL_SNPRINTF])
+  REPLACE_VSNPRINTF=0;     AC_SUBST([REPLACE_VSNPRINTF])
+  HAVE_DECL_VSNPRINTF=1;   AC_SUBST([HAVE_DECL_VSNPRINTF])
+  REPLACE_SPRINTF=0;       AC_SUBST([REPLACE_SPRINTF])
+  REPLACE_VSPRINTF=0;      AC_SUBST([REPLACE_VSPRINTF])
+  HAVE_VASPRINTF=1;        AC_SUBST([HAVE_VASPRINTF])
+  REPLACE_VASPRINTF=0;     AC_SUBST([REPLACE_VASPRINTF])
+  REPLACE_FOPEN=0;         AC_SUBST([REPLACE_FOPEN])
+  REPLACE_FREOPEN=0;       AC_SUBST([REPLACE_FREOPEN])
+  HAVE_FSEEKO=1;           AC_SUBST([HAVE_FSEEKO])
+  REPLACE_FSEEKO=0;        AC_SUBST([REPLACE_FSEEKO])
+  REPLACE_FSEEK=0;         AC_SUBST([REPLACE_FSEEK])
+  HAVE_FTELLO=1;           AC_SUBST([HAVE_FTELLO])
+  REPLACE_FTELLO=0;        AC_SUBST([REPLACE_FTELLO])
+  REPLACE_FTELL=0;         AC_SUBST([REPLACE_FTELL])
+  REPLACE_FFLUSH=0;        AC_SUBST([REPLACE_FFLUSH])
+  HAVE_DECL_GETDELIM=1;    AC_SUBST([HAVE_DECL_GETDELIM])
+  HAVE_DECL_GETLINE=1;     AC_SUBST([HAVE_DECL_GETLINE])
+  REPLACE_GETLINE=0;       AC_SUBST([REPLACE_GETLINE])
+])
+
+dnl Code shared by fseeko and ftello.  Determine if large files are supported,
+dnl but stdin does not start as a large file by default.
+AC_DEFUN([gl_STDIN_LARGE_OFFSET],
+  [
+    AC_CACHE_CHECK([whether stdin defaults to large file offsets],
+      [gl_cv_var_stdin_large_offset],
+      [AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>],
+[#if defined __SL64 && defined __SCLE /* cygwin */
+  /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
+     fseeko/ftello needlessly fail.  This bug was fixed in 1.5.25, and
+     it is easier to do a version check than building a runtime test.  */
+# include <cygwin/version.h>
+# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
+  choke me
+# endif
+#endif])],
+	[gl_cv_var_stdin_large_offset=yes],
+	[gl_cv_var_stdin_large_offset=no])])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/stdlib_h.m4 nagios-plugins-1.4.12/gl/m4/stdlib_h.m4
--- nagios-plugins-1.4.11/gl/m4/stdlib_h.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/stdlib_h.m4	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,42 @@
+# stdlib_h.m4 serial 5
+dnl Copyright (C) 2007 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.
+
+AC_DEFUN([gl_STDLIB_H],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  gl_CHECK_NEXT_HEADERS([stdlib.h])
+])
+
+AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_STDLIB_H_DEFAULTS],
+[
+  GNULIB_MALLOC_POSIX=0;  AC_SUBST([GNULIB_MALLOC_POSIX])
+  GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
+  GNULIB_CALLOC_POSIX=0;  AC_SUBST([GNULIB_CALLOC_POSIX])
+  GNULIB_GETSUBOPT=0;     AC_SUBST([GNULIB_GETSUBOPT])
+  GNULIB_MKDTEMP=0;       AC_SUBST([GNULIB_MKDTEMP])
+  GNULIB_MKSTEMP=0;       AC_SUBST([GNULIB_MKSTEMP])
+  GNULIB_PUTENV=0;        AC_SUBST([GNULIB_PUTENV])
+  GNULIB_SETENV=0;        AC_SUBST([GNULIB_SETENV])
+  GNULIB_UNSETENV=0;      AC_SUBST([GNULIB_UNSETENV])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_CALLOC_POSIX=1;    AC_SUBST([HAVE_CALLOC_POSIX])
+  HAVE_GETSUBOPT=1;       AC_SUBST([HAVE_GETSUBOPT])
+  HAVE_MALLOC_POSIX=1;    AC_SUBST([HAVE_MALLOC_POSIX])
+  HAVE_MKDTEMP=1;         AC_SUBST([HAVE_MKDTEMP])
+  HAVE_REALLOC_POSIX=1;   AC_SUBST([HAVE_REALLOC_POSIX])
+  HAVE_SETENV=1;          AC_SUBST([HAVE_SETENV])
+  HAVE_UNSETENV=1;        AC_SUBST([HAVE_UNSETENV])
+  REPLACE_MKSTEMP=0;      AC_SUBST([REPLACE_MKSTEMP])
+  REPLACE_PUTENV=0;       AC_SUBST([REPLACE_PUTENV])
+  VOID_UNSETENV=0;        AC_SUBST([VOID_UNSETENV])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/strcase.m4 nagios-plugins-1.4.12/gl/m4/strcase.m4
--- nagios-plugins-1.4.11/gl/m4/strcase.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/strcase.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-# strcase.m4 serial 4
-dnl Copyright (C) 2002, 2005-2006 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.
-
-AC_DEFUN([gl_STRCASE],
-[
-  gl_FUNC_STRCASECMP
-  gl_FUNC_STRNCASECMP
-])
-
-AC_DEFUN([gl_FUNC_STRCASECMP],
-[
-  dnl No known system has a strcasecmp() function that works correctly in
-  dnl multibyte locales. Therefore we use our version always.
-  AC_LIBOBJ(strcasecmp)
-  gl_PREREQ_STRCASECMP
-])
-
-AC_DEFUN([gl_FUNC_STRNCASECMP],
-[
-  AC_REPLACE_FUNCS(strncasecmp)
-  AC_CHECK_DECLS(strncasecmp)
-  if test $ac_cv_func_strncasecmp = no; then
-    gl_PREREQ_STRNCASECMP
-  fi
-])
-
-# Prerequisites of lib/strcasecmp.c.
-AC_DEFUN([gl_PREREQ_STRCASECMP], [
-  AC_REQUIRE([gl_FUNC_MBRTOWC])
-  :
-])
-
-# Prerequisites of lib/strncasecmp.c.
-AC_DEFUN([gl_PREREQ_STRNCASECMP], [
-  :
-])
diff -uNr nagios-plugins-1.4.11/gl/m4/strdup.m4 nagios-plugins-1.4.12/gl/m4/strdup.m4
--- nagios-plugins-1.4.11/gl/m4/strdup.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/strdup.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,13 +1,20 @@
-# strdup.m4 serial 7
-dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# strdup.m4 serial 9
+
+dnl Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+dnl 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.
 
 AC_DEFUN([gl_FUNC_STRDUP],
 [
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
   AC_REPLACE_FUNCS(strdup)
   AC_CHECK_DECLS_ONCE(strdup)
+  if test $ac_cv_have_decl_strdup = no; then
+    HAVE_DECL_STRDUP=0
+  fi
   gl_PREREQ_STRDUP
 ])
 
diff -uNr nagios-plugins-1.4.11/gl/m4/strerror.m4 nagios-plugins-1.4.12/gl/m4/strerror.m4
--- nagios-plugins-1.4.11/gl/m4/strerror.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/strerror.m4	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,47 @@
+# strerror.m4 serial 7
+dnl Copyright (C) 2002, 2007 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.
+
+AC_DEFUN([gl_FUNC_STRERROR],
+[
+  AC_REQUIRE([gl_FUNC_STRERROR_SEPARATE])
+  if test $gl_cv_func_working_strerror = no; then
+    AC_LIBOBJ([strerror])
+    AC_DEFINE_UNQUOTED([REPLACE_STRERROR], [$REPLACE_STRERROR],
+      [Define this to 1 if strerror is broken.])
+  fi
+])
+
+# Like gl_FUNC_STRERROR, except prepare for separate compilation (no AC_LIBOBJ).
+AC_DEFUN([gl_FUNC_STRERROR_SEPARATE],
+[
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_CACHE_CHECK([for working strerror function],
+   [gl_cv_func_working_strerror],
+   [AC_RUN_IFELSE(
+      [AC_LANG_PROGRAM(
+	 [#include <string.h>
+	 ],
+	 [return !*strerror (-2);])],
+      [gl_cv_func_working_strerror=yes],
+      [gl_cv_func_working_strerror=no],
+      [dnl Assume crossbuild works if it compiles.
+       AC_COMPILE_IFELSE(
+	 [AC_LANG_PROGRAM(
+	    [#include <string.h>
+	    ],
+	    [return !*strerror (-2);])],
+	 [gl_cv_func_working_strerror=yes],
+	 [gl_cv_func_working_strerror=no])])])
+  if test $gl_cv_func_working_strerror = no ; then
+    REPLACE_STRERROR=1
+    gl_PREREQ_STRERROR
+  fi
+])
+
+# Prerequisites of lib/strerror.c.
+AC_DEFUN([gl_PREREQ_STRERROR], [
+  AC_CHECK_DECLS([strerror])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/string_h.m4 nagios-plugins-1.4.12/gl/m4/string_h.m4
--- nagios-plugins-1.4.11/gl/m4/string_h.m4	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/string_h.m4	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,87 @@
+# Configure a GNU-like replacement for <string.h>.
+
+# Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# Written by Paul Eggert.
+
+AC_DEFUN([gl_HEADER_STRING_H],
+[
+  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+  dnl once only, before all statements that occur in other macros.
+  AC_REQUIRE([gl_HEADER_STRING_H_BODY])
+])
+
+AC_DEFUN([gl_HEADER_STRING_H_BODY],
+[
+  AC_REQUIRE([AC_C_RESTRICT])
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  gl_CHECK_NEXT_HEADERS([string.h])
+])
+
+AC_DEFUN([gl_STRING_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
+[
+  GNULIB_MEMMEM=0;      AC_SUBST([GNULIB_MEMMEM])
+  GNULIB_MEMPCPY=0;     AC_SUBST([GNULIB_MEMPCPY])
+  GNULIB_MEMRCHR=0;     AC_SUBST([GNULIB_MEMRCHR])
+  GNULIB_STPCPY=0;      AC_SUBST([GNULIB_STPCPY])
+  GNULIB_STPNCPY=0;     AC_SUBST([GNULIB_STPNCPY])
+  GNULIB_STRCHRNUL=0;   AC_SUBST([GNULIB_STRCHRNUL])
+  GNULIB_STRDUP=0;      AC_SUBST([GNULIB_STRDUP])
+  GNULIB_STRNDUP=0;     AC_SUBST([GNULIB_STRNDUP])
+  GNULIB_STRNLEN=0;     AC_SUBST([GNULIB_STRNLEN])
+  GNULIB_STRPBRK=0;     AC_SUBST([GNULIB_STRPBRK])
+  GNULIB_STRSEP=0;      AC_SUBST([GNULIB_STRSEP])
+  GNULIB_STRSTR=0;      AC_SUBST([GNULIB_STRSTR])
+  GNULIB_STRCASESTR=0;  AC_SUBST([GNULIB_STRCASESTR])
+  GNULIB_STRTOK_R=0;    AC_SUBST([GNULIB_STRTOK_R])
+  GNULIB_MBSLEN=0;      AC_SUBST([GNULIB_MBSLEN])
+  GNULIB_MBSNLEN=0;     AC_SUBST([GNULIB_MBSNLEN])
+  GNULIB_MBSCHR=0;      AC_SUBST([GNULIB_MBSCHR])
+  GNULIB_MBSRCHR=0;     AC_SUBST([GNULIB_MBSRCHR])
+  GNULIB_MBSSTR=0;      AC_SUBST([GNULIB_MBSSTR])
+  GNULIB_MBSCASECMP=0;  AC_SUBST([GNULIB_MBSCASECMP])
+  GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP])
+  GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP])
+  GNULIB_MBSCASESTR=0;  AC_SUBST([GNULIB_MBSCASESTR])
+  GNULIB_MBSCSPN=0;     AC_SUBST([GNULIB_MBSCSPN])
+  GNULIB_MBSPBRK=0;     AC_SUBST([GNULIB_MBSPBRK])
+  GNULIB_MBSSPN=0;      AC_SUBST([GNULIB_MBSSPN])
+  GNULIB_MBSSEP=0;      AC_SUBST([GNULIB_MBSSEP])
+  GNULIB_MBSTOK_R=0;    AC_SUBST([GNULIB_MBSTOK_R])
+  GNULIB_STRERROR=0;    AC_SUBST([GNULIB_STRERROR])
+  GNULIB_STRSIGNAL=0;   AC_SUBST([GNULIB_STRSIGNAL])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DECL_MEMMEM=1;		AC_SUBST([HAVE_DECL_MEMMEM])
+  HAVE_MEMPCPY=1;		AC_SUBST([HAVE_MEMPCPY])
+  HAVE_DECL_MEMRCHR=1;		AC_SUBST([HAVE_DECL_MEMRCHR])
+  HAVE_STPCPY=1;		AC_SUBST([HAVE_STPCPY])
+  HAVE_STPNCPY=1;		AC_SUBST([HAVE_STPNCPY])
+  HAVE_STRCHRNUL=1;		AC_SUBST([HAVE_STRCHRNUL])
+  HAVE_DECL_STRDUP=1;		AC_SUBST([HAVE_DECL_STRDUP])
+  HAVE_STRNDUP=1;		AC_SUBST([HAVE_STRNDUP])
+  HAVE_DECL_STRNDUP=1;		AC_SUBST([HAVE_DECL_STRNDUP])
+  HAVE_DECL_STRNLEN=1;		AC_SUBST([HAVE_DECL_STRNLEN])
+  HAVE_STRPBRK=1;		AC_SUBST([HAVE_STRPBRK])
+  HAVE_STRSEP=1;		AC_SUBST([HAVE_STRSEP])
+  HAVE_STRCASESTR=1;		AC_SUBST([HAVE_STRCASESTR])
+  HAVE_DECL_STRTOK_R=1;		AC_SUBST([HAVE_DECL_STRTOK_R])
+  HAVE_DECL_STRERROR=1;		AC_SUBST([HAVE_DECL_STRERROR])
+  HAVE_DECL_STRSIGNAL=1;	AC_SUBST([HAVE_DECL_STRSIGNAL])
+  REPLACE_STRERROR=0;		AC_SUBST([REPLACE_STRERROR])
+  REPLACE_STRSIGNAL=0;		AC_SUBST([REPLACE_STRSIGNAL])
+  REPLACE_MEMMEM=0;		AC_SUBST([REPLACE_MEMMEM])
+  REPLACE_STRCASESTR=0;		AC_SUBST([REPLACE_STRCASESTR])
+  REPLACE_STRSTR=0;		AC_SUBST([REPLACE_STRSTR])
+])
diff -uNr nagios-plugins-1.4.11/gl/m4/strndup.m4 nagios-plugins-1.4.12/gl/m4/strndup.m4
--- nagios-plugins-1.4.11/gl/m4/strndup.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/strndup.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# strndup.m4 serial 11
-dnl Copyright (C) 2002-2003, 2005-2006 Free Software Foundation, Inc.
+# strndup.m4 serial 14
+dnl Copyright (C) 2002-2003, 2005-2007 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.
@@ -7,15 +7,19 @@
 AC_DEFUN([gl_FUNC_STRNDUP],
 [
   dnl Persuade glibc <string.h> to declare strndup().
-  AC_REQUIRE([AC_GNU_SOURCE])
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
   AC_CHECK_DECLS_ONCE([strndup])
+  if test $ac_cv_have_decl_strndup = no; then
+    HAVE_DECL_STRNDUP=0
+  fi
 
   # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
   AC_CACHE_CHECK([for working strndup], gl_cv_func_strndup,
     [AC_RUN_IFELSE([
        AC_LANG_PROGRAM([#include <string.h>
-		 	#include <stdlib.h>], [[
+			#include <stdlib.h>], [[
 #ifndef HAVE_DECL_STRNDUP
   extern char *strndup (const char *, size_t);
 #endif
@@ -39,6 +43,7 @@
     AC_DEFINE([HAVE_STRNDUP], 1,
       [Define if you have the strndup() function and it works.])
   else
+    HAVE_STRNDUP=0
     AC_LIBOBJ([strndup])
     gl_PREREQ_STRNDUP
   fi
diff -uNr nagios-plugins-1.4.11/gl/m4/strnlen.m4 nagios-plugins-1.4.12/gl/m4/strnlen.m4
--- nagios-plugins-1.4.11/gl/m4/strnlen.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/strnlen.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# strnlen.m4 serial 6
-dnl Copyright (C) 2002-2003, 2005, 2006 Free Software Foundation, Inc.
+# strnlen.m4 serial 9
+dnl Copyright (C) 2002-2003, 2005-2007 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.
@@ -7,11 +7,17 @@
 AC_DEFUN([gl_FUNC_STRNLEN],
 [
   dnl Persuade glibc <string.h> to declare strnlen().
-  AC_REQUIRE([AC_GNU_SOURCE])
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_CHECK_DECLS_ONCE([strnlen])
+  if test $ac_cv_have_decl_strnlen = no; then
+    HAVE_DECL_STRNLEN=0
+  fi
 
   AC_FUNC_STRNLEN
   if test $ac_cv_func_strnlen_working = no; then
-    # This is necessary because automake-1.6.1 doens't understand
+    # This is necessary because automake-1.6.1 doesn't understand
     # that the above use of AC_FUNC_STRNLEN means we may have to use
     # lib/strnlen.c.
     #AC_LIBOBJ(strnlen)
@@ -22,6 +28,4 @@
 ])
 
 # Prerequisites of lib/strnlen.c.
-AC_DEFUN([gl_PREREQ_STRNLEN], [
-  AC_CHECK_DECLS_ONCE(strnlen)
-])
+AC_DEFUN([gl_PREREQ_STRNLEN], [:])
diff -uNr nagios-plugins-1.4.11/gl/m4/sys_socket_h.m4 nagios-plugins-1.4.12/gl/m4/sys_socket_h.m4
--- nagios-plugins-1.4.11/gl/m4/sys_socket_h.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/sys_socket_h.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# sys_socket_h.m4 serial 2
-dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+# sys_socket_h.m4 serial 4
+dnl Copyright (C) 2005, 2006, 2007 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.
@@ -8,16 +8,44 @@
 
 AC_DEFUN([gl_HEADER_SYS_SOCKET],
 [
-  AC_CHECK_HEADERS_ONCE([sys/socket.h])
-  if test $ac_cv_header_sys_socket_h = yes; then
+  AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
+    [gl_cv_header_sys_socket_h_selfcontained],
+    [
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/socket.h>], [])],
+        [gl_cv_header_sys_socket_h_selfcontained=yes],
+        [gl_cv_header_sys_socket_h_selfcontained=no])
+    ])
+  if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
     SYS_SOCKET_H=''
   else
-    dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
-    dnl the check for those headers unconditional; yet cygwin reports
-    dnl that the headers are present but cannot be compiled (since on
-    dnl cygwin, all socket information should come from sys/socket.h).
-    AC_CHECK_HEADERS([winsock2.h ws2tcpip.h])
     SYS_SOCKET_H='sys/socket.h'
+
+    gl_CHECK_NEXT_HEADERS([sys/socket.h])
+    if test $ac_cv_header_sys_socket_h = yes; then
+      HAVE_SYS_SOCKET_H=1
+      HAVE_WINSOCK2_H=0
+      HAVE_WS2TCPIP_H=0
+    else
+      HAVE_SYS_SOCKET_H=0
+      dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
+      dnl the check for those headers unconditional; yet cygwin reports
+      dnl that the headers are present but cannot be compiled (since on
+      dnl cygwin, all socket information should come from sys/socket.h).
+      AC_CHECK_HEADERS([winsock2.h ws2tcpip.h])
+      if test $ac_cv_header_winsock2_h = yes; then
+        HAVE_WINSOCK2_H=1
+      else
+        HAVE_WINSOCK2_H=0
+      fi
+      if test $ac_cv_header_ws2tcpip_h = yes; then
+        HAVE_WS2TCPIP_H=1
+      else
+        HAVE_WS2TCPIP_H=0
+      fi
+    fi
+    AC_SUBST([HAVE_SYS_SOCKET_H])
+    AC_SUBST([HAVE_WINSOCK2_H])
+    AC_SUBST([HAVE_WS2TCPIP_H])
   fi
-  AC_SUBST(SYS_SOCKET_H)
+  AC_SUBST([SYS_SOCKET_H])
 ])
diff -uNr nagios-plugins-1.4.11/gl/m4/ulonglong.m4 nagios-plugins-1.4.12/gl/m4/ulonglong.m4
--- nagios-plugins-1.4.11/gl/m4/ulonglong.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/ulonglong.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,48 +0,0 @@
-# ulonglong.m4 serial 6
-dnl Copyright (C) 1999-2006 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.
-
-dnl From Paul Eggert.
-
-# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
-# This fixes a bug in Autoconf 2.60, but can be removed once we
-# assume 2.61 everywhere.
-
-# Note: If the type 'unsigned long long int' exists but is only 32 bits
-# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
-# will not be defined. In this case you can treat 'unsigned long long int'
-# like 'unsigned long int'.
-
-AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
-[
-  AC_CACHE_CHECK([for unsigned long long int],
-    [ac_cv_type_unsigned_long_long_int],
-    [AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-	  [[unsigned long long int ull = 18446744073709551615ULL;
-	    typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1
-			   ? 1 : -1)];
-	   int i = 63;]],
-	  [[unsigned long long int ullmax = 18446744073709551615ull;
-	    return (ull << 63 | ull >> 63 | ull << i | ull >> i
-		    | ullmax / ull | ullmax % ull);]])],
-       [ac_cv_type_unsigned_long_long_int=yes],
-       [ac_cv_type_unsigned_long_long_int=no])])
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-    AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1,
-      [Define to 1 if the system has the type `unsigned long long int'.])
-  fi
-])
-
-# This macro is obsolescent and should go away soon.
-AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG],
-[
-  AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
-  ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int
-  if test $ac_cv_type_unsigned_long_long = yes; then
-    AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
-      [Define if you have the 'unsigned long long' type.])
-  fi
-])
diff -uNr nagios-plugins-1.4.11/gl/m4/unistd_h.m4 nagios-plugins-1.4.12/gl/m4/unistd_h.m4
--- nagios-plugins-1.4.11/gl/m4/unistd_h.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/unistd_h.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,32 +1,61 @@
-# unistd_h.m4 serial 3
-dnl Copyright (C) 2006 Free Software Foundation, Inc.
+# unistd_h.m4 serial 10
+dnl Copyright (C) 2006-2007 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.
 
-dnl Written by Simon Josefsson
+dnl Written by Simon Josefsson, Bruno Haible.
 
-AC_DEFUN([gl_HEADER_UNISTD],
+AC_DEFUN([gl_UNISTD_H],
 [
-  AC_CHECK_HEADERS([unistd.h], [
-    UNISTD_H=''
-  ], [
-    UNISTD_H='unistd.h'
-  ])
-  AC_SUBST(UNISTD_H)
-  dnl This module decides to build unistd.h if it is missing.
-  dnl The fchdir module decides to build unistd.h if fchdir() is missing.
-  dnl Therefore check for the prerequisites of lib/unistd.h always.
-  gl_PREREQ_UNISTD
-])
+  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+  dnl once only, before all statements that occur in other macros.
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+
+  gl_CHECK_NEXT_HEADERS([unistd.h])
 
-dnl Prerequisites of lib/unistd.h.
-AC_DEFUN([gl_PREREQ_UNISTD],
-[
   AC_CHECK_HEADERS_ONCE([unistd.h])
   if test $ac_cv_header_unistd_h = yes; then
-    gl_ABSOLUTE_HEADER([unistd.h])
-    ABSOLUTE_UNISTD_H=\"$gl_cv_absolute_unistd_h\"
+    HAVE_UNISTD_H=1
+  else
+    HAVE_UNISTD_H=0
   fi
-  AC_SUBST([ABSOLUTE_UNISTD_H])
+  AC_SUBST([HAVE_UNISTD_H])
+])
+
+AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_UNISTD_H_DEFAULTS],
+[
+  GNULIB_CHOWN=0;         AC_SUBST([GNULIB_CHOWN])
+  GNULIB_DUP2=0;          AC_SUBST([GNULIB_DUP2])
+  GNULIB_FCHDIR=0;        AC_SUBST([GNULIB_FCHDIR])
+  GNULIB_FTRUNCATE=0;     AC_SUBST([GNULIB_FTRUNCATE])
+  GNULIB_GETCWD=0;        AC_SUBST([GNULIB_GETCWD])
+  GNULIB_GETLOGIN_R=0;    AC_SUBST([GNULIB_GETLOGIN_R])
+  GNULIB_GETPAGESIZE=0;   AC_SUBST([GNULIB_GETPAGESIZE])
+  GNULIB_LCHOWN=0;        AC_SUBST([GNULIB_LCHOWN])
+  GNULIB_LSEEK=0;         AC_SUBST([GNULIB_LSEEK])
+  GNULIB_READLINK=0;      AC_SUBST([GNULIB_READLINK])
+  GNULIB_SLEEP=0;         AC_SUBST([GNULIB_SLEEP])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DUP2=1;            AC_SUBST([HAVE_DUP2])
+  HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
+  HAVE_GETPAGESIZE=1;     AC_SUBST([HAVE_GETPAGESIZE])
+  HAVE_READLINK=1;        AC_SUBST([HAVE_READLINK])
+  HAVE_SLEEP=1;           AC_SUBST([HAVE_SLEEP])
+  HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
+  HAVE_OS_H=0;            AC_SUBST([HAVE_OS_H])
+  HAVE_SYS_PARAM_H=0;     AC_SUBST([HAVE_SYS_PARAM_H])
+  REPLACE_CHOWN=0;        AC_SUBST([REPLACE_CHOWN])
+  REPLACE_FCHDIR=0;       AC_SUBST([REPLACE_FCHDIR])
+  REPLACE_GETCWD=0;       AC_SUBST([REPLACE_GETCWD])
+  REPLACE_GETPAGESIZE=0;  AC_SUBST([REPLACE_GETPAGESIZE])
+  REPLACE_LCHOWN=0;       AC_SUBST([REPLACE_LCHOWN])
+  REPLACE_LSEEK=0;        AC_SUBST([REPLACE_LSEEK])
 ])
diff -uNr nagios-plugins-1.4.11/gl/m4/vasnprintf.m4 nagios-plugins-1.4.12/gl/m4/vasnprintf.m4
--- nagios-plugins-1.4.11/gl/m4/vasnprintf.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/vasnprintf.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,5 +1,5 @@
-# vasnprintf.m4 serial 7
-dnl Copyright (C) 2002-2004, 2006 Free Software Foundation, Inc.
+# vasnprintf.m4 serial 24
+dnl Copyright (C) 2002-2004, 2006-2008 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.
@@ -7,23 +7,33 @@
 AC_DEFUN([gl_FUNC_VASNPRINTF],
 [
   AC_REQUIRE([gl_EOVERFLOW])
-  AC_REPLACE_FUNCS(vasnprintf)
+  AC_CHECK_FUNCS_ONCE([vasnprintf])
   if test $ac_cv_func_vasnprintf = no; then
-    AC_LIBOBJ(printf-args)
-    AC_LIBOBJ(printf-parse)
-    AC_LIBOBJ(asnprintf)
-    gl_PREREQ_PRINTF_ARGS
-    gl_PREREQ_PRINTF_PARSE
-    gl_PREREQ_VASNPRINTF
-    gl_PREREQ_ASNPRINTF
+    gl_REPLACE_VASNPRINTF
   fi
 ])
 
+AC_DEFUN([gl_REPLACE_VASNPRINTF],
+[
+  AC_CHECK_FUNCS_ONCE([vasnprintf])
+  AC_LIBOBJ([vasnprintf])
+  AC_LIBOBJ([printf-args])
+  AC_LIBOBJ([printf-parse])
+  AC_LIBOBJ([asnprintf])
+  if test $ac_cv_func_vasnprintf = yes; then
+    AC_DEFINE([REPLACE_VASNPRINTF], 1,
+      [Define if vasnprintf exists but is overridden by gnulib.])
+  fi
+  gl_PREREQ_PRINTF_ARGS
+  gl_PREREQ_PRINTF_PARSE
+  gl_PREREQ_VASNPRINTF
+  gl_PREREQ_ASNPRINTF
+])
+
 # Prequisites of lib/printf-args.h, lib/printf-args.c.
 AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
 [
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-  AC_REQUIRE([gt_TYPE_LONGDOUBLE])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
   AC_REQUIRE([gt_TYPE_WINT_T])
 ])
@@ -32,11 +42,13 @@
 AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
 [
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-  AC_REQUIRE([gt_TYPE_LONGDOUBLE])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
   AC_REQUIRE([gt_TYPE_WINT_T])
   AC_REQUIRE([AC_TYPE_SIZE_T])
-  AC_CHECK_TYPES(ptrdiff_t)
+  AC_CHECK_TYPE([ptrdiff_t], ,
+    [AC_DEFINE([ptrdiff_t], [long],
+       [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+    ])
   AC_REQUIRE([gt_AC_TYPE_INTMAX_T])
 ])
 
@@ -45,10 +57,202 @@
 [
   AC_REQUIRE([AC_FUNC_ALLOCA])
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-  AC_REQUIRE([gt_TYPE_LONGDOUBLE])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
   AC_REQUIRE([gt_TYPE_WINT_T])
   AC_CHECK_FUNCS(snprintf wcslen)
+  dnl Use the _snprintf function only if it is declared (because on NetBSD it
+  dnl is defined as a weak alias of snprintf; we prefer to use the latter).
+  AC_CHECK_DECLS([_snprintf], , , [#include <stdio.h>])
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting 'long double'
+# arguments.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_LONG_DOUBLE],
+[
+  AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1,
+        [Define if the vasnprintf implementation needs special code for
+         'long double' arguments.])
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'double'
+# arguments.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE],
+[
+  AC_REQUIRE([gl_PRINTF_INFINITE])
+  case "$gl_cv_func_printf_infinite" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_INFINITE_DOUBLE], 1,
+        [Define if the vasnprintf implementation needs special code for
+         infinite 'double' arguments.])
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'long double'
+# arguments.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE],
+[
+  AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE])
+  dnl There is no need to set NEED_PRINTF_INFINITE_LONG_DOUBLE if
+  dnl NEED_PRINTF_LONG_DOUBLE is already set.
+  AC_REQUIRE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE])
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      case "$gl_cv_func_printf_infinite_long_double" in
+        *yes)
+          ;;
+        *)
+          AC_DEFINE([NEED_PRINTF_INFINITE_LONG_DOUBLE], 1,
+            [Define if the vasnprintf implementation needs special code for
+             infinite 'long double' arguments.])
+          ;;
+      esac
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the 'a' directive.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A],
+[
+  AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+  case "$gl_cv_func_printf_directive_a" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], 1,
+        [Define if the vasnprintf implementation needs special code for
+         the 'a' and 'A' directives.])
+      AC_CHECK_FUNCS([nl_langinfo])
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F],
+[
+  AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
+  case "$gl_cv_func_printf_directive_f" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], 1,
+        [Define if the vasnprintf implementation needs special code for
+         the 'F' directive.])
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the ' flag.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING],
+[
+  AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
+  case "$gl_cv_func_printf_flag_grouping" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], 1,
+        [Define if the vasnprintf implementation needs special code for the
+         ' flag.])
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the '-' flag.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST],
+[
+  AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST])
+  case "$gl_cv_func_printf_flag_leftadjust" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_FLAG_LEFTADJUST], 1,
+        [Define if the vasnprintf implementation needs special code for the
+         '-' flag.])
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the 0 flag.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO],
+[
+  AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
+  case "$gl_cv_func_printf_flag_zero" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_FLAG_ZERO], 1,
+        [Define if the vasnprintf implementation needs special code for the
+         0 flag.])
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting large precisions.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_PRECISION],
+[
+  AC_REQUIRE([gl_PRINTF_PRECISION])
+  case "$gl_cv_func_printf_precision" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_UNBOUNDED_PRECISION], 1,
+        [Define if the vasnprintf implementation needs special code for
+         supporting large precisions without arbitrary bounds.])
+      AC_DEFINE([NEED_PRINTF_DOUBLE], 1,
+        [Define if the vasnprintf implementation needs special code for
+         'double' arguments.])
+      AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1,
+        [Define if the vasnprintf implementation needs special code for
+         'long double' arguments.])
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for surviving out-of-memory
+# conditions.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM],
+[
+  AC_REQUIRE([gl_PRINTF_ENOMEM])
+  case "$gl_cv_func_printf_enomem" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_ENOMEM], 1,
+        [Define if the vasnprintf implementation needs special code for
+         surviving out-of-memory conditions.])
+      AC_DEFINE([NEED_PRINTF_DOUBLE], 1,
+        [Define if the vasnprintf implementation needs special code for
+         'double' arguments.])
+      AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1,
+        [Define if the vasnprintf implementation needs special code for
+         'long double' arguments.])
+      ;;
+  esac
+])
+
+# Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS],
+[
+  AC_REQUIRE([gl_PREREQ_VASNPRINTF])
+  gl_PREREQ_VASNPRINTF_LONG_DOUBLE
+  gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
+  gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE
+  gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+  gl_PREREQ_VASNPRINTF_DIRECTIVE_F
+  gl_PREREQ_VASNPRINTF_FLAG_GROUPING
+  gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST
+  gl_PREREQ_VASNPRINTF_FLAG_ZERO
+  gl_PREREQ_VASNPRINTF_PRECISION
+  gl_PREREQ_VASNPRINTF_ENOMEM
 ])
 
 # Prerequisites of lib/asnprintf.c.
diff -uNr nagios-plugins-1.4.11/gl/m4/vasprintf.m4 nagios-plugins-1.4.12/gl/m4/vasprintf.m4
--- nagios-plugins-1.4.11/gl/m4/vasprintf.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/vasprintf.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,25 +1,37 @@
-# vasprintf.m4 serial 2
-dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc.
+# vasprintf.m4 serial 6
+dnl Copyright (C) 2002-2003, 2006-2007 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.
 
 AC_DEFUN([gl_FUNC_VASPRINTF],
 [
-  AC_REPLACE_FUNCS(vasprintf)
+  AC_CHECK_FUNCS([vasprintf])
   if test $ac_cv_func_vasprintf = no; then
-    AC_LIBOBJ(asprintf)
-    gl_PREREQ_VASPRINTF_H
-    gl_PREREQ_VASPRINTF
-    gl_PREREQ_ASPRINTF
+    gl_REPLACE_VASPRINTF
   fi
 ])
 
-# Prerequisites of lib/vasprintf.h.
+AC_DEFUN([gl_REPLACE_VASPRINTF],
+[
+  AC_LIBOBJ([vasprintf])
+  AC_LIBOBJ([asprintf])
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  if test $ac_cv_func_vasprintf = yes; then
+    REPLACE_VASPRINTF=1
+  else
+    HAVE_VASPRINTF=0
+  fi
+  gl_PREREQ_VASPRINTF_H
+  gl_PREREQ_VASPRINTF
+  gl_PREREQ_ASPRINTF
+])
+
+# Prerequisites of the vasprintf portion of lib/stdio.h.
 AC_DEFUN([gl_PREREQ_VASPRINTF_H],
 [
   dnl Persuade glibc <stdio.h> to declare asprintf() and vasprintf().
-  AC_REQUIRE([AC_GNU_SOURCE])
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 ])
 
 # Prerequisites of lib/vasprintf.c.
diff -uNr nagios-plugins-1.4.11/gl/m4/vsnprintf.m4 nagios-plugins-1.4.12/gl/m4/vsnprintf.m4
--- nagios-plugins-1.4.11/gl/m4/vsnprintf.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/vsnprintf.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,13 +1,29 @@
-# vsnprintf.m4 serial 2
-dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+# vsnprintf.m4 serial 4
+dnl Copyright (C) 2002, 2003, 2004, 2007 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.
 
 AC_DEFUN([gl_FUNC_VSNPRINTF],
 [
-  AC_REPLACE_FUNCS(vsnprintf)
-  AC_CHECK_DECLS_ONCE(vsnprintf)
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  AC_CHECK_FUNCS([vsnprintf])
+  if test $ac_cv_func_vsnprintf = no; then
+    gl_REPLACE_VSNPRINTF
+  fi
+  AC_CHECK_DECLS_ONCE([vsnprintf])
+  if test $ac_cv_have_decl_vsnprintf = no; then
+    HAVE_DECL_VSNPRINTF=0
+  fi
+])
+
+AC_DEFUN([gl_REPLACE_VSNPRINTF],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  AC_LIBOBJ([vsnprintf])
+  if test $ac_cv_func_vsnprintf = yes; then
+    REPLACE_VSNPRINTF=1
+  fi
   gl_PREREQ_VSNPRINTF
 ])
 
diff -uNr nagios-plugins-1.4.11/gl/m4/wchar.m4 nagios-plugins-1.4.12/gl/m4/wchar.m4
--- nagios-plugins-1.4.11/gl/m4/wchar.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/wchar.m4	2008-02-12 12:07:18.000000000 +0100
@@ -7,23 +7,48 @@
 
 dnl Written by Eric Blake.
 
-# wchar.m4 serial 1
+# wchar.m4 serial 4
 
 AC_DEFUN([gl_WCHAR_H],
 [
+  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
   AC_CACHE_CHECK([whether <wchar.h> is standalone],
     [gl_cv_header_wchar_h_standalone],
     [AC_COMPILE_IFELSE([[#include <wchar.h>
 wchar_t w;]],
       [gl_cv_header_wchar_h_standalone=yes],
       [gl_cv_header_wchar_h_standalone=no])])
-  if test $gl_cv_header_wchar_h_standalone = yes; then
-    WCHAR_H=
-  else
-    gl_ABSOLUTE_HEADER([wchar.h])
-    ABSOLUTE_WCHAR_H=\"$gl_cv_absolute_wchar_h\"
+  if test $gl_cv_header_wchar_h_standalone != yes; then
     WCHAR_H=wchar.h
   fi
-  AC_SUBST([ABSOLUTE_WCHAR_H])
+
+  dnl Prepare for creating substitute <wchar.h>.
+  dnl Do it always: WCHAR_H may be empty here but can be set later.
+  dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
+  dnl character support).
+  AC_CHECK_HEADERS_ONCE([wchar.h])
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
+  else
+    HAVE_WCHAR_H=0
+  fi
+  AC_SUBST([HAVE_WCHAR_H])
+  gl_CHECK_NEXT_HEADERS([wchar.h])
+])
+
+AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_WCHAR_H_DEFAULTS],
+[
+  GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH])
+  REPLACE_WCWIDTH=0;   AC_SUBST([REPLACE_WCWIDTH])
+  WCHAR_H=
   AC_SUBST([WCHAR_H])
 ])
diff -uNr nagios-plugins-1.4.11/gl/m4/wctype.m4 nagios-plugins-1.4.12/gl/m4/wctype.m4
--- nagios-plugins-1.4.11/gl/m4/wctype.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/wctype.m4	2008-02-12 12:07:18.000000000 +0100
@@ -10,6 +10,12 @@
 AC_DEFUN([gl_WCTYPE_H],
 [
   AC_CHECK_FUNCS_ONCE([iswcntrl])
+  if test $ac_cv_func_iswcntrl = yes; then
+    HAVE_ISWCNTRL=1
+  else
+    HAVE_ISWCNTRL=0
+  fi
+  AC_SUBST([HAVE_ISWCNTRL])
   AC_CHECK_HEADERS_ONCE([wctype.h])
   AC_REQUIRE([AC_C_INLINE])
 
@@ -23,19 +29,16 @@
 
   WCTYPE_H=wctype.h
   if test $ac_cv_header_wctype_h = yes; then
-    if test "$ac_cv_func_iswcntrl" = yes; then
+    if test $ac_cv_func_iswcntrl = yes; then
       WCTYPE_H=
     fi
-    dnl Compute ABSOLUTE_WCTYPE_H even if WCTYPE_H is empty,
+    dnl Compute NEXT_WCTYPE_H even if WCTYPE_H is empty,
     dnl for the benefit of builds from non-distclean directories.
-    gl_ABSOLUTE_HEADER([wctype.h])
-    ABSOLUTE_WCTYPE_H=\"$gl_cv_absolute_wctype_h\"
+    gl_CHECK_NEXT_HEADERS([wctype.h])
     HAVE_WCTYPE_H=1
   else
-    ABSOLUTE_WCTYPE_H=\"no/such/file/wctype.h\"
     HAVE_WCTYPE_H=0
   fi
-  AC_SUBST([ABSOLUTE_WCTYPE_H])
   AC_SUBST([HAVE_WCTYPE_H])
   AC_SUBST([WCTYPE_H])
 ])
diff -uNr nagios-plugins-1.4.11/gl/m4/wcwidth.m4 nagios-plugins-1.4.12/gl/m4/wcwidth.m4
--- nagios-plugins-1.4.11/gl/m4/wcwidth.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/wcwidth.m4	1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-# wcwidth.m4 serial 8
-dnl Copyright (C) 2006, 2007 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.
-
-AC_DEFUN([gl_FUNC_WCWIDTH],
-[
-  dnl Persuade glibc <wchar.h> to declare wcwidth().
-  AC_REQUIRE([AC_GNU_SOURCE])
-
-  AC_REQUIRE([AC_C_INLINE])
-  AC_REQUIRE([gt_TYPE_WCHAR_T])
-  AC_REQUIRE([gt_TYPE_WINT_T])
-
-  AC_CHECK_HEADERS_ONCE([wchar.h])
-  AC_CHECK_FUNCS_ONCE([wcwidth])
-
-  AC_CHECK_DECLS([wcwidth], [], [], [
-/* AIX 3.2.5 declares wcwidth in <string.h>. */
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-])])
diff -uNr nagios-plugins-1.4.11/gl/m4/wint_t.m4 nagios-plugins-1.4.12/gl/m4/wint_t.m4
--- nagios-plugins-1.4.11/gl/m4/wint_t.m4	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/m4/wint_t.m4	2008-02-12 12:07:18.000000000 +0100
@@ -1,4 +1,4 @@
-# wint_t.m4 serial 2 (gettext-0.12)
+# wint_t.m4 serial 2 (gettext-0.17)
 dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
diff -uNr nagios-plugins-1.4.11/gl/Makefile.am nagios-plugins-1.4.12/gl/Makefile.am
--- nagios-plugins-1.4.11/gl/Makefile.am	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/Makefile.am	2008-02-12 13:03:58.000000000 +0100
@@ -9,7 +9,7 @@
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --aux-dir=. --no-libtool --macro-prefix=gl dirname fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf
+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --aux-dir=build-aux --no-libtool --macro-prefix=gl base64 dirname floorf fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf
 
 AUTOMAKE_OPTIONS = 1.5 gnits
 
@@ -34,6 +34,15 @@
 libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
 EXTRA_libgnu_a_SOURCES =
 
+## begin gnulib module absolute-header
+
+# Use this preprocessor expression to decide whether #include_next works.
+# Do not rely on a 'configure'-time test for this, since the expression
+# might appear in an installed header, which is used by some other compiler.
+HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER)
+
+## end   gnulib module absolute-header
+
 ## begin gnulib module alloca
 
 
@@ -51,14 +60,14 @@
 
 # We need the following in order to create <alloca.h> when the system
 # doesn't have one that works with the given compiler.
-alloca.h: alloca_.h
+alloca.h: alloca.in.h
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  cat $(srcdir)/alloca_.h; \
+	  cat $(srcdir)/alloca.in.h; \
 	} > $@-t
 	mv -f $@-t $@
 MOSTLYCLEANFILES += alloca.h alloca.h-t
 
-EXTRA_DIST += alloca_.h
+EXTRA_DIST += alloca.in.h
 
 ## end   gnulib module alloca-opt
 
@@ -69,7 +78,7 @@
 # We need the following in order to create <arpa/inet.h> when the system
 # doesn't have one.
 arpa/inet.h:
-	test -d arpa || mkdir arpa
+	@MKDIR_P@ arpa
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  echo '#include <sys/socket.h>'; \
@@ -80,6 +89,12 @@
 
 ## end   gnulib module arpa_inet
 
+## begin gnulib module base64
+
+libgnu_a_SOURCES += base64.h base64.c
+
+## end   gnulib module base64
+
 ## begin gnulib module c-strtod
 
 
@@ -98,6 +113,62 @@
 
 ## end   gnulib module cloexec
 
+## begin gnulib module configmake
+
+# Retrieve values of the variables through 'configure' followed by
+# 'make', not directly through 'configure', so that a user who
+# sets some of these variables consistently on the 'make' command
+# line gets correct results.
+#
+# One advantage of this approach, compared to the classical
+# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
+# is that it protects against the use of undefined variables.
+# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
+# defined by this module, and code using LIBDIR gives a
+# compilation error.
+#
+# Another advantage is that 'make' output is shorter.
+#
+# Listed in the same order as the GNU makefile conventions.
+# The Automake-defined pkg* macros are appended, in the order
+# listed in the Automake 1.10a+ documentation.
+configmake.h: Makefile
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  echo '#define PREFIX "$(prefix)"'; \
+	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+	  echo '#define BINDIR "$(bindir)"'; \
+	  echo '#define SBINDIR "$(sbindir)"'; \
+	  echo '#define LIBEXECDIR "$(libexecdir)"'; \
+	  echo '#define DATAROOTDIR "$(datarootdir)"'; \
+	  echo '#define DATADIR "$(datadir)"'; \
+	  echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+	  echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+	  echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+	  echo '#define INCLUDEDIR "$(includedir)"'; \
+	  echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+	  echo '#define DOCDIR "$(docdir)"'; \
+	  echo '#define INFODIR "$(infodir)"'; \
+	  echo '#define HTMLDIR "$(htmldir)"'; \
+	  echo '#define DVIDIR "$(dvidir)"'; \
+	  echo '#define PDFDIR "$(pdfdir)"'; \
+	  echo '#define PSDIR "$(psdir)"'; \
+	  echo '#define LIBDIR "$(libdir)"'; \
+	  echo '#define LISPDIR "$(lispdir)"'; \
+	  echo '#define LOCALEDIR "$(localedir)"'; \
+	  echo '#define MANDIR "$(mandir)"'; \
+	  echo '#define MANEXT "$(manext)"'; \
+	  echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+	  echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+	  echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+	  echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+	} | sed '/""/d' > $@-t
+	mv $@-t $@
+BUILT_SOURCES += configmake.h
+CLEANFILES += configmake.h configmake.h-t
+
+## end   gnulib module configmake
+
 ## begin gnulib module dirname
 
 
@@ -116,12 +187,6 @@
 
 ## end   gnulib module error
 
-## begin gnulib module exit
-
-libgnu_a_SOURCES += exit.h
-
-## end   gnulib module exit
-
 ## begin gnulib module exitfail
 
 
@@ -140,6 +205,35 @@
 
 ## end   gnulib module fcntl-safer
 
+## begin gnulib module float
+
+BUILT_SOURCES += $(FLOAT_H)
+
+# We need the following in order to create <float.h> when the system
+# doesn't have one that works with the given compiler.
+float.h: float.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+	      < $(srcdir)/float.in.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += float.h float.h-t
+
+EXTRA_DIST += float.in.h
+
+## end   gnulib module float
+
+## begin gnulib module floorf
+
+
+EXTRA_DIST += floor.c floorf.c
+
+EXTRA_libgnu_a_SOURCES += floor.c floorf.c
+
+## end   gnulib module floorf
+
 ## begin gnulib module fsusage
 
 
@@ -194,14 +288,14 @@
 
 # We need the following in order to create <getopt.h> when the system
 # doesn't have one that works with the given compiler.
-getopt.h: getopt_.h
+getopt.h: getopt.in.h
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  cat $(srcdir)/getopt_.h; \
+	  cat $(srcdir)/getopt.in.h; \
 	} > $@-t
 	mv -f $@-t $@
 MOSTLYCLEANFILES += getopt.h getopt.h-t
 
-EXTRA_DIST += getopt.c getopt1.c getopt_.h getopt_int.h
+EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h
 
 EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c
 
@@ -219,6 +313,8 @@
 # "gettextize --intl".
 AM_CPPFLAGS += -I$(top_builddir)/intl
 
+EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
+
 ## end   gnulib module gettext
 
 ## begin gnulib module gettext-h
@@ -227,6 +323,13 @@
 
 ## end   gnulib module gettext-h
 
+## begin gnulib module havelib
+
+
+EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
+
+## end   gnulib module havelib
+
 ## begin gnulib module inet_ntop
 
 
@@ -243,44 +346,153 @@
 
 ## end   gnulib module intprops
 
-## begin gnulib module malloc
+## begin gnulib module link-warning
 
+LINK_WARNING_H=$(top_srcdir)/build-aux/link-warning.h
 
-EXTRA_DIST += malloc.c
+EXTRA_DIST += $(top_srcdir)/build-aux/link-warning.h
 
-EXTRA_libgnu_a_SOURCES += malloc.c
+## end   gnulib module link-warning
 
-## end   gnulib module malloc
+## begin gnulib module localcharset
+
+libgnu_a_SOURCES += localcharset.h localcharset.c
+
+# We need the following in order to install a simple file in $(libdir)
+# which is shared with other installed packages. We use a list of referencing
+# packages so that "make uninstall" will remove the file if and only if it
+# is not used by another installed package.
+# On systems with glibc-2.1 or newer, the file is redundant, therefore we
+# avoid installing it.
+
+all-local: charset.alias ref-add.sed ref-del.sed
+
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+install-exec-local: all-local
+	test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir)
+	if test -f $(charset_alias); then \
+	  sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+	  $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	  rm -f $(charset_tmp) ; \
+	else \
+	  if test $(GLIBC21) = no; then \
+	    sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	    rm -f $(charset_tmp) ; \
+	  fi ; \
+	fi
+
+uninstall-local: all-local
+	if test -f $(charset_alias); then \
+	  sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+	  if grep '^# Packages using this file: $$' $(charset_tmp) \
+	      > /dev/null; then \
+	    rm -f $(charset_alias); \
+	  else \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+	  fi; \
+	  rm -f $(charset_tmp); \
+	fi
 
-## begin gnulib module mbchar
+charset.alias: config.charset
+	rm -f t-$@ $@
+	$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@
+	mv t-$@ $@
 
+SUFFIXES += .sed .sin
+.sin.sed:
+	rm -f t-$@ $@
+	sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@
+	mv t-$@ $@
 
-EXTRA_DIST += mbchar.c mbchar.h
+CLEANFILES += charset.alias ref-add.sed ref-del.sed
 
-EXTRA_libgnu_a_SOURCES += mbchar.c
+EXTRA_DIST += config.charset ref-add.sin ref-del.sin
 
-## end   gnulib module mbchar
+## end   gnulib module localcharset
 
-## begin gnulib module mbuiter
+## begin gnulib module malloc
 
-libgnu_a_SOURCES += mbuiter.h
 
-## end   gnulib module mbuiter
+EXTRA_DIST += malloc.c
 
-## begin gnulib module memchr
+EXTRA_libgnu_a_SOURCES += malloc.c
 
+## end   gnulib module malloc
 
-EXTRA_DIST += memchr.c
+## begin gnulib module malloc-posix
 
-EXTRA_libgnu_a_SOURCES += memchr.c
 
-## end   gnulib module memchr
+EXTRA_DIST += malloc.c
+
+EXTRA_libgnu_a_SOURCES += malloc.c
+
+## end   gnulib module malloc-posix
+
+## begin gnulib module math
+
+BUILT_SOURCES += math.h
 
-## begin gnulib module minmax
+# We need the following in order to create <math.h> when the system
+# doesn't have one that works with the given compiler.
+math.h: math.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_MATH_H''@|$(NEXT_MATH_H)|g' \
+	      -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
+	      -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
+	      -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
+	      -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \
+	      -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
+	      -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \
+	      -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \
+	      -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \
+	      -e 's|@''GNULIB_MATHL''@|$(GNULIB_MATHL)|g' \
+	      -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \
+	      -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \
+	      -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \
+	      -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \
+	      -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \
+	      -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \
+	      -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \
+	      -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \
+	      -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \
+	      -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \
+	      -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \
+	      -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \
+	      -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \
+	      -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \
+	      -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \
+	      -e 's|@''HAVE_DECL_SINL''@|$(HAVE_DECL_SINL)|g' \
+	      -e 's|@''HAVE_DECL_SQRTL''@|$(HAVE_DECL_SQRTL)|g' \
+	      -e 's|@''HAVE_DECL_TANL''@|$(HAVE_DECL_TANL)|g' \
+	      -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \
+	      -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
+	      -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \
+	      -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
+	      -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
+	      -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
+	      -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \
+	      -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
+	      -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \
+	      -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \
+	      -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \
+	      -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \
+	      -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \
+	      -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
+	      -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
+	      -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/math.in.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += math.h math.h-t
 
-libgnu_a_SOURCES += minmax.h
+EXTRA_DIST += math.in.h
 
-## end   gnulib module minmax
+## end   gnulib module math
 
 ## begin gnulib module mountlist
 
@@ -297,16 +509,21 @@
 
 # We need the following in order to create <netinet/in.h> when the system
 # doesn't have one.
-netinet/in.h:
-	test -d netinet || mkdir netinet
+netinet/in.h: netinet_in.in.h
+	@MKDIR_P@ netinet
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  echo '#include <sys/socket.h>'; \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \
+	      -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \
+	      < $(srcdir)/netinet_in.in.h; \
 	} > $@-t
 	mv $@-t $@
 MOSTLYCLEANFILES += netinet/in.h netinet/in.h-t
 MOSTLYCLEANDIRS += netinet
 
+EXTRA_DIST += netinet_in.in.h
+
 ## end   gnulib module netinet_in
 
 ## begin gnulib module regex
@@ -345,7 +562,7 @@
 ## begin gnulib module snprintf
 
 
-EXTRA_DIST += snprintf.c snprintf.h
+EXTRA_DIST += snprintf.c
 
 EXTRA_libgnu_a_SOURCES += snprintf.c
 
@@ -357,15 +574,15 @@
 
 # We need the following in order to create <stdbool.h> when the system
 # doesn't have one that works.
-stdbool.h: stdbool_.h
+stdbool.h: stdbool.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool_.h; \
+	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
 	} > $@-t
 	mv $@-t $@
 MOSTLYCLEANFILES += stdbool.h stdbool.h-t
 
-EXTRA_DIST += stdbool_.h
+EXTRA_DIST += stdbool.in.h
 
 ## end   gnulib module stdbool
 
@@ -375,11 +592,12 @@
 
 # We need the following in order to create <stdint.h> when the system
 # doesn't have one that works with the given compiler.
-stdint.h: stdint_.h
+stdint.h: stdint.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-	      -e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \
+	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
 	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
 	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
 	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
@@ -399,37 +617,210 @@
 	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
 	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
 	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
-	      < $(srcdir)/stdint_.h; \
+	      < $(srcdir)/stdint.in.h; \
 	} > $@-t
 	mv $@-t $@
 MOSTLYCLEANFILES += stdint.h stdint.h-t
 
-EXTRA_DIST += stdint_.h
+EXTRA_DIST += stdint.in.h
 
 ## end   gnulib module stdint
 
-## begin gnulib module strcase
+## begin gnulib module stdio
 
+BUILT_SOURCES += stdio.h
 
-EXTRA_DIST += strcase.h strcasecmp.c strncasecmp.c
+# We need the following in order to create <stdio.h> when the system
+# doesn't have one that works with the given compiler.
+stdio.h: stdio.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \
+	      -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
+	      -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \
+	      -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \
+	      -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \
+	      -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \
+	      -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \
+	      -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \
+	      -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
+	      -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
+	      -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
+	      -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \
+	      -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \
+	      -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
+	      -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
+	      -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
+	      -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
+	      -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
+	      -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
+	      -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
+	      -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
+	      -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
+	      -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
+	      -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \
+	      -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
+	      -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
+	      -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
+	      -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \
+	      -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \
+	      -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
+	      -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
+	      -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
+	      -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
+	      -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
+	      -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/stdio.in.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += stdio.h stdio.h-t
+
+EXTRA_DIST += stdio.in.h
+
+## end   gnulib module stdio
 
-EXTRA_libgnu_a_SOURCES += strcasecmp.c strncasecmp.c
+## begin gnulib module stdlib
 
-## end   gnulib module strcase
+BUILT_SOURCES += stdlib.h
+
+# We need the following in order to create <stdlib.h> when the system
+# doesn't have one that works with the given compiler.
+stdlib.h: stdlib.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+	      -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
+	      -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
+	      -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
+	      -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
+	      -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
+	      -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
+	      -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
+	      -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
+	      -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
+	      -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
+	      -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+	      -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
+	      -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+	      -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
+	      -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
+	      -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
+	      -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+	      -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+	      -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/stdlib.in.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += stdlib.h stdlib.h-t
+
+EXTRA_DIST += stdlib.in.h
+
+## end   gnulib module stdlib
 
 ## begin gnulib module strdup
 
 
-EXTRA_DIST += strdup.c strdup.h
+EXTRA_DIST += strdup.c
 
 EXTRA_libgnu_a_SOURCES += strdup.c
 
 ## end   gnulib module strdup
 
+## begin gnulib module strerror
+
+
+EXTRA_DIST += strerror.c
+
+EXTRA_libgnu_a_SOURCES += strerror.c
+
+## end   gnulib module strerror
+
+## begin gnulib module string
+
+BUILT_SOURCES += string.h
+
+# We need the following in order to create <string.h> when the system
+# doesn't have one that works with the given compiler.
+string.h: string.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
+	      -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
+	      -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
+	      -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
+	      -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
+	      -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
+	      -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
+	      -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
+	      -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
+	      -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
+	      -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
+	      -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
+	      -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
+	      -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
+	      -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
+	      -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
+	      -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
+	      -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
+	      -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
+	      -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
+	      -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
+	      -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
+	      -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
+	      -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
+	      -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
+	      -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
+	      -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
+	      -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
+	      -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
+	      -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
+	      -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+	      -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
+	      -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
+	      -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
+	      -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
+	      -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
+	      -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
+	      -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
+	      -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
+	      -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
+	      -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
+	      -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+	      -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
+	      -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
+	      -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
+	      -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+	      -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+	      -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+	      -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/string.in.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += string.h string.h-t
+
+EXTRA_DIST += string.in.h
+
+## end   gnulib module string
+
 ## begin gnulib module strndup
 
 
-EXTRA_DIST += strndup.c strndup.h
+EXTRA_DIST += strndup.c
 
 EXTRA_libgnu_a_SOURCES += strndup.c
 
@@ -438,53 +829,79 @@
 ## begin gnulib module strnlen
 
 
-EXTRA_DIST += strnlen.c strnlen.h
+EXTRA_DIST += strnlen.c
 
 EXTRA_libgnu_a_SOURCES += strnlen.c
 
 ## end   gnulib module strnlen
 
-## begin gnulib module strnlen1
-
-libgnu_a_SOURCES += strnlen1.h strnlen1.c
-
-## end   gnulib module strnlen1
-
 ## begin gnulib module sys_socket
 
 BUILT_SOURCES += $(SYS_SOCKET_H)
 
 # We need the following in order to create <sys/socket.h> when the system
 # doesn't have one that works with the given compiler.
-sys/socket.h: socket_.h
+sys/socket.h: sys_socket.in.h
 	@MKDIR_P@ sys
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  cat $(srcdir)/socket_.h; \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \
+	      -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \
+	      -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
+	      -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
+	      < $(srcdir)/sys_socket.in.h; \
 	} > $@-t
 	mv -f $@-t $@
 MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t
 MOSTLYCLEANDIRS += sys
 
-EXTRA_DIST += socket_.h
+EXTRA_DIST += sys_socket.in.h
 
 ## end   gnulib module sys_socket
 
 ## begin gnulib module unistd
 
-BUILT_SOURCES += $(UNISTD_H)
+BUILT_SOURCES += unistd.h
 
 # We need the following in order to create an empty placeholder for
 # <unistd.h> when the system doesn't have one.
-unistd.h: unistd_.h
+unistd.h: unistd.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''ABSOLUTE_UNISTD_H''@|$(ABSOLUTE_UNISTD_H)|g' \
-	      < $(srcdir)/unistd_.h; \
+	  sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+	      -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
+	      -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
+	      -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
+	      -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
+	      -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
+	      -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
+	      -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
+	      -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
+	      -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
+	      -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
+	      -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
+	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+	      -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+	      -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+	      -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+	      -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
+	      -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
+	      -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+	      -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
+	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+	      -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+	      -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
+	      -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+	      < $(srcdir)/unistd.in.h; \
 	} > $@-t
 	mv $@-t $@
 MOSTLYCLEANFILES += unistd.h unistd.h-t
 
-EXTRA_DIST += unistd_.h
+EXTRA_DIST += unistd.in.h
 
 ## end   gnulib module unistd
 
@@ -500,7 +917,7 @@
 ## begin gnulib module vasnprintf
 
 
-EXTRA_DIST += asnprintf.c printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h
+EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h
 
 EXTRA_libgnu_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c
 
@@ -509,7 +926,7 @@
 ## begin gnulib module vasprintf
 
 
-EXTRA_DIST += asprintf.c vasprintf.c vasprintf.h
+EXTRA_DIST += asprintf.c vasprintf.c
 
 EXTRA_libgnu_a_SOURCES += asprintf.c vasprintf.c
 
@@ -518,7 +935,7 @@
 ## begin gnulib module vsnprintf
 
 
-EXTRA_DIST += vsnprintf.c vsnprintf.h
+EXTRA_DIST += vsnprintf.c
 
 EXTRA_libgnu_a_SOURCES += vsnprintf.c
 
@@ -530,16 +947,22 @@
 
 # We need the following in order to create <wchar.h> when the system
 # version does not work standalone.
-wchar.h: wchar_.h
+wchar.h: wchar.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''ABSOLUTE_WCHAR_H''@|$(ABSOLUTE_WCHAR_H)|g' \
-	    < $(srcdir)/wchar_.h; \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+	      -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+	      -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
+	      -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+	      -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	    < $(srcdir)/wchar.in.h; \
 	} > $@-t
 	mv $@-t $@
 MOSTLYCLEANFILES += wchar.h wchar.h-t
 
-EXTRA_DIST += wchar_.h
+EXTRA_DIST += wchar.in.h
 
 ## end   gnulib module wchar
 
@@ -549,28 +972,23 @@
 
 # We need the following in order to create <wctype.h> when the system
 # doesn't have one that works with the given compiler.
-wctype.h: wctype_.h
+wctype.h: wctype.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
-	      -e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \
-	      -e 's/@''HAVE_WCTYPE_CTMP_BUG''@/$(HAVE_WCTYPE_CTMP_BUG)/g' \
+	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
 	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
-	      < $(srcdir)/wctype_.h; \
+	      < $(srcdir)/wctype.in.h; \
 	} > $@-t
 	mv $@-t $@
 MOSTLYCLEANFILES += wctype.h wctype.h-t
 
-EXTRA_DIST += wctype_.h
+EXTRA_DIST += wctype.in.h
 
 ## end   gnulib module wctype
 
-## begin gnulib module wcwidth
-
-libgnu_a_SOURCES += wcwidth.h
-
-## end   gnulib module wcwidth
-
 ## begin gnulib module xalloc
 
 
@@ -604,4 +1022,5 @@
 	  if test -n "$$dir" && test -d $$dir; then \
 	    echo "rmdir $$dir"; rmdir $$dir; \
 	  fi; \
-	done
+	done; \
+	:
diff -uNr nagios-plugins-1.4.11/gl/Makefile.in nagios-plugins-1.4.12/gl/Makefile.in
--- nagios-plugins-1.4.11/gl/Makefile.in	2007-12-13 23:42:34.000000000 +0100
+++ nagios-plugins-1.4.12/gl/Makefile.in	2008-05-28 00:05:05.000000000 +0200
@@ -23,7 +23,7 @@
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --aux-dir=. --no-libtool --macro-prefix=gl dirname fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf
+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --aux-dir=build-aux --no-libtool --macro-prefix=gl base64 dirname floorf fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf
 
 
 
@@ -53,36 +53,40 @@
 	$(srcdir)/Makefile.in alloca.c
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
 	$(top_srcdir)/gl/m4/alloca.m4 \
 	$(top_srcdir)/gl/m4/arpa_inet_h.m4 \
-	$(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \
-	$(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \
-	$(top_srcdir)/gl/m4/dos.m4 \
+	$(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \
+	$(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \
+	$(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \
 	$(top_srcdir)/gl/m4/double-slash-root.m4 \
 	$(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \
 	$(top_srcdir)/gl/m4/exitfail.m4 \
 	$(top_srcdir)/gl/m4/extensions.m4 \
 	$(top_srcdir)/gl/m4/fcntl-safer.m4 \
+	$(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \
 	$(top_srcdir)/gl/m4/fstypename.m4 \
 	$(top_srcdir)/gl/m4/fsusage.m4 \
 	$(top_srcdir)/gl/m4/getaddrinfo.m4 \
 	$(top_srcdir)/gl/m4/gethostname.m4 \
 	$(top_srcdir)/gl/m4/getloadavg.m4 \
 	$(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \
+	$(top_srcdir)/gl/m4/glibc21.m4 \
 	$(top_srcdir)/gl/m4/gnulib-common.m4 \
 	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \
-	$(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \
+	$(top_srcdir)/gl/m4/iconv.m4 \
+	$(top_srcdir)/gl/m4/include_next.m4 \
+	$(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \
+	$(top_srcdir)/gl/m4/intlmacosx.m4 \
+	$(top_srcdir)/gl/m4/intmax_t.m4 \
 	$(top_srcdir)/gl/m4/inttypes_h.m4 \
 	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longdouble.m4 \
+	$(top_srcdir)/gl/m4/lib-prefix.m4 \
+	$(top_srcdir)/gl/m4/localcharset.m4 \
 	$(top_srcdir)/gl/m4/longlong.m4 \
 	$(top_srcdir)/gl/m4/ls-mntd-fs.m4 \
-	$(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \
-	$(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \
-	$(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \
+	$(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \
+	$(top_srcdir)/gl/m4/mbstate_t.m4 \
+	$(top_srcdir)/gl/m4/mountlist.m4 \
 	$(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \
 	$(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \
 	$(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \
@@ -92,21 +96,21 @@
 	$(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \
 	$(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \
 	$(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \
-	$(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \
+	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \
+	$(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \
+	$(top_srcdir)/gl/m4/strerror.m4 \
+	$(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \
 	$(top_srcdir)/gl/m4/strnlen.m4 \
 	$(top_srcdir)/gl/m4/sys_socket_h.m4 \
-	$(top_srcdir)/gl/m4/ulonglong.m4 \
 	$(top_srcdir)/gl/m4/unistd-safer.m4 \
 	$(top_srcdir)/gl/m4/unistd_h.m4 \
 	$(top_srcdir)/gl/m4/vasnprintf.m4 \
 	$(top_srcdir)/gl/m4/vasprintf.m4 \
 	$(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \
 	$(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \
-	$(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \
-	$(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \
-	$(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \
+	$(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
@@ -116,8 +120,9 @@
 ARFLAGS = cru
 libgnu_a_AR = $(AR) $(ARFLAGS)
 am__DEPENDENCIES_1 =
-am_libgnu_a_OBJECTS = full-read.$(OBJEXT) full-write.$(OBJEXT) \
-	strnlen1.$(OBJEXT) xalloc-die.$(OBJEXT) xstrndup.$(OBJEXT)
+am_libgnu_a_OBJECTS = base64.$(OBJEXT) full-read.$(OBJEXT) \
+	full-write.$(OBJEXT) localcharset.$(OBJEXT) \
+	xalloc-die.$(OBJEXT) xstrndup.$(OBJEXT)
 libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
@@ -138,10 +143,6 @@
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 INSTALL = @INSTALL@
-ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
-ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
-ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
-ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -186,27 +187,177 @@
 EXTRA_TEST = @EXTRA_TEST@
 F77 = @F77@
 FFLAGS = @FFLAGS@
+FLOAT_H = @FLOAT_H@
+FLOORF_LIBM = @FLOORF_LIBM@
 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
 GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
 GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
 GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MATHL = @GNULIB_MATHL@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
 GREP = @GREP@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_SETENV = @HAVE_SETENV@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE__BOOL = @HAVE__BOOL@
 HOSTNAME = @HOSTNAME@
+INCLUDE_NEXT = @INCLUDE_NEXT@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -227,6 +378,7 @@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
@@ -240,6 +392,17 @@
 MYSQLLIBS = @MYSQLLIBS@
 NEED_SETGID = @NEED_SETGID@
 NETINET_IN_H = @NETINET_IN_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_MATH_H = @NEXT_MATH_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -278,11 +441,56 @@
 PLUGIN_TEST = @PLUGIN_TEST@
 POSUB = @POSUB@
 POW_LIB = @POW_LIB@
+PST3CFLAGS = @PST3CFLAGS@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 PYTHON = @PYTHON@
 RADIUSLIBS = @RADIUSLIBS@
 RANLIB = @RANLIB@
 RELEASE = @RELEASE@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REV_DATESTAMP = @REV_DATESTAMP@
 REV_TIMESTAMP = @REV_TIMESTAMP@
 SCRIPT_TEST = @SCRIPT_TEST@
@@ -299,9 +507,11 @@
 STRIP = @STRIP@
 SUPPORT = @SUPPORT@
 SYS_SOCKET_H = @SYS_SOCKET_H@
-UNISTD_H = @UNISTD_H@
 USE_NLS = @USE_NLS@
+USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@
+USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@
 VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
 WARRANTY = @WARRANTY@
 WCHAR_H = @WCHAR_H@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
@@ -309,6 +519,7 @@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
@@ -335,6 +546,8 @@
 exec_prefix = @exec_prefix@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -365,34 +578,40 @@
 noinst_HEADERS = 
 noinst_LIBRARIES = libgnu.a
 noinst_LTLIBRARIES = 
-EXTRA_DIST = alloca.c alloca_.h c-strtod.c c-strtod.h cloexec.c \
+EXTRA_DIST = alloca.c alloca.in.h c-strtod.c c-strtod.h cloexec.c \
 	cloexec.h basename.c dirname.c dirname.h stripslash.c error.c \
 	error.h exitfail.c exitfail.h creat-safer.c fcntl--.h \
-	fcntl-safer.h open-safer.c fsusage.c fsusage.h gai_strerror.c \
-	getaddrinfo.c getaddrinfo.h gethostname.c getloadavg.c \
-	getopt.c getopt1.c getopt_.h getopt_int.h inet_ntop.c \
-	inet_ntop.h intprops.h malloc.c mbchar.c mbchar.h memchr.c \
-	mountlist.c mountlist.h regcomp.c regex.c regex.h \
-	regex_internal.c regex_internal.h regexec.c safe-read.c \
-	safe-read.h safe-write.c safe-write.h snprintf.c snprintf.h \
-	stdbool_.h stdint_.h strcase.h strcasecmp.c strncasecmp.c \
-	strdup.c strdup.h strndup.c strndup.h strnlen.c strnlen.h \
-	socket_.h unistd_.h dup-safer.c fd-safer.c pipe-safer.c \
-	unistd--.h unistd-safer.h asnprintf.c printf-args.c \
+	fcntl-safer.h open-safer.c float.in.h floor.c floorf.c \
+	fsusage.c fsusage.h gai_strerror.c getaddrinfo.c getaddrinfo.h \
+	gethostname.c getloadavg.c getopt.c getopt.in.h getopt1.c \
+	getopt_int.h $(top_srcdir)/build-aux/config.rpath \
+	$(top_srcdir)/build-aux/config.rpath inet_ntop.c inet_ntop.h \
+	intprops.h $(top_srcdir)/build-aux/link-warning.h \
+	config.charset ref-add.sin ref-del.sin malloc.c malloc.c \
+	math.in.h mountlist.c mountlist.h netinet_in.in.h regcomp.c \
+	regex.c regex.h regex_internal.c regex_internal.h regexec.c \
+	safe-read.c safe-read.h safe-write.c safe-write.h snprintf.c \
+	stdbool.in.h stdint.in.h stdio.in.h stdlib.in.h strdup.c \
+	strerror.c string.in.h strndup.c strnlen.c sys_socket.in.h \
+	unistd.in.h dup-safer.c fd-safer.c pipe-safer.c unistd--.h \
+	unistd-safer.h asnprintf.c float+.h printf-args.c \
 	printf-args.h printf-parse.c printf-parse.h vasnprintf.c \
-	vasnprintf.h asprintf.c vasprintf.c vasprintf.h vsnprintf.c \
-	vsnprintf.h wchar_.h wctype_.h xalloc.h xmalloc.c
-BUILT_SOURCES = $(ALLOCA_H) $(ARPA_INET_H) $(GETOPT_H) $(NETINET_IN_H) \
-	$(STDBOOL_H) $(STDINT_H) $(SYS_SOCKET_H) $(UNISTD_H) \
-	$(WCHAR_H) $(WCTYPE_H)
-SUFFIXES = 
+	vasnprintf.h asprintf.c vasprintf.c vsnprintf.c wchar.in.h \
+	wctype.in.h xalloc.h xmalloc.c
+BUILT_SOURCES = $(ALLOCA_H) $(ARPA_INET_H) configmake.h $(FLOAT_H) \
+	$(GETOPT_H) math.h $(NETINET_IN_H) $(STDBOOL_H) $(STDINT_H) \
+	stdio.h stdlib.h string.h $(SYS_SOCKET_H) unistd.h $(WCHAR_H) \
+	$(WCTYPE_H)
+SUFFIXES = .sed .sin
 MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \
-	arpa/inet.h-t getopt.h getopt.h-t netinet/in.h netinet/in.h-t \
-	stdbool.h stdbool.h-t stdint.h stdint.h-t sys/socket.h \
-	sys/socket.h-t unistd.h unistd.h-t wchar.h wchar.h-t wctype.h \
-	wctype.h-t
+	arpa/inet.h-t float.h float.h-t getopt.h getopt.h-t math.h \
+	math.h-t netinet/in.h netinet/in.h-t stdbool.h stdbool.h-t \
+	stdint.h stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t \
+	string.h string.h-t sys/socket.h sys/socket.h-t unistd.h \
+	unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t
 MOSTLYCLEANDIRS = arpa netinet sys
-CLEANFILES = 
+CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
+	ref-del.sed
 DISTCLEANFILES = 
 MAINTAINERCLEANFILES = 
 
@@ -405,27 +624,34 @@
 # directory contains no libintl.h file) or when the project does not use
 # "gettextize --intl".
 AM_CPPFLAGS = -I$(top_builddir)/intl
-libgnu_a_SOURCES = exit.h full-read.h full-read.c full-write.h \
-	full-write.c gettext.h mbuiter.h minmax.h size_max.h \
-	strnlen1.h strnlen1.c wcwidth.h xalloc-die.c xsize.h \
-	xstrndup.h xstrndup.c
+libgnu_a_SOURCES = base64.h base64.c full-read.h full-read.c \
+	full-write.h full-write.c gettext.h localcharset.h \
+	localcharset.c size_max.h xalloc-die.c xsize.h xstrndup.h \
+	xstrndup.c
 libgnu_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@
 libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@
 EXTRA_libgnu_a_SOURCES = alloca.c c-strtod.c cloexec.c basename.c \
 	dirname.c stripslash.c error.c exitfail.c creat-safer.c \
-	open-safer.c fsusage.c gai_strerror.c getaddrinfo.c \
-	gethostname.c getloadavg.c getopt.c getopt1.c inet_ntop.c \
-	malloc.c mbchar.c memchr.c mountlist.c regcomp.c regex.c \
+	open-safer.c floor.c floorf.c fsusage.c gai_strerror.c \
+	getaddrinfo.c gethostname.c getloadavg.c getopt.c getopt1.c \
+	inet_ntop.c malloc.c malloc.c mountlist.c regcomp.c regex.c \
 	regex_internal.c regexec.c safe-read.c safe-write.c snprintf.c \
-	strcasecmp.c strncasecmp.c strdup.c strndup.c strnlen.c \
-	dup-safer.c fd-safer.c pipe-safer.c asnprintf.c printf-args.c \
-	printf-parse.c vasnprintf.c asprintf.c vasprintf.c vsnprintf.c \
-	xmalloc.c
+	strdup.c strerror.c strndup.c strnlen.c dup-safer.c fd-safer.c \
+	pipe-safer.c asnprintf.c printf-args.c printf-parse.c \
+	vasnprintf.c asprintf.c vasprintf.c vsnprintf.c xmalloc.c
+
+# Use this preprocessor expression to decide whether #include_next works.
+# Do not rely on a 'configure'-time test for this, since the expression
+# might appear in an installed header, which is used by some other compiler.
+HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER)
+LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .sed .sin .c .lo .o .obj
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -482,6 +708,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asprintf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strtod.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Po@am__quote@
@@ -491,6 +718,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floorf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsusage.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-read.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write.Po@am__quote@
@@ -501,9 +730,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_ntop.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mountlist.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open-safer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe-safer.Po@am__quote@
@@ -516,13 +744,11 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-read.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-write.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasprintf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vsnprintf.Po@am__quote@
@@ -610,6 +836,7 @@
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
+	$(mkdir_p) $(distdir)/$(top_srcdir)/build-aux
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
 	list='$(DISTFILES)'; for file in $$list; do \
@@ -639,7 +866,7 @@
 check-am: all-am
 check: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS)
+all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local
 installdirs:
 install: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) install-am
@@ -694,7 +921,7 @@
 
 install-data-am:
 
-install-exec-am:
+install-exec-am: install-exec-local
 
 install-info: install-info-am
 
@@ -720,73 +947,237 @@
 
 ps-am:
 
-uninstall-am: uninstall-info-am
+uninstall-am: uninstall-info-am uninstall-local
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLIBRARIES clean-noinstLTLIBRARIES \
-	ctags distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-exec install-exec-am install-info \
-	install-info-am install-man install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
-	pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am
+.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
+	clean-generic clean-libtool clean-noinstLIBRARIES \
+	clean-noinstLTLIBRARIES ctags distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-exec-local install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	mostlyclean-local pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-info-am uninstall-local
 
 
 # We need the following in order to create <alloca.h> when the system
 # doesn't have one that works with the given compiler.
-alloca.h: alloca_.h
+alloca.h: alloca.in.h
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  cat $(srcdir)/alloca_.h; \
+	  cat $(srcdir)/alloca.in.h; \
 	} > $@-t
 	mv -f $@-t $@
 
 # We need the following in order to create <arpa/inet.h> when the system
 # doesn't have one.
 arpa/inet.h:
-	test -d arpa || mkdir arpa
+	@MKDIR_P@ arpa
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  echo '#include <sys/socket.h>'; \
 	} > $@-t
 	mv $@-t $@
 
+# Retrieve values of the variables through 'configure' followed by
+# 'make', not directly through 'configure', so that a user who
+# sets some of these variables consistently on the 'make' command
+# line gets correct results.
+#
+# One advantage of this approach, compared to the classical
+# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
+# is that it protects against the use of undefined variables.
+# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
+# defined by this module, and code using LIBDIR gives a
+# compilation error.
+#
+# Another advantage is that 'make' output is shorter.
+#
+# Listed in the same order as the GNU makefile conventions.
+# The Automake-defined pkg* macros are appended, in the order
+# listed in the Automake 1.10a+ documentation.
+configmake.h: Makefile
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  echo '#define PREFIX "$(prefix)"'; \
+	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+	  echo '#define BINDIR "$(bindir)"'; \
+	  echo '#define SBINDIR "$(sbindir)"'; \
+	  echo '#define LIBEXECDIR "$(libexecdir)"'; \
+	  echo '#define DATAROOTDIR "$(datarootdir)"'; \
+	  echo '#define DATADIR "$(datadir)"'; \
+	  echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+	  echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+	  echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+	  echo '#define INCLUDEDIR "$(includedir)"'; \
+	  echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+	  echo '#define DOCDIR "$(docdir)"'; \
+	  echo '#define INFODIR "$(infodir)"'; \
+	  echo '#define HTMLDIR "$(htmldir)"'; \
+	  echo '#define DVIDIR "$(dvidir)"'; \
+	  echo '#define PDFDIR "$(pdfdir)"'; \
+	  echo '#define PSDIR "$(psdir)"'; \
+	  echo '#define LIBDIR "$(libdir)"'; \
+	  echo '#define LISPDIR "$(lispdir)"'; \
+	  echo '#define LOCALEDIR "$(localedir)"'; \
+	  echo '#define MANDIR "$(mandir)"'; \
+	  echo '#define MANEXT "$(manext)"'; \
+	  echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+	  echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+	  echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+	  echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+	} | sed '/""/d' > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <float.h> when the system
+# doesn't have one that works with the given compiler.
+float.h: float.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+	      < $(srcdir)/float.in.h; \
+	} > $@-t
+	mv $@-t $@
+
 # We need the following in order to create <getopt.h> when the system
 # doesn't have one that works with the given compiler.
-getopt.h: getopt_.h
+getopt.h: getopt.in.h
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  cat $(srcdir)/getopt_.h; \
+	  cat $(srcdir)/getopt.in.h; \
 	} > $@-t
 	mv -f $@-t $@
 
+# We need the following in order to install a simple file in $(libdir)
+# which is shared with other installed packages. We use a list of referencing
+# packages so that "make uninstall" will remove the file if and only if it
+# is not used by another installed package.
+# On systems with glibc-2.1 or newer, the file is redundant, therefore we
+# avoid installing it.
+
+all-local: charset.alias ref-add.sed ref-del.sed
+install-exec-local: all-local
+	test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir)
+	if test -f $(charset_alias); then \
+	  sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+	  $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	  rm -f $(charset_tmp) ; \
+	else \
+	  if test $(GLIBC21) = no; then \
+	    sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	    rm -f $(charset_tmp) ; \
+	  fi ; \
+	fi
+
+uninstall-local: all-local
+	if test -f $(charset_alias); then \
+	  sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+	  if grep '^# Packages using this file: $$' $(charset_tmp) \
+	      > /dev/null; then \
+	    rm -f $(charset_alias); \
+	  else \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+	  fi; \
+	  rm -f $(charset_tmp); \
+	fi
+
+charset.alias: config.charset
+	rm -f t-$@ $@
+	$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@
+	mv t-$@ $@
+.sin.sed:
+	rm -f t-$@ $@
+	sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@
+	mv t-$@ $@
+
+# We need the following in order to create <math.h> when the system
+# doesn't have one that works with the given compiler.
+math.h: math.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_MATH_H''@|$(NEXT_MATH_H)|g' \
+	      -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
+	      -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
+	      -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
+	      -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \
+	      -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
+	      -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \
+	      -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \
+	      -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \
+	      -e 's|@''GNULIB_MATHL''@|$(GNULIB_MATHL)|g' \
+	      -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \
+	      -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \
+	      -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \
+	      -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \
+	      -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \
+	      -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \
+	      -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \
+	      -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \
+	      -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \
+	      -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \
+	      -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \
+	      -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \
+	      -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \
+	      -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \
+	      -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \
+	      -e 's|@''HAVE_DECL_SINL''@|$(HAVE_DECL_SINL)|g' \
+	      -e 's|@''HAVE_DECL_SQRTL''@|$(HAVE_DECL_SQRTL)|g' \
+	      -e 's|@''HAVE_DECL_TANL''@|$(HAVE_DECL_TANL)|g' \
+	      -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \
+	      -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
+	      -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \
+	      -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
+	      -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
+	      -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
+	      -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \
+	      -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
+	      -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \
+	      -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \
+	      -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \
+	      -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \
+	      -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \
+	      -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
+	      -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
+	      -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/math.in.h; \
+	} > $@-t
+	mv $@-t $@
+
 # We need the following in order to create <netinet/in.h> when the system
 # doesn't have one.
-netinet/in.h:
-	test -d netinet || mkdir netinet
+netinet/in.h: netinet_in.in.h
+	@MKDIR_P@ netinet
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  echo '#include <sys/socket.h>'; \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \
+	      -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \
+	      < $(srcdir)/netinet_in.in.h; \
 	} > $@-t
 	mv $@-t $@
 
 # We need the following in order to create <stdbool.h> when the system
 # doesn't have one that works.
-stdbool.h: stdbool_.h
+stdbool.h: stdbool.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool_.h; \
+	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
 	} > $@-t
 	mv $@-t $@
 
 # We need the following in order to create <stdint.h> when the system
 # doesn't have one that works with the given compiler.
-stdint.h: stdint_.h
+stdint.h: stdint.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-	      -e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \
+	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
 	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
 	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
 	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
@@ -806,49 +1197,234 @@
 	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
 	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
 	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
-	      < $(srcdir)/stdint_.h; \
+	      < $(srcdir)/stdint.in.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <stdio.h> when the system
+# doesn't have one that works with the given compiler.
+stdio.h: stdio.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \
+	      -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
+	      -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \
+	      -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \
+	      -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \
+	      -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \
+	      -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \
+	      -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \
+	      -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \
+	      -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
+	      -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
+	      -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
+	      -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \
+	      -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \
+	      -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
+	      -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
+	      -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
+	      -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
+	      -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
+	      -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
+	      -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
+	      -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
+	      -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
+	      -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
+	      -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \
+	      -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
+	      -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
+	      -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
+	      -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \
+	      -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \
+	      -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
+	      -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
+	      -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
+	      -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
+	      -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
+	      -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/stdio.in.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <stdlib.h> when the system
+# doesn't have one that works with the given compiler.
+stdlib.h: stdlib.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+	      -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
+	      -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
+	      -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
+	      -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
+	      -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
+	      -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
+	      -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
+	      -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
+	      -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
+	      -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
+	      -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+	      -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
+	      -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+	      -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
+	      -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
+	      -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
+	      -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+	      -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+	      -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/stdlib.in.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <string.h> when the system
+# doesn't have one that works with the given compiler.
+string.h: string.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
+	      -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
+	      -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
+	      -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
+	      -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
+	      -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
+	      -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
+	      -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
+	      -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
+	      -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
+	      -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
+	      -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
+	      -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
+	      -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
+	      -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
+	      -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
+	      -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
+	      -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
+	      -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
+	      -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
+	      -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
+	      -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
+	      -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
+	      -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
+	      -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
+	      -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
+	      -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
+	      -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
+	      -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
+	      -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
+	      -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+	      -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
+	      -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
+	      -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
+	      -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
+	      -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
+	      -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
+	      -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
+	      -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
+	      -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
+	      -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
+	      -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+	      -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
+	      -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
+	      -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
+	      -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+	      -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+	      -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+	      -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/string.in.h; \
 	} > $@-t
 	mv $@-t $@
 
 # We need the following in order to create <sys/socket.h> when the system
 # doesn't have one that works with the given compiler.
-sys/socket.h: socket_.h
+sys/socket.h: sys_socket.in.h
 	@MKDIR_P@ sys
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  cat $(srcdir)/socket_.h; \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \
+	      -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \
+	      -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
+	      -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
+	      < $(srcdir)/sys_socket.in.h; \
 	} > $@-t
 	mv -f $@-t $@
 
 # We need the following in order to create an empty placeholder for
 # <unistd.h> when the system doesn't have one.
-unistd.h: unistd_.h
+unistd.h: unistd.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''ABSOLUTE_UNISTD_H''@|$(ABSOLUTE_UNISTD_H)|g' \
-	      < $(srcdir)/unistd_.h; \
+	  sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+	      -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
+	      -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
+	      -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
+	      -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
+	      -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
+	      -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
+	      -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
+	      -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
+	      -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
+	      -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
+	      -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
+	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+	      -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+	      -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+	      -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+	      -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
+	      -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
+	      -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+	      -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
+	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+	      -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+	      -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
+	      -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+	      < $(srcdir)/unistd.in.h; \
 	} > $@-t
 	mv $@-t $@
 
 # We need the following in order to create <wchar.h> when the system
 # version does not work standalone.
-wchar.h: wchar_.h
+wchar.h: wchar.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''ABSOLUTE_WCHAR_H''@|$(ABSOLUTE_WCHAR_H)|g' \
-	    < $(srcdir)/wchar_.h; \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+	      -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+	      -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
+	      -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+	      -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	    < $(srcdir)/wchar.in.h; \
 	} > $@-t
 	mv $@-t $@
 
 # We need the following in order to create <wctype.h> when the system
 # doesn't have one that works with the given compiler.
-wctype.h: wctype_.h
+wctype.h: wctype.in.h
 	rm -f $@-t $@
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
 	  sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
-	      -e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \
-	      -e 's/@''HAVE_WCTYPE_CTMP_BUG''@/$(HAVE_WCTYPE_CTMP_BUG)/g' \
+	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
 	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
-	      < $(srcdir)/wctype_.h; \
+	      < $(srcdir)/wctype.in.h; \
 	} > $@-t
 	mv $@-t $@
 
@@ -857,7 +1433,8 @@
 	  if test -n "$$dir" && test -d $$dir; then \
 	    echo "rmdir $$dir"; rmdir $$dir; \
 	  fi; \
-	done
+	done; \
+	:
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff -uNr nagios-plugins-1.4.11/gl/malloc.c nagios-plugins-1.4.12/gl/malloc.c
--- nagios-plugins-1.4.11/gl/malloc.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/malloc.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,10 +1,10 @@
 /* malloc() function that is glibc compatible.
 
-   Copyright (C) 1997, 1998, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 2006, 2007 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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -16,20 +16,42 @@
    along with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-/* written by Jim Meyering */
+/* written by Jim Meyering and Bruno Haible */
 
 #include <config.h>
-#undef malloc
+/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h.  */
+#ifdef malloc
+# define NEED_MALLOC_GNU
+# undef malloc
+#endif
 
+/* Specification.  */
 #include <stdlib.h>
 
+#include <errno.h>
+
+/* Call the system's malloc below.  */
+#undef malloc
+
 /* Allocate an N-byte block of memory from the heap.
    If N is zero, allocate a 1-byte block.  */
 
 void *
 rpl_malloc (size_t n)
 {
+  void *result;
+
+#ifdef NEED_MALLOC_GNU
   if (n == 0)
     n = 1;
-  return malloc (n);
+#endif
+
+  result = malloc (n);
+
+#if !HAVE_MALLOC_POSIX
+  if (result == NULL)
+    errno = ENOMEM;
+#endif
+
+  return result;
 }
diff -uNr nagios-plugins-1.4.11/gl/math.in.h nagios-plugins-1.4.12/gl/math.in.h
--- nagios-plugins-1.4.11/gl/math.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/math.in.h	2008-02-12 13:03:58.000000000 +0100
@@ -0,0 +1,413 @@
+/* A GNU-like <math.h>.
+
+   Copyright (C) 2002-2003, 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _GL_MATH_H
+
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_MATH_H@
+
+#ifndef _GL_MATH_H
+#define _GL_MATH_H
+
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Write x as
+     x = mantissa * 2^exp
+   where
+     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
+     If x is zero: mantissa = x, exp = 0.
+     If x is infinite or NaN: mantissa = x, exp unspecified.
+   Store exp in *EXPPTR and return mantissa.  */
+#if @GNULIB_FREXP@
+# if @REPLACE_FREXP@
+#  define frexp rpl_frexp
+extern double frexp (double x, int *expptr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef frexp
+# define frexp(x,e) \
+    (GL_LINK_WARNING ("frexp is unportable - " \
+                      "use gnulib module frexp for portability"), \
+     frexp (x, e))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_ACOSL@
+extern long double acosl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef acosl
+# define acosl(x) \
+    (GL_LINK_WARNING ("acosl is unportable - " \
+                      "use gnulib module mathl for portability"), \
+     acosl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_ASINL@
+extern long double asinl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef asinl
+# define asinl(x) \
+    (GL_LINK_WARNING ("asinl is unportable - " \
+                      "use gnulib module mathl for portability"), \
+     asinl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_ATANL@
+extern long double atanl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef atanl
+# define atanl(x) \
+    (GL_LINK_WARNING ("atanl is unportable - " \
+                      "use gnulib module mathl for portability"), \
+     atanl (x))
+#endif
+
+
+#if @GNULIB_CEILF@
+# if @REPLACE_CEILF@
+#  define ceilf rpl_ceilf
+extern float ceilf (float x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef ceilf
+# define ceilf(x) \
+    (GL_LINK_WARNING ("ceilf is unportable - " \
+                      "use gnulib module ceilf for portability"), \
+     ceilf (x))
+#endif
+
+#if @GNULIB_CEILL@
+# if @REPLACE_CEILL@
+#  define ceill rpl_ceill
+extern long double ceill (long double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef ceill
+# define ceill(x) \
+    (GL_LINK_WARNING ("ceill is unportable - " \
+                      "use gnulib module ceill for portability"), \
+     ceill (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_COSL@
+extern long double cosl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef cosl
+# define cosl(x) \
+    (GL_LINK_WARNING ("cosl is unportable - " \
+                      "use gnulib module mathl for portability"), \
+     cosl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_EXPL@
+extern long double expl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef expl
+# define expl(x) \
+    (GL_LINK_WARNING ("expl is unportable - " \
+                      "use gnulib module mathl for portability"), \
+     expl (x))
+#endif
+
+
+#if @GNULIB_FLOORF@
+# if @REPLACE_FLOORF@
+#  define floorf rpl_floorf
+extern float floorf (float x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef floorf
+# define floorf(x) \
+    (GL_LINK_WARNING ("floorf is unportable - " \
+                      "use gnulib module floorf for portability"), \
+     floorf (x))
+#endif
+
+#if @GNULIB_FLOORL@
+# if @REPLACE_FLOORL@
+#  define floorl rpl_floorl
+extern long double floorl (long double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef floorl
+# define floorl(x) \
+    (GL_LINK_WARNING ("floorl is unportable - " \
+                      "use gnulib module floorl for portability"), \
+     floorl (x))
+#endif
+
+
+/* Write x as
+     x = mantissa * 2^exp
+   where
+     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
+     If x is zero: mantissa = x, exp = 0.
+     If x is infinite or NaN: mantissa = x, exp unspecified.
+   Store exp in *EXPPTR and return mantissa.  */
+#if @GNULIB_FREXPL@ && @REPLACE_FREXPL@
+# define frexpl rpl_frexpl
+#endif
+#if (@GNULIB_FREXPL@ && @REPLACE_FREXPL@) || !@HAVE_DECL_FREXPL@
+extern long double frexpl (long double x, int *expptr);
+#endif
+#if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
+# undef frexpl
+# define frexpl(x,e) \
+    (GL_LINK_WARNING ("frexpl is unportable - " \
+                      "use gnulib module frexpl for portability"), \
+     frexpl (x, e))
+#endif
+
+
+/* Return x * 2^exp.  */
+#if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
+# define ldexpl rpl_ldexpl
+#endif
+#if (@GNULIB_LDEXPL@ && @REPLACE_LDEXPL@) || !@HAVE_DECL_LDEXPL@
+extern long double ldexpl (long double x, int exp);
+#endif
+#if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
+# undef ldexpl
+# define ldexpl(x,e) \
+    (GL_LINK_WARNING ("ldexpl is unportable - " \
+                      "use gnulib module ldexpl for portability"), \
+     ldexpl (x, e))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_LOGL@
+extern long double logl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef logl
+# define logl(x) \
+    (GL_LINK_WARNING ("logl is unportable - " \
+                      "use gnulib module mathl for portability"), \
+     logl (x))
+#endif
+
+
+#if @GNULIB_ROUNDF@
+# if @REPLACE_ROUNDF@
+#  undef roundf
+#  define roundf rpl_roundf
+extern float roundf (float x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef roundf
+# define roundf(x) \
+    (GL_LINK_WARNING ("roundf is unportable - " \
+                      "use gnulib module roundf for portability"), \
+     roundf (x))
+#endif
+
+#if @GNULIB_ROUND@
+# if @REPLACE_ROUND@
+#  undef round
+#  define round rpl_round
+extern double round (double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef round
+# define round(x) \
+    (GL_LINK_WARNING ("round is unportable - " \
+                      "use gnulib module round for portability"), \
+     round (x))
+#endif
+
+#if @GNULIB_ROUNDL@
+# if @REPLACE_ROUNDL@
+#  undef roundl
+#  define roundl rpl_roundl
+extern long double roundl (long double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef roundl
+# define roundl(x) \
+    (GL_LINK_WARNING ("roundl is unportable - " \
+                      "use gnulib module roundl for portability"), \
+     roundl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_SINL@
+extern long double sinl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef sinl
+# define sinl(x) \
+    (GL_LINK_WARNING ("sinl is unportable - " \
+                      "use gnulib module mathl for portability"), \
+     sinl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_SQRTL@
+extern long double sqrtl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef sqrtl
+# define sqrtl(x) \
+    (GL_LINK_WARNING ("sqrtl is unportable - " \
+                      "use gnulib module mathl for portability"), \
+     sqrtl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_TANL@
+extern long double tanl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef tanl
+# define tanl(x) \
+    (GL_LINK_WARNING ("tanl is unportable - " \
+                      "use gnulib module mathl for portability"), \
+     tanl (x))
+#endif
+
+
+#if @GNULIB_TRUNCF@
+# if !@HAVE_DECL_TRUNCF@
+#  define truncf rpl_truncf
+extern float truncf (float x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef truncf
+# define truncf(x) \
+    (GL_LINK_WARNING ("truncf is unportable - " \
+                      "use gnulib module truncf for portability"), \
+     truncf (x))
+#endif
+
+#if @GNULIB_TRUNC@
+# if !@HAVE_DECL_TRUNC@
+#  define trunc rpl_trunc
+extern double trunc (double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef trunc
+# define trunc(x) \
+    (GL_LINK_WARNING ("trunc is unportable - " \
+                      "use gnulib module trunc for portability"), \
+     trunc (x))
+#endif
+
+#if @GNULIB_TRUNCL@
+# if !@HAVE_DECL_TRUNCL@
+#  define truncl rpl_truncl
+extern long double truncl (long double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef truncl
+# define truncl(x) \
+    (GL_LINK_WARNING ("truncl is unportable - " \
+                      "use gnulib module truncl for portability"), \
+     truncl (x))
+#endif
+
+
+#if @GNULIB_ISFINITE@
+# if @REPLACE_ISFINITE@
+extern int gl_isfinitef (float x);
+extern int gl_isfinited (double x);
+extern int gl_isfinitel (long double x);
+#  undef isfinite
+#  define isfinite(x) \
+   (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
+    sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
+    gl_isfinitef (x))
+# endif
+#elif defined GNULIB_POSIXCHECK
+  /* How to override a macro?  */
+#endif
+
+
+#if @GNULIB_SIGNBIT@
+# if @REPLACE_SIGNBIT_USING_GCC@
+#  undef signbit
+   /* GCC 4.0 and newer provides three built-ins for signbit.  */
+#  define signbit(x) \
+   (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
+    sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
+    __builtin_signbitf (x))
+# endif
+# if @REPLACE_SIGNBIT@
+#  undef signbit
+extern int gl_signbitf (float arg);
+extern int gl_signbitd (double arg);
+extern int gl_signbitl (long double arg);
+#  if __GNUC__ >= 2 && !__STRICT_ANSI__
+#   if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT
+#    define gl_signbitf(arg) \
+       ({ union { float _value;						\
+                  unsigned int _word[(sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \
+                } _m;							\
+          _m._value = (arg);						\
+          (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1;		\
+        })
+#   endif
+#   if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT
+#    define gl_signbitd(arg) \
+       ({ union { double _value;						\
+                  unsigned int _word[(sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \
+                } _m;							\
+          _m._value = (arg);						\
+          (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1;		\
+        })
+#   endif
+#   if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT
+#    define gl_signbitl(arg) \
+       ({ union { long double _value;					\
+                  unsigned int _word[(sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \
+                } _m;							\
+          _m._value = (arg);						\
+          (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;		\
+        })
+#   endif
+#  endif
+#  define signbit(x) \
+   (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
+    sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
+    gl_signbitf (x))
+# endif
+#elif defined GNULIB_POSIXCHECK
+  /* How to override a macro?  */
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_MATH_H */
+#endif /* _GL_MATH_H */
diff -uNr nagios-plugins-1.4.11/gl/mbchar.c nagios-plugins-1.4.12/gl/mbchar.c
--- nagios-plugins-1.4.11/gl/mbchar.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/mbchar.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,36 +0,0 @@
-/* Copyright (C) 2001, 2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 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.  */
-
-
-#include <config.h>
-
-#include <limits.h>
-
-#include "mbchar.h"
-
-#if IS_BASIC_ASCII
-
-/* Bit table of characters in the ISO C "basic character set".  */
-const unsigned int is_basic_table [UCHAR_MAX / 32 + 1] =
-{
-  0x00001a00,		/* '\t' '\v' '\f' */
-  0xffffffef,		/* ' '...'#' '%'...'?' */
-  0xfffffffe,		/* 'A'...'Z' '[' '\\' ']' '^' '_' */
-  0x7ffffffe		/* 'a'...'z' '{' '|' '}' '~' */
-  /* The remaining bits are 0.  */
-};
-
-#endif /* IS_BASIC_ASCII */
diff -uNr nagios-plugins-1.4.11/gl/mbchar.h nagios-plugins-1.4.12/gl/mbchar.h
--- nagios-plugins-1.4.11/gl/mbchar.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/mbchar.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,353 +0,0 @@
-/* Multibyte character data type.
-   Copyright (C) 2001, 2005-2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 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.  */
-
-/* Written by Bruno Haible <bruno@clisp.org>.  */
-
-/* A multibyte character is a short subsequence of a char* string,
-   representing a single wide character.
-
-   We use multibyte characters instead of wide characters because of
-   the following goals:
-   1) correct multibyte handling, i.e. operate according to the LC_CTYPE
-      locale,
-   2) ease of maintenance, i.e. the maintainer needs not know all details
-      of the ISO C 99 standard,
-   3) don't fail grossly if the input is not in the encoding set by the
-      locale, because often different encodings are in use in the same
-      countries (ISO-8859-1/UTF-8, EUC-JP/Shift_JIS, ...),
-   4) fast in the case of ASCII characters,
-   5) portability, i.e. don't make unportable assumptions about wchar_t.
-
-   Multibyte characters are only accessed through the mb* macros.
-
-   mb_ptr (mbc)
-     return a pointer to the beginning of the multibyte sequence.
-
-   mb_len (mbc)
-     returns the number of bytes occupied by the multibyte sequence.
-     Always > 0.
-
-   mb_iseq (mbc, sc)
-     returns true if mbc is the standard ASCII character sc.
-
-   mb_isnul (mbc)
-     returns true if mbc is the nul character.
-
-   mb_cmp (mbc1, mbc2)
-     returns a positive, zero, or negative value depending on whether mbc1
-     sorts after, same or before mbc2.
-
-   mb_casecmp (mbc1, mbc2)
-     returns a positive, zero, or negative value depending on whether mbc1
-     sorts after, same or before mbc2, modulo upper/lowercase conversion.
-
-   mb_equal (mbc1, mbc2)
-     returns true if mbc1 and mbc2 are equal.
-
-   mb_caseequal (mbc1, mbc2)
-     returns true if mbc1 and mbc2 are equal modulo upper/lowercase conversion.
-
-   mb_isalnum (mbc)
-     returns true if mbc is alphanumeric.
-
-   mb_isalpha (mbc)
-     returns true if mbc is alphabetic.
-
-   mb_isascii(mbc)
-     returns true if mbc is plain ASCII.
-
-   mb_isblank (mbc)
-     returns true if mbc is a blank.
-
-   mb_iscntrl (mbc)
-     returns true if mbc is a control character.
-
-   mb_isdigit (mbc)
-     returns true if mbc is a decimal digit.
-
-   mb_isgraph (mbc)
-     returns true if mbc is a graphic character.
-
-   mb_islower (mbc)
-     returns true if mbc is lowercase.
-
-   mb_isprint (mbc)
-     returns true if mbc is a printable character.
-
-   mb_ispunct (mbc)
-     returns true if mbc is a punctuation character.
-
-   mb_isspace (mbc)
-     returns true if mbc is a space character.
-
-   mb_isupper (mbc)
-     returns true if mbc is uppercase.
-
-   mb_isxdigit (mbc)
-     returns true if mbc is a hexadecimal digit.
-
-   mb_width (mbc)
-     returns the number of columns on the output device occupied by mbc.
-     Always >= 0.
-
-   mb_putc (mbc, stream)
-     outputs mbc on stream, a byte oriented FILE stream opened for output.
-
-   mb_setascii (&mbc, sc)
-     assigns the standard ASCII character sc to mbc.
-
-   mb_copy (&destmbc, &srcmbc)
-     copies srcmbc to destmbc.
-
-   Here are the function prototypes of the macros.
-
-   extern const char *	mb_ptr (const mbchar_t mbc);
-   extern size_t	mb_len (const mbchar_t mbc);
-   extern bool		mb_iseq (const mbchar_t mbc, char sc);
-   extern bool		mb_isnul (const mbchar_t mbc);
-   extern int		mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2);
-   extern int		mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2);
-   extern bool		mb_equal (const mbchar_t mbc1, const mbchar_t mbc2);
-   extern bool		mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2);
-   extern bool		mb_isalnum (const mbchar_t mbc);
-   extern bool		mb_isalpha (const mbchar_t mbc);
-   extern bool		mb_isascii (const mbchar_t mbc);
-   extern bool		mb_isblank (const mbchar_t mbc);
-   extern bool		mb_iscntrl (const mbchar_t mbc);
-   extern bool		mb_isdigit (const mbchar_t mbc);
-   extern bool		mb_isgraph (const mbchar_t mbc);
-   extern bool		mb_islower (const mbchar_t mbc);
-   extern bool		mb_isprint (const mbchar_t mbc);
-   extern bool		mb_ispunct (const mbchar_t mbc);
-   extern bool		mb_isspace (const mbchar_t mbc);
-   extern bool		mb_isupper (const mbchar_t mbc);
-   extern bool		mb_isxdigit (const mbchar_t mbc);
-   extern int		mb_width (const mbchar_t mbc);
-   extern void		mb_putc (const mbchar_t mbc, FILE *stream);
-   extern void          mb_setascii (mbchar_t *new, char sc);
-   extern void		mb_copy (mbchar_t *new, const mbchar_t *old);
- */
-
-#ifndef _MBCHAR_H
-#define _MBCHAR_H 1
-
-#include <stdbool.h>
-#include <string.h>
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
-   <wchar.h>.  */
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-#include <wctype.h>
-
-#include "wcwidth.h"
-
-#define MBCHAR_BUF_SIZE 24
-
-struct mbchar
-{
-  const char *ptr;	/* pointer to current character */
-  size_t bytes;		/* number of bytes of current character, > 0 */
-  bool wc_valid;	/* true if wc is a valid wide character */
-  wchar_t wc;		/* if wc_valid: the current character */
-  char buf[MBCHAR_BUF_SIZE]; /* room for the bytes, used for file input only */
-};
-
-/* EOF (not a real character) is represented with bytes = 0 and
-   wc_valid = false.  */
-
-typedef struct mbchar mbchar_t;
-
-/* Access the current character.  */
-#define mb_ptr(mbc) ((mbc).ptr)
-#define mb_len(mbc) ((mbc).bytes)
-
-/* Comparison of characters.  */
-#define mb_iseq(mbc, sc) ((mbc).wc_valid && (mbc).wc == (sc))
-#define mb_isnul(mbc) ((mbc).wc_valid && (mbc).wc == 0)
-#define mb_cmp(mbc1, mbc2) \
-  ((mbc1).wc_valid							\
-   ? ((mbc2).wc_valid							\
-      ? (int) (mbc1).wc - (int) (mbc2).wc				\
-      : -1)								\
-   : ((mbc2).wc_valid							\
-      ? 1								\
-      : (mbc1).bytes == (mbc2).bytes					\
-        ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes)			\
-        : (mbc1).bytes < (mbc2).bytes					\
-          ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
-          : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
-#define mb_casecmp(mbc1, mbc2) \
-  ((mbc1).wc_valid							\
-   ? ((mbc2).wc_valid							\
-      ? (int) towlower ((mbc1).wc) - (int) towlower ((mbc2).wc)		\
-      : -1)								\
-   : ((mbc2).wc_valid							\
-      ? 1								\
-      : (mbc1).bytes == (mbc2).bytes					\
-        ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes)			\
-        : (mbc1).bytes < (mbc2).bytes					\
-          ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
-          : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
-#define mb_equal(mbc1, mbc2) \
-  ((mbc1).wc_valid && (mbc2).wc_valid					\
-   ? (mbc1).wc == (mbc2).wc						\
-   : (mbc1).bytes == (mbc2).bytes					\
-     && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
-#define mb_caseequal(mbc1, mbc2) \
-  ((mbc1).wc_valid && (mbc2).wc_valid					\
-   ? towlower ((mbc1).wc) == towlower ((mbc2).wc)			\
-   : (mbc1).bytes == (mbc2).bytes					\
-     && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
-
-/* <ctype.h>, <wctype.h> classification.  */
-#define mb_isascii(mbc) \
-  ((mbc).wc_valid && (mbc).wc >= 0 && (mbc).wc <= 127)
-#define mb_isalnum(mbc) ((mbc).wc_valid && iswalnum ((mbc).wc))
-#define mb_isalpha(mbc) ((mbc).wc_valid && iswalpha ((mbc).wc))
-#define mb_isblank(mbc) ((mbc).wc_valid && iswblank ((mbc).wc))
-#define mb_iscntrl(mbc) ((mbc).wc_valid && iswcntrl ((mbc).wc))
-#define mb_isdigit(mbc) ((mbc).wc_valid && iswdigit ((mbc).wc))
-#define mb_isgraph(mbc) ((mbc).wc_valid && iswgraph ((mbc).wc))
-#define mb_islower(mbc) ((mbc).wc_valid && iswlower ((mbc).wc))
-#define mb_isprint(mbc) ((mbc).wc_valid && iswprint ((mbc).wc))
-#define mb_ispunct(mbc) ((mbc).wc_valid && iswpunct ((mbc).wc))
-#define mb_isspace(mbc) ((mbc).wc_valid && iswspace ((mbc).wc))
-#define mb_isupper(mbc) ((mbc).wc_valid && iswupper ((mbc).wc))
-#define mb_isxdigit(mbc) ((mbc).wc_valid && iswxdigit ((mbc).wc))
-
-/* Extra <wchar.h> function.  */
-
-/* Unprintable characters appear as a small box of width 1.  */
-#define MB_UNPRINTABLE_WIDTH 1
-
-static inline int
-mb_width_aux (wint_t wc)
-{
-  int w = wcwidth (wc);
-  /* For unprintable characters, arbitrarily return 0 for control characters
-     and MB_UNPRINTABLE_WIDTH otherwise.  */
-  return (w >= 0 ? w : iswcntrl (wc) ? 0 : MB_UNPRINTABLE_WIDTH);
-}
-
-#define mb_width(mbc) \
-  ((mbc).wc_valid ? mb_width_aux ((mbc).wc) : MB_UNPRINTABLE_WIDTH)
-
-/* Output.  */
-#define mb_putc(mbc, stream)  fwrite ((mbc).ptr, 1, (mbc).bytes, (stream))
-
-/* Assignment.  */
-#define mb_setascii(mbc, sc) \
-  ((mbc)->ptr = (mbc)->buf, (mbc)->bytes = 1, (mbc)->wc_valid = 1, \
-   (mbc)->wc = (mbc)->buf[0] = (sc))
-
-/* Copying a character.  */
-static inline void
-mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc)
-{
-  if (old_mbc->ptr == &old_mbc->buf[0])
-    {
-      memcpy (&new_mbc->buf[0], &old_mbc->buf[0], old_mbc->bytes);
-      new_mbc->ptr = &new_mbc->buf[0];
-    }
-  else
-    new_mbc->ptr = old_mbc->ptr;
-  new_mbc->bytes = old_mbc->bytes;
-  if ((new_mbc->wc_valid = old_mbc->wc_valid))
-    new_mbc->wc = old_mbc->wc;
-}
-
-
-/* is_basic(c) tests whether the single-byte character c is in the
-   ISO C "basic character set".
-   This is a convenience function, and is in this file only to share code
-   between mbiter_multi.h and mbfile_multi.h.  */
-#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
-    && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
-    && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
-    && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
-    && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
-    && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
-    && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
-    && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
-    && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
-    && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
-    && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
-    && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
-    && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
-    && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
-    && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
-    && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
-    && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
-    && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
-    && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
-    && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
-    && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
-    && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
-    && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
-/* The character set is ISO-646, not EBCDIC. */
-# define IS_BASIC_ASCII 1
-
-extern const unsigned int is_basic_table[];
-
-static inline bool
-is_basic (char c)
-{
-  return (is_basic_table [(unsigned char) c >> 5] >> ((unsigned char) c & 31))
-	 & 1;
-}
-
-#else
-
-static inline bool
-is_basic (char c)
-{
-  switch (c)
-    {
-    case '\t': case '\v': case '\f':
-    case ' ': case '!': case '"': case '#': case '%':
-    case '&': case '\'': case '(': case ')': case '*':
-    case '+': case ',': case '-': case '.': case '/':
-    case '0': case '1': case '2': case '3': case '4':
-    case '5': case '6': case '7': case '8': case '9':
-    case ':': case ';': case '<': case '=': case '>':
-    case '?':
-    case 'A': case 'B': case 'C': case 'D': case 'E':
-    case 'F': case 'G': case 'H': case 'I': case 'J':
-    case 'K': case 'L': case 'M': case 'N': case 'O':
-    case 'P': case 'Q': case 'R': case 'S': case 'T':
-    case 'U': case 'V': case 'W': case 'X': case 'Y':
-    case 'Z':
-    case '[': case '\\': case ']': case '^': case '_':
-    case 'a': case 'b': case 'c': case 'd': case 'e':
-    case 'f': case 'g': case 'h': case 'i': case 'j':
-    case 'k': case 'l': case 'm': case 'n': case 'o':
-    case 'p': case 'q': case 'r': case 's': case 't':
-    case 'u': case 'v': case 'w': case 'x': case 'y':
-    case 'z': case '{': case '|': case '}': case '~':
-      return 1;
-    default:
-      return 0;
-    }
-}
-
-#endif
-
-#endif /* _MBCHAR_H */
diff -uNr nagios-plugins-1.4.11/gl/mbuiter.h nagios-plugins-1.4.12/gl/mbuiter.h
--- nagios-plugins-1.4.11/gl/mbuiter.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/mbuiter.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,203 +0,0 @@
-/* Iterating through multibyte strings: macros for multi-byte encodings.
-   Copyright (C) 2001, 2005 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.  */
-
-/* Written by Bruno Haible <bruno@clisp.org>.  */
-
-/* The macros in this file implement forward iteration through a
-   multi-byte string, without knowing its length a-priori.
-
-   With these macros, an iteration loop that looks like
-
-      char *iter;
-      for (iter = buf; *iter != '\0'; iter++)
-        {
-          do_something (*iter);
-        }
-
-   becomes
-
-      mbui_iterator_t iter;
-      for (mbui_init (iter, buf); mbui_avail (iter); mbui_advance (iter))
-        {
-          do_something (mbui_cur_ptr (iter), mb_len (mbui_cur (iter)));
-        }
-
-   The benefit of these macros over plain use of mbrtowc is:
-   - Handling of invalid multibyte sequences is possible without
-     making the code more complicated, while still preserving the
-     invalid multibyte sequences.
-
-   Compared to mbiter.h, the macros here don't need to know the string's
-   length a-priori.  The downside is that at each step, the look-ahead
-   that guards against overrunning the terminating '\0' is more expensive.
-   The mbui_* macros are therefore suitable when there is a high probability
-   that only the first few multibyte characters need to be inspected.
-   Whereas the mbi_* macros are better if usually the iteration runs
-   through the entire string.
-
-   mbui_iterator_t
-     is a type usable for variable declarations.
-
-   mbui_init (iter, startptr)
-     initializes the iterator, starting at startptr.
-
-   mbui_avail (iter)
-     returns true if there are more multibyte chracters available before
-     the end of string is reached. In this case, mbui_cur (iter) is
-     initialized to the next multibyte chracter.
-
-   mbui_advance (iter)
-     advances the iterator by one multibyte character.
-
-   mbui_cur (iter)
-     returns the current multibyte character, of type mbchar_t.  All the
-     macros defined in mbchar.h can be used on it.
-
-   mbui_cur_ptr (iter)
-     return a pointer to the beginning of the current multibyte character.
-
-   mbui_reloc (iter, ptrdiff)
-     relocates iterator when the string is moved by ptrdiff bytes.
-
-   Here are the function prototypes of the macros.
-
-   extern void		mbui_init (mbui_iterator_t iter, const char *startptr);
-   extern bool		mbui_avail (mbui_iterator_t iter);
-   extern void		mbui_advance (mbui_iterator_t iter);
-   extern mbchar_t	mbui_cur (mbui_iterator_t iter);
-   extern const char *	mbui_cur_ptr (mbui_iterator_t iter);
-   extern void		mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff);
- */
-
-#ifndef _MBUITER_H
-#define _MBUITER_H 1
-
-#include <assert.h>
-#include <stdbool.h>
-#include <stdlib.h>
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
-   <wchar.h>.  */
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-
-#include "mbchar.h"
-#include "strnlen1.h"
-
-struct mbuiter_multi
-{
-  bool in_shift;	/* true if next byte may not be interpreted as ASCII */
-  mbstate_t state;	/* if in_shift: current shift state */
-  bool next_done;	/* true if mbui_avail has already filled the following */
-  struct mbchar cur;	/* the current character:
-	const char *cur.ptr		pointer to current character
-	The following are only valid after mbui_avail.
-	size_t cur.bytes		number of bytes of current character
-	bool cur.wc_valid		true if wc is a valid wide character
-	wchar_t cur.wc			if wc_valid: the current character
-	*/
-};
-
-static inline void
-mbuiter_multi_next (struct mbuiter_multi *iter)
-{
-  if (iter->next_done)
-    return;
-  if (iter->in_shift)
-    goto with_shift;
-  /* Handle most ASCII characters quickly, without calling mbrtowc().  */
-  if (is_basic (*iter->cur.ptr))
-    {
-      /* These characters are part of the basic character set.  ISO C 99
-	 guarantees that their wide character code is identical to their
-	 char code.  */
-      iter->cur.bytes = 1;
-      iter->cur.wc = *iter->cur.ptr;
-      iter->cur.wc_valid = true;
-    }
-  else
-    {
-      assert (mbsinit (&iter->state));
-      iter->in_shift = true;
-    with_shift:
-      iter->cur.bytes = mbrtowc (&iter->cur.wc, iter->cur.ptr,
-				 strnlen1 (iter->cur.ptr, MB_CUR_MAX),
-				 &iter->state);
-      if (iter->cur.bytes == (size_t) -1)
-	{
-	  /* An invalid multibyte sequence was encountered.  */
-	  iter->cur.bytes = 1;
-	  iter->cur.wc_valid = false;
-	  /* Whether to set iter->in_shift = false and reset iter->state
-	     or not is not very important; the string is bogus anyway.  */
-	}
-      else if (iter->cur.bytes == (size_t) -2)
-	{
-	  /* An incomplete multibyte character at the end.  */
-	  iter->cur.bytes = strlen (iter->cur.ptr);
-	  iter->cur.wc_valid = false;
-	  /* Whether to set iter->in_shift = false and reset iter->state
-	     or not is not important; the string end is reached anyway.  */
-	}
-      else
-	{
-	  if (iter->cur.bytes == 0)
-	    {
-	      /* A null wide character was encountered.  */
-	      iter->cur.bytes = 1;
-	      assert (*iter->cur.ptr == '\0');
-	      assert (iter->cur.wc == 0);
-	    }
-	  iter->cur.wc_valid = true;
-
-	  /* When in the initial state, we can go back treating ASCII
-	     characters more quickly.  */
-	  if (mbsinit (&iter->state))
-	    iter->in_shift = false;
-	}
-    }
-  iter->next_done = true;
-}
-
-static inline void
-mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff)
-{
-  iter->cur.ptr += ptrdiff;
-}
-
-/* Iteration macros.  */
-typedef struct mbuiter_multi mbui_iterator_t;
-#define mbui_init(iter, startptr) \
-  ((iter).cur.ptr = (startptr), \
-   (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \
-   (iter).next_done = false)
-#define mbui_avail(iter) \
-  (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur))
-#define mbui_advance(iter) \
-  ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false)
-
-/* Access to the current character.  */
-#define mbui_cur(iter) (iter).cur
-#define mbui_cur_ptr(iter) (iter).cur.ptr
-
-/* Relocation.  */
-#define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff)
-
-#endif /* _MBUITER_H */
diff -uNr nagios-plugins-1.4.11/gl/memchr.c nagios-plugins-1.4.12/gl/memchr.c
--- nagios-plugins-1.4.11/gl/memchr.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/memchr.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,201 +0,0 @@
-/* Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2006 Free
-   Software Foundation, Inc.
-
-   Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
-   with help from Dan Sahlin (dan@sics.se) and
-   commentary by Jim Blandy (jimb@ai.mit.edu);
-   adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
-   and implemented by Roland McGrath (roland@ai.mit.edu).
-
-NOTE: The canonical source of this file is maintained with the GNU C Library.
-Bugs can be reported to bug-glibc@prep.ai.mit.edu.
-
-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _LIBC
-# include <config.h>
-#endif
-
-#include <string.h>
-
-#include <stddef.h>
-
-#if defined _LIBC
-# include <memcopy.h>
-#else
-# define reg_char char
-#endif
-
-#include <limits.h>
-
-#if HAVE_BP_SYM_H || defined _LIBC
-# include <bp-sym.h>
-#else
-# define BP_SYM(sym) sym
-#endif
-
-#undef memchr
-#undef __memchr
-
-/* Search no more than N bytes of S for C.  */
-void *
-__memchr (void const *s, int c_in, size_t n)
-{
-  const unsigned char *char_ptr;
-  const unsigned long int *longword_ptr;
-  unsigned long int longword, magic_bits, charmask;
-  unsigned reg_char c;
-  int i;
-
-  c = (unsigned char) c_in;
-
-  /* Handle the first few characters by reading one character at a time.
-     Do this until CHAR_PTR is aligned on a longword boundary.  */
-  for (char_ptr = (const unsigned char *) s;
-       n > 0 && (size_t) char_ptr % sizeof longword != 0;
-       --n, ++char_ptr)
-    if (*char_ptr == c)
-      return (void *) char_ptr;
-
-  /* All these elucidatory comments refer to 4-byte longwords,
-     but the theory applies equally well to any size longwords.  */
-
-  longword_ptr = (const unsigned long int *) char_ptr;
-
-  /* Bits 31, 24, 16, and 8 of this number are zero.  Call these bits
-     the "holes."  Note that there is a hole just to the left of
-     each byte, with an extra at the end:
-
-     bits:  01111110 11111110 11111110 11111111
-     bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
-
-     The 1-bits make sure that carries propagate to the next 0-bit.
-     The 0-bits provide holes for carries to fall into.  */
-
-  /* Set MAGIC_BITS to be this pattern of 1 and 0 bits.
-     Set CHARMASK to be a longword, each of whose bytes is C.  */
-
-  magic_bits = 0xfefefefe;
-  charmask = c | (c << 8);
-  charmask |= charmask << 16;
-#if 0xffffffffU < ULONG_MAX
-  magic_bits |= magic_bits << 32;
-  charmask |= charmask << 32;
-  if (8 < sizeof longword)
-    for (i = 64; i < sizeof longword * 8; i *= 2)
-      {
-	magic_bits |= magic_bits << i;
-	charmask |= charmask << i;
-      }
-#endif
-  magic_bits = (ULONG_MAX >> 1) & (magic_bits | 1);
-
-  /* Instead of the traditional loop which tests each character,
-     we will test a longword at a time.  The tricky part is testing
-     if *any of the four* bytes in the longword in question are zero.  */
-  while (n >= sizeof longword)
-    {
-      /* We tentatively exit the loop if adding MAGIC_BITS to
-	 LONGWORD fails to change any of the hole bits of LONGWORD.
-
-	 1) Is this safe?  Will it catch all the zero bytes?
-	 Suppose there is a byte with all zeros.  Any carry bits
-	 propagating from its left will fall into the hole at its
-	 least significant bit and stop.  Since there will be no
-	 carry from its most significant bit, the LSB of the
-	 byte to the left will be unchanged, and the zero will be
-	 detected.
-
-	 2) Is this worthwhile?  Will it ignore everything except
-	 zero bytes?  Suppose every byte of LONGWORD has a bit set
-	 somewhere.  There will be a carry into bit 8.  If bit 8
-	 is set, this will carry into bit 16.  If bit 8 is clear,
-	 one of bits 9-15 must be set, so there will be a carry
-	 into bit 16.  Similarly, there will be a carry into bit
-	 24.  If one of bits 24-30 is set, there will be a carry
-	 into bit 31, so all of the hole bits will be changed.
-
-	 The one misfire occurs when bits 24-30 are clear and bit
-	 31 is set; in this case, the hole at bit 31 is not
-	 changed.  If we had access to the processor carry flag,
-	 we could close this loophole by putting the fourth hole
-	 at bit 32!
-
-	 So it ignores everything except 128's, when they're aligned
-	 properly.
-
-	 3) But wait!  Aren't we looking for C, not zero?
-	 Good point.  So what we do is XOR LONGWORD with a longword,
-	 each of whose bytes is C.  This turns each byte that is C
-	 into a zero.  */
-
-      longword = *longword_ptr++ ^ charmask;
-
-      /* Add MAGIC_BITS to LONGWORD.  */
-      if ((((longword + magic_bits)
-
-	    /* Set those bits that were unchanged by the addition.  */
-	    ^ ~longword)
-
-	   /* Look at only the hole bits.  If any of the hole bits
-	      are unchanged, most likely one of the bytes was a
-	      zero.  */
-	   & ~magic_bits) != 0)
-	{
-	  /* Which of the bytes was C?  If none of them were, it was
-	     a misfire; continue the search.  */
-
-	  const unsigned char *cp = (const unsigned char *) (longword_ptr - 1);
-
-	  if (cp[0] == c)
-	    return (void *) cp;
-	  if (cp[1] == c)
-	    return (void *) &cp[1];
-	  if (cp[2] == c)
-	    return (void *) &cp[2];
-	  if (cp[3] == c)
-	    return (void *) &cp[3];
-	  if (4 < sizeof longword && cp[4] == c)
-	    return (void *) &cp[4];
-	  if (5 < sizeof longword && cp[5] == c)
-	    return (void *) &cp[5];
-	  if (6 < sizeof longword && cp[6] == c)
-	    return (void *) &cp[6];
-	  if (7 < sizeof longword && cp[7] == c)
-	    return (void *) &cp[7];
-	  if (8 < sizeof longword)
-	    for (i = 8; i < sizeof longword; i++)
-	      if (cp[i] == c)
-		return (void *) &cp[i];
-	}
-
-      n -= sizeof longword;
-    }
-
-  char_ptr = (const unsigned char *) longword_ptr;
-
-  while (n-- > 0)
-    {
-      if (*char_ptr == c)
-	return (void *) char_ptr;
-      else
-	++char_ptr;
-    }
-
-  return 0;
-}
-#ifdef weak_alias
-weak_alias (__memchr, BP_SYM (memchr))
-#endif
diff -uNr nagios-plugins-1.4.11/gl/minmax.h nagios-plugins-1.4.12/gl/minmax.h
--- nagios-plugins-1.4.11/gl/minmax.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/minmax.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,60 +0,0 @@
-/* MIN, MAX macros.
-   Copyright (C) 1995, 1998, 2001, 2003, 2005 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _MINMAX_H
-#define _MINMAX_H
-
-/* Note: MIN, MAX are also defined in <sys/param.h> on some systems
-   (glibc, IRIX, HP-UX, OSF/1).  Therefore you might get warnings about
-   MIN, MAX macro redefinitions on some systems; the workaround is to
-   #include this file as the last one among the #include list.  */
-
-/* Before we define the following symbols we get the <limits.h> file
-   since otherwise we get redefinitions on some systems if <limits.h> is
-   included after this file.  Likewise for <sys/param.h>.
-   If more than one of these system headers define MIN and MAX, pick just
-   one of the headers (because the definitions most likely are the same).  */
-#if HAVE_MINMAX_IN_LIMITS_H
-# include <limits.h>
-#elif HAVE_MINMAX_IN_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-/* Note: MIN and MAX should be used with two arguments of the
-   same type.  They might not return the minimum and maximum of their two
-   arguments, if the arguments have different types or have unusual
-   floating-point values.  For example, on a typical host with 32-bit 'int',
-   64-bit 'long long', and 64-bit IEEE 754 'double' types:
-
-     MAX (-1, 2147483648) returns 4294967295.
-     MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0.
-     MAX (NaN, 0.0) returns 0.0.
-     MAX (+0.0, -0.0) returns -0.0.
-
-   and in each case the answer is in some sense bogus.  */
-
-/* MAX(a,b) returns the maximum of A and B.  */
-#ifndef MAX
-# define MAX(a,b) ((a) > (b) ? (a) : (b))
-#endif
-
-/* MIN(a,b) returns the minimum of A and B.  */
-#ifndef MIN
-# define MIN(a,b) ((a) < (b) ? (a) : (b))
-#endif
-
-#endif /* _MINMAX_H */
diff -uNr nagios-plugins-1.4.11/gl/mountlist.c nagios-plugins-1.4.12/gl/mountlist.c
--- nagios-plugins-1.4.11/gl/mountlist.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/mountlist.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,12 +1,12 @@
 /* mountlist.c -- return a list of mounted file systems
 
    Copyright (C) 1991, 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-   2004, 2005, 2006 Free Software Foundation, Inc.
+   2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
@@ -28,10 +27,6 @@
 
 #include "xalloc.h"
 
-#ifndef strstr
-char *strstr ();
-#endif
-
 #include <errno.h>
 
 #include <fcntl.h>
diff -uNr nagios-plugins-1.4.11/gl/mountlist.h nagios-plugins-1.4.12/gl/mountlist.h
--- nagios-plugins-1.4.11/gl/mountlist.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/mountlist.h	2008-02-12 12:07:18.000000000 +0100
@@ -3,10 +3,10 @@
    Copyright (C) 1991, 1992, 1998, 2000, 2001, 2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef MOUNTLIST_H_
 # define MOUNTLIST_H_
diff -uNr nagios-plugins-1.4.11/gl/netinet_in.in.h nagios-plugins-1.4.12/gl/netinet_in.in.h
--- nagios-plugins-1.4.11/gl/netinet_in.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/netinet_in.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,43 @@
+/* Substitute for <netinet/in.h>.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GL_NETINET_IN_H
+
+#if @HAVE_NETINET_IN_H@
+
+/* On many platforms, <netinet/in.h> assumes prior inclusion of
+   <sys/types.h>.  */
+# include <sys/types.h>
+
+/* The include_next requires a split double-inclusion guard.  */
+# @INCLUDE_NEXT@ @NEXT_NETINET_IN_H@
+
+#endif
+
+#ifndef _GL_NETINET_IN_H
+#define _GL_NETINET_IN_H
+
+#if !@HAVE_NETINET_IN_H@
+
+/* A platform that lacks <netinet/in.h>.  */
+
+# include <sys/socket.h>
+
+#endif
+
+#endif /* _GL_NETINET_IN_H */
+#endif /* _GL_NETINET_IN_H */
diff -uNr nagios-plugins-1.4.11/gl/open-safer.c nagios-plugins-1.4.12/gl/open-safer.c
--- nagios-plugins-1.4.11/gl/open-safer.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/open-safer.c	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff -uNr nagios-plugins-1.4.11/gl/pipe-safer.c nagios-plugins-1.4.12/gl/pipe-safer.c
--- nagios-plugins-1.4.11/gl/pipe-safer.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/pipe-safer.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,10 +1,10 @@
 /* Invoke pipe, but avoid some glitches.
    Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -12,8 +12,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Jim Meyering.  */
 
diff -uNr nagios-plugins-1.4.11/gl/printf-args.c nagios-plugins-1.4.12/gl/printf-args.c
--- nagios-plugins-1.4.11/gl/printf-args.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/printf-args.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,9 +1,9 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2005-2006 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2003, 2005-2007 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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -15,16 +15,25 @@
    with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-#include <config.h>
+/* This file can be parametrized with the following macros:
+     ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.
+     PRINTF_FETCHARGS   Name of the function to be defined.
+     STATIC             Set to 'static' to declare the function static.  */
+
+#ifndef PRINTF_FETCHARGS
+# include <config.h>
+#endif
 
 /* Specification.  */
-#include "printf-args.h"
+#ifndef PRINTF_FETCHARGS
+# include "printf-args.h"
+#endif
 
 #ifdef STATIC
 STATIC
 #endif
 int
-printf_fetchargs (va_list args, arguments *a)
+PRINTF_FETCHARGS (va_list args, arguments *a)
 {
   size_t i;
   argument *ap;
@@ -56,7 +65,7 @@
       case TYPE_ULONGINT:
 	ap->a.a_ulongint = va_arg (args, unsigned long int);
 	break;
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
       case TYPE_LONGLONGINT:
 	ap->a.a_longlongint = va_arg (args, long long int);
 	break;
@@ -67,15 +76,13 @@
       case TYPE_DOUBLE:
 	ap->a.a_double = va_arg (args, double);
 	break;
-#ifdef HAVE_LONG_DOUBLE
       case TYPE_LONGDOUBLE:
 	ap->a.a_longdouble = va_arg (args, long double);
 	break;
-#endif
       case TYPE_CHAR:
 	ap->a.a_char = va_arg (args, int);
 	break;
-#ifdef HAVE_WINT_T
+#if HAVE_WINT_T
       case TYPE_WIDE_CHAR:
 	/* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by
 	   default argument promotions", this is not the case in mingw32,
@@ -94,7 +101,7 @@
 	if (ap->a.a_string == NULL)
 	  ap->a.a_string = "(NULL)";
 	break;
-#ifdef HAVE_WCHAR_T
+#if HAVE_WCHAR_T
       case TYPE_WIDE_STRING:
 	ap->a.a_wide_string = va_arg (args, const wchar_t *);
 	/* A null pointer is an invalid argument for "%ls", but in practice
@@ -128,11 +135,50 @@
       case TYPE_COUNT_LONGINT_POINTER:
 	ap->a.a_count_longint_pointer = va_arg (args, long int *);
 	break;
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
       case TYPE_COUNT_LONGLONGINT_POINTER:
 	ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
 	break;
 #endif
+#if ENABLE_UNISTDIO
+      /* The unistdio extensions.  */
+      case TYPE_U8_STRING:
+	ap->a.a_u8_string = va_arg (args, const uint8_t *);
+	/* A null pointer is an invalid argument for "%U", but in practice
+	   it occurs quite frequently in printf statements that produce
+	   debug output.  Use a fallback in this case.  */
+	if (ap->a.a_u8_string == NULL)
+	  {
+	    static const uint8_t u8_null_string[] =
+	      { '(', 'N', 'U', 'L', 'L', ')', 0 };
+	    ap->a.a_u8_string = u8_null_string;
+	  }
+	break;
+      case TYPE_U16_STRING:
+	ap->a.a_u16_string = va_arg (args, const uint16_t *);
+	/* A null pointer is an invalid argument for "%lU", but in practice
+	   it occurs quite frequently in printf statements that produce
+	   debug output.  Use a fallback in this case.  */
+	if (ap->a.a_u16_string == NULL)
+	  {
+	    static const uint16_t u16_null_string[] =
+	      { '(', 'N', 'U', 'L', 'L', ')', 0 };
+	    ap->a.a_u16_string = u16_null_string;
+	  }
+	break;
+      case TYPE_U32_STRING:
+	ap->a.a_u32_string = va_arg (args, const uint32_t *);
+	/* A null pointer is an invalid argument for "%llU", but in practice
+	   it occurs quite frequently in printf statements that produce
+	   debug output.  Use a fallback in this case.  */
+	if (ap->a.a_u32_string == NULL)
+	  {
+	    static const uint32_t u32_null_string[] =
+	      { '(', 'N', 'U', 'L', 'L', ')', 0 };
+	    ap->a.a_u32_string = u32_null_string;
+	  }
+	break;
+#endif
       default:
 	/* Unknown type.  */
 	return -1;
diff -uNr nagios-plugins-1.4.11/gl/printf-args.h nagios-plugins-1.4.12/gl/printf-args.h
--- nagios-plugins-1.4.11/gl/printf-args.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/printf-args.h	2008-02-12 12:07:18.000000000 +0100
@@ -1,9 +1,9 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2003, 2006-2007 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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -18,16 +18,26 @@
 #ifndef _PRINTF_ARGS_H
 #define _PRINTF_ARGS_H
 
+/* This file can be parametrized with the following macros:
+     ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.
+     PRINTF_FETCHARGS   Name of the function to be declared.
+     STATIC             Set to 'static' to declare the function static.  */
+
+/* Default parameters.  */
+#ifndef PRINTF_FETCHARGS
+# define PRINTF_FETCHARGS printf_fetchargs
+#endif
+
 /* Get size_t.  */
 #include <stddef.h>
 
 /* Get wchar_t.  */
-#ifdef HAVE_WCHAR_T
+#if HAVE_WCHAR_T
 # include <stddef.h>
 #endif
 
 /* Get wint_t.  */
-#ifdef HAVE_WINT_T
+#if HAVE_WINT_T
 # include <wchar.h>
 #endif
 
@@ -47,20 +57,18 @@
   TYPE_UINT,
   TYPE_LONGINT,
   TYPE_ULONGINT,
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
   TYPE_LONGLONGINT,
   TYPE_ULONGLONGINT,
 #endif
   TYPE_DOUBLE,
-#ifdef HAVE_LONG_DOUBLE
   TYPE_LONGDOUBLE,
-#endif
   TYPE_CHAR,
-#ifdef HAVE_WINT_T
+#if HAVE_WINT_T
   TYPE_WIDE_CHAR,
 #endif
   TYPE_STRING,
-#ifdef HAVE_WCHAR_T
+#if HAVE_WCHAR_T
   TYPE_WIDE_STRING,
 #endif
   TYPE_POINTER,
@@ -68,9 +76,15 @@
   TYPE_COUNT_SHORT_POINTER,
   TYPE_COUNT_INT_POINTER,
   TYPE_COUNT_LONGINT_POINTER
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
 , TYPE_COUNT_LONGLONGINT_POINTER
 #endif
+#if ENABLE_UNISTDIO
+  /* The unistdio extensions.  */
+, TYPE_U8_STRING
+, TYPE_U16_STRING
+, TYPE_U32_STRING
+#endif
 } arg_type;
 
 /* Polymorphic argument */
@@ -87,21 +101,19 @@
     unsigned int		a_uint;
     long int			a_longint;
     unsigned long int		a_ulongint;
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
     long long int		a_longlongint;
     unsigned long long int	a_ulonglongint;
 #endif
     float			a_float;
     double			a_double;
-#ifdef HAVE_LONG_DOUBLE
     long double			a_longdouble;
-#endif
     int				a_char;
-#ifdef HAVE_WINT_T
+#if HAVE_WINT_T
     wint_t			a_wide_char;
 #endif
     const char*			a_string;
-#ifdef HAVE_WCHAR_T
+#if HAVE_WCHAR_T
     const wchar_t*		a_wide_string;
 #endif
     void*			a_pointer;
@@ -109,9 +121,15 @@
     short *			a_count_short_pointer;
     int *			a_count_int_pointer;
     long int *			a_count_longint_pointer;
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
     long long int *		a_count_longlongint_pointer;
 #endif
+#if ENABLE_UNISTDIO
+    /* The unistdio extensions.  */
+    const uint8_t *		a_u8_string;
+    const uint16_t *		a_u16_string;
+    const uint32_t *		a_u32_string;
+#endif
   }
   a;
 }
@@ -131,6 +149,6 @@
 #else
 extern
 #endif
-int printf_fetchargs (va_list args, arguments *a);
+int PRINTF_FETCHARGS (va_list args, arguments *a);
 
 #endif /* _PRINTF_ARGS_H */
diff -uNr nagios-plugins-1.4.11/gl/printf-parse.c nagios-plugins-1.4.12/gl/printf-parse.c
--- nagios-plugins-1.4.11/gl/printf-parse.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/printf-parse.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,9 +1,9 @@
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002-2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1999-2000, 2002-2003, 2006-2008 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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -15,42 +15,63 @@
    with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-#include <config.h>
+/* This file can be parametrized with the following macros:
+     CHAR_T             The element type of the format string.
+     CHAR_T_ONLY_ASCII  Set to 1 to enable verification that all characters
+                        in the format string are ASCII.
+     DIRECTIVE          Structure denoting a format directive.
+                        Depends on CHAR_T.
+     DIRECTIVES         Structure denoting the set of format directives of a
+                        format string.  Depends on CHAR_T.
+     PRINTF_PARSE       Function that parses a format string.
+                        Depends on CHAR_T.
+     STATIC             Set to 'static' to declare the function static.
+     ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.  */
+
+#ifndef PRINTF_PARSE
+# include <config.h>
+#endif
 
 /* Specification.  */
-#if WIDE_CHAR_VERSION
-# include "wprintf-parse.h"
-#else
+#ifndef PRINTF_PARSE
 # include "printf-parse.h"
 #endif
 
+/* Default parameters.  */
+#ifndef PRINTF_PARSE
+# define PRINTF_PARSE printf_parse
+# define CHAR_T char
+# define DIRECTIVE char_directive
+# define DIRECTIVES char_directives
+#endif
+
 /* Get size_t, NULL.  */
 #include <stddef.h>
 
 /* Get intmax_t.  */
-#if HAVE_STDINT_H_WITH_UINTMAX
+#if defined IN_LIBINTL || defined IN_LIBASPRINTF
+# if HAVE_STDINT_H_WITH_UINTMAX
+#  include <stdint.h>
+# endif
+# if HAVE_INTTYPES_H_WITH_UINTMAX
+#  include <inttypes.h>
+# endif
+#else
 # include <stdint.h>
 #endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-# include <inttypes.h>
-#endif
 
 /* malloc(), realloc(), free().  */
 #include <stdlib.h>
 
+/* errno.  */
+#include <errno.h>
+
 /* Checked size_t computations.  */
 #include "xsize.h"
 
-#if WIDE_CHAR_VERSION
-# define PRINTF_PARSE wprintf_parse
-# define CHAR_T wchar_t
-# define DIRECTIVE wchar_t_directive
-# define DIRECTIVES wchar_t_directives
-#else
-# define PRINTF_PARSE printf_parse
-# define CHAR_T char
-# define DIRECTIVE char_directive
-# define DIRECTIVES char_directives
+#if CHAR_T_ONLY_ASCII
+/* c_isascii().  */
+# include "c-ctype.h"
 #endif
 
 #ifdef STATIC
@@ -71,7 +92,7 @@
   d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE));
   if (d->dir == NULL)
     /* Out of memory.  */
-    return -1;
+    goto out_of_memory_1;
 
   a->count = 0;
   a_allocated = 0;
@@ -91,13 +112,13 @@
 	memory_size = xtimes (a_allocated, sizeof (argument));		\
 	if (size_overflow_p (memory_size))				\
 	  /* Overflow, would lead to out of memory.  */			\
-	  goto error;							\
+	  goto out_of_memory;						\
 	memory = (argument *) (a->arg					\
 			       ? realloc (a->arg, memory_size)		\
 			       : malloc (memory_size));			\
 	if (memory == NULL)						\
 	  /* Out of memory.  */						\
-	  goto error;							\
+	  goto out_of_memory;						\
 	a->arg = memory;						\
       }									\
     while (a->count <= n)						\
@@ -115,7 +136,7 @@
       if (c == '%')
 	{
 	  size_t arg_index = ARG_NONE;
-	  DIRECTIVE *dp = &d->dir[d->count];/* pointer to next directive */
+	  DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */
 
 	  /* Initialize the next directive.  */
 	  dp->dir_start = cp - 1;
@@ -326,7 +347,6 @@
 		      flags += 8;
 		      cp++;
 		    }
-#ifdef HAVE_INTMAX_T
 		  else if (*cp == 'j')
 		    {
 		      if (sizeof (intmax_t) > sizeof (long))
@@ -341,7 +361,6 @@
 			}
 		      cp++;
 		    }
-#endif
 		  else if (*cp == 'z' || *cp == 'Z')
 		    {
 		      /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
@@ -373,6 +392,44 @@
 			}
 		      cp++;
 		    }
+#if defined __APPLE__ && defined __MACH__
+		  /* On MacOS X 10.3, PRIdMAX is defined as "qd".
+		     We cannot change it to "lld" because PRIdMAX must also
+		     be understood by the system's printf routines.  */
+		  else if (*cp == 'q')
+		    {
+		      if (64 / 8 > sizeof (long))
+			{
+			  /* int64_t = long long */
+			  flags += 16;
+			}
+		      else
+			{
+			  /* int64_t = long */
+			  flags += 8;
+			}
+		      cp++;
+		    }
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+		  /* On native Win32, PRIdMAX is defined as "I64d".
+		     We cannot change it to "lld" because PRIdMAX must also
+		     be understood by the system's printf routines.  */
+		  else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4')
+		    {
+		      if (64 / 8 > sizeof (long))
+			{
+			  /* __int64 = long long */
+			  flags += 16;
+			}
+		      else
+			{
+			  /* __int64 = long */
+			  flags += 8;
+			}
+		      cp += 3;
+		    }
+#endif
 		  else
 		    break;
 		}
@@ -382,7 +439,7 @@
 	      switch (c)
 		{
 		case 'd': case 'i':
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
 		  /* If 'long long' exists and is larger than 'long':  */
 		  if (flags >= 16 || (flags & 4))
 		    type = TYPE_LONGLONGINT;
@@ -400,7 +457,7 @@
 		    type = TYPE_INT;
 		  break;
 		case 'o': case 'u': case 'x': case 'X':
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
 		  /* If 'long long' exists and is larger than 'long':  */
 		  if (flags >= 16 || (flags & 4))
 		    type = TYPE_ULONGLONGINT;
@@ -419,16 +476,14 @@
 		  break;
 		case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
 		case 'a': case 'A':
-#ifdef HAVE_LONG_DOUBLE
 		  if (flags >= 16 || (flags & 4))
 		    type = TYPE_LONGDOUBLE;
 		  else
-#endif
-		  type = TYPE_DOUBLE;
+		    type = TYPE_DOUBLE;
 		  break;
 		case 'c':
 		  if (flags >= 8)
-#ifdef HAVE_WINT_T
+#if HAVE_WINT_T
 		    type = TYPE_WIDE_CHAR;
 #else
 		    goto error;
@@ -436,7 +491,7 @@
 		  else
 		    type = TYPE_CHAR;
 		  break;
-#ifdef HAVE_WINT_T
+#if HAVE_WINT_T
 		case 'C':
 		  type = TYPE_WIDE_CHAR;
 		  c = 'c';
@@ -444,7 +499,7 @@
 #endif
 		case 's':
 		  if (flags >= 8)
-#ifdef HAVE_WCHAR_T
+#if HAVE_WCHAR_T
 		    type = TYPE_WIDE_STRING;
 #else
 		    goto error;
@@ -452,7 +507,7 @@
 		  else
 		    type = TYPE_STRING;
 		  break;
-#ifdef HAVE_WCHAR_T
+#if HAVE_WCHAR_T
 		case 'S':
 		  type = TYPE_WIDE_STRING;
 		  c = 's';
@@ -462,7 +517,7 @@
 		  type = TYPE_POINTER;
 		  break;
 		case 'n':
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
 		  /* If 'long long' exists and is larger than 'long':  */
 		  if (flags >= 16 || (flags & 4))
 		    type = TYPE_COUNT_LONGLONGINT_POINTER;
@@ -479,6 +534,17 @@
 		  else
 		    type = TYPE_COUNT_INT_POINTER;
 		  break;
+#if ENABLE_UNISTDIO
+		/* The unistdio extensions.  */
+		case 'U':
+		  if (flags >= 16)
+		    type = TYPE_U32_STRING;
+		  else if (flags >= 8)
+		    type = TYPE_U16_STRING;
+		  else
+		    type = TYPE_U8_STRING;
+		  break;
+#endif
 		case '%':
 		  type = TYPE_NONE;
 		  break;
@@ -514,14 +580,21 @@
 	      memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
 	      if (size_overflow_p (memory_size))
 		/* Overflow, would lead to out of memory.  */
-		goto error;
+		goto out_of_memory;
 	      memory = (DIRECTIVE *) realloc (d->dir, memory_size);
 	      if (memory == NULL)
 		/* Out of memory.  */
-		goto error;
+		goto out_of_memory;
 	      d->dir = memory;
 	    }
 	}
+#if CHAR_T_ONLY_ASCII
+      else if (!c_isascii (c))
+	{
+	  /* Non-ASCII character.  Not supported.  */
+	  goto error;
+	}
+#endif
     }
   d->dir[d->count].dir_start = cp;
 
@@ -534,10 +607,21 @@
     free (a->arg);
   if (d->dir)
     free (d->dir);
+  errno = EINVAL;
+  return -1;
+
+out_of_memory:
+  if (a->arg)
+    free (a->arg);
+  if (d->dir)
+    free (d->dir);
+out_of_memory_1:
+  errno = ENOMEM;
   return -1;
 }
 
+#undef PRINTF_PARSE
 #undef DIRECTIVES
 #undef DIRECTIVE
+#undef CHAR_T_ONLY_ASCII
 #undef CHAR_T
-#undef PRINTF_PARSE
diff -uNr nagios-plugins-1.4.11/gl/printf-parse.h nagios-plugins-1.4.12/gl/printf-parse.h
--- nagios-plugins-1.4.11/gl/printf-parse.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/printf-parse.h	2008-02-12 12:07:18.000000000 +0100
@@ -1,9 +1,9 @@
 /* Parse printf format string.
-   Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2003, 2005, 2007 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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -18,6 +18,10 @@
 #ifndef _PRINTF_PARSE_H
 #define _PRINTF_PARSE_H
 
+/* This file can be parametrized with the following macros:
+     ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.
+     STATIC             Set to 'static' to declare the function static.  */
+
 #include "printf-args.h"
 
 
@@ -32,6 +36,9 @@
 /* arg_index value indicating that no argument is consumed.  */
 #define ARG_NONE	(~(size_t)0)
 
+/* xxx_directive: A parsed directive.
+   xxx_directives: A parsed format string.  */
+
 /* A parsed directive.  */
 typedef struct
 {
@@ -44,7 +51,7 @@
   const char* precision_start;
   const char* precision_end;
   size_t precision_arg_index;
-  char conversion; /* d i o u x X f e E g G c s p n U % but not C S */
+  char conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
   size_t arg_index;
 }
 char_directive;
@@ -59,16 +66,114 @@
 }
 char_directives;
 
+#if ENABLE_UNISTDIO
+
+/* A parsed directive.  */
+typedef struct
+{
+  const uint8_t* dir_start;
+  const uint8_t* dir_end;
+  int flags;
+  const uint8_t* width_start;
+  const uint8_t* width_end;
+  size_t width_arg_index;
+  const uint8_t* precision_start;
+  const uint8_t* precision_end;
+  size_t precision_arg_index;
+  uint8_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+  size_t arg_index;
+}
+u8_directive;
+
+/* A parsed format string.  */
+typedef struct
+{
+  size_t count;
+  u8_directive *dir;
+  size_t max_width_length;
+  size_t max_precision_length;
+}
+u8_directives;
+
+/* A parsed directive.  */
+typedef struct
+{
+  const uint16_t* dir_start;
+  const uint16_t* dir_end;
+  int flags;
+  const uint16_t* width_start;
+  const uint16_t* width_end;
+  size_t width_arg_index;
+  const uint16_t* precision_start;
+  const uint16_t* precision_end;
+  size_t precision_arg_index;
+  uint16_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+  size_t arg_index;
+}
+u16_directive;
+
+/* A parsed format string.  */
+typedef struct
+{
+  size_t count;
+  u16_directive *dir;
+  size_t max_width_length;
+  size_t max_precision_length;
+}
+u16_directives;
+
+/* A parsed directive.  */
+typedef struct
+{
+  const uint32_t* dir_start;
+  const uint32_t* dir_end;
+  int flags;
+  const uint32_t* width_start;
+  const uint32_t* width_end;
+  size_t width_arg_index;
+  const uint32_t* precision_start;
+  const uint32_t* precision_end;
+  size_t precision_arg_index;
+  uint32_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+  size_t arg_index;
+}
+u32_directive;
+
+/* A parsed format string.  */
+typedef struct
+{
+  size_t count;
+  u32_directive *dir;
+  size_t max_width_length;
+  size_t max_precision_length;
+}
+u32_directives;
+
+#endif
+
 
 /* Parses the format string.  Fills in the number N of directives, and fills
    in directives[0], ..., directives[N-1], and sets directives[N].dir_start
    to the end of the format string.  Also fills in the arg_type fields of the
    arguments and the needed count of arguments.  */
-#ifdef STATIC
-STATIC
+#if ENABLE_UNISTDIO
+extern int
+       ulc_printf_parse (const char *format, char_directives *d, arguments *a);
+extern int
+       u8_printf_parse (const uint8_t *format, u8_directives *d, arguments *a);
+extern int
+       u16_printf_parse (const uint16_t *format, u16_directives *d,
+			 arguments *a);
+extern int
+       u32_printf_parse (const uint32_t *format, u32_directives *d,
+			 arguments *a);
 #else
+# ifdef STATIC
+STATIC
+# else
 extern
-#endif
+# endif
 int printf_parse (const char *format, char_directives *d, arguments *a);
+#endif
 
 #endif /* _PRINTF_PARSE_H */
diff -uNr nagios-plugins-1.4.11/gl/ref-add.sin nagios-plugins-1.4.12/gl/ref-add.sin
--- nagios-plugins-1.4.11/gl/ref-add.sin	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/ref-add.sin	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,30 @@
+# 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 General Public License as published by
+#   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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:/
+}
diff -uNr nagios-plugins-1.4.11/gl/ref-del.sin nagios-plugins-1.4.12/gl/ref-del.sin
--- nagios-plugins-1.4.11/gl/ref-del.sin	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/ref-del.sin	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,25 @@
+# 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 General Public License as published by
+#   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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:/
+}
diff -uNr nagios-plugins-1.4.11/gl/regcomp.c nagios-plugins-1.4.12/gl/regcomp.c
--- nagios-plugins-1.4.11/gl/regcomp.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/regcomp.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,11 +1,11 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002,2003,2004,2005,2006 Free Software Foundation, Inc.
+   Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -451,8 +451,8 @@
 
 int
 regcomp (preg, pattern, cflags)
-    regex_t *__restrict preg;
-    const char *__restrict pattern;
+    regex_t *_Restrict_ preg;
+    const char *_Restrict_ pattern;
     int cflags;
 {
   reg_errcode_t ret;
@@ -515,13 +515,13 @@
 size_t
 regerror (errcode, preg, errbuf, errbuf_size)
     int errcode;
-    const regex_t *__restrict preg;
-    char *__restrict errbuf;
+    const regex_t *_Restrict_ preg;
+    char *_Restrict_ errbuf;
     size_t errbuf_size;
 #else /* size_t might promote */
 size_t
-regerror (int errcode, const regex_t *__restrict preg,
-	  char *__restrict errbuf, size_t errbuf_size)
+regerror (int errcode, const regex_t *_Restrict_ preg,
+	  char *_Restrict_ errbuf, size_t errbuf_size)
 #endif
 {
   const char *msg;
@@ -542,17 +542,13 @@
 
   if (BE (errbuf_size != 0, 1))
     {
+      size_t cpy_size = msg_size;
       if (BE (msg_size > errbuf_size, 0))
 	{
-#if defined HAVE_MEMPCPY || defined _LIBC
-	  *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
-#else
-	  memcpy (errbuf, msg, errbuf_size - 1);
-	  errbuf[errbuf_size - 1] = 0;
-#endif
+	  cpy_size = errbuf_size - 1;
+	  errbuf[cpy_size] = '\0';
 	}
-      else
-	memcpy (errbuf, msg, msg_size);
+      memcpy (errbuf, msg, cpy_size);
     }
 
   return msg_size;
@@ -833,9 +829,6 @@
 init_dfa (re_dfa_t *dfa, size_t pat_len)
 {
   __re_size_t table_size;
-#ifndef _LIBC
-  char *codeset_name;
-#endif
 #ifdef RE_ENABLE_I18N
   size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t));
 #else
@@ -879,22 +872,7 @@
   dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII)
 		       != 0);
 #else
-# ifdef HAVE_LANGINFO_CODESET
-  codeset_name = nl_langinfo (CODESET);
-# else
-  codeset_name = getenv ("LC_ALL");
-  if (codeset_name == NULL || codeset_name[0] == '\0')
-    codeset_name = getenv ("LC_CTYPE");
-  if (codeset_name == NULL || codeset_name[0] == '\0')
-    codeset_name = getenv ("LANG");
-  if (codeset_name == NULL)
-    codeset_name = "";
-  else if (strchr (codeset_name, '.') !=  NULL)
-    codeset_name = strchr (codeset_name, '.') + 1;
-# endif
-
-  if (strcasecmp (codeset_name, "UTF-8") == 0
-      || strcasecmp (codeset_name, "UTF8") == 0)
+  if (strcmp (locale_charset (), "UTF-8") == 0)
     dfa->is_utf8 = 1;
 
   /* We check exhaustively in the loop below if this charset is a
@@ -1071,7 +1049,7 @@
 	  mb_chars = true;
 	break;
       case ANCHOR:
-	switch (dfa->nodes[node].opr.idx)
+	switch (dfa->nodes[node].opr.ctx_type)
 	  {
 	  case LINE_FIRST:
 	  case LINE_LAST:
@@ -3074,7 +3052,7 @@
 #endif /* not RE_ENABLE_I18N */
       non_match = true;
       if (syntax & RE_HAT_LISTS_NOT_NEWLINE)
-	bitset_set (sbcset, '\0');
+	bitset_set (sbcset, '\n');
       re_string_skip_bytes (regexp, token_len); /* Skip a token.  */
       token_len = peek_token_bracket (token, regexp, syntax);
       if (BE (token->type == END_OF_RE, 0))
@@ -3605,10 +3583,6 @@
   if (non_match)
     {
 #ifdef RE_ENABLE_I18N
-      /*
-      if (syntax & RE_HAT_LISTS_NOT_NEWLINE)
-	bitset_set(cset->sbcset, '\0');
-      */
       mbcset->non_match = 1;
 #endif /* not RE_ENABLE_I18N */
     }
diff -uNr nagios-plugins-1.4.11/gl/regex.c nagios-plugins-1.4.12/gl/regex.c
--- nagios-plugins-1.4.11/gl/regex.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/regex.c	2008-02-12 12:07:18.000000000 +0100
@@ -5,7 +5,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
diff -uNr nagios-plugins-1.4.11/gl/regexec.c nagios-plugins-1.4.12/gl/regexec.c
--- nagios-plugins-1.4.11/gl/regexec.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/regexec.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,11 +1,12 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
+   Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -221,10 +222,10 @@
 
 int
 regexec (preg, string, nmatch, pmatch, eflags)
-    const regex_t *__restrict preg;
-    const char *__restrict string;
+    const regex_t *_Restrict_ preg;
+    const char *_Restrict_ string;
     size_t nmatch;
-    regmatch_t pmatch[];
+    regmatch_t pmatch[_Restrict_arr_];
     int eflags;
 {
   reg_errcode_t err;
@@ -267,8 +268,8 @@
 
 int
 attribute_compat_text_section
-__compat_regexec (const regex_t *__restrict preg,
-		  const char *__restrict string, size_t nmatch,
+__compat_regexec (const regex_t *_Restrict_ preg,
+		  const char *_Restrict_ string, size_t nmatch,
 		  regmatch_t pmatch[], int eflags)
 {
   return regexec (preg, string, nmatch, pmatch,
@@ -2338,7 +2339,7 @@
 }
 
 /* Update the state_log if we need */
-re_dfastate_t *
+static re_dfastate_t *
 internal_function
 merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
 		      re_dfastate_t *next_state)
diff -uNr nagios-plugins-1.4.11/gl/regex.h nagios-plugins-1.4.12/gl/regex.h
--- nagios-plugins-1.4.11/gl/regex.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/regex.h	2008-02-12 12:07:18.000000000 +0100
@@ -6,7 +6,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -625,41 +625,45 @@
 #endif
 
 /* GCC 2.95 and later have "__restrict"; C99 compilers have
-   "restrict", and "configure" may have defined "restrict".  */
-#ifndef __restrict
-# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
-#  if defined restrict || 199901L <= __STDC_VERSION__
-#   define __restrict restrict
-#  else
-#   define __restrict
-#  endif
+   "restrict", and "configure" may have defined "restrict".
+   Other compilers use __restrict, __restrict__, and _Restrict, and
+   'configure' might #define 'restrict' to those words, so pick a
+   different name.  */
+#ifndef _Restrict_
+# if 199901L <= __STDC_VERSION__
+#  define _Restrict_ restrict
+# elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)
+#  define _Restrict_ __restrict
+# else
+#  define _Restrict_
 # endif
 #endif
 /* gcc 3.1 and up support the [restrict] syntax.  Don't trust
    sys/cdefs.h's definition of __restrict_arr, though, as it
    mishandles gcc -ansi -pedantic.  */
-#undef __restrict_arr
-#if ((199901L <= __STDC_VERSION__					\
-      || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__))	\
-	  && !__STRICT_ANSI__))						\
-     && !defined __GNUG__)
-# define __restrict_arr __restrict
-#else
-# define __restrict_arr
+#ifndef _Restrict_arr_
+# if ((199901L <= __STDC_VERSION__					\
+       || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__))	\
+	   && !__STRICT_ANSI__))					\
+      && !defined __GNUG__)
+#  define _Restrict_arr_ _Restrict_
+# else
+#  define _Restrict_arr_
+# endif
 #endif
 
 /* POSIX compatibility.  */
-extern int regcomp (regex_t *__restrict __preg,
-		    const char *__restrict __pattern,
+extern int regcomp (regex_t *_Restrict_ __preg,
+		    const char *_Restrict_ __pattern,
 		    int __cflags);
 
-extern int regexec (const regex_t *__restrict __preg,
-		    const char *__restrict __string, size_t __nmatch,
-		    regmatch_t __pmatch[__restrict_arr],
+extern int regexec (const regex_t *_Restrict_ __preg,
+		    const char *_Restrict_ __string, size_t __nmatch,
+		    regmatch_t __pmatch[_Restrict_arr_],
 		    int __eflags);
 
-extern size_t regerror (int __errcode, const regex_t *__restrict __preg,
-			char *__restrict __errbuf, size_t __errbuf_size);
+extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg,
+			char *_Restrict_ __errbuf, size_t __errbuf_size);
 
 extern void regfree (regex_t *__preg);
 
diff -uNr nagios-plugins-1.4.11/gl/regex_internal.c nagios-plugins-1.4.12/gl/regex_internal.c
--- nagios-plugins-1.4.11/gl/regex_internal.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/regex_internal.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,11 +1,12 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+   Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -706,7 +707,7 @@
 
 	      if (pstr->is_utf8)
 		{
-		  const unsigned char *raw, *p, *q, *end;
+		  const unsigned char *raw, *p, *end;
 
 		  /* Special case UTF-8.  Multi-byte chars start with any
 		     byte other than 0x80 - 0xbf.  */
@@ -735,13 +736,11 @@
 			  unsigned char buf[6];
 			  size_t mbclen;
 
-			  q = p;
 			  if (BE (pstr->trans != NULL, 0))
 			    {
 			      int i = mlen < 6 ? mlen : 6;
 			      while (--i >= 0)
 				buf[i] = pstr->trans[p[i]];
-			      q = buf;
 			    }
 			  /* XXX Don't use mbrtowc, we know which conversion
 			     to use (UTF-8 -> UCS4).  */
diff -uNr nagios-plugins-1.4.11/gl/regex_internal.h nagios-plugins-1.4.12/gl/regex_internal.h
--- nagios-plugins-1.4.11/gl/regex_internal.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/regex_internal.h	2008-02-12 12:07:18.000000000 +0100
@@ -5,7 +5,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -27,12 +27,10 @@
 #include <stdlib.h>
 #include <string.h>
 
-#ifndef _LIBC
-# include "strcase.h"
-#endif
-
-#if defined HAVE_LANGINFO_H || defined HAVE_LANGINFO_CODESET || defined _LIBC
+#ifdef _LIBC
 # include <langinfo.h>
+#else
+# include "localcharset.h"
 #endif
 #if defined HAVE_LOCALE_H || defined _LIBC
 # include <locale.h>
@@ -50,7 +48,7 @@
 #endif
 
 /* In case that the system doesn't have isblank().  */
-#if !defined _LIBC && !HAVE_DECL_ISBLANK && !defined isblank
+#if !defined _LIBC && ! (defined isblank || (HAVE_ISBLANK && HAVE_DECL_ISBLANK))
 # define isblank(ch) ((ch) == ' ' || (ch) == '\t')
 #endif
 
@@ -116,9 +114,6 @@
 # define __wctype wctype
 # define __iswctype iswctype
 # define __btowc btowc
-# ifndef __mempcpy
-#  define __mempcpy mempcpy
-# endif
 # define __wcrtomb wcrtomb
 # define __regfree regfree
 # define attribute_hidden
diff -uNr nagios-plugins-1.4.11/gl/safe-read.c nagios-plugins-1.4.12/gl/safe-read.c
--- nagios-plugins-1.4.11/gl/safe-read.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/safe-read.c	2008-02-12 12:07:18.000000000 +0100
@@ -3,10 +3,10 @@
    Copyright (C) 1993, 1994, 1998, 2002, 2003, 2004, 2005, 2006 Free
    Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff -uNr nagios-plugins-1.4.11/gl/safe-read.h nagios-plugins-1.4.12/gl/safe-read.h
--- nagios-plugins-1.4.11/gl/safe-read.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/safe-read.h	2008-02-12 12:07:18.000000000 +0100
@@ -1,10 +1,10 @@
 /* An interface to read() that retries after interrupts.
    Copyright (C) 2002, 2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -12,8 +12,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stddef.h>
 
diff -uNr nagios-plugins-1.4.11/gl/safe-write.c nagios-plugins-1.4.12/gl/safe-write.c
--- nagios-plugins-1.4.11/gl/safe-write.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/safe-write.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,10 +1,10 @@
 /* An interface to write that retries after interrupts.
    Copyright (C) 2002 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -12,8 +12,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #define SAFE_WRITE
 #include "safe-read.c"
diff -uNr nagios-plugins-1.4.11/gl/safe-write.h nagios-plugins-1.4.12/gl/safe-write.h
--- nagios-plugins-1.4.11/gl/safe-write.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/safe-write.h	2008-02-12 12:07:18.000000000 +0100
@@ -1,10 +1,10 @@
 /* An interface to write() that retries after interrupts.
    Copyright (C) 2002 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -12,8 +12,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stddef.h>
 
diff -uNr nagios-plugins-1.4.11/gl/size_max.h nagios-plugins-1.4.12/gl/size_max.h
--- nagios-plugins-1.4.11/gl/size_max.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/size_max.h	2008-02-12 12:07:18.000000000 +0100
@@ -4,7 +4,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
diff -uNr nagios-plugins-1.4.11/gl/snprintf.c nagios-plugins-1.4.12/gl/snprintf.c
--- nagios-plugins-1.4.11/gl/snprintf.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/snprintf.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,10 +1,10 @@
 /* Formatted output to strings.
-   Copyright (C) 2004, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2007 Free Software Foundation, Inc.
    Written by Simon Josefsson and Paul Eggert.
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -18,7 +18,8 @@
 
 #include <config.h>
 
-#include "snprintf.h"
+/* Specification.  */
+#include <stdio.h>
 
 #include <errno.h>
 #include <limits.h>
@@ -37,7 +38,7 @@
    additional length SIZE limit how much is written into STR.  Returns
    string length of formatted string (which may be larger than SIZE).
    STR may be NULL, in which case nothing will be written.  On error,
-   return a negative value. */
+   return a negative value.  */
 int
 snprintf (char *str, size_t size, const char *format, ...)
 {
diff -uNr nagios-plugins-1.4.11/gl/snprintf.h nagios-plugins-1.4.12/gl/snprintf.h
--- nagios-plugins-1.4.11/gl/snprintf.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/snprintf.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-/* Formatted output to strings.
-   Copyright (C) 2004 Free Software Foundation, Inc.
-   Written by Simon Josefsson.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef SNPRINTF_H
-#define SNPRINTF_H
-
-/* Get snprintf declaration, if available.  */
-#include <stdio.h>
-
-#if defined HAVE_DECL_SNPRINTF && !HAVE_DECL_SNPRINTF
-int snprintf (char *str, size_t size, const char *format, ...);
-#endif
-
-#endif /* SNPRINTF_H */
diff -uNr nagios-plugins-1.4.11/gl/socket_.h nagios-plugins-1.4.12/gl/socket_.h
--- nagios-plugins-1.4.11/gl/socket_.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/socket_.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,70 +0,0 @@
-/* Provide a sys/socket header file for systems lacking it (read: MinGW).
-   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-   Written by Simon Josefsson.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _SYS_SOCKET_H
-#define _SYS_SOCKET_H
-
-/* This file is supposed to be used on platforms that lack
-   sys/socket.h.  It is intended to provide definitions and prototypes
-   needed by an application.
-
-   Currently only MinGW is supported.  See the gnulib manual regarding
-   Windows sockets.  MinGW has the header files winsock2.h and
-   ws2tcpip.h that declare the sys/socket.h definitions we need.  Note
-   that you can influence which definitions you get by setting the
-   WINVER symbol before including these two files.  For example,
-   getaddrinfo is only available if _WIN32_WINNT >= 0x0501 (that
-   symbol is set indiriectly through WINVER).  You can set this by
-   adding AC_DEFINE(WINVER, 0x0501) to configure.ac.  Note that your
-   code may not run on older Windows releases then.  My Windows 2000
-   box was not able to run the code, for example.  The situation is
-   slightly confusing because:
-   http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/getaddrinfo_2.asp
-   suggests that getaddrinfo should be available on all Windows
-   releases. */
-
-
-#if HAVE_WINSOCK2_H
-# include <winsock2.h>
-#endif
-#if HAVE_WS2TCPIP_H
-# include <ws2tcpip.h>
-#endif
-
-/* For shutdown(). */
-#if !defined SHUT_RD && defined SD_RECEIVE
-# define SHUT_RD SD_RECEIVE
-#endif
-#if !defined SHUT_WR && defined SD_SEND
-# define SHUT_WR SD_SEND
-#endif
-#if !defined SHUT_RDWR && defined SD_BOTH
-# define SHUT_RDWR SD_BOTH
-#endif
-
-#if defined _WIN32 || defined __WIN32__
-# define ENOTSOCK                WSAENOTSOCK
-# define EADDRINUSE              WSAEADDRINUSE
-# define ENETRESET               WSAENETRESET
-# define ECONNABORTED            WSAECONNABORTED
-# define ECONNRESET              WSAECONNRESET
-# define ENOTCONN                WSAENOTCONN
-# define ESHUTDOWN               WSAESHUTDOWN
-#endif
-
-#endif /* _SYS_SOCKET_H */
diff -uNr nagios-plugins-1.4.11/gl/stdbool_.h nagios-plugins-1.4.12/gl/stdbool_.h
--- nagios-plugins-1.4.11/gl/stdbool_.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/stdbool_.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,115 +0,0 @@
-/* Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
-   Written by Bruno Haible <haible@clisp.cons.org>, 2001.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _STDBOOL_H
-#define _STDBOOL_H
-
-/* ISO C 99 <stdbool.h> for platforms that lack it.  */
-
-/* Usage suggestions:
-
-   Programs that use <stdbool.h> should be aware of some limitations
-   and standards compliance issues.
-
-   Standards compliance:
-
-       - <stdbool.h> must be #included before 'bool', 'false', 'true'
-         can be used.
-
-       - You cannot assume that sizeof (bool) == 1.
-
-       - Programs should not undefine the macros bool, true, and false,
-         as C99 lists that as an "obsolescent feature".
-
-   Limitations of this substitute, when used in a C89 environment:
-
-       - <stdbool.h> must be #included before the '_Bool' type can be used.
-
-       - You cannot assume that _Bool is a typedef; it might be a macro.
-
-       - In C99, casts and automatic conversions to '_Bool' or 'bool' are
-         performed in such a way that every nonzero value gets converted
-         to 'true', and zero gets converted to 'false'.  This doesn't work
-         with this substitute.  With this substitute, only the values 0 and 1
-         give the expected result when converted to _Bool' or 'bool'.
-
-   Also, it is suggested that programs use 'bool' rather than '_Bool';
-   this isn't required, but 'bool' is more common.  */
-
-
-/* 7.16. Boolean type and values */
-
-/* BeOS <sys/socket.h> already #defines false 0, true 1.  We use the same
-   definitions below, but temporarily we have to #undef them.  */
-#ifdef __BEOS__
-# include <OS.h> /* defines bool but not _Bool */
-# undef false
-# undef true
-#endif
-
-/* For the sake of symbolic names in gdb, we define true and false as
-   enum constants, not only as macros.
-   It is tempting to write
-      typedef enum { false = 0, true = 1 } _Bool;
-   so that gdb prints values of type 'bool' symbolically. But if we do
-   this, values of type '_Bool' may promote to 'int' or 'unsigned int'
-   (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
-   (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
-   enum; this ensures that '_Bool' promotes to 'int'.  */
-#if defined __cplusplus || defined __BEOS__
-  /* A compiler known to have 'bool'.  */
-  /* If the compiler already has both 'bool' and '_Bool', we can assume they
-     are the same types.  */
-# if !@HAVE__BOOL@
-typedef bool _Bool;
-# endif
-#else
-# if !defined __GNUC__
-   /* If @HAVE__BOOL@:
-        Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
-        the built-in _Bool type is used.  See
-          http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-          http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-          http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
-        Similar bugs are likely with other compilers as well; this file
-        wouldn't be used if <stdbool.h> was working.
-        So we override the _Bool type.
-      If !@HAVE__BOOL@:
-        Need to define _Bool ourselves. As 'signed char' or as an enum type?
-        Use of a typedef, with SunPRO C, leads to a stupid
-          "warning: _Bool is a keyword in ISO C99".
-        Use of an enum type, with IRIX cc, leads to a stupid
-          "warning(1185): enumerated type mixed with another type".
-        The only benefit of the enum type, debuggability, is not important
-        with these compilers.  So use 'signed char' and no typedef.  */
-#  define _Bool signed char
-enum { false = 0, true = 1 };
-# else
-   /* With this compiler, trust the _Bool type if the compiler has it.  */
-#  if !@HAVE__BOOL@
-typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
-#  endif
-# endif
-#endif
-#define bool _Bool
-
-/* The other macros must be usable in preprocessor directives.  */
-#define false 0
-#define true 1
-#define __bool_true_false_are_defined 1
-
-#endif /* _STDBOOL_H */
diff -uNr nagios-plugins-1.4.11/gl/stdbool.in.h nagios-plugins-1.4.12/gl/stdbool.in.h
--- nagios-plugins-1.4.11/gl/stdbool.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/stdbool.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,119 @@
+/* Copyright (C) 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc.
+   Written by Bruno Haible <haible@clisp.cons.org>, 2001.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GL_STDBOOL_H
+#define _GL_STDBOOL_H
+
+/* ISO C 99 <stdbool.h> for platforms that lack it.  */
+
+/* Usage suggestions:
+
+   Programs that use <stdbool.h> should be aware of some limitations
+   and standards compliance issues.
+
+   Standards compliance:
+
+       - <stdbool.h> must be #included before 'bool', 'false', 'true'
+         can be used.
+
+       - You cannot assume that sizeof (bool) == 1.
+
+       - Programs should not undefine the macros bool, true, and false,
+         as C99 lists that as an "obsolescent feature".
+
+   Limitations of this substitute, when used in a C89 environment:
+
+       - <stdbool.h> must be #included before the '_Bool' type can be used.
+
+       - You cannot assume that _Bool is a typedef; it might be a macro.
+
+       - Bit-fields of type 'bool' are not supported.  Portable code
+         should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'.
+
+       - In C99, casts and automatic conversions to '_Bool' or 'bool' are
+         performed in such a way that every nonzero value gets converted
+         to 'true', and zero gets converted to 'false'.  This doesn't work
+         with this substitute.  With this substitute, only the values 0 and 1
+         give the expected result when converted to _Bool' or 'bool'.
+
+   Also, it is suggested that programs use 'bool' rather than '_Bool';
+   this isn't required, but 'bool' is more common.  */
+
+
+/* 7.16. Boolean type and values */
+
+/* BeOS <sys/socket.h> already #defines false 0, true 1.  We use the same
+   definitions below, but temporarily we have to #undef them.  */
+#ifdef __BEOS__
+# include <OS.h> /* defines bool but not _Bool */
+# undef false
+# undef true
+#endif
+
+/* For the sake of symbolic names in gdb, we define true and false as
+   enum constants, not only as macros.
+   It is tempting to write
+      typedef enum { false = 0, true = 1 } _Bool;
+   so that gdb prints values of type 'bool' symbolically. But if we do
+   this, values of type '_Bool' may promote to 'int' or 'unsigned int'
+   (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+   (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
+   enum; this ensures that '_Bool' promotes to 'int'.  */
+#if defined __cplusplus || defined __BEOS__
+  /* A compiler known to have 'bool'.  */
+  /* If the compiler already has both 'bool' and '_Bool', we can assume they
+     are the same types.  */
+# if !@HAVE__BOOL@
+typedef bool _Bool;
+# endif
+#else
+# if !defined __GNUC__
+   /* If @HAVE__BOOL@:
+        Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
+        the built-in _Bool type is used.  See
+          http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+          http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+          http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+        Similar bugs are likely with other compilers as well; this file
+        wouldn't be used if <stdbool.h> was working.
+        So we override the _Bool type.
+      If !@HAVE__BOOL@:
+        Need to define _Bool ourselves. As 'signed char' or as an enum type?
+        Use of a typedef, with SunPRO C, leads to a stupid
+          "warning: _Bool is a keyword in ISO C99".
+        Use of an enum type, with IRIX cc, leads to a stupid
+          "warning(1185): enumerated type mixed with another type".
+        Even the existence of an enum type, without a typedef,
+          "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
+        The only benefit of the enum, debuggability, is not important
+        with these compilers.  So use 'signed char' and no enum.  */
+#  define _Bool signed char
+# else
+   /* With this compiler, trust the _Bool type if the compiler has it.  */
+#  if !@HAVE__BOOL@
+typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+#  endif
+# endif
+#endif
+#define bool _Bool
+
+/* The other macros must be usable in preprocessor directives.  */
+#define false 0
+#define true 1
+#define __bool_true_false_are_defined 1
+
+#endif /* _GL_STDBOOL_H */
diff -uNr nagios-plugins-1.4.11/gl/stdint_.h nagios-plugins-1.4.12/gl/stdint_.h
--- nagios-plugins-1.4.11/gl/stdint_.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/stdint_.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,489 +0,0 @@
-/* Copyright (C) 2001-2002, 2004-2007 Free Software Foundation, Inc.
-   Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
-   This file is part of gnulib.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _GL_STDINT_H
-#define _GL_STDINT_H
-
-/*
- * ISO C 99 <stdint.h> for platforms that lack it.
- * <http://www.opengroup.org/susv3xbd/stdint.h.html>
- */
-
-/* Get those types that are already defined in other system include
-   files, so that we can "#define int8_t signed char" below without
-   worrying about a later system include file containing a "typedef
-   signed char int8_t;" that will get messed up by our macro.  Our
-   macros should all be consistent with the system versions, except
-   for the "fast" types and macros, which we recommend against using
-   in public interfaces due to compiler differences.  */
-
-#if @HAVE_STDINT_H@
-# if defined __sgi && ! defined __c99
-   /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
-      with "This header file is to be used only for c99 mode compilations"
-      diagnostics.  */
-#  define __STDINT_H__
-# endif
-  /* Other systems may have an incomplete or buggy <stdint.h>.
-     Include it before <inttypes.h>, since any "#include <stdint.h>"
-     in <inttypes.h> would reinclude us, skipping our contents because
-     _GL_STDINT_H is defined.  */
-# include @ABSOLUTE_STDINT_H@
-#endif
-
-/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
-   IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
-   AIX 5.2 <sys/types.h> isn't needed and causes troubles.
-   MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
-   relies on the system <stdint.h> definitions, so include
-   <sys/types.h> after @ABSOLUTE_STDINT_H@.  */
-#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
-# include <sys/types.h>
-#endif
-
-/* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
-#include <limits.h>
-
-#if @HAVE_INTTYPES_H@
-  /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
-     int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
-     <inttypes.h> also defines intptr_t and uintptr_t.  */
-# define _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
-# include <inttypes.h>
-# undef _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
-#elif @HAVE_SYS_INTTYPES_H@
-  /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
-     the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX.  */
-# include <sys/inttypes.h>
-#endif
-
-#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
-  /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
-     int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >= 5.2.2 it is
-     included by <sys/types.h>.  */
-# include <sys/bitypes.h>
-#endif
-
-#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
-
-/* Get WCHAR_MIN, WCHAR_MAX.  */
-# if ! (defined WCHAR_MIN && defined WCHAR_MAX)
-#  include <wchar.h>
-# endif
-
-#endif
-
-/* Minimum and maximum values for a integer type under the usual assumption.
-   Return an unspecified value if BITS == 0, adding a check to pacify
-   picky compilers.  */
-
-#define _STDINT_MIN(signed, bits, zero) \
-  ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
-
-#define _STDINT_MAX(signed, bits, zero) \
-  ((signed) \
-   ? ~ _STDINT_MIN (signed, bits, zero) \
-   : ((((zero) + 1) << ((bits) ? (bits) - 1 : 0)) - 1) * 2 + 1)
-
-/* 7.18.1.1. Exact-width integer types */
-
-/* Here we assume a standard architecture where the hardware integer
-   types have 8, 16, 32, optionally 64 bits.  */
-
-#undef int8_t
-#undef uint8_t
-#define int8_t signed char
-#define uint8_t unsigned char
-
-#undef int16_t
-#undef uint16_t
-#define int16_t short int
-#define uint16_t unsigned short int
-
-#undef int32_t
-#undef uint32_t
-#define int32_t int
-#define uint32_t unsigned int
-
-#undef int64_t
-#if LONG_MAX >> 31 >> 31 == 1
-# define int64_t long int
-#elif defined _MSC_VER
-# define int64_t __int64
-#elif @HAVE_LONG_LONG_INT@
-# define int64_t long long int
-#endif
-
-#undef uint64_t
-#if ULONG_MAX >> 31 >> 31 >> 1 == 1
-# define uint64_t unsigned long int
-#elif defined _MSC_VER
-# define uint64_t unsigned __int64
-#elif @HAVE_UNSIGNED_LONG_LONG_INT@
-# define uint64_t unsigned long long int
-#endif
-
-/* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
-#define _UINT8_T
-#define _UINT32_T
-#define _UINT64_T
-
-
-/* 7.18.1.2. Minimum-width integer types */
-
-/* Here we assume a standard architecture where the hardware integer
-   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
-   are the same as the corresponding N_t types.  */
-
-#undef int_least8_t
-#undef uint_least8_t
-#undef int_least16_t
-#undef uint_least16_t
-#undef int_least32_t
-#undef uint_least32_t
-#undef int_least64_t
-#undef uint_least64_t
-#define int_least8_t int8_t
-#define uint_least8_t uint8_t
-#define int_least16_t int16_t
-#define uint_least16_t uint16_t
-#define int_least32_t int32_t
-#define uint_least32_t uint32_t
-#ifdef int64_t
-# define int_least64_t int64_t
-#endif
-#ifdef uint64_t
-# define uint_least64_t uint64_t
-#endif
-
-/* 7.18.1.3. Fastest minimum-width integer types */
-
-/* Note: Other <stdint.h> substitutes may define these types differently.
-   It is not recommended to use these types in public header files. */
-
-/* Here we assume a standard architecture where the hardware integer
-   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
-   are taken from the same list of types.  Assume that 'long int'
-   is fast enough for all narrower integers.  */
-
-#undef int_fast8_t
-#undef uint_fast8_t
-#undef int_fast16_t
-#undef uint_fast16_t
-#undef int_fast32_t
-#undef uint_fast32_t
-#undef int_fast64_t
-#undef uint_fast64_t
-#define int_fast8_t long int
-#define uint_fast8_t unsigned int_fast8_t
-#define int_fast16_t long int
-#define uint_fast16_t unsigned int_fast16_t
-#define int_fast32_t long int
-#define uint_fast32_t unsigned int_fast32_t
-#ifdef int64_t
-# define int_fast64_t int64_t
-#endif
-#ifdef uint64_t
-# define uint_fast64_t uint64_t
-#endif
-
-/* 7.18.1.4. Integer types capable of holding object pointers */
-
-#undef intptr_t
-#undef uintptr_t
-#define intptr_t long int
-#define uintptr_t unsigned long int
-
-/* 7.18.1.5. Greatest-width integer types */
-
-/* Note: These types are compiler dependent. It may be unwise to use them in
-   public header files. */
-
-#undef intmax_t
-#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
-# define intmax_t long long int
-#elif defined int64_t
-# define intmax_t int64_t
-#else
-# define intmax_t long int
-#endif
-
-#undef uintmax_t
-#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
-# define uintmax_t unsigned long long int
-#elif defined uint64_t
-# define uintmax_t uint64_t
-#else
-# define uintmax_t unsigned long int
-#endif
-
-/* 7.18.2. Limits of specified-width integer types */
-
-#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
-
-/* 7.18.2.1. Limits of exact-width integer types */
-
-/* Here we assume a standard architecture where the hardware integer
-   types have 8, 16, 32, optionally 64 bits.  */
-
-#undef INT8_MIN
-#undef INT8_MAX
-#undef UINT8_MAX
-#define INT8_MIN  (~ INT8_MAX)
-#define INT8_MAX  127
-#define UINT8_MAX  255
-
-#undef INT16_MIN
-#undef INT16_MAX
-#undef UINT16_MAX
-#define INT16_MIN  (~ INT16_MAX)
-#define INT16_MAX  32767
-#define UINT16_MAX  65535
-
-#undef INT32_MIN
-#undef INT32_MAX
-#undef UINT32_MAX
-#define INT32_MIN  (~ INT32_MAX)
-#define INT32_MAX  2147483647
-#define UINT32_MAX  4294967295U
-
-#undef INT64_MIN
-#undef INT64_MAX
-#ifdef int64_t
-# define INT64_MIN  (~ INT64_MAX)
-# define INT64_MAX  INTMAX_C (9223372036854775807)
-#endif
-
-#undef UINT64_MAX
-#ifdef uint64_t
-# define UINT64_MAX  UINTMAX_C (18446744073709551615)
-#endif
-
-/* 7.18.2.2. Limits of minimum-width integer types */
-
-/* Here we assume a standard architecture where the hardware integer
-   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
-   are the same as the corresponding N_t types.  */
-
-#undef INT_LEAST8_MIN
-#undef INT_LEAST8_MAX
-#undef UINT_LEAST8_MAX
-#define INT_LEAST8_MIN  INT8_MIN
-#define INT_LEAST8_MAX  INT8_MAX
-#define UINT_LEAST8_MAX  UINT8_MAX
-
-#undef INT_LEAST16_MIN
-#undef INT_LEAST16_MAX
-#undef UINT_LEAST16_MAX
-#define INT_LEAST16_MIN  INT16_MIN
-#define INT_LEAST16_MAX  INT16_MAX
-#define UINT_LEAST16_MAX  UINT16_MAX
-
-#undef INT_LEAST32_MIN
-#undef INT_LEAST32_MAX
-#undef UINT_LEAST32_MAX
-#define INT_LEAST32_MIN  INT32_MIN
-#define INT_LEAST32_MAX  INT32_MAX
-#define UINT_LEAST32_MAX  UINT32_MAX
-
-#undef INT_LEAST64_MIN
-#undef INT_LEAST64_MAX
-#ifdef int64_t
-# define INT_LEAST64_MIN  INT64_MIN
-# define INT_LEAST64_MAX  INT64_MAX
-#endif
-
-#undef UINT_LEAST64_MAX
-#ifdef uint64_t
-# define UINT_LEAST64_MAX  UINT64_MAX
-#endif
-
-/* 7.18.2.3. Limits of fastest minimum-width integer types */
-
-/* Here we assume a standard architecture where the hardware integer
-   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
-   are taken from the same list of types.  */
-
-#undef INT_FAST8_MIN
-#undef INT_FAST8_MAX
-#undef UINT_FAST8_MAX
-#define INT_FAST8_MIN  LONG_MIN
-#define INT_FAST8_MAX  LONG_MAX
-#define UINT_FAST8_MAX  ULONG_MAX
-
-#undef INT_FAST16_MIN
-#undef INT_FAST16_MAX
-#undef UINT_FAST16_MAX
-#define INT_FAST16_MIN  LONG_MIN
-#define INT_FAST16_MAX  LONG_MAX
-#define UINT_FAST16_MAX  ULONG_MAX
-
-#undef INT_FAST32_MIN
-#undef INT_FAST32_MAX
-#undef UINT_FAST32_MAX
-#define INT_FAST32_MIN  LONG_MIN
-#define INT_FAST32_MAX  LONG_MAX
-#define UINT_FAST32_MAX  ULONG_MAX
-
-#undef INT_FAST64_MIN
-#undef INT_FAST64_MAX
-#ifdef int64_t
-# define INT_FAST64_MIN  INT64_MIN
-# define INT_FAST64_MAX  INT64_MAX
-#endif
-
-#undef UINT_FAST64_MAX
-#ifdef uint64_t
-# define UINT_FAST64_MAX  UINT64_MAX
-#endif
-
-/* 7.18.2.4. Limits of integer types capable of holding object pointers */
-
-#undef INTPTR_MIN
-#undef INTPTR_MAX
-#undef UINTPTR_MAX
-#define INTPTR_MIN  LONG_MIN
-#define INTPTR_MAX  LONG_MAX
-#define UINTPTR_MAX  ULONG_MAX
-
-/* 7.18.2.5. Limits of greatest-width integer types */
-
-#undef INTMAX_MIN
-#undef INTMAX_MAX
-#define INTMAX_MIN  (~ INTMAX_MAX)
-#ifdef INT64_MAX
-# define INTMAX_MAX  INT64_MAX
-#else
-# define INTMAX_MAX  INT32_MAX
-#endif
-
-#undef UINTMAX_MAX
-#ifdef UINT64_MAX
-# define UINTMAX_MAX  UINT64_MAX
-#else
-# define UINTMAX_MAX  UINT32_MAX
-#endif
-
-/* 7.18.3. Limits of other integer types */
-
-/* ptrdiff_t limits */
-#undef PTRDIFF_MIN
-#undef PTRDIFF_MAX
-#define PTRDIFF_MIN  \
-   _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
-#define PTRDIFF_MAX  \
-   _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
-
-/* sig_atomic_t limits */
-#undef SIG_ATOMIC_MIN
-#undef SIG_ATOMIC_MAX
-#define SIG_ATOMIC_MIN  \
-   _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
-		0@SIG_ATOMIC_T_SUFFIX@)
-#define SIG_ATOMIC_MAX  \
-   _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
-		0@SIG_ATOMIC_T_SUFFIX@)
-
-
-/* size_t limit */
-#undef SIZE_MAX
-#define SIZE_MAX  _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
-
-/* wchar_t limits */
-#undef WCHAR_MIN
-#undef WCHAR_MAX
-#define WCHAR_MIN  \
-   _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
-#define WCHAR_MAX  \
-   _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
-
-/* wint_t limits */
-#undef WINT_MIN
-#undef WINT_MAX
-#define WINT_MIN  \
-   _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
-#define WINT_MAX  \
-   _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
-
-#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
-
-/* 7.18.4. Macros for integer constants */
-
-#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
-
-/* 7.18.4.1. Macros for minimum-width integer constants */
-/* According to ISO C 99 Technical Corrigendum 1 */
-
-/* Here we assume a standard architecture where the hardware integer
-   types have 8, 16, 32, optionally 64 bits, and int is 32 bits.  */
-
-#undef INT8_C
-#undef UINT8_C
-#define INT8_C(x) x
-#define UINT8_C(x) x
-
-#undef INT16_C
-#undef UINT16_C
-#define INT16_C(x) x
-#define UINT16_C(x) x
-
-#undef INT32_C
-#undef UINT32_C
-#define INT32_C(x) x
-#define UINT32_C(x) x ## U
-
-#undef INT64_C
-#undef UINT64_C
-#if LONG_MAX >> 31 >> 31 == 1
-# define INT64_C(x) x##L
-#elif defined _MSC_VER
-# define INT64_C(x) x##i64
-#elif @HAVE_LONG_LONG_INT@
-# define INT64_C(x) x##LL
-#endif
-#if ULONG_MAX >> 31 >> 31 >> 1 == 1
-# define UINT64_C(x) x##UL
-#elif defined _MSC_VER
-# define UINT64_C(x) x##ui64
-#elif @HAVE_UNSIGNED_LONG_LONG_INT@
-# define UINT64_C(x) x##ULL
-#endif
-
-/* 7.18.4.2. Macros for greatest-width integer constants */
-
-#undef INTMAX_C
-#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
-# define INTMAX_C(x)   x##LL
-#elif defined int64_t
-# define INTMAX_C(x)   INT64_C(x)
-#else
-# define INTMAX_C(x)   x##L
-#endif
-
-#undef UINTMAX_C
-#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
-# define UINTMAX_C(x)  x##ULL
-#elif defined uint64_t
-# define UINTMAX_C(x)  UINT64_C(x)
-#else
-# define UINTMAX_C(x)  x##UL
-#endif
-
-#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
-
-#endif /* _GL_STDINT_H */
diff -uNr nagios-plugins-1.4.11/gl/stdint.in.h nagios-plugins-1.4.12/gl/stdint.in.h
--- nagios-plugins-1.4.11/gl/stdint.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/stdint.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,522 @@
+/* Copyright (C) 2001-2002, 2004-2007 Free Software Foundation, Inc.
+   Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
+   This file is part of gnulib.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/*
+ * ISO C 99 <stdint.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/stdint.h.html>
+ */
+
+#ifndef _GL_STDINT_H
+
+/* When including a system file that in turn includes <inttypes.h>,
+   use the system <inttypes.h>, not our substitute.  This avoids
+   problems with (for example) VMS, whose <sys/bitypes.h> includes
+   <inttypes.h>.  */
+#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+/* Get those types that are already defined in other system include
+   files, so that we can "#define int8_t signed char" below without
+   worrying about a later system include file containing a "typedef
+   signed char int8_t;" that will get messed up by our macro.  Our
+   macros should all be consistent with the system versions, except
+   for the "fast" types and macros, which we recommend against using
+   in public interfaces due to compiler differences.  */
+
+#if @HAVE_STDINT_H@
+# if defined __sgi && ! defined __c99
+   /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
+      with "This header file is to be used only for c99 mode compilations"
+      diagnostics.  */
+#  define __STDINT_H__
+# endif
+  /* Other systems may have an incomplete or buggy <stdint.h>.
+     Include it before <inttypes.h>, since any "#include <stdint.h>"
+     in <inttypes.h> would reinclude us, skipping our contents because
+     _GL_STDINT_H is defined.
+     The include_next requires a split double-inclusion guard.  */
+# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+#endif
+
+#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+#define _GL_STDINT_H
+
+/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
+   IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
+   AIX 5.2 <sys/types.h> isn't needed and causes troubles.
+   MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+   relies on the system <stdint.h> definitions, so include
+   <sys/types.h> after @NEXT_STDINT_H@.  */
+#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
+# include <sys/types.h>
+#endif
+
+/* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
+#include <limits.h>
+
+#if @HAVE_INTTYPES_H@
+  /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
+     int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
+     <inttypes.h> also defines intptr_t and uintptr_t.  */
+# include <inttypes.h>
+#elif @HAVE_SYS_INTTYPES_H@
+  /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
+     the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX.  */
+# include <sys/inttypes.h>
+#endif
+
+#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
+  /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
+     int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >= 5.2.2 it is
+     included by <sys/types.h>.  */
+# include <sys/bitypes.h>
+#endif
+
+#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
+
+/* Get WCHAR_MIN, WCHAR_MAX.  */
+# if ! (defined WCHAR_MIN && defined WCHAR_MAX)
+#  include <wchar.h>
+# endif
+
+#endif
+
+#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+/* Minimum and maximum values for a integer type under the usual assumption.
+   Return an unspecified value if BITS == 0, adding a check to pacify
+   picky compilers.  */
+
+#define _STDINT_MIN(signed, bits, zero) \
+  ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
+
+#define _STDINT_MAX(signed, bits, zero) \
+  ((signed) \
+   ? ~ _STDINT_MIN (signed, bits, zero) \
+   : /* The expression for the unsigned case.  The subtraction of (signed) \
+	is a nop in the unsigned case and avoids "signed integer overflow" \
+	warnings in the signed case.  */ \
+     ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
+
+/* 7.18.1.1. Exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits.  */
+
+#undef int8_t
+#undef uint8_t
+#define int8_t signed char
+#define uint8_t unsigned char
+
+#undef int16_t
+#undef uint16_t
+#define int16_t short int
+#define uint16_t unsigned short int
+
+#undef int32_t
+#undef uint32_t
+#define int32_t int
+#define uint32_t unsigned int
+
+/* Do not undefine int64_t if gnulib is not being used with 64-bit
+   types, since otherwise it breaks platforms like Tandem/NSK.  */
+#if LONG_MAX >> 31 >> 31 == 1
+# undef int64_t
+# define int64_t long int
+# define GL_INT64_T
+#elif defined _MSC_VER
+# undef int64_t
+# define int64_t __int64
+# define GL_INT64_T
+#elif @HAVE_LONG_LONG_INT@
+# undef int64_t
+# define int64_t long long int
+# define GL_INT64_T
+#endif
+
+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# undef uint64_t
+# define uint64_t unsigned long int
+# define GL_UINT64_T
+#elif defined _MSC_VER
+# undef uint64_t
+# define uint64_t unsigned __int64
+# define GL_UINT64_T
+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# undef uint64_t
+# define uint64_t unsigned long long int
+# define GL_UINT64_T
+#endif
+
+/* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
+#define _UINT8_T
+#define _UINT32_T
+#define _UINT64_T
+
+
+/* 7.18.1.2. Minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+   are the same as the corresponding N_t types.  */
+
+#undef int_least8_t
+#undef uint_least8_t
+#undef int_least16_t
+#undef uint_least16_t
+#undef int_least32_t
+#undef uint_least32_t
+#undef int_least64_t
+#undef uint_least64_t
+#define int_least8_t int8_t
+#define uint_least8_t uint8_t
+#define int_least16_t int16_t
+#define uint_least16_t uint16_t
+#define int_least32_t int32_t
+#define uint_least32_t uint32_t
+#ifdef GL_INT64_T
+# define int_least64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_least64_t uint64_t
+#endif
+
+/* 7.18.1.3. Fastest minimum-width integer types */
+
+/* Note: Other <stdint.h> substitutes may define these types differently.
+   It is not recommended to use these types in public header files. */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+   are taken from the same list of types.  Assume that 'long int'
+   is fast enough for all narrower integers.  */
+
+#undef int_fast8_t
+#undef uint_fast8_t
+#undef int_fast16_t
+#undef uint_fast16_t
+#undef int_fast32_t
+#undef uint_fast32_t
+#undef int_fast64_t
+#undef uint_fast64_t
+#define int_fast8_t long int
+#define uint_fast8_t unsigned int_fast8_t
+#define int_fast16_t long int
+#define uint_fast16_t unsigned int_fast16_t
+#define int_fast32_t long int
+#define uint_fast32_t unsigned int_fast32_t
+#ifdef GL_INT64_T
+# define int_fast64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_fast64_t uint64_t
+#endif
+
+/* 7.18.1.4. Integer types capable of holding object pointers */
+
+#undef intptr_t
+#undef uintptr_t
+#define intptr_t long int
+#define uintptr_t unsigned long int
+
+/* 7.18.1.5. Greatest-width integer types */
+
+/* Note: These types are compiler dependent. It may be unwise to use them in
+   public header files. */
+
+#undef intmax_t
+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define intmax_t long long int
+#elif defined GL_INT64_T
+# define intmax_t int64_t
+#else
+# define intmax_t long int
+#endif
+
+#undef uintmax_t
+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define uintmax_t unsigned long long int
+#elif defined GL_UINT64_T
+# define uintmax_t uint64_t
+#else
+# define uintmax_t unsigned long int
+#endif
+
+/* Verify that intmax_t and uintmax_t have the same size.  Too much code
+   breaks if this is not the case.  If this check fails, the reason is likely
+   to be found in the autoconf macros.  */
+typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
+
+/* 7.18.2. Limits of specified-width integer types */
+
+#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
+
+/* 7.18.2.1. Limits of exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits.  */
+
+#undef INT8_MIN
+#undef INT8_MAX
+#undef UINT8_MAX
+#define INT8_MIN  (~ INT8_MAX)
+#define INT8_MAX  127
+#define UINT8_MAX  255
+
+#undef INT16_MIN
+#undef INT16_MAX
+#undef UINT16_MAX
+#define INT16_MIN  (~ INT16_MAX)
+#define INT16_MAX  32767
+#define UINT16_MAX  65535
+
+#undef INT32_MIN
+#undef INT32_MAX
+#undef UINT32_MAX
+#define INT32_MIN  (~ INT32_MAX)
+#define INT32_MAX  2147483647
+#define UINT32_MAX  4294967295U
+
+#undef INT64_MIN
+#undef INT64_MAX
+#ifdef GL_INT64_T
+/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
+   evaluates the latter incorrectly in preprocessor expressions.  */
+# define INT64_MIN  (- INTMAX_C (1) << 63)
+# define INT64_MAX  INTMAX_C (9223372036854775807)
+#endif
+
+#undef UINT64_MAX
+#ifdef GL_UINT64_T
+# define UINT64_MAX  UINTMAX_C (18446744073709551615)
+#endif
+
+/* 7.18.2.2. Limits of minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+   are the same as the corresponding N_t types.  */
+
+#undef INT_LEAST8_MIN
+#undef INT_LEAST8_MAX
+#undef UINT_LEAST8_MAX
+#define INT_LEAST8_MIN  INT8_MIN
+#define INT_LEAST8_MAX  INT8_MAX
+#define UINT_LEAST8_MAX  UINT8_MAX
+
+#undef INT_LEAST16_MIN
+#undef INT_LEAST16_MAX
+#undef UINT_LEAST16_MAX
+#define INT_LEAST16_MIN  INT16_MIN
+#define INT_LEAST16_MAX  INT16_MAX
+#define UINT_LEAST16_MAX  UINT16_MAX
+
+#undef INT_LEAST32_MIN
+#undef INT_LEAST32_MAX
+#undef UINT_LEAST32_MAX
+#define INT_LEAST32_MIN  INT32_MIN
+#define INT_LEAST32_MAX  INT32_MAX
+#define UINT_LEAST32_MAX  UINT32_MAX
+
+#undef INT_LEAST64_MIN
+#undef INT_LEAST64_MAX
+#ifdef GL_INT64_T
+# define INT_LEAST64_MIN  INT64_MIN
+# define INT_LEAST64_MAX  INT64_MAX
+#endif
+
+#undef UINT_LEAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_LEAST64_MAX  UINT64_MAX
+#endif
+
+/* 7.18.2.3. Limits of fastest minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+   are taken from the same list of types.  */
+
+#undef INT_FAST8_MIN
+#undef INT_FAST8_MAX
+#undef UINT_FAST8_MAX
+#define INT_FAST8_MIN  LONG_MIN
+#define INT_FAST8_MAX  LONG_MAX
+#define UINT_FAST8_MAX  ULONG_MAX
+
+#undef INT_FAST16_MIN
+#undef INT_FAST16_MAX
+#undef UINT_FAST16_MAX
+#define INT_FAST16_MIN  LONG_MIN
+#define INT_FAST16_MAX  LONG_MAX
+#define UINT_FAST16_MAX  ULONG_MAX
+
+#undef INT_FAST32_MIN
+#undef INT_FAST32_MAX
+#undef UINT_FAST32_MAX
+#define INT_FAST32_MIN  LONG_MIN
+#define INT_FAST32_MAX  LONG_MAX
+#define UINT_FAST32_MAX  ULONG_MAX
+
+#undef INT_FAST64_MIN
+#undef INT_FAST64_MAX
+#ifdef GL_INT64_T
+# define INT_FAST64_MIN  INT64_MIN
+# define INT_FAST64_MAX  INT64_MAX
+#endif
+
+#undef UINT_FAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_FAST64_MAX  UINT64_MAX
+#endif
+
+/* 7.18.2.4. Limits of integer types capable of holding object pointers */
+
+#undef INTPTR_MIN
+#undef INTPTR_MAX
+#undef UINTPTR_MAX
+#define INTPTR_MIN  LONG_MIN
+#define INTPTR_MAX  LONG_MAX
+#define UINTPTR_MAX  ULONG_MAX
+
+/* 7.18.2.5. Limits of greatest-width integer types */
+
+#undef INTMAX_MIN
+#undef INTMAX_MAX
+#ifdef INT64_MAX
+# define INTMAX_MIN  INT64_MIN
+# define INTMAX_MAX  INT64_MAX
+#else
+# define INTMAX_MIN  INT32_MIN
+# define INTMAX_MAX  INT32_MAX
+#endif
+
+#undef UINTMAX_MAX
+#ifdef UINT64_MAX
+# define UINTMAX_MAX  UINT64_MAX
+#else
+# define UINTMAX_MAX  UINT32_MAX
+#endif
+
+/* 7.18.3. Limits of other integer types */
+
+/* ptrdiff_t limits */
+#undef PTRDIFF_MIN
+#undef PTRDIFF_MAX
+#define PTRDIFF_MIN  \
+   _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+#define PTRDIFF_MAX  \
+   _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+
+/* sig_atomic_t limits */
+#undef SIG_ATOMIC_MIN
+#undef SIG_ATOMIC_MAX
+#define SIG_ATOMIC_MIN  \
+   _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+		0@SIG_ATOMIC_T_SUFFIX@)
+#define SIG_ATOMIC_MAX  \
+   _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+		0@SIG_ATOMIC_T_SUFFIX@)
+
+
+/* size_t limit */
+#undef SIZE_MAX
+#define SIZE_MAX  _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
+
+/* wchar_t limits */
+#undef WCHAR_MIN
+#undef WCHAR_MAX
+#define WCHAR_MIN  \
+   _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+#define WCHAR_MAX  \
+   _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+
+/* wint_t limits */
+#undef WINT_MIN
+#undef WINT_MAX
+#define WINT_MIN  \
+   _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+#define WINT_MAX  \
+   _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+
+#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
+
+/* 7.18.4. Macros for integer constants */
+
+#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
+
+/* 7.18.4.1. Macros for minimum-width integer constants */
+/* According to ISO C 99 Technical Corrigendum 1 */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits, and int is 32 bits.  */
+
+#undef INT8_C
+#undef UINT8_C
+#define INT8_C(x) x
+#define UINT8_C(x) x
+
+#undef INT16_C
+#undef UINT16_C
+#define INT16_C(x) x
+#define UINT16_C(x) x
+
+#undef INT32_C
+#undef UINT32_C
+#define INT32_C(x) x
+#define UINT32_C(x) x ## U
+
+#undef INT64_C
+#undef UINT64_C
+#if LONG_MAX >> 31 >> 31 == 1
+# define INT64_C(x) x##L
+#elif defined _MSC_VER
+# define INT64_C(x) x##i64
+#elif @HAVE_LONG_LONG_INT@
+# define INT64_C(x) x##LL
+#endif
+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# define UINT64_C(x) x##UL
+#elif defined _MSC_VER
+# define UINT64_C(x) x##ui64
+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# define UINT64_C(x) x##ULL
+#endif
+
+/* 7.18.4.2. Macros for greatest-width integer constants */
+
+#undef INTMAX_C
+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define INTMAX_C(x)   x##LL
+#elif defined GL_INT64_T
+# define INTMAX_C(x)   INT64_C(x)
+#else
+# define INTMAX_C(x)   x##L
+#endif
+
+#undef UINTMAX_C
+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define UINTMAX_C(x)  x##ULL
+#elif defined GL_UINT64_T
+# define UINTMAX_C(x)  UINT64_C(x)
+#else
+# define UINTMAX_C(x)  x##UL
+#endif
+
+#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
+
+#endif /* _GL_STDINT_H */
+#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
diff -uNr nagios-plugins-1.4.11/gl/stdio.in.h nagios-plugins-1.4.12/gl/stdio.in.h
--- nagios-plugins-1.4.11/gl/stdio.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/stdio.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,382 @@
+/* A GNU-like <stdio.h>.
+
+   Copyright (C) 2004, 2007-2008 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#if defined __need_FILE || defined __need___FILE
+/* Special invocation convention inside glibc header files.  */
+
+#@INCLUDE_NEXT@ @NEXT_STDIO_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _GL_STDIO_H
+
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_STDIO_H@
+
+#ifndef _GL_STDIO_H
+#define _GL_STDIO_H
+
+#include <stdarg.h>
+#include <stddef.h>
+
+#if (@GNULIB_FSEEKO@ && @REPLACE_FSEEKO@) \
+  || (@GNULIB_FTELLO@ && @REPLACE_FTELLO@) \
+  || (@GNULIB_GETDELIM@ && !@HAVE_DECL_GETDELIM@) \
+  || (@GNULIB_GETLINE@ && (!@HAVE_DECL_GETLINE@ || @REPLACE_GETLINE@))
+/* Get off_t and ssize_t.  */
+# include <sys/types.h>
+#endif
+
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+#  define __attribute__(Spec) /* empty */
+# endif
+/* The __-protected variants of `format' and `printf' attributes
+   are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+#  define __format__ format
+#  define __printf__ printf
+# endif
+#endif
+
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if @GNULIB_FPRINTF_POSIX@
+# if @REPLACE_FPRINTF@
+#  define fprintf rpl_fprintf
+extern int fprintf (FILE *fp, const char *format, ...)
+       __attribute__ ((__format__ (__printf__, 2, 3)));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef fprintf
+# define fprintf \
+    (GL_LINK_WARNING ("fprintf is not always POSIX compliant - " \
+                      "use gnulib module fprintf-posix for portable " \
+                      "POSIX compliance"), \
+     fprintf)
+#endif
+
+#if @GNULIB_VFPRINTF_POSIX@
+# if @REPLACE_VFPRINTF@
+#  define vfprintf rpl_vfprintf
+extern int vfprintf (FILE *fp, const char *format, va_list args)
+       __attribute__ ((__format__ (__printf__, 2, 0)));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef vfprintf
+# define vfprintf(s,f,a) \
+    (GL_LINK_WARNING ("vfprintf is not always POSIX compliant - " \
+                      "use gnulib module vfprintf-posix for portable " \
+                      "POSIX compliance"), \
+     vfprintf (s, f, a))
+#endif
+
+#if @GNULIB_PRINTF_POSIX@
+# if @REPLACE_PRINTF@
+/* Don't break __attribute__((format(printf,M,N))).  */
+#  define printf __printf__
+extern int printf (const char *format, ...)
+       __attribute__ ((__format__ (__printf__, 1, 2)));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef printf
+# define printf \
+    (GL_LINK_WARNING ("printf is not always POSIX compliant - " \
+                      "use gnulib module printf-posix for portable " \
+                      "POSIX compliance"), \
+     printf)
+/* Don't break __attribute__((format(printf,M,N))).  */
+# define format(kind,m,n) format (__##kind##__, m, n)
+# define __format__(kind,m,n) __format__ (__##kind##__, m, n)
+# define ____printf____ __printf__
+# define ____scanf____ __scanf__
+# define ____strftime____ __strftime__
+# define ____strfmon____ __strfmon__
+#endif
+
+#if @GNULIB_VPRINTF_POSIX@
+# if @REPLACE_VPRINTF@
+#  define vprintf rpl_vprintf
+extern int vprintf (const char *format, va_list args)
+       __attribute__ ((__format__ (__printf__, 1, 0)));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef vprintf
+# define vprintf(f,a) \
+    (GL_LINK_WARNING ("vprintf is not always POSIX compliant - " \
+                      "use gnulib module vprintf-posix for portable " \
+                      "POSIX compliance"), \
+     vprintf (f, a))
+#endif
+
+#if @GNULIB_SNPRINTF@
+# if @REPLACE_SNPRINTF@
+#  define snprintf rpl_snprintf
+# endif
+# if @REPLACE_SNPRINTF@ || !@HAVE_DECL_SNPRINTF@
+extern int snprintf (char *str, size_t size, const char *format, ...)
+       __attribute__ ((__format__ (__printf__, 3, 4)));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef snprintf
+# define snprintf \
+    (GL_LINK_WARNING ("snprintf is unportable - " \
+                      "use gnulib module snprintf for portability"), \
+     snprintf)
+#endif
+
+#if @GNULIB_VSNPRINTF@
+# if @REPLACE_VSNPRINTF@
+#  define vsnprintf rpl_vsnprintf
+# endif
+# if @REPLACE_VSNPRINTF@ || !@HAVE_DECL_VSNPRINTF@
+extern int vsnprintf (char *str, size_t size, const char *format, va_list args)
+       __attribute__ ((__format__ (__printf__, 3, 0)));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef vsnprintf
+# define vsnprintf(b,s,f,a) \
+    (GL_LINK_WARNING ("vsnprintf is unportable - " \
+                      "use gnulib module vsnprintf for portability"), \
+     vsnprintf (b, s, f, a))
+#endif
+
+#if @GNULIB_SPRINTF_POSIX@
+# if @REPLACE_SPRINTF@
+#  define sprintf rpl_sprintf
+extern int sprintf (char *str, const char *format, ...)
+       __attribute__ ((__format__ (__printf__, 2, 3)));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef sprintf
+# define sprintf \
+    (GL_LINK_WARNING ("sprintf is not always POSIX compliant - " \
+                      "use gnulib module sprintf-posix for portable " \
+                      "POSIX compliance"), \
+     sprintf)
+#endif
+
+#if @GNULIB_VSPRINTF_POSIX@
+# if @REPLACE_VSPRINTF@
+#  define vsprintf rpl_vsprintf
+extern int vsprintf (char *str, const char *format, va_list args)
+       __attribute__ ((__format__ (__printf__, 2, 0)));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef vsprintf
+# define vsprintf(b,f,a) \
+    (GL_LINK_WARNING ("vsprintf is not always POSIX compliant - " \
+                      "use gnulib module vsprintf-posix for portable " \
+                      "POSIX compliance"), \
+     vsprintf (b, f, a))
+#endif
+
+#if @GNULIB_VASPRINTF@
+# if @REPLACE_VASPRINTF@
+#  define asprintf rpl_asprintf
+#  define vasprintf rpl_vasprintf
+# endif
+# if @REPLACE_VASPRINTF@ || !@HAVE_VASPRINTF@
+  /* Write formatted output to a string dynamically allocated with malloc().
+     If the memory allocation succeeds, store the address of the string in
+     *RESULT and return the number of resulting bytes, excluding the trailing
+     NUL.  Upon memory allocation error, or some other error, return -1.  */
+  extern int asprintf (char **result, const char *format, ...)
+    __attribute__ ((__format__ (__printf__, 2, 3)));
+  extern int vasprintf (char **result, const char *format, va_list args)
+    __attribute__ ((__format__ (__printf__, 2, 0)));
+# endif
+#endif
+
+#if @GNULIB_FOPEN@
+# if @REPLACE_FOPEN@
+#  define fopen rpl_fopen
+extern FILE * fopen (const char *filename, const char *mode);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef fopen
+# define fopen(f,m) \
+   (GL_LINK_WARNING ("fopen on Win32 platforms is not POSIX compatible - " \
+                     "use gnulib module fopen for portability"), \
+    fopen (f, m))
+#endif
+
+#if @GNULIB_FREOPEN@
+# if @REPLACE_FREOPEN@
+#  define freopen rpl_freopen
+extern FILE * freopen (const char *filename, const char *mode, FILE *stream);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef freopen
+# define freopen(f,m,s) \
+   (GL_LINK_WARNING ("freopen on Win32 platforms is not POSIX compatible - " \
+                     "use gnulib module freopen for portability"), \
+    freopen (f, m, s))
+#endif
+
+#if @GNULIB_FSEEKO@
+# if @REPLACE_FSEEKO@
+/* Provide fseek, fseeko functions that are aware of a preceding
+   fflush(), and which detect pipes.  */
+#  define fseeko rpl_fseeko
+extern int fseeko (FILE *fp, off_t offset, int whence);
+#  define fseek(fp, offset, whence) fseeko (fp, (off_t)(offset), whence)
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef fseeko
+# define fseeko(f,o,w) \
+   (GL_LINK_WARNING ("fseeko is unportable - " \
+                     "use gnulib module fseeko for portability"), \
+    fseeko (f, o, w))
+#endif
+
+#if @GNULIB_FSEEK@ && @REPLACE_FSEEK@
+extern int rpl_fseek (FILE *fp, long offset, int whence);
+# undef fseek
+# if defined GNULIB_POSIXCHECK
+#  define fseek(f,o,w) \
+     (GL_LINK_WARNING ("fseek cannot handle files larger than 4 GB " \
+                       "on 32-bit platforms - " \
+                       "use fseeko function for handling of large files"), \
+      rpl_fseek (f, o, w))
+# else
+#  define fseek rpl_fseek
+# endif
+#elif defined GNULIB_POSIXCHECK
+# ifndef fseek
+#  define fseek(f,o,w) \
+     (GL_LINK_WARNING ("fseek cannot handle files larger than 4 GB " \
+                       "on 32-bit platforms - " \
+                       "use fseeko function for handling of large files"), \
+      fseek (f, o, w))
+# endif
+#endif
+
+#if @GNULIB_FTELLO@
+# if @REPLACE_FTELLO@
+#  define ftello rpl_ftello
+extern off_t ftello (FILE *fp);
+#  define ftell(fp) ftello (fp)
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef ftello
+# define ftello(f) \
+   (GL_LINK_WARNING ("ftello is unportable - " \
+                     "use gnulib module ftello for portability"), \
+    ftello (f))
+#endif
+
+#if @GNULIB_FTELL@ && @REPLACE_FTELL@
+extern long rpl_ftell (FILE *fp);
+# undef ftell
+# if GNULIB_POSIXCHECK
+#  define ftell(f) \
+     (GL_LINK_WARNING ("ftell cannot handle files larger than 4 GB " \
+                       "on 32-bit platforms - " \
+                       "use ftello function for handling of large files"), \
+      rpl_ftell (f))
+# else
+#  define ftell rpl_ftell
+# endif
+#elif defined GNULIB_POSIXCHECK
+# ifndef ftell
+#  define ftell(f) \
+     (GL_LINK_WARNING ("ftell cannot handle files larger than 4 GB " \
+                       "on 32-bit platforms - " \
+                       "use ftello function for handling of large files"), \
+      ftell (f))
+# endif
+#endif
+
+#if @GNULIB_FFLUSH@
+# if @REPLACE_FFLUSH@
+#  define fflush rpl_fflush
+  /* Flush all pending data on STREAM according to POSIX rules.  Both
+     output and seekable input streams are supported.
+     Note! LOSS OF DATA can occur if fflush is applied on an input stream
+     that is _not_seekable_ or on an update stream that is _not_seekable_
+     and in which the most recent operation was input.  Seekability can
+     be tested with lseek(fileno(fp),0,SEEK_CUR).  */
+  extern int fflush (FILE *gl_stream);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef fflush
+# define fflush(f) \
+   (GL_LINK_WARNING ("fflush is not always POSIX compliant - " \
+                     "use gnulib module fflush for portable " \
+                     "POSIX compliance"), \
+    fflush (f))
+#endif
+
+#if @GNULIB_GETDELIM@
+# if !@HAVE_DECL_GETDELIM@
+/* Read input, up to (and including) the next occurrence of DELIMITER, from
+   STREAM, store it in *LINEPTR (and NUL-terminate it).
+   *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
+   bytes of space.  It is realloc'd as necessary.
+   Return the number of bytes read and stored at *LINEPTR (not including the
+   NUL terminator), or -1 on error or EOF.  */
+extern ssize_t getdelim (char **lineptr, size_t *linesize, int delimiter,
+			 FILE *stream);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getdelim
+# define getdelim(l, s, d, f)					    \
+  (GL_LINK_WARNING ("getdelim is unportable - "			    \
+		    "use gnulib module getdelim for portability"),  \
+   getdelim (l, s, d, f))
+#endif
+
+#if @GNULIB_GETLINE@
+# if @REPLACE_GETLINE@
+#  undef getline
+#  define getline rpl_getline
+# endif
+# if !@HAVE_DECL_GETLINE@ || @REPLACE_GETLINE@
+/* Read a line, up to (and including) the next newline, from STREAM, store it
+   in *LINEPTR (and NUL-terminate it).
+   *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
+   bytes of space.  It is realloc'd as necessary.
+   Return the number of bytes read and stored at *LINEPTR (not including the
+   NUL terminator), or -1 on error or EOF.  */
+extern ssize_t getline (char **lineptr, size_t *linesize, FILE *stream);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getline
+# define getline(l, s, f)						\
+  (GL_LINK_WARNING ("getline is unportable - "				\
+		    "use gnulib module getline for portability"),	\
+   getline (l, s, f))
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_STDIO_H */
+#endif /* _GL_STDIO_H */
+#endif
diff -uNr nagios-plugins-1.4.11/gl/stdlib.in.h nagios-plugins-1.4.12/gl/stdlib.in.h
--- nagios-plugins-1.4.11/gl/stdlib.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/stdlib.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,208 @@
+/* A GNU-like <stdlib.h>.
+
+   Copyright (C) 1995, 2001-2004, 2006-2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#if defined __need_malloc_and_calloc
+/* Special invocation convention inside glibc header files.  */
+
+#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _GL_STDLIB_H
+
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
+
+#ifndef _GL_STDLIB_H
+#define _GL_STDLIB_H
+
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+
+/* Some systems do not define EXIT_*, despite otherwise supporting C89.  */
+#ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+#endif
+/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
+   with proper operation of xargs.  */
+#ifndef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#elif EXIT_FAILURE != 1
+# undef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if @GNULIB_MALLOC_POSIX@
+# if !@HAVE_MALLOC_POSIX@
+#  undef malloc
+#  define malloc rpl_malloc
+extern void * malloc (size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef malloc
+# define malloc(s) \
+    (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \
+                      "use gnulib module malloc-posix for portability"), \
+     malloc (s))
+#endif
+
+
+#if @GNULIB_REALLOC_POSIX@
+# if !@HAVE_REALLOC_POSIX@
+#  undef realloc
+#  define realloc rpl_realloc
+extern void * realloc (void *ptr, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef realloc
+# define realloc(p,s) \
+    (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \
+                      "use gnulib module realloc-posix for portability"), \
+     realloc (p, s))
+#endif
+
+
+#if @GNULIB_CALLOC_POSIX@
+# if !@HAVE_CALLOC_POSIX@
+#  undef calloc
+#  define calloc rpl_calloc
+extern void * calloc (size_t nmemb, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef calloc
+# define calloc(n,s) \
+    (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \
+                      "use gnulib module calloc-posix for portability"), \
+     calloc (n, s))
+#endif
+
+
+#if @GNULIB_GETSUBOPT@
+/* Assuming *OPTIONP is a comma separated list of elements of the form
+   "token" or "token=value", getsubopt parses the first of these elements.
+   If the first element refers to a "token" that is member of the given
+   NULL-terminated array of tokens:
+     - It replaces the comma with a NUL byte, updates *OPTIONP to point past
+       the first option and the comma, sets *VALUEP to the value of the
+       element (or NULL if it doesn't contain an "=" sign),
+     - It returns the index of the "token" in the given array of tokens.
+   Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
+   For more details see the POSIX:2001 specification.
+   http://www.opengroup.org/susv3xsh/getsubopt.html */
+# if !@HAVE_GETSUBOPT@
+extern int getsubopt (char **optionp, char *const *tokens, char **valuep);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getsubopt
+# define getsubopt(o,t,v) \
+    (GL_LINK_WARNING ("getsubopt is unportable - " \
+                      "use gnulib module getsubopt for portability"), \
+     getsubopt (o, t, v))
+#endif
+
+
+#if @GNULIB_MKDTEMP@
+# if !@HAVE_MKDTEMP@
+/* Create a unique temporary directory from TEMPLATE.
+   The last six characters of TEMPLATE must be "XXXXXX";
+   they are replaced with a string that makes the directory name unique.
+   Returns TEMPLATE, or a null pointer if it cannot get a unique name.
+   The directory is created mode 700.  */
+extern char * mkdtemp (char * /*template*/);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mkdtemp
+# define mkdtemp(t) \
+    (GL_LINK_WARNING ("mkdtemp is unportable - " \
+                      "use gnulib module mkdtemp for portability"), \
+     mkdtemp (t))
+#endif
+
+
+#if @GNULIB_MKSTEMP@
+# if @REPLACE_MKSTEMP@
+/* Create a unique temporary file from TEMPLATE.
+   The last six characters of TEMPLATE must be "XXXXXX";
+   they are replaced with a string that makes the file name unique.
+   The file is then created, ensuring it didn't exist before.
+   The file is created read-write (mask at least 0600 & ~umask), but it may be
+   world-readable and world-writable (mask 0666 & ~umask), depending on the
+   implementation.
+   Returns the open file descriptor if successful, otherwise -1 and errno
+   set.  */
+#  define mkstemp rpl_mkstemp
+extern int mkstemp (char * /*template*/);
+# else
+/* On MacOS X 10.3, only <unistd.h> declares mkstemp.  */
+#  include <unistd.h>
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mkstemp
+# define mkstemp(t) \
+    (GL_LINK_WARNING ("mkstemp is unportable - " \
+                      "use gnulib module mkstemp for portability"), \
+     mkstemp (t))
+#endif
+
+
+#if @GNULIB_PUTENV@
+# if @REPLACE_PUTENV@
+#  undef putenv
+#  define putenv rpl_putenv
+extern int putenv (char *string);
+# endif
+#endif
+
+
+#if @GNULIB_SETENV@
+# if !@HAVE_SETENV@
+/* Set NAME to VALUE in the environment.
+   If REPLACE is nonzero, overwrite an existing value.  */
+extern int setenv (const char *name, const char *value, int replace);
+# endif
+#endif
+
+
+#if @GNULIB_UNSETENV@
+# if @HAVE_UNSETENV@
+#  if @VOID_UNSETENV@
+/* On some systems, unsetenv() returns void.
+   This is the case for MacOS X 10.3, FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4.  */
+#   define unsetenv(name) ((unsetenv)(name), 0)
+#  endif
+# else
+/* Remove the variable NAME from the environment.  */
+extern int unsetenv (const char *name);
+# endif
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_STDLIB_H */
+#endif /* _GL_STDLIB_H */
+#endif
diff -uNr nagios-plugins-1.4.11/gl/strcasecmp.c nagios-plugins-1.4.12/gl/strcasecmp.c
--- nagios-plugins-1.4.11/gl/strcasecmp.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strcasecmp.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,103 +0,0 @@
-/* Case-insensitive string comparison function.
-   Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc.
-   Written by Bruno Haible <bruno@clisp.org>, 2005,
-   based on earlier glibc code.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include "strcase.h"
-
-#include <ctype.h>
-#include <limits.h>
-
-#if HAVE_MBRTOWC
-# include "mbuiter.h"
-#endif
-
-#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
-
-/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
-   greater than zero if S1 is lexicographically less than, equal to or greater
-   than S2.
-   Note: This function may, in multibyte locales, return 0 for strings of
-   different lengths!  */
-int
-strcasecmp (const char *s1, const char *s2)
-{
-  if (s1 == s2)
-    return 0;
-
-  /* Be careful not to look at the entire extent of s1 or s2 until needed.
-     This is useful because when two strings differ, the difference is
-     most often already in the very few first characters.  */
-#if HAVE_MBRTOWC
-  if (MB_CUR_MAX > 1)
-    {
-      mbui_iterator_t iter1;
-      mbui_iterator_t iter2;
-
-      mbui_init (iter1, s1);
-      mbui_init (iter2, s2);
-
-      while (mbui_avail (iter1) && mbui_avail (iter2))
-	{
-	  int cmp = mb_casecmp (mbui_cur (iter1), mbui_cur (iter2));
-
-	  if (cmp != 0)
-	    return cmp;
-
-	  mbui_advance (iter1);
-	  mbui_advance (iter2);
-	}
-      if (mbui_avail (iter1))
-	/* s2 terminated before s1.  */
-	return 1;
-      if (mbui_avail (iter2))
-	/* s1 terminated before s2.  */
-	return -1;
-      return 0;
-    }
-  else
-#endif
-    {
-      const unsigned char *p1 = (const unsigned char *) s1;
-      const unsigned char *p2 = (const unsigned char *) s2;
-      unsigned char c1, c2;
-
-      do
-	{
-	  c1 = TOLOWER (*p1);
-	  c2 = TOLOWER (*p2);
-
-	  if (c1 == '\0')
-	    break;
-
-	  ++p1;
-	  ++p2;
-	}
-      while (c1 == c2);
-
-      if (UCHAR_MAX <= INT_MAX)
-	return c1 - c2;
-      else
-	/* On machines where 'char' and 'int' are types of the same size, the
-	   difference of two 'unsigned char' values - including the sign bit -
-	   doesn't fit in an 'int'.  */
-	return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
-    }
-}
diff -uNr nagios-plugins-1.4.11/gl/strcase.h nagios-plugins-1.4.12/gl/strcase.h
--- nagios-plugins-1.4.11/gl/strcase.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strcase.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,56 +0,0 @@
-/* Case-insensitive string comparison functions.
-   Copyright (C) 1995-1996, 2001, 2003, 2005-2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _STRCASE_H
-#define _STRCASE_H
-
-#include <stddef.h>
-/* Include header files with a possibly conflicting declarations of strcasecmp
-   before we define it as a macro, so that they will be no-ops if included
-   after strcasecmp is defined as a macro.  */
-#include <string.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* No known system has a strcasecmp() function that works correctly in
-   multibyte locales.  Therefore we use our version always.  */
-#define strcasecmp rpl_strcasecmp
-/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
-   greater than zero if S1 is lexicographically less than, equal to or greater
-   than S2.
-   Note: This function may, in multibyte locales, return 0 for strings of
-   different lengths!  */
-extern int strcasecmp (const char *s1, const char *s2);
-
-/* Compare no more than N characters of strings S1 and S2, ignoring case,
-   returning less than, equal to or greater than zero if S1 is
-   lexicographically less than, equal to or greater than S2.
-   Note: This function can not work correctly in multibyte locales.  */
-#if ! HAVE_DECL_STRNCASECMP
-extern int strncasecmp (const char *s1, const char *s2, size_t n);
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* _STRCASE_H */
diff -uNr nagios-plugins-1.4.11/gl/strdup.c nagios-plugins-1.4.12/gl/strdup.c
--- nagios-plugins-1.4.11/gl/strdup.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strdup.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,11 +1,11 @@
-/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004, 2006 Free
+/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004, 2006, 2007 Free
    Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -19,13 +19,13 @@
 
 #ifndef _LIBC
 # include <config.h>
-/* Get specification.  */
-# include "strdup.h"
 #endif
 
-#include <stdlib.h>
+/* Get specification.  */
 #include <string.h>
 
+#include <stdlib.h>
+
 #undef __strdup
 #ifdef _LIBC
 # undef strdup
diff -uNr nagios-plugins-1.4.11/gl/strdup.h nagios-plugins-1.4.12/gl/strdup.h
--- nagios-plugins-1.4.11/gl/strdup.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strdup.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-/* strdup.h -- duplicate a string
-   Copyright (C) 2004, 2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef STRDUP_H_
-#define STRDUP_H_
-
-/* Get strdup declaration, if available.  */
-#include <string.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#if defined HAVE_DECL_STRDUP && !HAVE_DECL_STRDUP && !defined strdup
-/* Duplicate S, returning an identical malloc'd string.  */
-extern char *strdup (const char *s);
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* STRDUP_H_ */
diff -uNr nagios-plugins-1.4.11/gl/strerror.c nagios-plugins-1.4.12/gl/strerror.c
--- nagios-plugins-1.4.11/gl/strerror.c	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strerror.c	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,49 @@
+/* strerror.c --- POSIX compatible system error routine
+
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <string.h>
+
+#if REPLACE_STRERROR
+
+# include <stdio.h>
+
+# include "intprops.h"
+
+# undef strerror
+# if ! HAVE_DECL_STRERROR
+#  define strerror(n) NULL
+# endif
+
+char *
+rpl_strerror (int n)
+{
+  char *result = strerror (n);
+
+  if (result == NULL || result[0] == '\0')
+    {
+      static char const fmt[] = "Unknown error (%d)";
+      static char mesg[sizeof fmt + INT_STRLEN_BOUND (n)];
+      sprintf (mesg, fmt, n);
+      return mesg;
+    }
+
+  return result;
+}
+
+#endif
diff -uNr nagios-plugins-1.4.11/gl/string.in.h nagios-plugins-1.4.12/gl/string.in.h
--- nagios-plugins-1.4.11/gl/string.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/string.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,569 @@
+/* A GNU-like <string.h>.
+
+   Copyright (C) 1995-1996, 2001-2008 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GL_STRING_H
+
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_STRING_H@
+
+#ifndef _GL_STRING_H
+#define _GL_STRING_H
+
+
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+#  define __attribute__(Spec) /* empty */
+# endif
+/* The attribute __pure__ was added in gcc 2.96.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
+#  define __pure__ /* empty */
+# endif
+#endif
+
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Return the first occurrence of NEEDLE in HAYSTACK.  */
+#if @GNULIB_MEMMEM@
+# if @REPLACE_MEMMEM@
+#  define memmem rpl_memmem
+# endif
+# if ! @HAVE_DECL_MEMMEM@ || @REPLACE_MEMMEM@
+extern void *memmem (void const *__haystack, size_t __haystack_len,
+		     void const *__needle, size_t __needle_len)
+  __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef memmem
+# define memmem(a,al,b,bl) \
+    (GL_LINK_WARNING ("memmem is unportable and often quadratic - " \
+                      "use gnulib module memmem-simple for portability, " \
+                      "and module memmem for speed" ), \
+     memmem (a, al, b, bl))
+#endif
+
+/* Copy N bytes of SRC to DEST, return pointer to bytes after the
+   last written byte.  */
+#if @GNULIB_MEMPCPY@
+# if ! @HAVE_MEMPCPY@
+extern void *mempcpy (void *restrict __dest, void const *restrict __src,
+		      size_t __n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mempcpy
+# define mempcpy(a,b,n) \
+    (GL_LINK_WARNING ("mempcpy is unportable - " \
+                      "use gnulib module mempcpy for portability"), \
+     mempcpy (a, b, n))
+#endif
+
+/* Search backwards through a block for a byte (specified as an int).  */
+#if @GNULIB_MEMRCHR@
+# if ! @HAVE_DECL_MEMRCHR@
+extern void *memrchr (void const *, int, size_t)
+  __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef memrchr
+# define memrchr(a,b,c) \
+    (GL_LINK_WARNING ("memrchr is unportable - " \
+                      "use gnulib module memrchr for portability"), \
+     memrchr (a, b, c))
+#endif
+
+/* Copy SRC to DST, returning the address of the terminating '\0' in DST.  */
+#if @GNULIB_STPCPY@
+# if ! @HAVE_STPCPY@
+extern char *stpcpy (char *restrict __dst, char const *restrict __src);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef stpcpy
+# define stpcpy(a,b) \
+    (GL_LINK_WARNING ("stpcpy is unportable - " \
+                      "use gnulib module stpcpy for portability"), \
+     stpcpy (a, b))
+#endif
+
+/* Copy no more than N bytes of SRC to DST, returning a pointer past the
+   last non-NUL byte written into DST.  */
+#if @GNULIB_STPNCPY@
+# if ! @HAVE_STPNCPY@
+#  define stpncpy gnu_stpncpy
+extern char *stpncpy (char *restrict __dst, char const *restrict __src,
+		      size_t __n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef stpncpy
+# define stpncpy(a,b,n) \
+    (GL_LINK_WARNING ("stpncpy is unportable - " \
+                      "use gnulib module stpncpy for portability"), \
+     stpncpy (a, b, n))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strchr() does not work with multibyte strings if the locale encoding is
+   GB18030 and the character to be searched is a digit.  */
+# undef strchr
+# define strchr(s,c) \
+    (GL_LINK_WARNING ("strchr cannot work correctly on character strings " \
+                      "in some multibyte locales - " \
+                      "use mbschr if you care about internationalization"), \
+     strchr (s, c))
+#endif
+
+/* Find the first occurrence of C in S or the final NUL byte.  */
+#if @GNULIB_STRCHRNUL@
+# if ! @HAVE_STRCHRNUL@
+extern char *strchrnul (char const *__s, int __c_in)
+  __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strchrnul
+# define strchrnul(a,b) \
+    (GL_LINK_WARNING ("strchrnul is unportable - " \
+                      "use gnulib module strchrnul for portability"), \
+     strchrnul (a, b))
+#endif
+
+/* Duplicate S, returning an identical malloc'd string.  */
+#if @GNULIB_STRDUP@
+# if ! @HAVE_DECL_STRDUP@ && ! defined strdup
+extern char *strdup (char const *__s);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strdup
+# define strdup(a) \
+    (GL_LINK_WARNING ("strdup is unportable - " \
+                      "use gnulib module strdup for portability"), \
+     strdup (a))
+#endif
+
+/* Return a newly allocated copy of at most N bytes of STRING.  */
+#if @GNULIB_STRNDUP@
+# if ! @HAVE_STRNDUP@
+#  undef strndup
+#  define strndup rpl_strndup
+# endif
+# if ! @HAVE_STRNDUP@ || ! @HAVE_DECL_STRNDUP@
+extern char *strndup (char const *__string, size_t __n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strndup
+# define strndup(a,n) \
+    (GL_LINK_WARNING ("strndup is unportable - " \
+                      "use gnulib module strndup for portability"), \
+     strndup (a, n))
+#endif
+
+/* Find the length (number of bytes) of STRING, but scan at most
+   MAXLEN bytes.  If no '\0' terminator is found in that many bytes,
+   return MAXLEN.  */
+#if @GNULIB_STRNLEN@
+# if ! @HAVE_DECL_STRNLEN@
+extern size_t strnlen (char const *__string, size_t __maxlen)
+  __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strnlen
+# define strnlen(a,n) \
+    (GL_LINK_WARNING ("strnlen is unportable - " \
+                      "use gnulib module strnlen for portability"), \
+     strnlen (a, n))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strcspn() assumes the second argument is a list of single-byte characters.
+   Even in this simple case, it does not work with multibyte strings if the
+   locale encoding is GB18030 and one of the characters to be searched is a
+   digit.  */
+# undef strcspn
+# define strcspn(s,a) \
+    (GL_LINK_WARNING ("strcspn cannot work correctly on character strings " \
+                      "in multibyte locales - " \
+                      "use mbscspn if you care about internationalization"), \
+     strcspn (s, a))
+#endif
+
+/* Find the first occurrence in S of any character in ACCEPT.  */
+#if @GNULIB_STRPBRK@
+# if ! @HAVE_STRPBRK@
+extern char *strpbrk (char const *__s, char const *__accept)
+  __attribute__ ((__pure__));
+# endif
+# if defined GNULIB_POSIXCHECK
+/* strpbrk() assumes the second argument is a list of single-byte characters.
+   Even in this simple case, it does not work with multibyte strings if the
+   locale encoding is GB18030 and one of the characters to be searched is a
+   digit.  */
+#  undef strpbrk
+#  define strpbrk(s,a) \
+     (GL_LINK_WARNING ("strpbrk cannot work correctly on character strings " \
+                       "in multibyte locales - " \
+                       "use mbspbrk if you care about internationalization"), \
+      strpbrk (s, a))
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strpbrk
+# define strpbrk(s,a) \
+    (GL_LINK_WARNING ("strpbrk is unportable - " \
+                      "use gnulib module strpbrk for portability"), \
+     strpbrk (s, a))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strspn() assumes the second argument is a list of single-byte characters.
+   Even in this simple case, it cannot work with multibyte strings.  */
+# undef strspn
+# define strspn(s,a) \
+    (GL_LINK_WARNING ("strspn cannot work correctly on character strings " \
+                      "in multibyte locales - " \
+                      "use mbsspn if you care about internationalization"), \
+     strspn (s, a))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strrchr() does not work with multibyte strings if the locale encoding is
+   GB18030 and the character to be searched is a digit.  */
+# undef strrchr
+# define strrchr(s,c) \
+    (GL_LINK_WARNING ("strrchr cannot work correctly on character strings " \
+                      "in some multibyte locales - " \
+                      "use mbsrchr if you care about internationalization"), \
+     strrchr (s, c))
+#endif
+
+/* Search the next delimiter (char listed in DELIM) starting at *STRINGP.
+   If one is found, overwrite it with a NUL, and advance *STRINGP
+   to point to the next char after it.  Otherwise, set *STRINGP to NULL.
+   If *STRINGP was already NULL, nothing happens.
+   Return the old value of *STRINGP.
+
+   This is a variant of strtok() that is multithread-safe and supports
+   empty fields.
+
+   Caveat: It modifies the original string.
+   Caveat: These functions cannot be used on constant strings.
+   Caveat: The identity of the delimiting character is lost.
+   Caveat: It doesn't work with multibyte strings unless all of the delimiter
+           characters are ASCII characters < 0x30.
+
+   See also strtok_r().  */
+#if @GNULIB_STRSEP@
+# if ! @HAVE_STRSEP@
+extern char *strsep (char **restrict __stringp, char const *restrict __delim);
+# endif
+# if defined GNULIB_POSIXCHECK
+#  undef strsep
+#  define strsep(s,d) \
+     (GL_LINK_WARNING ("strsep cannot work correctly on character strings " \
+                       "in multibyte locales - " \
+                       "use mbssep if you care about internationalization"), \
+      strsep (s, d))
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strsep
+# define strsep(s,d) \
+    (GL_LINK_WARNING ("strsep is unportable - " \
+                      "use gnulib module strsep for portability"), \
+     strsep (s, d))
+#endif
+
+#if @GNULIB_STRSTR@
+# if @REPLACE_STRSTR@
+#  define strstr rpl_strstr
+char *strstr (const char *haystack, const char *needle)
+  __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+/* strstr() does not work with multibyte strings if the locale encoding is
+   different from UTF-8:
+   POSIX says that it operates on "strings", and "string" in POSIX is defined
+   as a sequence of bytes, not of characters.  */
+# undef strstr
+# define strstr(a,b) \
+    (GL_LINK_WARNING ("strstr is quadratic on many systems, and cannot " \
+                      "work correctly on character strings in most "    \
+                      "multibyte locales - " \
+                      "use mbsstr if you care about internationalization, " \
+                      "or use strstr if you care about speed"), \
+     strstr (a, b))
+#endif
+
+/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive
+   comparison.  */
+#if @GNULIB_STRCASESTR@
+# if @REPLACE_STRCASESTR@
+#  define strcasestr rpl_strcasestr
+# endif
+# if ! @HAVE_STRCASESTR@ || @REPLACE_STRCASESTR@
+extern char *strcasestr (const char *haystack, const char *needle)
+  __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+/* strcasestr() does not work with multibyte strings:
+   It is a glibc extension, and glibc implements it only for unibyte
+   locales.  */
+# undef strcasestr
+# define strcasestr(a,b) \
+    (GL_LINK_WARNING ("strcasestr does work correctly on character strings " \
+                      "in multibyte locales - " \
+                      "use mbscasestr if you care about " \
+                      "internationalization, or use c-strcasestr if you want " \
+                      "a locale independent function"), \
+     strcasestr (a, b))
+#endif
+
+/* Parse S into tokens separated by characters in DELIM.
+   If S is NULL, the saved pointer in SAVE_PTR is used as
+   the next starting point.  For example:
+	char s[] = "-abc-=-def";
+	char *sp;
+	x = strtok_r(s, "-", &sp);	// x = "abc", sp = "=-def"
+	x = strtok_r(NULL, "-=", &sp);	// x = "def", sp = NULL
+	x = strtok_r(NULL, "=", &sp);	// x = NULL
+		// s = "abc\0-def\0"
+
+   This is a variant of strtok() that is multithread-safe.
+
+   For the POSIX documentation for this function, see:
+   http://www.opengroup.org/susv3xsh/strtok.html
+
+   Caveat: It modifies the original string.
+   Caveat: These functions cannot be used on constant strings.
+   Caveat: The identity of the delimiting character is lost.
+   Caveat: It doesn't work with multibyte strings unless all of the delimiter
+           characters are ASCII characters < 0x30.
+
+   See also strsep().  */
+#if @GNULIB_STRTOK_R@
+# if ! @HAVE_DECL_STRTOK_R@
+extern char *strtok_r (char *restrict s, char const *restrict delim,
+		       char **restrict save_ptr);
+# endif
+# if defined GNULIB_POSIXCHECK
+#  undef strtok_r
+#  define strtok_r(s,d,p) \
+     (GL_LINK_WARNING ("strtok_r cannot work correctly on character strings " \
+                       "in multibyte locales - " \
+                       "use mbstok_r if you care about internationalization"), \
+      strtok_r (s, d, p))
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strtok_r
+# define strtok_r(s,d,p) \
+    (GL_LINK_WARNING ("strtok_r is unportable - " \
+                      "use gnulib module strtok_r for portability"), \
+     strtok_r (s, d, p))
+#endif
+
+
+/* The following functions are not specified by POSIX.  They are gnulib
+   extensions.  */
+
+#if @GNULIB_MBSLEN@
+/* Return the number of multibyte characters in the character string STRING.
+   This considers multibyte characters, unlike strlen, which counts bytes.  */
+extern size_t mbslen (const char *string);
+#endif
+
+#if @GNULIB_MBSNLEN@
+/* Return the number of multibyte characters in the character string starting
+   at STRING and ending at STRING + LEN.  */
+extern size_t mbsnlen (const char *string, size_t len);
+#endif
+
+#if @GNULIB_MBSCHR@
+/* Locate the first single-byte character C in the character string STRING,
+   and return a pointer to it.  Return NULL if C is not found in STRING.
+   Unlike strchr(), this function works correctly in multibyte locales with
+   encodings such as GB18030.  */
+# define mbschr rpl_mbschr /* avoid collision with HP-UX function */
+extern char * mbschr (const char *string, int c);
+#endif
+
+#if @GNULIB_MBSRCHR@
+/* Locate the last single-byte character C in the character string STRING,
+   and return a pointer to it.  Return NULL if C is not found in STRING.
+   Unlike strrchr(), this function works correctly in multibyte locales with
+   encodings such as GB18030.  */
+# define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */
+extern char * mbsrchr (const char *string, int c);
+#endif
+
+#if @GNULIB_MBSSTR@
+/* Find the first occurrence of the character string NEEDLE in the character
+   string HAYSTACK.  Return NULL if NEEDLE is not found in HAYSTACK.
+   Unlike strstr(), this function works correctly in multibyte locales with
+   encodings different from UTF-8.  */
+extern char * mbsstr (const char *haystack, const char *needle);
+#endif
+
+#if @GNULIB_MBSCASECMP@
+/* Compare the character strings S1 and S2, ignoring case, returning less than,
+   equal to or greater than zero if S1 is lexicographically less than, equal to
+   or greater than S2.
+   Note: This function may, in multibyte locales, return 0 for strings of
+   different lengths!
+   Unlike strcasecmp(), this function works correctly in multibyte locales.  */
+extern int mbscasecmp (const char *s1, const char *s2);
+#endif
+
+#if @GNULIB_MBSNCASECMP@
+/* Compare the initial segment of the character string S1 consisting of at most
+   N characters with the initial segment of the character string S2 consisting
+   of at most N characters, ignoring case, returning less than, equal to or
+   greater than zero if the initial segment of S1 is lexicographically less
+   than, equal to or greater than the initial segment of S2.
+   Note: This function may, in multibyte locales, return 0 for initial segments
+   of different lengths!
+   Unlike strncasecmp(), this function works correctly in multibyte locales.
+   But beware that N is not a byte count but a character count!  */
+extern int mbsncasecmp (const char *s1, const char *s2, size_t n);
+#endif
+
+#if @GNULIB_MBSPCASECMP@
+/* Compare the initial segment of the character string STRING consisting of
+   at most mbslen (PREFIX) characters with the character string PREFIX,
+   ignoring case, returning less than, equal to or greater than zero if this
+   initial segment is lexicographically less than, equal to or greater than
+   PREFIX.
+   Note: This function may, in multibyte locales, return 0 if STRING is of
+   smaller length than PREFIX!
+   Unlike strncasecmp(), this function works correctly in multibyte
+   locales.  */
+extern char * mbspcasecmp (const char *string, const char *prefix);
+#endif
+
+#if @GNULIB_MBSCASESTR@
+/* Find the first occurrence of the character string NEEDLE in the character
+   string HAYSTACK, using case-insensitive comparison.
+   Note: This function may, in multibyte locales, return success even if
+   strlen (haystack) < strlen (needle) !
+   Unlike strcasestr(), this function works correctly in multibyte locales.  */
+extern char * mbscasestr (const char *haystack, const char *needle);
+#endif
+
+#if @GNULIB_MBSCSPN@
+/* Find the first occurrence in the character string STRING of any character
+   in the character string ACCEPT.  Return the number of bytes from the
+   beginning of the string to this occurrence, or to the end of the string
+   if none exists.
+   Unlike strcspn(), this function works correctly in multibyte locales.  */
+extern size_t mbscspn (const char *string, const char *accept);
+#endif
+
+#if @GNULIB_MBSPBRK@
+/* Find the first occurrence in the character string STRING of any character
+   in the character string ACCEPT.  Return the pointer to it, or NULL if none
+   exists.
+   Unlike strpbrk(), this function works correctly in multibyte locales.  */
+# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */
+extern char * mbspbrk (const char *string, const char *accept);
+#endif
+
+#if @GNULIB_MBSSPN@
+/* Find the first occurrence in the character string STRING of any character
+   not in the character string REJECT.  Return the number of bytes from the
+   beginning of the string to this occurrence, or to the end of the string
+   if none exists.
+   Unlike strspn(), this function works correctly in multibyte locales.  */
+extern size_t mbsspn (const char *string, const char *reject);
+#endif
+
+#if @GNULIB_MBSSEP@
+/* Search the next delimiter (multibyte character listed in the character
+   string DELIM) starting at the character string *STRINGP.
+   If one is found, overwrite it with a NUL, and advance *STRINGP to point
+   to the next multibyte character after it.  Otherwise, set *STRINGP to NULL.
+   If *STRINGP was already NULL, nothing happens.
+   Return the old value of *STRINGP.
+
+   This is a variant of mbstok_r() that supports empty fields.
+
+   Caveat: It modifies the original string.
+   Caveat: These functions cannot be used on constant strings.
+   Caveat: The identity of the delimiting character is lost.
+
+   See also mbstok_r().  */
+extern char * mbssep (char **stringp, const char *delim);
+#endif
+
+#if @GNULIB_MBSTOK_R@
+/* Parse the character string STRING into tokens separated by characters in
+   the character string DELIM.
+   If STRING is NULL, the saved pointer in SAVE_PTR is used as
+   the next starting point.  For example:
+	char s[] = "-abc-=-def";
+	char *sp;
+	x = mbstok_r(s, "-", &sp);	// x = "abc", sp = "=-def"
+	x = mbstok_r(NULL, "-=", &sp);	// x = "def", sp = NULL
+	x = mbstok_r(NULL, "=", &sp);	// x = NULL
+		// s = "abc\0-def\0"
+
+   Caveat: It modifies the original string.
+   Caveat: These functions cannot be used on constant strings.
+   Caveat: The identity of the delimiting character is lost.
+
+   See also mbssep().  */
+extern char * mbstok_r (char *string, const char *delim, char **save_ptr);
+#endif
+
+/* Map any int, typically from errno, into an error message.  */
+#if @GNULIB_STRERROR@
+# if @REPLACE_STRERROR@
+#  undef strerror
+#  define strerror rpl_strerror
+extern char *strerror (int);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strerror
+# define strerror(e) \
+    (GL_LINK_WARNING ("strerror is unportable - " \
+                      "use gnulib module strerror to guarantee non-NULL result"), \
+     strerror (e))
+#endif
+
+#if @GNULIB_STRSIGNAL@
+# if @REPLACE_STRSIGNAL@
+#  define strsignal rpl_strsignal
+# endif
+# if ! @HAVE_DECL_STRSIGNAL@ || @REPLACE_STRSIGNAL@
+extern char *strsignal (int __sig);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strsignal
+# define strsignal(a) \
+    (GL_LINK_WARNING ("strsignal is unportable - " \
+                      "use gnulib module strsignal for portability"), \
+     strsignal (a))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_STRING_H */
+#endif /* _GL_STRING_H */
diff -uNr nagios-plugins-1.4.11/gl/stripslash.c nagios-plugins-1.4.12/gl/stripslash.c
--- nagios-plugins-1.4.11/gl/stripslash.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/stripslash.c	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 1990, 2001, 2003-2006 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff -uNr nagios-plugins-1.4.11/gl/strncasecmp.c nagios-plugins-1.4.12/gl/strncasecmp.c
--- nagios-plugins-1.4.11/gl/strncasecmp.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strncasecmp.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,63 +0,0 @@
-/* strncasecmp.c -- case insensitive string comparator
-   Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include "strcase.h"
-
-#include <ctype.h>
-#include <limits.h>
-
-#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
-
-/* Compare no more than N bytes of strings S1 and S2,
-   ignoring case, returning less than, equal to or
-   greater than zero if S1 is lexicographically less
-   than, equal to or greater than S2.  */
-
-int
-strncasecmp (const char *s1, const char *s2, size_t n)
-{
-  register const unsigned char *p1 = (const unsigned char *) s1;
-  register const unsigned char *p2 = (const unsigned char *) s2;
-  unsigned char c1, c2;
-
-  if (p1 == p2 || n == 0)
-    return 0;
-
-  do
-    {
-      c1 = TOLOWER (*p1);
-      c2 = TOLOWER (*p2);
-
-      if (--n == 0 || c1 == '\0')
-	break;
-
-      ++p1;
-      ++p2;
-    }
-  while (c1 == c2);
-
-  if (UCHAR_MAX <= INT_MAX)
-    return c1 - c2;
-  else
-    /* On machines where 'char' and 'int' are types of the same size, the
-       difference of two 'unsigned char' values - including the sign bit -
-       doesn't fit in an 'int'.  */
-    return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
-}
diff -uNr nagios-plugins-1.4.11/gl/strndup.c nagios-plugins-1.4.12/gl/strndup.c
--- nagios-plugins-1.4.11/gl/strndup.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strndup.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,11 +1,11 @@
 /* A replacement function, for systems that lack strndup.
 
-   Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006 Free
-   Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006, 2007
+   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
+   Free Software Foundation; either version 3, or (at your option) any
    later version.
 
    This program is distributed in the hope that it will be useful,
@@ -18,12 +18,10 @@
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #include <config.h>
-#include "strndup.h"
 
-#include <stdlib.h>
 #include <string.h>
 
-#include "strnlen.h"
+#include <stdlib.h>
 
 char *
 strndup (char const *s, size_t n)
diff -uNr nagios-plugins-1.4.11/gl/strndup.h nagios-plugins-1.4.12/gl/strndup.h
--- nagios-plugins-1.4.11/gl/strndup.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strndup.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
-/* Duplicate a size-bounded string.
-   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Get size_t.  */
-#include <stddef.h>
-/* If HAVE_STRNDUP, get the strndup declaration.
-   If !HAVE_STRNDUP, include <string.h> now so that it doesn't cause
-   trouble if included later.  */
-#include <string.h>
-
-#if !HAVE_STRNDUP
-# undef strndup
-# define strndup rpl_strndup
-# if !HAVE_DECL_STRNDUP  /* Don't risk conflicting declarations.  */
-/* Return a newly allocated copy of at most N bytes of STRING.  */
-extern char *strndup (const char *string, size_t n);
-# endif
-#endif
diff -uNr nagios-plugins-1.4.11/gl/strnlen1.c nagios-plugins-1.4.12/gl/strnlen1.c
--- nagios-plugins-1.4.11/gl/strnlen1.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strnlen1.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,36 +0,0 @@
-/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   Copyright (C) 2005-2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include "strnlen1.h"
-
-#include <string.h>
-
-/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   If no '\0' terminator is found in that many characters, return MAXLEN.  */
-/* This is the same as strnlen (string, maxlen - 1) + 1.  */
-size_t
-strnlen1 (const char *string, size_t maxlen)
-{
-  const char *end = (const char *) memchr (string, '\0', maxlen);
-  if (end != NULL)
-    return end - string + 1;
-  else
-    return maxlen;
-}
diff -uNr nagios-plugins-1.4.11/gl/strnlen1.h nagios-plugins-1.4.12/gl/strnlen1.h
--- nagios-plugins-1.4.11/gl/strnlen1.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strnlen1.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,40 +0,0 @@
-/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   Copyright (C) 2005 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _STRNLEN1_H
-#define _STRNLEN1_H
-
-#include <stddef.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   If no '\0' terminator is found in that many characters, return MAXLEN.  */
-/* This is the same as strnlen (string, maxlen - 1) + 1.  */
-extern size_t strnlen1 (const char *string, size_t maxlen);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* _STRNLEN1_H */
diff -uNr nagios-plugins-1.4.11/gl/strnlen.c nagios-plugins-1.4.12/gl/strnlen.c
--- nagios-plugins-1.4.11/gl/strnlen.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strnlen.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,10 +1,10 @@
 /* Find the length of STRING, but scan at most MAXLEN characters.
-   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -18,7 +18,7 @@
 
 #include <config.h>
 
-#include "strnlen.h"
+#include <string.h>
 
 /* Find the length of STRING, but scan at most MAXLEN characters.
    If no '\0' terminator is found in that many characters, return MAXLEN.  */
diff -uNr nagios-plugins-1.4.11/gl/strnlen.h nagios-plugins-1.4.12/gl/strnlen.h
--- nagios-plugins-1.4.11/gl/strnlen.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/strnlen.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
-/* Find the length of STRING, but scan at most MAXLEN characters.
-   Copyright (C) 2005 Free Software Foundation, Inc.
-   Written by Simon Josefsson.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef STRNLEN_H
-#define STRNLEN_H
-
-/* Get strnlen declaration, if available.  */
-#include <string.h>
-
-#if defined HAVE_DECL_STRNLEN && !HAVE_DECL_STRNLEN
-/* Find the length (number of bytes) of STRING, but scan at most
-   MAXLEN bytes.  If no '\0' terminator is found in that many bytes,
-   return MAXLEN.  */
-extern size_t strnlen(const char *string, size_t maxlen);
-#endif
-
-#endif /* STRNLEN_H */
diff -uNr nagios-plugins-1.4.11/gl/sys_socket.in.h nagios-plugins-1.4.12/gl/sys_socket.in.h
--- nagios-plugins-1.4.11/gl/sys_socket.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/sys_socket.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,91 @@
+/* Provide a sys/socket header file for systems lacking it (read: MinGW).
+   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+   Written by Simon Josefsson.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* This file is supposed to be used on platforms that lack <sys/socket.h>
+   and on platforms where <sys/socket.h> cannot be included standalone.
+   It is intended to provide definitions and prototypes needed by an
+   application.  */
+
+#ifndef _GL_SYS_SOCKET_H
+
+#if @HAVE_SYS_SOCKET_H@
+
+/* On many platforms, <sys/socket.h> assumes prior inclusion of
+   <sys/types.h>.  */
+# include <sys/types.h>
+
+/* The include_next requires a split double-inclusion guard.  */
+# @INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@
+
+#endif
+
+#ifndef _GL_SYS_SOCKET_H
+#define _GL_SYS_SOCKET_H
+
+#if !@HAVE_SYS_SOCKET_H@
+
+/* A platform that lacks <sys/socket.h>.
+
+   Currently only MinGW is supported.  See the gnulib manual regarding
+   Windows sockets.  MinGW has the header files winsock2.h and
+   ws2tcpip.h that declare the sys/socket.h definitions we need.  Note
+   that you can influence which definitions you get by setting the
+   WINVER symbol before including these two files.  For example,
+   getaddrinfo is only available if _WIN32_WINNT >= 0x0501 (that
+   symbol is set indiriectly through WINVER).  You can set this by
+   adding AC_DEFINE(WINVER, 0x0501) to configure.ac.  Note that your
+   code may not run on older Windows releases then.  My Windows 2000
+   box was not able to run the code, for example.  The situation is
+   slightly confusing because:
+   http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/getaddrinfo_2.asp
+   suggests that getaddrinfo should be available on all Windows
+   releases. */
+
+
+# if @HAVE_WINSOCK2_H@
+#  include <winsock2.h>
+# endif
+# if @HAVE_WS2TCPIP_H@
+#  include <ws2tcpip.h>
+# endif
+
+/* For shutdown(). */
+# if !defined SHUT_RD && defined SD_RECEIVE
+#  define SHUT_RD SD_RECEIVE
+# endif
+# if !defined SHUT_WR && defined SD_SEND
+#  define SHUT_WR SD_SEND
+# endif
+# if !defined SHUT_RDWR && defined SD_BOTH
+#  define SHUT_RDWR SD_BOTH
+# endif
+
+# if defined _WIN32 || defined __WIN32__
+#  define ENOTSOCK                WSAENOTSOCK
+#  define EADDRINUSE              WSAEADDRINUSE
+#  define ENETRESET               WSAENETRESET
+#  define ECONNABORTED            WSAECONNABORTED
+#  define ECONNRESET              WSAECONNRESET
+#  define ENOTCONN                WSAENOTCONN
+#  define ESHUTDOWN               WSAESHUTDOWN
+# endif
+
+#endif /* HAVE_SYS_SOCKET_H */
+
+#endif /* _GL_SYS_SOCKET_H */
+#endif /* _GL_SYS_SOCKET_H */
diff -uNr nagios-plugins-1.4.11/gl/unistd_.h nagios-plugins-1.4.12/gl/unistd_.h
--- nagios-plugins-1.4.11/gl/unistd_.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/unistd_.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,52 +0,0 @@
-/* Substitute for and wrapper around <unistd.h>.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _GL_UNISTD_H
-#define _GL_UNISTD_H
-
-#if HAVE_UNISTD_H
-# include @ABSOLUTE_UNISTD_H@
-#endif
-
-
-/* Declare overridden functions.  */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef FCHDIR_REPLACEMENT
-
-/* Change the process' current working directory to the directory on which
-   the given file descriptor is open.  */
-extern int fchdir (int /*fd*/);
-
-# define close rpl_close
-extern int close (int);
-# define dup rpl_dup
-extern int dup (int);
-# define dup2 rpl_dup2
-extern int dup2 (int, int);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* _GL_UNISTD_H */
diff -uNr nagios-plugins-1.4.11/gl/unistd--.h nagios-plugins-1.4.12/gl/unistd--.h
--- nagios-plugins-1.4.11/gl/unistd--.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/unistd--.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2005 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff -uNr nagios-plugins-1.4.11/gl/unistd.in.h nagios-plugins-1.4.12/gl/unistd.in.h
--- nagios-plugins-1.4.11/gl/unistd.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/unistd.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,320 @@
+/* Substitute for and wrapper around <unistd.h>.
+   Copyright (C) 2004-2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GL_UNISTD_H
+
+/* The include_next requires a split double-inclusion guard.  */
+#if @HAVE_UNISTD_H@
+# @INCLUDE_NEXT@ @NEXT_UNISTD_H@
+#endif
+
+#ifndef _GL_UNISTD_H
+#define _GL_UNISTD_H
+
+/* mingw doesn't define the SEEK_* macros in <unistd.h>.  */
+#if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET)
+# include <stdio.h>
+#endif
+
+/* mingw fails to declare _exit in <unistd.h>.  */
+#include <stdlib.h>
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+
+/* Declare overridden functions.  */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if @GNULIB_CHOWN@
+# if @REPLACE_CHOWN@
+#  ifndef REPLACE_CHOWN
+#   define REPLACE_CHOWN 1
+#  endif
+#  if REPLACE_CHOWN
+/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
+   to GID (if GID is not -1).  Follow symbolic links.
+   Return 0 if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/chown.html>.  */
+#   define chown rpl_chown
+extern int chown (const char *file, uid_t uid, gid_t gid);
+#  endif
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef chown
+# define chown(f,u,g) \
+    (GL_LINK_WARNING ("chown fails to follow symlinks on some systems and " \
+                      "doesn't treat a uid or gid of -1 on some systems - " \
+                      "use gnulib module chown for portability"), \
+     chown (f, u, g))
+#endif
+
+
+#if @GNULIB_DUP2@
+# if !@HAVE_DUP2@
+/* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if
+   NEWFD = OLDFD, otherwise close NEWFD first if it is open.
+   Return 0 if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/dup2.html>.  */
+extern int dup2 (int oldfd, int newfd);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef dup2
+# define dup2(o,n) \
+    (GL_LINK_WARNING ("dup2 is unportable - " \
+                      "use gnulib module dup2 for portability"), \
+     dup2 (o, n))
+#endif
+
+
+#if @GNULIB_FCHDIR@
+# if @REPLACE_FCHDIR@
+
+/* Change the process' current working directory to the directory on which
+   the given file descriptor is open.
+   Return 0 if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/fchdir.html>.  */
+extern int fchdir (int /*fd*/);
+
+#  define close rpl_close
+extern int close (int);
+#  define dup rpl_dup
+extern int dup (int);
+#  define dup2 rpl_dup2
+extern int dup2 (int, int);
+
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef fchdir
+# define fchdir(f) \
+    (GL_LINK_WARNING ("fchdir is unportable - " \
+                      "use gnulib module fchdir for portability"), \
+     fchdir (f))
+#endif
+
+
+#if @GNULIB_FTRUNCATE@
+# if !@HAVE_FTRUNCATE@
+/* Change the size of the file to which FD is opened to become equal to LENGTH.
+   Return 0 if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/ftruncate.html>.  */
+extern int ftruncate (int fd, off_t length);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef ftruncate
+# define ftruncate(f,l) \
+    (GL_LINK_WARNING ("ftruncate is unportable - " \
+                      "use gnulib module ftruncate for portability"), \
+     ftruncate (f, l))
+#endif
+
+
+#if @GNULIB_GETCWD@
+/* Include the headers that might declare getcwd so that they will not
+   cause confusion if included after this file.  */
+# include <stdlib.h>
+# if @REPLACE_GETCWD@
+/* Get the name of the current working directory, and put it in SIZE bytes
+   of BUF.
+   Return BUF if successful, or NULL if the directory couldn't be determined
+   or SIZE was too small.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/getcwd.html>.
+   Additionally, the gnulib module 'getcwd' guarantees the following GNU
+   extension: If BUF is NULL, an array is allocated with 'malloc'; the array
+   is SIZE bytes long, unless SIZE == 0, in which case it is as big as
+   necessary.  */
+#  define getcwd rpl_getcwd
+extern char * getcwd (char *buf, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getcwd
+# define getcwd(b,s) \
+    (GL_LINK_WARNING ("getcwd is unportable - " \
+                      "use gnulib module getcwd for portability"), \
+     getcwd (b, s))
+#endif
+
+
+#if @GNULIB_GETLOGIN_R@
+/* Copies the user's login name to NAME.
+   The array pointed to by NAME has room for SIZE bytes.
+
+   Returns 0 if successful.  Upon error, an error number is returned, or -1 in
+   the case that the login name cannot be found but no specific error is
+   provided (this case is hopefully rare but is left open by the POSIX spec).
+
+   See <http://www.opengroup.org/susv3xsh/getlogin.html>.
+ */
+# if !@HAVE_DECL_GETLOGIN_R@
+#  include <stddef.h>
+extern int getlogin_r (char *name, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getlogin_r
+# define getlogin_r(n,s) \
+    (GL_LINK_WARNING ("getlogin_r is unportable - " \
+                      "use gnulib module getlogin_r for portability"), \
+     getlogin_r (n, s))
+#endif
+
+
+#if @GNULIB_GETPAGESIZE@
+# if @REPLACE_GETPAGESIZE@
+#  define getpagesize rpl_getpagesize
+extern int getpagesize (void);
+# elif !@HAVE_GETPAGESIZE@
+/* This is for POSIX systems.  */
+#  if !defined getpagesize && defined _SC_PAGESIZE
+#   if ! (defined __VMS && __VMS_VER < 70000000)
+#    define getpagesize() sysconf (_SC_PAGESIZE)
+#   endif
+#  endif
+/* This is for older VMS.  */
+#  if !defined getpagesize && defined __VMS
+#   ifdef __ALPHA
+#    define getpagesize() 8192
+#   else
+#    define getpagesize() 512
+#   endif
+#  endif
+/* This is for BeOS.  */
+#  if !defined getpagesize && @HAVE_OS_H@
+#   include <OS.h>
+#   if defined B_PAGE_SIZE
+#    define getpagesize() B_PAGE_SIZE
+#   endif
+#  endif
+/* This is for AmigaOS4.0.  */
+#  if !defined getpagesize && defined __amigaos4__
+#   define getpagesize() 2048
+#  endif
+/* This is for older Unix systems.  */
+#  if !defined getpagesize && @HAVE_SYS_PARAM_H@
+#   include <sys/param.h>
+#   ifdef EXEC_PAGESIZE
+#    define getpagesize() EXEC_PAGESIZE
+#   else
+#    ifdef NBPG
+#     ifndef CLSIZE
+#      define CLSIZE 1
+#     endif
+#     define getpagesize() (NBPG * CLSIZE)
+#    else
+#     ifdef NBPC
+#      define getpagesize() NBPC
+#     endif
+#    endif
+#   endif
+#  endif
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getpagesize
+# define getpagesize() \
+    (GL_LINK_WARNING ("getpagesize is unportable - " \
+                      "use gnulib module getpagesize for portability"), \
+     getpagesize ())
+#endif
+
+
+#if @GNULIB_LCHOWN@
+# if @REPLACE_LCHOWN@
+/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
+   to GID (if GID is not -1).  Do not follow symbolic links.
+   Return 0 if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/lchown.html>.  */
+#  define lchown rpl_lchown
+extern int lchown (char const *file, uid_t owner, gid_t group);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef lchown
+# define lchown(f,u,g) \
+    (GL_LINK_WARNING ("lchown is unportable to pre-POSIX.1-2001 " \
+                      "systems - use gnulib module lchown for portability"), \
+     lchown (f, u, g))
+#endif
+
+
+#if @GNULIB_LSEEK@
+# if @REPLACE_LSEEK@
+/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
+   Return the new offset if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/lseek.html>.  */
+#  define lseek rpl_lseek
+   extern off_t lseek (int fd, off_t offset, int whence);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef lseek
+# define lseek(f,o,w) \
+    (GL_LINK_WARNING ("lseek does not fail with ESPIPE on pipes on some " \
+                      "systems - use gnulib module lseek for portability"), \
+     lseek (f, o, w))
+#endif
+
+
+#if @GNULIB_READLINK@
+/* Read the contents of the symbolic link FILE and place the first BUFSIZE
+   bytes of it into BUF.  Return the number of bytes placed into BUF if
+   successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/readlink.html>.  */
+# if !@HAVE_READLINK@
+#  include <stddef.h>
+extern int readlink (const char *file, char *buf, size_t bufsize);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef readlink
+# define readlink(f,b,s) \
+    (GL_LINK_WARNING ("readlink is unportable - " \
+                      "use gnulib module readlink for portability"), \
+     readlink (f, b, s))
+#endif
+
+
+#if @GNULIB_SLEEP@
+/* Pause the execution of the current thread for N seconds.
+   Returns the number of seconds left to sleep.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/sleep.html>.  */
+# if !@HAVE_SLEEP@
+extern unsigned int sleep (unsigned int n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef sleep
+# define sleep(n) \
+    (GL_LINK_WARNING ("sleep is unportable - " \
+                      "use gnulib module sleep for portability"), \
+     sleep (n))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _GL_UNISTD_H */
+#endif /* _GL_UNISTD_H */
diff -uNr nagios-plugins-1.4.11/gl/unistd-safer.h nagios-plugins-1.4.12/gl/unistd-safer.h
--- nagios-plugins-1.4.11/gl/unistd-safer.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/unistd-safer.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
 
    Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff -uNr nagios-plugins-1.4.11/gl/vasnprintf.c nagios-plugins-1.4.12/gl/vasnprintf.c
--- nagios-plugins-1.4.11/gl/vasnprintf.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/vasnprintf.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,9 +1,9 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 1999, 2002-2006 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2008 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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -15,6 +15,35 @@
    with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
+/* This file can be parametrized with the following macros:
+     VASNPRINTF         The name of the function being defined.
+     FCHAR_T            The element type of the format string.
+     DCHAR_T            The element type of the destination (result) string.
+     FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters
+                        in the format string are ASCII. MUST be set if
+                        FCHAR_T and DCHAR_T are not the same type.
+     DIRECTIVE          Structure denoting a format directive.
+                        Depends on FCHAR_T.
+     DIRECTIVES         Structure denoting the set of format directives of a
+                        format string.  Depends on FCHAR_T.
+     PRINTF_PARSE       Function that parses a format string.
+                        Depends on FCHAR_T.
+     DCHAR_CPY          memcpy like function for DCHAR_T[] arrays.
+     DCHAR_SET          memset like function for DCHAR_T[] arrays.
+     DCHAR_MBSNLEN      mbsnlen like function for DCHAR_T[] arrays.
+     SNPRINTF           The system's snprintf (or similar) function.
+                        This may be either snprintf or swprintf.
+     TCHAR_T            The element type of the argument and result string
+                        of the said SNPRINTF function.  This may be either
+                        char or wchar_t.  The code exploits that
+                        sizeof (TCHAR_T) | sizeof (DCHAR_T) and
+                        alignof (TCHAR_T) <= alignof (DCHAR_T).
+     DCHAR_IS_TCHAR     Set to 1 if DCHAR_T and TCHAR_T are the same type.
+     DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[].
+     DCHAR_IS_UINT8_T   Set to 1 if DCHAR_T is uint8_t.
+     DCHAR_IS_UINT16_T  Set to 1 if DCHAR_T is uint16_t.
+     DCHAR_IS_UINT32_T  Set to 1 if DCHAR_T is uint32_t.  */
+
 /* Tell glibc's <stdio.h> to provide a prototype for snprintf().
    This must come before <config.h> because <config.h> may include
    <features.h>, and once <features.h> has been included, it's too late.  */
@@ -22,35 +51,79 @@
 # define _GNU_SOURCE    1
 #endif
 
-#include <config.h>
+#ifndef VASNPRINTF
+# include <config.h>
+#endif
 #ifndef IN_LIBINTL
 # include <alloca.h>
 #endif
 
 /* Specification.  */
-#if WIDE_CHAR_VERSION
-# include "vasnwprintf.h"
-#else
-# include "vasnprintf.h"
+#ifndef VASNPRINTF
+# if WIDE_CHAR_VERSION
+#  include "vasnwprintf.h"
+# else
+#  include "vasnprintf.h"
+# endif
 #endif
 
+#include <locale.h>	/* localeconv() */
 #include <stdio.h>	/* snprintf(), sprintf() */
 #include <stdlib.h>	/* abort(), malloc(), realloc(), free() */
 #include <string.h>	/* memcpy(), strlen() */
 #include <errno.h>	/* errno */
 #include <limits.h>	/* CHAR_BIT */
 #include <float.h>	/* DBL_MAX_EXP, LDBL_MAX_EXP */
-#if WIDE_CHAR_VERSION
-# include "wprintf-parse.h"
-#else
-# include "printf-parse.h"
+#if HAVE_NL_LANGINFO
+# include <langinfo.h>
+#endif
+#ifndef VASNPRINTF
+# if WIDE_CHAR_VERSION
+#  include "wprintf-parse.h"
+# else
+#  include "printf-parse.h"
+# endif
 #endif
 
 /* Checked size_t computations.  */
 #include "xsize.h"
 
-#ifdef HAVE_WCHAR_T
-# ifdef HAVE_WCSLEN
+#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "float+.h"
+#endif
+
+#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnand.h"
+#endif
+
+#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnanl-nolibm.h"
+# include "fpucw.h"
+#endif
+
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnand.h"
+# include "printf-frexp.h"
+#endif
+
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnanl-nolibm.h"
+# include "printf-frexpl.h"
+# include "fpucw.h"
+#endif
+
+/* Some systems, like OSF/1 4.0 and Woe32, don't have EOVERFLOW.  */
+#ifndef EOVERFLOW
+# define EOVERFLOW E2BIG
+#endif
+
+#if HAVE_WCHAR_T
+# if HAVE_WCSLEN
 #  define local_wcslen wcslen
 # else
    /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid
@@ -72,12 +145,32 @@
 # endif
 #endif
 
+/* Default parameters.  */
+#ifndef VASNPRINTF
+# if WIDE_CHAR_VERSION
+#  define VASNPRINTF vasnwprintf
+#  define FCHAR_T wchar_t
+#  define DCHAR_T wchar_t
+#  define TCHAR_T wchar_t
+#  define DCHAR_IS_TCHAR 1
+#  define DIRECTIVE wchar_t_directive
+#  define DIRECTIVES wchar_t_directives
+#  define PRINTF_PARSE wprintf_parse
+#  define DCHAR_CPY wmemcpy
+# else
+#  define VASNPRINTF vasnprintf
+#  define FCHAR_T char
+#  define DCHAR_T char
+#  define TCHAR_T char
+#  define DCHAR_IS_TCHAR 1
+#  define DIRECTIVE char_directive
+#  define DIRECTIVES char_directives
+#  define PRINTF_PARSE printf_parse
+#  define DCHAR_CPY memcpy
+# endif
+#endif
 #if WIDE_CHAR_VERSION
-# define VASNPRINTF vasnwprintf
-# define CHAR_T wchar_t
-# define DIRECTIVE wchar_t_directive
-# define DIRECTIVES wchar_t_directives
-# define PRINTF_PARSE wprintf_parse
+  /* TCHAR_T is wchar_t.  */
 # define USE_SNPRINTF 1
 # if HAVE_DECL__SNWPRINTF
    /* On Windows, the function swprintf() has a different signature than
@@ -88,39 +181,1253 @@
 #  define SNPRINTF swprintf
 # endif
 #else
-# define VASNPRINTF vasnprintf
-# define CHAR_T char
-# define DIRECTIVE char_directive
-# define DIRECTIVES char_directives
-# define PRINTF_PARSE printf_parse
-# define USE_SNPRINTF (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF)
+  /* TCHAR_T is char.  */
+# /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'.
+     But don't use it on BeOS, since BeOS snprintf produces no output if the
+     size argument is >= 0x3000000.  */
+# if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__
+#  define USE_SNPRINTF 1
+# else
+#  define USE_SNPRINTF 0
+# endif
 # if HAVE_DECL__SNPRINTF
    /* Windows.  */
 #  define SNPRINTF _snprintf
 # else
    /* Unix.  */
 #  define SNPRINTF snprintf
+   /* Here we need to call the native snprintf, not rpl_snprintf.  */
+#  undef snprintf
 # endif
 #endif
+/* Here we need to call the native sprintf, not rpl_sprintf.  */
+#undef sprintf
 
-CHAR_T *
-VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list args)
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
+/* Determine the decimal-point character according to the current locale.  */
+# ifndef decimal_point_char_defined
+#  define decimal_point_char_defined 1
+static char
+decimal_point_char ()
 {
-  DIRECTIVES d;
-  arguments a;
+  const char *point;
+  /* Determine it in a multithread-safe way.  We know nl_langinfo is
+     multithread-safe on glibc systems, but is not required to be multithread-
+     safe by POSIX.  sprintf(), however, is multithread-safe.  localeconv()
+     is rarely multithread-safe.  */
+#  if HAVE_NL_LANGINFO && __GLIBC__
+  point = nl_langinfo (RADIXCHAR);
+#  elif 1
+  char pointbuf[5];
+  sprintf (pointbuf, "%#.0f", 1.0);
+  point = &pointbuf[1];
+#  else
+  point = localeconv () -> decimal_point;
+#  endif
+  /* The decimal point is always a single byte: either '.' or ','.  */
+  return (point[0] != '\0' ? point[0] : '.');
+}
+# endif
+#endif
 
-  if (PRINTF_PARSE (format, &d, &a) < 0)
+#if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL
+
+/* Equivalent to !isfinite(x) || x == 0, but does not require libm.  */
+static int
+is_infinite_or_zero (double x)
+{
+  return isnand (x) || x + x == x;
+}
+
+#endif
+
+#if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL
+
+/* Equivalent to !isfinite(x), but does not require libm.  */
+static int
+is_infinitel (long double x)
+{
+  return isnanl (x) || (x + x == x && x != 0.0L);
+}
+
+#endif
+
+#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+
+/* Converting 'long double' to decimal without rare rounding bugs requires
+   real bignums.  We use the naming conventions of GNU gmp, but vastly simpler
+   (and slower) algorithms.  */
+
+typedef unsigned int mp_limb_t;
+# define GMP_LIMB_BITS 32
+typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1];
+
+typedef unsigned long long mp_twolimb_t;
+# define GMP_TWOLIMB_BITS 64
+typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1];
+
+/* Representation of a bignum >= 0.  */
+typedef struct
+{
+  size_t nlimbs;
+  mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc().  */
+} mpn_t;
+
+/* Compute the product of two bignums >= 0.
+   Return the allocated memory in case of success, NULL in case of memory
+   allocation failure.  */
+static void *
+multiply (mpn_t src1, mpn_t src2, mpn_t *dest)
+{
+  const mp_limb_t *p1;
+  const mp_limb_t *p2;
+  size_t len1;
+  size_t len2;
+
+  if (src1.nlimbs <= src2.nlimbs)
     {
-      errno = EINVAL;
+      len1 = src1.nlimbs;
+      p1 = src1.limbs;
+      len2 = src2.nlimbs;
+      p2 = src2.limbs;
+    }
+  else
+    {
+      len1 = src2.nlimbs;
+      p1 = src2.limbs;
+      len2 = src1.nlimbs;
+      p2 = src1.limbs;
+    }
+  /* Now 0 <= len1 <= len2.  */
+  if (len1 == 0)
+    {
+      /* src1 or src2 is zero.  */
+      dest->nlimbs = 0;
+      dest->limbs = (mp_limb_t *) malloc (1);
+    }
+  else
+    {
+      /* Here 1 <= len1 <= len2.  */
+      size_t dlen;
+      mp_limb_t *dp;
+      size_t k, i, j;
+
+      dlen = len1 + len2;
+      dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t));
+      if (dp == NULL)
+	return NULL;
+      for (k = len2; k > 0; )
+	dp[--k] = 0;
+      for (i = 0; i < len1; i++)
+	{
+	  mp_limb_t digit1 = p1[i];
+	  mp_twolimb_t carry = 0;
+	  for (j = 0; j < len2; j++)
+	    {
+	      mp_limb_t digit2 = p2[j];
+	      carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
+	      carry += dp[i + j];
+	      dp[i + j] = (mp_limb_t) carry;
+	      carry = carry >> GMP_LIMB_BITS;
+	    }
+	  dp[i + len2] = (mp_limb_t) carry;
+	}
+      /* Normalise.  */
+      while (dlen > 0 && dp[dlen - 1] == 0)
+	dlen--;
+      dest->nlimbs = dlen;
+      dest->limbs = dp;
+    }
+  return dest->limbs;
+}
+
+/* Compute the quotient of a bignum a >= 0 and a bignum b > 0.
+   a is written as  a = q * b + r  with 0 <= r < b.  q is the quotient, r
+   the remainder.
+   Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd,
+   q is incremented.
+   Return the allocated memory in case of success, NULL in case of memory
+   allocation failure.  */
+static void *
+divide (mpn_t a, mpn_t b, mpn_t *q)
+{
+  /* Algorithm:
+     First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]]
+     with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS).
+     If m<n, then q:=0 and r:=a.
+     If m>=n=1, perform a single-precision division:
+       r:=0, j:=m,
+       while j>0 do
+         {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j =
+               = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r<b[0]<beta}
+         j:=j-1, r:=r*beta+a[j], q[j]:=floor(r/b[0]), r:=r-b[0]*q[j].
+       Normalise [q[m-1],...,q[0]], yields q.
+     If m>=n>1, perform a multiple-precision division:
+       We have a/b < beta^(m-n+1).
+       s:=intDsize-1-(hightest bit in b[n-1]), 0<=s<intDsize.
+       Shift a and b left by s bits, copying them. r:=a.
+       r=[r[m],...,r[0]], b=[b[n-1],...,b[0]] with b[n-1]>=beta/2.
+       For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).}
+         Compute q* :
+           q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]).
+           In case of overflow (q* >= beta) set q* := beta-1.
+           Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2]
+           and c3 := b[n-2] * q*.
+           {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow
+            occurred.  Furthermore 0 <= c3 < beta^2.
+            If there was overflow and
+            r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2,
+            the next test can be skipped.}
+           While c3 > c2, {Here 0 <= c2 < c3 < beta^2}
+             Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2].
+           If q* > 0:
+             Put r := r - b * q* * beta^j. In detail:
+               [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]].
+               hence: u:=0, for i:=0 to n-1 do
+                              u := u + q* * b[i],
+                              r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry),
+                              u:=u div beta (+ 1, if carry in subtraction)
+                      r[n+j]:=r[n+j]-u.
+               {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1
+                               < q* + 1 <= beta,
+                the carry u does not overflow.}
+             If a negative carry occurs, put q* := q* - 1
+               and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]].
+         Set q[j] := q*.
+       Normalise [q[m-n],..,q[0]]; this yields the quotient q.
+       Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the
+       rest r.
+       The room for q[j] can be allocated at the memory location of r[n+j].
+     Finally, round-to-even:
+       Shift r left by 1 bit.
+       If r > b or if r = b and q[0] is odd, q := q+1.
+   */
+  const mp_limb_t *a_ptr = a.limbs;
+  size_t a_len = a.nlimbs;
+  const mp_limb_t *b_ptr = b.limbs;
+  size_t b_len = b.nlimbs;
+  mp_limb_t *roomptr;
+  mp_limb_t *tmp_roomptr = NULL;
+  mp_limb_t *q_ptr;
+  size_t q_len;
+  mp_limb_t *r_ptr;
+  size_t r_len;
+
+  /* Allocate room for a_len+2 digits.
+     (Need a_len+1 digits for the real division and 1 more digit for the
+     final rounding of q.)  */
+  roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t));
+  if (roomptr == NULL)
+    return NULL;
+
+  /* Normalise a.  */
+  while (a_len > 0 && a_ptr[a_len - 1] == 0)
+    a_len--;
+
+  /* Normalise b.  */
+  for (;;)
+    {
+      if (b_len == 0)
+	/* Division by zero.  */
+	abort ();
+      if (b_ptr[b_len - 1] == 0)
+	b_len--;
+      else
+	break;
+    }
+
+  /* Here m = a_len >= 0 and n = b_len > 0.  */
+
+  if (a_len < b_len)
+    {
+      /* m<n: trivial case.  q=0, r := copy of a.  */
+      r_ptr = roomptr;
+      r_len = a_len;
+      memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t));
+      q_ptr = roomptr + a_len;
+      q_len = 0;
+    }
+  else if (b_len == 1)
+    {
+      /* n=1: single precision division.
+	 beta^(m-1) <= a < beta^m  ==>  beta^(m-2) <= a/b < beta^m  */
+      r_ptr = roomptr;
+      q_ptr = roomptr + 1;
+      {
+	mp_limb_t den = b_ptr[0];
+	mp_limb_t remainder = 0;
+	const mp_limb_t *sourceptr = a_ptr + a_len;
+	mp_limb_t *destptr = q_ptr + a_len;
+	size_t count;
+	for (count = a_len; count > 0; count--)
+	  {
+	    mp_twolimb_t num =
+	      ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr;
+	    *--destptr = num / den;
+	    remainder = num % den;
+	  }
+	/* Normalise and store r.  */
+	if (remainder > 0)
+	  {
+	    r_ptr[0] = remainder;
+	    r_len = 1;
+	  }
+	else
+	  r_len = 0;
+	/* Normalise q.  */
+	q_len = a_len;
+	if (q_ptr[q_len - 1] == 0)
+	  q_len--;
+      }
+    }
+  else
+    {
+      /* n>1: multiple precision division.
+	 beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n  ==>
+	 beta^(m-n-1) <= a/b < beta^(m-n+1).  */
+      /* Determine s.  */
+      size_t s;
+      {
+	mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */
+	s = 31;
+	if (msd >= 0x10000)
+	  {
+	    msd = msd >> 16;
+	    s -= 16;
+	  }
+	if (msd >= 0x100)
+	  {
+	    msd = msd >> 8;
+	    s -= 8;
+	  }
+	if (msd >= 0x10)
+	  {
+	    msd = msd >> 4;
+	    s -= 4;
+	  }
+	if (msd >= 0x4)
+	  {
+	    msd = msd >> 2;
+	    s -= 2;
+	  }
+	if (msd >= 0x2)
+	  {
+	    msd = msd >> 1;
+	    s -= 1;
+	  }
+      }
+      /* 0 <= s < GMP_LIMB_BITS.
+	 Copy b, shifting it left by s bits.  */
+      if (s > 0)
+	{
+	  tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t));
+	  if (tmp_roomptr == NULL)
+	    {
+	      free (roomptr);
+	      return NULL;
+	    }
+	  {
+	    const mp_limb_t *sourceptr = b_ptr;
+	    mp_limb_t *destptr = tmp_roomptr;
+	    mp_twolimb_t accu = 0;
+	    size_t count;
+	    for (count = b_len; count > 0; count--)
+	      {
+		accu += (mp_twolimb_t) *sourceptr++ << s;
+		*destptr++ = (mp_limb_t) accu;
+		accu = accu >> GMP_LIMB_BITS;
+	      }
+	    /* accu must be zero, since that was how s was determined.  */
+	    if (accu != 0)
+	      abort ();
+	  }
+	  b_ptr = tmp_roomptr;
+	}
+      /* Copy a, shifting it left by s bits, yields r.
+	 Memory layout:
+	 At the beginning: r = roomptr[0..a_len],
+	 at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len]  */
+      r_ptr = roomptr;
+      if (s == 0)
+	{
+	  memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t));
+	  r_ptr[a_len] = 0;
+	}
+      else
+	{
+	  const mp_limb_t *sourceptr = a_ptr;
+	  mp_limb_t *destptr = r_ptr;
+	  mp_twolimb_t accu = 0;
+	  size_t count;
+	  for (count = a_len; count > 0; count--)
+	    {
+	      accu += (mp_twolimb_t) *sourceptr++ << s;
+	      *destptr++ = (mp_limb_t) accu;
+	      accu = accu >> GMP_LIMB_BITS;
+	    }
+	  *destptr++ = (mp_limb_t) accu;
+	}
+      q_ptr = roomptr + b_len;
+      q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */
+      {
+	size_t j = a_len - b_len; /* m-n */
+	mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */
+	mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */
+	mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */
+	  ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd;
+	/* Division loop, traversed m-n+1 times.
+	   j counts down, b is unchanged, beta/2 <= b[n-1] < beta.  */
+	for (;;)
+	  {
+	    mp_limb_t q_star;
+	    mp_limb_t c1;
+	    if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */
+	      {
+		/* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow.  */
+		mp_twolimb_t num =
+		  ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS)
+		  | r_ptr[j + b_len - 1];
+		q_star = num / b_msd;
+		c1 = num % b_msd;
+	      }
+	    else
+	      {
+		/* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1].  */
+		q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */
+		/* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta
+		   <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta
+		   <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta)
+		        {<= beta !}.
+		   If yes, jump directly to the subtraction loop.
+		   (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta
+		    <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */
+		if (r_ptr[j + b_len] > b_msd
+		    || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd)
+		  /* r[j+n] >= b[n-1]+1 or
+		     r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a
+		     carry.  */
+		  goto subtract;
+	      }
+	    /* q_star = q*,
+	       c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, <beta).  */
+	    {
+	      mp_twolimb_t c2 = /* c1*beta+r[j+n-2] */
+		((mp_twolimb_t) c1 << GMP_LIMB_BITS) | r_ptr[j + b_len - 2];
+	      mp_twolimb_t c3 = /* b[n-2] * q* */
+		(mp_twolimb_t) b_2msd * (mp_twolimb_t) q_star;
+	      /* While c2 < c3, increase c2 and decrease c3.
+		 Consider c3-c2.  While it is > 0, decrease it by
+		 b[n-1]*beta+b[n-2].  Because of b[n-1]*beta+b[n-2] >= beta^2/2
+		 this can happen only twice.  */
+	      if (c3 > c2)
+		{
+		  q_star = q_star - 1; /* q* := q* - 1 */
+		  if (c3 - c2 > b_msdd)
+		    q_star = q_star - 1; /* q* := q* - 1 */
+		}
+	    }
+	    if (q_star > 0)
+	      subtract:
+	      {
+		/* Subtract r := r - b * q* * beta^j.  */
+		mp_limb_t cr;
+		{
+		  const mp_limb_t *sourceptr = b_ptr;
+		  mp_limb_t *destptr = r_ptr + j;
+		  mp_twolimb_t carry = 0;
+		  size_t count;
+		  for (count = b_len; count > 0; count--)
+		    {
+		      /* Here 0 <= carry <= q*.  */
+		      carry =
+			carry
+			+ (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++
+			+ (mp_limb_t) ~(*destptr);
+		      /* Here 0 <= carry <= beta*q* + beta-1.  */
+		      *destptr++ = ~(mp_limb_t) carry;
+		      carry = carry >> GMP_LIMB_BITS; /* <= q* */
+		    }
+		  cr = (mp_limb_t) carry;
+		}
+		/* Subtract cr from r_ptr[j + b_len], then forget about
+		   r_ptr[j + b_len].  */
+		if (cr > r_ptr[j + b_len])
+		  {
+		    /* Subtraction gave a carry.  */
+		    q_star = q_star - 1; /* q* := q* - 1 */
+		    /* Add b back.  */
+		    {
+		      const mp_limb_t *sourceptr = b_ptr;
+		      mp_limb_t *destptr = r_ptr + j;
+		      mp_limb_t carry = 0;
+		      size_t count;
+		      for (count = b_len; count > 0; count--)
+			{
+			  mp_limb_t source1 = *sourceptr++;
+			  mp_limb_t source2 = *destptr;
+			  *destptr++ = source1 + source2 + carry;
+			  carry =
+			    (carry
+			     ? source1 >= (mp_limb_t) ~source2
+			     : source1 > (mp_limb_t) ~source2);
+			}
+		    }
+		    /* Forget about the carry and about r[j+n].  */
+		  }
+	      }
+	    /* q* is determined.  Store it as q[j].  */
+	    q_ptr[j] = q_star;
+	    if (j == 0)
+	      break;
+	    j--;
+	  }
+      }
+      r_len = b_len;
+      /* Normalise q.  */
+      if (q_ptr[q_len - 1] == 0)
+	q_len--;
+# if 0 /* Not needed here, since we need r only to compare it with b/2, and
+	  b is shifted left by s bits.  */
+      /* Shift r right by s bits.  */
+      if (s > 0)
+	{
+	  mp_limb_t ptr = r_ptr + r_len;
+	  mp_twolimb_t accu = 0;
+	  size_t count;
+	  for (count = r_len; count > 0; count--)
+	    {
+	      accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS;
+	      accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s);
+	      *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS);
+	    }
+	}
+# endif
+      /* Normalise r.  */
+      while (r_len > 0 && r_ptr[r_len - 1] == 0)
+	r_len--;
+    }
+  /* Compare r << 1 with b.  */
+  if (r_len > b_len)
+    goto increment_q;
+  {
+    size_t i;
+    for (i = b_len;;)
+      {
+	mp_limb_t r_i =
+	  (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0)
+	  | (i < r_len ? r_ptr[i] << 1 : 0);
+	mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0);
+	if (r_i > b_i)
+	  goto increment_q;
+	if (r_i < b_i)
+	  goto keep_q;
+	if (i == 0)
+	  break;
+	i--;
+      }
+  }
+  if (q_len > 0 && ((q_ptr[0] & 1) != 0))
+    /* q is odd.  */
+    increment_q:
+    {
+      size_t i;
+      for (i = 0; i < q_len; i++)
+	if (++(q_ptr[i]) != 0)
+	  goto keep_q;
+      q_ptr[q_len++] = 1;
+    }
+  keep_q:
+  if (tmp_roomptr != NULL)
+    free (tmp_roomptr);
+  q->limbs = q_ptr;
+  q->nlimbs = q_len;
+  return roomptr;
+}
+
+/* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal
+   representation.
+   Destroys the contents of a.
+   Return the allocated memory - containing the decimal digits in low-to-high
+   order, terminated with a NUL character - in case of success, NULL in case
+   of memory allocation failure.  */
+static char *
+convert_to_decimal (mpn_t a, size_t extra_zeroes)
+{
+  mp_limb_t *a_ptr = a.limbs;
+  size_t a_len = a.nlimbs;
+  /* 0.03345 is slightly larger than log(2)/(9*log(10)).  */
+  size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1);
+  char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes));
+  if (c_ptr != NULL)
+    {
+      char *d_ptr = c_ptr;
+      for (; extra_zeroes > 0; extra_zeroes--)
+	*d_ptr++ = '0';
+      while (a_len > 0)
+	{
+	  /* Divide a by 10^9, in-place.  */
+	  mp_limb_t remainder = 0;
+	  mp_limb_t *ptr = a_ptr + a_len;
+	  size_t count;
+	  for (count = a_len; count > 0; count--)
+	    {
+	      mp_twolimb_t num =
+		((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr;
+	      *ptr = num / 1000000000;
+	      remainder = num % 1000000000;
+	    }
+	  /* Store the remainder as 9 decimal digits.  */
+	  for (count = 9; count > 0; count--)
+	    {
+	      *d_ptr++ = '0' + (remainder % 10);
+	      remainder = remainder / 10;
+	    }
+	  /* Normalize a.  */
+	  if (a_ptr[a_len - 1] == 0)
+	    a_len--;
+	}
+      /* Remove leading zeroes.  */
+      while (d_ptr > c_ptr && d_ptr[-1] == '0')
+	d_ptr--;
+      /* But keep at least one zero.  */
+      if (d_ptr == c_ptr)
+	*d_ptr++ = '0';
+      /* Terminate the string.  */
+      *d_ptr = '\0';
+    }
+  return c_ptr;
+}
+
+# if NEED_PRINTF_LONG_DOUBLE
+
+/* Assuming x is finite and >= 0:
+   write x as x = 2^e * m, where m is a bignum.
+   Return the allocated memory in case of success, NULL in case of memory
+   allocation failure.  */
+static void *
+decode_long_double (long double x, int *ep, mpn_t *mp)
+{
+  mpn_t m;
+  int exp;
+  long double y;
+  size_t i;
+
+  /* Allocate memory for result.  */
+  m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
+  m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
+  if (m.limbs == NULL)
+    return NULL;
+  /* Split into exponential part and mantissa.  */
+  y = frexpl (x, &exp);
+  if (!(y >= 0.0L && y < 1.0L))
+    abort ();
+  /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the
+     latter is an integer.  */
+  /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs.
+     I'm not sure whether it's safe to cast a 'long double' value between
+     2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
+     'long double' values between 0 and 2^16 (to 'unsigned int' or 'int',
+     doesn't matter).  */
+#  if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0
+#   if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2
+    {
+      mp_limb_t hi, lo;
+      y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2));
+      hi = (int) y;
+      y -= hi;
+      if (!(y >= 0.0L && y < 1.0L))
+	abort ();
+      y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+      lo = (int) y;
+      y -= lo;
+      if (!(y >= 0.0L && y < 1.0L))
+	abort ();
+      m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+    }
+#   else
+    {
+      mp_limb_t d;
+      y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS);
+      d = (int) y;
+      y -= d;
+      if (!(y >= 0.0L && y < 1.0L))
+	abort ();
+      m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d;
+    }
+#   endif
+#  endif
+  for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+    {
+      mp_limb_t hi, lo;
+      y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+      hi = (int) y;
+      y -= hi;
+      if (!(y >= 0.0L && y < 1.0L))
+	abort ();
+      y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+      lo = (int) y;
+      y -= lo;
+      if (!(y >= 0.0L && y < 1.0L))
+	abort ();
+      m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+    }
+#if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess
+         precision.  */
+  if (!(y == 0.0L))
+    abort ();
+#endif
+  /* Normalise.  */
+  while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
+    m.nlimbs--;
+  *mp = m;
+  *ep = exp - LDBL_MANT_BIT;
+  return m.limbs;
+}
+
+# endif
+
+# if NEED_PRINTF_DOUBLE
+
+/* Assuming x is finite and >= 0:
+   write x as x = 2^e * m, where m is a bignum.
+   Return the allocated memory in case of success, NULL in case of memory
+   allocation failure.  */
+static void *
+decode_double (double x, int *ep, mpn_t *mp)
+{
+  mpn_t m;
+  int exp;
+  double y;
+  size_t i;
+
+  /* Allocate memory for result.  */
+  m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
+  m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
+  if (m.limbs == NULL)
+    return NULL;
+  /* Split into exponential part and mantissa.  */
+  y = frexp (x, &exp);
+  if (!(y >= 0.0 && y < 1.0))
+    abort ();
+  /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the
+     latter is an integer.  */
+  /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs.
+     I'm not sure whether it's safe to cast a 'double' value between
+     2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
+     'double' values between 0 and 2^16 (to 'unsigned int' or 'int',
+     doesn't matter).  */
+#  if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0
+#   if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2
+    {
+      mp_limb_t hi, lo;
+      y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2));
+      hi = (int) y;
+      y -= hi;
+      if (!(y >= 0.0 && y < 1.0))
+	abort ();
+      y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+      lo = (int) y;
+      y -= lo;
+      if (!(y >= 0.0 && y < 1.0))
+	abort ();
+      m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+    }
+#   else
+    {
+      mp_limb_t d;
+      y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS);
+      d = (int) y;
+      y -= d;
+      if (!(y >= 0.0 && y < 1.0))
+	abort ();
+      m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d;
+    }
+#   endif
+#  endif
+  for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+    {
+      mp_limb_t hi, lo;
+      y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+      hi = (int) y;
+      y -= hi;
+      if (!(y >= 0.0 && y < 1.0))
+	abort ();
+      y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+      lo = (int) y;
+      y -= lo;
+      if (!(y >= 0.0 && y < 1.0))
+	abort ();
+      m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+    }
+  if (!(y == 0.0))
+    abort ();
+  /* Normalise.  */
+  while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
+    m.nlimbs--;
+  *mp = m;
+  *ep = exp - DBL_MANT_BIT;
+  return m.limbs;
+}
+
+# endif
+
+/* Assuming x = 2^e * m is finite and >= 0, and n is an integer:
+   Returns the decimal representation of round (x * 10^n).
+   Return the allocated memory - containing the decimal digits in low-to-high
+   order, terminated with a NUL character - in case of success, NULL in case
+   of memory allocation failure.  */
+static char *
+scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
+{
+  int s;
+  size_t extra_zeroes;
+  unsigned int abs_n;
+  unsigned int abs_s;
+  mp_limb_t *pow5_ptr;
+  size_t pow5_len;
+  unsigned int s_limbs;
+  unsigned int s_bits;
+  mpn_t pow5;
+  mpn_t z;
+  void *z_memory;
+  char *digits;
+
+  if (memory == NULL)
+    return NULL;
+  /* x = 2^e * m, hence
+     y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m)
+       = round (2^s * 5^n * m).  */
+  s = e + n;
+  extra_zeroes = 0;
+  /* Factor out a common power of 10 if possible.  */
+  if (s > 0 && n > 0)
+    {
+      extra_zeroes = (s < n ? s : n);
+      s -= extra_zeroes;
+      n -= extra_zeroes;
+    }
+  /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes.
+     Before converting to decimal, we need to compute
+     z = round (2^s * 5^n * m).  */
+  /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same
+     sign.  2.322 is slightly larger than log(5)/log(2).  */
+  abs_n = (n >= 0 ? n : -n);
+  abs_s = (s >= 0 ? s : -s);
+  pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1
+				    + abs_s / GMP_LIMB_BITS + 1)
+				   * sizeof (mp_limb_t));
+  if (pow5_ptr == NULL)
+    {
+      free (memory);
       return NULL;
     }
+  /* Initialize with 1.  */
+  pow5_ptr[0] = 1;
+  pow5_len = 1;
+  /* Multiply with 5^|n|.  */
+  if (abs_n > 0)
+    {
+      static mp_limb_t const small_pow5[13 + 1] =
+	{
+	  1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625,
+	  48828125, 244140625, 1220703125
+	};
+      unsigned int n13;
+      for (n13 = 0; n13 <= abs_n; n13 += 13)
+	{
+	  mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13];
+	  size_t j;
+	  mp_twolimb_t carry = 0;
+	  for (j = 0; j < pow5_len; j++)
+	    {
+	      mp_limb_t digit2 = pow5_ptr[j];
+	      carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
+	      pow5_ptr[j] = (mp_limb_t) carry;
+	      carry = carry >> GMP_LIMB_BITS;
+	    }
+	  if (carry > 0)
+	    pow5_ptr[pow5_len++] = (mp_limb_t) carry;
+	}
+    }
+  s_limbs = abs_s / GMP_LIMB_BITS;
+  s_bits = abs_s % GMP_LIMB_BITS;
+  if (n >= 0 ? s >= 0 : s <= 0)
+    {
+      /* Multiply with 2^|s|.  */
+      if (s_bits > 0)
+	{
+	  mp_limb_t *ptr = pow5_ptr;
+	  mp_twolimb_t accu = 0;
+	  size_t count;
+	  for (count = pow5_len; count > 0; count--)
+	    {
+	      accu += (mp_twolimb_t) *ptr << s_bits;
+	      *ptr++ = (mp_limb_t) accu;
+	      accu = accu >> GMP_LIMB_BITS;
+	    }
+	  if (accu > 0)
+	    {
+	      *ptr = (mp_limb_t) accu;
+	      pow5_len++;
+	    }
+	}
+      if (s_limbs > 0)
+	{
+	  size_t count;
+	  for (count = pow5_len; count > 0;)
+	    {
+	      count--;
+	      pow5_ptr[s_limbs + count] = pow5_ptr[count];
+	    }
+	  for (count = s_limbs; count > 0;)
+	    {
+	      count--;
+	      pow5_ptr[count] = 0;
+	    }
+	  pow5_len += s_limbs;
+	}
+      pow5.limbs = pow5_ptr;
+      pow5.nlimbs = pow5_len;
+      if (n >= 0)
+	{
+	  /* Multiply m with pow5.  No division needed.  */
+	  z_memory = multiply (m, pow5, &z);
+	}
+      else
+	{
+	  /* Divide m by pow5 and round.  */
+	  z_memory = divide (m, pow5, &z);
+	}
+    }
+  else
+    {
+      pow5.limbs = pow5_ptr;
+      pow5.nlimbs = pow5_len;
+      if (n >= 0)
+	{
+	  /* n >= 0, s < 0.
+	     Multiply m with pow5, then divide by 2^|s|.  */
+	  mpn_t numerator;
+	  mpn_t denominator;
+	  void *tmp_memory;
+	  tmp_memory = multiply (m, pow5, &numerator);
+	  if (tmp_memory == NULL)
+	    {
+	      free (pow5_ptr);
+	      free (memory);
+	      return NULL;
+	    }
+	  /* Construct 2^|s|.  */
+	  {
+	    mp_limb_t *ptr = pow5_ptr + pow5_len;
+	    size_t i;
+	    for (i = 0; i < s_limbs; i++)
+	      ptr[i] = 0;
+	    ptr[s_limbs] = (mp_limb_t) 1 << s_bits;
+	    denominator.limbs = ptr;
+	    denominator.nlimbs = s_limbs + 1;
+	  }
+	  z_memory = divide (numerator, denominator, &z);
+	  free (tmp_memory);
+	}
+      else
+	{
+	  /* n < 0, s > 0.
+	     Multiply m with 2^s, then divide by pow5.  */
+	  mpn_t numerator;
+	  mp_limb_t *num_ptr;
+	  num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1)
+					  * sizeof (mp_limb_t));
+	  if (num_ptr == NULL)
+	    {
+	      free (pow5_ptr);
+	      free (memory);
+	      return NULL;
+	    }
+	  {
+	    mp_limb_t *destptr = num_ptr;
+	    {
+	      size_t i;
+	      for (i = 0; i < s_limbs; i++)
+		*destptr++ = 0;
+	    }
+	    if (s_bits > 0)
+	      {
+		const mp_limb_t *sourceptr = m.limbs;
+		mp_twolimb_t accu = 0;
+		size_t count;
+		for (count = m.nlimbs; count > 0; count--)
+		  {
+		    accu += (mp_twolimb_t) *sourceptr++ << s_bits;
+		    *destptr++ = (mp_limb_t) accu;
+		    accu = accu >> GMP_LIMB_BITS;
+		  }
+		if (accu > 0)
+		  *destptr++ = (mp_limb_t) accu;
+	      }
+	    else
+	      {
+		const mp_limb_t *sourceptr = m.limbs;
+		size_t count;
+		for (count = m.nlimbs; count > 0; count--)
+		  *destptr++ = *sourceptr++;
+	      }
+	    numerator.limbs = num_ptr;
+	    numerator.nlimbs = destptr - num_ptr;
+	  }
+	  z_memory = divide (numerator, pow5, &z);
+	  free (num_ptr);
+	}
+    }
+  free (pow5_ptr);
+  free (memory);
+
+  /* Here y = round (x * 10^n) = z * 10^extra_zeroes.  */
+
+  if (z_memory == NULL)
+    return NULL;
+  digits = convert_to_decimal (z, extra_zeroes);
+  free (z_memory);
+  return digits;
+}
+
+# if NEED_PRINTF_LONG_DOUBLE
+
+/* Assuming x is finite and >= 0, and n is an integer:
+   Returns the decimal representation of round (x * 10^n).
+   Return the allocated memory - containing the decimal digits in low-to-high
+   order, terminated with a NUL character - in case of success, NULL in case
+   of memory allocation failure.  */
+static char *
+scale10_round_decimal_long_double (long double x, int n)
+{
+  int e;
+  mpn_t m;
+  void *memory = decode_long_double (x, &e, &m);
+  return scale10_round_decimal_decoded (e, m, memory, n);
+}
+
+# endif
+
+# if NEED_PRINTF_DOUBLE
+
+/* Assuming x is finite and >= 0, and n is an integer:
+   Returns the decimal representation of round (x * 10^n).
+   Return the allocated memory - containing the decimal digits in low-to-high
+   order, terminated with a NUL character - in case of success, NULL in case
+   of memory allocation failure.  */
+static char *
+scale10_round_decimal_double (double x, int n)
+{
+  int e;
+  mpn_t m;
+  void *memory = decode_double (x, &e, &m);
+  return scale10_round_decimal_decoded (e, m, memory, n);
+}
+
+# endif
+
+# if NEED_PRINTF_LONG_DOUBLE
+
+/* Assuming x is finite and > 0:
+   Return an approximation for n with 10^n <= x < 10^(n+1).
+   The approximation is usually the right n, but may be off by 1 sometimes.  */
+static int
+floorlog10l (long double x)
+{
+  int exp;
+  long double y;
+  double z;
+  double l;
+
+  /* Split into exponential part and mantissa.  */
+  y = frexpl (x, &exp);
+  if (!(y >= 0.0L && y < 1.0L))
+    abort ();
+  if (y == 0.0L)
+    return INT_MIN;
+  if (y < 0.5L)
+    {
+      while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2))))
+	{
+	  y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2));
+	  exp -= GMP_LIMB_BITS;
+	}
+      if (y < (1.0L / (1 << 16)))
+	{
+	  y *= 1.0L * (1 << 16);
+	  exp -= 16;
+	}
+      if (y < (1.0L / (1 << 8)))
+	{
+	  y *= 1.0L * (1 << 8);
+	  exp -= 8;
+	}
+      if (y < (1.0L / (1 << 4)))
+	{
+	  y *= 1.0L * (1 << 4);
+	  exp -= 4;
+	}
+      if (y < (1.0L / (1 << 2)))
+	{
+	  y *= 1.0L * (1 << 2);
+	  exp -= 2;
+	}
+      if (y < (1.0L / (1 << 1)))
+	{
+	  y *= 1.0L * (1 << 1);
+	  exp -= 1;
+	}
+    }
+  if (!(y >= 0.5L && y < 1.0L))
+    abort ();
+  /* Compute an approximation for l = log2(x) = exp + log2(y).  */
+  l = exp;
+  z = y;
+  if (z < 0.70710678118654752444)
+    {
+      z *= 1.4142135623730950488;
+      l -= 0.5;
+    }
+  if (z < 0.8408964152537145431)
+    {
+      z *= 1.1892071150027210667;
+      l -= 0.25;
+    }
+  if (z < 0.91700404320467123175)
+    {
+      z *= 1.0905077326652576592;
+      l -= 0.125;
+    }
+  if (z < 0.9576032806985736469)
+    {
+      z *= 1.0442737824274138403;
+      l -= 0.0625;
+    }
+  /* Now 0.95 <= z <= 1.01.  */
+  z = 1 - z;
+  /* log(1-z) = - z - z^2/2 - z^3/3 - z^4/4 - ...
+     Four terms are enough to get an approximation with error < 10^-7.  */
+  l -= z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25)));
+  /* Finally multiply with log(2)/log(10), yields an approximation for
+     log10(x).  */
+  l *= 0.30102999566398119523;
+  /* Round down to the next integer.  */
+  return (int) l + (l < 0 ? -1 : 0);
+}
+
+# endif
+
+# if NEED_PRINTF_DOUBLE
+
+/* Assuming x is finite and > 0:
+   Return an approximation for n with 10^n <= x < 10^(n+1).
+   The approximation is usually the right n, but may be off by 1 sometimes.  */
+static int
+floorlog10 (double x)
+{
+  int exp;
+  double y;
+  double z;
+  double l;
+
+  /* Split into exponential part and mantissa.  */
+  y = frexp (x, &exp);
+  if (!(y >= 0.0 && y < 1.0))
+    abort ();
+  if (y == 0.0)
+    return INT_MIN;
+  if (y < 0.5)
+    {
+      while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2))))
+	{
+	  y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2));
+	  exp -= GMP_LIMB_BITS;
+	}
+      if (y < (1.0 / (1 << 16)))
+	{
+	  y *= 1.0 * (1 << 16);
+	  exp -= 16;
+	}
+      if (y < (1.0 / (1 << 8)))
+	{
+	  y *= 1.0 * (1 << 8);
+	  exp -= 8;
+	}
+      if (y < (1.0 / (1 << 4)))
+	{
+	  y *= 1.0 * (1 << 4);
+	  exp -= 4;
+	}
+      if (y < (1.0 / (1 << 2)))
+	{
+	  y *= 1.0 * (1 << 2);
+	  exp -= 2;
+	}
+      if (y < (1.0 / (1 << 1)))
+	{
+	  y *= 1.0 * (1 << 1);
+	  exp -= 1;
+	}
+    }
+  if (!(y >= 0.5 && y < 1.0))
+    abort ();
+  /* Compute an approximation for l = log2(x) = exp + log2(y).  */
+  l = exp;
+  z = y;
+  if (z < 0.70710678118654752444)
+    {
+      z *= 1.4142135623730950488;
+      l -= 0.5;
+    }
+  if (z < 0.8408964152537145431)
+    {
+      z *= 1.1892071150027210667;
+      l -= 0.25;
+    }
+  if (z < 0.91700404320467123175)
+    {
+      z *= 1.0905077326652576592;
+      l -= 0.125;
+    }
+  if (z < 0.9576032806985736469)
+    {
+      z *= 1.0442737824274138403;
+      l -= 0.0625;
+    }
+  /* Now 0.95 <= z <= 1.01.  */
+  z = 1 - z;
+  /* log(1-z) = - z - z^2/2 - z^3/3 - z^4/4 - ...
+     Four terms are enough to get an approximation with error < 10^-7.  */
+  l -= z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25)));
+  /* Finally multiply with log(2)/log(10), yields an approximation for
+     log10(x).  */
+  l *= 0.30102999566398119523;
+  /* Round down to the next integer.  */
+  return (int) l + (l < 0 ? -1 : 0);
+}
+
+# endif
+
+#endif
+
+DCHAR_T *
+VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
+	    const FCHAR_T *format, va_list args)
+{
+  DIRECTIVES d;
+  arguments a;
+
+  if (PRINTF_PARSE (format, &d, &a) < 0)
+    /* errno is already set.  */
+    return NULL;
 
 #define CLEANUP() \
   free (d.dir);								\
   if (a.arg)								\
     free (a.arg);
 
-  if (printf_fetchargs (args, &a) < 0)
+  if (PRINTF_FETCHARGS (args, &a) < 0)
     {
       CLEANUP ();
       errno = EINVAL;
@@ -129,13 +1436,13 @@
 
   {
     size_t buf_neededlength;
-    CHAR_T *buf;
-    CHAR_T *buf_malloced;
-    const CHAR_T *cp;
+    TCHAR_T *buf;
+    TCHAR_T *buf_malloced;
+    const FCHAR_T *cp;
     size_t i;
     DIRECTIVE *dp;
     /* Output string accumulator.  */
-    CHAR_T *result;
+    DCHAR_T *result;
     size_t allocated;
     size_t length;
 
@@ -144,18 +1451,18 @@
     buf_neededlength =
       xsum4 (7, d.max_width_length, d.max_precision_length, 6);
 #if HAVE_ALLOCA
-    if (buf_neededlength < 4000 / sizeof (CHAR_T))
+    if (buf_neededlength < 4000 / sizeof (TCHAR_T))
       {
-	buf = (CHAR_T *) alloca (buf_neededlength * sizeof (CHAR_T));
+	buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T));
 	buf_malloced = NULL;
       }
     else
 #endif
       {
-	size_t buf_memsize = xtimes (buf_neededlength, sizeof (CHAR_T));
+	size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T));
 	if (size_overflow_p (buf_memsize))
 	  goto out_of_memory_1;
-	buf = (CHAR_T *) malloc (buf_memsize);
+	buf = (TCHAR_T *) malloc (buf_memsize);
 	if (buf == NULL)
 	  goto out_of_memory_1;
 	buf_malloced = buf;
@@ -182,22 +1489,22 @@
     if ((needed) > allocated)						     \
       {									     \
 	size_t memory_size;						     \
-	CHAR_T *memory;							     \
+	DCHAR_T *memory;						     \
 									     \
 	allocated = (allocated > 0 ? xtimes (allocated, 2) : 12);	     \
 	if ((needed) > allocated)					     \
 	  allocated = (needed);						     \
-	memory_size = xtimes (allocated, sizeof (CHAR_T));		     \
+	memory_size = xtimes (allocated, sizeof (DCHAR_T));		     \
 	if (size_overflow_p (memory_size))				     \
 	  goto out_of_memory;						     \
 	if (result == resultbuf || result == NULL)			     \
-	  memory = (CHAR_T *) malloc (memory_size);			     \
+	  memory = (DCHAR_T *) malloc (memory_size);			     \
 	else								     \
-	  memory = (CHAR_T *) realloc (result, memory_size);		     \
+	  memory = (DCHAR_T *) realloc (result, memory_size);		     \
 	if (memory == NULL)						     \
 	  goto out_of_memory;						     \
 	if (result == resultbuf && length > 0)				     \
-	  memcpy (memory, result, length * sizeof (CHAR_T));		     \
+	  DCHAR_CPY (memory, result, length);				     \
 	result = memory;						     \
       }
 
@@ -209,120 +1516,2160 @@
 	    size_t augmented_length = xsum (length, n);
 
 	    ENSURE_ALLOCATION (augmented_length);
-	    memcpy (result + length, cp, n * sizeof (CHAR_T));
-	    length = augmented_length;
+	    /* This copies a piece of FCHAR_T[] into a DCHAR_T[].  Here we
+	       need that the format string contains only ASCII characters
+	       if FCHAR_T and DCHAR_T are not the same type.  */
+	    if (sizeof (FCHAR_T) == sizeof (DCHAR_T))
+	      {
+		DCHAR_CPY (result + length, (const DCHAR_T *) cp, n);
+		length = augmented_length;
+	      }
+	    else
+	      {
+		do
+		  result[length++] = (unsigned char) *cp++;
+		while (--n > 0);
+	      }
 	  }
 	if (i == d.count)
 	  break;
 
-	/* Execute a single directive.  */
-	if (dp->conversion == '%')
-	  {
-	    size_t augmented_length;
+	/* Execute a single directive.  */
+	if (dp->conversion == '%')
+	  {
+	    size_t augmented_length;
+
+	    if (!(dp->arg_index == ARG_NONE))
+	      abort ();
+	    augmented_length = xsum (length, 1);
+	    ENSURE_ALLOCATION (augmented_length);
+	    result[length] = '%';
+	    length = augmented_length;
+	  }
+	else
+	  {
+	    if (!(dp->arg_index != ARG_NONE))
+	      abort ();
+
+	    if (dp->conversion == 'n')
+	      {
+		switch (a.arg[dp->arg_index].type)
+		  {
+		  case TYPE_COUNT_SCHAR_POINTER:
+		    *a.arg[dp->arg_index].a.a_count_schar_pointer = length;
+		    break;
+		  case TYPE_COUNT_SHORT_POINTER:
+		    *a.arg[dp->arg_index].a.a_count_short_pointer = length;
+		    break;
+		  case TYPE_COUNT_INT_POINTER:
+		    *a.arg[dp->arg_index].a.a_count_int_pointer = length;
+		    break;
+		  case TYPE_COUNT_LONGINT_POINTER:
+		    *a.arg[dp->arg_index].a.a_count_longint_pointer = length;
+		    break;
+#if HAVE_LONG_LONG_INT
+		  case TYPE_COUNT_LONGLONGINT_POINTER:
+		    *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
+		    break;
+#endif
+		  default:
+		    abort ();
+		  }
+	      }
+#if ENABLE_UNISTDIO
+	    /* The unistdio extensions.  */
+	    else if (dp->conversion == 'U')
+	      {
+		arg_type type = a.arg[dp->arg_index].type;
+		int flags = dp->flags;
+		int has_width;
+		size_t width;
+		int has_precision;
+		size_t precision;
+
+		has_width = 0;
+		width = 0;
+		if (dp->width_start != dp->width_end)
+		  {
+		    if (dp->width_arg_index != ARG_NONE)
+		      {
+			int arg;
+
+			if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+			  abort ();
+			arg = a.arg[dp->width_arg_index].a.a_int;
+			if (arg < 0)
+			  {
+			    /* "A negative field width is taken as a '-' flag
+			        followed by a positive field width."  */
+			    flags |= FLAG_LEFT;
+			    width = (unsigned int) (-arg);
+			  }
+			else
+			  width = arg;
+		      }
+		    else
+		      {
+			const FCHAR_T *digitp = dp->width_start;
+
+			do
+			  width = xsum (xtimes (width, 10), *digitp++ - '0');
+			while (digitp != dp->width_end);
+		      }
+		    has_width = 1;
+		  }
+
+		has_precision = 0;
+		precision = 0;
+		if (dp->precision_start != dp->precision_end)
+		  {
+		    if (dp->precision_arg_index != ARG_NONE)
+		      {
+			int arg;
+
+			if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+			  abort ();
+			arg = a.arg[dp->precision_arg_index].a.a_int;
+			/* "A negative precision is taken as if the precision
+			    were omitted."  */
+			if (arg >= 0)
+			  {
+			    precision = arg;
+			    has_precision = 1;
+			  }
+		      }
+		    else
+		      {
+			const FCHAR_T *digitp = dp->precision_start + 1;
+
+			precision = 0;
+			while (digitp != dp->precision_end)
+			  precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+			has_precision = 1;
+		      }
+		  }
+
+		switch (type)
+		  {
+		  case TYPE_U8_STRING:
+		    {
+		      const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string;
+		      const uint8_t *arg_end;
+		      size_t characters;
+
+		      if (has_precision)
+			{
+			  /* Use only PRECISION characters, from the left.  */
+			  arg_end = arg;
+			  characters = 0;
+			  for (; precision > 0; precision--)
+			    {
+			      int count = u8_strmblen (arg_end);
+			      if (count == 0)
+				break;
+			      if (count < 0)
+				{
+				  if (!(result == resultbuf || result == NULL))
+				    free (result);
+				  if (buf_malloced != NULL)
+				    free (buf_malloced);
+				  CLEANUP ();
+				  errno = EILSEQ;
+				  return NULL;
+				}
+			      arg_end += count;
+			      characters++;
+			    }
+			}
+		      else if (has_width)
+			{
+			  /* Use the entire string, and count the number of
+			     characters.  */
+			  arg_end = arg;
+			  characters = 0;
+			  for (;;)
+			    {
+			      int count = u8_strmblen (arg_end);
+			      if (count == 0)
+				break;
+			      if (count < 0)
+				{
+				  if (!(result == resultbuf || result == NULL))
+				    free (result);
+				  if (buf_malloced != NULL)
+				    free (buf_malloced);
+				  CLEANUP ();
+				  errno = EILSEQ;
+				  return NULL;
+				}
+			      arg_end += count;
+			      characters++;
+			    }
+			}
+		      else
+			{
+			  /* Use the entire string.  */
+			  arg_end = arg + u8_strlen (arg);
+			  /* The number of characters doesn't matter.  */
+			  characters = 0;
+			}
+
+		      if (has_width && width > characters
+			  && !(dp->flags & FLAG_LEFT))
+			{
+			  size_t n = width - characters;
+			  ENSURE_ALLOCATION (xsum (length, n));
+			  DCHAR_SET (result + length, ' ', n);
+			  length += n;
+			}
+
+# if DCHAR_IS_UINT8_T
+		      {
+			size_t n = arg_end - arg;
+			ENSURE_ALLOCATION (xsum (length, n));
+			DCHAR_CPY (result + length, arg, n);
+			length += n;
+		      }
+# else
+		      { /* Convert.  */
+			DCHAR_T *converted = result + length;
+			size_t converted_len = allocated - length;
+#  if DCHAR_IS_TCHAR
+			/* Convert from UTF-8 to locale encoding.  */
+			if (u8_conv_to_encoding (locale_charset (),
+						 iconveh_question_mark,
+						 arg, arg_end - arg, NULL,
+						 &converted, &converted_len)
+			    < 0)
+#  else
+			/* Convert from UTF-8 to UTF-16/UTF-32.  */
+			converted =
+			  U8_TO_DCHAR (arg, arg_end - arg,
+				       converted, &converted_len);
+			if (converted == NULL)
+#  endif
+			  {
+			    int saved_errno = errno;
+			    if (!(result == resultbuf || result == NULL))
+			      free (result);
+			    if (buf_malloced != NULL)
+			      free (buf_malloced);
+			    CLEANUP ();
+			    errno = saved_errno;
+			    return NULL;
+			  }
+			if (converted != result + length)
+			  {
+			    ENSURE_ALLOCATION (xsum (length, converted_len));
+			    DCHAR_CPY (result + length, converted, converted_len);
+			    free (converted);
+			  }
+			length += converted_len;
+		      }
+# endif
+
+		      if (has_width && width > characters
+			  && (dp->flags & FLAG_LEFT))
+			{
+			  size_t n = width - characters;
+			  ENSURE_ALLOCATION (xsum (length, n));
+			  DCHAR_SET (result + length, ' ', n);
+			  length += n;
+			}
+		    }
+		    break;
+
+		  case TYPE_U16_STRING:
+		    {
+		      const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string;
+		      const uint16_t *arg_end;
+		      size_t characters;
+
+		      if (has_precision)
+			{
+			  /* Use only PRECISION characters, from the left.  */
+			  arg_end = arg;
+			  characters = 0;
+			  for (; precision > 0; precision--)
+			    {
+			      int count = u16_strmblen (arg_end);
+			      if (count == 0)
+				break;
+			      if (count < 0)
+				{
+				  if (!(result == resultbuf || result == NULL))
+				    free (result);
+				  if (buf_malloced != NULL)
+				    free (buf_malloced);
+				  CLEANUP ();
+				  errno = EILSEQ;
+				  return NULL;
+				}
+			      arg_end += count;
+			      characters++;
+			    }
+			}
+		      else if (has_width)
+			{
+			  /* Use the entire string, and count the number of
+			     characters.  */
+			  arg_end = arg;
+			  characters = 0;
+			  for (;;)
+			    {
+			      int count = u16_strmblen (arg_end);
+			      if (count == 0)
+				break;
+			      if (count < 0)
+				{
+				  if (!(result == resultbuf || result == NULL))
+				    free (result);
+				  if (buf_malloced != NULL)
+				    free (buf_malloced);
+				  CLEANUP ();
+				  errno = EILSEQ;
+				  return NULL;
+				}
+			      arg_end += count;
+			      characters++;
+			    }
+			}
+		      else
+			{
+			  /* Use the entire string.  */
+			  arg_end = arg + u16_strlen (arg);
+			  /* The number of characters doesn't matter.  */
+			  characters = 0;
+			}
+
+		      if (has_width && width > characters
+			  && !(dp->flags & FLAG_LEFT))
+			{
+			  size_t n = width - characters;
+			  ENSURE_ALLOCATION (xsum (length, n));
+			  DCHAR_SET (result + length, ' ', n);
+			  length += n;
+			}
+
+# if DCHAR_IS_UINT16_T
+		      {
+			size_t n = arg_end - arg;
+			ENSURE_ALLOCATION (xsum (length, n));
+			DCHAR_CPY (result + length, arg, n);
+			length += n;
+		      }
+# else
+		      { /* Convert.  */
+			DCHAR_T *converted = result + length;
+			size_t converted_len = allocated - length;
+#  if DCHAR_IS_TCHAR
+			/* Convert from UTF-16 to locale encoding.  */
+			if (u16_conv_to_encoding (locale_charset (),
+						  iconveh_question_mark,
+						  arg, arg_end - arg, NULL,
+						  &converted, &converted_len)
+			    < 0)
+#  else
+			/* Convert from UTF-16 to UTF-8/UTF-32.  */
+			converted =
+			  U16_TO_DCHAR (arg, arg_end - arg,
+					converted, &converted_len);
+			if (converted == NULL)
+#  endif
+			  {
+			    int saved_errno = errno;
+			    if (!(result == resultbuf || result == NULL))
+			      free (result);
+			    if (buf_malloced != NULL)
+			      free (buf_malloced);
+			    CLEANUP ();
+			    errno = saved_errno;
+			    return NULL;
+			  }
+			if (converted != result + length)
+			  {
+			    ENSURE_ALLOCATION (xsum (length, converted_len));
+			    DCHAR_CPY (result + length, converted, converted_len);
+			    free (converted);
+			  }
+			length += converted_len;
+		      }
+# endif
+
+		      if (has_width && width > characters
+			  && (dp->flags & FLAG_LEFT))
+			{
+			  size_t n = width - characters;
+			  ENSURE_ALLOCATION (xsum (length, n));
+			  DCHAR_SET (result + length, ' ', n);
+			  length += n;
+			}
+		    }
+		    break;
+
+		  case TYPE_U32_STRING:
+		    {
+		      const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string;
+		      const uint32_t *arg_end;
+		      size_t characters;
+
+		      if (has_precision)
+			{
+			  /* Use only PRECISION characters, from the left.  */
+			  arg_end = arg;
+			  characters = 0;
+			  for (; precision > 0; precision--)
+			    {
+			      int count = u32_strmblen (arg_end);
+			      if (count == 0)
+				break;
+			      if (count < 0)
+				{
+				  if (!(result == resultbuf || result == NULL))
+				    free (result);
+				  if (buf_malloced != NULL)
+				    free (buf_malloced);
+				  CLEANUP ();
+				  errno = EILSEQ;
+				  return NULL;
+				}
+			      arg_end += count;
+			      characters++;
+			    }
+			}
+		      else if (has_width)
+			{
+			  /* Use the entire string, and count the number of
+			     characters.  */
+			  arg_end = arg;
+			  characters = 0;
+			  for (;;)
+			    {
+			      int count = u32_strmblen (arg_end);
+			      if (count == 0)
+				break;
+			      if (count < 0)
+				{
+				  if (!(result == resultbuf || result == NULL))
+				    free (result);
+				  if (buf_malloced != NULL)
+				    free (buf_malloced);
+				  CLEANUP ();
+				  errno = EILSEQ;
+				  return NULL;
+				}
+			      arg_end += count;
+			      characters++;
+			    }
+			}
+		      else
+			{
+			  /* Use the entire string.  */
+			  arg_end = arg + u32_strlen (arg);
+			  /* The number of characters doesn't matter.  */
+			  characters = 0;
+			}
+
+		      if (has_width && width > characters
+			  && !(dp->flags & FLAG_LEFT))
+			{
+			  size_t n = width - characters;
+			  ENSURE_ALLOCATION (xsum (length, n));
+			  DCHAR_SET (result + length, ' ', n);
+			  length += n;
+			}
+
+# if DCHAR_IS_UINT32_T
+		      {
+			size_t n = arg_end - arg;
+			ENSURE_ALLOCATION (xsum (length, n));
+			DCHAR_CPY (result + length, arg, n);
+			length += n;
+		      }
+# else
+		      { /* Convert.  */
+			DCHAR_T *converted = result + length;
+			size_t converted_len = allocated - length;
+#  if DCHAR_IS_TCHAR
+			/* Convert from UTF-32 to locale encoding.  */
+			if (u32_conv_to_encoding (locale_charset (),
+						  iconveh_question_mark,
+						  arg, arg_end - arg, NULL,
+						  &converted, &converted_len)
+			    < 0)
+#  else
+			/* Convert from UTF-32 to UTF-8/UTF-16.  */
+			converted =
+			  U32_TO_DCHAR (arg, arg_end - arg,
+					converted, &converted_len);
+			if (converted == NULL)
+#  endif
+			  {
+			    int saved_errno = errno;
+			    if (!(result == resultbuf || result == NULL))
+			      free (result);
+			    if (buf_malloced != NULL)
+			      free (buf_malloced);
+			    CLEANUP ();
+			    errno = saved_errno;
+			    return NULL;
+			  }
+			if (converted != result + length)
+			  {
+			    ENSURE_ALLOCATION (xsum (length, converted_len));
+			    DCHAR_CPY (result + length, converted, converted_len);
+			    free (converted);
+			  }
+			length += converted_len;
+		      }
+# endif
+
+		      if (has_width && width > characters
+			  && (dp->flags & FLAG_LEFT))
+			{
+			  size_t n = width - characters;
+			  ENSURE_ALLOCATION (xsum (length, n));
+			  DCHAR_SET (result + length, ' ', n);
+			  length += n;
+			}
+		    }
+		    break;
+
+		  default:
+		    abort ();
+		  }
+	      }
+#endif
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+	    else if ((dp->conversion == 'a' || dp->conversion == 'A')
+# if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE))
+		     && (0
+#  if NEED_PRINTF_DOUBLE
+			 || a.arg[dp->arg_index].type == TYPE_DOUBLE
+#  endif
+#  if NEED_PRINTF_LONG_DOUBLE
+			 || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
+#  endif
+			)
+# endif
+		    )
+	      {
+		arg_type type = a.arg[dp->arg_index].type;
+		int flags = dp->flags;
+		int has_width;
+		size_t width;
+		int has_precision;
+		size_t precision;
+		size_t tmp_length;
+		DCHAR_T tmpbuf[700];
+		DCHAR_T *tmp;
+		DCHAR_T *pad_ptr;
+		DCHAR_T *p;
+
+		has_width = 0;
+		width = 0;
+		if (dp->width_start != dp->width_end)
+		  {
+		    if (dp->width_arg_index != ARG_NONE)
+		      {
+			int arg;
+
+			if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+			  abort ();
+			arg = a.arg[dp->width_arg_index].a.a_int;
+			if (arg < 0)
+			  {
+			    /* "A negative field width is taken as a '-' flag
+			        followed by a positive field width."  */
+			    flags |= FLAG_LEFT;
+			    width = (unsigned int) (-arg);
+			  }
+			else
+			  width = arg;
+		      }
+		    else
+		      {
+			const FCHAR_T *digitp = dp->width_start;
+
+			do
+			  width = xsum (xtimes (width, 10), *digitp++ - '0');
+			while (digitp != dp->width_end);
+		      }
+		    has_width = 1;
+		  }
+
+		has_precision = 0;
+		precision = 0;
+		if (dp->precision_start != dp->precision_end)
+		  {
+		    if (dp->precision_arg_index != ARG_NONE)
+		      {
+			int arg;
+
+			if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+			  abort ();
+			arg = a.arg[dp->precision_arg_index].a.a_int;
+			/* "A negative precision is taken as if the precision
+			    were omitted."  */
+			if (arg >= 0)
+			  {
+			    precision = arg;
+			    has_precision = 1;
+			  }
+		      }
+		    else
+		      {
+			const FCHAR_T *digitp = dp->precision_start + 1;
+
+			precision = 0;
+			while (digitp != dp->precision_end)
+			  precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+			has_precision = 1;
+		      }
+		  }
+
+		/* Allocate a temporary buffer of sufficient size.  */
+		if (type == TYPE_LONGDOUBLE)
+		  tmp_length =
+		    (unsigned int) ((LDBL_DIG + 1)
+				    * 0.831 /* decimal -> hexadecimal */
+				   )
+		    + 1; /* turn floor into ceil */
+		else
+		  tmp_length =
+		    (unsigned int) ((DBL_DIG + 1)
+				    * 0.831 /* decimal -> hexadecimal */
+				   )
+		    + 1; /* turn floor into ceil */
+		if (tmp_length < precision)
+		  tmp_length = precision;
+		/* Account for sign, decimal point etc. */
+		tmp_length = xsum (tmp_length, 12);
+
+		if (tmp_length < width)
+		  tmp_length = width;
+
+		tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+
+		if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
+		  tmp = tmpbuf;
+		else
+		  {
+		    size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T));
+
+		    if (size_overflow_p (tmp_memsize))
+		      /* Overflow, would lead to out of memory.  */
+		      goto out_of_memory;
+		    tmp = (DCHAR_T *) malloc (tmp_memsize);
+		    if (tmp == NULL)
+		      /* Out of memory.  */
+		      goto out_of_memory;
+		  }
+
+		pad_ptr = NULL;
+		p = tmp;
+		if (type == TYPE_LONGDOUBLE)
+		  {
+# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE
+		    long double arg = a.arg[dp->arg_index].a.a_longdouble;
+
+		    if (isnanl (arg))
+		      {
+			if (dp->conversion == 'A')
+			  {
+			    *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+			  }
+			else
+			  {
+			    *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+			  }
+		      }
+		    else
+		      {
+			int sign = 0;
+			DECL_LONG_DOUBLE_ROUNDING
+
+			BEGIN_LONG_DOUBLE_ROUNDING ();
+
+			if (signbit (arg)) /* arg < 0.0L or negative zero */
+			  {
+			    sign = -1;
+			    arg = -arg;
+			  }
+
+			if (sign < 0)
+			  *p++ = '-';
+			else if (flags & FLAG_SHOWSIGN)
+			  *p++ = '+';
+			else if (flags & FLAG_SPACE)
+			  *p++ = ' ';
+
+			if (arg > 0.0L && arg + arg == arg)
+			  {
+			    if (dp->conversion == 'A')
+			      {
+				*p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+			      }
+			    else
+			      {
+				*p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+			      }
+			  }
+			else
+			  {
+			    int exponent;
+			    long double mantissa;
+
+			    if (arg > 0.0L)
+			      mantissa = printf_frexpl (arg, &exponent);
+			    else
+			      {
+				exponent = 0;
+				mantissa = 0.0L;
+			      }
+
+			    if (has_precision
+				&& precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1)
+			      {
+				/* Round the mantissa.  */
+				long double tail = mantissa;
+				size_t q;
+
+				for (q = precision; ; q--)
+				  {
+				    int digit = (int) tail;
+				    tail -= digit;
+				    if (q == 0)
+				      {
+					if (digit & 1 ? tail >= 0.5L : tail > 0.5L)
+					  tail = 1 - tail;
+					else
+					  tail = - tail;
+					break;
+				      }
+				    tail *= 16.0L;
+				  }
+				if (tail != 0.0L)
+				  for (q = precision; q > 0; q--)
+				    tail *= 0.0625L;
+				mantissa += tail;
+			      }
+
+			    *p++ = '0';
+			    *p++ = dp->conversion - 'A' + 'X';
+			    pad_ptr = p;
+			    {
+			      int digit;
+
+			      digit = (int) mantissa;
+			      mantissa -= digit;
+			      *p++ = '0' + digit;
+			      if ((flags & FLAG_ALT)
+				  || mantissa > 0.0L || precision > 0)
+				{
+				  *p++ = decimal_point_char ();
+				  /* This loop terminates because we assume
+				     that FLT_RADIX is a power of 2.  */
+				  while (mantissa > 0.0L)
+				    {
+				      mantissa *= 16.0L;
+				      digit = (int) mantissa;
+				      mantissa -= digit;
+				      *p++ = digit
+					     + (digit < 10
+						? '0'
+						: dp->conversion - 10);
+				      if (precision > 0)
+					precision--;
+				    }
+				  while (precision > 0)
+				    {
+				      *p++ = '0';
+				      precision--;
+				    }
+				}
+			      }
+			      *p++ = dp->conversion - 'A' + 'P';
+#  if WIDE_CHAR_VERSION
+			      {
+				static const wchar_t decimal_format[] =
+				  { '%', '+', 'd', '\0' };
+				SNPRINTF (p, 6 + 1, decimal_format, exponent);
+			      }
+			      while (*p != '\0')
+				p++;
+#  else
+			      if (sizeof (DCHAR_T) == 1)
+				{
+				  sprintf ((char *) p, "%+d", exponent);
+				  while (*p != '\0')
+				    p++;
+				}
+			      else
+				{
+				  char expbuf[6 + 1];
+				  const char *ep;
+				  sprintf (expbuf, "%+d", exponent);
+				  for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+				    p++;
+				}
+#  endif
+			  }
+
+			END_LONG_DOUBLE_ROUNDING ();
+		      }
+# else
+		    abort ();
+# endif
+		  }
+		else
+		  {
+# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE
+		    double arg = a.arg[dp->arg_index].a.a_double;
+
+		    if (isnand (arg))
+		      {
+			if (dp->conversion == 'A')
+			  {
+			    *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+			  }
+			else
+			  {
+			    *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+			  }
+		      }
+		    else
+		      {
+			int sign = 0;
+
+			if (signbit (arg)) /* arg < 0.0 or negative zero */
+			  {
+			    sign = -1;
+			    arg = -arg;
+			  }
+
+			if (sign < 0)
+			  *p++ = '-';
+			else if (flags & FLAG_SHOWSIGN)
+			  *p++ = '+';
+			else if (flags & FLAG_SPACE)
+			  *p++ = ' ';
+
+			if (arg > 0.0 && arg + arg == arg)
+			  {
+			    if (dp->conversion == 'A')
+			      {
+				*p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+			      }
+			    else
+			      {
+				*p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+			      }
+			  }
+			else
+			  {
+			    int exponent;
+			    double mantissa;
+
+			    if (arg > 0.0)
+			      mantissa = printf_frexp (arg, &exponent);
+			    else
+			      {
+				exponent = 0;
+				mantissa = 0.0;
+			      }
+
+			    if (has_precision
+				&& precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1)
+			      {
+				/* Round the mantissa.  */
+				double tail = mantissa;
+				size_t q;
+
+				for (q = precision; ; q--)
+				  {
+				    int digit = (int) tail;
+				    tail -= digit;
+				    if (q == 0)
+				      {
+					if (digit & 1 ? tail >= 0.5 : tail > 0.5)
+					  tail = 1 - tail;
+					else
+					  tail = - tail;
+					break;
+				      }
+				    tail *= 16.0;
+				  }
+				if (tail != 0.0)
+				  for (q = precision; q > 0; q--)
+				    tail *= 0.0625;
+				mantissa += tail;
+			      }
+
+			    *p++ = '0';
+			    *p++ = dp->conversion - 'A' + 'X';
+			    pad_ptr = p;
+			    {
+			      int digit;
+
+			      digit = (int) mantissa;
+			      mantissa -= digit;
+			      *p++ = '0' + digit;
+			      if ((flags & FLAG_ALT)
+				  || mantissa > 0.0 || precision > 0)
+				{
+				  *p++ = decimal_point_char ();
+				  /* This loop terminates because we assume
+				     that FLT_RADIX is a power of 2.  */
+				  while (mantissa > 0.0)
+				    {
+				      mantissa *= 16.0;
+				      digit = (int) mantissa;
+				      mantissa -= digit;
+				      *p++ = digit
+					     + (digit < 10
+						? '0'
+						: dp->conversion - 10);
+				      if (precision > 0)
+					precision--;
+				    }
+				  while (precision > 0)
+				    {
+				      *p++ = '0';
+				      precision--;
+				    }
+				}
+			      }
+			      *p++ = dp->conversion - 'A' + 'P';
+#  if WIDE_CHAR_VERSION
+			      {
+				static const wchar_t decimal_format[] =
+				  { '%', '+', 'd', '\0' };
+				SNPRINTF (p, 6 + 1, decimal_format, exponent);
+			      }
+			      while (*p != '\0')
+				p++;
+#  else
+			      if (sizeof (DCHAR_T) == 1)
+				{
+				  sprintf ((char *) p, "%+d", exponent);
+				  while (*p != '\0')
+				    p++;
+				}
+			      else
+				{
+				  char expbuf[6 + 1];
+				  const char *ep;
+				  sprintf (expbuf, "%+d", exponent);
+				  for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+				    p++;
+				}
+#  endif
+			  }
+		      }
+# else
+		    abort ();
+# endif
+		  }
+		/* The generated string now extends from tmp to p, with the
+		   zero padding insertion point being at pad_ptr.  */
+		if (has_width && p - tmp < width)
+		  {
+		    size_t pad = width - (p - tmp);
+		    DCHAR_T *end = p + pad;
+
+		    if (flags & FLAG_LEFT)
+		      {
+			/* Pad with spaces on the right.  */
+			for (; pad > 0; pad--)
+			  *p++ = ' ';
+		      }
+		    else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+		      {
+			/* Pad with zeroes.  */
+			DCHAR_T *q = end;
+
+			while (p > pad_ptr)
+			  *--q = *--p;
+			for (; pad > 0; pad--)
+			  *p++ = '0';
+		      }
+		    else
+		      {
+			/* Pad with spaces on the left.  */
+			DCHAR_T *q = end;
+
+			while (p > tmp)
+			  *--q = *--p;
+			for (; pad > 0; pad--)
+			  *p++ = ' ';
+		      }
+
+		    p = end;
+		  }
+
+		{
+		  size_t count = p - tmp;
+
+		  if (count >= tmp_length)
+		    /* tmp_length was incorrectly calculated - fix the
+		       code above!  */
+		    abort ();
+
+		  /* Make room for the result.  */
+		  if (count >= allocated - length)
+		    {
+		      size_t n = xsum (length, count);
+
+		      ENSURE_ALLOCATION (n);
+		    }
+
+		  /* Append the result.  */
+		  memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+		  if (tmp != tmpbuf)
+		    free (tmp);
+		  length += count;
+		}
+	      }
+#endif
+#if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+	    else if ((dp->conversion == 'f' || dp->conversion == 'F'
+		      || dp->conversion == 'e' || dp->conversion == 'E'
+		      || dp->conversion == 'g' || dp->conversion == 'G'
+		      || dp->conversion == 'a' || dp->conversion == 'A')
+		     && (0
+# if NEED_PRINTF_DOUBLE
+			 || a.arg[dp->arg_index].type == TYPE_DOUBLE
+# elif NEED_PRINTF_INFINITE_DOUBLE
+			 || (a.arg[dp->arg_index].type == TYPE_DOUBLE
+			     /* The systems (mingw) which produce wrong output
+				for Inf, -Inf, and NaN also do so for -0.0.
+				Therefore we treat this case here as well.  */
+			     && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double))
+# endif
+# if NEED_PRINTF_LONG_DOUBLE
+			 || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
+# elif NEED_PRINTF_INFINITE_LONG_DOUBLE
+			 || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
+			     /* Some systems produce wrong output for Inf,
+				-Inf, and NaN.  */
+			     && is_infinitel (a.arg[dp->arg_index].a.a_longdouble))
+# endif
+			))
+	      {
+# if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE)
+		arg_type type = a.arg[dp->arg_index].type;
+# endif
+		int flags = dp->flags;
+		int has_width;
+		size_t width;
+		int has_precision;
+		size_t precision;
+		size_t tmp_length;
+		DCHAR_T tmpbuf[700];
+		DCHAR_T *tmp;
+		DCHAR_T *pad_ptr;
+		DCHAR_T *p;
+
+		has_width = 0;
+		width = 0;
+		if (dp->width_start != dp->width_end)
+		  {
+		    if (dp->width_arg_index != ARG_NONE)
+		      {
+			int arg;
+
+			if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+			  abort ();
+			arg = a.arg[dp->width_arg_index].a.a_int;
+			if (arg < 0)
+			  {
+			    /* "A negative field width is taken as a '-' flag
+			        followed by a positive field width."  */
+			    flags |= FLAG_LEFT;
+			    width = (unsigned int) (-arg);
+			  }
+			else
+			  width = arg;
+		      }
+		    else
+		      {
+			const FCHAR_T *digitp = dp->width_start;
+
+			do
+			  width = xsum (xtimes (width, 10), *digitp++ - '0');
+			while (digitp != dp->width_end);
+		      }
+		    has_width = 1;
+		  }
+
+		has_precision = 0;
+		precision = 0;
+		if (dp->precision_start != dp->precision_end)
+		  {
+		    if (dp->precision_arg_index != ARG_NONE)
+		      {
+			int arg;
+
+			if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+			  abort ();
+			arg = a.arg[dp->precision_arg_index].a.a_int;
+			/* "A negative precision is taken as if the precision
+			    were omitted."  */
+			if (arg >= 0)
+			  {
+			    precision = arg;
+			    has_precision = 1;
+			  }
+		      }
+		    else
+		      {
+			const FCHAR_T *digitp = dp->precision_start + 1;
+
+			precision = 0;
+			while (digitp != dp->precision_end)
+			  precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+			has_precision = 1;
+		      }
+		  }
+
+		/* POSIX specifies the default precision to be 6 for %f, %F,
+		   %e, %E, but not for %g, %G.  Implementations appear to use
+		   the same default precision also for %g, %G.  */
+		if (!has_precision)
+		  precision = 6;
+
+		/* Allocate a temporary buffer of sufficient size.  */
+# if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE
+		tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1);
+# elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE
+		tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0);
+# elif NEED_PRINTF_LONG_DOUBLE
+		tmp_length = LDBL_DIG + 1;
+# elif NEED_PRINTF_DOUBLE
+		tmp_length = DBL_DIG + 1;
+# else
+		tmp_length = 0;
+# endif
+		if (tmp_length < precision)
+		  tmp_length = precision;
+# if NEED_PRINTF_LONG_DOUBLE
+#  if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+		if (type == TYPE_LONGDOUBLE)
+#  endif
+		  if (dp->conversion == 'f' || dp->conversion == 'F')
+		    {
+		      long double arg = a.arg[dp->arg_index].a.a_longdouble;
+		      if (!(isnanl (arg) || arg + arg == arg))
+			{
+			  /* arg is finite and nonzero.  */
+			  int exponent = floorlog10l (arg < 0 ? -arg : arg);
+			  if (exponent >= 0 && tmp_length < exponent + precision)
+			    tmp_length = exponent + precision;
+			}
+		    }
+# endif
+# if NEED_PRINTF_DOUBLE
+#  if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
+		if (type == TYPE_DOUBLE)
+#  endif
+		  if (dp->conversion == 'f' || dp->conversion == 'F')
+		    {
+		      double arg = a.arg[dp->arg_index].a.a_double;
+		      if (!(isnand (arg) || arg + arg == arg))
+			{
+			  /* arg is finite and nonzero.  */
+			  int exponent = floorlog10 (arg < 0 ? -arg : arg);
+			  if (exponent >= 0 && tmp_length < exponent + precision)
+			    tmp_length = exponent + precision;
+			}
+		    }
+# endif
+		/* Account for sign, decimal point etc. */
+		tmp_length = xsum (tmp_length, 12);
+
+		if (tmp_length < width)
+		  tmp_length = width;
+
+		tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+
+		if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
+		  tmp = tmpbuf;
+		else
+		  {
+		    size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T));
+
+		    if (size_overflow_p (tmp_memsize))
+		      /* Overflow, would lead to out of memory.  */
+		      goto out_of_memory;
+		    tmp = (DCHAR_T *) malloc (tmp_memsize);
+		    if (tmp == NULL)
+		      /* Out of memory.  */
+		      goto out_of_memory;
+		  }
+
+		pad_ptr = NULL;
+		p = tmp;
+
+# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
+#  if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+		if (type == TYPE_LONGDOUBLE)
+#  endif
+		  {
+		    long double arg = a.arg[dp->arg_index].a.a_longdouble;
+
+		    if (isnanl (arg))
+		      {
+			if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+			  {
+			    *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+			  }
+			else
+			  {
+			    *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+			  }
+		      }
+		    else
+		      {
+			int sign = 0;
+			DECL_LONG_DOUBLE_ROUNDING
+
+			BEGIN_LONG_DOUBLE_ROUNDING ();
+
+			if (signbit (arg)) /* arg < 0.0L or negative zero */
+			  {
+			    sign = -1;
+			    arg = -arg;
+			  }
+
+			if (sign < 0)
+			  *p++ = '-';
+			else if (flags & FLAG_SHOWSIGN)
+			  *p++ = '+';
+			else if (flags & FLAG_SPACE)
+			  *p++ = ' ';
+
+			if (arg > 0.0L && arg + arg == arg)
+			  {
+			    if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+			      {
+				*p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+			      }
+			    else
+			      {
+				*p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+			      }
+			  }
+			else
+			  {
+#  if NEED_PRINTF_LONG_DOUBLE
+			    pad_ptr = p;
+
+			    if (dp->conversion == 'f' || dp->conversion == 'F')
+			      {
+				char *digits;
+				size_t ndigits;
+
+				digits =
+				  scale10_round_decimal_long_double (arg, precision);
+				if (digits == NULL)
+				  {
+				    END_LONG_DOUBLE_ROUNDING ();
+				    goto out_of_memory;
+				  }
+				ndigits = strlen (digits);
+
+				if (ndigits > precision)
+				  do
+				    {
+				      --ndigits;
+				      *p++ = digits[ndigits];
+				    }
+				  while (ndigits > precision);
+				else
+				  *p++ = '0';
+				/* Here ndigits <= precision.  */
+				if ((flags & FLAG_ALT) || precision > 0)
+				  {
+				    *p++ = decimal_point_char ();
+				    for (; precision > ndigits; precision--)
+				      *p++ = '0';
+				    while (ndigits > 0)
+				      {
+					--ndigits;
+					*p++ = digits[ndigits];
+				      }
+				  }
+
+				free (digits);
+			      }
+			    else if (dp->conversion == 'e' || dp->conversion == 'E')
+			      {
+				int exponent;
+
+				if (arg == 0.0L)
+				  {
+				    exponent = 0;
+				    *p++ = '0';
+				    if ((flags & FLAG_ALT) || precision > 0)
+				      {
+					*p++ = decimal_point_char ();
+					for (; precision > 0; precision--)
+					  *p++ = '0';
+				      }
+				  }
+				else
+				  {
+				    /* arg > 0.0L.  */
+				    int adjusted;
+				    char *digits;
+				    size_t ndigits;
+
+				    exponent = floorlog10l (arg);
+				    adjusted = 0;
+				    for (;;)
+				      {
+					digits =
+					  scale10_round_decimal_long_double (arg,
+									     (int)precision - exponent);
+					if (digits == NULL)
+					  {
+					    END_LONG_DOUBLE_ROUNDING ();
+					    goto out_of_memory;
+					  }
+					ndigits = strlen (digits);
+
+					if (ndigits == precision + 1)
+					  break;
+					if (ndigits < precision
+					    || ndigits > precision + 2)
+					  /* The exponent was not guessed
+					     precisely enough.  */
+					  abort ();
+					if (adjusted)
+					  /* None of two values of exponent is
+					     the right one.  Prevent an endless
+					     loop.  */
+					  abort ();
+					free (digits);
+					if (ndigits == precision)
+					  exponent -= 1;
+					else
+					  exponent += 1;
+					adjusted = 1;
+				      }
+
+				    /* Here ndigits = precision+1.  */
+				    *p++ = digits[--ndigits];
+				    if ((flags & FLAG_ALT) || precision > 0)
+				      {
+					*p++ = decimal_point_char ();
+					while (ndigits > 0)
+					  {
+					    --ndigits;
+					    *p++ = digits[ndigits];
+					  }
+				      }
+
+				    free (digits);
+				  }
+
+				*p++ = dp->conversion; /* 'e' or 'E' */
+#   if WIDE_CHAR_VERSION
+				{
+				  static const wchar_t decimal_format[] =
+				    { '%', '+', '.', '2', 'd', '\0' };
+				  SNPRINTF (p, 6 + 1, decimal_format, exponent);
+				}
+				while (*p != '\0')
+				  p++;
+#   else
+				if (sizeof (DCHAR_T) == 1)
+				  {
+				    sprintf ((char *) p, "%+.2d", exponent);
+				    while (*p != '\0')
+				      p++;
+				  }
+				else
+				  {
+				    char expbuf[6 + 1];
+				    const char *ep;
+				    sprintf (expbuf, "%+.2d", exponent);
+				    for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+				      p++;
+				  }
+#   endif
+			      }
+			    else if (dp->conversion == 'g' || dp->conversion == 'G')
+			      {
+				if (precision == 0)
+				  precision = 1;
+				/* precision >= 1.  */
+
+				if (arg == 0.0L)
+				  /* The exponent is 0, >= -4, < precision.
+				     Use fixed-point notation.  */
+				  {
+				    size_t ndigits = precision;
+				    /* Number of trailing zeroes that have to be
+				       dropped.  */
+				    size_t nzeroes =
+				      (flags & FLAG_ALT ? 0 : precision - 1);
+
+				    --ndigits;
+				    *p++ = '0';
+				    if ((flags & FLAG_ALT) || ndigits > nzeroes)
+				      {
+					*p++ = decimal_point_char ();
+					while (ndigits > nzeroes)
+					  {
+					    --ndigits;
+					    *p++ = '0';
+					  }
+				      }
+				  }
+				else
+				  {
+				    /* arg > 0.0L.  */
+				    int exponent;
+				    int adjusted;
+				    char *digits;
+				    size_t ndigits;
+				    size_t nzeroes;
+
+				    exponent = floorlog10l (arg);
+				    adjusted = 0;
+				    for (;;)
+				      {
+					digits =
+					  scale10_round_decimal_long_double (arg,
+									     (int)(precision - 1) - exponent);
+					if (digits == NULL)
+					  {
+					    END_LONG_DOUBLE_ROUNDING ();
+					    goto out_of_memory;
+					  }
+					ndigits = strlen (digits);
+
+					if (ndigits == precision)
+					  break;
+					if (ndigits < precision - 1
+					    || ndigits > precision + 1)
+					  /* The exponent was not guessed
+					     precisely enough.  */
+					  abort ();
+					if (adjusted)
+					  /* None of two values of exponent is
+					     the right one.  Prevent an endless
+					     loop.  */
+					  abort ();
+					free (digits);
+					if (ndigits < precision)
+					  exponent -= 1;
+					else
+					  exponent += 1;
+					adjusted = 1;
+				      }
+				    /* Here ndigits = precision.  */
+
+				    /* Determine the number of trailing zeroes
+				       that have to be dropped.  */
+				    nzeroes = 0;
+				    if ((flags & FLAG_ALT) == 0)
+				      while (nzeroes < ndigits
+					     && digits[nzeroes] == '0')
+					nzeroes++;
+
+				    /* The exponent is now determined.  */
+				    if (exponent >= -4
+					&& exponent < (long)precision)
+				      {
+					/* Fixed-point notation:
+					   max(exponent,0)+1 digits, then the
+					   decimal point, then the remaining
+					   digits without trailing zeroes.  */
+					if (exponent >= 0)
+					  {
+					    size_t count = exponent + 1;
+					    /* Note: count <= precision = ndigits.  */
+					    for (; count > 0; count--)
+					      *p++ = digits[--ndigits];
+					    if ((flags & FLAG_ALT) || ndigits > nzeroes)
+					      {
+						*p++ = decimal_point_char ();
+						while (ndigits > nzeroes)
+						  {
+						    --ndigits;
+						    *p++ = digits[ndigits];
+						  }
+					      }
+					  }
+					else
+					  {
+					    size_t count = -exponent - 1;
+					    *p++ = '0';
+					    *p++ = decimal_point_char ();
+					    for (; count > 0; count--)
+					      *p++ = '0';
+					    while (ndigits > nzeroes)
+					      {
+						--ndigits;
+						*p++ = digits[ndigits];
+					      }
+					  }
+				      }
+				    else
+				      {
+					/* Exponential notation.  */
+					*p++ = digits[--ndigits];
+					if ((flags & FLAG_ALT) || ndigits > nzeroes)
+					  {
+					    *p++ = decimal_point_char ();
+					    while (ndigits > nzeroes)
+					      {
+						--ndigits;
+						*p++ = digits[ndigits];
+					      }
+					  }
+					*p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
+#   if WIDE_CHAR_VERSION
+					{
+					  static const wchar_t decimal_format[] =
+					    { '%', '+', '.', '2', 'd', '\0' };
+					  SNPRINTF (p, 6 + 1, decimal_format, exponent);
+					}
+					while (*p != '\0')
+					  p++;
+#   else
+					if (sizeof (DCHAR_T) == 1)
+					  {
+					    sprintf ((char *) p, "%+.2d", exponent);
+					    while (*p != '\0')
+					      p++;
+					  }
+					else
+					  {
+					    char expbuf[6 + 1];
+					    const char *ep;
+					    sprintf (expbuf, "%+.2d", exponent);
+					    for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+					      p++;
+					  }
+#   endif
+				      }
+
+				    free (digits);
+				  }
+			      }
+			    else
+			      abort ();
+#  else
+			    /* arg is finite.  */
+			    abort ();
+#  endif
+			  }
+
+			END_LONG_DOUBLE_ROUNDING ();
+		      }
+		  }
+#  if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+		else
+#  endif
+# endif
+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+		  {
+		    double arg = a.arg[dp->arg_index].a.a_double;
+
+		    if (isnand (arg))
+		      {
+			if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+			  {
+			    *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+			  }
+			else
+			  {
+			    *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+			  }
+		      }
+		    else
+		      {
+			int sign = 0;
+
+			if (signbit (arg)) /* arg < 0.0 or negative zero */
+			  {
+			    sign = -1;
+			    arg = -arg;
+			  }
+
+			if (sign < 0)
+			  *p++ = '-';
+			else if (flags & FLAG_SHOWSIGN)
+			  *p++ = '+';
+			else if (flags & FLAG_SPACE)
+			  *p++ = ' ';
+
+			if (arg > 0.0 && arg + arg == arg)
+			  {
+			    if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+			      {
+				*p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+			      }
+			    else
+			      {
+				*p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+			      }
+			  }
+			else
+			  {
+#  if NEED_PRINTF_DOUBLE
+			    pad_ptr = p;
+
+			    if (dp->conversion == 'f' || dp->conversion == 'F')
+			      {
+				char *digits;
+				size_t ndigits;
+
+				digits =
+				  scale10_round_decimal_double (arg, precision);
+				if (digits == NULL)
+				  goto out_of_memory;
+				ndigits = strlen (digits);
+
+				if (ndigits > precision)
+				  do
+				    {
+				      --ndigits;
+				      *p++ = digits[ndigits];
+				    }
+				  while (ndigits > precision);
+				else
+				  *p++ = '0';
+				/* Here ndigits <= precision.  */
+				if ((flags & FLAG_ALT) || precision > 0)
+				  {
+				    *p++ = decimal_point_char ();
+				    for (; precision > ndigits; precision--)
+				      *p++ = '0';
+				    while (ndigits > 0)
+				      {
+					--ndigits;
+					*p++ = digits[ndigits];
+				      }
+				  }
+
+				free (digits);
+			      }
+			    else if (dp->conversion == 'e' || dp->conversion == 'E')
+			      {
+				int exponent;
+
+				if (arg == 0.0)
+				  {
+				    exponent = 0;
+				    *p++ = '0';
+				    if ((flags & FLAG_ALT) || precision > 0)
+				      {
+					*p++ = decimal_point_char ();
+					for (; precision > 0; precision--)
+					  *p++ = '0';
+				      }
+				  }
+				else
+				  {
+				    /* arg > 0.0.  */
+				    int adjusted;
+				    char *digits;
+				    size_t ndigits;
+
+				    exponent = floorlog10 (arg);
+				    adjusted = 0;
+				    for (;;)
+				      {
+					digits =
+					  scale10_round_decimal_double (arg,
+									(int)precision - exponent);
+					if (digits == NULL)
+					  goto out_of_memory;
+					ndigits = strlen (digits);
+
+					if (ndigits == precision + 1)
+					  break;
+					if (ndigits < precision
+					    || ndigits > precision + 2)
+					  /* The exponent was not guessed
+					     precisely enough.  */
+					  abort ();
+					if (adjusted)
+					  /* None of two values of exponent is
+					     the right one.  Prevent an endless
+					     loop.  */
+					  abort ();
+					free (digits);
+					if (ndigits == precision)
+					  exponent -= 1;
+					else
+					  exponent += 1;
+					adjusted = 1;
+				      }
+
+				    /* Here ndigits = precision+1.  */
+				    *p++ = digits[--ndigits];
+				    if ((flags & FLAG_ALT) || precision > 0)
+				      {
+					*p++ = decimal_point_char ();
+					while (ndigits > 0)
+					  {
+					    --ndigits;
+					    *p++ = digits[ndigits];
+					  }
+				      }
+
+				    free (digits);
+				  }
+
+				*p++ = dp->conversion; /* 'e' or 'E' */
+#   if WIDE_CHAR_VERSION
+				{
+				  static const wchar_t decimal_format[] =
+				    /* Produce the same number of exponent digits
+				       as the native printf implementation.  */
+#    if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+				    { '%', '+', '.', '3', 'd', '\0' };
+#    else
+				    { '%', '+', '.', '2', 'd', '\0' };
+#    endif
+				  SNPRINTF (p, 6 + 1, decimal_format, exponent);
+				}
+				while (*p != '\0')
+				  p++;
+#   else
+				{
+				  static const char decimal_format[] =
+				    /* Produce the same number of exponent digits
+				       as the native printf implementation.  */
+#    if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+				    "%+.3d";
+#    else
+				    "%+.2d";
+#    endif
+				  if (sizeof (DCHAR_T) == 1)
+				    {
+				      sprintf ((char *) p, decimal_format, exponent);
+				      while (*p != '\0')
+					p++;
+				    }
+				  else
+				    {
+				      char expbuf[6 + 1];
+				      const char *ep;
+				      sprintf (expbuf, decimal_format, exponent);
+				      for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+					p++;
+				    }
+				}
+#   endif
+			      }
+			    else if (dp->conversion == 'g' || dp->conversion == 'G')
+			      {
+				if (precision == 0)
+				  precision = 1;
+				/* precision >= 1.  */
+
+				if (arg == 0.0)
+				  /* The exponent is 0, >= -4, < precision.
+				     Use fixed-point notation.  */
+				  {
+				    size_t ndigits = precision;
+				    /* Number of trailing zeroes that have to be
+				       dropped.  */
+				    size_t nzeroes =
+				      (flags & FLAG_ALT ? 0 : precision - 1);
+
+				    --ndigits;
+				    *p++ = '0';
+				    if ((flags & FLAG_ALT) || ndigits > nzeroes)
+				      {
+					*p++ = decimal_point_char ();
+					while (ndigits > nzeroes)
+					  {
+					    --ndigits;
+					    *p++ = '0';
+					  }
+				      }
+				  }
+				else
+				  {
+				    /* arg > 0.0.  */
+				    int exponent;
+				    int adjusted;
+				    char *digits;
+				    size_t ndigits;
+				    size_t nzeroes;
+
+				    exponent = floorlog10 (arg);
+				    adjusted = 0;
+				    for (;;)
+				      {
+					digits =
+					  scale10_round_decimal_double (arg,
+									(int)(precision - 1) - exponent);
+					if (digits == NULL)
+					  goto out_of_memory;
+					ndigits = strlen (digits);
+
+					if (ndigits == precision)
+					  break;
+					if (ndigits < precision - 1
+					    || ndigits > precision + 1)
+					  /* The exponent was not guessed
+					     precisely enough.  */
+					  abort ();
+					if (adjusted)
+					  /* None of two values of exponent is
+					     the right one.  Prevent an endless
+					     loop.  */
+					  abort ();
+					free (digits);
+					if (ndigits < precision)
+					  exponent -= 1;
+					else
+					  exponent += 1;
+					adjusted = 1;
+				      }
+				    /* Here ndigits = precision.  */
+
+				    /* Determine the number of trailing zeroes
+				       that have to be dropped.  */
+				    nzeroes = 0;
+				    if ((flags & FLAG_ALT) == 0)
+				      while (nzeroes < ndigits
+					     && digits[nzeroes] == '0')
+					nzeroes++;
+
+				    /* The exponent is now determined.  */
+				    if (exponent >= -4
+					&& exponent < (long)precision)
+				      {
+					/* Fixed-point notation:
+					   max(exponent,0)+1 digits, then the
+					   decimal point, then the remaining
+					   digits without trailing zeroes.  */
+					if (exponent >= 0)
+					  {
+					    size_t count = exponent + 1;
+					    /* Note: count <= precision = ndigits.  */
+					    for (; count > 0; count--)
+					      *p++ = digits[--ndigits];
+					    if ((flags & FLAG_ALT) || ndigits > nzeroes)
+					      {
+						*p++ = decimal_point_char ();
+						while (ndigits > nzeroes)
+						  {
+						    --ndigits;
+						    *p++ = digits[ndigits];
+						  }
+					      }
+					  }
+					else
+					  {
+					    size_t count = -exponent - 1;
+					    *p++ = '0';
+					    *p++ = decimal_point_char ();
+					    for (; count > 0; count--)
+					      *p++ = '0';
+					    while (ndigits > nzeroes)
+					      {
+						--ndigits;
+						*p++ = digits[ndigits];
+					      }
+					  }
+				      }
+				    else
+				      {
+					/* Exponential notation.  */
+					*p++ = digits[--ndigits];
+					if ((flags & FLAG_ALT) || ndigits > nzeroes)
+					  {
+					    *p++ = decimal_point_char ();
+					    while (ndigits > nzeroes)
+					      {
+						--ndigits;
+						*p++ = digits[ndigits];
+					      }
+					  }
+					*p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
+#   if WIDE_CHAR_VERSION
+					{
+					  static const wchar_t decimal_format[] =
+					    /* Produce the same number of exponent digits
+					       as the native printf implementation.  */
+#    if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+					    { '%', '+', '.', '3', 'd', '\0' };
+#    else
+					    { '%', '+', '.', '2', 'd', '\0' };
+#    endif
+					  SNPRINTF (p, 6 + 1, decimal_format, exponent);
+					}
+					while (*p != '\0')
+					  p++;
+#   else
+					{
+					  static const char decimal_format[] =
+					    /* Produce the same number of exponent digits
+					       as the native printf implementation.  */
+#    if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+					    "%+.3d";
+#    else
+					    "%+.2d";
+#    endif
+					  if (sizeof (DCHAR_T) == 1)
+					    {
+					      sprintf ((char *) p, decimal_format, exponent);
+					      while (*p != '\0')
+						p++;
+					    }
+					  else
+					    {
+					      char expbuf[6 + 1];
+					      const char *ep;
+					      sprintf (expbuf, decimal_format, exponent);
+					      for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+						p++;
+					    }
+					}
+#   endif
+				      }
+
+				    free (digits);
+				  }
+			      }
+			    else
+			      abort ();
+#  else
+			    /* arg is finite.  */
+			    if (!(arg == 0.0))
+			      abort ();
+
+			    pad_ptr = p;
+
+			    if (dp->conversion == 'f' || dp->conversion == 'F')
+			      {
+				*p++ = '0';
+				if ((flags & FLAG_ALT) || precision > 0)
+				  {
+				    *p++ = decimal_point_char ();
+				    for (; precision > 0; precision--)
+				      *p++ = '0';
+				  }
+			      }
+			    else if (dp->conversion == 'e' || dp->conversion == 'E')
+			      {
+				*p++ = '0';
+				if ((flags & FLAG_ALT) || precision > 0)
+				  {
+				    *p++ = decimal_point_char ();
+				    for (; precision > 0; precision--)
+				      *p++ = '0';
+				  }
+				*p++ = dp->conversion; /* 'e' or 'E' */
+				*p++ = '+';
+				/* Produce the same number of exponent digits as
+				   the native printf implementation.  */
+#   if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+				*p++ = '0';
+#   endif
+				*p++ = '0';
+				*p++ = '0';
+			      }
+			    else if (dp->conversion == 'g' || dp->conversion == 'G')
+			      {
+				*p++ = '0';
+				if (flags & FLAG_ALT)
+				  {
+				    size_t ndigits =
+				      (precision > 0 ? precision - 1 : 0);
+				    *p++ = decimal_point_char ();
+				    for (; ndigits > 0; --ndigits)
+				      *p++ = '0';
+				  }
+			      }
+			    else
+			      abort ();
+#  endif
+			  }
+		      }
+		  }
+# endif
+
+		/* The generated string now extends from tmp to p, with the
+		   zero padding insertion point being at pad_ptr.  */
+		if (has_width && p - tmp < width)
+		  {
+		    size_t pad = width - (p - tmp);
+		    DCHAR_T *end = p + pad;
+
+		    if (flags & FLAG_LEFT)
+		      {
+			/* Pad with spaces on the right.  */
+			for (; pad > 0; pad--)
+			  *p++ = ' ';
+		      }
+		    else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+		      {
+			/* Pad with zeroes.  */
+			DCHAR_T *q = end;
+
+			while (p > pad_ptr)
+			  *--q = *--p;
+			for (; pad > 0; pad--)
+			  *p++ = '0';
+		      }
+		    else
+		      {
+			/* Pad with spaces on the left.  */
+			DCHAR_T *q = end;
+
+			while (p > tmp)
+			  *--q = *--p;
+			for (; pad > 0; pad--)
+			  *p++ = ' ';
+		      }
 
-	    if (!(dp->arg_index == ARG_NONE))
-	      abort ();
-	    augmented_length = xsum (length, 1);
-	    ENSURE_ALLOCATION (augmented_length);
-	    result[length] = '%';
-	    length = augmented_length;
-	  }
-	else
-	  {
-	    if (!(dp->arg_index != ARG_NONE))
-	      abort ();
+		    p = end;
+		  }
 
-	    if (dp->conversion == 'n')
-	      {
-		switch (a.arg[dp->arg_index].type)
-		  {
-		  case TYPE_COUNT_SCHAR_POINTER:
-		    *a.arg[dp->arg_index].a.a_count_schar_pointer = length;
-		    break;
-		  case TYPE_COUNT_SHORT_POINTER:
-		    *a.arg[dp->arg_index].a.a_count_short_pointer = length;
-		    break;
-		  case TYPE_COUNT_INT_POINTER:
-		    *a.arg[dp->arg_index].a.a_count_int_pointer = length;
-		    break;
-		  case TYPE_COUNT_LONGINT_POINTER:
-		    *a.arg[dp->arg_index].a.a_count_longint_pointer = length;
-		    break;
-#ifdef HAVE_LONG_LONG_INT
-		  case TYPE_COUNT_LONGLONGINT_POINTER:
-		    *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
-		    break;
-#endif
-		  default:
+		{
+		  size_t count = p - tmp;
+
+		  if (count >= tmp_length)
+		    /* tmp_length was incorrectly calculated - fix the
+		       code above!  */
 		    abort ();
-		  }
+
+		  /* Make room for the result.  */
+		  if (count >= allocated - length)
+		    {
+		      size_t n = xsum (length, count);
+
+		      ENSURE_ALLOCATION (n);
+		    }
+
+		  /* Append the result.  */
+		  memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+		  if (tmp != tmpbuf)
+		    free (tmp);
+		  length += count;
+		}
 	      }
+#endif
 	    else
 	      {
 		arg_type type = a.arg[dp->arg_index].type;
-		CHAR_T *p;
+		int flags = dp->flags;
+#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+		int has_width;
+		size_t width;
+#endif
+#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
+		int has_precision;
+		size_t precision;
+#endif
+#if NEED_PRINTF_UNBOUNDED_PRECISION
+		int prec_ourselves;
+#else
+#		define prec_ourselves 0
+#endif
+#if NEED_PRINTF_FLAG_LEFTADJUST
+#		define pad_ourselves 1
+#elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+		int pad_ourselves;
+#else
+#		define pad_ourselves 0
+#endif
+		TCHAR_T *fbp;
 		unsigned int prefix_count;
 		int prefixes[2];
 #if !USE_SNPRINTF
 		size_t tmp_length;
-		CHAR_T tmpbuf[700];
-		CHAR_T *tmp;
-
-		/* Allocate a temporary buffer of sufficient size for calling
-		   sprintf.  */
-		{
-		  size_t width;
-		  size_t precision;
+		TCHAR_T tmpbuf[700];
+		TCHAR_T *tmp;
+#endif
 
-		  width = 0;
-		  if (dp->width_start != dp->width_end)
-		    {
-		      if (dp->width_arg_index != ARG_NONE)
-			{
-			  int arg;
+#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+		has_width = 0;
+		width = 0;
+		if (dp->width_start != dp->width_end)
+		  {
+		    if (dp->width_arg_index != ARG_NONE)
+		      {
+			int arg;
 
-			  if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-			    abort ();
-			  arg = a.arg[dp->width_arg_index].a.a_int;
-			  width = (arg < 0 ? (unsigned int) (-arg) : arg);
-			}
-		      else
-			{
-			  const CHAR_T *digitp = dp->width_start;
+			if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+			  abort ();
+			arg = a.arg[dp->width_arg_index].a.a_int;
+			if (arg < 0)
+			  {
+			    /* "A negative field width is taken as a '-' flag
+			        followed by a positive field width."  */
+			    flags |= FLAG_LEFT;
+			    width = (unsigned int) (-arg);
+			  }
+			else
+			  width = arg;
+		      }
+		    else
+		      {
+			const FCHAR_T *digitp = dp->width_start;
 
-			  do
-			    width = xsum (xtimes (width, 10), *digitp++ - '0');
-			  while (digitp != dp->width_end);
-			}
-		    }
+			do
+			  width = xsum (xtimes (width, 10), *digitp++ - '0');
+			while (digitp != dp->width_end);
+		      }
+		    has_width = 1;
+		  }
+#endif
 
-		  precision = 6;
-		  if (dp->precision_start != dp->precision_end)
-		    {
-		      if (dp->precision_arg_index != ARG_NONE)
-			{
-			  int arg;
+#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
+		has_precision = 0;
+		precision = 6;
+		if (dp->precision_start != dp->precision_end)
+		  {
+		    if (dp->precision_arg_index != ARG_NONE)
+		      {
+			int arg;
 
-			  if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-			    abort ();
-			  arg = a.arg[dp->precision_arg_index].a.a_int;
-			  precision = (arg < 0 ? 0 : arg);
-			}
-		      else
-			{
-			  const CHAR_T *digitp = dp->precision_start + 1;
+			if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+			  abort ();
+			arg = a.arg[dp->precision_arg_index].a.a_int;
+			/* "A negative precision is taken as if the precision
+			    were omitted."  */
+			if (arg >= 0)
+			  {
+			    precision = arg;
+			    has_precision = 1;
+			  }
+		      }
+		    else
+		      {
+			const FCHAR_T *digitp = dp->precision_start + 1;
 
-			  precision = 0;
-			  while (digitp != dp->precision_end)
-			    precision = xsum (xtimes (precision, 10), *digitp++ - '0');
-			}
-		    }
+			precision = 0;
+			while (digitp != dp->precision_end)
+			  precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+			has_precision = 1;
+		      }
+		  }
+#endif
 
+#if !USE_SNPRINTF
+		/* Allocate a temporary buffer of sufficient size for calling
+		   sprintf.  */
+		{
 		  switch (dp->conversion)
 		    {
 
 		    case 'd': case 'i': case 'u':
-# ifdef HAVE_LONG_LONG_INT
+# if HAVE_LONG_LONG_INT
 		      if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
 			tmp_length =
 			  (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
@@ -352,7 +3699,7 @@
 		      break;
 
 		    case 'o':
-# ifdef HAVE_LONG_LONG_INT
+# if HAVE_LONG_LONG_INT
 		      if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
 			tmp_length =
 			  (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
@@ -380,7 +3727,7 @@
 		      break;
 
 		    case 'x': case 'X':
-# ifdef HAVE_LONG_LONG_INT
+# if HAVE_LONG_LONG_INT
 		      if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
 			tmp_length =
 			  (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
@@ -408,7 +3755,6 @@
 		      break;
 
 		    case 'f': case 'F':
-# ifdef HAVE_LONG_DOUBLE
 		      if (type == TYPE_LONGDOUBLE)
 			tmp_length =
 			  (unsigned int) (LDBL_MAX_EXP
@@ -418,7 +3764,6 @@
 			  + 1 /* turn floor into ceil */
 			  + 10; /* sign, decimal point etc. */
 		      else
-# endif
 			tmp_length =
 			  (unsigned int) (DBL_MAX_EXP
 					  * 0.30103 /* binary -> decimal */
@@ -430,14 +3775,32 @@
 		      break;
 
 		    case 'e': case 'E': case 'g': case 'G':
-		    case 'a': case 'A':
 		      tmp_length =
 			12; /* sign, decimal point, exponent etc. */
 		      tmp_length = xsum (tmp_length, precision);
 		      break;
 
+		    case 'a': case 'A':
+		      if (type == TYPE_LONGDOUBLE)
+			tmp_length =
+			  (unsigned int) (LDBL_DIG
+					  * 0.831 /* decimal -> hexadecimal */
+					 )
+			  + 1; /* turn floor into ceil */
+		      else
+			tmp_length =
+			  (unsigned int) (DBL_DIG
+					  * 0.831 /* decimal -> hexadecimal */
+					 )
+			  + 1; /* turn floor into ceil */
+		      if (tmp_length < precision)
+			tmp_length = precision;
+		      /* Account for sign, decimal point etc. */
+		      tmp_length = xsum (tmp_length, 12);
+		      break;
+
 		    case 'c':
-# if defined HAVE_WINT_T && !WIDE_CHAR_VERSION
+# if HAVE_WINT_T && !WIDE_CHAR_VERSION
 		      if (type == TYPE_WIDE_CHAR)
 			tmp_length = MB_CUR_MAX;
 		      else
@@ -446,7 +3809,7 @@
 		      break;
 
 		    case 's':
-# ifdef HAVE_WCHAR_T
+# if HAVE_WCHAR_T
 		      if (type == TYPE_WIDE_STRING)
 			{
 			  tmp_length =
@@ -474,95 +3837,216 @@
 		      abort ();
 		    }
 
+# if ENABLE_UNISTDIO
+		  /* Padding considers the number of characters, therefore the
+		     number of elements after padding may be
+		       > max (tmp_length, width)
+		     but is certainly
+		       <= tmp_length + width.  */
+		  tmp_length = xsum (tmp_length, width);
+# else
+		  /* Padding considers the number of elements, says POSIX.  */
 		  if (tmp_length < width)
 		    tmp_length = width;
+# endif
 
 		  tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
 		}
 
-		if (tmp_length <= sizeof (tmpbuf) / sizeof (CHAR_T))
+		if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T))
 		  tmp = tmpbuf;
 		else
 		  {
-		    size_t tmp_memsize = xtimes (tmp_length, sizeof (CHAR_T));
+		    size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T));
 
 		    if (size_overflow_p (tmp_memsize))
 		      /* Overflow, would lead to out of memory.  */
 		      goto out_of_memory;
-		    tmp = (CHAR_T *) malloc (tmp_memsize);
+		    tmp = (TCHAR_T *) malloc (tmp_memsize);
 		    if (tmp == NULL)
 		      /* Out of memory.  */
 		      goto out_of_memory;
 		  }
 #endif
 
+		/* Decide whether to handle the precision ourselves.  */
+#if NEED_PRINTF_UNBOUNDED_PRECISION
+		switch (dp->conversion)
+		  {
+		  case 'd': case 'i': case 'u':
+		  case 'o':
+		  case 'x': case 'X': case 'p':
+		    prec_ourselves = has_precision && (precision > 0);
+		    break;
+		  default:
+		    prec_ourselves = 0;
+		    break;
+		  }
+#endif
+
+		/* Decide whether to perform the padding ourselves.  */
+#if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION)
+		switch (dp->conversion)
+		  {
+# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO
+		  /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need
+		     to perform the padding after this conversion.  Functions
+		     with unistdio extensions perform the padding based on
+		     character count rather than element count.  */
+		  case 'c': case 's':
+# endif
+# if NEED_PRINTF_FLAG_ZERO
+		  case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
+		  case 'a': case 'A':
+# endif
+		    pad_ourselves = 1;
+		    break;
+		  default:
+		    pad_ourselves = prec_ourselves;
+		    break;
+		  }
+#endif
+
 		/* Construct the format string for calling snprintf or
 		   sprintf.  */
-		p = buf;
-		*p++ = '%';
-		if (dp->flags & FLAG_GROUP)
-		  *p++ = '\'';
-		if (dp->flags & FLAG_LEFT)
-		  *p++ = '-';
-		if (dp->flags & FLAG_SHOWSIGN)
-		  *p++ = '+';
-		if (dp->flags & FLAG_SPACE)
-		  *p++ = ' ';
-		if (dp->flags & FLAG_ALT)
-		  *p++ = '#';
-		if (dp->flags & FLAG_ZERO)
-		  *p++ = '0';
-		if (dp->width_start != dp->width_end)
+		fbp = buf;
+		*fbp++ = '%';
+#if NEED_PRINTF_FLAG_GROUPING
+		/* The underlying implementation doesn't support the ' flag.
+		   Produce no grouping characters in this case; this is
+		   acceptable because the grouping is locale dependent.  */
+#else
+		if (flags & FLAG_GROUP)
+		  *fbp++ = '\'';
+#endif
+		if (flags & FLAG_LEFT)
+		  *fbp++ = '-';
+		if (flags & FLAG_SHOWSIGN)
+		  *fbp++ = '+';
+		if (flags & FLAG_SPACE)
+		  *fbp++ = ' ';
+		if (flags & FLAG_ALT)
+		  *fbp++ = '#';
+		if (!pad_ourselves)
 		  {
-		    size_t n = dp->width_end - dp->width_start;
-		    memcpy (p, dp->width_start, n * sizeof (CHAR_T));
-		    p += n;
+		    if (flags & FLAG_ZERO)
+		      *fbp++ = '0';
+		    if (dp->width_start != dp->width_end)
+		      {
+			size_t n = dp->width_end - dp->width_start;
+			/* The width specification is known to consist only
+			   of standard ASCII characters.  */
+			if (sizeof (FCHAR_T) == sizeof (TCHAR_T))
+			  {
+			    memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T));
+			    fbp += n;
+			  }
+			else
+			  {
+			    const FCHAR_T *mp = dp->width_start;
+			    do
+			      *fbp++ = (unsigned char) *mp++;
+			    while (--n > 0);
+			  }
+		      }
 		  }
-		if (dp->precision_start != dp->precision_end)
+		if (!prec_ourselves)
 		  {
-		    size_t n = dp->precision_end - dp->precision_start;
-		    memcpy (p, dp->precision_start, n * sizeof (CHAR_T));
-		    p += n;
+		    if (dp->precision_start != dp->precision_end)
+		      {
+			size_t n = dp->precision_end - dp->precision_start;
+			/* The precision specification is known to consist only
+			   of standard ASCII characters.  */
+			if (sizeof (FCHAR_T) == sizeof (TCHAR_T))
+			  {
+			    memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T));
+			    fbp += n;
+			  }
+			else
+			  {
+			    const FCHAR_T *mp = dp->precision_start;
+			    do
+			      *fbp++ = (unsigned char) *mp++;
+			    while (--n > 0);
+			  }
+		      }
 		  }
 
 		switch (type)
 		  {
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
 		  case TYPE_LONGLONGINT:
 		  case TYPE_ULONGLONGINT:
-		    *p++ = 'l';
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+		    *fbp++ = 'I';
+		    *fbp++ = '6';
+		    *fbp++ = '4';
+		    break;
+# else
+		    *fbp++ = 'l';
 		    /*FALLTHROUGH*/
+# endif
 #endif
 		  case TYPE_LONGINT:
 		  case TYPE_ULONGINT:
-#ifdef HAVE_WINT_T
+#if HAVE_WINT_T
 		  case TYPE_WIDE_CHAR:
 #endif
-#ifdef HAVE_WCHAR_T
+#if HAVE_WCHAR_T
 		  case TYPE_WIDE_STRING:
 #endif
-		    *p++ = 'l';
+		    *fbp++ = 'l';
 		    break;
-#ifdef HAVE_LONG_DOUBLE
 		  case TYPE_LONGDOUBLE:
-		    *p++ = 'L';
+		    *fbp++ = 'L';
 		    break;
-#endif
 		  default:
 		    break;
 		  }
-		*p = dp->conversion;
+#if NEED_PRINTF_DIRECTIVE_F
+		if (dp->conversion == 'F')
+		  *fbp = 'f';
+		else
+#endif
+		  *fbp = dp->conversion;
 #if USE_SNPRINTF
-		p[1] = '%';
-		p[2] = 'n';
-		p[3] = '\0';
+# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+		fbp[1] = '%';
+		fbp[2] = 'n';
+		fbp[3] = '\0';
+# else
+		/* On glibc2 systems from glibc >= 2.3 - probably also older
+		   ones - we know that snprintf's returns value conforms to
+		   ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes.
+		   Therefore we can avoid using %n in this situation.
+		   On glibc2 systems from 2004-10-18 or newer, the use of %n
+		   in format strings in writable memory may crash the program
+		   (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
+		   in this situation.  */
+		/* On native Win32 systems (such as mingw), we can avoid using
+		   %n because:
+		     - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
+		       snprintf does not write more than the specified number
+		       of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes
+		       '4', '5', '6' into buf, not '4', '5', '\0'.)
+		     - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf
+		       allows us to recognize the case of an insufficient
+		       buffer size: it returns -1 in this case.
+		   On native Win32 systems (such as mingw) where the OS is
+		   Windows Vista, the use of %n in format strings by default
+		   crashes the program. See
+		     <http://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
+		     <http://msdn2.microsoft.com/en-us/library/ms175782(VS.80).aspx>
+		   So we should avoid %n in this situation.  */
+		fbp[1] = '\0';
+# endif
 #else
-		p[1] = '\0';
+		fbp[1] = '\0';
 #endif
 
 		/* Construct the arguments for calling snprintf or sprintf.  */
 		prefix_count = 0;
-		if (dp->width_arg_index != ARG_NONE)
+		if (!pad_ourselves && dp->width_arg_index != ARG_NONE)
 		  {
 		    if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
 		      abort ();
@@ -576,36 +4060,50 @@
 		  }
 
 #if USE_SNPRINTF
+		/* The SNPRINTF result is appended after result[0..length].
+		   The latter is an array of DCHAR_T; SNPRINTF appends an
+		   array of TCHAR_T to it.  This is possible because
+		   sizeof (TCHAR_T) divides sizeof (DCHAR_T) and
+		   alignof (TCHAR_T) <= alignof (DCHAR_T).  */
+# define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T))
+		/* Ensure that maxlen below will be >= 2.  Needed on BeOS,
+		   where an snprintf() with maxlen==1 acts like sprintf().  */
+		ENSURE_ALLOCATION (xsum (length,
+					 (2 + TCHARS_PER_DCHAR - 1)
+					 / TCHARS_PER_DCHAR));
 		/* Prepare checking whether snprintf returns the count
 		   via %n.  */
-		ENSURE_ALLOCATION (xsum (length, 1));
-		result[length] = '\0';
+		*(TCHAR_T *) (result + length) = '\0';
 #endif
 
 		for (;;)
 		  {
-		    size_t maxlen;
-		    int count;
-		    int retcount;
-
-		    maxlen = allocated - length;
-		    count = -1;
-		    retcount = 0;
+		    int count = -1;
 
 #if USE_SNPRINTF
+		    int retcount = 0;
+		    size_t maxlen = allocated - length;
+		    /* SNPRINTF can fail if its second argument is
+		       > INT_MAX.  */
+		    if (maxlen > INT_MAX / TCHARS_PER_DCHAR)
+		      maxlen = INT_MAX / TCHARS_PER_DCHAR;
+		    maxlen = maxlen * TCHARS_PER_DCHAR;
 # define SNPRINTF_BUF(arg) \
 		    switch (prefix_count)				    \
 		      {							    \
 		      case 0:						    \
-			retcount = SNPRINTF (result + length, maxlen, buf,  \
+			retcount = SNPRINTF ((TCHAR_T *) (result + length), \
+					     maxlen, buf,		    \
 					     arg, &count);		    \
 			break;						    \
 		      case 1:						    \
-			retcount = SNPRINTF (result + length, maxlen, buf,  \
+			retcount = SNPRINTF ((TCHAR_T *) (result + length), \
+					     maxlen, buf,		    \
 					     prefixes[0], arg, &count);	    \
 			break;						    \
 		      case 2:						    \
-			retcount = SNPRINTF (result + length, maxlen, buf,  \
+			retcount = SNPRINTF ((TCHAR_T *) (result + length), \
+					     maxlen, buf,		    \
 					     prefixes[0], prefixes[1], arg, \
 					     &count);			    \
 			break;						    \
@@ -681,7 +4179,7 @@
 			  SNPRINTF_BUF (arg);
 			}
 			break;
-#ifdef HAVE_LONG_LONG_INT
+#if HAVE_LONG_LONG_INT
 		      case TYPE_LONGLONGINT:
 			{
 			  long long int arg = a.arg[dp->arg_index].a.a_longlongint;
@@ -701,21 +4199,19 @@
 			  SNPRINTF_BUF (arg);
 			}
 			break;
-#ifdef HAVE_LONG_DOUBLE
 		      case TYPE_LONGDOUBLE:
 			{
 			  long double arg = a.arg[dp->arg_index].a.a_longdouble;
 			  SNPRINTF_BUF (arg);
 			}
 			break;
-#endif
 		      case TYPE_CHAR:
 			{
 			  int arg = a.arg[dp->arg_index].a.a_char;
 			  SNPRINTF_BUF (arg);
 			}
 			break;
-#ifdef HAVE_WINT_T
+#if HAVE_WINT_T
 		      case TYPE_WIDE_CHAR:
 			{
 			  wint_t arg = a.arg[dp->arg_index].a.a_wide_char;
@@ -729,7 +4225,7 @@
 			  SNPRINTF_BUF (arg);
 			}
 			break;
-#ifdef HAVE_WCHAR_T
+#if HAVE_WCHAR_T
 		      case TYPE_WIDE_STRING:
 			{
 			  const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string;
@@ -756,7 +4252,8 @@
 		      {
 			/* Verify that snprintf() has NUL-terminated its
 			   result.  */
-			if (count < maxlen && result[length + count] != '\0')
+			if (count < maxlen
+			    && ((TCHAR_T *) (result + length)) [count] != '\0')
 			  abort ();
 			/* Portability hack.  */
 			if (retcount > count)
@@ -766,11 +4263,11 @@
 		      {
 			/* snprintf() doesn't understand the '%n'
 			   directive.  */
-			if (p[1] != '\0')
+			if (fbp[1] != '\0')
 			  {
 			    /* Don't use the '%n' directive; instead, look
 			       at the snprintf() return value.  */
-			    p[1] = '\0';
+			    fbp[1] = '\0';
 			    continue;
 			  }
 			else
@@ -806,37 +4303,339 @@
 			return NULL;
 		      }
 
-#if !USE_SNPRINTF
+#if USE_SNPRINTF
+		    /* Handle overflow of the allocated buffer.
+		       If such an overflow occurs, a C99 compliant snprintf()
+		       returns a count >= maxlen.  However, a non-compliant
+		       snprintf() function returns only count = maxlen - 1.  To
+		       cover both cases, test whether count >= maxlen - 1.  */
+		    if ((unsigned int) count + 1 >= maxlen)
+		      {
+			/* If maxlen already has attained its allowed maximum,
+			   allocating more memory will not increase maxlen.
+			   Instead of looping, bail out.  */
+			if (maxlen == INT_MAX / TCHARS_PER_DCHAR)
+			  goto overflow;
+			else
+			  {
+			    /* Need at least (count + 1) * sizeof (TCHAR_T)
+			       bytes.  (The +1 is for the trailing NUL.)
+			       But ask for (count + 2) * sizeof (TCHAR_T)
+			       bytes, so that in the next round, we likely get
+			         maxlen > (unsigned int) count + 1
+			       and so we don't get here again.
+			       And allocate proportionally, to avoid looping
+			       eternally if snprintf() reports a too small
+			       count.  */
+			    size_t n =
+			      xmax (xsum (length,
+					  ((unsigned int) count + 2
+					   + TCHARS_PER_DCHAR - 1)
+					  / TCHARS_PER_DCHAR),
+				    xtimes (allocated, 2));
+
+			    ENSURE_ALLOCATION (n);
+			    continue;
+			  }
+		      }
+#endif
+
+#if NEED_PRINTF_UNBOUNDED_PRECISION
+		    if (prec_ourselves)
+		      {
+			/* Handle the precision.  */
+			TCHAR_T *prec_ptr =
+# if USE_SNPRINTF
+			  (TCHAR_T *) (result + length);
+# else
+			  tmp;
+# endif
+			size_t prefix_count;
+			size_t move;
+
+			prefix_count = 0;
+			/* Put the additional zeroes after the sign.  */
+			if (count >= 1
+			    && (*prec_ptr == '-' || *prec_ptr == '+'
+				|| *prec_ptr == ' '))
+			  prefix_count = 1;
+			/* Put the additional zeroes after the 0x prefix if
+			   (flags & FLAG_ALT) || (dp->conversion == 'p').  */
+			else if (count >= 2
+				 && prec_ptr[0] == '0'
+				 && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X'))
+			  prefix_count = 2;
+
+			move = count - prefix_count;
+			if (precision > move)
+			  {
+			    /* Insert zeroes.  */
+			    size_t insert = precision - move;
+			    TCHAR_T *prec_end;
+
+# if USE_SNPRINTF
+			    size_t n =
+			      xsum (length,
+				    (count + insert + TCHARS_PER_DCHAR - 1)
+				    / TCHARS_PER_DCHAR);
+			    length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR;
+			    ENSURE_ALLOCATION (n);
+			    length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR;
+			    prec_ptr = (TCHAR_T *) (result + length);
+# endif
+
+			    prec_end = prec_ptr + count;
+			    prec_ptr += prefix_count;
+
+			    while (prec_end > prec_ptr)
+			      {
+				prec_end--;
+				prec_end[insert] = prec_end[0];
+			      }
+
+			    prec_end += insert;
+			    do
+			      *--prec_end = '0';
+			    while (prec_end > prec_ptr);
+
+			    count += insert;
+			  }
+		      }
+#endif
+
+#if !DCHAR_IS_TCHAR
+# if !USE_SNPRINTF
 		    if (count >= tmp_length)
 		      /* tmp_length was incorrectly calculated - fix the
 			 code above!  */
 		      abort ();
+# endif
+
+		    /* Convert from TCHAR_T[] to DCHAR_T[].  */
+		    if (dp->conversion == 'c' || dp->conversion == 's')
+		      {
+			/* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING
+			   TYPE_WIDE_STRING.
+			   The result string is not certainly ASCII.  */
+			const TCHAR_T *tmpsrc;
+			DCHAR_T *tmpdst;
+			size_t tmpdst_len;
+			/* This code assumes that TCHAR_T is 'char'.  */
+			typedef int TCHAR_T_verify
+				    [2 * (sizeof (TCHAR_T) == 1) - 1];
+# if USE_SNPRINTF
+			tmpsrc = (TCHAR_T *) (result + length);
+# else
+			tmpsrc = tmp;
+# endif
+			tmpdst = NULL;
+			tmpdst_len = 0;
+			if (DCHAR_CONV_FROM_ENCODING (locale_charset (),
+						      iconveh_question_mark,
+						      tmpsrc, count,
+						      NULL,
+						      &tmpdst, &tmpdst_len)
+			    < 0)
+			  {
+			    int saved_errno = errno;
+			    if (!(result == resultbuf || result == NULL))
+			      free (result);
+			    if (buf_malloced != NULL)
+			      free (buf_malloced);
+			    CLEANUP ();
+			    errno = saved_errno;
+			    return NULL;
+			  }
+			ENSURE_ALLOCATION (xsum (length, tmpdst_len));
+			DCHAR_CPY (result + length, tmpdst, tmpdst_len);
+			free (tmpdst);
+			count = tmpdst_len;
+		      }
+		    else
+		      {
+			/* The result string is ASCII.
+			   Simple 1:1 conversion.  */
+# if USE_SNPRINTF
+			/* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a
+			   no-op conversion, in-place on the array starting
+			   at (result + length).  */
+			if (sizeof (DCHAR_T) != sizeof (TCHAR_T))
+# endif
+			  {
+			    const TCHAR_T *tmpsrc;
+			    DCHAR_T *tmpdst;
+			    size_t n;
+
+# if USE_SNPRINTF
+			    if (result == resultbuf)
+			      {
+				tmpsrc = (TCHAR_T *) (result + length);
+				/* ENSURE_ALLOCATION will not move tmpsrc
+				   (because it's part of resultbuf).  */
+				ENSURE_ALLOCATION (xsum (length, count));
+			      }
+			    else
+			      {
+				/* ENSURE_ALLOCATION will move the array
+				   (because it uses realloc().  */
+				ENSURE_ALLOCATION (xsum (length, count));
+				tmpsrc = (TCHAR_T *) (result + length);
+			      }
+# else
+			    tmpsrc = tmp;
+			    ENSURE_ALLOCATION (xsum (length, count));
+# endif
+			    tmpdst = result + length;
+			    /* Copy backwards, because of overlapping.  */
+			    tmpsrc += count;
+			    tmpdst += count;
+			    for (n = count; n > 0; n--)
+			      *--tmpdst = (unsigned char) *--tmpsrc;
+			  }
+		      }
 #endif
 
+#if DCHAR_IS_TCHAR && !USE_SNPRINTF
 		    /* Make room for the result.  */
-		    if (count >= maxlen)
+		    if (count > allocated - length)
 		      {
-			/* Need at least count bytes.  But allocate
-			   proportionally, to avoid looping eternally if
-			   snprintf() reports a too small count.  */
+			/* Need at least count elements.  But allocate
+			   proportionally.  */
 			size_t n =
 			  xmax (xsum (length, count), xtimes (allocated, 2));
 
 			ENSURE_ALLOCATION (n);
-#if USE_SNPRINTF
-			continue;
+		      }
 #endif
+
+		    /* Here count <= allocated - length.  */
+
+		    /* Perform padding.  */
+#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+		    if (pad_ourselves && has_width)
+		      {
+			size_t w;
+# if ENABLE_UNISTDIO
+			/* Outside POSIX, it's preferrable to compare the width
+			   against the number of _characters_ of the converted
+			   value.  */
+			w = DCHAR_MBSNLEN (result + length, count);
+# else
+			/* The width is compared against the number of _bytes_
+			   of the converted value, says POSIX.  */
+			w = count;
+# endif
+			if (w < width)
+			  {
+			    size_t pad = width - w;
+# if USE_SNPRINTF
+			    /* Make room for the result.  */
+			    if (xsum (count, pad) > allocated - length)
+			      {
+				/* Need at least count + pad elements.  But
+				   allocate proportionally.  */
+				size_t n =
+				  xmax (xsum3 (length, count, pad),
+					xtimes (allocated, 2));
+
+				length += count;
+				ENSURE_ALLOCATION (n);
+				length -= count;
+			      }
+			    /* Here count + pad <= allocated - length.  */
+# endif
+			    {
+# if !DCHAR_IS_TCHAR || USE_SNPRINTF
+			      DCHAR_T * const rp = result + length;
+# else
+			      DCHAR_T * const rp = tmp;
+# endif
+			      DCHAR_T *p = rp + count;
+			      DCHAR_T *end = p + pad;
+			      DCHAR_T *pad_ptr;
+# if !DCHAR_IS_TCHAR
+			      if (dp->conversion == 'c'
+				  || dp->conversion == 's')
+				/* No zero-padding for string directives.  */
+				pad_ptr = NULL;
+			      else
+# endif
+				{
+				  pad_ptr = (*rp == '-' ? rp + 1 : rp);
+				  /* No zero-padding of "inf" and "nan".  */
+				  if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z')
+				      || (*pad_ptr >= 'a' && *pad_ptr <= 'z'))
+				    pad_ptr = NULL;
+				}
+			      /* The generated string now extends from rp to p,
+				 with the zero padding insertion point being at
+				 pad_ptr.  */
+
+			      count = count + pad; /* = end - rp */
+
+			      if (flags & FLAG_LEFT)
+				{
+				  /* Pad with spaces on the right.  */
+				  for (; pad > 0; pad--)
+				    *p++ = ' ';
+				}
+			      else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+				{
+				  /* Pad with zeroes.  */
+				  DCHAR_T *q = end;
+
+				  while (p > pad_ptr)
+				    *--q = *--p;
+				  for (; pad > 0; pad--)
+				    *p++ = '0';
+				}
+			      else
+				{
+				  /* Pad with spaces on the left.  */
+				  DCHAR_T *q = end;
+
+				  while (p > rp)
+				    *--q = *--p;
+				  for (; pad > 0; pad--)
+				    *p++ = ' ';
+				}
+			    }
+			  }
 		      }
+#endif
 
-#if USE_SNPRINTF
+#if DCHAR_IS_TCHAR && !USE_SNPRINTF
+		    if (count >= tmp_length)
+		      /* tmp_length was incorrectly calculated - fix the
+			 code above!  */
+		      abort ();
+#endif
+
+		    /* Here still count <= allocated - length.  */
+
+#if !DCHAR_IS_TCHAR || USE_SNPRINTF
 		    /* The snprintf() result did fit.  */
 #else
 		    /* Append the sprintf() result.  */
-		    memcpy (result + length, tmp, count * sizeof (CHAR_T));
+		    memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+#endif
+#if !USE_SNPRINTF
 		    if (tmp != tmpbuf)
 		      free (tmp);
 #endif
 
+#if NEED_PRINTF_DIRECTIVE_F
+		    if (dp->conversion == 'F')
+		      {
+			/* Convert the %f result to upper case for %F.  */
+			DCHAR_T *rp = result + length;
+			size_t rc;
+			for (rc = count; rc > 0; rc--, rp++)
+			  if (*rp >= 'a' && *rp <= 'z')
+			    *rp = *rp - 'a' + 'A';
+		      }
+#endif
+
 		    length += count;
 		    break;
 		  }
@@ -851,9 +4650,9 @@
     if (result != resultbuf && length + 1 < allocated)
       {
 	/* Shrink the allocated memory if possible.  */
-	CHAR_T *memory;
+	DCHAR_T *memory;
 
-	memory = (CHAR_T *) realloc (result, (length + 1) * sizeof (CHAR_T));
+	memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T));
 	if (memory != NULL)
 	  result = memory;
       }
@@ -868,6 +4667,17 @@
        not have this limitation.  */
     return result;
 
+#if USE_SNPRINTF
+  overflow:
+    if (!(result == resultbuf || result == NULL))
+      free (result);
+    if (buf_malloced != NULL)
+      free (buf_malloced);
+    CLEANUP ();
+    errno = EOVERFLOW;
+    return NULL;
+#endif
+
   out_of_memory:
     if (!(result == resultbuf || result == NULL))
       free (result);
@@ -880,10 +4690,15 @@
   }
 }
 
+#undef TCHARS_PER_DCHAR
 #undef SNPRINTF
 #undef USE_SNPRINTF
+#undef DCHAR_CPY
 #undef PRINTF_PARSE
 #undef DIRECTIVES
 #undef DIRECTIVE
-#undef CHAR_T
+#undef DCHAR_IS_TCHAR
+#undef TCHAR_T
+#undef DCHAR_T
+#undef FCHAR_T
 #undef VASNPRINTF
diff -uNr nagios-plugins-1.4.11/gl/vasnprintf.h nagios-plugins-1.4.12/gl/vasnprintf.h
--- nagios-plugins-1.4.11/gl/vasnprintf.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/vasnprintf.h	2008-02-12 12:07:18.000000000 +0100
@@ -1,9 +1,9 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 2002-2004 Free Software Foundation, Inc.
+   Copyright (C) 2002-2004, 2007-2008 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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -26,7 +26,7 @@
 
 #ifndef __attribute__
 /* This feature is available in gcc versions 2.5 and later.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
 #  define __attribute__(Spec) /* empty */
 # endif
 /* The __-protected variants of `format' and `printf' attributes
@@ -37,7 +37,7 @@
 # endif
 #endif
 
-#ifdef	__cplusplus
+#ifdef __cplusplus
 extern "C" {
 #endif
 
@@ -65,12 +65,16 @@
                 free (output);
             }
   */
+#if REPLACE_VASNPRINTF
+# define asnprintf rpl_asnprintf
+# define vasnprintf rpl_vasnprintf
+#endif
 extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
        __attribute__ ((__format__ (__printf__, 3, 4)));
 extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
        __attribute__ ((__format__ (__printf__, 3, 0)));
 
-#ifdef	__cplusplus
+#ifdef __cplusplus
 }
 #endif
 
diff -uNr nagios-plugins-1.4.11/gl/vasprintf.c nagios-plugins-1.4.12/gl/vasprintf.c
--- nagios-plugins-1.4.11/gl/vasprintf.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/vasprintf.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,9 +1,9 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006-2007 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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -18,7 +18,11 @@
 #include <config.h>
 
 /* Specification.  */
-#include "vasprintf.h"
+#ifdef IN_LIBASPRINTF
+# include "vasprintf.h"
+#else
+# include <stdio.h>
+#endif
 
 #include <errno.h>
 #include <limits.h>
diff -uNr nagios-plugins-1.4.11/gl/vasprintf.h nagios-plugins-1.4.12/gl/vasprintf.h
--- nagios-plugins-1.4.11/gl/vasprintf.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/vasprintf.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,63 +0,0 @@
-/* vsprintf with automatic memory allocation.
-   Copyright (C) 2002-2003 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _VASPRINTF_H
-#define _VASPRINTF_H
-
-#if HAVE_VASPRINTF
-
-/* Get asprintf(), vasprintf() declarations.  */
-#include <stdio.h>
-
-#else
-
-/* Get va_list.  */
-#include <stdarg.h>
-
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
-#  define __attribute__(Spec) /* empty */
-# endif
-/* The __-protected variants of `format' and `printf' attributes
-   are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-#  define __format__ format
-#  define __printf__ printf
-# endif
-#endif
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-/* Write formatted output to a string dynamically allocated with malloc().
-   If the memory allocation succeeds, store the address of the string in
-   *RESULT and return the number of resulting bytes, excluding the trailing
-   NUL.  Upon memory allocation error, or some other error, return -1.  */
-extern int asprintf (char **result, const char *format, ...)
-       __attribute__ ((__format__ (__printf__, 2, 3)));
-extern int vasprintf (char **result, const char *format, va_list args)
-       __attribute__ ((__format__ (__printf__, 2, 0)));
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif
-
-#endif /* _VASPRINTF_H */
diff -uNr nagios-plugins-1.4.11/gl/vsnprintf.c nagios-plugins-1.4.12/gl/vsnprintf.c
--- nagios-plugins-1.4.11/gl/vsnprintf.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/vsnprintf.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,10 +1,10 @@
 /* Formatted output to strings.
-   Copyright (C) 2004, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2007 Free Software Foundation, Inc.
    Written by Simon Josefsson and Yoann Vandoorselaere <yoann@prelude-ids.org>.
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -21,12 +21,11 @@
 #endif
 
 /* Specification.  */
-#include "vsnprintf.h"
+#include <stdio.h>
 
 #include <errno.h>
 #include <limits.h>
 #include <stdarg.h>
-#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -41,7 +40,7 @@
    additional length SIZE limit how much is written into STR.  Returns
    string length of formatted string (which may be larger than SIZE).
    STR may be NULL, in which case nothing will be written.  On error,
-   return a negative value. */
+   return a negative value.  */
 int
 vsnprintf (char *str, size_t size, const char *format, va_list args)
 {
diff -uNr nagios-plugins-1.4.11/gl/vsnprintf.h nagios-plugins-1.4.12/gl/vsnprintf.h
--- nagios-plugins-1.4.11/gl/vsnprintf.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/vsnprintf.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,31 +0,0 @@
-/* Formatted output to strings.
-   Copyright (C) 2004 Free Software Foundation, Inc.
-   Written by Simon Josefsson and Yoann Vandoorselaere <yoann@prelude-ids.org>.
-
-   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef VSNPRINTF_H
-#define VSNPRINTF_H
-
-#include <stdarg.h>
-
-/* Get vsnprintf declaration, if available.  */
-#include <stdio.h>
-
-#if defined HAVE_DECL_VSNPRINTF && !HAVE_DECL_VSNPRINTF
-int vsnprintf (char *str, size_t size, const char *format, va_list args);
-#endif
-
-#endif /* VSNPRINTF_H */
diff -uNr nagios-plugins-1.4.11/gl/wchar_.h nagios-plugins-1.4.12/gl/wchar_.h
--- nagios-plugins-1.4.11/gl/wchar_.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/wchar_.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,42 +0,0 @@
-/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
-
-   Copyright (C) 2007 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Written by Eric Blake.  */
-
-/*
- * ISO C 99 <wchar.h> for platforms that have issues.
- * <http://www.opengroup.org/susv3xbd/wchar.h.html>
- *
- * For now, this just ensures proper prerequisite inclusion order.
- */
-
-#ifndef _GL_WCHAR_H
-#define _GL_WCHAR_H
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-
-/* Include the original <wchar.h>.  */
-#include @ABSOLUTE_WCHAR_H@
-
-#endif /* _GL_WCHAR_H */
diff -uNr nagios-plugins-1.4.11/gl/wchar.in.h nagios-plugins-1.4.12/gl/wchar.in.h
--- nagios-plugins-1.4.11/gl/wchar.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/wchar.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,82 @@
+/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
+
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Eric Blake.  */
+
+/*
+ * ISO C 99 <wchar.h> for platforms that have issues.
+ * <http://www.opengroup.org/susv3xbd/wchar.h.html>
+ *
+ * For now, this just ensures proper prerequisite inclusion order and
+ * the declaration of wcwidth().
+ */
+
+#ifndef _GL_WCHAR_H
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+
+/* Include the original <wchar.h> if it exists.
+   Some builds of uClibc lack it.  */
+/* The include_next requires a split double-inclusion guard.  */
+#if @HAVE_WCHAR_H@
+# @INCLUDE_NEXT@ @NEXT_WCHAR_H@
+#endif
+
+#ifndef _GL_WCHAR_H
+#define _GL_WCHAR_H
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Return the number of screen columns needed for WC.  */
+#if @GNULIB_WCWIDTH@
+# if @REPLACE_WCWIDTH@
+#  undef wcwidth
+#  define wcwidth rpl_wcwidth
+extern int wcwidth (wchar_t);
+# else
+#  if !defined wcwidth && !@HAVE_DECL_WCWIDTH@
+/* wcwidth exists but is not declared.  */
+extern int wcwidth (int /* actually wchar_t */);
+#  endif
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcwidth
+# define wcwidth(w) \
+    (GL_LINK_WARNING ("wcwidth is unportable - " \
+                      "use gnulib module wcwidth for portability"), \
+     wcwidth (w))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_WCHAR_H */
+#endif /* _GL_WCHAR_H */
diff -uNr nagios-plugins-1.4.11/gl/wctype_.h nagios-plugins-1.4.12/gl/wctype_.h
--- nagios-plugins-1.4.11/gl/wctype_.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/wctype_.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,154 +0,0 @@
-/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
-
-   Copyright (C) 2006, 2007 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Written by Bruno Haible and Paul Eggert.  */
-
-/*
- * ISO C 99 <wctype.h> for platforms that lack it.
- * <http://www.opengroup.org/susv3xbd/wctype.h.html>
- *
- * iswctype, towctrans, towlower, towupper, wctrans, wctype,
- * wctrans_t, and wctype_t are not yet implemented.
- */
-
-#ifndef _GL_WCTYPE_H
-#define _GL_WCTYPE_H
-
-#if @HAVE_WINT_T@
-/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
-   Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-# include <stddef.h>
-# include <stdio.h>
-# include <time.h>
-# include <wchar.h>
-typedef wint_t __wctype_wint_t;
-#else
-typedef int __wctype_wint_t;
-#endif
-
-/* Include the original <wctype.h> if it exists.
-   BeOS 5 has the functions but no <wctype.h>.  */
-#if @HAVE_WCTYPE_H@
-# include @ABSOLUTE_WCTYPE_H@
-#endif
-
-/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
-   Assume all 12 functions are implemented the same way, or not at all.  */
-#if ! HAVE_ISWCNTRL
-
-/* IRIX 5.3 has macros but no functions, its isw* macros refer to an
-   undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
-   refer to system functions like _iswctype that are not in the
-   standard C library.  Rather than try to get ancient buggy
-   implementations like this to work, just disable them.  */
-#  undef iswalnum
-#  undef iswalpha
-#  undef iswblank
-#  undef iswcntrl
-#  undef iswdigit
-#  undef iswgraph
-#  undef iswlower
-#  undef iswprint
-#  undef iswpunct
-#  undef iswspace
-#  undef iswupper
-#  undef iswxdigit
-
-static inline int
-iswalnum (__wctype_wint_t wc)
-{
-  return ((wc >= '0' && wc <= '9')
-	  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
-}
-
-static inline int
-iswalpha (__wctype_wint_t wc)
-{
-  return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
-}
-
-static inline int
-iswblank (__wctype_wint_t wc)
-{
-  return wc == ' ' || wc == '\t';
-}
-
-static inline int
-iswcntrl (__wctype_wint_t wc)
-{
-  return (wc & ~0x1f) == 0 || wc == 0x7f;
-}
-
-static inline int
-iswdigit (__wctype_wint_t wc)
-{
-  return wc >= '0' && wc <= '9';
-}
-
-static inline int
-iswgraph (__wctype_wint_t wc)
-{
-  return wc >= '!' && wc <= '~';
-}
-
-static inline int
-iswlower (__wctype_wint_t wc)
-{
-  return wc >= 'a' && wc <= 'z';
-}
-
-static inline int
-iswprint (__wctype_wint_t wc)
-{
-  return wc >= ' ' && wc <= '~';
-}
-
-static inline int
-iswpunct (__wctype_wint_t wc)
-{
-  return (wc >= '!' && wc <= '~'
-	  && !((wc >= '0' && wc <= '9')
-	       || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
-}
-
-static inline int
-iswspace (__wctype_wint_t wc)
-{
-  return (wc == ' ' || wc == '\t'
-	  || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
-}
-
-static inline int
-iswupper (__wctype_wint_t wc)
-{
-  return wc >= 'A' && wc <= 'Z';
-}
-
-static inline int
-iswxdigit (__wctype_wint_t wc)
-{
-  return ((wc >= '0' && wc <= '9')
-	  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
-}
-
-# endif /* ! HAVE_ISWCNTRL */
-
-#endif /* _GL_WCTYPE_H */
diff -uNr nagios-plugins-1.4.11/gl/wctype.in.h nagios-plugins-1.4.12/gl/wctype.in.h
--- nagios-plugins-1.4.11/gl/wctype.in.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/gl/wctype.in.h	2008-02-12 12:07:18.000000000 +0100
@@ -0,0 +1,161 @@
+/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
+
+   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible and Paul Eggert.  */
+
+/*
+ * ISO C 99 <wctype.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/wctype.h.html>
+ *
+ * iswctype, towctrans, towlower, towupper, wctrans, wctype,
+ * wctrans_t, and wctype_t are not yet implemented.
+ */
+
+#ifndef _GL_WCTYPE_H
+
+#if @HAVE_WINT_T@
+/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
+   Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+
+/* Include the original <wctype.h> if it exists.
+   BeOS 5 has the functions but no <wctype.h>.  */
+/* The include_next requires a split double-inclusion guard.  */
+#if @HAVE_WCTYPE_H@
+# @INCLUDE_NEXT@ @NEXT_WCTYPE_H@
+#endif
+
+#ifndef _GL_WCTYPE_H
+#define _GL_WCTYPE_H
+
+#if @HAVE_WINT_T@
+typedef wint_t __wctype_wint_t;
+#else
+typedef int __wctype_wint_t;
+#endif
+
+/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
+   Assume all 12 functions are implemented the same way, or not at all.  */
+#if ! @HAVE_ISWCNTRL@
+
+/* IRIX 5.3 has macros but no functions, its isw* macros refer to an
+   undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
+   refer to system functions like _iswctype that are not in the
+   standard C library.  Rather than try to get ancient buggy
+   implementations like this to work, just disable them.  */
+#  undef iswalnum
+#  undef iswalpha
+#  undef iswblank
+#  undef iswcntrl
+#  undef iswdigit
+#  undef iswgraph
+#  undef iswlower
+#  undef iswprint
+#  undef iswpunct
+#  undef iswspace
+#  undef iswupper
+#  undef iswxdigit
+
+static inline int
+iswalnum (__wctype_wint_t wc)
+{
+  return ((wc >= '0' && wc <= '9')
+	  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
+}
+
+static inline int
+iswalpha (__wctype_wint_t wc)
+{
+  return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
+}
+
+static inline int
+iswblank (__wctype_wint_t wc)
+{
+  return wc == ' ' || wc == '\t';
+}
+
+static inline int
+iswcntrl (__wctype_wint_t wc)
+{
+  return (wc & ~0x1f) == 0 || wc == 0x7f;
+}
+
+static inline int
+iswdigit (__wctype_wint_t wc)
+{
+  return wc >= '0' && wc <= '9';
+}
+
+static inline int
+iswgraph (__wctype_wint_t wc)
+{
+  return wc >= '!' && wc <= '~';
+}
+
+static inline int
+iswlower (__wctype_wint_t wc)
+{
+  return wc >= 'a' && wc <= 'z';
+}
+
+static inline int
+iswprint (__wctype_wint_t wc)
+{
+  return wc >= ' ' && wc <= '~';
+}
+
+static inline int
+iswpunct (__wctype_wint_t wc)
+{
+  return (wc >= '!' && wc <= '~'
+	  && !((wc >= '0' && wc <= '9')
+	       || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
+}
+
+static inline int
+iswspace (__wctype_wint_t wc)
+{
+  return (wc == ' ' || wc == '\t'
+	  || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
+}
+
+static inline int
+iswupper (__wctype_wint_t wc)
+{
+  return wc >= 'A' && wc <= 'Z';
+}
+
+static inline int
+iswxdigit (__wctype_wint_t wc)
+{
+  return ((wc >= '0' && wc <= '9')
+	  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
+}
+
+# endif /* ! HAVE_ISWCNTRL */
+
+#endif /* _GL_WCTYPE_H */
+#endif /* _GL_WCTYPE_H */
diff -uNr nagios-plugins-1.4.11/gl/wcwidth.h nagios-plugins-1.4.12/gl/wcwidth.h
--- nagios-plugins-1.4.11/gl/wcwidth.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/wcwidth.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,57 +0,0 @@
-/* Determine the number of screen columns needed for a character.
-   Copyright (C) 2006, 2007 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef _gl_WCWIDTH_H
-#define _gl_WCWIDTH_H
-
-#if HAVE_WCHAR_T
-
-/* Get wcwidth if available, along with wchar_t.  */
-# include <wchar.h>
-
-/* Get iswprint.  */
-# include <wctype.h>
-
-# ifndef HAVE_DECL_WCWIDTH
-"this configure-time declaration test was not run"
-# endif
-# ifndef wcwidth
-#  if !HAVE_WCWIDTH
-
-/* wcwidth doesn't exist, so assume all printable characters have
-   width 1.  */
-static inline int
-wcwidth (wchar_t wc)
-{
-  return wc == 0 ? 0 : iswprint (wc) ? 1 : -1;
-}
-
-#  elif !HAVE_DECL_WCWIDTH
-
-/* wcwidth exists but is not declared.  */
-extern
-#   ifdef __cplusplus
-"C"
-#   endif
-int wcwidth (int /* actually wchar_t */);
-
-#  endif
-# endif
-
-#endif /* HAVE_WCHAR_T */
-
-#endif /* _gl_WCWIDTH_H */
diff -uNr nagios-plugins-1.4.11/gl/xalloc-die.c nagios-plugins-1.4.12/gl/xalloc-die.c
--- nagios-plugins-1.4.11/gl/xalloc-die.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/xalloc-die.c	2008-02-12 12:07:18.000000000 +0100
@@ -3,10 +3,10 @@
    Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2006 Free
    Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff -uNr nagios-plugins-1.4.11/gl/xalloc.h nagios-plugins-1.4.12/gl/xalloc.h
--- nagios-plugins-1.4.11/gl/xalloc.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/xalloc.h	2008-02-12 12:07:18.000000000 +0100
@@ -1,12 +1,12 @@
 /* xalloc.h -- malloc with out-of-memory checking
 
    Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2003, 2004, 2006 Free Software Foundation, Inc.
+   1999, 2000, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,8 +14,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef XALLOC_H_
 # define XALLOC_H_
@@ -29,7 +28,7 @@
 
 
 # ifndef __attribute__
-#  if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
+#  if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
 #   define __attribute__(x)
 #  endif
 # endif
@@ -139,10 +138,10 @@
    allocating an initial block with a nonzero size, or by allocating a
    larger block.
 
-   In the following implementation, nonzero sizes are doubled so that
-   repeated reallocations have O(N log N) overall cost rather than
-   O(N**2) cost, but the specification for this function does not
-   guarantee that sizes are doubled.
+   In the following implementation, nonzero sizes are increased by a
+   factor of approximately 1.5 so that repeated reallocations have
+   O(N) overall cost rather than O(N**2) cost, but the
+   specification for this function does not guarantee that rate.
 
    Here is an example of use:
 
@@ -204,9 +203,13 @@
     }
   else
     {
-      if (((size_t) -1) / 2 / s < n)
+      /* Set N = ceil (1.5 * N) so that progress is made if N == 1.
+	 Check for overflow, so that N * S stays in size_t range.
+	 The check is slightly conservative, but an exact check isn't
+	 worth the trouble.  */
+      if ((size_t) -1 / 3 * 2 / s <= n)
 	xalloc_die ();
-      n *= 2;
+      n += (n + 1) / 2;
     }
 
   *pn = n;
diff -uNr nagios-plugins-1.4.11/gl/xmalloc.c nagios-plugins-1.4.12/gl/xmalloc.c
--- nagios-plugins-1.4.11/gl/xmalloc.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/xmalloc.c	2008-02-12 12:07:18.000000000 +0100
@@ -4,10 +4,10 @@
    1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
    Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,8 +15,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff -uNr nagios-plugins-1.4.11/gl/xsize.h nagios-plugins-1.4.12/gl/xsize.h
--- nagios-plugins-1.4.11/gl/xsize.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/xsize.h	2008-02-12 12:07:18.000000000 +0100
@@ -4,7 +4,7 @@
 
    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)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
diff -uNr nagios-plugins-1.4.11/gl/xstrndup.c nagios-plugins-1.4.12/gl/xstrndup.c
--- nagios-plugins-1.4.11/gl/xstrndup.c	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/xstrndup.c	2008-02-12 12:07:18.000000000 +0100
@@ -1,11 +1,11 @@
 /* Duplicate a bounded initial segment of a string, with out-of-memory
    checking.
-   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,15 +13,14 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
 /* Specification.  */
 #include "xstrndup.h"
 
-#include "strndup.h"
+#include <string.h>
 #include "xalloc.h"
 
 /* Return a newly allocated copy of at most N bytes of STRING.
diff -uNr nagios-plugins-1.4.11/gl/xstrndup.h nagios-plugins-1.4.12/gl/xstrndup.h
--- nagios-plugins-1.4.11/gl/xstrndup.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/gl/xstrndup.h	2008-02-12 12:07:18.000000000 +0100
@@ -2,10 +2,10 @@
    checking.
    Copyright (C) 2003 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,8 +13,7 @@
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stddef.h>
 
diff -uNr nagios-plugins-1.4.11/lib/base64.c nagios-plugins-1.4.12/lib/base64.c
--- nagios-plugins-1.4.11/lib/base64.c	2007-11-09 22:17:03.000000000 +0100
+++ nagios-plugins-1.4.12/lib/base64.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,50 +0,0 @@
-/****************************************************************************
-* Function to encode in Base64
-*
-* Written by Lauri Alanko
-*
-*****************************************************************************/
-
-#include "common.h"
-#include "base64.h"
-
-char *
-base64 (const char *bin, size_t len)
-{
-
-	char *buf = (char *) malloc ((len + 2) / 3 * 4 + 1);
-	size_t i = 0, j = 0;
-
-	char BASE64_END = '=';
-	char base64_table[64];
-	strncpy (base64_table, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", 64);
-
-	while (j < len - 2) {
-		buf[i++] = base64_table[bin[j] >> 2];
-		buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
-		buf[i++] = base64_table[((bin[j + 1] & 15) << 2) | (bin[j + 2] >> 6)];
-		buf[i++] = base64_table[bin[j + 2] & 63];
-		j += 3;
-	}
-
-	switch (len - j) {
-	case 1:
-		buf[i++] = base64_table[bin[j] >> 2];
-		buf[i++] = base64_table[(bin[j] & 3) << 4];
-		buf[i++] = BASE64_END;
-		buf[i++] = BASE64_END;
-		break;
-	case 2:
-		buf[i++] = base64_table[bin[j] >> 2];
-		buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
-		buf[i++] = base64_table[(bin[j + 1] & 15) << 2];
-		buf[i++] = BASE64_END;
-		break;
-	case 0:
-		break;
-	}
-
-	buf[i] = '\0';
-	return buf;
-}
-
diff -uNr nagios-plugins-1.4.11/lib/base64.h nagios-plugins-1.4.12/lib/base64.h
--- nagios-plugins-1.4.11/lib/base64.h	2007-11-09 22:17:03.000000000 +0100
+++ nagios-plugins-1.4.12/lib/base64.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-/* Header file for base64.c */
-
-char *base64 (const char *bin, size_t len);
-
diff -uNr nagios-plugins-1.4.11/lib/extra_opts.c nagios-plugins-1.4.12/lib/extra_opts.c
--- nagios-plugins-1.4.11/lib/extra_opts.c	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/extra_opts.c	2008-04-04 12:11:22.000000000 +0200
@@ -0,0 +1,142 @@
+/*****************************************************************************
+* 
+* Nagios-plugins extra_opts library
+* 
+* License: GPL
+* Copyright (c) 2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-03-15 18:42:01 -0400 (Sat, 15 Mar 2008) $
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: parse_ini.c 1950 2008-03-15 22:42:01Z dermoth $
+* 
+*****************************************************************************/
+
+#include "common.h"
+#include "utils_base.h"
+#include "parse_ini.h"
+#include "extra_opts.h"
+
+/* FIXME: copied from utils.h; we should move a bunch of libs! */
+int
+is_option2 (char *str)
+{
+	if (!str)
+		return FALSE;
+	else if (strspn (str, "-") == 1 || strspn (str, "-") == 2)
+		return TRUE;
+	else
+		return FALSE;
+}
+
+/* this is the externally visible function used by plugins */
+char **np_extra_opts(int *argc, char **argv, const char *plugin_name){
+	np_arg_list *extra_args=NULL, *ea1=NULL, *ea_tmp=NULL;
+	char **argv_new=NULL;
+	char *argptr=NULL;
+	int i, j, optfound, argc_new, ea_num=*argc;
+
+	if(*argc<2) {
+		/* No arguments provided */
+		return argv;
+	}
+
+	for(i=1; i<*argc; i++){
+		argptr=NULL;
+		optfound=0;
+
+		/* Do we have an extra-opts parameter? */
+		if(strncmp(argv[i], "--extra-opts=", 13)==0){
+			/* It is a single argument with value */
+			argptr=argv[i]+13;
+			/* Delete the extra opts argument */
+			for(j=i;j<*argc;j++) argv[j]=argv[j+1];
+			i--;
+			*argc-=1;
+		}else if(strcmp(argv[i], "--extra-opts")==0){
+			if((i+1<*argc)&&!is_option2(argv[i+1])){
+				/* It is a argument with separate value */
+				argptr=argv[i+1];
+				/* Delete the extra-opts argument/value */
+				for(j=i;j<*argc-1;j++) argv[j]=argv[j+2];
+				i-=2;
+				*argc-=2;
+				ea_num--;
+			}else{
+				/* It has no value */
+				optfound=1;
+				/* Delete the extra opts argument */
+				for(j=i;j<*argc;j++) argv[j]=argv[j+1];
+				i--;
+				*argc-=1;
+			}
+		}
+
+		/* If we found extra-opts, expand them and store them for later*/
+		if(argptr||optfound){
+			/* Process ini section, returning a linked list of arguments */
+			ea1=np_get_defaults(argptr, plugin_name);
+			if(ea1==NULL) {
+				/* no extra args (empty section)? */
+				ea_num--;
+				continue;
+			}
+
+			/* append the list to extra_args */
+			if(extra_args==NULL){
+				extra_args=ea1;
+				while(ea1=ea1->next) ea_num++;
+			}else{
+				ea_tmp=extra_args;
+				while(ea_tmp->next) {
+					ea_tmp=ea_tmp->next;
+					ea_num++;
+				}
+				ea_tmp->next=ea1;
+			}
+			ea1=ea_tmp=NULL;
+		}
+		/* lather, rince, repeat */
+	}
+
+	if(ea_num==*argc && extra_args==NULL){
+		/* No extra-opts */
+		return argv;
+	}
+
+	/* done processing arguments. now create a new argv array... */
+	argv_new=(char**)malloc((ea_num+1)*sizeof(char**));
+	if(argv_new==NULL) die(STATE_UNKNOWN, _("malloc() failed!\n"));
+
+	/* starting with program name */
+	argv_new[0]=argv[0];
+	argc_new=1;
+	/* then parsed ini opts (frying them up in the same run) */
+	while(extra_args){
+		argv_new[argc_new++]=extra_args->arg;
+		ea1=extra_args;
+		extra_args=extra_args->next;
+		free(ea1);
+	}
+	/* finally the rest of the argv array */
+	for (i=1; i<*argc; i++)	argv_new[argc_new++]=argv[i];
+	*argc=argc_new;
+	/* and terminate. */
+	argv_new[argc_new]=NULL;
+
+	return argv_new;
+}
+
diff -uNr nagios-plugins-1.4.11/lib/extra_opts.h nagios-plugins-1.4.12/lib/extra_opts.h
--- nagios-plugins-1.4.11/lib/extra_opts.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/extra_opts.h	2008-04-01 11:31:27.000000000 +0200
@@ -0,0 +1,20 @@
+#ifndef _EXTRA_OPTS_H_
+#define _EXTRA_OPTS_H_
+
+/*
+ * extra_opts.h: routines for loading nagios-plugin defaults from ini
+ * configuration files.
+ */
+
+/* np_extra_opts: Process the --extra-opts arguments and create a new argument
+ * array with ini-processed and argument-passed arguments together. The
+ * ini-procesed arguments always come first (in the ord of --extra-opts
+ * arguments). If no --extra-opts arguments are provided or returned nothing
+ * it returns **argv otherwise the new array is returned. --extra-opts are
+ * always removed from **argv. The original pointers from **argv are kept in
+ * the new array to preserve ability to overwrite arguments in processlist.
+ */
+char **np_extra_opts(int *argc, char **argv, const char *plugin_name);
+
+#endif /* _EXTRA_OPTS_H_ */
+
diff -uNr nagios-plugins-1.4.11/lib/Makefile.am nagios-plugins-1.4.12/lib/Makefile.am
--- nagios-plugins-1.4.11/lib/Makefile.am	2007-12-12 02:27:48.000000000 +0100
+++ nagios-plugins-1.4.12/lib/Makefile.am	2008-04-02 11:11:44.000000000 +0200
@@ -5,8 +5,12 @@
 noinst_LIBRARIES = libnagiosplug.a
 
 
-libnagiosplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c utils_cmd.c base64.c
-EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h base64.h
+libnagiosplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c utils_cmd.c
+EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h parse_ini.h extra_opts.h
+
+if USE_PARSE_INI
+libnagiosplug_a_SOURCES += parse_ini.c extra_opts.c
+endif USE_PARSE_INI
 
 INCLUDES = -I$(srcdir) -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
 
diff -uNr nagios-plugins-1.4.11/lib/Makefile.in nagios-plugins-1.4.12/lib/Makefile.in
--- nagios-plugins-1.4.11/lib/Makefile.in	2007-12-13 23:42:34.000000000 +0100
+++ nagios-plugins-1.4.12/lib/Makefile.in	2008-05-28 00:05:06.000000000 +0200
@@ -35,40 +35,45 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+@USE_PARSE_INI_TRUE@am__append_1 = parse_ini.c extra_opts.c
 subdir = lib
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
 	$(top_srcdir)/gl/m4/alloca.m4 \
 	$(top_srcdir)/gl/m4/arpa_inet_h.m4 \
-	$(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \
-	$(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \
-	$(top_srcdir)/gl/m4/dos.m4 \
+	$(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \
+	$(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \
+	$(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \
 	$(top_srcdir)/gl/m4/double-slash-root.m4 \
 	$(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \
 	$(top_srcdir)/gl/m4/exitfail.m4 \
 	$(top_srcdir)/gl/m4/extensions.m4 \
 	$(top_srcdir)/gl/m4/fcntl-safer.m4 \
+	$(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \
 	$(top_srcdir)/gl/m4/fstypename.m4 \
 	$(top_srcdir)/gl/m4/fsusage.m4 \
 	$(top_srcdir)/gl/m4/getaddrinfo.m4 \
 	$(top_srcdir)/gl/m4/gethostname.m4 \
 	$(top_srcdir)/gl/m4/getloadavg.m4 \
 	$(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \
+	$(top_srcdir)/gl/m4/glibc21.m4 \
 	$(top_srcdir)/gl/m4/gnulib-common.m4 \
 	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \
-	$(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \
+	$(top_srcdir)/gl/m4/iconv.m4 \
+	$(top_srcdir)/gl/m4/include_next.m4 \
+	$(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \
+	$(top_srcdir)/gl/m4/intlmacosx.m4 \
+	$(top_srcdir)/gl/m4/intmax_t.m4 \
 	$(top_srcdir)/gl/m4/inttypes_h.m4 \
 	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longdouble.m4 \
+	$(top_srcdir)/gl/m4/lib-prefix.m4 \
+	$(top_srcdir)/gl/m4/localcharset.m4 \
 	$(top_srcdir)/gl/m4/longlong.m4 \
 	$(top_srcdir)/gl/m4/ls-mntd-fs.m4 \
-	$(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \
-	$(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \
-	$(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \
+	$(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \
+	$(top_srcdir)/gl/m4/mbstate_t.m4 \
+	$(top_srcdir)/gl/m4/mountlist.m4 \
 	$(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \
 	$(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \
 	$(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \
@@ -78,21 +83,21 @@
 	$(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \
 	$(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \
 	$(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \
-	$(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \
+	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \
+	$(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \
+	$(top_srcdir)/gl/m4/strerror.m4 \
+	$(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \
 	$(top_srcdir)/gl/m4/strnlen.m4 \
 	$(top_srcdir)/gl/m4/sys_socket_h.m4 \
-	$(top_srcdir)/gl/m4/ulonglong.m4 \
 	$(top_srcdir)/gl/m4/unistd-safer.m4 \
 	$(top_srcdir)/gl/m4/unistd_h.m4 \
 	$(top_srcdir)/gl/m4/vasnprintf.m4 \
 	$(top_srcdir)/gl/m4/vasprintf.m4 \
 	$(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \
 	$(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \
-	$(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \
-	$(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \
-	$(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \
+	$(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
@@ -102,8 +107,12 @@
 ARFLAGS = cru
 libnagiosplug_a_AR = $(AR) $(ARFLAGS)
 libnagiosplug_a_LIBADD =
+am__libnagiosplug_a_SOURCES_DIST = utils_base.c utils_disk.c \
+	utils_tcp.c utils_cmd.c parse_ini.c extra_opts.c
+@USE_PARSE_INI_TRUE@am__objects_1 = parse_ini.$(OBJEXT) \
+@USE_PARSE_INI_TRUE@	extra_opts.$(OBJEXT)
 am_libnagiosplug_a_OBJECTS = utils_base.$(OBJEXT) utils_disk.$(OBJEXT) \
-	utils_tcp.$(OBJEXT) utils_cmd.$(OBJEXT) base64.$(OBJEXT)
+	utils_tcp.$(OBJEXT) utils_cmd.$(OBJEXT) $(am__objects_1)
 libnagiosplug_a_OBJECTS = $(am_libnagiosplug_a_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
@@ -117,7 +126,7 @@
 LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(libnagiosplug_a_SOURCES)
-DIST_SOURCES = $(libnagiosplug_a_SOURCES)
+DIST_SOURCES = $(am__libnagiosplug_a_SOURCES_DIST)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
 	install-exec-recursive install-info-recursive \
@@ -129,10 +138,6 @@
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 INSTALL = @INSTALL@
-ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
-ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
-ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
-ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -177,27 +182,177 @@
 EXTRA_TEST = @EXTRA_TEST@
 F77 = @F77@
 FFLAGS = @FFLAGS@
+FLOAT_H = @FLOAT_H@
+FLOORF_LIBM = @FLOORF_LIBM@
 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
 GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
 GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
 GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MATHL = @GNULIB_MATHL@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
 GREP = @GREP@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_SETENV = @HAVE_SETENV@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE__BOOL = @HAVE__BOOL@
 HOSTNAME = @HOSTNAME@
+INCLUDE_NEXT = @INCLUDE_NEXT@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -218,6 +373,7 @@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
@@ -231,6 +387,17 @@
 MYSQLLIBS = @MYSQLLIBS@
 NEED_SETGID = @NEED_SETGID@
 NETINET_IN_H = @NETINET_IN_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_MATH_H = @NEXT_MATH_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -269,11 +436,56 @@
 PLUGIN_TEST = @PLUGIN_TEST@
 POSUB = @POSUB@
 POW_LIB = @POW_LIB@
+PST3CFLAGS = @PST3CFLAGS@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 PYTHON = @PYTHON@
 RADIUSLIBS = @RADIUSLIBS@
 RANLIB = @RANLIB@
 RELEASE = @RELEASE@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REV_DATESTAMP = @REV_DATESTAMP@
 REV_TIMESTAMP = @REV_TIMESTAMP@
 SCRIPT_TEST = @SCRIPT_TEST@
@@ -290,9 +502,11 @@
 STRIP = @STRIP@
 SUPPORT = @SUPPORT@
 SYS_SOCKET_H = @SYS_SOCKET_H@
-UNISTD_H = @UNISTD_H@
 USE_NLS = @USE_NLS@
+USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@
+USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@
 VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
 WARRANTY = @WARRANTY@
 WCHAR_H = @WCHAR_H@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
@@ -300,6 +514,7 @@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
@@ -326,6 +541,8 @@
 exec_prefix = @exec_prefix@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -354,8 +571,9 @@
 with_trusted_path = @with_trusted_path@
 SUBDIRS = tests
 noinst_LIBRARIES = libnagiosplug.a
-libnagiosplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c utils_cmd.c base64.c
-EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h base64.h
+libnagiosplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c \
+	utils_cmd.c $(am__append_1)
+EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h parse_ini.h extra_opts.h
 INCLUDES = -I$(srcdir) -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
 all: all-recursive
 
@@ -404,7 +622,8 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extra_opts.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse_ini.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_base.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_cmd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_disk.Po@am__quote@
diff -uNr nagios-plugins-1.4.11/lib/parse_ini.c nagios-plugins-1.4.12/lib/parse_ini.c
--- nagios-plugins-1.4.11/lib/parse_ini.c	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/parse_ini.c	2008-04-04 12:11:22.000000000 +0200
@@ -0,0 +1,368 @@
+/*****************************************************************************
+* 
+* Nagios-plugins parse_ini library
+* 
+* License: GPL
+* Copyright (c) 2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-04-04 11:11:22 +0100 (Fri, 04 Apr 2008) $
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: parse_ini.c 1976 2008-04-04 10:11:22Z dermoth $
+* 
+*****************************************************************************/
+
+#include "common.h"
+#include "utils_base.h"
+#include "parse_ini.h"
+#include <ctype.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+/* TODO: die like N::P if config file is not found */
+
+/* np_ini_info contains the result of parsing a "locator" in the format
+ * [stanza_name][@config_filename] (check_foo@/etc/foo.ini, for example)
+ */
+typedef struct {
+	char *file;
+	char *stanza;
+} np_ini_info;
+
+/* eat all characters from a FILE pointer until n is encountered */
+#define GOBBLE_TO(f, c, n) do { (c)=fgetc((f)); } while((c)!=EOF && (c)!=(n))
+
+/* internal function that returns the constructed defaults options */
+static int read_defaults(FILE *f, const char *stanza, np_arg_list **opts);
+/* internal function that converts a single line into options format */
+static int add_option(FILE *f, np_arg_list **optlst);
+/* internal function to find default file */
+static char* default_file(void);
+/* internal function to stat() files */
+static int test_file(const char* env, int len, const char* file, char* temp_file);
+
+/* parse_locator decomposes a string of the form
+ * 	[stanza][@filename]
+ * into its seperate parts
+ */
+static void parse_locator(const char *locator, const char *def_stanza, np_ini_info *i){
+	size_t locator_len=0, stanza_len=0;
+
+	/* if locator is NULL we'll use default values */
+	if(locator){
+		locator_len=strlen(locator);
+		stanza_len=strcspn(locator, "@");
+	}
+	/* if a non-default stanza is provided */
+	if(stanza_len>0){
+		i->stanza=(char*)malloc(sizeof(char)*(stanza_len+1));
+		strncpy(i->stanza, locator, stanza_len);
+		i->stanza[stanza_len]='\0';
+	} else { /* otherwise we use the default stanza */
+		i->stanza=strdup(def_stanza);
+	}
+	/* if there is no @file part */
+	if(stanza_len==locator_len){
+		i->file=default_file();
+	} else {
+		i->file=strdup(&(locator[stanza_len+1]));
+	}
+	
+	if(i->file==NULL || i->stanza==NULL){
+		die(STATE_UNKNOWN, _("malloc() failed!\n"));
+	}
+}
+
+/* this is the externally visible function used by extra_opts */
+np_arg_list* np_get_defaults(const char *locator, const char *default_section){
+	FILE *inifile=NULL;
+	np_arg_list *defaults=NULL;
+	np_ini_info i;
+
+	parse_locator(locator, default_section, &i);
+	/* if a file was specified or if we're using the default file */
+	if(i.file != NULL && strlen(i.file) > 0){
+		if(strcmp(i.file, "-")==0){
+			inifile=stdin;
+		} else {
+			inifile=fopen(i.file, "r");
+		}
+		if(inifile==NULL) die(STATE_UNKNOWN, _("Can't read config file"));
+		if(read_defaults(inifile, i.stanza, &defaults)==FALSE)
+			die(STATE_UNKNOWN, _("Invalid section '%s' in config file '%s'\n"), i.stanza, i.file);
+
+		free(i.file);
+		if(inifile!=stdin) fclose(inifile);
+	}
+	free(i.stanza);
+	return defaults;	
+}
+
+/* read_defaults is where the meat of the parsing takes place.
+ *
+ * note that this may be called by a setuid binary, so we need to
+ * be extra careful about user-supplied input (i.e. avoiding possible
+ * format string vulnerabilities, etc)
+ */
+static int read_defaults(FILE *f, const char *stanza, np_arg_list **opts){
+	int c, status=FALSE;
+	size_t i, stanza_len;
+	enum { NOSTANZA, WRONGSTANZA, RIGHTSTANZA } stanzastate=NOSTANZA;
+
+	stanza_len=strlen(stanza);
+
+	/* our little stanza-parsing state machine.  */
+	while((c=fgetc(f))!=EOF){
+		/* gobble up leading whitespace */
+		if(isspace(c)) continue;
+		switch(c){
+			/* globble up coment lines */
+			case '#':
+				GOBBLE_TO(f, c, '\n');
+				break;
+			/* start of a stanza.  check to see if it matches */
+			case '[':
+				stanzastate=WRONGSTANZA;
+				for(i=0; i<stanza_len; i++){
+					c=fgetc(f);
+					/* Strip leading whitespace */
+					if(i==0) for(c; isspace(c); c=fgetc(f));
+					/* nope, read to the end of the line */
+					if(c!=stanza[i]) {
+						GOBBLE_TO(f, c, '\n');
+						break;
+					}
+				}
+				/* if it matched up to here and the next char is ']'... */
+				if(i==stanza_len){
+					c=fgetc(f);
+					/* Strip trailing whitespace */
+					for(c; isspace(c); c=fgetc(f));
+					if(c==']') stanzastate=RIGHTSTANZA;
+				}
+				break;
+			/* otherwise, we're in the body of a stanza or a parse error */
+			default:
+				switch(stanzastate){
+					/* we never found the start of the first stanza, so
+					 * we're dealing with a config error 
+					 */
+					case NOSTANZA:
+						die(STATE_UNKNOWN, _("Config file error"));
+						break;
+					/* we're in a stanza, but for a different plugin */
+					case WRONGSTANZA:
+						GOBBLE_TO(f, c, '\n');
+						break;
+					/* okay, this is where we start taking the config */
+					case RIGHTSTANZA:
+						ungetc(c, f);
+						if(add_option(f, opts)){
+							die(STATE_UNKNOWN, _("Config file error"));
+						}
+						status=TRUE;
+						break;
+				}
+				break;
+		}
+	}
+	return status;
+}
+
+/*
+ * read one line of input in the format
+ * 	^option[[:space:]]*(=[[:space:]]*value)?
+ * and creates it as a cmdline argument
+ * 	--option[=value]
+ * appending it to the linked list optbuf.
+ */
+static int add_option(FILE *f, np_arg_list **optlst){
+	np_arg_list *opttmp=*optlst, *optnew;
+	char *linebuf=NULL, *lineend=NULL, *optptr=NULL, *optend=NULL;
+	char *eqptr=NULL, *valptr=NULL, *spaceptr=NULL, *valend=NULL;
+	short done_reading=0, equals=0, value=0;
+	size_t cfg_len=0, read_sz=8, linebuf_sz=0, read_pos=0;
+	size_t opt_len=0, val_len=0;
+
+	/* read one line from the file */
+	while(!done_reading){
+		/* grow if necessary */
+		if(linebuf==NULL || read_pos+read_sz >= linebuf_sz){
+			linebuf_sz=(linebuf_sz>0)?linebuf_sz<<1:read_sz;
+			linebuf=realloc(linebuf, linebuf_sz);
+			if(linebuf==NULL) die(STATE_UNKNOWN, _("malloc() failed!\n"));
+		}
+		if(fgets(&linebuf[read_pos], read_sz, f)==NULL) done_reading=1;
+		else {
+			read_pos=strlen(linebuf);
+			if(linebuf[read_pos-1]=='\n') {
+				linebuf[--read_pos]='\0';
+				done_reading=1;
+			}
+		}
+	}
+	lineend=&linebuf[read_pos];
+	/* all that to read one line.  isn't C fun? :) now comes the parsing :/ */
+
+	/* skip leading whitespace */
+	for(optptr=linebuf; optptr<lineend && isspace(*optptr); optptr++);
+	/* continue to '=' or EOL, watching for spaces that might precede it */
+	for(eqptr=optptr; eqptr<lineend && *eqptr!='='; eqptr++){
+		if(isspace(*eqptr) && optend==NULL) optend=eqptr;
+		else optend=NULL;
+	}
+	if(optend==NULL) optend=eqptr;
+	--optend;
+	/* ^[[:space:]]*=foo is a syntax error */
+	if(optptr==eqptr) die(STATE_UNKNOWN, _("Config file error\n"));
+	/* continue from '=' to start of value or EOL */
+	for(valptr=eqptr+1; valptr<lineend && isspace(*valptr); valptr++);
+	/* continue to the end of value (FIXME: watching for trailing comments) */
+	for(valend=valptr; valend<lineend; valend++)
+		/* FIXME: N::P doesn't allow comments here. Remove next line and parse_ini won't either */
+		if(*valend=='#') break;
+	--valend;
+	/* Finally trim off trailing spaces */
+	for(valend; isspace(*valend); valend--);
+	/* calculate the length of "--foo" */
+	opt_len=1+optend-optptr;
+	/* 1-character params needs only one dash */
+	if(opt_len==1)
+		cfg_len=1+(opt_len);
+	else
+		cfg_len=2+(opt_len);
+	/* if valptr<lineend then we have to also allocate space for "=bar" */
+	if(valptr<lineend) {
+		equals=value=1;
+		val_len=1+valend-valptr;
+		cfg_len+=1+val_len;
+	}
+	/* if valptr==valend then we have "=" but no "bar" */
+	else if(valptr==lineend) {
+		equals=1;
+		cfg_len+=1;
+	}
+	/* A line with no equal sign isn't valid */
+	if(equals==0) die(STATE_UNKNOWN, _("Config file error\n"));
+
+	/* okay, now we have all the info we need, so we create a new np_arg_list
+	 * element and set the argument...
+	 */
+	optnew=(np_arg_list *)malloc(sizeof(np_arg_list));
+	optnew->next=NULL;
+
+	read_pos=0;
+	optnew->arg=(char *)malloc(cfg_len+1);
+	/* 1-character params needs only one dash */
+	if(opt_len==1) {
+		strncpy(&optnew->arg[read_pos], "-", 1);
+		read_pos+=1;
+	} else {
+		strncpy(&optnew->arg[read_pos], "--", 2);
+		read_pos+=2;
+	}
+	strncpy(&optnew->arg[read_pos], optptr, opt_len); read_pos+=opt_len;
+	if(value) {
+		optnew->arg[read_pos++]='=';
+		strncpy(&optnew->arg[read_pos], valptr, val_len); read_pos+=val_len;
+	}
+	optnew->arg[read_pos]='\0';
+
+	/* ...and put that to the end of the list */
+	if(*optlst==NULL) {
+		*optlst=optnew;
+	}	else {
+		while(opttmp->next!=NULL) {
+			opttmp=opttmp->next;
+		}
+		opttmp->next = optnew;
+	}
+
+	free(linebuf);
+	return 0;
+}
+
+static char* default_file(void){
+	struct stat sb;
+	char *np_env=NULL, *default_file=NULL;
+	char temp_file[MAX_INPUT_BUFFER];
+	size_t len;
+
+	if((np_env=getenv("NAGIOS_CONFIG_PATH"))!=NULL) {
+		/* skip ant starting colon... */
+		while(*np_env==':') np_env++;
+		/* Look for NP_DEFAULT_INI_FILENAME1 and NP_DEFAULT_INI_FILENAME2 in
+		 * every PATHs defined (colon-separated).
+		 */
+		while((len=strcspn(np_env,":"))>0){
+			/* Test NP_DEFAULT_INI_FILENAME[1-2] in current np_env token */
+			if(test_file(np_env,len,NP_DEFAULT_INI_FILENAME1,temp_file)==1 ||
+			   test_file(np_env,len,NP_DEFAULT_INI_FILENAME2,temp_file)==1){
+				default_file=strdup(temp_file);
+				break;
+			}
+
+			/* Move on to the next token */
+			np_env+=len;
+			while(*np_env==':') np_env++;
+		} /* while(...) */
+	} /* if(getenv("NAGIOS_CONFIG_PATH")) */
+
+	/* Look for NP_DEFAULT_INI_FILENAME1 in NP_DEFAULT_INI_NAGIOS_PATH[1-4] */
+	if(!default_file){
+		if(test_file(NP_DEFAULT_INI_NAGIOS_PATH1,strlen(NP_DEFAULT_INI_NAGIOS_PATH1),NP_DEFAULT_INI_FILENAME1,temp_file)==1 ||
+		   test_file(NP_DEFAULT_INI_NAGIOS_PATH2,strlen(NP_DEFAULT_INI_NAGIOS_PATH2),NP_DEFAULT_INI_FILENAME1,temp_file)==1 ||
+		   test_file(NP_DEFAULT_INI_NAGIOS_PATH3,strlen(NP_DEFAULT_INI_NAGIOS_PATH3),NP_DEFAULT_INI_FILENAME1,temp_file)==1 ||
+		   test_file(NP_DEFAULT_INI_NAGIOS_PATH4,strlen(NP_DEFAULT_INI_NAGIOS_PATH4),NP_DEFAULT_INI_FILENAME1,temp_file)==1)
+			default_file=strdup(temp_file);
+	}
+
+	/* Look for NP_DEFAULT_INI_FILENAME2 in NP_DEFAULT_INI_PATH[1-3] */
+	if(!default_file){
+		if(test_file(NP_DEFAULT_INI_PATH1,strlen(NP_DEFAULT_INI_PATH1),NP_DEFAULT_INI_FILENAME2,temp_file)==1 ||
+		   test_file(NP_DEFAULT_INI_PATH2,strlen(NP_DEFAULT_INI_PATH2),NP_DEFAULT_INI_FILENAME2,temp_file)==1 ||
+		   test_file(NP_DEFAULT_INI_PATH3,strlen(NP_DEFAULT_INI_PATH3),NP_DEFAULT_INI_FILENAME2,temp_file)==1)
+			default_file=strdup(temp_file);
+	}
+
+	/* Return default_file or empty string (should return NULL if we want to
+	 * die there...
+	 */
+	if(default_file)
+		return default_file;
+	return "";
+}
+
+/* put together len bytes from env and the filename and test for its
+ * existence. Returns 1 if found, 0 if not and -1 if test wasn't performed.
+ */
+static int test_file(const char* env, int len, const char* file, char* temp_file){
+	struct stat sb;
+
+	/* test for len + filelen + '/' + '\0' */
+	if((len+strlen(file)+2)>MAX_INPUT_BUFFER)	return -1;
+
+	strncpy(temp_file,env,len);
+	temp_file[len]='\0';
+	strncat(temp_file,"/",len+1);
+	strncat(temp_file,file,len+strlen(file)+1);
+
+	if(stat(temp_file, &sb) != -1) return 1;
+	return 0;
+}
+
diff -uNr nagios-plugins-1.4.11/lib/parse_ini.h nagios-plugins-1.4.12/lib/parse_ini.h
--- nagios-plugins-1.4.11/lib/parse_ini.h	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/parse_ini.h	2008-03-31 07:31:14.000000000 +0200
@@ -0,0 +1,62 @@
+#ifndef _PARSE_INI_H_
+#define _PARSE_INI_H_
+
+/*
+ * parse_ini.h: routines for loading nagios-plugin defaults from ini
+ * configuration files.
+ */
+
+/* np_arg_list is a linked list of arguments passed between the ini
+ * parser and the argument parser to construct the final array */
+typedef struct np_arg_el {
+	char *arg;
+	struct np_arg_el *next;
+} np_arg_list;
+
+/* FIXME: This is in plugins/common.c. Should be eventually moved to lib/
+ * (although for this particular one  a configure settings should be ideal)
+ */
+#ifndef MAX_INPUT_BUFFER
+# define MAX_INPUT_BUFFER 8192
+#endif /* MAX_INPUT_BUFFER */
+
+/* Filenames (see below) */
+#ifndef NP_DEFAULT_INI_FILENAME1
+# define NP_DEFAULT_INI_FILENAME1 "plugins.ini"
+#endif /* NP_DEFAULT_INI_FILENAME1 */
+#ifndef NP_DEFAULT_INI_FILENAME2
+# define NP_DEFAULT_INI_FILENAME2 "nagios-plugins.ini"
+#endif /* NP_DEFAULT_INI_FILENAME2 */
+
+/* Config paths ending in nagios (search for NP_DEFAULT_INI_FILENAME1) */
+#ifndef NP_DEFAULT_INI_NAGIOS_PATH1
+# define NP_DEFAULT_INI_NAGIOS_PATH1 "/etc/nagios"
+#endif /* NP_DEFAULT_INI_NAGIOS_PATH1 */
+#ifndef NP_DEFAULT_INI_NAGIOS_PATH2
+# define NP_DEFAULT_INI_NAGIOS_PATH2 "/usr/local/nagios/etc"
+#endif /* NP_DEFAULT_INI_NAGIOS_PATH2 */
+#ifndef NP_DEFAULT_INI_NAGIOS_PATH3
+# define NP_DEFAULT_INI_NAGIOS_PATH3 "/usr/local/etc/nagios"
+#endif /* NP_DEFAULT_INI_NAGIOS_PATH3 */
+#ifndef NP_DEFAULT_INI_NAGIOS_PATH4
+# define NP_DEFAULT_INI_NAGIOS_PATH4 "/etc/opt/nagios"
+#endif /* NP_DEFAULT_INI_NAGIOS_PATH4 */
+
+/* Config paths not ending in nagios (search for NP_DEFAULT_INI_FILENAME2) */
+#ifndef NP_DEFAULT_INI_PATH1
+# define NP_DEFAULT_INI_PATH1 "/etc"
+#endif /* NP_DEFAULT_INI_PATH1 */
+#ifndef NP_DEFAULT_INI_PATH2
+# define NP_DEFAULT_INI_PATH2 "/usr/local/etc"
+#endif /* NP_DEFAULT_INI_PATH2 */
+#ifndef NP_DEFAULT_INI_PATH3
+# define NP_DEFAULT_INI_PATH3 "/etc/opt"
+#endif /* NP_DEFAULT_INI_PATH3 */
+
+/* np_load_defaults: load the default configuration (if present) for
+ * a plugin from the ini file
+ */
+np_arg_list* np_get_defaults(const char *locator, const char *default_section);
+
+#endif /* _PARSE_INI_H_ */
+
diff -uNr nagios-plugins-1.4.11/lib/tests/config-dos.ini nagios-plugins-1.4.12/lib/tests/config-dos.ini
--- nagios-plugins-1.4.11/lib/tests/config-dos.ini	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/config-dos.ini	2008-03-16 19:10:47.000000000 +0100
@@ -0,0 +1,24 @@
+# This config file is amended from perl's Config::Tiny's testcases
+
+# Line below is allowed in perl's Config::Tiny, but not in our parse_ini.c
+#root=something
+
+[section]
+one=two
+Foo=Bar
+this=Your Mother!
+blank=
+
+[Section Two]
+something else=blah
+ remove = whitespace   	
+
+[ /path/to/file.txt ]
+this=that
+
+[ section2]
+this=that
+
+[section3 ]
+this=that
+
diff -uNr nagios-plugins-1.4.11/lib/tests/config-opts.ini nagios-plugins-1.4.12/lib/tests/config-opts.ini
--- nagios-plugins-1.4.11/lib/tests/config-opts.ini	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/config-opts.ini	2008-03-24 08:02:28.000000000 +0100
@@ -0,0 +1,14 @@
+# This config file is for testing test_opts
+
+[sect1]
+one=two
+
+[check_disk]
+foo=Bar
+this=Your Mother!
+blank=
+
+[sect2]
+something else=oops
+this=that
+
diff -uNr nagios-plugins-1.4.11/lib/tests/config-tiny.ini nagios-plugins-1.4.12/lib/tests/config-tiny.ini
--- nagios-plugins-1.4.11/lib/tests/config-tiny.ini	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/config-tiny.ini	2007-02-07 15:46:50.000000000 +0100
@@ -0,0 +1,24 @@
+# This config file is amended from perl's Config::Tiny's testcases
+
+# Line below is allowed in perl's Config::Tiny, but not in our parse_ini.c
+#root=something
+
+[section]
+one=two
+Foo=Bar
+this=Your Mother!
+blank=
+
+[Section Two]
+something else=blah
+ remove = whitespace   	
+
+[ /path/to/file.txt ]
+this=that
+
+[ section2]
+this=that
+
+[section3 ]
+this=that
+
diff -uNr nagios-plugins-1.4.11/lib/tests/Makefile.am nagios-plugins-1.4.12/lib/tests/Makefile.am
--- nagios-plugins-1.4.11/lib/tests/Makefile.am	2007-12-12 02:27:48.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/Makefile.am	2008-04-02 11:11:44.000000000 +0200
@@ -7,9 +7,11 @@
 
 INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
 
-EXTRA_PROGRAMS = test_utils test_disk test_tcp test_cmd test_base64
+EXTRA_PROGRAMS = test_utils test_disk test_tcp test_cmd test_base64 test_ini test_opts
 
-EXTRA_DIST = test_utils.t test_disk.t test_tcp.t test_cmd.t test_base64.t
+np_test_scripts = test_base64.t test_cmd.t test_disk.t test_ini.t test_opts.t test_tcp.t test_utils.t
+np_test_files = config-dos.ini config-opts.ini config-tiny.ini plugin.ini plugins.ini
+EXTRA_DIST = $(np_test_scripts) $(np_test_files)
 
 LIBS = @LIBINTL@
 
@@ -36,7 +38,17 @@
 test_base64_SOURCES = test_base64.c
 test_base64_CFLAGS = -g -I..
 test_base64_LDFLAGS = -L/usr/local/lib -ltap
-test_base64_LDADD = ../base64.o 
+test_base64_LDADD = $(top_srcdir)/gl/base64.o 
+
+test_ini_SOURCES = test_ini.c
+test_ini_CFLAGS = -g -I..
+test_ini_LDFLAGS = -L/usr/local/lib -ltap
+test_ini_LDADD = ../utils_base.o ../parse_ini.o
+
+test_opts_SOURCES = test_opts.c
+test_opts_CFLAGS = -g -I..
+test_opts_LDFLAGS = -L/usr/local/lib -ltap
+test_opts_LDADD = ../utils_base.o ../parse_ini.o ../extra_opts.o
 
 test: ${noinst_PROGRAMS}
 	perl -MTest::Harness -e '$$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS)
diff -uNr nagios-plugins-1.4.11/lib/tests/Makefile.in nagios-plugins-1.4.12/lib/tests/Makefile.in
--- nagios-plugins-1.4.11/lib/tests/Makefile.in	2007-12-13 23:42:35.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/Makefile.in	2008-05-28 00:05:06.000000000 +0200
@@ -38,41 +38,46 @@
 noinst_PROGRAMS = @EXTRA_TEST@
 check_PROGRAMS = @EXTRA_TEST@
 EXTRA_PROGRAMS = test_utils$(EXEEXT) test_disk$(EXEEXT) \
-	test_tcp$(EXEEXT) test_cmd$(EXEEXT) test_base64$(EXEEXT)
+	test_tcp$(EXEEXT) test_cmd$(EXEEXT) test_base64$(EXEEXT) \
+	test_ini$(EXEEXT) test_opts$(EXEEXT)
 subdir = lib/tests
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
 	$(top_srcdir)/gl/m4/alloca.m4 \
 	$(top_srcdir)/gl/m4/arpa_inet_h.m4 \
-	$(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \
-	$(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \
-	$(top_srcdir)/gl/m4/dos.m4 \
+	$(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \
+	$(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \
+	$(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \
 	$(top_srcdir)/gl/m4/double-slash-root.m4 \
 	$(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \
 	$(top_srcdir)/gl/m4/exitfail.m4 \
 	$(top_srcdir)/gl/m4/extensions.m4 \
 	$(top_srcdir)/gl/m4/fcntl-safer.m4 \
+	$(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \
 	$(top_srcdir)/gl/m4/fstypename.m4 \
 	$(top_srcdir)/gl/m4/fsusage.m4 \
 	$(top_srcdir)/gl/m4/getaddrinfo.m4 \
 	$(top_srcdir)/gl/m4/gethostname.m4 \
 	$(top_srcdir)/gl/m4/getloadavg.m4 \
 	$(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \
+	$(top_srcdir)/gl/m4/glibc21.m4 \
 	$(top_srcdir)/gl/m4/gnulib-common.m4 \
 	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \
-	$(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \
+	$(top_srcdir)/gl/m4/iconv.m4 \
+	$(top_srcdir)/gl/m4/include_next.m4 \
+	$(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \
+	$(top_srcdir)/gl/m4/intlmacosx.m4 \
+	$(top_srcdir)/gl/m4/intmax_t.m4 \
 	$(top_srcdir)/gl/m4/inttypes_h.m4 \
 	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longdouble.m4 \
+	$(top_srcdir)/gl/m4/lib-prefix.m4 \
+	$(top_srcdir)/gl/m4/localcharset.m4 \
 	$(top_srcdir)/gl/m4/longlong.m4 \
 	$(top_srcdir)/gl/m4/ls-mntd-fs.m4 \
-	$(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \
-	$(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \
-	$(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \
+	$(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \
+	$(top_srcdir)/gl/m4/mbstate_t.m4 \
+	$(top_srcdir)/gl/m4/mountlist.m4 \
 	$(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \
 	$(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \
 	$(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \
@@ -82,21 +87,21 @@
 	$(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \
 	$(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \
 	$(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \
-	$(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \
+	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \
+	$(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \
+	$(top_srcdir)/gl/m4/strerror.m4 \
+	$(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \
 	$(top_srcdir)/gl/m4/strnlen.m4 \
 	$(top_srcdir)/gl/m4/sys_socket_h.m4 \
-	$(top_srcdir)/gl/m4/ulonglong.m4 \
 	$(top_srcdir)/gl/m4/unistd-safer.m4 \
 	$(top_srcdir)/gl/m4/unistd_h.m4 \
 	$(top_srcdir)/gl/m4/vasnprintf.m4 \
 	$(top_srcdir)/gl/m4/vasprintf.m4 \
 	$(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \
 	$(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \
-	$(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \
-	$(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \
-	$(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \
+	$(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
@@ -105,13 +110,20 @@
 PROGRAMS = $(noinst_PROGRAMS)
 am_test_base64_OBJECTS = test_base64-test_base64.$(OBJEXT)
 test_base64_OBJECTS = $(am_test_base64_OBJECTS)
-test_base64_DEPENDENCIES = ../base64.o
+test_base64_DEPENDENCIES = $(top_srcdir)/gl/base64.o
 am_test_cmd_OBJECTS = test_cmd-test_cmd.$(OBJEXT)
 test_cmd_OBJECTS = $(am_test_cmd_OBJECTS)
 test_cmd_DEPENDENCIES = ../utils_cmd.o ../utils_base.o
 am_test_disk_OBJECTS = test_disk-test_disk.$(OBJEXT)
 test_disk_OBJECTS = $(am_test_disk_OBJECTS)
 test_disk_DEPENDENCIES = ../utils_disk.o $(top_srcdir)/gl/libgnu.a
+am_test_ini_OBJECTS = test_ini-test_ini.$(OBJEXT)
+test_ini_OBJECTS = $(am_test_ini_OBJECTS)
+test_ini_DEPENDENCIES = ../utils_base.o ../parse_ini.o
+am_test_opts_OBJECTS = test_opts-test_opts.$(OBJEXT)
+test_opts_OBJECTS = $(am_test_opts_OBJECTS)
+test_opts_DEPENDENCIES = ../utils_base.o ../parse_ini.o \
+	../extra_opts.o
 am_test_tcp_OBJECTS = test_tcp-test_tcp.$(OBJEXT)
 test_tcp_OBJECTS = $(am_test_tcp_OBJECTS)
 test_tcp_DEPENDENCIES = ../utils_tcp.o
@@ -130,17 +142,15 @@
 LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(test_base64_SOURCES) $(test_cmd_SOURCES) \
-	$(test_disk_SOURCES) $(test_tcp_SOURCES) $(test_utils_SOURCES)
+	$(test_disk_SOURCES) $(test_ini_SOURCES) $(test_opts_SOURCES) \
+	$(test_tcp_SOURCES) $(test_utils_SOURCES)
 DIST_SOURCES = $(test_base64_SOURCES) $(test_cmd_SOURCES) \
-	$(test_disk_SOURCES) $(test_tcp_SOURCES) $(test_utils_SOURCES)
+	$(test_disk_SOURCES) $(test_ini_SOURCES) $(test_opts_SOURCES) \
+	$(test_tcp_SOURCES) $(test_utils_SOURCES)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 INSTALL = @INSTALL@
-ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
-ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
-ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
-ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -185,27 +195,177 @@
 EXTRA_TEST = @EXTRA_TEST@
 F77 = @F77@
 FFLAGS = @FFLAGS@
+FLOAT_H = @FLOAT_H@
+FLOORF_LIBM = @FLOORF_LIBM@
 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
 GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
 GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
 GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MATHL = @GNULIB_MATHL@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
 GREP = @GREP@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_SETENV = @HAVE_SETENV@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE__BOOL = @HAVE__BOOL@
 HOSTNAME = @HOSTNAME@
+INCLUDE_NEXT = @INCLUDE_NEXT@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -226,6 +386,7 @@
 LIBS = @LIBINTL@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
@@ -239,6 +400,17 @@
 MYSQLLIBS = @MYSQLLIBS@
 NEED_SETGID = @NEED_SETGID@
 NETINET_IN_H = @NETINET_IN_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_MATH_H = @NEXT_MATH_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -277,11 +449,56 @@
 PLUGIN_TEST = @PLUGIN_TEST@
 POSUB = @POSUB@
 POW_LIB = @POW_LIB@
+PST3CFLAGS = @PST3CFLAGS@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 PYTHON = @PYTHON@
 RADIUSLIBS = @RADIUSLIBS@
 RANLIB = @RANLIB@
 RELEASE = @RELEASE@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REV_DATESTAMP = @REV_DATESTAMP@
 REV_TIMESTAMP = @REV_TIMESTAMP@
 SCRIPT_TEST = @SCRIPT_TEST@
@@ -298,9 +515,11 @@
 STRIP = @STRIP@
 SUPPORT = @SUPPORT@
 SYS_SOCKET_H = @SYS_SOCKET_H@
-UNISTD_H = @UNISTD_H@
 USE_NLS = @USE_NLS@
+USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@
+USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@
 VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
 WARRANTY = @WARRANTY@
 WCHAR_H = @WCHAR_H@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
@@ -308,6 +527,7 @@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
@@ -334,6 +554,8 @@
 exec_prefix = @exec_prefix@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -364,7 +586,9 @@
 # These two lines support "make check", but we use "make test"
 TESTS = @EXTRA_TEST@
 INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
-EXTRA_DIST = test_utils.t test_disk.t test_tcp.t test_cmd.t test_base64.t
+np_test_scripts = test_base64.t test_cmd.t test_disk.t test_ini.t test_opts.t test_tcp.t test_utils.t
+np_test_files = config-dos.ini config-opts.ini config-tiny.ini plugin.ini plugins.ini
+EXTRA_DIST = $(np_test_scripts) $(np_test_files)
 test_utils_SOURCES = test_utils.c
 test_utils_CFLAGS = -g -I..
 test_utils_LDFLAGS = -L/usr/local/lib -ltap
@@ -384,7 +608,15 @@
 test_base64_SOURCES = test_base64.c
 test_base64_CFLAGS = -g -I..
 test_base64_LDFLAGS = -L/usr/local/lib -ltap
-test_base64_LDADD = ../base64.o 
+test_base64_LDADD = $(top_srcdir)/gl/base64.o 
+test_ini_SOURCES = test_ini.c
+test_ini_CFLAGS = -g -I..
+test_ini_LDFLAGS = -L/usr/local/lib -ltap
+test_ini_LDADD = ../utils_base.o ../parse_ini.o
+test_opts_SOURCES = test_opts.c
+test_opts_CFLAGS = -g -I..
+test_opts_LDFLAGS = -L/usr/local/lib -ltap
+test_opts_LDADD = ../utils_base.o ../parse_ini.o ../extra_opts.o
 all: all-am
 
 .SUFFIXES:
@@ -441,6 +673,12 @@
 test_disk$(EXEEXT): $(test_disk_OBJECTS) $(test_disk_DEPENDENCIES) 
 	@rm -f test_disk$(EXEEXT)
 	$(LINK) $(test_disk_LDFLAGS) $(test_disk_OBJECTS) $(test_disk_LDADD) $(LIBS)
+test_ini$(EXEEXT): $(test_ini_OBJECTS) $(test_ini_DEPENDENCIES) 
+	@rm -f test_ini$(EXEEXT)
+	$(LINK) $(test_ini_LDFLAGS) $(test_ini_OBJECTS) $(test_ini_LDADD) $(LIBS)
+test_opts$(EXEEXT): $(test_opts_OBJECTS) $(test_opts_DEPENDENCIES) 
+	@rm -f test_opts$(EXEEXT)
+	$(LINK) $(test_opts_LDFLAGS) $(test_opts_OBJECTS) $(test_opts_LDADD) $(LIBS)
 test_tcp$(EXEEXT): $(test_tcp_OBJECTS) $(test_tcp_DEPENDENCIES) 
 	@rm -f test_tcp$(EXEEXT)
 	$(LINK) $(test_tcp_LDFLAGS) $(test_tcp_OBJECTS) $(test_tcp_LDADD) $(LIBS)
@@ -457,6 +695,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_base64-test_base64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmd-test_cmd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_disk-test_disk.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ini-test_ini.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_opts-test_opts.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_tcp-test_tcp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_utils-test_utils.Po@am__quote@
 
@@ -523,6 +763,34 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_disk_CFLAGS) $(CFLAGS) -c -o test_disk-test_disk.obj `if test -f 'test_disk.c'; then $(CYGPATH_W) 'test_disk.c'; else $(CYGPATH_W) '$(srcdir)/test_disk.c'; fi`
 
+test_ini-test_ini.o: test_ini.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_ini_CFLAGS) $(CFLAGS) -MT test_ini-test_ini.o -MD -MP -MF "$(DEPDIR)/test_ini-test_ini.Tpo" -c -o test_ini-test_ini.o `test -f 'test_ini.c' || echo '$(srcdir)/'`test_ini.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/test_ini-test_ini.Tpo" "$(DEPDIR)/test_ini-test_ini.Po"; else rm -f "$(DEPDIR)/test_ini-test_ini.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='test_ini.c' object='test_ini-test_ini.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_ini_CFLAGS) $(CFLAGS) -c -o test_ini-test_ini.o `test -f 'test_ini.c' || echo '$(srcdir)/'`test_ini.c
+
+test_ini-test_ini.obj: test_ini.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_ini_CFLAGS) $(CFLAGS) -MT test_ini-test_ini.obj -MD -MP -MF "$(DEPDIR)/test_ini-test_ini.Tpo" -c -o test_ini-test_ini.obj `if test -f 'test_ini.c'; then $(CYGPATH_W) 'test_ini.c'; else $(CYGPATH_W) '$(srcdir)/test_ini.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/test_ini-test_ini.Tpo" "$(DEPDIR)/test_ini-test_ini.Po"; else rm -f "$(DEPDIR)/test_ini-test_ini.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='test_ini.c' object='test_ini-test_ini.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_ini_CFLAGS) $(CFLAGS) -c -o test_ini-test_ini.obj `if test -f 'test_ini.c'; then $(CYGPATH_W) 'test_ini.c'; else $(CYGPATH_W) '$(srcdir)/test_ini.c'; fi`
+
+test_opts-test_opts.o: test_opts.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_opts_CFLAGS) $(CFLAGS) -MT test_opts-test_opts.o -MD -MP -MF "$(DEPDIR)/test_opts-test_opts.Tpo" -c -o test_opts-test_opts.o `test -f 'test_opts.c' || echo '$(srcdir)/'`test_opts.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/test_opts-test_opts.Tpo" "$(DEPDIR)/test_opts-test_opts.Po"; else rm -f "$(DEPDIR)/test_opts-test_opts.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='test_opts.c' object='test_opts-test_opts.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_opts_CFLAGS) $(CFLAGS) -c -o test_opts-test_opts.o `test -f 'test_opts.c' || echo '$(srcdir)/'`test_opts.c
+
+test_opts-test_opts.obj: test_opts.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_opts_CFLAGS) $(CFLAGS) -MT test_opts-test_opts.obj -MD -MP -MF "$(DEPDIR)/test_opts-test_opts.Tpo" -c -o test_opts-test_opts.obj `if test -f 'test_opts.c'; then $(CYGPATH_W) 'test_opts.c'; else $(CYGPATH_W) '$(srcdir)/test_opts.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/test_opts-test_opts.Tpo" "$(DEPDIR)/test_opts-test_opts.Po"; else rm -f "$(DEPDIR)/test_opts-test_opts.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='test_opts.c' object='test_opts-test_opts.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_opts_CFLAGS) $(CFLAGS) -c -o test_opts-test_opts.obj `if test -f 'test_opts.c'; then $(CYGPATH_W) 'test_opts.c'; else $(CYGPATH_W) '$(srcdir)/test_opts.c'; fi`
+
 test_tcp-test_tcp.o: test_tcp.c
 @am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_tcp_CFLAGS) $(CFLAGS) -MT test_tcp-test_tcp.o -MD -MP -MF "$(DEPDIR)/test_tcp-test_tcp.Tpo" -c -o test_tcp-test_tcp.o `test -f 'test_tcp.c' || echo '$(srcdir)/'`test_tcp.c; \
 @am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/test_tcp-test_tcp.Tpo" "$(DEPDIR)/test_tcp-test_tcp.Po"; else rm -f "$(DEPDIR)/test_tcp-test_tcp.Tpo"; exit 1; fi
diff -uNr nagios-plugins-1.4.11/lib/tests/plugin.ini nagios-plugins-1.4.12/lib/tests/plugin.ini
--- nagios-plugins-1.4.11/lib/tests/plugin.ini	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/plugin.ini	2008-03-16 19:10:47.000000000 +0100
@@ -0,0 +1,21 @@
+
+[check_mysql]
+username=operator
+password=secret		# Remember to change later
+
+[section_twice]
+foo=bar
+
+[check_mysql2]
+u=admin
+p=secret
+
+[section_twice]
+bar=foo
+
+[check space_and_flags]
+foo=bar
+a=
+b=
+bar=
+
diff -uNr nagios-plugins-1.4.11/lib/tests/plugins.ini nagios-plugins-1.4.12/lib/tests/plugins.ini
--- nagios-plugins-1.4.11/lib/tests/plugins.ini	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/plugins.ini	2008-03-26 10:46:27.000000000 +0100
@@ -0,0 +1,7 @@
+
+[check_disk]
+foo=bar
+
+[section1]
+foobar=baz
+
diff -uNr nagios-plugins-1.4.11/lib/tests/test_base64.c nagios-plugins-1.4.12/lib/tests/test_base64.c
--- nagios-plugins-1.4.11/lib/tests/test_base64.c	2007-11-10 00:24:45.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/test_base64.c	2008-02-13 05:07:39.000000000 +0100
@@ -1,25 +1,24 @@
-/******************************************************************************
-
- 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: test_base64.c 1819 2007-11-09 23:24:45Z dermoth $
- 
-******************************************************************************/
+/*****************************************************************************
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: test_base64.c 1927 2008-02-13 04:07:39Z dermoth $
+* 
+*****************************************************************************/
 
 #include "common.h"
-#include "base64.h"
+#include "gl/base64.h"
 #include "tap.h"
 
 int
@@ -249,7 +248,7 @@
 	0x2b,0x00,0x1f,0x0c,0x28,0x59,0x0a,0x16,0x49,0x5a,0x5c,0x64,0x65,0x4b,0x11,0x29,
 	0x15,0x36,0x5a,0x65,0x19,0x4f,0x60,0x23,0x3a,0x3a,0x13,0x25,0x02,0x78,0x4c,0x54
 	};
-  char b64_known[1368] = {
+  char b64_known[1369] = {
 	0x43,0x7a,0x42,0x45,0x59,0x6e,0x77,0x69,0x48,0x77,0x30,0x46,0x5a,0x79,0x77,0x71,
 	0x4f,0x53,0x46,0x47,0x43,0x46,0x42,0x6d,0x4e,0x44,0x63,0x4c,0x52,0x55,0x73,0x34,
 	0x4d,0x67,0x5a,0x36,0x50,0x6e,0x38,0x4d,0x51,0x42,0x68,0x72,0x4c,0x57,0x42,0x4d,
@@ -335,13 +334,13 @@
 	0x48,0x33,0x41,0x41,0x4c,0x6d,0x59,0x55,0x50,0x48,0x38,0x72,0x41,0x42,0x38,0x4d,
 	0x4b,0x46,0x6b,0x4b,0x46,0x6b,0x6c,0x61,0x58,0x47,0x52,0x6c,0x53,0x78,0x45,0x70,
 	0x46,0x54,0x5a,0x61,0x5a,0x52,0x6c,0x50,0x59,0x43,0x4d,0x36,0x4f,0x68,0x4d,0x6c,
-	0x41,0x6e,0x68,0x4d,0x56,0x41,0x3d,0x3d
+	0x41,0x6e,0x68,0x4d,0x56,0x41,0x3d,0x3d,0x00
 	};
 	char *b64_test;
 
 	plan_tests(1);
 
-	b64_test = base64 (random, 1024);
+	base64_encode_alloc (random, 1024, &b64_test);
 
 	ok(strcmp(b64_known, b64_test) == 0,
 	   "Test matching a base64 encoded 1024 bytes random string");
diff -uNr nagios-plugins-1.4.11/lib/tests/test_cmd.c nagios-plugins-1.4.12/lib/tests/test_cmd.c
--- nagios-plugins-1.4.11/lib/tests/test_cmd.c	2007-12-11 13:05:16.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/test_cmd.c	2008-01-30 10:38:37.000000000 +0100
@@ -1,22 +1,21 @@
-/******************************************************************************
-
- 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: test_cmd.c 1732 2007-06-03 15:58:22Z psychotrahe $
- 
-******************************************************************************/
+/*****************************************************************************
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id$
+* 
+*****************************************************************************/
 
 #include "common.h"
 #include "utils_cmd.h"
@@ -51,7 +50,7 @@
 	int c;
 	int result = UNSET;
 
-	plan_tests(50);
+	plan_tests(51);
 
 	diag ("Running plain echo command, set one");
 
@@ -202,7 +201,17 @@
 	ok (chld_err.lines == 1,
 			"...but does give an error line");
 	ok (strstr(chld_err.line[0],"non-existant-file") != NULL, "And missing filename is in error message");
-	ok (result == 127, "Get return code 127 from /bin/sh");
+	ok (result != 0, "Get non-zero return code from /bin/sh");
+
+
+	/* ensure everything is empty again */
+	result = UNSET;
+
+	command = (char *)malloc(COMMAND_LINE);
+  strcpy(command, "/bin/sh -c 'exit 7'");
+  result = cmd_run (command, NULL, NULL, 0);
+
+  ok (result == 7, "Get return code 7 from /bin/sh");
 
 
 	/* ensure everything is empty again */
diff -uNr nagios-plugins-1.4.11/lib/tests/test_disk.c nagios-plugins-1.4.12/lib/tests/test_disk.c
--- nagios-plugins-1.4.11/lib/tests/test_disk.c	2007-09-22 19:40:35.000000000 +0200
+++ nagios-plugins-1.4.12/lib/tests/test_disk.c	2008-01-30 10:38:37.000000000 +0100
@@ -1,22 +1,21 @@
-/******************************************************************************
-
- 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: test_disk.c 1786 2007-09-22 17:40:35Z psychotrahe $
- 
-******************************************************************************/
+/*****************************************************************************
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: test_disk.c 1914 2008-01-30 09:38:37Z dermoth $
+* 
+*****************************************************************************/
 
 #include "common.h"
 #include "utils_disk.h"
diff -uNr nagios-plugins-1.4.11/lib/tests/test_ini.c nagios-plugins-1.4.12/lib/tests/test_ini.c
--- nagios-plugins-1.4.11/lib/tests/test_ini.c	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/test_ini.c	2008-04-04 12:11:22.000000000 +0200
@@ -0,0 +1,114 @@
+/*****************************************************************************
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: test_ini.c 1976 2008-04-04 10:11:22Z dermoth $
+* 
+*****************************************************************************/
+
+#include "common.h"
+#include "utils_base.h"
+#include "parse_ini.h"
+
+#include "tap.h"
+
+void my_free(char *string) {
+	if (string != NULL) {
+		printf("string:\n\t|%s|\n", string);
+		free(string);
+	}
+}
+
+char*
+list2str(np_arg_list *optlst)
+{
+	char *optstr=NULL;
+	np_arg_list *optltmp;
+
+	/* Put everything as a space-separated string */
+	asprintf(&optstr, "");
+	while (optlst) {
+		asprintf(&optstr, "%s%s ", optstr, optlst->arg);
+		optltmp=optlst;
+		optlst=optlst->next;
+		free(optltmp);
+	}
+	/* Strip last whitespace */
+	if (strlen(optstr)>1) optstr[strlen(optstr)-1]='\0';
+
+	return optstr;
+}
+
+int
+main (int argc, char **argv)
+{
+	char *optstr=NULL;
+
+	plan_tests(11);
+
+	optstr=list2str(np_get_defaults("section@./config-tiny.ini", "check_disk"));
+	ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "config-tiny.ini's section as expected");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("@./config-tiny.ini", "section"));
+	ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "Used default section name, without specific");
+	my_free(optstr);
+
+	/*
+	 * This check is expected to die - It's commented so we can eventually put
+	 * it in a separate file for testing the return value
+	 */
+	/* optstr=list2str(np_get_defaults("section_unknown@./config-tiny.ini", "section"));
+	ok( 0, "die if section isn't found");
+	my_free(optstr); */
+
+	optstr=list2str(np_get_defaults("Section Two@./config-tiny.ini", "check_disk"));
+	ok( !strcmp(optstr, "--something else=blah --remove=whitespace"), "config-tiny.ini's Section Two as expected");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("/path/to/file.txt@./config-tiny.ini", "check_disk"));
+	ok( !strcmp(optstr, "--this=that"), "config-tiny.ini's filename as section name");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("section2@./config-tiny.ini", "check_disk"));
+	ok( !strcmp(optstr, "--this=that"), "config-tiny.ini's section2 with whitespace before section name");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("section3@./config-tiny.ini", "check_disk"));
+	ok( !strcmp(optstr, "--this=that"), "config-tiny.ini's section3 with whitespace after section name");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("check_mysql@./plugin.ini", "check_disk"));
+	ok( !strcmp(optstr, "--username=operator --password=secret"), "plugin.ini's check_mysql as expected");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("check_mysql2@./plugin.ini", "check_disk"));
+	ok( !strcmp(optstr, "-u=admin -p=secret"), "plugin.ini's check_mysql2 as expected");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("check space_and_flags@./plugin.ini", "check_disk"));
+	ok( !strcmp(optstr, "--foo=bar -a -b --bar"), "plugin.ini space in stanza and flag arguments");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("Section Two@./config-dos.ini", "check_disk"));
+	ok( !strcmp(optstr, "--something else=blah --remove=whitespace"), "config-dos.ini's Section Two as expected");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("section_twice@./plugin.ini", "check_disk"));
+	ok( !strcmp(optstr, "--foo=bar --bar=foo"), "plugin.ini's section_twice defined twice in the file");
+	my_free(optstr);
+
+	return exit_status();
+}
+
diff -uNr nagios-plugins-1.4.11/lib/tests/test_ini.t nagios-plugins-1.4.12/lib/tests/test_ini.t
--- nagios-plugins-1.4.11/lib/tests/test_ini.t	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/test_ini.t	2008-04-02 11:11:44.000000000 +0200
@@ -0,0 +1,6 @@
+#!/usr/bin/perl
+use Test::More;
+if (! -e "./test_ini") {
+	plan skip_all => "./test_ini not compiled - please install tap library and/or enable parse-ini to test";
+}
+exec "./test_ini";
diff -uNr nagios-plugins-1.4.11/lib/tests/test_opts.c nagios-plugins-1.4.12/lib/tests/test_opts.c
--- nagios-plugins-1.4.11/lib/tests/test_opts.c	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/test_opts.c	2008-04-04 12:11:22.000000000 +0200
@@ -0,0 +1,278 @@
+/*****************************************************************************
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: test_ini.c 1951 2008-03-16 18:10:47Z dermoth $
+* 
+*****************************************************************************/
+
+#include "common.h"
+#include "utils_base.h"
+#include "extra_opts.h"
+
+#include "tap.h"
+
+void my_free(int *argc, char **argv) {
+	int i;
+	printf ("    Arg(%i): ", *argc);
+	for (i=1; i<*argc; i++) printf ("'%s' ", argv[i]);
+	printf ("\n");
+	free(argv);
+	*argc=0;
+}
+
+int array_diff(int i1, char **a1, int i2, char **a2) {
+	int i;
+
+	if (i1 != i2) {
+		printf("    Argument count doesn't match!\n");
+		return 0;
+	}
+	for (i=0; i<=i1; i++) {
+		if (a1[i]==NULL && a2[i]==NULL) continue;
+		if (a1[i]==NULL || a2[i]==NULL) {
+			printf("    Argument # %i null in one array!\n", i);
+			return 0;
+		}
+		if (strcmp(a1[i], a2[i])) {
+			printf("    Argument # %i doesn't match!\n", i);
+			return 0;
+		}
+	}
+	return 1;
+}
+
+int
+main (int argc, char **argv)
+{
+	char **argv_test=NULL, **argv_known=NULL;
+	int i, argc_test;
+
+	plan_tests(9);
+
+	argv_test=(char **)malloc(2*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = NULL;
+	argc_test=1;
+	argv_known=(char **)realloc(argv_known, 2*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
+	ok(array_diff(argc_test, argv_test, 1, argv_known), "No opts, returns correct argv/argc");
+	my_free(&argc_test, argv_test);
+
+	argv_test=(char **)malloc(6*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "arg1";
+	argv_test[2] = "--arg2=val1";
+	argv_test[3] = "--arg3";
+	argv_test[4] = "val2";
+	argv_test[5] = NULL;
+	argc_test=5;
+	argv_known=(char **)realloc(argv_known, 6*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "arg1";
+	argv_known[2] = "--arg2=val1";
+	argv_known[3] = "--arg3";
+	argv_known[4] = "val2";
+	argv_known[5] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
+	ok(array_diff(argc_test, argv_test, 5, argv_known), "No extra opts, verbatim copy of argv");
+	my_free(&argc_test,argv_test);
+
+	argv_test=(char **)malloc(3*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "--extra-opts=@./config-opts.ini";
+	argv_test[2] = NULL;
+	argc_test=2;
+	argv_known=(char **)realloc(argv_known, 5*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "--foo=Bar";
+	argv_known[2] = "--this=Your Mother!";
+	argv_known[3] = "--blank";
+	argv_known[4] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
+	ok(array_diff(argc_test, argv_test, 4, argv_known), "Only extra opts using default section");
+	my_free(&argc_test,argv_test);
+
+	argv_test=(char **)malloc(5*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "--extra-opts=sect1@./config-opts.ini";
+	argv_test[2] = "--extra-opts";
+	argv_test[3] = "sect2@./config-opts.ini";
+	argv_test[4] = NULL;
+	argc_test=4;
+	argv_known=(char **)realloc(argv_known, 5*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "--one=two";
+	argv_known[2] = "--something else=oops";
+	argv_known[3] = "--this=that";
+	argv_known[4] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
+	ok(array_diff(argc_test, argv_test, 4, argv_known), "Only extra opts specified twice");
+	my_free(&argc_test,argv_test);
+
+	argv_test=(char **)malloc(7*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "--arg1=val1";
+	argv_test[2] = "--extra-opts=@./config-opts.ini";
+	argv_test[3] = "--extra-opts";
+	argv_test[4] = "sect1@./config-opts.ini";
+	argv_test[5] = "--arg2";
+	argv_test[6] = NULL;
+	argc_test=6;
+	argv_known=(char **)realloc(argv_known, 8*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "--foo=Bar";
+	argv_known[2] = "--this=Your Mother!";
+	argv_known[3] = "--blank";
+	argv_known[4] = "--one=two";
+	argv_known[5] = "--arg1=val1";
+	argv_known[6] = "--arg2";
+	argv_known[7] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
+	ok(array_diff(argc_test, argv_test, 7, argv_known), "twice extra opts using two sections");
+	my_free(&argc_test,argv_test);
+
+	/* Next three checks dre expected to die. They are commented out as they
+	 * could possibly go in a sepatare test checked for return value.
+	 */
+	/* argv_test=(char **)malloc(6*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "arg1";
+	argv_test[2] = "--extra-opts=missing@./config-opts.ini";
+	argv_test[3] = "--arg3";
+	argv_test[4] = "val2";
+	argv_test[5] = NULL;
+	argc_test=5;
+	argv_known=(char **)realloc(argv_known, 5*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "arg1";
+	argv_known[2] = "--arg3";
+	argv_known[3] = "val2";
+	argv_known[4] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_missing");
+	ok(array_diff(argc_test, argv_test, 4, argv_known), "Missing section 1");
+	my_free(&argc_test,argv_test); */
+
+	/* argv_test=(char **)malloc(7*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "arg1";
+	argv_test[2] = "--extra-opts";
+	argv_test[3] = "missing@./config-opts.ini";
+	argv_test[4] = "--arg3";
+	argv_test[5] = "val2";
+	argv_test[6] = NULL;
+	argc_test=6;
+	argv_known=(char **)realloc(argv_known, 5*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "arg1";
+	argv_known[2] = "--arg3";
+	argv_known[3] = "val2";
+	argv_known[4] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_missing");
+	ok(array_diff(argc_test, argv_test, 4, argv_known), "Missing section 2");
+	my_free(&argc_test,argv_test); */
+
+	/* argv_test=(char **)malloc(6*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "arg1";
+	argv_test[2] = "--extra-opts";
+	argv_test[3] = "--arg3";
+	argv_test[4] = "val2";
+	argv_test[5] = NULL;
+	argc_test=5;
+	argv_known=(char **)realloc(argv_known, 5*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "arg1";
+	argv_known[2] = "--arg3";
+	argv_known[3] = "val2";
+	argv_known[4] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_missing");
+	ok(array_diff(argc_test, argv_test, 4, argv_known), "Missing section 3");
+	my_free(&argc_test,argv_test); */
+
+	setenv("NAGIOS_CONFIG_PATH", ".", 1);
+	argv_test=(char **)malloc(6*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "arg1";
+	argv_test[2] = "--extra-opts";
+	argv_test[3] = "--arg3";
+	argv_test[4] = "val2";
+	argv_test[5] = NULL;
+	argc_test=5;
+	argv_known=(char **)realloc(argv_known, 6*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "--foo=bar";
+	argv_known[2] = "arg1";
+	argv_known[3] = "--arg3";
+	argv_known[4] = "val2";
+	argv_known[5] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
+	ok(array_diff(argc_test, argv_test, 5, argv_known), "Default section 1");
+
+	argv_test=(char **)malloc(3*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "--extra-opts";
+	argv_test[2] = NULL;
+	argc_test=2;
+	argv_known=(char **)realloc(argv_known, 3*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "--foo=bar";
+	argv_known[2] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
+	ok(array_diff(argc_test, argv_test, 2, argv_known), "Default section 2");
+	my_free(&argc_test,argv_test);
+
+	argv_test=(char **)malloc(6*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "arg1";
+	argv_test[2] = "--extra-opts=section1";
+	argv_test[3] = "--arg3";
+	argv_test[4] = "val2";
+	argv_test[5] = NULL;
+	argc_test=5;
+	argv_known=(char **)realloc(argv_known, 6*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "--foobar=baz";
+	argv_known[2] = "arg1";
+	argv_known[3] = "--arg3";
+	argv_known[4] = "val2";
+	argv_known[5] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
+	ok(array_diff(argc_test, argv_test, 5, argv_known), "Default section 3");
+	my_free(&argc_test,argv_test);
+
+	argv_test=(char **)malloc(6*sizeof(char **));
+	argv_test[0] = "prog_name";
+	argv_test[1] = "arg1";
+	argv_test[2] = "--extra-opts";
+	argv_test[3] = "-arg3";
+	argv_test[4] = "val2";
+	argv_test[5] = NULL;
+	argc_test=5;
+	argv_known=(char **)realloc(argv_known, 6*sizeof(char **));
+	argv_known[0] = "prog_name";
+	argv_known[1] = "--foo=bar";
+	argv_known[2] = "arg1";
+	argv_known[3] = "-arg3";
+	argv_known[4] = "val2";
+	argv_known[5] = NULL;
+	argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
+	ok(array_diff(argc_test, argv_test, 5, argv_known), "Default section 4");
+	my_free(&argc_test,argv_test);
+
+	return exit_status();
+}
+
diff -uNr nagios-plugins-1.4.11/lib/tests/test_opts.t nagios-plugins-1.4.12/lib/tests/test_opts.t
--- nagios-plugins-1.4.11/lib/tests/test_opts.t	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/lib/tests/test_opts.t	2008-04-02 11:11:44.000000000 +0200
@@ -0,0 +1,6 @@
+#!/usr/bin/perl
+use Test::More;
+if (! -e "./test_opts") {
+	plan skip_all => "./test_opts not compiled - please install tap library and/or enable parse-ini to test";
+}
+exec "./test_opts";
diff -uNr nagios-plugins-1.4.11/lib/tests/test_tcp.c nagios-plugins-1.4.12/lib/tests/test_tcp.c
--- nagios-plugins-1.4.11/lib/tests/test_tcp.c	2007-06-03 17:58:22.000000000 +0200
+++ nagios-plugins-1.4.12/lib/tests/test_tcp.c	2008-01-30 10:38:37.000000000 +0100
@@ -1,22 +1,21 @@
-/******************************************************************************
-
- 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: test_tcp.c 1732 2007-06-03 15:58:22Z psychotrahe $
- 
-******************************************************************************/
+/*****************************************************************************
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: test_tcp.c 1914 2008-01-30 09:38:37Z dermoth $
+* 
+*****************************************************************************/
 
 #include "common.h"
 #include "utils_tcp.h"
diff -uNr nagios-plugins-1.4.11/lib/tests/test_utils.c nagios-plugins-1.4.12/lib/tests/test_utils.c
--- nagios-plugins-1.4.11/lib/tests/test_utils.c	2006-07-14 01:58:00.000000000 +0200
+++ nagios-plugins-1.4.12/lib/tests/test_utils.c	2008-01-30 10:38:37.000000000 +0100
@@ -1,22 +1,21 @@
-/******************************************************************************
-
- 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: test_utils.c 1452 2006-07-13 23:58:00Z tonvoon $
- 
-******************************************************************************/
+/*****************************************************************************
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: test_utils.c 1914 2008-01-30 09:38:37Z dermoth $
+* 
+*****************************************************************************/
 
 #include "common.h"
 #include "utils_base.h"
diff -uNr nagios-plugins-1.4.11/lib/utils_base.c nagios-plugins-1.4.12/lib/utils_base.c
--- nagios-plugins-1.4.11/lib/utils_base.c	2007-07-29 14:42:05.000000000 +0200
+++ nagios-plugins-1.4.12/lib/utils_base.c	2008-03-11 01:10:23.000000000 +0100
@@ -1,19 +1,34 @@
 /*****************************************************************************
- *
- * utils_base.c
- *
- * Library of useful functions for plugins
- * These functions are tested with libtap. See tests/ directory
- *
- * Copyright (c) 2006 Nagios Plugin Development Team
- * License: GPL
- *
- * $Revision: 1768 $
- * $Date: 2007-07-29 13:42:05 +0100 (Sun, 29 Jul 2007) $
- ****************************************************************************/
+*
+* utils_base.c
+*
+* License: GPL
+* Copyright (c) 2006 Nagios Plugins Development Team
+*
+* Last Modified: $Date: 2008-03-11 00:10:23 +0000 (Tue, 11 Mar 2008) $
+*
+* Library of useful functions for plugins
+* 
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: utils_base.c 1938 2008-03-11 00:10:23Z tonvoon $
+*
+*****************************************************************************/
 
-#include <stdarg.h>
 #include "common.h"
+#include <stdarg.h>
 #include "utils_base.h"
 
 void
@@ -105,10 +120,6 @@
 		}
 	}
 
-	if (*my_thresholds > 0) {	/* Not sure why, but sometimes could be -1 */
-		/* printf("Freeing here: %d\n", *my_thresholds); */
-		free(*my_thresholds);
-	}
 	*my_thresholds = temp_thresholds;
 
 	return 0;
diff -uNr nagios-plugins-1.4.11/lib/utils_cmd.c nagios-plugins-1.4.12/lib/utils_cmd.c
--- nagios-plugins-1.4.11/lib/utils_cmd.c	2007-09-22 01:01:28.000000000 +0200
+++ nagios-plugins-1.4.12/lib/utils_cmd.c	2008-01-30 10:33:43.000000000 +0100
@@ -1,42 +1,43 @@
-/****************************************************************************
- * Nagios run command utilities
- *
- * License: GPL
- * Copyright (c) 2005 nagios-plugins team
- *
- * $Id: utils_cmd.c 1434 2006-06-18 19:36:48Z opensides $
- *
- * Description :
- *
- * A simple interface to executing programs from other programs, using an
- * optimized and safe popen()-like implementation. It is considered safe
- * in that no shell needs to be spawned and the environment passed to the
- * execve()'d program is essentially empty.
- *
- *
- * The code in this file is a derivative of popen.c which in turn was taken
- * from "Advanced Programming for the Unix Environment" by W. Richard Stevens.
- *
- * Care has been taken to make sure the functions are async-safe. The one
- * function which isn't is cmd_init() which it doesn't make sense to
- * call twice anyway, so the api as a whole should be considered async-safe.
- *
- * License Information:
- *
- * 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
+/*****************************************************************************
+*
+* Nagios run command utilities
+*
+* License: GPL
+* Copyright (c) 2005-2006 Nagios Plugins Development Team
+*
+* Last Modified: $Date$
+*
+* Description :
+*
+* A simple interface to executing programs from other programs, using an
+* optimized and safe popen()-like implementation. It is considered safe
+* in that no shell needs to be spawned and the environment passed to the
+* execve()'d program is essentially empty.
+*
+* The code in this file is a derivative of popen.c which in turn was taken
+* from "Advanced Programming for the Unix Environment" by W. Richard Stevens.
+*
+* Care has been taken to make sure the functions are async-safe. The one
+* function which isn't is cmd_init() which it doesn't make sense to
+* call twice anyway, so the api as a whole should be considered async-safe.
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*
+* $Id$
+*
+*****************************************************************************/
 
 #define NAGIOSPLUG_API_C 1
 
diff -uNr nagios-plugins-1.4.11/lib/utils_disk.c nagios-plugins-1.4.12/lib/utils_disk.c
--- nagios-plugins-1.4.11/lib/utils_disk.c	2007-09-22 19:48:33.000000000 +0200
+++ nagios-plugins-1.4.12/lib/utils_disk.c	2008-01-30 10:46:21.000000000 +0100
@@ -1,32 +1,31 @@
-/****************************************************************************
-* Utils for check_disk
-*
+/*****************************************************************************
+* 
+* Library for check_disk
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-09-22 18:48:33 +0100 (Sat, 22 Sep 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-01-30 09:46:21 +0000 (Wed, 30 Jan 2008) $
+* 
 * Description:
-*
+* 
 * This file contains utilities for check_disk. These are tested by libtap
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: utils_disk.c 1787 2007-09-22 17:48:33Z psychotrahe $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: utils_disk.c 1915 2008-01-30 09:46:21Z dermoth $
 * 
 *****************************************************************************/
 
diff -uNr nagios-plugins-1.4.11/lib/utils_tcp.c nagios-plugins-1.4.12/lib/utils_tcp.c
--- nagios-plugins-1.4.11/lib/utils_tcp.c	2007-09-22 19:48:33.000000000 +0200
+++ nagios-plugins-1.4.12/lib/utils_tcp.c	2008-01-30 10:46:21.000000000 +0100
@@ -1,33 +1,32 @@
-/****************************************************************************
-* Utils for check_tcp
-*
+/*****************************************************************************
+* 
+* Library for check_tcp
+* 
 * License: GPL
-* Copyright (c) 1999-2007 nagios-plugins team
-*
-* Last Modified: $Date: 2007-09-22 18:48:33 +0100 (Sat, 22 Sep 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-01-30 09:46:21 +0000 (Wed, 30 Jan 2008) $
+* 
 * Description:
-*
+* 
 * This file contains utilities for check_tcp. These are tested by libtap
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: utils_tcp.c 1787 2007-09-22 17:48:33Z psychotrahe $
-*
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: utils_tcp.c 1915 2008-01-30 09:46:21Z dermoth $
+* 
 *****************************************************************************/
 
 #include "common.h"
diff -uNr nagios-plugins-1.4.11/Makefile.in nagios-plugins-1.4.12/Makefile.in
--- nagios-plugins-1.4.11/Makefile.in	2007-12-13 23:42:36.000000000 +0100
+++ nagios-plugins-1.4.12/Makefile.in	2008-05-28 00:05:08.000000000 +0200
@@ -46,36 +46,40 @@
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
 	$(top_srcdir)/gl/m4/alloca.m4 \
 	$(top_srcdir)/gl/m4/arpa_inet_h.m4 \
-	$(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \
-	$(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \
-	$(top_srcdir)/gl/m4/dos.m4 \
+	$(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \
+	$(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \
+	$(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \
 	$(top_srcdir)/gl/m4/double-slash-root.m4 \
 	$(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \
 	$(top_srcdir)/gl/m4/exitfail.m4 \
 	$(top_srcdir)/gl/m4/extensions.m4 \
 	$(top_srcdir)/gl/m4/fcntl-safer.m4 \
+	$(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \
 	$(top_srcdir)/gl/m4/fstypename.m4 \
 	$(top_srcdir)/gl/m4/fsusage.m4 \
 	$(top_srcdir)/gl/m4/getaddrinfo.m4 \
 	$(top_srcdir)/gl/m4/gethostname.m4 \
 	$(top_srcdir)/gl/m4/getloadavg.m4 \
 	$(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \
+	$(top_srcdir)/gl/m4/glibc21.m4 \
 	$(top_srcdir)/gl/m4/gnulib-common.m4 \
 	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \
-	$(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \
+	$(top_srcdir)/gl/m4/iconv.m4 \
+	$(top_srcdir)/gl/m4/include_next.m4 \
+	$(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \
+	$(top_srcdir)/gl/m4/intlmacosx.m4 \
+	$(top_srcdir)/gl/m4/intmax_t.m4 \
 	$(top_srcdir)/gl/m4/inttypes_h.m4 \
 	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longdouble.m4 \
+	$(top_srcdir)/gl/m4/lib-prefix.m4 \
+	$(top_srcdir)/gl/m4/localcharset.m4 \
 	$(top_srcdir)/gl/m4/longlong.m4 \
 	$(top_srcdir)/gl/m4/ls-mntd-fs.m4 \
-	$(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \
-	$(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \
-	$(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \
+	$(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \
+	$(top_srcdir)/gl/m4/mbstate_t.m4 \
+	$(top_srcdir)/gl/m4/mountlist.m4 \
 	$(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \
 	$(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \
 	$(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \
@@ -85,21 +89,21 @@
 	$(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \
 	$(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \
 	$(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \
-	$(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \
+	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \
+	$(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \
+	$(top_srcdir)/gl/m4/strerror.m4 \
+	$(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \
 	$(top_srcdir)/gl/m4/strnlen.m4 \
 	$(top_srcdir)/gl/m4/sys_socket_h.m4 \
-	$(top_srcdir)/gl/m4/ulonglong.m4 \
 	$(top_srcdir)/gl/m4/unistd-safer.m4 \
 	$(top_srcdir)/gl/m4/unistd_h.m4 \
 	$(top_srcdir)/gl/m4/vasnprintf.m4 \
 	$(top_srcdir)/gl/m4/vasprintf.m4 \
 	$(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \
 	$(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \
-	$(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \
-	$(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \
-	$(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \
+	$(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -130,10 +134,6 @@
 distuninstallcheck_listfiles = find . -type f -print
 distcleancheck_listfiles = find . -type f -print
 INSTALL = @INSTALL@
-ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
-ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
-ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
-ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -178,27 +178,177 @@
 EXTRA_TEST = @EXTRA_TEST@
 F77 = @F77@
 FFLAGS = @FFLAGS@
+FLOAT_H = @FLOAT_H@
+FLOORF_LIBM = @FLOORF_LIBM@
 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
 GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
 GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
 GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MATHL = @GNULIB_MATHL@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
 GREP = @GREP@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_SETENV = @HAVE_SETENV@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE__BOOL = @HAVE__BOOL@
 HOSTNAME = @HOSTNAME@
+INCLUDE_NEXT = @INCLUDE_NEXT@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -219,6 +369,7 @@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
@@ -232,6 +383,17 @@
 MYSQLLIBS = @MYSQLLIBS@
 NEED_SETGID = @NEED_SETGID@
 NETINET_IN_H = @NETINET_IN_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_MATH_H = @NEXT_MATH_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -270,11 +432,56 @@
 PLUGIN_TEST = @PLUGIN_TEST@
 POSUB = @POSUB@
 POW_LIB = @POW_LIB@
+PST3CFLAGS = @PST3CFLAGS@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 PYTHON = @PYTHON@
 RADIUSLIBS = @RADIUSLIBS@
 RANLIB = @RANLIB@
 RELEASE = @RELEASE@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REV_DATESTAMP = @REV_DATESTAMP@
 REV_TIMESTAMP = @REV_TIMESTAMP@
 SCRIPT_TEST = @SCRIPT_TEST@
@@ -291,9 +498,11 @@
 STRIP = @STRIP@
 SUPPORT = @SUPPORT@
 SYS_SOCKET_H = @SYS_SOCKET_H@
-UNISTD_H = @UNISTD_H@
 USE_NLS = @USE_NLS@
+USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@
+USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@
 VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
 WARRANTY = @WARRANTY@
 WCHAR_H = @WCHAR_H@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
@@ -301,6 +510,7 @@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
@@ -327,6 +537,8 @@
 exec_prefix = @exec_prefix@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
diff -uNr nagios-plugins-1.4.11/nagios-plugins.spec nagios-plugins-1.4.12/nagios-plugins.spec
--- nagios-plugins-1.4.11/nagios-plugins.spec	2007-12-13 23:43:49.000000000 +0100
+++ nagios-plugins-1.4.12/nagios-plugins.spec	2008-05-28 00:06:09.000000000 +0200
@@ -1,5 +1,5 @@
 Name: nagios-plugins
-Version: 1.4.11
+Version: 1.4.12
 Release: 1
 Summary: Host/service/network monitoring program plugins for Nagios
 
diff -uNr nagios-plugins-1.4.11/NEWS nagios-plugins-1.4.12/NEWS
--- nagios-plugins-1.4.11/NEWS	2007-12-13 23:39:36.000000000 +0100
+++ nagios-plugins-1.4.12/NEWS	2008-05-28 00:01:05.000000000 +0200
@@ -1,27 +1,55 @@
 This file documents the major additions and syntax changes between releases.
 
+1.4.12 27th May 2008
+	Added ./check_nt -v INSTANCES to count number of instances (Alessandro Ren)
+	New check_icmp -s option to specify the source IP address
+	check_dns now sorts addresses for testing results for more than one returned IP (Matthias Urlichs)
+	Fix segfault in check_ntp_time and (deprecated) check_ntp (Bug #1862300)
+	check_disk should now work with large file systems (2TB+) on all archs that supports it
+	Fixed check_disk disk usage calculation when using --group=NAME (related to bug #1348746)
+	Fix help text of check_ntp* (Bug #1880095)
+	Fix bugs and flaws in best offset server selection of check_ntp_time and (deprecated) check_ntp
+	check_ntp_peer now checks for the LI_ALARM flag
+	Sync to latest Gnulib (includes new floorf function)
+	check_pgsql now successfully builds with postgres lib v8.3 (Bug #1878972)  
+	check_procs now accepts --ereg-argument-array for a regular expression match to the argument array
+	Reverted back to using pst3 for Solaris systems. Fixed issues re: -m64 needed to compile on 64bit systems
+	If applicable, Gettext linked dynamically instead of statically
+	check_dig can now pass arguments to dig by using -A/--dig-arguments (#1874041/#1889453)
+	check_ntp and check_ntp_peer now show proper jitter/stratum thresholds longopts in --help
+	check_dns now allow to repeat -a to match multiple possibly returned address (common with load balancers)
+	check_mysql and check_radius now try clearing password in processlist just like check_mysql_query
+	check_mysql and check_mysql_query now support sockets explicitely (-s, --socket)
+	negate now has the ability to replace the status text as well (-s, --substitute)
+	Added performance data to check_ping (Christian Schneemann)
+	Added support for --extra-opts in all C plugins (disabled by default, see configure --help)
+	Fixed passive option in check_by_ssh
+	On non-skipped stderr, check_by_ssh now returns UNKNOWN or worse (result from command) instead of always UNKNOWN.
+	Fix linking against OpenSSL where libdl is required
+
 1.4.11 13th December 2007
-	Fix check_http regression in 1.4.10 where following redirects to
+	Fixed check_http regression in 1.4.10 where following redirects to
 	  relative URLs on virtual hosts failed if both "-H" and "-I" were used
-	check_ntp now return UNKNOWN instead of WARNING if jitter is unavailable (jitter=-1.000000)
-	  as long as the thresholds range inculde -1. If no offset threshold is specified
+	Merged two new checks that deprecates check_ntp: check_ntp_peer and check_ntp_time.
+	  You should read the --help output so see which one is suitable for you. check_ntp_peer
+	  implement stratum thresholds support (feature request #1703823).
+	check_ntp now returns UNKNOWN instead of WARNING if jitter is unavailable (jitter=-1.000000)
+	  as long as the thresholds range include -1. If no offset threshold is specified
 	  and the offset is unavailable, will return UNKNOWN as well.
 	  NOTE: If jitter thresholds are specified as integers it will return CRITICAL if jitter
 	  is "-1" as the default range starts at 0. See Examples in --help output.
-	Fix broken usage2 in check_snmp and check_cluster
-	check_cluster now accept all valid characters in its thresholds ("-", "@", "~")
-	Merge two new checks that deprecates check_ntp: check_ntp_peer and check_ntp_time.
-	  You should read the --help output so see which one is suitable for you. check_ntp_peer
-	  implement stratum thresholds support (feature request #1703823).
-	Fix check_disk reporting OK if disk usage grows over 100% (bug #1348746).
+	Fixed broken usage2 in check_snmp and check_cluster
+	check_cluster now accepts all valid characters in its thresholds ("-", "@", "~")
+	Fixed check_disk reporting OK if disk usage grows over 100% (bug #1348746).
 	  The problem happens to be in Gnulib but a workaround have been implemented in check_disk.c
-	Fix check_load argument handling when not passing triplets (bug #1831890)
-	Tinderbox builds now run tests in a verbose mode
-	Update to Nagios::Plugin 0.22
+	Fixed check_load argument handling when not passing triplets (bug #1831890)
+	Fixed buffer overflow in check_snmp (CVE-2007-5623)
+	Tinderbox builds now runs tests in a verbose mode
+	Updated Nagios::Plugin to 0.22
 	VPATH problem fixed for compiling plugins-root
 
 1.4.10 28th September 2007
-	Fix check_http buffer overflow vulnerability when following HTTP redirects
+	Fix check_http buffer overflow vulnerability when following HTTP redirects (CVE-2007-5198)
 	check_http now explicitly asks HTTP/1.1 servers to close the connection
 	  after completion of the response
 	Check_ldaps' guessing which secure method to use (starttls vs. ssl on connect)
diff -uNr nagios-plugins-1.4.11/perlmods/Makefile nagios-plugins-1.4.12/perlmods/Makefile
--- nagios-plugins-1.4.11/perlmods/Makefile	2007-12-13 23:43:35.000000000 +0100
+++ nagios-plugins-1.4.12/perlmods/Makefile	2008-05-28 00:06:07.000000000 +0200
@@ -38,36 +38,40 @@
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
 	$(top_srcdir)/gl/m4/alloca.m4 \
 	$(top_srcdir)/gl/m4/arpa_inet_h.m4 \
-	$(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \
-	$(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \
-	$(top_srcdir)/gl/m4/dos.m4 \
+	$(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \
+	$(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \
+	$(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \
 	$(top_srcdir)/gl/m4/double-slash-root.m4 \
 	$(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \
 	$(top_srcdir)/gl/m4/exitfail.m4 \
 	$(top_srcdir)/gl/m4/extensions.m4 \
 	$(top_srcdir)/gl/m4/fcntl-safer.m4 \
+	$(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \
 	$(top_srcdir)/gl/m4/fstypename.m4 \
 	$(top_srcdir)/gl/m4/fsusage.m4 \
 	$(top_srcdir)/gl/m4/getaddrinfo.m4 \
 	$(top_srcdir)/gl/m4/gethostname.m4 \
 	$(top_srcdir)/gl/m4/getloadavg.m4 \
 	$(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \
+	$(top_srcdir)/gl/m4/glibc21.m4 \
 	$(top_srcdir)/gl/m4/gnulib-common.m4 \
 	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \
-	$(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \
+	$(top_srcdir)/gl/m4/iconv.m4 \
+	$(top_srcdir)/gl/m4/include_next.m4 \
+	$(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \
+	$(top_srcdir)/gl/m4/intlmacosx.m4 \
+	$(top_srcdir)/gl/m4/intmax_t.m4 \
 	$(top_srcdir)/gl/m4/inttypes_h.m4 \
 	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longdouble.m4 \
+	$(top_srcdir)/gl/m4/lib-prefix.m4 \
+	$(top_srcdir)/gl/m4/localcharset.m4 \
 	$(top_srcdir)/gl/m4/longlong.m4 \
 	$(top_srcdir)/gl/m4/ls-mntd-fs.m4 \
-	$(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \
-	$(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \
-	$(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \
+	$(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \
+	$(top_srcdir)/gl/m4/mbstate_t.m4 \
+	$(top_srcdir)/gl/m4/mountlist.m4 \
 	$(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \
 	$(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \
 	$(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \
@@ -77,21 +81,21 @@
 	$(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \
 	$(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \
 	$(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \
-	$(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \
+	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \
+	$(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \
+	$(top_srcdir)/gl/m4/strerror.m4 \
+	$(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \
 	$(top_srcdir)/gl/m4/strnlen.m4 \
 	$(top_srcdir)/gl/m4/sys_socket_h.m4 \
-	$(top_srcdir)/gl/m4/ulonglong.m4 \
 	$(top_srcdir)/gl/m4/unistd-safer.m4 \
 	$(top_srcdir)/gl/m4/unistd_h.m4 \
 	$(top_srcdir)/gl/m4/vasnprintf.m4 \
 	$(top_srcdir)/gl/m4/vasprintf.m4 \
 	$(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \
 	$(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \
-	$(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \
-	$(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \
-	$(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \
+	$(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
@@ -101,10 +105,6 @@
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 INSTALL = /usr/bin/install -c 
-ABSOLUTE_STDINT_H = "///usr/include/stdint.h"
-ABSOLUTE_UNISTD_H = "///usr/include/unistd.h"
-ABSOLUTE_WCHAR_H = 
-ABSOLUTE_WCTYPE_H = "///usr/include/wctype.h"
 ACLOCAL = ${SHELL} /tmp/nagiosplug/build-aux/missing --run aclocal-1.9
 ALLOCA = 
 ALLOCA_H = alloca.h
@@ -149,27 +149,177 @@
 EXTRA_TEST = 
 F77 = 
 FFLAGS = 
+FLOAT_H = 
+FLOORF_LIBM = -lm
 GETLOADAVG_LIBS = 
 GETOPT_H = 
+GETTEXT_MACRO_VERSION = 0.17
+GLIBC21 = yes
 GL_COND_LIBTOOL_FALSE = 
 GL_COND_LIBTOOL_TRUE = #
 GMSGFMT = /usr/bin/msgfmt
 GMSGFMT_015 = /usr/bin/msgfmt
+GNULIB_CALLOC_POSIX = 0
+GNULIB_CEILF = 0
+GNULIB_CEILL = 0
+GNULIB_CHOWN = 0
+GNULIB_DUP2 = 0
+GNULIB_FCHDIR = 0
+GNULIB_FFLUSH = 0
+GNULIB_FLOORF = 1
+GNULIB_FLOORL = 0
+GNULIB_FOPEN = 0
+GNULIB_FPRINTF_POSIX = 0
+GNULIB_FREOPEN = 0
+GNULIB_FREXP = 0
+GNULIB_FREXPL = 0
+GNULIB_FSEEK = 0
+GNULIB_FSEEKO = 0
+GNULIB_FTELL = 0
+GNULIB_FTELLO = 0
+GNULIB_FTRUNCATE = 0
+GNULIB_GETCWD = 0
+GNULIB_GETDELIM = 0
+GNULIB_GETLINE = 0
+GNULIB_GETLOGIN_R = 0
+GNULIB_GETPAGESIZE = 0
+GNULIB_GETSUBOPT = 0
+GNULIB_ISFINITE = 0
+GNULIB_LCHOWN = 0
+GNULIB_LDEXPL = 0
+GNULIB_LSEEK = 0
+GNULIB_MALLOC_POSIX = 1
+GNULIB_MATHL = 0
+GNULIB_MBSCASECMP = 0
+GNULIB_MBSCASESTR = 0
+GNULIB_MBSCHR = 0
+GNULIB_MBSCSPN = 0
+GNULIB_MBSLEN = 0
+GNULIB_MBSNCASECMP = 0
+GNULIB_MBSNLEN = 0
+GNULIB_MBSPBRK = 0
+GNULIB_MBSPCASECMP = 0
+GNULIB_MBSRCHR = 0
+GNULIB_MBSSEP = 0
+GNULIB_MBSSPN = 0
+GNULIB_MBSSTR = 0
+GNULIB_MBSTOK_R = 0
+GNULIB_MEMMEM = 0
+GNULIB_MEMPCPY = 0
+GNULIB_MEMRCHR = 0
+GNULIB_MKDTEMP = 0
+GNULIB_MKSTEMP = 0
+GNULIB_PRINTF_POSIX = 0
+GNULIB_PUTENV = 0
+GNULIB_READLINK = 0
+GNULIB_REALLOC_POSIX = 0
+GNULIB_ROUND = 0
+GNULIB_ROUNDF = 0
+GNULIB_ROUNDL = 0
+GNULIB_SETENV = 0
+GNULIB_SIGNBIT = 0
+GNULIB_SLEEP = 0
+GNULIB_SNPRINTF = 1
+GNULIB_SPRINTF_POSIX = 0
+GNULIB_STPCPY = 0
+GNULIB_STPNCPY = 0
+GNULIB_STRCASESTR = 0
+GNULIB_STRCHRNUL = 0
+GNULIB_STRDUP = 1
+GNULIB_STRERROR = 1
+GNULIB_STRNDUP = 1
+GNULIB_STRNLEN = 1
+GNULIB_STRPBRK = 0
+GNULIB_STRSEP = 0
+GNULIB_STRSIGNAL = 0
+GNULIB_STRSTR = 0
+GNULIB_STRTOK_R = 0
+GNULIB_TRUNC = 0
+GNULIB_TRUNCF = 0
+GNULIB_TRUNCL = 0
+GNULIB_UNSETENV = 0
+GNULIB_VASPRINTF = 1
+GNULIB_VFPRINTF_POSIX = 0
+GNULIB_VPRINTF_POSIX = 0
+GNULIB_VSNPRINTF = 1
+GNULIB_VSPRINTF_POSIX = 0
+GNULIB_WCWIDTH = 0
 GREP = /bin/grep
+HAVE_CALLOC_POSIX = 1
+HAVE_DECL_ACOSL = 1
+HAVE_DECL_ASINL = 1
+HAVE_DECL_ATANL = 1
+HAVE_DECL_COSL = 1
+HAVE_DECL_EXPL = 1
+HAVE_DECL_FREXPL = 1
+HAVE_DECL_GETDELIM = 1
+HAVE_DECL_GETLINE = 1
+HAVE_DECL_GETLOGIN_R = 1
+HAVE_DECL_LDEXPL = 1
+HAVE_DECL_LOGL = 1
+HAVE_DECL_MEMMEM = 1
+HAVE_DECL_MEMRCHR = 1
+HAVE_DECL_SINL = 1
+HAVE_DECL_SNPRINTF = 1
+HAVE_DECL_SQRTL = 1
+HAVE_DECL_STRDUP = 1
+HAVE_DECL_STRERROR = 1
+HAVE_DECL_STRNDUP = 1
+HAVE_DECL_STRNLEN = 1
+HAVE_DECL_STRSIGNAL = 1
+HAVE_DECL_STRTOK_R = 1
+HAVE_DECL_TANL = 1
+HAVE_DECL_TRUNC = 1
+HAVE_DECL_TRUNCF = 1
+HAVE_DECL_TRUNCL = 1
+HAVE_DECL_VSNPRINTF = 1
+HAVE_DECL_WCWIDTH = 1
+HAVE_DUP2 = 1
+HAVE_FSEEKO = 1
+HAVE_FTELLO = 1
+HAVE_FTRUNCATE = 1
+HAVE_GETPAGESIZE = 1
+HAVE_GETSUBOPT = 1
 HAVE_INTTYPES_H = 1
+HAVE_ISWCNTRL = 1
 HAVE_LONG_LONG_INT = 1
+HAVE_MALLOC_POSIX = 1
+HAVE_MEMPCPY = 1
+HAVE_MKDTEMP = 1
+HAVE_NETINET_IN_H = 
+HAVE_OS_H = 0
+HAVE_READLINK = 1
+HAVE_REALLOC_POSIX = 1
+HAVE_SETENV = 1
 HAVE_SIGNED_SIG_ATOMIC_T = 1
 HAVE_SIGNED_WCHAR_T = 1
 HAVE_SIGNED_WINT_T = 0
+HAVE_SLEEP = 1
 HAVE_STDINT_H = 1
+HAVE_STPCPY = 1
+HAVE_STPNCPY = 1
+HAVE_STRCASESTR = 1
+HAVE_STRCHRNUL = 1
+HAVE_STRNDUP = 1
+HAVE_STRPBRK = 1
+HAVE_STRSEP = 1
 HAVE_SYS_BITYPES_H = 1
 HAVE_SYS_INTTYPES_H = 0
+HAVE_SYS_PARAM_H = 0
+HAVE_SYS_SOCKET_H = 
 HAVE_SYS_TYPES_H = 1
+HAVE_UNISTD_H = 1
+HAVE_UNSETENV = 1
 HAVE_UNSIGNED_LONG_LONG_INT = 1
+HAVE_VASPRINTF = 1
+HAVE_WCHAR_H = 1
 HAVE_WCTYPE_H = 1
+HAVE_WINSOCK2_H = 
 HAVE_WINT_T = 1
+HAVE_WS2TCPIP_H = 
 HAVE__BOOL = 1
 HOSTNAME = /bin/hostname
+INCLUDE_NEXT = include_next
 INSTALL_DATA = ${INSTALL} -m 644
 INSTALL_PROGRAM = ${INSTALL}
 INSTALL_SCRIPT = ${INSTALL}
@@ -187,9 +337,10 @@
 LIBICONV = -liconv
 LIBINTL = 
 LIBOBJS = 
-LIBS = 
+LIBS = -ldl 
 LIBTOOL = $(SHELL) $(top_builddir)/libtool
 LN_S = ln -s
+LOCALCHARSET_TESTS_ENVIRONMENT = CHARSETALIASDIR="$(top_builddir)/gl"
 LTLIBICONV = -liconv
 LTLIBINTL = 
 LTLIBOBJS = 
@@ -203,13 +354,24 @@
 MYSQLLIBS = 
 NEED_SETGID = false
 NETINET_IN_H = 
+NEXT_FLOAT_H = 
+NEXT_MATH_H = <math.h>
+NEXT_NETINET_IN_H = 
+NEXT_STDINT_H = <stdint.h>
+NEXT_STDIO_H = <stdio.h>
+NEXT_STDLIB_H = <stdlib.h>
+NEXT_STRING_H = <string.h>
+NEXT_SYS_SOCKET_H = 
+NEXT_UNISTD_H = <unistd.h>
+NEXT_WCHAR_H = <wchar.h>
+NEXT_WCTYPE_H = <wctype.h>
 OBJEXT = o
 PACKAGE = nagios-plugins
 PACKAGE_BUGREPORT = 
 PACKAGE_NAME = nagios-plugins
-PACKAGE_STRING = nagios-plugins 1.4.11
+PACKAGE_STRING = nagios-plugins 1.4.12
 PACKAGE_TARNAME = nagios-plugins
-PACKAGE_VERSION = 1.4.11
+PACKAGE_VERSION = 1.4.12
 PATH_SEPARATOR = :
 PATH_TO_APTGET = /usr/bin/apt-get
 PATH_TO_DIG = /usr/bin/dig
@@ -238,16 +400,61 @@
 PGINCLUDE = 
 PGLIBS = 
 PKG_ARCH = unknown
-PLUGIN_TEST = t/check_cluster.t t/check_disk.t t/check_dns.t t/check_dummy.t t/check_fping.t t/check_ftp.t t/check_hpjd.t t/check_http.t t/check_imap.t t/check_jabber.t t/check_load.t t/check_mysql.t t/check_mysql_query.t t/check_nagios.t t/check_ntp.t t/check_ping.t t/check_pop.t t/check_procs.t t/check_smtp.t t/check_snmp.t t/check_swap.t t/check_tcp.t t/check_time.t t/check_udp.t t/check_users.t t/negate.t
+PLUGIN_TEST = t/check_by_ssh.t t/check_cluster.t t/check_disk.t t/check_dns.t t/check_dummy.t t/check_fping.t t/check_ftp.t t/check_hpjd.t t/check_http.t t/check_imap.t t/check_jabber.t t/check_load.t t/check_mysql.t t/check_mysql_query.t t/check_nagios.t t/check_ntp.t t/check_ping.t t/check_pop.t t/check_procs.t t/check_smtp.t t/check_snmp.t t/check_swap.t t/check_tcp.t t/check_time.t t/check_udp.t t/check_users.t t/negate.t
 POSUB = po
 POW_LIB = 
+PST3CFLAGS = 
 PTRDIFF_T_SUFFIX = 
 PYTHON = /usr/bin/python
 RADIUSLIBS = 
 RANLIB = ranlib
 RELEASE = 1
-REV_DATESTAMP = 2007.12.13.22.42
-REV_TIMESTAMP = 20071213224256
+REPLACE_CEILF = 0
+REPLACE_CEILL = 0
+REPLACE_CHOWN = 0
+REPLACE_FCHDIR = 0
+REPLACE_FFLUSH = 0
+REPLACE_FLOORF = 0
+REPLACE_FLOORL = 0
+REPLACE_FOPEN = 0
+REPLACE_FPRINTF = 0
+REPLACE_FREOPEN = 0
+REPLACE_FREXP = 0
+REPLACE_FREXPL = 0
+REPLACE_FSEEK = 0
+REPLACE_FSEEKO = 0
+REPLACE_FTELL = 0
+REPLACE_FTELLO = 0
+REPLACE_GETCWD = 0
+REPLACE_GETLINE = 0
+REPLACE_GETPAGESIZE = 0
+REPLACE_ISFINITE = 0
+REPLACE_LCHOWN = 0
+REPLACE_LDEXPL = 0
+REPLACE_LSEEK = 0
+REPLACE_MEMMEM = 0
+REPLACE_MKSTEMP = 0
+REPLACE_PRINTF = 0
+REPLACE_PUTENV = 0
+REPLACE_ROUND = 0
+REPLACE_ROUNDF = 0
+REPLACE_ROUNDL = 0
+REPLACE_SIGNBIT = 0
+REPLACE_SIGNBIT_USING_GCC = 0
+REPLACE_SNPRINTF = 0
+REPLACE_SPRINTF = 0
+REPLACE_STRCASESTR = 0
+REPLACE_STRERROR = 0
+REPLACE_STRSIGNAL = 0
+REPLACE_STRSTR = 0
+REPLACE_VASPRINTF = 0
+REPLACE_VFPRINTF = 0
+REPLACE_VPRINTF = 0
+REPLACE_VSNPRINTF = 0
+REPLACE_VSPRINTF = 0
+REPLACE_WCWIDTH = 0
+REV_DATESTAMP = 2008.05.27.23.05
+REV_TIMESTAMP = 20080527230527
 SCRIPT_TEST = t/check_file_age.t t/check_rpc.t t/utils.t
 SET_MAKE = 
 SH = /bin/sh
@@ -262,9 +469,11 @@
 STRIP = strip
 SUPPORT = Send email to nagios-users@lists.sourceforge.net if you have questions\nregarding use of this software. To submit patches or suggest improvements,\nsend email to nagiosplug-devel@lists.sourceforge.net.\nPlease include version information with all correspondence (when possible,\nuse output from the --version option of the plugin itself).\n
 SYS_SOCKET_H = 
-UNISTD_H = 
 USE_NLS = yes
-VERSION = 1.4.11
+USE_PARSE_INI_FALSE = 
+USE_PARSE_INI_TRUE = #
+VERSION = 1.4.12
+VOID_UNSETENV = 0
 WARRANTY = The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute\ncopies of the plugins under the terms of the GNU General Public License.\nFor more information about these matters, see the file named COPYING.\n
 WCHAR_H = 
 WCHAR_T_SUFFIX = 
@@ -272,6 +481,7 @@
 WINT_T_SUFFIX = u
 XGETTEXT = /usr/bin/xgettext
 XGETTEXT_015 = /usr/bin/xgettext
+XGETTEXT_EXTRA_OPTIONS =  --flag=error:3:c-format --flag=error_at_line:5:c-format --flag=asprintf:2:c-format --flag=vasprintf:2:c-format
 ac_ct_CC = gcc
 ac_ct_CXX = g++
 ac_ct_F77 = 
@@ -296,8 +506,10 @@
 docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
 dvidir = ${docdir}
 exec_prefix = ${prefix}
-gl_LIBOBJS =  asnprintf.o basename.o c-strtod.o cloexec.o creat-safer.o dirname.o dup-safer.o exitfail.o fd-safer.o fsusage.o mbchar.o mountlist.o open-safer.o pipe-safer.o printf-args.o printf-parse.o safe-read.o safe-write.o strcasecmp.o stripslash.o vasnprintf.o xmalloc.o
-gl_LTLIBOBJS =  asnprintf.lo basename.lo c-strtod.lo cloexec.lo creat-safer.lo dirname.lo dup-safer.lo exitfail.lo fd-safer.lo fsusage.lo mbchar.lo mountlist.lo open-safer.lo pipe-safer.lo printf-args.lo printf-parse.lo safe-read.lo safe-write.lo strcasecmp.lo stripslash.lo vasnprintf.lo xmalloc.lo
+gl_LIBOBJS =  asnprintf.o basename.o c-strtod.o cloexec.o creat-safer.o dirname.o dup-safer.o exitfail.o fd-safer.o fsusage.o mountlist.o open-safer.o pipe-safer.o printf-args.o printf-parse.o regex.o safe-read.o safe-write.o stripslash.o vasnprintf.o xmalloc.o
+gl_LTLIBOBJS =  asnprintf.lo basename.lo c-strtod.lo cloexec.lo creat-safer.lo dirname.lo dup-safer.lo exitfail.lo fd-safer.lo fsusage.lo mountlist.lo open-safer.lo pipe-safer.lo printf-args.lo printf-parse.lo regex.lo safe-read.lo safe-write.lo stripslash.lo vasnprintf.lo xmalloc.lo
+gltests_LIBOBJS = 
+gltests_LTLIBOBJS = 
 host = i686-pc-linux-gnu
 host_alias = 
 host_cpu = i686
diff -uNr nagios-plugins-1.4.11/perlmods/Makefile.in nagios-plugins-1.4.12/perlmods/Makefile.in
--- nagios-plugins-1.4.11/perlmods/Makefile.in	2007-12-13 23:42:35.000000000 +0100
+++ nagios-plugins-1.4.12/perlmods/Makefile.in	2008-05-28 00:05:06.000000000 +0200
@@ -38,36 +38,40 @@
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
 	$(top_srcdir)/gl/m4/alloca.m4 \
 	$(top_srcdir)/gl/m4/arpa_inet_h.m4 \
-	$(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \
-	$(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \
-	$(top_srcdir)/gl/m4/dos.m4 \
+	$(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \
+	$(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \
+	$(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \
 	$(top_srcdir)/gl/m4/double-slash-root.m4 \
 	$(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \
 	$(top_srcdir)/gl/m4/exitfail.m4 \
 	$(top_srcdir)/gl/m4/extensions.m4 \
 	$(top_srcdir)/gl/m4/fcntl-safer.m4 \
+	$(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \
 	$(top_srcdir)/gl/m4/fstypename.m4 \
 	$(top_srcdir)/gl/m4/fsusage.m4 \
 	$(top_srcdir)/gl/m4/getaddrinfo.m4 \
 	$(top_srcdir)/gl/m4/gethostname.m4 \
 	$(top_srcdir)/gl/m4/getloadavg.m4 \
 	$(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \
+	$(top_srcdir)/gl/m4/glibc21.m4 \
 	$(top_srcdir)/gl/m4/gnulib-common.m4 \
 	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \
-	$(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \
+	$(top_srcdir)/gl/m4/iconv.m4 \
+	$(top_srcdir)/gl/m4/include_next.m4 \
+	$(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \
+	$(top_srcdir)/gl/m4/intlmacosx.m4 \
+	$(top_srcdir)/gl/m4/intmax_t.m4 \
 	$(top_srcdir)/gl/m4/inttypes_h.m4 \
 	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longdouble.m4 \
+	$(top_srcdir)/gl/m4/lib-prefix.m4 \
+	$(top_srcdir)/gl/m4/localcharset.m4 \
 	$(top_srcdir)/gl/m4/longlong.m4 \
 	$(top_srcdir)/gl/m4/ls-mntd-fs.m4 \
-	$(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \
-	$(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \
-	$(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \
+	$(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \
+	$(top_srcdir)/gl/m4/mbstate_t.m4 \
+	$(top_srcdir)/gl/m4/mountlist.m4 \
 	$(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \
 	$(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \
 	$(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \
@@ -77,21 +81,21 @@
 	$(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \
 	$(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \
 	$(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \
-	$(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \
+	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \
+	$(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \
+	$(top_srcdir)/gl/m4/strerror.m4 \
+	$(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \
 	$(top_srcdir)/gl/m4/strnlen.m4 \
 	$(top_srcdir)/gl/m4/sys_socket_h.m4 \
-	$(top_srcdir)/gl/m4/ulonglong.m4 \
 	$(top_srcdir)/gl/m4/unistd-safer.m4 \
 	$(top_srcdir)/gl/m4/unistd_h.m4 \
 	$(top_srcdir)/gl/m4/vasnprintf.m4 \
 	$(top_srcdir)/gl/m4/vasprintf.m4 \
 	$(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \
 	$(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \
-	$(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \
-	$(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \
-	$(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \
+	$(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
@@ -101,10 +105,6 @@
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 INSTALL = @INSTALL@
-ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
-ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
-ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
-ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -149,27 +149,177 @@
 EXTRA_TEST = @EXTRA_TEST@
 F77 = @F77@
 FFLAGS = @FFLAGS@
+FLOAT_H = @FLOAT_H@
+FLOORF_LIBM = @FLOORF_LIBM@
 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
 GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
 GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
 GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MATHL = @GNULIB_MATHL@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
 GREP = @GREP@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_SETENV = @HAVE_SETENV@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE__BOOL = @HAVE__BOOL@
 HOSTNAME = @HOSTNAME@
+INCLUDE_NEXT = @INCLUDE_NEXT@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -190,6 +340,7 @@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
@@ -203,6 +354,17 @@
 MYSQLLIBS = @MYSQLLIBS@
 NEED_SETGID = @NEED_SETGID@
 NETINET_IN_H = @NETINET_IN_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_MATH_H = @NEXT_MATH_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -241,11 +403,56 @@
 PLUGIN_TEST = @PLUGIN_TEST@
 POSUB = @POSUB@
 POW_LIB = @POW_LIB@
+PST3CFLAGS = @PST3CFLAGS@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 PYTHON = @PYTHON@
 RADIUSLIBS = @RADIUSLIBS@
 RANLIB = @RANLIB@
 RELEASE = @RELEASE@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REV_DATESTAMP = @REV_DATESTAMP@
 REV_TIMESTAMP = @REV_TIMESTAMP@
 SCRIPT_TEST = @SCRIPT_TEST@
@@ -262,9 +469,11 @@
 STRIP = @STRIP@
 SUPPORT = @SUPPORT@
 SYS_SOCKET_H = @SYS_SOCKET_H@
-UNISTD_H = @UNISTD_H@
 USE_NLS = @USE_NLS@
+USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@
+USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@
 VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
 WARRANTY = @WARRANTY@
 WCHAR_H = @WCHAR_H@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
@@ -272,6 +481,7 @@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
@@ -298,6 +508,8 @@
 exec_prefix = @exec_prefix@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
diff -uNr nagios-plugins-1.4.11/pkg/solaris/pkginfo nagios-plugins-1.4.12/pkg/solaris/pkginfo
--- nagios-plugins-1.4.11/pkg/solaris/pkginfo	2007-12-13 23:43:35.000000000 +0100
+++ nagios-plugins-1.4.12/pkg/solaris/pkginfo	2008-05-28 00:06:07.000000000 +0200
@@ -2,11 +2,11 @@
 NAME="nagios-plugins"
 DESC="Nagios network monitoring plugins"
 ARCH="unknown"
-VERSION="1.4.11,REV=2007.12.13.22.42"
+VERSION="1.4.12,REV=2008.05.27.23.05"
 CATEGORY="application"
 VENDOR="Nagios Plugin Development Team"
 EMAIL="nagiosplug-devel@lists.sourceforge.net"
-PSTAMP="nag20071213224256"
+PSTAMP="nag20080527230527"
 BASEDIR="/"
 CLASSES="none"
 
diff -uNr nagios-plugins-1.4.11/plugins/check_apt.c nagios-plugins-1.4.12/plugins/check_apt.c
--- nagios-plugins-1.4.11/plugins/check_apt.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_apt.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,43 +1,41 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_apt plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Original author: sean finney
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2006-2008 Nagios Plugins Development Team
+* 
+* Original author: Sean Finney
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_apt plugin
 * 
-* check for available updates in apt package management systems
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* Check for available updates in apt package management systems
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_apt.c 1590 2007-01-28 21:46:41Z hweiss $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_apt.c 1991 2008-05-07 10:02:42Z dermoth $
 * 
-******************************************************************************/
+*****************************************************************************/
 
 const char *progname = "check_apt";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2006-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -90,6 +88,9 @@
 int main (int argc, char **argv) {
 	int result=STATE_UNKNOWN, packages_available=0, sec_count=0;
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts(&argc, argv, progname);
+
 	if (process_arguments(argc, argv) == ERROR)
 		usage_va(_("Could not parse arguments"));
 
@@ -404,9 +405,9 @@
 print_help (void)
 {
   print_revision(progname, revision);
-  
+
   printf(_(COPYRIGHT), copyright, email);
-  
+
   printf("%s\n", _("This plugin checks for software updates on systems that use"));
   printf("%s\n", _("package management systems based on the apt-get(8) command"));
   printf("%s\n", _("found in Debian GNU/Linux"));
@@ -414,11 +415,12 @@
   printf ("\n\n");
 
   print_usage();
-  
+
   printf(_(UT_HELP_VRSN));
-  
+  printf(_(UT_EXTRA_OPTS));
+
   printf(_(UT_TIMEOUT), timeout_interval);
-  
+
   printf (" %s\n", "-U, --upgrade=OPTS");
   printf ("    %s\n", _("[Default] Perform an upgrade.  If an optional OPTS argument is provided,"));
   printf ("    %s\n", _("apt-get will be run with these command line options instead of the"));
@@ -447,17 +449,25 @@
   printf ("    %s\n", _("upgrades for Debian and Ubuntu:"));
   printf ("    \t\%s\n", SECURITY_RE);
   printf ("    %s\n", _("Note that the package must first match the include list before its"));
-  printf ("    %s\n\n\n", _("information is compared against the critical list."));
-  
+  printf ("    %s\n\n", _("information is compared against the critical list."));
+
   printf ("%s\n\n", _("The following options require root privileges and should be used with care:"));
   printf (" %s\n", "-u, --update=OPTS");
   printf ("    %s\n", _("First perform an 'apt-get update'.  An optional OPTS parameter overrides"));
   printf ("    %s\n", _("the default options.  Note: you may also need to adjust the global"));
   printf ("    %s\n", _("timeout (with -t) to prevent the plugin from timing out if apt-get"));
   printf ("    %s\n", _("upgrade is expected to take longer than the default timeout."));
+
+#ifdef NP_EXTRA_OPTS
+  printf("\n");
+  printf("%s\n", _("Notes:"));
+  printf(_(UT_EXTRA_OPTS_NOTES));
+#endif
+
+  printf(_(UT_SUPPORT));
 }
 
-  
+
 /* simple usage heading */
 void
 print_usage(void)
diff -uNr nagios-plugins-1.4.11/plugins/check_by_ssh.c nagios-plugins-1.4.12/plugins/check_by_ssh.c
--- nagios-plugins-1.4.11/plugins/check_by_ssh.c	2007-09-23 14:26:03.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_by_ssh.c	2008-05-27 23:31:13.000000000 +0200
@@ -1,39 +1,37 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_by_ssh plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-09-23 13:26:03 +0100 (Sun, 23 Sep 2007) $
-*
+* Copyright (c) 2000-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-27 22:31:13 +0100 (Tue, 27 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_by_ssh plugin
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_by_ssh.c 1792 2007-09-23 12:26:03Z psychotrahe $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_by_ssh.c 2002 2008-05-27 21:31:13Z tonvoon $
 * 
-******************************************************************************/
- 
+*****************************************************************************/
+
 const char *progname = "check_by_ssh";
-const char *revision = "$Revision: 1792 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 2002 $";
+const char *copyright = "2000-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -78,6 +76,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	/* process arguments */
 	if (process_arguments (argc, argv) == ERROR)
 		usage_va(_("Could not parse arguments"));
@@ -99,11 +100,11 @@
 	if (skip_stderr == -1) /* --skip-stderr specified without argument */
 		skip_stderr = chld_err.lines;
 
-	/* UNKNOWN if (non-skipped) output found on stderr */
+	/* UNKNOWN or worse if (non-skipped) output found on stderr */
 	if(chld_err.lines > skip_stderr) {
 		printf (_("Remote command execution failed: %s\n"),
 		        chld_err.line[skip_stderr]);
-		return STATE_UNKNOWN;
+		return max_state_alt(result, STATE_UNKNOWN);
 	}
 
 	/* this is simple if we're not supposed to be passive.
@@ -132,21 +133,20 @@
 	local_time = time (NULL);
 	commands = 0;
 	for(i = skip_stdout; i < chld_out.lines; i++) {
-		status_text = strstr (chld_out.line[i], "STATUS CODE: ");
-		if (status_text == NULL) {
-			printf ("%s", chld_out.line[i]);
-			return result;
-		}
+		status_text = chld_out.line[i++];
+		if (i == chld_out.lines || strstr (chld_out.line[i], "STATUS CODE: ") == NULL)
+			die (STATE_UNKNOWN, _("%s: Error parsing output\n"), progname);
+
 		if (service[commands] && status_text
-			&& sscanf (status_text, "STATUS CODE: %d", &cresult) == 1)
+			&& sscanf (chld_out.line[i], "STATUS CODE: %d", &cresult) == 1)
 		{
 			fprintf (fp, "[%d] PROCESS_SERVICE_CHECK_RESULT;%s;%s;%d;%s\n",
 			         (int) local_time, host_shortname, service[commands++],
-			         cresult, chld_out.line[i]);
+			         cresult, status_text);
 		}
 	}
 	
-	/* force an OK state */
+	/* Multiple commands and passive checking should always return OK */
 	return result;
 }
 
@@ -307,7 +307,7 @@
 				asprintf (&remotecmd, "%s", argv[c]);
 	}
 
-	if (commands > 1)
+	if (commands > 1 || passive)
 		asprintf (&remotecmd, "%s;echo STATUS CODE: $?;", remotecmd);
 
 	if (remotecmd == NULL || strlen (remotecmd) <= 1)
@@ -347,11 +347,13 @@
 	printf (_("This plugin uses SSH to execute commands on a remote host"));
 
   printf ("\n\n");
-  
+
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
 
+	printf (_(UT_EXTRA_OPTS));
+
 	printf (_(UT_HOST_PORT), 'p', "none");
 
 	printf (_(UT_IPv46));
@@ -365,7 +367,7 @@
   printf (" %s\n", "-E, --skip-stderr[=n]");
   printf ("    %s\n", _("Ignore all or (if specified) first n lines on STDERR [optional]"));
   printf (" %s\n", "-f");
-  printf ("    %s\n", _("tells ssh to fork rather than create a tty [optional]"));
+  printf ("    %s\n", _("tells ssh to fork rather than create a tty [optional]. This will always return OK if ssh is executed"));
   printf (" %s\n","-C, --command='COMMAND STRING'");
   printf ("    %s\n", _("command to execute on the remote machine"));
   printf (" %s\n","-l, --logname=USERNAME");
@@ -384,6 +386,8 @@
   printf ("    %s\n", _("Tell ssh to suppress warning and diagnostic messages [optional]"));
 	printf (_(UT_WARN_CRIT));
 	printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
+	printf (_(UT_VERBOSE));
+	printf("\n");
   printf (" %s\n", _("The most common mode of use is to refer to a local identity file with"));
   printf (" %s\n", _("the '-i' option. In this mode, the identity pair should have a null"));
   printf (" %s\n", _("passphrase and the public key should be listed in the authorized_keys"));
@@ -391,6 +395,7 @@
   printf (" %s\n", _("only one command on the remote server. If the remote SSH server tracks"));
   printf (" %s\n", _("invocation arguments, the one remote program may be an agent that can"));
   printf (" %s\n", _("execute additional commands as proxy"));
+  printf("\n");
   printf (" %s\n", _("To use passive mode, provide multiple '-C' options, and provide"));
   printf (" %s\n", _("all of -O, -s, and -n options (servicelist order must match '-C'options)"));
   printf ("\n");
@@ -400,8 +405,14 @@
   printf (" %s\n", "[1080933700] PROCESS_SERVICE_CHECK_RESULT;flint;c1;0; up 2 days");
   printf (" %s\n", "[1080933700] PROCESS_SERVICE_CHECK_RESULT;flint;c2;0; up 2 days");
   printf (" %s\n", "[1080933700] PROCESS_SERVICE_CHECK_RESULT;flint;c3;0; up 2 days");
-	printf (_(UT_VERBOSE));
-	printf (_(UT_SUPPORT));
+
+#ifdef NP_EXTRA_OPTS
+	printf("\n");
+	printf("%s\n", _("Notes:"));
+	printf(_(UT_EXTRA_OPTS_NOTES));
+#endif
+
+	printf(_(UT_SUPPORT));
 }
 
 
diff -uNr nagios-plugins-1.4.11/plugins/check_cluster.c nagios-plugins-1.4.12/plugins/check_cluster.c
--- nagios-plugins-1.4.11/plugins/check_cluster.c	2007-12-11 06:57:35.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_cluster.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,35 +1,34 @@
 /*****************************************************************************
- *
- * CHECK_CLUSTER2.C - Host and Service Cluster Plugin for Nagios 2.x
- *
- * Copyright (c) 2000-2004 Ethan Galstad (nagios@nagios.org)
- * Copyright (c) 2007 nagios-plugins team
- * License: GPL
- * Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
- *
- * License Information:
- *
- * 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: check_cluster.c 1861 2007-12-11 05:57:35Z dermoth $
- * 
-******************************************************************************/
+* 
+* check_cluster.c - Host and Service Cluster Plugin for Nagios 2.x
+* 
+* License: GPL
+* Copyright (c) 2000-2004 Ethan Galstad (nagios@nagios.org)
+* Copyright (c) 2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_cluster.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_cluster";
-const char *revision = "$Revision: 1861 $";
-const char *copyright = "2007";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -75,6 +74,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts(&argc, argv, progname);
+
 	if(process_arguments(argc,argv)==ERROR)
 		usage(_("Could not parse arguments"));
 
@@ -237,6 +239,7 @@
 
 	printf("\n");
 	printf("%s\n", _("Options:"));
+	printf(_(UT_EXTRA_OPTS));
 	printf (" %s\n", "-s, --service");
 	printf ("    %s\n", _("Check service cluster status"));
 	printf (" %s\n", "-h, --host");
@@ -257,12 +260,13 @@
 
 	printf("\n");
 	printf("%s\n", _("Notes:"));
-	printf(" %s\n", _("See:"));
-	printf(" %s\n", ("http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT"));
-	printf(" %s\n", _("for THRESHOLD format and examples."));
+	printf(_(UT_THRESHOLDS_NOTES));
+#ifdef NP_EXTRA_OPTS
+	printf ("\n");
+	printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf(_(UT_SUPPORT));
-	printf("\n");
 }
 
 
diff -uNr nagios-plugins-1.4.11/plugins/check_dig.c nagios-plugins-1.4.12/plugins/check_dig.c
--- nagios-plugins-1.4.11/plugins/check_dig.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_dig.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,34 +1,32 @@
 /*****************************************************************************
-*
+* 
 * Nagios check_dig plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2002-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_dig plugin
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_dig.c 1590 2007-01-28 21:46:41Z hweiss $
-*
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_dig.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
 *****************************************************************************/
 
 /* Hackers note:
@@ -38,8 +36,8 @@
  *  because on some architectures those strings are in non-writable memory */
 
 const char *progname = "check_dig";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2002-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2002-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -59,6 +57,7 @@
 char *record_type = "A";
 char *expected_address = NULL;
 char *dns_server = NULL;
+char *dig_args = "";
 int verbose = FALSE;
 int server_port = DEFAULT_PORT;
 double warning_interval = UNDEFINED;
@@ -85,12 +84,15 @@
   if (signal (SIGALRM, popen_timeout_alarm_handler) == SIG_ERR)
     usage_va(_("Cannot catch SIGALRM"));
 
+  /* Parse extra opts if any */
+  argv=np_extra_opts (&argc, argv, progname);
+
   if (process_arguments (argc, argv) == ERROR)
     usage_va(_("Could not parse arguments"));
 
   /* get the command to run */
-  asprintf (&command_line, "%s @%s -p %d %s -t %s",
-            PATH_TO_DIG, dns_server, server_port, query_address, record_type);
+  asprintf (&command_line, "%s @%s -p %d %s -t %s %s",
+            PATH_TO_DIG, dns_server, server_port, query_address, record_type, dig_args);
 
   alarm (timeout_interval);
   gettimeofday (&tv, NULL);
@@ -192,6 +194,7 @@
     {"warning", required_argument, 0, 'w'},
     {"critical", required_argument, 0, 'c'},
     {"timeout", required_argument, 0, 't'},
+    {"dig-arguments", required_argument, 0, 'A'},
     {"verbose", no_argument, 0, 'v'},
     {"version", no_argument, 0, 'V'},
     {"help", no_argument, 0, 'h'},
@@ -205,7 +208,7 @@
     return ERROR;
 
   while (1) {
-    c = getopt_long (argc, argv, "hVvt:l:H:w:c:T:p:a:", longopts, &option);
+    c = getopt_long (argc, argv, "hVvt:l:H:w:c:T:p:a:A:", longopts, &option);
 
     if (c == -1 || c == EOF)
       break;
@@ -256,6 +259,9 @@
         usage_va(_("Timeout interval must be a positive integer - %s"), optarg);
       }
       break;
+    case 'A':                 /* dig arguments */
+      dig_args = strdup(optarg);
+      break;
     case 'v':                 /* verbose */
       verbose = TRUE;
       break;
@@ -314,17 +320,34 @@
 
   printf (_(UT_HELP_VRSN));
 
+  printf (_(UT_EXTRA_OPTS));
+
   printf (_(UT_HOST_PORT), 'p', myport);
 
-  printf (" %s\n","-l, --lookup=STRING");
-  printf ("    %s\n",_("machine name to lookup"));
+  printf (" %s\n","-l, --query_address=STRING");
+  printf ("    %s\n",_("Machine name to lookup"));
   printf (" %s\n","-T, --record_type=STRING");
-  printf ("    %s\n",_("record type to lookup (default: A)"));
+  printf ("    %s\n",_("Record type to lookup (default: A)"));
   printf (" %s\n","-a, --expected_address=STRING");
-  printf ("    %s\n",_("an address expected to be in the answer section.if not set, uses whatever was in -l"));
+  printf ("    %s\n",_("An address expected to be in the answer section. If not set, uses whatever"));
+  printf ("    %s\n",_("was in -l"));
+  printf (" %s\n","-A, --dig-arguments=STRING");
+  printf ("    %s\n",_("Pass STRING as argument(s) to dig"));
   printf (_(UT_WARN_CRIT));
   printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
   printf (_(UT_VERBOSE));
+
+  printf ("\n");
+  printf ("%s\n", _("Examples:"));
+  printf (" %s\n", "check_dig -H DNSSERVER -l www.example.com -A \"+tcp\"");
+  printf (" %s\n", "This will send a tcp query to DNSSERVER for www.example.com");
+
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
   printf (_(UT_SUPPORT));
 }
 
@@ -334,7 +357,7 @@
 print_usage (void)
 {
   printf (_("Usage:"));
-  printf ("%s -H host -l lookup [-p <server port>] [-T <query type>]", progname);
-  printf (" [-w <warning interval>] [-c <critical interval>] [-t <timeout>]");
-  printf (" [-a <expected answer address>] [-v]\n");
+  printf ("%s -H <host> -l <query_address> [-p <server port>]\n", progname);
+  printf (" [-T <query type>] [-w <warning interval>] [-c <critical interval>]\n");
+  printf (" [-t <timeout>] [-a <expected answer address>] [-v]\n");
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_disk.c nagios-plugins-1.4.12/plugins/check_disk.c
--- nagios-plugins-1.4.11/plugins/check_disk.c	2007-12-08 17:34:05.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_disk.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,40 +1,38 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_disk plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-08 16:34:05 +0000 (Sat, 08 Dec 2007) $
-*
+* Copyright (c) 1999-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_disk plugin
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_disk.c 1848 2007-12-08 16:34:05Z dermoth $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_disk.c 1991 2008-05-07 10:02:42Z dermoth $
 * 
 *****************************************************************************/
 
 const char *progname = "check_disk";
 const char *program_name = "check_disk";  /* Required for coreutils libs */
-const char *revision = "$Revision: 1848 $";
-const char *copyright = "1999-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1999-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 
@@ -194,6 +192,9 @@
 
   mount_list = read_file_system_list (0);
 
+  /* Parse extra opts if any */
+  argv = np_extra_opts (&argc, argv, progname);
+
   if (process_arguments (argc, argv) == ERROR)
     usage4 (_("Could not parse arguments"));
 
@@ -222,7 +223,7 @@
 
     temp_list = temp_list->name_next;
   }
-  
+
   /* Process for every path in list */
   for (path = path_select_list; path; path=path->name_next) {
 
@@ -256,7 +257,7 @@
 
         for (temp_list = path_select_list; temp_list; temp_list=temp_list->name_next) {
           if (temp_list->group && ! (strcmp(temp_list->group, path->group))) {
-            
+
             stat_path(path);
             get_fs_usage (temp_list->best_match->me_mountdir, temp_list->best_match->me_devname, &tmpfsp);
 
@@ -265,10 +266,11 @@
                                 (fsp.fsu_blocks + tmpfsp.fsu_blocks);  /* Size of a block.  */
             fsp.fsu_blocks    += tmpfsp.fsu_blocks;     /* Total blocks. */
             fsp.fsu_bfree     += tmpfsp.fsu_bfree;      /* Free blocks available to superuser. */
-            fsp.fsu_bavail    += tmpfsp.fsu_bavail;     /* Free blocks available to non-superuser. */
+            /* Gnulib workaround - see comment about it a few lines below */
+            fsp.fsu_bavail    += (tmpfsp.fsu_bavail > tmpfsp.fsu_bfree ? 0 : tmpfsp.fsu_bavail); /* Free blocks available to non-superuser. */
             fsp.fsu_files     += tmpfsp.fsu_files;      /* Total file nodes. */
             fsp.fsu_ffree     += tmpfsp.fsu_ffree;      /* Free file nodes. */
-            
+
             if (verbose > 3)
               printf("Group %s: add %llu blocks (%s) \n", path->group, tmpfsp.fsu_bavail, temp_list->name);
              /* printf("Group %s: add %u blocks (%s)\n", temp_list->name); *//* path->group, tmpfsp.fsu_bavail, temp_list->name); */
@@ -319,7 +321,7 @@
         me->me_mountdir, total, available, available_to_root, used, fsp.fsu_files, fsp.fsu_ffree);
 
       dused_pct = calculate_percent( used, used + available );	/* used + available can never be > uintmax */
-     
+
       dfree_pct = 100 - dused_pct;
       dused_units = used*fsp.fsu_blocksize/mult;
       dfree_units = available*fsp.fsu_blocksize/mult;
@@ -386,10 +388,10 @@
       asprintf (&perf, "%s %s", perf,
                 perfdata ((!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir,
                           dused_units, units,
-			  (warning_high_tide != UINT_MAX ? TRUE : FALSE), warning_high_tide,
-			  (critical_high_tide != UINT_MAX ? TRUE : FALSE), critical_high_tide,
-			  TRUE, 0,
-			  TRUE, dtotal_units));
+                          (warning_high_tide != UINT_MAX ? TRUE : FALSE), warning_high_tide,
+                          (critical_high_tide != UINT_MAX ? TRUE : FALSE), critical_high_tide,
+                          TRUE, 0,
+                          TRUE, dtotal_units));
 
       if (disk_result==STATE_OK && erronly && !verbose)
         continue;
@@ -475,8 +477,6 @@
     {"iwarning", required_argument, 0, 'W'},
     /* Dang, -C is taken. We might want to reshuffle this. */
     {"icritical", required_argument, 0, 'K'},
-    {"local", required_argument, 0, 'l'},
-    {"stat-remote-fs", required_argument, 0, 'L'},
     {"kilobytes", required_argument, 0, 'k'},
     {"megabytes", required_argument, 0, 'm'},
     {"units", required_argument, 0, 'u'},
@@ -493,6 +493,8 @@
     {"ignore-ereg-partition", required_argument, 0, 'i'},
     {"ignore-eregi-path", required_argument, 0, 'I'},
     {"ignore-eregi-partition", required_argument, 0, 'I'},
+    {"local", no_argument, 0, 'l'},
+    {"stat-remote-fs", no_argument, 0, 'L'},
     {"mountpoint", no_argument, 0, 'M'},
     {"errors-only", no_argument, 0, 'e'},
     {"exact-match", no_argument, 0, 'E'},
@@ -540,7 +542,7 @@
         }
       } else {
         if (*optarg == '@') {
-	  warn_freespace_units = optarg;
+          warn_freespace_units = optarg;
         } else {
           asprintf(&warn_freespace_units, "@%s", optarg);
         }
@@ -684,12 +686,12 @@
       while (temp_list) {
         if (temp_list->best_match) {
           if (np_regex_match_mount_entry(temp_list->best_match, &re)) {
-        
+
               if (verbose >=3)
-   	        printf("ignoring %s matching regex\n", temp_list->name);
+                printf("ignoring %s matching regex\n", temp_list->name);
 
               temp_list = np_del_parameter(temp_list, previous);
-              /* pointer to first element needs to be uüdated if first item gets deleted */
+              /* pointer to first element needs to be updated if first item gets deleted */
               if (previous == NULL)
                 path_select_list = temp_list;
           } else {
@@ -723,7 +725,7 @@
         regerror (err, &re, errbuf, MAX_INPUT_BUFFER);
         die (STATE_UNKNOWN, "DISK %s: %s - %s\n",_("UNKNOWN"), _("Could not compile regular expression"), errbuf);
       }
-          
+
       for (me = mount_list; me; me = me->me_next) {
         if (np_regex_match_mount_entry(me, &re)) {
           fnd = TRUE;
@@ -777,7 +779,7 @@
       crit_usedinodes_percent = NULL;
       warn_freeinodes_percent = NULL;
       crit_freeinodes_percent = NULL;
-    
+
       path_selected = FALSE;
       group = NULL;
       break;
@@ -829,11 +831,17 @@
 void
 set_all_thresholds (struct parameter_list *path) 
 {
+    if (path->freespace_units != NULL) free(path->freespace_units);
     set_thresholds(&path->freespace_units, warn_freespace_units, crit_freespace_units);
+    if (path->freespace_percent != NULL) free (path->freespace_percent);
     set_thresholds(&path->freespace_percent, warn_freespace_percent, crit_freespace_percent);
+    if (path->usedspace_units != NULL) free (path->usedspace_units);
     set_thresholds(&path->usedspace_units, warn_usedspace_units, crit_usedspace_units);
+    if (path->usedspace_percent != NULL) free (path->usedspace_percent);
     set_thresholds(&path->usedspace_percent, warn_usedspace_percent, crit_usedspace_percent);
+    if (path->usedinodes_percent != NULL) free (path->usedinodes_percent);
     set_thresholds(&path->usedinodes_percent, warn_usedinodes_percent, crit_usedinodes_percent);
+    if (path->freeinodes_percent != NULL) free (path->freeinodes_percent);
     set_thresholds(&path->freeinodes_percent, warn_freeinodes_percent, crit_freeinodes_percent);
 }
 
@@ -870,7 +878,7 @@
     print_path (mypath);
     return ERROR;
   }
-  
+
   return OK;
 }
 
@@ -898,6 +906,7 @@
   print_usage ();
 
   printf (_(UT_HELP_VRSN));
+  printf (_(UT_EXTRA_OPTS));
 
   printf (" %s\n", "-w, --warning=INTEGER");
   printf ("    %s\n", _("Exit with WARNING status if less than INTEGER units of disk are free"));
@@ -950,6 +959,13 @@
   printf (_(UT_VERBOSE));
   printf (" %s\n", "-X, --exclude-type=TYPE");
   printf ("    %s\n", _("Ignore all filesystems of indicated type (may be repeated)"));
+
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
   printf ("\n");
   printf ("%s\n", _("Examples:"));
   printf (" %s\n", "check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /");
@@ -959,6 +975,7 @@
   printf ("    %s\n", _("are grouped which means the freespace thresholds are applied to all disks together"));
   printf (" %s\n", "check_disk -w 100M -c 50M -C -w 1000M -c 500M -p /foo -C -w 5% -c 3% -p /bar");
   printf ("    %s\n", _("Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use 100M/50M"));
+
   printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_dns.c nagios-plugins-1.4.12/plugins/check_dns.c
--- nagios-plugins-1.4.11/plugins/check_dns.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_dns.c	2008-05-13 11:14:45.000000000 +0200
@@ -1,43 +1,40 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_dns plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2000-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-13 10:14:45 +0100 (Tue, 13 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_dns plugin
-*
-*  LIMITATION: nslookup on Solaris 7 can return output over 2 lines, which will not 
-*  be picked up by this plugin
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* LIMITATION: nslookup on Solaris 7 can return output over 2 lines, which
+* will not be picked up by this plugin
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-*
-* $Id: check_dns.c 1590 2007-01-28 21:46:41Z hweiss $
-*
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_dns.c 1992 2008-05-13 09:14:45Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_dns";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1992 $";
+const char *copyright = "2000-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -57,17 +54,30 @@
 char dns_server[ADDRESS_LENGTH] = "";
 char ptr_server[ADDRESS_LENGTH] = "";
 int verbose = FALSE;
-char expected_address[ADDRESS_LENGTH] = "";
-int match_expected_address = FALSE;
+char **expected_address = NULL;
+int expected_address_cnt = 0;
+
 int expect_authority = FALSE;
 thresholds *time_thresholds = NULL;
 
+static int
+qstrcmp(const void *p1, const void *p2)
+{
+	/* The actual arguments to this function are "pointers to
+	   pointers to char", but strcmp() arguments are "pointers
+	   to char", hence the following cast plus dereference */
+	return strcmp(* (char * const *) p1, * (char * const *) p2);
+}
+
+
 int
 main (int argc, char **argv)
 {
   char *command_line = NULL;
   char input_buffer[MAX_INPUT_BUFFER];
-  char *address = NULL;
+  char *address = NULL; /* comma seperated str with addrs/ptrs (sorted) */
+  char **addresses = NULL;
+  int n_addresses = 0;
   char *msg = NULL;
   char *temp_buffer = NULL;
   int non_authoritative = FALSE;
@@ -89,6 +99,9 @@
     usage_va(_("Cannot catch SIGALRM"));
   }
 
+  /* Parse extra opts if any */
+  argv=np_extra_opts (&argc, argv, progname);
+
   if (process_arguments (argc, argv) == ERROR) {
     usage_va(_("Could not parse arguments"));
   }
@@ -110,12 +123,17 @@
 
   /* scan stdout */
   for(i = 0; i < chld_out.lines; i++) {
+    if (addresses == NULL)  
+      addresses = malloc(sizeof(*addresses)*10);
+    else if (!(n_addresses % 10))
+      addresses = realloc(addresses,sizeof(*addresses) * (n_addresses + 10));
+
     if (verbose)
       puts(chld_out.line[i]);
 
     if (strstr (chld_out.line[i], ".in-addr.arpa")) {
       if ((temp_buffer = strstr (chld_out.line[i], "name = ")))
-        address = strdup (temp_buffer + 7);
+        addresses[n_addresses++] = strdup (temp_buffer + 7);
       else {
         msg = (char *)_("Warning plugin error");
         result = STATE_WARNING;
@@ -133,7 +151,7 @@
       /* Strip leading spaces */
       for (; *temp_buffer != '\0' && *temp_buffer == ' '; temp_buffer++)
         /* NOOP */;
-      
+
       strip(temp_buffer);
       if (temp_buffer==NULL || strlen(temp_buffer)==0) {
         die (STATE_CRITICAL,
@@ -141,16 +159,13 @@
              NSLOOKUP_COMMAND);
       }
 
-      if (address == NULL)
-        address = strdup (temp_buffer);
-      else
-        asprintf(&address, "%s,%s", address, temp_buffer);
+      addresses[n_addresses++] = strdup(temp_buffer);
     }
-
     else if (strstr (chld_out.line[i], _("Non-authoritative answer:"))) {
       non_authoritative = TRUE;
     }
 
+
     result = error_scan (chld_out.line[i]);
     if (result != STATE_OK) {
       msg = strchr (chld_out.line[i], ':');
@@ -171,17 +186,39 @@
     }
   }
 
-  /* If we got here, we should have an address string,
-   * and we can segfault if we do not */
-  if (address==NULL || strlen(address)==0)
+  if (addresses) {
+    int i,slen;
+    char *adrp;
+    qsort(addresses, n_addresses, sizeof(*addresses), qstrcmp);
+    for(i=0, slen=1; i < n_addresses; i++) {
+      slen += strlen(addresses[i])+1;
+    }
+    adrp = address = malloc(slen);
+    for(i=0; i < n_addresses; i++) {
+      if (i) *adrp++ = ',';
+      strcpy(adrp, addresses[i]);
+      adrp += strlen(addresses[i]);
+    }
+    *adrp = 0;
+  } else
     die (STATE_CRITICAL,
          _("DNS CRITICAL - '%s' msg parsing exited with no address\n"),
          NSLOOKUP_COMMAND);
 
   /* compare to expected address */
-  if (result == STATE_OK && match_expected_address && strcmp(address, expected_address)) {
+  if (result == STATE_OK && expected_address_cnt > 0) {
     result = STATE_CRITICAL;
-    asprintf(&msg, _("expected '%s' but got '%s'"), expected_address, address);
+    temp_buffer = "";
+    for (i=0; i<expected_address_cnt; i++) {
+      /* check if we get a match and prepare an error string */
+      if (strcmp(address, expected_address[i]) == 0) result = STATE_OK;
+      asprintf(&temp_buffer, "%s%s; ", temp_buffer, expected_address[i]);
+    }
+    if (result == STATE_CRITICAL) {
+      /* Strip off last semicolon... */
+      temp_buffer[strlen(temp_buffer)-2] = '\0';
+      asprintf(&msg, _("expected '%s' but got '%s'"), temp_buffer, address);
+    }
   }
 
   /* check if authoritative */
@@ -357,8 +394,9 @@
     case 'a': /* expected address */
       if (strlen (optarg) >= ADDRESS_LENGTH)
         die (STATE_UNKNOWN, _("Input buffer overflow\n"));
-      strcpy (expected_address, optarg);
-      match_expected_address = TRUE;
+      expected_address = (char **)realloc(expected_address, (expected_address_cnt+1) * sizeof(char**));
+      expected_address[expected_address_cnt] = strdup(optarg);
+      expected_address_cnt++;
       break;
     case 'A': /* expect authority */
       expect_authority = TRUE;
@@ -416,19 +454,23 @@
   printf ("%s\n", _("This plugin uses the nslookup program to obtain the IP address for the given host/domain query."));
   printf ("%s\n", _("An optional DNS server to use may be specified."));
   printf ("%s\n", _("If no DNS server is specified, the default server(s) specified in /etc/resolv.conf will be used."));
-  
+
   printf ("\n\n");
 
   print_usage ();
-  
+
   printf (_(UT_HELP_VRSN));
-  
+  printf (_(UT_EXTRA_OPTS));
+
   printf (" -H, --hostname=HOST\n");
   printf ("    %s\n", _("The name or address you want to query"));
   printf (" -s, --server=HOST\n");
   printf ("    %s\n", _("Optional DNS server you want to use for the lookup"));
   printf (" -a, --expected-address=IP-ADDRESS|HOST\n");
-  printf ("    %s\n", _("Optional IP-ADDRESS you expect the DNS server to return. HOST must end with ."));
+  printf ("    %s\n", _("Optional IP-ADDRESS you expect the DNS server to return. HOST must end with"));
+  printf ("    %s\n", _("a dot (.). This option can be repeated multiple times (Returns OK if any"));
+  printf ("    %s\n", _("value match). If multiple addresses are returned at once, you have to match"));
+  printf ("    %s\n", _("the whole string of addresses separated with commas (sorted alphabetically)."));
   printf (" -A, --expect-authority\n");
   printf ("    %s\n", _("Optionally expect the DNS server to be authoritative for the lookup"));
   printf (" -w, --warning=seconds\n");
@@ -437,6 +479,13 @@
   printf ("    %s\n", _("Return critical if elapsed time exceeds value. Default off"));
 
   printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
+
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
   printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_dummy.c nagios-plugins-1.4.12/plugins/check_dummy.c
--- nagios-plugins-1.4.11/plugins/check_dummy.c	2007-05-24 10:35:53.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_dummy.c	2008-04-27 16:35:26.000000000 +0200
@@ -1,42 +1,39 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_dummy plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-05-24 09:35:53 +0100 (Thu, 24 May 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-04-27 15:35:26 +0100 (Sun, 27 Apr 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_dummy plugin
-*
-*  This plugin will simply return the state corresponding to the numeric value
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin will simply return the state corresponding to the numeric value
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_dummy.c 1716 2007-05-24 08:35:53Z tonvoon $
- 
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_dummy.c 1984 2008-04-27 14:35:26Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_dummy";
-const char *revision = "$Revision: 1716 $";
-const char *copyright = "1999-2006";
+const char *revision = "$Revision: 1984 $";
+const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -109,11 +106,11 @@
   printf (COPYRIGHT, copyright, email);
 
   printf ("%s\n", _("This plugin will simply return the state corresponding to the numeric value"));
- 
+
   printf ("%s\n", _("of the <state> argument with optional text"));
 
   printf ("\n\n");
-  
+
   print_usage ();
 
   printf (_(UT_HELP_VRSN));
diff -uNr nagios-plugins-1.4.11/plugins/check_fping.c nagios-plugins-1.4.12/plugins/check_fping.c
--- nagios-plugins-1.4.11/plugins/check_fping.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_fping.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,42 +1,40 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_fping plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_disk plugin
-*
-*  This plugin will use the fping command to ping the specified host for a fast check
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin will use the fping command to ping the specified host for a
+* fast check
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_fping.c 1590 2007-01-28 21:46:41Z hweiss $
- 
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_fping.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_fping";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -85,6 +83,9 @@
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
 
+  /* Parse extra opts if any */
+  argv=np_extra_opts (&argc, argv, progname);
+
   if (process_arguments (argc, argv) == ERROR)
     usage4 (_("Could not parse arguments"));
 
@@ -206,7 +207,7 @@
     die (status, _("FPING %s - %s (loss=%.0f%% )|%s\n"),
          state_text (status), server_name, loss ,
          perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, TRUE, 0, TRUE, 100));
-  
+
   }
   else {
     status = max_state (status, STATE_WARNING);
@@ -373,14 +374,15 @@
   printf (COPYRIGHT, copyright, email);
 
   printf ("%s\n", _("This plugin will use the fping command to ping the specified host for a fast check"));
-  
+
   printf ("%s\n", _("Note that it is necessary to set the suid flag on fping."));
 
   printf ("\n\n");
-  
+
   print_usage ();
 
   printf (_(UT_HELP_VRSN));
+  printf (_(UT_EXTRA_OPTS));
 
   printf (" %s\n", "-H, --hostname=HOST");
   printf ("    %s\n", _("name or IP Address of host to ping (IP Address bypasses name lookup, reducing system load)"));
@@ -394,9 +396,16 @@
   printf ("    %s\n", _("number of ICMP packets to send (default: %d)"),PACKET_COUNT);
   printf (_(UT_VERBOSE));
   printf ("\n");
-  printf ("    %s\n", _("THRESHOLD is <rta>,<pl>%% where <rta> is the round trip average travel time (ms)"));
-  printf ("    %s\n", _("which triggers a WARNING or CRITICAL state, and <pl> is the percentage of"));
-  printf ("    %s\n", _("packet loss to trigger an alarm state."));
+  printf (" %s\n", _("THRESHOLD is <rta>,<pl>%% where <rta> is the round trip average travel time (ms)"));
+  printf (" %s\n", _("which triggers a WARNING or CRITICAL state, and <pl> is the percentage of"));
+  printf (" %s\n", _("packet loss to trigger an alarm state."));
+
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
   printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_game.c nagios-plugins-1.4.12/plugins/check_game.c
--- nagios-plugins-1.4.11/plugins/check_game.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_game.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,41 +1,40 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_game plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2002-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_game plugin
-*
+* 
 * This plugin tests game server connections with the specified host.
 * using the qstat program
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_game.c 1991 2008-05-07 10:02:42Z dermoth $
 *
-* $Id: check_game.c 1590 2007-01-28 21:46:41Z hweiss $
 *****************************************************************************/
 
 const char *progname = "check_game";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2002-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2002-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -79,7 +78,10 @@
   setlocale (LC_ALL, "");
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
-  
+
+  /* Parse extra opts if any */
+  argv=np_extra_opts (&argc, argv, progname);
+
   if (process_arguments (argc, argv) == ERROR)
     usage_va(_("Could not parse arguments"));
 
@@ -88,7 +90,7 @@
   /* create the command line to execute */
   asprintf (&command_line, "%s -raw %s -%s %s",
             PATH_TO_QSTAT, QSTAT_DATA_DELIMITER, game_type, server_ip);
-  
+
   if (port)
     asprintf (&command_line, "%s:%-d", command_line, port);
 
@@ -299,11 +301,12 @@
   printf (_("This plugin tests game server connections with the specified host."));
 
   printf ("\n\n");
- 
+
   print_usage ();
 
   printf (_(UT_HELP_VRSN));
-  
+  printf (_(UT_EXTRA_OPTS));
+
   printf (" %s\n", "-p");
   printf ("    %s\n", _("Optional port of which to connect"));
   printf (" %s\n", "gf");
@@ -315,13 +318,15 @@
 
   printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
 
+  printf ("\n");
   printf ("%s\n", _("Notes:"));
-
-  printf ("%s\n", _("This plugin uses the 'qstat' command, the popular game server status query tool ."));
-
-  printf ("%s\n", _("If you don't have the package installed, you will need to download it from"));
-
-  printf ("%s\n", _("http://www.activesw.com/people/steve/qstat.html before you can use this plugin."));
+  printf (" %s\n", _("This plugin uses the 'qstat' command, the popular game server status query tool."));
+  printf (" %s\n", _("If you don't have the package installed, you will need to download it from"));
+  printf (" %s\n", _("http://www.activesw.com/people/steve/qstat.html before you can use this plugin."));
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
 
   printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_hpjd.c nagios-plugins-1.4.12/plugins/check_hpjd.c
--- nagios-plugins-1.4.11/plugins/check_hpjd.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_hpjd.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,42 +1,40 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_hpjd plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_hpjd plugin
-*
-*  This plugin tests the STATUS of an HP printer with a JetDirect card.
-*  Net-snmp must be installed on the computer running the plugin.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin tests the STATUS of an HP printer with a JetDirect card.
+* Net-SNMP must be installed on the computer running the plugin.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_hpjd.c 1590 2007-01-28 21:46:41Z hweiss $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_hpjd.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
 *****************************************************************************/
 
 const char *progname = "check_hpjd";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -102,6 +100,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -392,17 +393,25 @@
 	printf (COPYRIGHT, copyright, email);
 
 	printf ("%s\n", _("This plugin tests the STATUS of an HP printer with a JetDirect card."));
-  printf ("%s\n", _("Net-snmp must be installed on the computer running the plugin."));
+	printf ("%s\n", _("Net-snmp must be installed on the computer running the plugin."));
+
+	printf ("\n\n");
 
-  printf ("\n\n");
-  
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (" %s\n", "-C, --community=STRING");
-  printf ("    %s", _("The SNMP community name "));
-  printf (_("(default=%s)"), DEFAULT_COMMUNITY);
+	printf ("    %s", _("The SNMP community name "));
+	printf (_("(default=%s)"), DEFAULT_COMMUNITY);
+	printf ("\n");
+
+#ifdef NP_EXTRA_OPTS
+	printf ("\n");
+	printf ("%s\n", _("Notes:"));
+	printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_http.c nagios-plugins-1.4.12/plugins/check_http.c
--- nagios-plugins-1.4.11/plugins/check_http.c	2007-12-11 06:57:35.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_http.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,54 +1,51 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_http plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
-*
+* Copyright (c) 1999-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_http plugin
-*
-*  This plugin tests the HTTP service on the specified host. It can test
-*  normal (http) and secure (https) servers, follow redirects, search for
-*  strings and regular expressions, check connection times, and report on
-*  certificate expiration times.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin tests the HTTP service on the specified host. It can test
+* normal (http) and secure (https) servers, follow redirects, search for
+* strings and regular expressions, check connection times, and report on
+* certificate expiration times.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_http.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
- $Id: check_http.c 1861 2007-12-11 05:57:35Z dermoth $
- 
-******************************************************************************/
 /* splint -I. -I../../plugins -I../../lib/ -I/usr/kerberos/include/ ../../plugins/check_http.c */
 
 const char *progname = "check_http";
-const char *revision = "$Revision: 1861 $";
-const char *copyright = "1999-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1999-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
-#include <ctype.h>
-
 #include "common.h"
 #include "netutils.h"
 #include "utils.h"
 #include "base64.h"
+#include <ctype.h>
 
 #define INPUT_DELIMITER ";"
 
@@ -150,6 +147,9 @@
   asprintf (&user_agent, "User-Agent: check_http/%s (nagios-plugins %s)",
             clean_revstring (revision), VERSION);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
   if (process_arguments (argc, argv) == ERROR)
     usage4 (_("Could not parse arguments"));
 
@@ -174,6 +174,7 @@
 process_arguments (int argc, char **argv)
 {
   int c = 1;
+  char *p;
 
   enum {
     INVERT_REGEX = CHAR_MAX + 1
@@ -317,8 +318,12 @@
     /* Note: H, I, and u must be malloc'd or will fail on redirects */
     case 'H': /* Host Name (virtual host) */
       host_name = strdup (optarg);
-      if (strstr (optarg, ":"))
-        sscanf (optarg, "%*[^:]:%d", &server_port);
+      if (host_name[0] == '[') {
+        if ((p = strstr (host_name, "]:")) != NULL) /* [IPv6]:port */
+          server_port = atoi (p + 2);
+      } else if ((p = strchr (host_name, ':')) != NULL
+                 && strchr (++p, ':') == NULL) /* IPv4:port or host:port */
+          server_port = atoi (p);
       break;
     case 'I': /* Server IP-address */
       server_address = strdup (optarg);
@@ -748,7 +753,7 @@
 
   /* optionally send the host header info */
   if (host_name)
-    asprintf (&buf, "%sHost: %s\r\n", buf, host_name);
+    asprintf (&buf, "%sHost: %s:%d\r\n", buf, host_name, server_port);
 
   /* optionally send any other header tag */
   if (http_opt_headers_count) {
@@ -761,7 +766,7 @@
 
   /* optionally send the authentication info */
   if (strlen(user_auth)) {
-    auth = base64 (user_auth, strlen (user_auth));
+    base64_encode_alloc (user_auth, strlen (user_auth), &auth);
     asprintf (&buf, "%sAuthorization: Basic %s\r\n", buf, auth);
   }
 
@@ -772,7 +777,7 @@
     } else {
       asprintf (&buf, "%sContent-Type: application/x-www-form-urlencoded\r\n", buf);
     }
-    
+
     asprintf (&buf, "%sContent-Length: %i\r\n\r\n", buf, (int)strlen (http_post_data));
     asprintf (&buf, "%s%s%s", buf, http_post_data, CRLF);
   }
@@ -934,7 +939,7 @@
     } /* end if (http_status >= 300) */
 
   } /* end else (server_expect_yn)  */
-    
+
         if (maximum_age >= 0) {
           check_document_dates (header);
         }
@@ -1046,7 +1051,7 @@
   addr = malloc (MAX_IPV4_HOSTLENGTH + 1);
   if (addr == NULL)
     die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate addr\n"));
-  
+
   url = malloc (strcspn (pos, "\r\n"));
   if (url == NULL)
     die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate url\n"));
@@ -1230,6 +1235,7 @@
   printf ("\n");
 
   printf (_(UT_HELP_VRSN));
+  printf (_(UT_EXTRA_OPTS));
 
   printf (" %s\n", "-H, --hostname=ADDRESS");
   printf ("    %s\n", _("Host name argument for servers using host headers (virtual host)"));
@@ -1297,19 +1303,24 @@
 
   printf (_(UT_VERBOSE));
 
-  printf (_("Notes:"));
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
   printf (" %s\n", _("This plugin will attempt to open an HTTP connection with the host."));
   printf (" %s\n", _("Successful connects return STATE_OK, refusals and timeouts return STATE_CRITICAL"));
   printf (" %s\n", _("other errors return STATE_UNKNOWN.  Successful connects, but incorrect reponse"));
   printf (" %s\n", _("messages from the host result in STATE_WARNING return values.  If you are"));
   printf (" %s\n", _("checking a virtual server that uses 'host headers' you must supply the FQDN"));
   printf (" %s\n", _("(fully qualified domain name) as the [host_name] argument."));
+  printf ("\n");
+  printf (_(UT_EXTRA_OPTS_NOTES));
 
 #ifdef HAVE_SSL
+  printf ("\n");
   printf (" %s\n", _("This plugin can also check whether an SSL enabled web server is able to"));
   printf (" %s\n", _("serve content (optionally within a specified time) or whether the X509 "));
   printf (" %s\n", _("certificate is still valid for the specified number of days."));
-  printf (_("Examples:"));
+  printf ("\n");
+  printf ("%s\n", _("Examples:"));
   printf (" %s\n\n", "CHECK CONTENT: check_http -w 5 -c 10 --ssl -H www.verisign.com");
   printf (" %s\n", _("When the 'www.verisign.com' server returns its content within 5 seconds,"));
   printf (" %s\n", _("a STATE_OK will be returned. When the server returns its content but exceeds"));
@@ -1320,7 +1331,7 @@
   printf (" %s\n", _("When the certificate of 'www.verisign.com' is valid for more than 14 days,"));
   printf (" %s\n", _("a STATE_OK is returned. When the certificate is still valid, but for less than"));
   printf (" %s\n", _("14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when"));
-  printf (" %s\n\n", _("the certificate is expired."));
+  printf (" %s\n", _("the certificate is expired."));
 #endif
 
   printf (_(UT_SUPPORT));
diff -uNr nagios-plugins-1.4.11/plugins/check_ide_smart.c nagios-plugins-1.4.12/plugins/check_ide_smart.c
--- nagios-plugins-1.4.11/plugins/check_ide_smart.c	2007-06-13 11:43:28.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_ide_smart.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,46 +1,44 @@
-/******************************************************************************
+/*****************************************************************************
+* 
 * Nagios check_ide_smart plugin
-*
-* License: GPL
-*
-*  ide-smart 1.3 - IDE S.M.A.R.T. checking tool
-*  Copyright (C)  1998-1999 Ragnar Hojland Espinosa <ragnar@lightside.dhis.org>
-*                 1998      Gadi Oxman <gadio@netvision.net.il>
+* ide-smart 1.3 - IDE S.M.A.R.T. checking tool
 * 
+* License: GPL
+* Copyright (C) 1998-1999 Ragnar Hojland Espinosa <ragnar@lightside.dhis.org>
+*               1998      Gadi Oxman <gadio@netvision.net.il>
 * Copyright (c) 2000 Robert Dale <rdale@digital-mission.com>
-* Copyright (c) 2000-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-06-13 10:43:28 +0100 (Wed, 13 Jun 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_ide_smart plugin
-*
-*  This plugin checks a local hard drive with the (Linux specific) SMART interface
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin checks a local hard drive with the (Linux specific) SMART
+* interface
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: check_ide_smart.c 1739 2007-06-13 09:43:28Z psychotrahe $
- */
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_ide_smart.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_ide_smart";
-const char *revision = "$Revision: 1739 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1998-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 	
 #include "common.h"
@@ -164,6 +162,9 @@
 	values_t values;
 	int fd;
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	static struct option longopts[] = { 
 		{"device", required_argument, 0, 'd'}, 
 		{"immediate", no_argument, 0, 'i'}, 
@@ -486,13 +487,14 @@
 	printf (COPYRIGHT, copyright, email);
 
 	printf (_("This plugin checks a local hard drive with the (Linux specific) SMART interface [http://smartlinux.sourceforge.net/smart/index.php]."));
- 
+
   printf ("\n\n");
-  
+
   print_usage ();
 
   printf (_(UT_HELP_VRSN));
-	
+  printf (_(UT_EXTRA_OPTS));
+
   printf (" %s\n", "-d, --device=DEVICE");
   printf ("    %s\n", _("Select device DEVICE"));
   printf ("    %s\n", _("Note: if the device is selected with this option, _no_ other options are accepted"));
@@ -505,7 +507,14 @@
   printf (" %s\n", "-0, --auto-off");
   printf ("    %s\n", _("Turn off automatic offline tests"));
   printf (" %s\n", "-n, --nagios");
-  printf ("    %s\n\n", _("Output suitable for Nagios"));
+  printf ("    %s\n", _("Output suitable for Nagios"));
+
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
   printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_ldap.c nagios-plugins-1.4.12/plugins/check_ldap.c
--- nagios-plugins-1.4.11/plugins/check_ldap.c	2007-07-08 00:20:40.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_ldap.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,40 +1,38 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_ldap plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2000-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-07-07 23:20:40 +0100 (Sat, 07 Jul 2007) $
-*
+* Copyright (c) 2000-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_ldap plugin
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_ldap.c 1753 2007-07-07 22:20:40Z psychotrahe $
- 
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_ldap.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 /* progname may be check_ldaps */
 char *progname = "check_ldap";
-const char *revision = "$Revision: 1753 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -67,6 +65,9 @@
 #ifdef HAVE_LDAP_SET_OPTION
 int ld_protocol = DEFAULT_PROTOCOL;
 #endif
+#ifndef LDAP_OPT_SUCCESS
+# define LDAP_OPT_SUCCESS LDAP_SUCCESS
+#endif
 double warn_time = UNDEFINED;
 double crit_time = UNDEFINED;
 struct timeval tv;
@@ -103,7 +104,10 @@
 	if (strstr(argv[0],"check_ldaps")) {
 		asprintf (&progname, "check_ldaps");
  	}
-	
+
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -391,11 +395,12 @@
 	printf ("Copyright (c) 1999 Didi Rieder (adrieder@sbox.tu-graz.ac.at)\n");
 	printf (COPYRIGHT, copyright, email);
 
-  printf ("\n\n");
-  
+	printf ("\n\n");
+
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', myport);
 
@@ -412,14 +417,14 @@
   printf (" %s\n", "-T [--starttls]");
   printf ("    %s\n", _("use starttls mechanism introduced in protocol version 3"));
   printf (" %s\n", "-S [--ssl]");
-  printf ("    %s\n", _("use ldaps (ldap v2 ssl method). this also sets the default port to %s"), LDAPS_PORT);
+  printf ("    %s %i\n", _("use ldaps (ldap v2 ssl method). this also sets the default port to"), LDAPS_PORT);
 
 #ifdef HAVE_LDAP_SET_OPTION
 	printf (" %s\n", "-2 [--ver2]");
   printf ("    %s\n", _("use ldap protocol version 2"));
   printf (" %s\n", "-3 [--ver3]");
   printf ("    %s\n", _("use ldap protocol version 3"));
-  printf ("    (default protocol version: %d)\n", DEFAULT_PROTOCOL);
+  printf ("    (%s %d)\n", _("default protocol version:"), DEFAULT_PROTOCOL);
 #endif
 
 	printf (_(UT_WARN_CRIT));
@@ -428,12 +433,17 @@
 
 	printf (_(UT_VERBOSE));
 
-	printf ("\n%s\n", _("Note:"));
-	printf ("%s\n", _("If this plugin is called via 'check_ldaps', method 'STARTTLS' will be"));
-	printf (_("implied (using default port %i) unless --port=636 is specified. In that case %s"), DEFAULT_PORT, "\n");
-	printf ("%s\n", _("'SSL on connect' will be used no matter how the plugin was called."));
-	printf ("%s\n", _("This detection is deprecated, please use 'check_ldap' with the '--starttls' or '--ssl' flags"));
-	printf ("%s\n", _("to define the behaviour explicitly instead."));
+	printf ("\n");
+	printf ("%s\n", _("Notes:"));
+	printf (" %s\n", _("If this plugin is called via 'check_ldaps', method 'STARTTLS' will be"));
+	printf (_(" implied (using default port %i) unless --port=636 is specified. In that case\n"), DEFAULT_PORT);
+	printf (" %s\n", _("'SSL on connect' will be used no matter how the plugin was called."));
+	printf (" %s\n", _("This detection is deprecated, please use 'check_ldap' with the '--starttls' or '--ssl' flags"));
+	printf (" %s\n", _("to define the behaviour explicitly instead."));
+#ifdef NP_EXTRA_OPTS
+	printf ("\n");
+	printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_load.c nagios-plugins-1.4.12/plugins/check_load.c
--- nagios-plugins-1.4.11/plugins/check_load.c	2007-12-10 01:19:27.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_load.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,42 +1,39 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_load plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-10 00:19:27 +0000 (Mon, 10 Dec 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_load plugin
-*
-*  This plugin tests the current system load average.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin tests the current system load average.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- 
- $Id: check_load.c 1851 2007-12-10 00:19:27Z psychotrahe $
-
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_load.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_load";
-const char *revision = "$Revision: 1851 $";
-const char *copyright = "1999-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -122,6 +119,9 @@
 	textdomain (PACKAGE);
 	setlocale(LC_NUMERIC, "POSIX");
 
+	/* Parse extra opts if any */
+	argv = np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -306,10 +306,11 @@
 	printf (_("This plugin tests the current system load average."));
 
   printf ("\n\n");
-  
+
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (" %s\n", "-w, --warning=WLOAD1,WLOAD5,WLOAD15");
   printf ("    %s\n", _("Exit with WARNING status if load average exceeds WLOADn"));
@@ -319,6 +320,12 @@
   printf (" %s\n", "-r, --percpu");
   printf ("    %s\n", _("Divide the load averages by the number of CPUs (when possible)"));
 
+#ifdef NP_EXTRA_OPTS
+	printf ("\n");
+	printf ("%s\n", _("Notes:"));
+	printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
 	printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_mrtg.c nagios-plugins-1.4.12/plugins/check_mrtg.c
--- nagios-plugins-1.4.11/plugins/check_mrtg.c	2007-02-06 22:03:21.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_mrtg.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,43 +1,40 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_mrtg plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-02-06 21:03:21 +0000 (Tue, 06 Feb 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_mrtg plugin
-*
-*  This plugin will check either the average or maximum value of one of the
-*  two variables recorded in an MRTG log file.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin will check either the average or maximum value of one of the
+* two variables recorded in an MRTG log file.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_mrtg.c 1611 2007-02-06 21:03:21Z opensides $
- 
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_mrtg.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_mrtg";
-const char *revision =  "$Revision: 1611 $";
-const char *copyright = "1999-2006";
+const char *revision =  "$Revision: 1991 $";
+const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -75,6 +72,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments\n"));
 
@@ -326,10 +326,11 @@
   printf ("%s\n", _("two variables recorded in an MRTG log file."));
 
   printf ("\n\n");
-  
+
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (" %s\n", "-F, --logfile=FILE");
   printf ("   %s\n", _("The MRTG log file containing the data you want to monitor"));
@@ -349,25 +350,30 @@
   printf ("   %s\n", _("Option units label for data (Example: Packets/Sec, Errors/Sec,"));
   printf ("   %s\n", _("\"Bytes Per Second\", \"%% Utilization\")"));
 
-	printf ("%s\n", _("If the value exceeds the <vwl> threshold, a WARNING status is returned. If"));
-  printf ("%s\n", _("the value exceeds the <vcl> threshold, a CRITICAL status is returned.  If"));
-  printf ("%s\n", _("the data in the log file is older than <expire_minutes> old, a WARNING"));
-  printf ("%s\n", _("status is returned and a warning message is printed."));
-
-	printf ("%s\n", _("This plugin is useful for monitoring MRTG data that does not correspond to"));
-  printf ("%s\n", _("bandwidth usage.  (Use the check_mrtgtraf plugin for monitoring bandwidth)."));
-  printf ("%s\n", _("It can be used to monitor any kind of data that MRTG is monitoring - errors,"));
-  printf ("%s\n", _("packets/sec, etc.  I use MRTG in conjuction with the Novell NLM that allows"));
-  printf ("%s\n", _("me to track processor utilization, user connections, drive space, etc and"));
-  printf ("%s\n\n", _("this plugin works well for monitoring that kind of data as well."));
+  printf ("\n");
+	printf (" %s\n", _("If the value exceeds the <vwl> threshold, a WARNING status is returned. If"));
+  printf (" %s\n", _("the value exceeds the <vcl> threshold, a CRITICAL status is returned.  If"));
+  printf (" %s\n", _("the data in the log file is older than <expire_minutes> old, a WARNING"));
+  printf (" %s\n", _("status is returned and a warning message is printed."));
+
+  printf ("\n");
+	printf (" %s\n", _("This plugin is useful for monitoring MRTG data that does not correspond to"));
+  printf (" %s\n", _("bandwidth usage.  (Use the check_mrtgtraf plugin for monitoring bandwidth)."));
+  printf (" %s\n", _("It can be used to monitor any kind of data that MRTG is monitoring - errors,"));
+  printf (" %s\n", _("packets/sec, etc.  I use MRTG in conjuction with the Novell NLM that allows"));
+  printf (" %s\n", _("me to track processor utilization, user connections, drive space, etc and"));
+  printf (" %s\n\n", _("this plugin works well for monitoring that kind of data as well."));
 
 	printf ("%s\n", _("Notes:"));
   printf (" %s\n", _("- This plugin only monitors one of the two variables stored in the MRTG log"));
-  printf (" %s\n", _("  file.  If you want to monitor both values you will have to define two"));
-  printf (" %s\n", _("  commands with different values for the <variable> argument.  Of course,"));
-  printf (" %s\n", _("you can always hack the code to make this plugin work for you..."));
+  printf ("   %s\n", _("file.  If you want to monitor both values you will have to define two"));
+  printf ("   %s\n", _("commands with different values for the <variable> argument.  Of course,"));
+  printf ("   %s\n", _("you can always hack the code to make this plugin work for you..."));
   printf (" %s\n", _("- MRTG stands for the Multi Router Traffic Grapher.  It can be downloaded from"));
-  printf (" %s\n", "http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html");
+  printf ("   %s\n", "http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html");
+#ifdef NP_EXTRA_OPTS
+	printf (" -%s", _(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_mrtgtraf.c nagios-plugins-1.4.12/plugins/check_mrtgtraf.c
--- nagios-plugins-1.4.11/plugins/check_mrtgtraf.c	2007-12-11 06:57:35.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_mrtgtraf.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,45 +1,42 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_mrtgtraf plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2007 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_mtrgtraf plugin
-*
-*  This plugin will check the incoming/outgoing transfer rates of a router
-*  switch, etc recorded in an MRTG log.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin will check the incoming/outgoing transfer rates of a router
+* switch, etc recorded in an MRTG log.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- 
- $Id: check_mrtgtraf.c 1861 2007-12-11 05:57:35Z dermoth $
-
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_mrtgtraf.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 #include "common.h"
 #include "utils.h"
 
 const char *progname = "check_mrtgtraf";
-const char *revision = "$Revision: 1861 $";
+const char *revision = "$Revision: 1991 $";
 const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
@@ -83,6 +80,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -350,6 +350,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (" %s\n", "-F, --filename=STRING");
   printf ("    %s\n", _("File to read log from"));
@@ -362,6 +363,7 @@
   printf (" %s\n", "-c, --critical");
   printf ("    %s\n", _("Critical threshold pair <incoming>,<outgoing>"));
 
+  printf ("\n");
 	printf ("%s\n", _("Notes:"));
   printf (" %s\n", _("- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from"));
   printf (" %s\n", "  http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html");
@@ -370,6 +372,9 @@
   printf (" %s\n", _("- The calculated i/o rates are a little off from what MRTG actually"));
   printf (" %s\n", _("  reports.  I'm not sure why this is right now, but will look into it"));
   printf (" %s\n", _("  for future enhancements of this plugin."));
+#ifdef NP_EXTRA_OPTS
+	printf (" -%s", _(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_mysql.c nagios-plugins-1.4.12/plugins/check_mysql.c
--- nagios-plugins-1.4.11/plugins/check_mysql.c	2007-12-10 08:52:00.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_mysql.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,44 +1,41 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_mysql plugin
-*
+* 
 * License: GPL
-*  Copyright (c) 1999 Didi Rieder (adrieder@sbox.tu-graz.ac.at)
-*  Copyright (c) 1999-2006 nagios-plugins team
-*  Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net)
-*
-* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
+* Copyright (c) 1999 Didi Rieder (adrieder@sbox.tu-graz.ac.at)
+* Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net)
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
 *
 * Description:
-*
+* 
 * This file contains the check_mysql plugin
-*
-*  This program tests connections to a mysql server
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This program tests connections to a mysql server
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_mysql.c 1859 2007-12-10 07:52:00Z dermoth $
-*
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_mysql.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_mysql";
-const char *revision = "$Revision: 1859 $";
-const char *copyright = "1999-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #define SLAVERESULTSIZE 70
@@ -53,6 +50,7 @@
 
 char *db_user = NULL;
 char *db_host = NULL;
+char *db_socket = NULL;
 char *db_pass = NULL;
 char *db = NULL;
 unsigned int db_port = MYSQL_PORT;
@@ -84,6 +82,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -93,7 +94,7 @@
 	mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"client");
 
 	/* establish a connection to the server and error checking */
-	if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,NULL,0)) {
+	if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,db_socket,0)) {
 		if (mysql_errno (&mysql) == CR_UNKNOWN_HOST)
 			die (STATE_WARNING, "%s\n", mysql_error (&mysql));
 		else if (mysql_errno (&mysql) == CR_VERSION_ERROR)
@@ -246,6 +247,7 @@
 	int option = 0;
 	static struct option longopts[] = {
 		{"hostname", required_argument, 0, 'H'},
+		{"socket", required_argument, 0, 's'},
 		{"database", required_argument, 0, 'd'},
 		{"username", required_argument, 0, 'u'},
 		{"password", required_argument, 0, 'p'},
@@ -263,7 +265,7 @@
 		return ERROR;
 
 	while (1) {
-		c = getopt_long (argc, argv, "hvVSP:p:u:d:H:c:w:", longopts, &option);
+		c = getopt_long (argc, argv, "hvVSP:p:u:d:H:s:c:w:", longopts, &option);
 
 		if (c == -1 || c == EOF)
 			break;
@@ -277,14 +279,23 @@
 				usage2 (_("Invalid hostname/address"), optarg);
 			}
 			break;
-		case 'd':									/* hostname */
+		case 's':									/* socket */
+			db_socket = optarg;
+			break;
+		case 'd':									/* database */
 			db = optarg;
 			break;
 		case 'u':									/* username */
 			db_user = optarg;
 			break;
 		case 'p':									/* authentication information: password */
-			db_pass = optarg;
+			db_pass = strdup(optarg);
+
+			/* Delete the password from process list */
+			while (*optarg != '\0') {
+				*optarg = 'X';
+				optarg++;
+			}
 			break;
 		case 'P':									/* critical time threshold */
 			db_port = atoi (optarg);
@@ -373,29 +384,43 @@
 	printf ("%s\n", _("This program tests connections to a mysql server"));
 
   printf ("\n\n");
-  
+
 	print_usage ();
 
-	printf (_(UT_HELP_VRSN));
+  printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
-	printf (_(UT_HOST_PORT), 'P', myport);
+  printf (_(UT_HOST_PORT), 'P', myport);
+  printf (" %s\n", "-s, --socket=STRING");
+  printf ("    %s\n", _("Use the specified socket (has no effect if -H is used)"));
 
-	printf (" %s\n", "-d, --database=STRING");
+  printf (" %s\n", "-d, --database=STRING");
   printf ("    %s\n", _("Check database with indicated name"));
   printf (" %s\n", "-u, --username=STRING");
   printf ("    %s\n", _("Connect using the indicated username"));
   printf (" %s\n", "-p, --password=STRING");
   printf ("    %s\n", _("Use the indicated password to authenticate the connection"));
-  printf ("    %s\n", _("==> IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!! <=="));
-  printf ("    %s\n", _("Your clear-text password will be visible as a process table entry"));
+  printf ("    ==> %s <==\n", _("IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!"));
+  printf ("    %s\n", _("Your clear-text password could be visible as a process table entry"));
   printf (" %s\n", "-S, --check-slave");
   printf ("    %s\n", _("Check if the slave thread is running properly."));
   printf (" %s\n", "-w, --warning");
-  printf ("    %s\n", _("Exit with WARNING status if slave server is more than INTEGER seconds behind master"));
+  printf ("    %s\n", _("Exit with WARNING status if slave server is more than INTEGER seconds"));
+  printf ("    %s\n", _("behind master"));
   printf (" %s\n", "-c, --critical");
-  printf ("    %s\n", _("Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"));
-  printf (" %s\n", _("There are no required arguments. By default, the local database with"));
-  printf (_("a server listening on MySQL standard port %d will be checked\n"), MYSQL_PORT);
+  printf ("    %s\n", _("Exit with CRITICAL status if slave server is more then INTEGER seconds"));
+  printf ("    %s\n", _("behind master"));
+
+  printf ("\n");
+  printf (" %s\n", _("There are no required arguments. By default, the local database is checked"));
+  printf (" %s\n", _("using the default unix socket. You can force TCP on localhost by using an"));
+  printf (" %s\n", _("IP address or FQDN ('localhost' will use the socket as well)."));
+
+#ifdef NP_EXTRA_OPTS
+	printf ("\n");
+	printf ("%s\n", _("Notes:"));
+	printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
@@ -405,5 +430,6 @@
 print_usage (void)
 {
 	printf (_("Usage:"));
-  printf ("%s [-d database] [-H host] [-P port] [-u user] [-p password] [-S]\n",progname);
+  printf (" %s [-d database] [-H host] [-P port] [-s socket]\n",progname);
+  printf ("       [-u user] [-p password] [-S]\n");
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_mysql.c.orig nagios-plugins-1.4.12/plugins/check_mysql.c.orig
--- nagios-plugins-1.4.11/plugins/check_mysql.c.orig	2008-05-15 21:45:14.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_mysql.c.orig	1970-01-01 01:00:00.000000000 +0100
@@ -1,409 +0,0 @@
-/******************************************************************************
-*
-* Nagios check_mysql plugin
-*
-* License: GPL
-*  Copyright (c) 1999 Didi Rieder (adrieder@sbox.tu-graz.ac.at)
-*  Copyright (c) 1999-2006 nagios-plugins team
-*  Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net)
-*
-* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
-*
-* Description:
-*
-* This file contains the check_mysql plugin
-*
-*  This program tests connections to a mysql server
-*
-*
-* License Information:
-*
-* 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_mysql.c 1859 2007-12-10 07:52:00Z dermoth $
-*
-******************************************************************************/
-
-const char *progname = "check_mysql";
-const char *revision = "$Revision: 1859 $";
-const char *copyright = "1999-2006";
-const char *email = "nagiosplug-devel@lists.sourceforge.net";
-
-#define SLAVERESULTSIZE 70
-
-#include "common.h"
-#include "utils.h"
-#include "utils_base.h"
-#include "netutils.h"
-
-#include <mysql.h>
-#include <errmsg.h>
-
-char *db_user = NULL;
-char *db_host = NULL;
-char *db_pass = NULL;
-char *db = NULL;
-unsigned int db_port = MYSQL_PORT;
-int check_slave = 0, warn_sec = 0, crit_sec = 0;
-int verbose = 0;
-
-thresholds *my_threshold = NULL;
-
-int process_arguments (int, char **);
-int validate_arguments (void);
-void print_help (void);
-void print_usage (void);
-
-int
-main (int argc, char **argv)
-{
-
-	MYSQL mysql;
-	MYSQL_RES *res;
-	MYSQL_ROW row;
-	
-	/* should be status */
-	
-	char *result = NULL;
-	char *error = NULL;
-	char slaveresult[SLAVERESULTSIZE];
-
-	setlocale (LC_ALL, "");
-	bindtextdomain (PACKAGE, LOCALEDIR);
-	textdomain (PACKAGE);
-
-	if (process_arguments (argc, argv) == ERROR)
-		usage4 (_("Could not parse arguments"));
-
-	/* initialize mysql  */
-	mysql_init (&mysql);
-
-	mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"client");
-
-	/* establish a connection to the server and error checking */
-	if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,NULL,0)) {
-		if (mysql_errno (&mysql) == CR_UNKNOWN_HOST)
-			die (STATE_WARNING, "%s\n", mysql_error (&mysql));
-		else if (mysql_errno (&mysql) == CR_VERSION_ERROR)
-			die (STATE_WARNING, "%s\n", mysql_error (&mysql));
-		else if (mysql_errno (&mysql) == CR_OUT_OF_MEMORY)
-			die (STATE_WARNING, "%s\n", mysql_error (&mysql));
-		else if (mysql_errno (&mysql) == CR_IPSOCK_ERROR)
-			die (STATE_WARNING, "%s\n", mysql_error (&mysql));
-		else if (mysql_errno (&mysql) == CR_SOCKET_CREATE_ERROR)
-			die (STATE_WARNING, "%s\n", mysql_error (&mysql));
-		else
-			die (STATE_CRITICAL, "%s\n", mysql_error (&mysql));
-	}
-
-	/* get the server stats */
-	result = strdup (mysql_stat (&mysql));
-
-	/* error checking once more */
-	if (mysql_error (&mysql)) {
-		if (mysql_errno (&mysql) == CR_SERVER_GONE_ERROR)
-			die (STATE_CRITICAL, "%s\n", mysql_error (&mysql));
-		else if (mysql_errno (&mysql) == CR_SERVER_LOST)
-			die (STATE_CRITICAL, "%s\n", mysql_error (&mysql));
-		else if (mysql_errno (&mysql) == CR_UNKNOWN_ERROR)
-			die (STATE_CRITICAL, "%s\n", mysql_error (&mysql));
-	}
-
-	if(check_slave) {
-		/* check the slave status */
-		if (mysql_query (&mysql, "show slave status") != 0) {
-			error = strdup(mysql_error(&mysql));
-			mysql_close (&mysql);
-			die (STATE_CRITICAL, _("slave query error: %s\n"), error);
-		}
-
-		/* store the result */
-		if ( (res = mysql_store_result (&mysql)) == NULL) {
-			error = strdup(mysql_error(&mysql));
-			mysql_close (&mysql);
-			die (STATE_CRITICAL, _("slave store_result error: %s\n"), error);
-		}
-
-		/* Check there is some data */
-		if (mysql_num_rows(res) == 0) {
-			mysql_close(&mysql);
-			die (STATE_WARNING, "%s\n", _("No slaves defined"));
-		}
-
-		/* fetch the first row */
-		if ( (row = mysql_fetch_row (res)) == NULL) {
-			error = strdup(mysql_error(&mysql));
-			mysql_free_result (res);
-			mysql_close (&mysql);
-			die (STATE_CRITICAL, _("slave fetch row error: %s\n"), error);
-		}
-
-		if (mysql_field_count (&mysql) == 12) {
-			/* mysql 3.23.x */
-			snprintf (slaveresult, SLAVERESULTSIZE, _("Slave running: %s"), row[6]);
-			if (strcmp (row[6], "Yes") != 0) {
-				mysql_free_result (res);
-				mysql_close (&mysql);
-				die (STATE_CRITICAL, "%s\n", slaveresult);
-			}
-
-		} else {
-			/* mysql 4.x.x */
-			int slave_io_field = -1 , slave_sql_field = -1, seconds_behind_field = -1, i, num_fields;
-			MYSQL_FIELD* fields;
-
-			num_fields = mysql_num_fields(res);
-			fields = mysql_fetch_fields(res);
-			for(i = 0; i < num_fields; i++) {
-				if (strcmp(fields[i].name, "Slave_IO_Running") == 0) {
-					slave_io_field = i;
-					continue;
-				}
-				if (strcmp(fields[i].name, "Slave_SQL_Running") == 0) {
-					slave_sql_field = i;
-					continue;
-				}
-				if (strcmp(fields[i].name, "Seconds_Behind_Master") == 0) {
-					seconds_behind_field = i;
-					continue;
-				}
-			}
-			if ((slave_io_field < 0) || (slave_sql_field < 0) || (num_fields == 0)) {
-				mysql_free_result (res);
-				mysql_close (&mysql);
-				die (STATE_CRITICAL, "Slave status unavailable\n");
-			}
-			
-			snprintf (slaveresult, SLAVERESULTSIZE, "Slave IO: %s Slave SQL: %s Seconds Behind Master: %s", row[slave_io_field], row[slave_sql_field], row[seconds_behind_field]);
-			if (strcmp (row[slave_io_field], "Yes") != 0 || strcmp (row[slave_sql_field], "Yes") != 0) {
-				mysql_free_result (res);
-				mysql_close (&mysql);
-				die (STATE_CRITICAL, "%s\n", slaveresult);
-			}
-
-			if (verbose >=3) {
-				if (seconds_behind_field == -1) {
-					printf("seconds_behind_field not found\n");
-				} else {
-					printf ("seconds_behind_field(index %d)=%s\n", seconds_behind_field, row[seconds_behind_field]);
-				}
-			}
-
-			if ((seconds_behind_field != -1) && (strcmp (row[seconds_behind_field], "NULL") != 0)) {
-				double value = atof(row[seconds_behind_field]);
-				int status;
-
-				status = get_status(value, my_threshold);
-
-				if (status == STATE_WARNING) {
-					printf("SLOW_SLAVE %s: %s\n", _("WARNING"), slaveresult);
-					exit(STATE_WARNING);
-				} else if (status == STATE_CRITICAL) {
-					printf("SLOW_SLAVE %s: %s\n", _("CRITICAL"), slaveresult);
-					exit(STATE_CRITICAL);
-				}
-			}
-		}
-
-		/* free the result */
-		mysql_free_result (res);
-	}
-
-	/* close the connection */
-	mysql_close (&mysql);
-
-	/* print out the result of stats */
-	if (check_slave) {
-		printf ("%s %s\n", result, slaveresult);
-	} else {
-		printf ("%s\n", result);
-	}
-
-	return STATE_OK;
-}
-
-
-/* process command-line arguments */
-int
-process_arguments (int argc, char **argv)
-{
-	int c;
-	char *warning = NULL;
-	char *critical = NULL;
-
-	int option = 0;
-	static struct option longopts[] = {
-		{"hostname", required_argument, 0, 'H'},
-		{"database", required_argument, 0, 'd'},
-		{"username", required_argument, 0, 'u'},
-		{"password", required_argument, 0, 'p'},
-		{"port", required_argument, 0, 'P'},
-		{"critical", required_argument, 0, 'c'},
-		{"warning", required_argument, 0, 'w'},
-		{"check-slave", no_argument, 0, 'S'},
-		{"verbose", no_argument, 0, 'v'},
-		{"version", no_argument, 0, 'V'},
-		{"help", no_argument, 0, 'h'},
-		{0, 0, 0, 0}
-	};
-
-	if (argc < 1)
-		return ERROR;
-
-	while (1) {
-		c = getopt_long (argc, argv, "hvVSP:p:u:d:H:c:w:", longopts, &option);
-
-		if (c == -1 || c == EOF)
-			break;
-
-		switch (c) {
-		case 'H':									/* hostname */
-			if (is_host (optarg)) {
-				db_host = optarg;
-			}
-			else {
-				usage2 (_("Invalid hostname/address"), optarg);
-			}
-			break;
-		case 'd':									/* hostname */
-			db = optarg;
-			break;
-		case 'u':									/* username */
-			db_user = optarg;
-			break;
-		case 'p':									/* authentication information: password */
-			db_pass = optarg;
-			break;
-		case 'P':									/* critical time threshold */
-			db_port = atoi (optarg);
-			break;
-		case 'S':
-			check_slave = 1;							/* check-slave */
-			break;
-		case 'w':
-			warning = optarg;
-			break;
-		case 'c':
-			critical = optarg;
-			break;
-		case 'V':									/* version */
-			print_revision (progname, revision);
-			exit (STATE_OK);
-		case 'h':									/* help */
-			print_help ();
-			exit (STATE_OK);
-		case 'v':
-			verbose++;
-			break;
-		case '?':									/* help */
-			usage5 ();
-		}
-	}
-
-	c = optind;
-
-	set_thresholds(&my_threshold, warning, critical);
-
-	while ( argc > c ) {
-
-		if (db_host == NULL)
-			if (is_host (argv[c])) {
-				db_host = argv[c++];
-			}
-			else {
-				usage2 (_("Invalid hostname/address"), argv[c]);
-			}
-		else if (db_user == NULL)
-			db_user = argv[c++];
-		else if (db_pass == NULL)
-			db_pass = argv[c++];
-		else if (db == NULL)
-			db = argv[c++];
-		else if (is_intnonneg (argv[c]))
-			db_port = atoi (argv[c++]);
-		else
-			break;
-	}
-
-	return validate_arguments ();
-}
-
-
-int
-validate_arguments (void)
-{
-	if (db_user == NULL)
-		db_user = strdup("");
-
-	if (db_host == NULL)
-		db_host = strdup("");
-
-	if (db_pass == NULL)
-		db_pass == strdup("");
-
-	if (db == NULL)
-		db = strdup("");
-
-	return OK;
-}
-
-
-void
-print_help (void)
-{
-	char *myport;
-	asprintf (&myport, "%d", MYSQL_PORT);
-
-	print_revision (progname, revision);
-
-	printf (_(COPYRIGHT), copyright, email);
-
-	printf ("%s\n", _("This program tests connections to a mysql server"));
-
-  printf ("\n\n");
-  
-	print_usage ();
-
-	printf (_(UT_HELP_VRSN));
-
-	printf (_(UT_HOST_PORT), 'P', myport);
-
-	printf (" %s\n", "-d, --database=STRING");
-  printf ("    %s\n", _("Check database with indicated name"));
-  printf (" %s\n", "-u, --username=STRING");
-  printf ("    %s\n", _("Connect using the indicated username"));
-  printf (" %s\n", "-p, --password=STRING");
-  printf ("    %s\n", _("Use the indicated password to authenticate the connection"));
-  printf ("    %s\n", _("==> IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!! <=="));
-  printf ("    %s\n", _("Your clear-text password will be visible as a process table entry"));
-  printf (" %s\n", "-S, --check-slave");
-  printf ("    %s\n", _("Check if the slave thread is running properly."));
-  printf (" %s\n", "-w, --warning");
-  printf ("    %s\n", _("Exit with WARNING status if slave server is more than INTEGER seconds behind master"));
-  printf (" %s\n", "-c, --critical");
-  printf ("    %s\n", _("Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"));
-  printf (" %s\n", _("There are no required arguments. By default, the local database with"));
-  printf (_("a server listening on MySQL standard port %d will be checked\n"), MYSQL_PORT);
-
-	printf (_(UT_SUPPORT));
-}
-
-
-void
-print_usage (void)
-{
-	printf (_("Usage:"));
-  printf ("%s [-d database] [-H host] [-P port] [-u user] [-p password] [-S]\n",progname);
-}
diff -uNr nagios-plugins-1.4.11/plugins/check_mysql_query.c nagios-plugins-1.4.12/plugins/check_mysql_query.c
--- nagios-plugins-1.4.11/plugins/check_mysql_query.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_mysql_query.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,42 +1,40 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_mysql_query plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2006 nagios-plugins team, after Didi Rieder (check_mysql)
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2006-2007 Nagios Plugins Development Team
+* Original code from check_mysql, copyright 1999 Didi Rieder
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_mysql_query plugin
-*
-*  This plugin is for running arbitrary SQL and checking the results
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin is for running arbitrary SQL and checking the results
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-* CHECK_MYSQL_QUERY.C
-*
-* $Id: check_mysql_query.c 1590 2007-01-28 21:46:41Z hweiss $
-*
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_mysql_query.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_mysql_query";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -49,6 +47,7 @@
 
 char *db_user = NULL;
 char *db_host = NULL;
+char *db_socket = NULL;
 char *db_pass = NULL;
 char *db = NULL;
 unsigned int db_port = MYSQL_PORT;
@@ -79,6 +78,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -88,7 +90,7 @@
 	mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"client");
 
 	/* establish a connection to the server and error checking */
-	if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,NULL,0)) {
+	if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,db_socket,0)) {
 		if (mysql_errno (&mysql) == CR_UNKNOWN_HOST)
 			die (STATE_WARNING, "QUERY %s: %s\n", _("WARNING"), mysql_error (&mysql));
 		else if (mysql_errno (&mysql) == CR_VERSION_ERROR)
@@ -172,6 +174,7 @@
 	int option = 0;
 	static struct option longopts[] = {
 		{"hostname", required_argument, 0, 'H'},
+		{"socket", required_argument, 0, 's'},
 		{"database", required_argument, 0, 'd'},
 		{"username", required_argument, 0, 'u'},
 		{"password", required_argument, 0, 'p'},
@@ -189,7 +192,7 @@
 		return ERROR;
 
 	while (1) {
-		c = getopt_long (argc, argv, "hvVSP:p:u:d:H:q:w:c:", longopts, &option);
+		c = getopt_long (argc, argv, "hvVSP:p:u:d:H:s:q:w:c:", longopts, &option);
 
 		if (c == -1 || c == EOF)
 			break;
@@ -203,14 +206,17 @@
 				usage2 (_("Invalid hostname/address"), optarg);
 			}
 			break;
-		case 'd':									/* hostname */
+		case 's':									/* socket */
+			db_socket = optarg;
+			break;
+		case 'd':									/* database */
 			db = optarg;
 			break;
 		case 'u':									/* username */
 			db_user = optarg;
 			break;
 		case 'p':									/* authentication information: password */
-			asprintf(&db_pass, "%s", optarg);
+			db_pass = strdup(optarg);
 
 			/* Delete the password from process list */
 			while (*optarg != '\0') {
@@ -291,10 +297,13 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 	printf (" -q, --query=STRING\n");
 	printf ("    %s\n", _("SQL query to run. Only first column in first row will be read"));
 	printf (_(UT_WARN_CRIT_RANGE));
 	printf (_(UT_HOST_PORT), 'P', myport);
+	printf (" %s\n", "-s, --socket=STRING");
+	printf ("    %s\n", _("Use the specified socket (has no effect if -H is used)"));
 	printf (" -d, --database=STRING\n");
 	printf ("    %s\n", _("Database to check"));
 	printf (" -u, --username=STRING\n");
@@ -302,11 +311,17 @@
 	printf (" -p, --password=STRING\n");
 	printf ("    %s\n", _("Password to login with"));
 	printf ("    ==> %s <==\n", _("IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!"));
+	printf ("    %s\n", _("Your clear-text password could be visible as a process table entry"));
 
 	printf ("\n");
+	printf (" %s\n", _("A query is required. The result from the query should be numeric."));
+	printf (" %s\n", _("For extra security, create a user with minimal access."));
 
-	printf ("%s\n", _("A query is required. The result from the query should be numeric."));
-	printf ("%s\n", _("For extra security, create a user with minimal access."));
+#ifdef NP_EXTRA_OPTS
+	printf ("\n");
+	printf ("%s\n", _("Notes:"));
+	printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
@@ -316,6 +331,6 @@
 print_usage (void)
 {
   printf (_("Usage:"));
-	printf ("%s -q SQL_query [-w warn] [-c crit]\n",progname);
-  printf ("[-d database] [-H host] [-P port] [-u user] [-p password]\n");
+  printf (" %s -q SQL_query [-w warn] [-c crit] [-H host] [-P port] [-s socket]\n",progname);
+  printf ("       [-d database] [-u user] [-p password]\n");
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_nagios.c nagios-plugins-1.4.12/plugins/check_nagios.c
--- nagios-plugins-1.4.11/plugins/check_nagios.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_nagios.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,45 +1,43 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_nagios plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_nagios plugin
-*
-*  This plugin checks the status of the Nagios process on the local machine
-*  The plugin will check to make sure the Nagios status log is no older than
-*  the number of minutes specified by the expires option.
-*  It also checks the process table for a process matching the command argument.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin checks the status of the Nagios process on the local machine.
+* The plugin will check to make sure the Nagios status log is no older than
+* the number of minutes specified by the expires option.
+* It also checks the process table for a process matching the command
+* argument.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_nagios.c 1590 2007-01-28 21:46:41Z hweiss $
- 
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_nagios.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_nagios";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "1999-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -90,6 +88,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage_va(_("Could not parse arguments"));
 
@@ -287,10 +288,11 @@
   printf ("%s\n", _("It also checks the process table for a process matching the command argument."));
 
   printf ("\n\n");
-  
+
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (" %s\n", "-F, --filename=FILE");
   printf ("    %s\n", _("Name of the log file to check"));
@@ -299,9 +301,17 @@
   printf (" %s\n", "-C, --command=STRING");
   printf ("    %s\n", _("Substring to search for in process arguments"));
   printf (_(UT_VERBOSE));
+
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
   printf ("\n");
   printf ("%s\n", _("Examples:"));
   printf (" %s\n", "check_nagios -e 5 -F /usr/local/nagios/var/status.log -C /usr/local/nagios/bin/nagios");
+
   printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_nt.c nagios-plugins-1.4.12/plugins/check_nt.c
--- nagios-plugins-1.4.11/plugins/check_nt.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_nt.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,44 +1,43 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_nt plugin
-*
+* 
 * License: GPL
 * Copyright (c) 2000-2002 Yves Rubin (rubiyz@yahoo.com)
-* Copyright (c) 2003-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2003-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_nt plugin
-*
-*  This plugin collects data from the NSClient service running on a
-*  Windows NT/2000/XP/2003 server.
-*  This requires NSClient software to run on NT (http://nsclient.ready2run.nl/)
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin collects data from the NSClient service running on a
+* Windows NT/2000/XP/2003 server.
+* This plugin requires NSClient software to run on NT
+* (http://nsclient.ready2run.nl/)
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_nt.c 1590 2007-01-28 21:46:41Z hweiss $
-*
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_nt.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
 *****************************************************************************/
 
 const char *progname = "check_nt";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2003-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -55,7 +54,8 @@
 	CHECK_PROCSTATE,
 	CHECK_MEMUSE,
 	CHECK_COUNTER,
-	CHECK_FILEAGE
+	CHECK_FILEAGE,
+	CHECK_INSTANCES
 };
 
 enum {
@@ -122,6 +122,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if(process_arguments(argc,argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -157,7 +160,7 @@
 			return_code=STATE_OK;
 			temp_string = strdup (_("CPU Load"));
 			temp_string_perf = strdup (" ");
-      
+
 			/* loop until one of the parameters is wrong or not present */
 			while (lvalue_list[0+offset]> (unsigned long)0 &&
 						 lvalue_list[0+offset]<=(unsigned long)17280 && 
@@ -185,7 +188,7 @@
 				asprintf(&temp_string_perf,"%s%s",temp_string_perf,perfdata);
 				offset+=3;	/* move across the array */
 			}
-      
+
 			if (strlen(temp_string)>10) {  /* we had at least one loop */
 				output_message = strdup (temp_string);
 				perfdata = temp_string_perf;
@@ -414,7 +417,7 @@
 					return_code=STATE_WARNING;	
 				else
 					return_code=STATE_OK;	
-			} 
+			}
 			else {                                       /* inverse thresholds */
 				if(check_critical_value==TRUE && age_in_minutes <= critical_value)
 					return_code=STATE_CRITICAL;
@@ -426,6 +429,21 @@
 		}
 		break;
 
+	case CHECK_INSTANCES:		
+		if (value_list==NULL)
+			output_message = strdup (_("No counter specified"));
+		else {
+			asprintf(&send_buffer,"%s&10&%s", req_password,value_list);
+			fetch_data (server_address, server_port, send_buffer);
+			if (!strncmp(recv_buffer,"ERROR",5)) {
+				printf("NSClient - %s\n",recv_buffer);
+				exit(STATE_UNKNOWN);
+			}
+			asprintf(&output_message,"%s",recv_buffer);			
+			return_code=STATE_OK;
+		}
+		break;
+
 	case CHECK_NONE:
 	default:
 		usage4 (_("Please specify a variable to check"));
@@ -483,14 +501,13 @@
       strcpy(argv[c],"-c");
 	}
 
-	while (1){
+	while (1) {
 		c = getopt_long(argc,argv,"+hVH:t:c:w:p:v:l:s:d:",longopts,&option);
 
 		if (c==-1||c==EOF||c==1)
 			break;
 
-		switch (c)
-			{
+		switch (c) {
 			case '?': /* print short usage statement if args not parsable */
 			usage5 ();
 			case 'h': /* help */
@@ -533,6 +550,8 @@
 					vars_to_check=CHECK_COUNTER;
 				else if(!strcmp(optarg,"FILEAGE"))
 					vars_to_check=CHECK_FILEAGE;
+				else if(!strcmp(optarg,"INSTANCES"))
+					vars_to_check=CHECK_INSTANCES;
 				else
 					return ERROR;
 				break;
@@ -624,12 +643,13 @@
   printf ("%s\n", _("Windows NT/2000/XP/2003 server."));
 
   printf ("\n\n");
-  
+
 	print_usage();
 	
   printf (_(UT_HELP_VRSN));
+  printf (_(UT_EXTRA_OPTS));
 
-    printf ("%s\n", _("Options:"));
+  printf ("%s\n", _("Options:"));
   printf (" %s\n", "-H, --hostname=HOST");
   printf ("   %s\n", _("Name of the host to check"));
   printf (" %s\n", "-p, --port=INTEGER");
@@ -671,7 +691,7 @@
   printf (" %s\n", "MEMUSE =");
   printf ("  %s\n", _("Memory use."));
   printf ("  %s\n", _("Warning and critical thresholds can be specified with -w and -c."));
-  printf (" %s\n,", "SERVICESTATE =");
+  printf (" %s\n", "SERVICESTATE =");
   printf ("  %s\n", _("Check the state of one or several services."));
   printf ("  %s\n", _("Request a -l parameters with the following syntax:"));
   printf ("  %s\n", _("-l <service1>,<service2>,<service3>,..."));
@@ -686,18 +706,38 @@
   printf ("  %s\n", _("-l \"\\\\<performance object>\\\\counter\",\"<description>"));
   printf ("  %s\n", _("The <description> parameter is optional and is given to a printf "));
   printf ("  %s\n", _("output command which requires a float parameter."));
-  printf ("  %s\n\n", _("If <description> does not include \"%%\", it is used as a label."));
+  printf ("  %s\n", _("If <description> does not include \"%%\", it is used as a label."));
   printf ("  %s\n", _("Some examples:"));
   printf ("  %s\n", "\"Paging file usage is %%.2f %%%%\"");
-  printf ("  %s\n\n", "\"%%.f %%%% paging file used.\"");
-  printf (_("Notes:"));
+  printf ("  %s\n", "\"%%.f %%%% paging file used.\"");
+  printf (" %s\n", "INSTANCES =");  
+  printf ("  %s\n", _("Check any performance counter object of Windows NT/2000."));
+  printf ("  %s\n", _("Syntax: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object>"));
+  printf ("  %s\n", _("<counter object> is a Windows Perfmon Counter object (eg. Process),"));
+  printf ("  %s\n", _("if it is two words, it should be enclosed in quotes"));
+  printf ("  %s\n", _("The returned results will be a comma-separated list of instances on "));
+  printf ("  %s\n", _(" the selected computer for that object."));
+  printf ("  %s\n", _("The purpose of this is to be run from command line to determine what instances"));
+  printf ("  %s\n", _(" are available for monitoring without having to log onto the Windows server"));
+  printf ("  %s\n", _("  to run Perfmon directly."));
+  printf ("  %s\n", _("It can also be used in scripts that automatically create Nagios service"));
+  printf ("  %s\n", _(" configuration files."));
+  printf ("  %s\n", _("Some examples:"));
+  printf ("  %s\n\n", _("check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process"));
+
+  printf ("%s\n", _("Notes:"));
   printf (" %s\n", _("- The NSClient service should be running on the server to get any information"));
-  printf (" %s\n", "(http://nsclient.ready2run.nl).");
+  printf ("   %s\n", "(http://nsclient.ready2run.nl).");
   printf (" %s\n", _("- Critical thresholds should be lower than warning thresholds"));
   printf (" %s\n", _("- Default port 1248 is sometimes in use by other services. The error"));
-  printf (" %s\n", _("output when this happens contains \"Cannot map xxxxx to protocol number\"."));
-  printf (" %s\n", _("One fix for this is to change the port to something else on check_nt "));
-  printf (" %s\n", _("and on the client service it\'s connecting to."));
+  printf ("   %s\n", _("output when this happens contains \"Cannot map xxxxx to protocol number\"."));
+  printf ("   %s\n", _("One fix for this is to change the port to something else on check_nt "));
+  printf ("   %s\n", _("and on the client service it\'s connecting to."));
+#ifdef NP_EXTRA_OPTS
+  printf (" -%s", _(UT_EXTRA_OPTS_NOTES));
+#endif
+
+  printf (_(UT_SUPPORT));
 }
 
 
diff -uNr nagios-plugins-1.4.11/plugins/check_ntp.c nagios-plugins-1.4.12/plugins/check_ntp.c
--- nagios-plugins-1.4.11/plugins/check_ntp.c	2007-12-11 06:57:35.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_ntp.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,44 +1,41 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_ntp plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2006 sean finney <seanius@seanius.net>
-* Copyright (c) 2007 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
-*
+* Copyright (c) 2006 Sean Finney <seanius@seanius.net>
+* Copyright (c) 2006-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_ntp plugin
-*
-*  This plugin to check ntp servers independant of any commandline
-*  programs or external libraries.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin to check ntp servers independant of any commandline
+* programs or external libraries.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_ntp.c 1861 2007-12-11 05:57:35Z dermoth $
- 
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_ntp.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
 *****************************************************************************/
 
 const char *progname = "check_ntp";
-const char *revision = "$Revision: 1861 $";
-const char *copyright = "2007";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2006-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -302,50 +299,52 @@
  * this is done by filtering servers based on stratum, dispersion, and
  * finally round-trip delay. */
 int best_offset_server(const ntp_server_results *slist, int nservers){
-	int i=0, j=0, cserver=0, candidates[5], csize=0;
+	int i=0, cserver=0, best_server=-1;
 
 	/* for each server */
 	for(cserver=0; cserver<nservers; cserver++){
-		/* sort out servers with error flags */
-		if ( LI(slist[cserver].flags) != LI_NOWARNING ){
-			if (verbose) printf("discarding peer id %d: flags=%d\n", cserver, LI(slist[cserver].flags));
-			break;
-		}
-
-		/* compare it to each of the servers already in the candidate list */
-		for(i=0; i<csize; i++){
-			/* does it have an equal or better stratum? */
-			if(slist[cserver].stratum <= slist[i].stratum){
-				/* does it have an equal or better dispersion? */
-				if(slist[cserver].rtdisp <= slist[i].rtdisp){
-					/* does it have a better rtdelay? */
-					if(slist[cserver].rtdelay < slist[i].rtdelay){
-						break;
-					}
+		/* We don't want any servers that fails these tests */
+		/* Sort out servers that didn't respond or responede with a 0 stratum;
+		 * stratum 0 is for reference clocks so no NTP server should ever report
+		 * a stratum 0 */
+		if ( slist[cserver].stratum == 0){
+			if (verbose) printf("discarding peer %d: stratum=%d\n", cserver, slist[cserver].stratum);
+			continue;
+		}
+		/* Sort out servers with error flags */
+		if ( LI(slist[cserver].flags) == LI_ALARM ){
+			if (verbose) printf("discarding peer %d: flags=%d\n", cserver, LI(slist[cserver].flags));
+			continue;
+		}
+
+		/* If we don't have a server yet, use the first one */
+		if (best_server == -1) {
+			best_server = cserver;
+			DBG(printf("using peer %d as our first candidate\n", best_server));
+			continue;
+		}
+
+		/* compare the server to the best one we've seen so far */
+		/* does it have an equal or better stratum? */
+		DBG(printf("comparing peer %d with peer %d\n", cserver, best_server));
+		if(slist[cserver].stratum <= slist[best_server].stratum){
+			DBG(printf("stratum for peer %d <= peer %d\n", cserver, best_server));
+			/* does it have an equal or better dispersion? */
+			if(slist[cserver].rtdisp <= slist[best_server].rtdisp){
+				DBG(printf("dispersion for peer %d <= peer %d\n", cserver, best_server));
+				/* does it have a better rtdelay? */
+				if(slist[cserver].rtdelay < slist[best_server].rtdelay){
+					DBG(printf("rtdelay for peer %d < peer %d\n", cserver, best_server));
+					best_server = cserver;
+					DBG(printf("peer %d is now our best candidate\n", best_server));
 				}
 			}
 		}
-
-		/* if we haven't reached the current list's end, move everyone
-		 * over one to the right, and insert the new candidate */
-		if(i<csize){
-			for(j=5; j>i; j--){
-				candidates[j]=candidates[j-1];
-			}
-		}
-		/* regardless, if they should be on the list... */
-		if(i<5) {
-			candidates[i]=cserver;
-			if(csize<5) csize++;
-		/* otherwise discard the server */
-		} else {
-			DBG(printf("discarding peer id %d\n", cserver));
-		}
 	}
 
-	if(csize>0) {
-		DBG(printf("best server selected: peer %d\n", candidates[0]));
-		return candidates[0];
+	if(best_server >= 0) {
+		DBG(printf("best server selected: peer %d\n", best_server));
+		return best_server;
 	} else {
 		DBG(printf("no peers meeting synchronization criteria :(\n"));
 		return -1;
@@ -392,6 +391,7 @@
 	servers=(ntp_server_results*)malloc(sizeof(ntp_server_results)*num_hosts);
 	if(servers==NULL) die(STATE_UNKNOWN, "can not allocate server array");
 	memset(servers, 0, sizeof(ntp_server_results)*num_hosts);
+	DBG(printf("Found %d peers to check\n", num_hosts));
 
 	/* setup each socket for writing, and the corresponding struct pollfd */
 	ai_tmp=ai;
@@ -763,6 +763,9 @@
 
 	result = offset_result = jitter_result = STATE_OK;
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -837,45 +840,54 @@
 
 	printf ("Copyright (c) 2006 Sean Finney\n");
 	printf (COPYRIGHT, copyright, email);
-  
-  printf ("%s\n", _("This plugin checks the selected ntp server"));
 
-  printf ("\n\n");
-  
+	printf ("%s\n", _("This plugin checks the selected ntp server"));
+
+	printf ("\n\n");
+
 	print_usage();
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 	printf (_(UT_HOST_PORT), 'p', "123");
 	printf (" %s\n", "-w, --warning=THRESHOLD");
 	printf ("    %s\n", _("Offset to result in warning status (seconds)"));
 	printf (" %s\n", "-c, --critical=THRESHOLD");
 	printf ("    %s\n", _("Offset to result in critical status (seconds)"));
-	printf (" %s\n", "-j, --warning=THRESHOLD");
+	printf (" %s\n", "-j, --jwarn=THRESHOLD");
 	printf ("    %s\n", _("Warning threshold for jitter"));
-	printf (" %s\n", "-k, --critical=THRESHOLD");
+	printf (" %s\n", "-k, --jcrit=THRESHOLD");
 	printf ("    %s\n", _("Critical threshold for jitter"));
 	printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
 	printf (_(UT_VERBOSE));
 
 	printf("\n");
 	printf("%s\n", _("Notes:"));
-	printf(" %s\n", _("See:"));
-	printf(" %s\n", ("http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT"));
-	printf(" %s\n", _("for THRESHOLD format and examples."));
+	printf(_(UT_THRESHOLDS_NOTES));
+#ifdef NP_EXTRA_OPTS
+	printf("\n");
+	printf(_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf("\n");
 	printf("%s\n", _("Examples:"));
 	printf(" %s\n", _("Normal offset check:"));
 	printf("  %s\n", ("./check_ntp -H ntpserv -w 0.5 -c 1"));
+	printf("\n");
 	printf(" %s\n", _("Check jitter too, avoiding critical notifications if jitter isn't available"));
 	printf(" %s\n", _("(See Notes above for more details on thresholds formats):"));
 	printf("  %s\n", ("./check_ntp -H ntpserv -w 0.5 -c 1 -j -1:100 -k -1:200"));
 
 	printf (_(UT_SUPPORT));
+
+	printf ("%s\n", _("WARNING: check_ntp is deprecated. Please use check_ntp_peer or"));
+	printf ("%s\n\n", _("check_ntp_time istead."));
 }
 
 void
 print_usage(void)
 {
-  printf (_("Usage:"));
-  printf(" %s -H <host> [-w <warn>] [-c <crit>] [-j <warn>] [-k <crit>] [-v verbose]\n", progname);
+	printf ("%s\n", _("WARNING: check_ntp is deprecated. Please use check_ntp_peer or"));
+	printf ("%s\n\n", _("check_ntp_time istead."));
+	printf (_("Usage:"));
+	printf(" %s -H <host> [-w <warn>] [-c <crit>] [-j <warn>] [-k <crit>] [-v verbose]\n", progname);
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_ntp_peer.c nagios-plugins-1.4.12/plugins/check_ntp_peer.c
--- nagios-plugins-1.4.11/plugins/check_ntp_peer.c	2007-12-11 14:31:22.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_ntp_peer.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,49 +1,46 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_ntp_peer plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2006 sean finney <seanius@seanius.net>
-* Copyright (c) 2007 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-11 13:31:22 +0000 (Tue, 11 Dec 2007) $
-*
+* Copyright (c) 2006 Sean Finney <seanius@seanius.net>
+* Copyright (c) 2006-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_ntp_peer plugin
-*
-*  This plugin checks an NTP server independent of any commandline
-*  programs or external libraries.
-*
-*  Use this plugin to check the health of an NTP server. It supports
-*  checking the offset with the sync peer, the jitter and stratum. This
-*  plugin will not check the clock offset between the local host and NTP
-*  server; please use check_ntp_time for that purpose.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin checks an NTP server independent of any commandline
+* programs or external libraries.
+* 
+* Use this plugin to check the health of an NTP server. It supports
+* checking the offset with the sync peer, the jitter and stratum. This
+* plugin will not check the clock offset between the local host and NTP
+* server; please use check_ntp_time for that purpose.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_ntp_peer.c 1864 2007-12-11 13:31:22Z dermoth $
- 
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_ntp_peer.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
 *****************************************************************************/
 
 const char *progname = "check_ntp_peer";
-const char *revision = "$Revision: 1864 $";
-const char *copyright = "2007";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2006-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -63,6 +60,7 @@
 static char *jwarn="-1:5000";
 static char *jcrit="-1:10000";
 static int syncsource_found=0;
+static int li_alarm=0;
 
 int process_arguments (int, char **);
 thresholds *offset_thresholds = NULL;
@@ -267,6 +265,7 @@
 		if(read(conn, &req, SIZEOF_NTPCM(req)) == -1)
 			die(STATE_CRITICAL, "NTP CRITICAL: No response from NTP server\n");
 		DBG(print_ntp_control_message(&req));
+		if (LI(req.flags) == LI_ALARM) li_alarm = 1;
 		/* Each peer identifier is 4 bytes in the data section, which
 	 	 * we represent as a ntp_assoc_status_pair datatype.
 	 	 */
@@ -297,6 +296,10 @@
 		status = STATE_WARNING;
 		if(verbose) printf("warning: no synchronization source found\n");
 	}
+	if(li_alarm){
+		status = STATE_WARNING;
+		if(verbose) printf("warning: LI_ALARM bit is set\n");
+	}
 
 
 	for (i = 0; i < npeers; i++){
@@ -549,6 +552,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -597,6 +603,8 @@
 	}
 	if(!syncsource_found)
 		asprintf(&result_line, "%s %s,", result_line, _("Server not synchronized"));
+	else if(li_alarm)
+		asprintf(&result_line, "%s %s,", result_line, _("Server has the LI_ALARM bit set"));
 
 	if(offset_result == STATE_UNKNOWN){
 		asprintf(&result_line, "%s %s", result_line, _("Offset unknown"));
@@ -633,6 +641,7 @@
 
 	print_usage();
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 	printf (_(UT_HOST_PORT), 'p', "123");
 	printf (" %s\n", "-q, --quiet");
 	printf ("    %s\n", _("Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized"));
@@ -640,37 +649,42 @@
 	printf ("    %s\n", _("Offset to result in warning status (seconds)"));
 	printf (" %s\n", "-c, --critical=THRESHOLD");
 	printf ("    %s\n", _("Offset to result in critical status (seconds)"));
-	printf (" %s\n", "-W, --warning=THRESHOLD");
+	printf (" %s\n", "-W, --swarn=THRESHOLD");
 	printf ("    %s\n", _("Warning threshold for stratum"));
-	printf (" %s\n", "-W, --critical=THRESHOLD");
+	printf (" %s\n", "-C, --scrit=THRESHOLD");
 	printf ("    %s\n", _("Critical threshold for stratum"));
-	printf (" %s\n", "-j, --warning=THRESHOLD");
+	printf (" %s\n", "-j, --jwarn=THRESHOLD");
 	printf ("    %s\n", _("Warning threshold for jitter"));
-	printf (" %s\n", "-k, --critical=THRESHOLD");
+	printf (" %s\n", "-k, --jcrit=THRESHOLD");
 	printf ("    %s\n", _("Critical threshold for jitter"));
 	printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
 	printf (_(UT_VERBOSE));
 
 	printf("\n");
+	printf("%s\n", _("This plugin checks an NTP server independent of any commandline"));
+	printf("%s\n\n", _("programs or external libraries."));
+
 	printf("%s\n", _("Notes:"));
-	printf(" %s\n", _("This plugin checks an NTP server independent of any commandline"));
-	printf(" %s\n\n", _("programs or external libraries."));
 	printf(" %s\n", _("Use this plugin to check the health of an NTP server. It supports"));
 	printf(" %s\n", _("checking the offset with the sync peer, the jitter and stratum. This"));
 	printf(" %s\n", _("plugin will not check the clock offset between the local host and NTP"));
-	printf(" %s\n\n", _("server; please use check_ntp_time for that purpose."));
-
-	printf(" %s\n", _("See:"));
-	printf(" %s\n", ("http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT"));
-	printf(" %s\n", _("for THRESHOLD format and examples."));
+	printf(" %s\n", _("server; please use check_ntp_time for that purpose."));
+	printf("\n");
+	printf(_(UT_THRESHOLDS_NOTES));
+#ifdef NP_EXTRA_OPTS
+	printf("\n");
+	printf(_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf("\n");
 	printf("%s\n", _("Examples:"));
 	printf(" %s\n", _("Simple NTP server check:"));
 	printf("  %s\n", ("./check_ntp_peer -H ntpserv -w 0.5 -c 1"));
+	printf("\n");
 	printf(" %s\n", _("Check jitter too, avoiding critical notifications if jitter isn't available"));
 	printf(" %s\n", _("(See Notes above for more details on thresholds formats):"));
 	printf("  %s\n", ("./check_ntp_peer -H ntpserv -w 0.5 -c 1 -j -1:100 -k -1:200"));
+	printf("\n");
 	printf(" %s\n", _("Check only stratum:"));
 	printf("  %s\n", ("./check_ntp_peer -H ntpserv -W 4 -C 6"));
 
diff -uNr nagios-plugins-1.4.11/plugins/check_ntp_time.c nagios-plugins-1.4.12/plugins/check_ntp_time.c
--- nagios-plugins-1.4.11/plugins/check_ntp_time.c	2007-12-11 06:57:35.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_ntp_time.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,48 +1,45 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_ntp_time plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2006 sean finney <seanius@seanius.net>
-* Copyright (c) 2007 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
-*
+* Copyright (c) 2006 Sean Finney <seanius@seanius.net>
+* Copyright (c) 2006-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_ntp_time plugin
-*
-*  This plugin checks the clock offset between the local host and a
-*  remote NTP server. It is independent of any commandline programs or
-*  external libraries.
-*
-*  If you'd rather want to monitor an NTP server, please use
-*  check_ntp_peer.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin checks the clock offset between the local host and a
+* remote NTP server. It is independent of any commandline programs or
+* external libraries.
+* 
+* If you'd rather want to monitor an NTP server, please use
+* check_ntp_peer.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_ntp_time.c 1861 2007-12-11 05:57:35Z dermoth $
- 
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_ntp_time.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
 *****************************************************************************/
 
 const char *progname = "check_ntp_time";
-const char *revision = "$Revision: 1861 $";
-const char *copyright = "2007";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2006-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -247,50 +244,52 @@
  * this is done by filtering servers based on stratum, dispersion, and
  * finally round-trip delay. */
 int best_offset_server(const ntp_server_results *slist, int nservers){
-	int i=0, j=0, cserver=0, candidates[5], csize=0;
+	int i=0, cserver=0, best_server=-1;
 
 	/* for each server */
 	for(cserver=0; cserver<nservers; cserver++){
-		/* sort out servers with error flags */
-		if ( LI(slist[cserver].flags) != LI_NOWARNING ){
-			if (verbose) printf("discarding peer id %d: flags=%d\n", cserver, LI(slist[cserver].flags));
-			break;
-		}
-
-		/* compare it to each of the servers already in the candidate list */
-		for(i=0; i<csize; i++){
-			/* does it have an equal or better stratum? */
-			if(slist[cserver].stratum <= slist[i].stratum){
-				/* does it have an equal or better dispersion? */
-				if(slist[cserver].rtdisp <= slist[i].rtdisp){
-					/* does it have a better rtdelay? */
-					if(slist[cserver].rtdelay < slist[i].rtdelay){
-						break;
-					}
+		/* We don't want any servers that fails these tests */
+		/* Sort out servers that didn't respond or responede with a 0 stratum;
+		 * stratum 0 is for reference clocks so no NTP server should ever report
+		 * a stratum 0 */
+		if ( slist[cserver].stratum == 0){
+			if (verbose) printf("discarding peer %d: stratum=%d\n", cserver, slist[cserver].stratum);
+			continue;
+		}
+		/* Sort out servers with error flags */
+		if ( LI(slist[cserver].flags) == LI_ALARM ){
+			if (verbose) printf("discarding peer %d: flags=%d\n", cserver, LI(slist[cserver].flags));
+			continue;
+		}
+
+		/* If we don't have a server yet, use the first one */
+		if (best_server == -1) {
+			best_server = cserver;
+			DBG(printf("using peer %d as our first candidate\n", best_server));
+			continue;
+		}
+
+		/* compare the server to the best one we've seen so far */
+		/* does it have an equal or better stratum? */
+		DBG(printf("comparing peer %d with peer %d\n", cserver, best_server));
+		if(slist[cserver].stratum <= slist[best_server].stratum){
+			DBG(printf("stratum for peer %d <= peer %d\n", cserver, best_server));
+			/* does it have an equal or better dispersion? */
+			if(slist[cserver].rtdisp <= slist[best_server].rtdisp){
+				DBG(printf("dispersion for peer %d <= peer %d\n", cserver, best_server));
+				/* does it have a better rtdelay? */
+				if(slist[cserver].rtdelay < slist[best_server].rtdelay){
+					DBG(printf("rtdelay for peer %d < peer %d\n", cserver, best_server));
+					best_server = cserver;
+					DBG(printf("peer %d is now our best candidate\n", best_server));
 				}
 			}
 		}
-
-		/* if we haven't reached the current list's end, move everyone
-		 * over one to the right, and insert the new candidate */
-		if(i<csize){
-			for(j=5; j>i; j--){
-				candidates[j]=candidates[j-1];
-			}
-		}
-		/* regardless, if they should be on the list... */
-		if(i<5) {
-			candidates[i]=cserver;
-			if(csize<5) csize++;
-		/* otherwise discard the server */
-		} else {
-			DBG(printf("discarding peer id %d\n", cserver));
-		}
 	}
 
-	if(csize>0) {
-		DBG(printf("best server selected: peer %d\n", candidates[0]));
-		return candidates[0];
+	if(best_server >= 0) {
+		DBG(printf("best server selected: peer %d\n", best_server));
+		return best_server;
 	} else {
 		DBG(printf("no peers meeting synchronization criteria :(\n"));
 		return -1;
@@ -337,6 +336,7 @@
 	servers=(ntp_server_results*)malloc(sizeof(ntp_server_results)*num_hosts);
 	if(servers==NULL) die(STATE_UNKNOWN, "can not allocate server array");
 	memset(servers, 0, sizeof(ntp_server_results)*num_hosts);
+	DBG(printf("Found %d peers to check\n", num_hosts));
 
 	/* setup each socket for writing, and the corresponding struct pollfd */
 	ai_tmp=ai;
@@ -540,6 +540,9 @@
 
 	result = offset_result = STATE_OK;
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -597,6 +600,7 @@
 
 	print_usage();
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 	printf (_(UT_HOST_PORT), 'p', "123");
 	printf (" %s\n", "-q, --quiet");
 	printf ("    %s\n", _("Returns UNKNOWN instead of CRITICAL if offset cannot be found"));
@@ -608,16 +612,20 @@
 	printf (_(UT_VERBOSE));
 
 	printf("\n");
+	printf("%s\n", _("This plugin checks the clock offset between the local host and a"));
+	printf("%s\n", _("remote NTP server. It is independent of any commandline programs or"));
+	printf("%s\n", _("external libraries."));
+
+	printf("\n");
 	printf("%s\n", _("Notes:"));
-	printf(" %s\n", _("This plugin checks the clock offset between the local host and a"));
-	printf(" %s\n", _("remote NTP server. It is independent of any commandline programs or"));
-	printf(" %s\n\n", _("external libraries."));
 	printf(" %s\n", _("If you'd rather want to monitor an NTP server, please use"));
-	printf(" %s\n\n", _("check_ntp_peer."));
-
-	printf(" %s\n", _("See:"));
-	printf(" %s\n", ("http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT"));
-	printf(" %s\n", _("for THRESHOLD format and examples."));
+	printf(" %s\n", _("check_ntp_peer."));
+	printf("\n");
+	printf(_(UT_THRESHOLDS_NOTES));
+#ifdef NP_EXTRA_OPTS
+	printf("\n");
+	printf(_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf("\n");
 	printf("%s\n", _("Examples:"));
@@ -630,7 +638,6 @@
 print_usage(void)
 {
 	printf (_("Usage:"));
-	printf(" %s -H <host> [-w <warn>] [-c <crit>] [-W <warn>] [-C <crit>]\n", progname);
-	printf("       [-j <warn>] [-k <crit>] [-v verbose]\n");
+	printf(" %s -H <host> [-w <warn>] [-c <crit>] [-v verbose]\n", progname);
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_nwstat.c nagios-plugins-1.4.12/plugins/check_nwstat.c
--- nagios-plugins-1.4.11/plugins/check_nwstat.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_nwstat.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,43 +1,40 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_nwstat plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2000-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_nwstat plugin
-*
-*  This plugin attempts to contact the MRTGEXT NLM running on a
-*  Novell server to gather the requested system information.
 * 
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* This plugin attempts to contact the MRTGEXT NLM running on a
+* Novell server to gather the requested system information.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_nwstat.c 1590 2007-01-28 21:46:41Z hweiss $
- 
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_nwstat.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_nwstat";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -173,6 +170,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts(&argc, argv, progname);
+
 	if (process_arguments(argc,argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -521,14 +521,14 @@
 			result=STATE_OK;
 		else
 			result=STATE_WARNING;
- 
+
 		close(sd);
 		my_tcp_connect (server_address, server_port, &sd);
 
 		send_buffer = strdup ("S13\r\n");
 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
 		temp_buffer=strtok(recv_buffer,"\r\n");
- 
+
 		asprintf (&output_message,_("Directory Services Database is %s (DS version %s)"),(result==STATE_OK)?"open":"closed",temp_buffer);
 
 		/* check to see if logins are enabled */
@@ -596,7 +596,7 @@
 			return result;
 
 		max_packet_receive_buffers=atoi(recv_buffer);
- 
+
 		percent_used_packet_receive_buffers=(unsigned long)(((double)used_packet_receive_buffers/(double)max_packet_receive_buffers)*100.0);
 
 		if (vars_to_check==UPRB) {
@@ -610,7 +610,7 @@
 			else if (check_warning_value==TRUE && percent_used_packet_receive_buffers >= warning_value)
 				result=STATE_WARNING;
 		}
- 
+
 		asprintf (&output_message,_("%lu of %lu (%lu%%) packet receive buffers used"),used_packet_receive_buffers,max_packet_receive_buffers,percent_used_packet_receive_buffers);
 
 		/* check SAP table entries */
@@ -626,9 +626,9 @@
 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
 		if (result!=STATE_OK)
 			return result;
- 
+
 		sap_entries=atoi(recv_buffer);
- 
+
 		if (check_critical_value==TRUE && sap_entries >= critical_value)
 			result=STATE_CRITICAL;
 		else if (check_warning_value==TRUE && sap_entries >= warning_value)
@@ -814,9 +814,9 @@
 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
 		if (result!=STATE_OK)
 			return result;
- 
+
 		open_files=atoi(recv_buffer);
- 
+
 		if (check_critical_value==TRUE && open_files >= critical_value)
 			result=STATE_CRITICAL;
 		else if (check_warning_value==TRUE && open_files >= warning_value)
@@ -839,9 +839,9 @@
 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
 		if (result!=STATE_OK)
 			return result;
- 
+
 		abended_threads=atoi(recv_buffer);
- 
+
 		if (check_critical_value==TRUE && abended_threads >= critical_value)
 			result=STATE_CRITICAL;
 		else if (check_warning_value==TRUE && abended_threads >= warning_value)
@@ -863,9 +863,9 @@
 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
 		if (result!=STATE_OK)
 			return result;
- 
+
 		max_service_processes=atoi(recv_buffer);
- 
+
 		close(sd);
 		my_tcp_connect (server_address, server_port, &sd);
 
@@ -873,9 +873,9 @@
 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
 		if (result!=STATE_OK)
 			return result;
- 
+
 		current_service_processes=atoi(recv_buffer);
- 
+
 		if (check_critical_value==TRUE && current_service_processes >= critical_value)
 			result=STATE_CRITICAL;
 		else if (check_warning_value==TRUE && current_service_processes >= warning_value)
@@ -1610,6 +1610,7 @@
 	print_usage();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', myport);
 
@@ -1676,7 +1677,10 @@
   printf (" %s\n", _("  (available from http://www.engr.wisc.edu/~drews/mrtg/)"));
   printf (" %s\n", _("- Values for critical thresholds should be lower than warning thresholds"));
   printf (" %s\n", _("  when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, "));
-  printf (" %S\n", _("  TCB, LRUS and LRUM.\n"));
+  printf (" %s\n", _("  TCB, LRUS and LRUM."));
+#ifdef NP_EXTRA_OPTS
+  printf (" -%s", _(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_overcr.c nagios-plugins-1.4.12/plugins/check_overcr.c
--- nagios-plugins-1.4.11/plugins/check_overcr.c	2007-02-06 22:03:21.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_overcr.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,43 +1,40 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_overcr plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2000-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-02-06 21:03:21 +0000 (Tue, 06 Feb 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_overcr plugin
-*
-*  This plugin attempts to contact the Over-CR collector daemon running on the
-*  remote UNIX server in order to gather the requested system information.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin attempts to contact the Over-CR collector daemon running on the
+* remote UNIX server in order to gather the requested system information.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_overcr.c 1611 2007-02-06 21:03:21Z opensides $
- 
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_overcr.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_overcr";
-const char *revision = "$Revision: 1611 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -102,6 +99,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -428,6 +428,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', myport);
 
@@ -448,17 +449,22 @@
 	printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
 
   printf (_(UT_VERBOSE));
-  printf ("\n");
-  printf ("%s\n", _("Notes:"));
-  
-  printf ("%s\n", _("For the available options, the critical threshold value should always be"));
-  printf ("%s\n\n", _("higher than the warning threshold value, EXCEPT with the uptime variable"));
 
-  printf ("%s\n", _("This plugin requres that Eric Molitors' Over-CR collector daemon be"));
+  printf ("\n");
+  printf ("%s\n", _("This plugin requires that Eric Molitors' Over-CR collector daemon be"));
   printf ("%s\n", _("running on the remote server."));
-  printf ("%s\n", " Over-CR can be downloaded from http://www.molitor.org/overcr");
+  printf ("%s\n", _("Over-CR can be downloaded from http://www.molitor.org/overcr"));
   printf ("%s\n", _("This plugin was tested with version 0.99.53 of the Over-CR collector"));
 
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (" %s\n", _("For the available options, the critical threshold value should always be"));
+  printf (" %s\n", _("higher than the warning threshold value, EXCEPT with the uptime variable"));
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
   printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_pgsql.c nagios-plugins-1.4.12/plugins/check_pgsql.c
--- nagios-plugins-1.4.11/plugins/check_pgsql.c	2008-05-15 20:55:02.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_pgsql.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,42 +1,39 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_pgsql plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_pgsql plugin
-*
-*  Test whether a PostgreSQL Database is accepting connections.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* Test whether a PostgreSQL Database is accepting connections.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_pgsql.c 1590 2007-01-28 21:46:41Z hweiss $
- 
- *****************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_pgsql.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_pgsql";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "1999-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -44,7 +41,7 @@
 
 #include "netutils.h"
 #include <libpq-fe.h>
-#include <pgsql/inernal/c.h>
+#include <pg_config_manual.h>
 
 #define DEFAULT_DB "template1"
 #define DEFAULT_HOST "127.0.0.1"
@@ -153,6 +150,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -415,6 +415,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'P', myport);
 
@@ -441,13 +442,21 @@
   printf (" %s\n", _("specified database, and then disconnects. If no database is specified, it"));
   printf (" %s\n", _("connects to the template1 database, which is present in every functioning"));
   printf (" %s\n\n", _("PostgreSQL DBMS."));
+
 	printf (" %s\n", _("The plugin will connect to a local postmaster if no host is specified. To"));
   printf (" %s\n", _("connect to a remote host, be sure that the remote postmaster accepts TCP/IP"));
   printf (" %s\n\n", _("connections (start the postmaster with the -i option)."));
+
 	printf (" %s\n", _("Typically, the nagios user (unless the --logname option is used) should be"));
   printf (" %s\n", _("able to connect to the database without a password. The plugin can also send"));
   printf (" %s\n", _("a password, but no effort is made to obsure or encrypt the password."));
 
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
 	printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_pgsql.c.orig nagios-plugins-1.4.12/plugins/check_pgsql.c.orig
--- nagios-plugins-1.4.11/plugins/check_pgsql.c.orig	2008-05-15 20:52:34.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_pgsql.c.orig	1970-01-01 01:00:00.000000000 +0100
@@ -1,461 +0,0 @@
-/******************************************************************************
-*
-* Nagios check_pgsql plugin
-*
-* License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
-* Description:
-*
-* This file contains the check_pgsql plugin
-*
-*  Test whether a PostgreSQL Database is accepting connections.
-*
-*
-* License Information:
-*
-* 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_pgsql.c 1590 2007-01-28 21:46:41Z hweiss $
- 
- *****************************************************************************/
-
-const char *progname = "check_pgsql";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "1999-2006";
-const char *email = "nagiosplug-devel@lists.sourceforge.net";
-
-#include "common.h"
-#include "utils.h"
-
-#include "netutils.h"
-#include <libpq-fe.h>
-
-#define DEFAULT_DB "template1"
-#define DEFAULT_HOST "127.0.0.1"
-
-enum {
-	DEFAULT_PORT = 5432,
-	DEFAULT_WARN = 2,
-	DEFAULT_CRIT = 8
-};
-
-
-
-int process_arguments (int, char **);
-int validate_arguments (void);
-void print_usage (void);
-void print_help (void);
-int is_pg_dbname (char *);
-int is_pg_logname (char *);
-
-char *pghost = NULL;						/* host name of the backend server */
-char *pgport = NULL;						/* port of the backend server */
-int default_port = DEFAULT_PORT;
-char *pgoptions = NULL;
-char *pgtty = NULL;
-char dbName[NAMEDATALEN] = DEFAULT_DB;
-char *pguser = NULL;
-char *pgpasswd = NULL;
-double twarn = (double)DEFAULT_WARN;
-double tcrit = (double)DEFAULT_CRIT;
-
-PGconn *conn;
-/*PGresult   *res;*/
-
-
-/******************************************************************************
-
-The (psuedo?)literate programming XML is contained within \@\@\- <XML> \-\@\@
-tags in the comments. With in the tags, the XML is assembled sequentially.
-You can define entities in tags. You also have all the #defines available as
-entities.
-
-Please note that all tags must be lowercase to use the DocBook XML DTD.
-
-@@-<article>
-
-<sect1>
-<title>Quick Reference</title>
-<!-- The refentry forms a manpage -->
-<refentry>
-<refmeta>
-<manvolnum>5<manvolnum>
-</refmeta>
-<refnamdiv>
-<refname>&progname;</refname>
-<refpurpose>&SUMMARY;</refpurpose>
-</refnamdiv>
-</refentry>
-</sect1>
-
-<sect1>
-<title>FAQ</title>
-</sect1>
-
-<sect1>
-<title>Theory, Installation, and Operation</title>
-
-<sect2>
-<title>General Description</title>
-<para>
-&DESCRIPTION;
-</para>
-</sect2>
-
-<sect2>
-<title>Future Enhancements</title>
-<para>ToDo List</para>
-<itemizedlist>
-<listitem>Add option to get password from a secured file rather than the command line</listitem>
-<listitem>Add option to specify the query to execute</listitem>
-</itemizedlist>
-</sect2>
-
-
-<sect2>
-<title>Functions</title>
--@@
-******************************************************************************/
-
-
-
-int
-main (int argc, char **argv)
-{
-	int elapsed_time;
-	int status = STATE_UNKNOWN;
-
-	/* begin, by setting the parameters for a backend connection if the
-	 * parameters are null, then the system will try to use reasonable
-	 * defaults by looking up environment variables or, failing that,
-	 * using hardwired constants */
-
-	pgoptions = NULL;  /* special options to start up the backend server */
-	pgtty = NULL;      /* debugging tty for the backend server */
-
-	setlocale (LC_ALL, "");
-	bindtextdomain (PACKAGE, LOCALEDIR);
-	textdomain (PACKAGE);
-
-	if (process_arguments (argc, argv) == ERROR)
-		usage4 (_("Could not parse arguments"));
-
-	/* Set signal handling and alarm */
-	if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) {
-		usage4 (_("Cannot catch SIGALRM"));
-	}
-	alarm (timeout_interval);
-
-	/* make a connection to the database */
-	time (&start_time);
-	conn =
-		PQsetdbLogin (pghost, pgport, pgoptions, pgtty, dbName, pguser, pgpasswd);
-	time (&end_time);
-	elapsed_time = (int) (end_time - start_time);
-
-	/* check to see that the backend connection was successfully made */
-	if (PQstatus (conn) == CONNECTION_BAD) {
-		printf (_("CRITICAL - no connection to '%s' (%s).\n"),
-		        dbName,	PQerrorMessage (conn));
-		PQfinish (conn);
-		return STATE_CRITICAL;
-	}
-	else if (elapsed_time > tcrit) {
-		status = STATE_CRITICAL;
-	}
-	else if (elapsed_time > twarn) {
-		status = STATE_WARNING;
-	}
-	else {
-		status = STATE_OK;
-	}
-	PQfinish (conn);
-	printf (_(" %s - database %s (%d sec.)|%s\n"), 
-	        state_text(status), dbName, elapsed_time,
-	        fperfdata("time", elapsed_time, "s",
-	                 (int)twarn, twarn, (int)tcrit, tcrit, TRUE, 0, FALSE,0));
-	return status;
-}
-
-
-
-/* process command-line arguments */
-int
-process_arguments (int argc, char **argv)
-{
-	int c;
-
-	int option = 0;
-	static struct option longopts[] = {
-		{"help", no_argument, 0, 'h'},
-		{"version", no_argument, 0, 'V'},
-		{"timeout", required_argument, 0, 't'},
-		{"critical", required_argument, 0, 'c'},
-		{"warning", required_argument, 0, 'w'},
-		{"hostname", required_argument, 0, 'H'},
-		{"logname", required_argument, 0, 'l'},
-		{"password", required_argument, 0, 'p'},
-		{"authorization", required_argument, 0, 'a'},
-		{"port", required_argument, 0, 'P'},
-		{"database", required_argument, 0, 'd'},
-		{0, 0, 0, 0}
-	};
-
-	while (1) {
-		c = getopt_long (argc, argv, "hVt:c:w:H:P:d:l:p:a:",
-		                 longopts, &option);
-
-		if (c == EOF)
-			break;
-
-		switch (c) {
-		case '?':     /* usage */
-			usage5 ();
-		case 'h':     /* help */
-			print_help ();
-			exit (STATE_OK);
-		case 'V':     /* version */
-			print_revision (progname, revision);
-			exit (STATE_OK);
-		case 't':     /* timeout period */
-			if (!is_integer (optarg))
-				usage2 (_("Timeout interval must be a positive integer"), optarg);
-			else
-				timeout_interval = atoi (optarg);
-			break;
-		case 'c':     /* critical time threshold */
-			if (!is_nonnegative (optarg))
-				usage2 (_("Critical threshold must be a positive integer"), optarg);
-			else
-				tcrit = strtod (optarg, NULL);
-			break;
-		case 'w':     /* warning time threshold */
-			if (!is_nonnegative (optarg))
-				usage2 (_("Warning threshold must be a positive integer"), optarg);
-			else
-				twarn = strtod (optarg, NULL);
-			break;
-		case 'H':     /* host */
-			if (!is_host (optarg))
-				usage2 (_("Invalid hostname/address"), optarg);
-			else
-				pghost = optarg;
-			break;
-		case 'P':     /* port */
-			if (!is_integer (optarg))
-				usage2 (_("Port must be a positive integer"), optarg);
-			else
-				pgport = optarg;
-			break;
-		case 'd':     /* database name */
-			if (!is_pg_dbname (optarg)) /* checks length and valid chars */
-				usage2 (_("Database name is not valid"), optarg);
-			else /* we know length, and know optarg is terminated, so us strcpy */
-				strcpy (dbName, optarg);
-			break;
-		case 'l':     /* login name */
-			if (!is_pg_logname (optarg))
-				usage2 (_("User name is not valid"), optarg);
-			else
-				pguser = optarg;
-			break;
-		case 'p':     /* authentication password */
-		case 'a':
-			pgpasswd = optarg;
-			break;
-		}
-	}
-
-	return validate_arguments ();
-}
-
-
-/******************************************************************************
-
-@@-
-<sect3>
-<title>validate_arguments</title>
-
-<para>&PROTO_validate_arguments;</para>
-
-<para>Given a database name, this function returns TRUE if the string
-is a valid PostgreSQL database name, and returns false if it is
-not.</para>
-
-<para>Valid PostgreSQL database names are less than &NAMEDATALEN;
-characters long and consist of letters, numbers, and underscores. The
-first character cannot be a number, however.</para>
-
-</sect3>
--@@
-******************************************************************************/
-
-
-
-int
-validate_arguments ()
-{
-	return OK;
-}
-
-
-/******************************************************************************
-
-@@-
-<sect3>
-<title>is_pg_dbname</title>
-
-<para>&PROTO_is_pg_dbname;</para>
-
-<para>Given a database name, this function returns TRUE if the string
-is a valid PostgreSQL database name, and returns false if it is
-not.</para>
-
-<para>Valid PostgreSQL database names are less than &NAMEDATALEN;
-characters long and consist of letters, numbers, and underscores. The
-first character cannot be a number, however.</para>
-
-</sect3>
--@@
-******************************************************************************/
-
-
-
-int
-is_pg_dbname (char *dbname)
-{
-	char txt[NAMEDATALEN];
-	char tmp[NAMEDATALEN];
-	if (strlen (dbname) > NAMEDATALEN - 1)
-		return (FALSE);
-	strncpy (txt, dbname, NAMEDATALEN - 1);
-	txt[NAMEDATALEN - 1] = 0;
-	if (sscanf (txt, "%[_a-zA-Z]%[^_a-zA-Z0-9-]", tmp, tmp) == 1)
-		return (TRUE);
-	if (sscanf (txt, "%[_a-zA-Z]%[_a-zA-Z0-9-]%[^_a-zA-Z0-9-]", tmp, tmp, tmp) ==
-			2) return (TRUE);
-	return (FALSE);
-}
-
-/**
-
-the tango program should eventually create an entity here based on the 
-function prototype
-
-@@-
-<sect3>
-<title>is_pg_logname</title>
-
-<para>&PROTO_is_pg_logname;</para>
-
-<para>Given a username, this function returns TRUE if the string is a
-valid PostgreSQL username, and returns false if it is not. Valid PostgreSQL
-usernames are less than &NAMEDATALEN; characters long and consist of
-letters, numbers, dashes, and underscores, plus possibly some other
-characters.</para>
-
-<para>Currently this function only checks string length. Additional checks
-should be added.</para>
-
-</sect3>
--@@
-******************************************************************************/
-
-
-
-int
-is_pg_logname (char *username)
-{
-	if (strlen (username) > NAMEDATALEN - 1)
-		return (FALSE);
-	return (TRUE);
-}
-
-/******************************************************************************
-@@-
-</sect2> 
-</sect1>
-</article>
--@@
-******************************************************************************/
-
-
-
-void
-print_help (void)
-{
-	char *myport;
-
-	asprintf (&myport, "%d", DEFAULT_PORT);
-
-	print_revision (progname, revision);
-
-	printf (COPYRIGHT, copyright, email);
-
-	printf (_("Test whether a PostgreSQL Database is accepting connections."));
-
-  printf ("\n\n");
-
-	print_usage ();
-
-	printf (_(UT_HELP_VRSN));
-
-	printf (_(UT_HOST_PORT), 'P', myport);
-
-	printf (_(UT_IPv46));
-
-	printf (" %s\n", "-d, --database=STRING");
-  printf ("    %s", _("Database to check "));
-  printf (_("(default: %s)"), DEFAULT_DB);
-  printf (" %s\n", "-l, --logname = STRING");
-  printf ("    %s\n", _("Login name of user"));
-  printf (" %s\n", "-p, --password = STRING");
-  printf ("    %s\n", _("Password (BIG SECURITY ISSUE)"));
-
-	printf (_(UT_WARN_CRIT));
-
-	printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
-
-	printf (_(UT_VERBOSE));
-
-  printf ("\n");
-	printf (" %s\n", _("All parameters are optional."));
-  printf (" %s\n", _("This plugin tests a PostgreSQL DBMS to determine whether it is active and"));
-  printf (" %s\n", _("accepting queries. In its current operation, it simply connects to the"));
-  printf (" %s\n", _("specified database, and then disconnects. If no database is specified, it"));
-  printf (" %s\n", _("connects to the template1 database, which is present in every functioning"));
-  printf (" %s\n\n", _("PostgreSQL DBMS."));
-	printf (" %s\n", _("The plugin will connect to a local postmaster if no host is specified. To"));
-  printf (" %s\n", _("connect to a remote host, be sure that the remote postmaster accepts TCP/IP"));
-  printf (" %s\n\n", _("connections (start the postmaster with the -i option)."));
-	printf (" %s\n", _("Typically, the nagios user (unless the --logname option is used) should be"));
-  printf (" %s\n", _("able to connect to the database without a password. The plugin can also send"));
-  printf (" %s\n", _("a password, but no effort is made to obsure or encrypt the password."));
-
-	printf (_(UT_SUPPORT));
-}
-
-
-
-void
-print_usage (void)
-{
-  printf (_("Usage:"));
-	printf ("%s [-H <host>] [-P <port>] [-c <critical time>] [-w <warning time>]\n", progname);
-  printf (" [-t <timeout>] [-d <database>] [-l <logname>] [-p <password>]\n");
-}
diff -uNr nagios-plugins-1.4.11/plugins/check_ping.c nagios-plugins-1.4.12/plugins/check_ping.c
--- nagios-plugins-1.4.11/plugins/check_ping.c	2007-10-25 22:43:04.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_ping.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,42 +1,39 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_ping plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2000-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-10-25 21:43:04 +0100 (Thu, 25 Oct 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_ping plugin
-*
-*  Use the ping program to check connection statistics for a remote host.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* Use the ping program to check connection statistics for a remote host.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id: check_ping.c 1810 2007-10-25 20:43:04Z tonvoon $
- 
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_ping.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_ping";
-const char *revision = "$Revision: 1810 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -95,6 +92,9 @@
 	addresses = malloc (sizeof(char*) * max_addr);
 	addresses[0] = NULL;
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -165,7 +165,16 @@
 							state_text (this_result), warn_text, pl, rta);
 		if (display_html == TRUE)
 			printf ("</A>");
-		printf ("\n");
+
+		/* Print performance data */
+		printf("|%s", fperfdata ("rta", (double) rta, "ms",
+		                          wrta>0?TRUE:FALSE, wrta,
+		                          crta>0?TRUE:FALSE, crta,
+		                          TRUE, 0, FALSE, 0));
+		printf(" %s\n", perfdata ("pl", (long) pl, "%",
+		                          wpl>0?TRUE:FALSE, wpl,
+		                          cpl>0?TRUE:FALSE, cpl,
+		                          TRUE, 0, FALSE, 0));
 
 		if (verbose >= 2)
 			printf ("%f:%d%% %f:%d%%\n", wrta, wpl, crta, cpl);
@@ -558,6 +567,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_IPv46));
 
@@ -575,18 +585,22 @@
 
 	printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
 
+  printf ("\n");
 	printf ("%s\n", _("THRESHOLD is <rta>,<pl>% where <rta> is the round trip average travel"));
   printf ("%s\n", _("time (ms) which triggers a WARNING or CRITICAL state, and <pl> is the"));
   printf ("%s\n", _("percentage of packet loss to trigger an alarm state."));
 
-  printf ("\n\n");
-
+  printf ("\n");
 	printf ("%s\n", _("This plugin uses the ping command to probe the specified host for packet loss"));
   printf ("%s\n", _("(percentage) and round trip average (milliseconds). It can produce HTML output"));
   printf ("%s\n", _("linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in"));
   printf ("%s\n", _("the contrib area of the downloads section at http://www.nagios.org/"));
 
-  printf ("\n\n");
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_procs.c nagios-plugins-1.4.12/plugins/check_procs.c
--- nagios-plugins-1.4.11/plugins/check_procs.c	2007-07-15 17:21:51.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_procs.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,49 +1,49 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_procs plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-07-15 16:21:51 +0100 (Sun, 15 Jul 2007) $
-*
+* Copyright (c) 2000-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_procs plugin
-*
-*  Checks all processes and generates WARNING or CRITICAL states if the specified
-*  metric is outside the required threshold ranges. The metric defaults to number
-*  of processes.  Search filters can be applied to limit the processes to check.
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* Checks all processes and generates WARNING or CRITICAL states if the
+* specified metric is outside the required threshold ranges. The metric
+* defaults to number of processes.  Search filters can be applied to limit
+* the processes to check.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_procs.c 1758 2007-07-15 15:21:51Z psychotrahe $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_procs.c 1991 2008-05-07 10:02:42Z dermoth $
 * 
-******************************************************************************/
+*****************************************************************************/
 
 const char *progname = "check_procs";
 const char *program_name = "check_procs";  /* Required for coreutils libs */
-const char *revision = "$Revision: 1758 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
 #include "popen.h"
 #include "utils.h"
+#include "regex.h"
 
 #include <pwd.h>
 
@@ -70,6 +70,7 @@
 #define RSS  128
 #define PCPU 256
 #define ELAPSED 512
+#define EREG_ARGS 1024
 /* Different metrics */
 char *metric_name;
 enum metric {
@@ -90,10 +91,13 @@
 char *statopts;
 char *prog;
 char *args;
+char *input_filename = NULL;
+regex_t re_args;
 char *fmt;
 char *fails;
 char tmp[MAX_INPUT_BUFFER];
 
+FILE *ps_input = NULL;
 
 
 int
@@ -139,6 +143,9 @@
 	asprintf (&metric_name, "PROCS");
 	metric = METRIC_PROCS;
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -154,25 +161,31 @@
 	if (verbose >= 2)
 		printf (_("CMD: %s\n"), PS_COMMAND);
 
-	child_process = spopen (PS_COMMAND);
-	if (child_process == NULL) {
-		printf (_("Could not open pipe: %s\n"), PS_COMMAND);
-		return STATE_UNKNOWN;
+	if (input_filename == NULL) {
+		ps_input = spopen (PS_COMMAND);
+		if (ps_input == NULL) {
+			printf (_("Could not open pipe: %s\n"), PS_COMMAND);
+			return STATE_UNKNOWN;
+		}
+		child_stderr = fdopen (child_stderr_array[fileno (ps_input)], "r");
+		if (child_stderr == NULL)
+			printf (_("Could not open stderr for %s\n"), PS_COMMAND);
+	} else {
+		ps_input = fopen(input_filename, "r");
+		if (ps_input == NULL) {
+			die( STATE_UNKNOWN, _("Error opening %s\n"), input_filename );
+		}
 	}
 
-	child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r");
-	if (child_stderr == NULL)
-		printf (_("Could not open stderr for %s\n"), PS_COMMAND);
-
 	/* flush first line */
-	fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process);
+	fgets (input_buffer, MAX_INPUT_BUFFER - 1, ps_input);
 	while ( input_buffer[strlen(input_buffer)-1] != '\n' )
-		fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process);
+		fgets (input_buffer, MAX_INPUT_BUFFER - 1, ps_input);
 
-	while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) {
+	while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, ps_input)) {
 		asprintf (&input_line, "%s", input_buffer);
 		while ( input_buffer[strlen(input_buffer)-1] != '\n' ) {
-			fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process);
+			fgets (input_buffer, MAX_INPUT_BUFFER - 1, ps_input);
 			asprintf (&input_line, "%s%s", input_line, input_buffer);
 		}
 
@@ -212,6 +225,8 @@
 				resultsum |= STAT;
 			if ((options & ARGS) && procargs && (strstr (procargs, args) != NULL))
 				resultsum |= ARGS;
+			if ((options & EREG_ARGS) && procargs && (regexec(&re_args, procargs, (size_t) 0, NULL, 0) == 0))
+				resultsum |= EREG_ARGS;
 			if ((options & PROG) && procprog && (strcmp (prog, procprog) == 0))
 				resultsum |= PROG;
 			if ((options & PPID) && (procppid == ppid))
@@ -232,6 +247,12 @@
 				continue;
 
 			procs++;
+			if (verbose >= 2) {
+				printf ("Matched: uid=%d vsz=%d rss=%d pid=%d ppid=%d pcpu=%.2f stat=%s etime=%s prog=%s args=%s\n", 
+					procuid, procvsz, procrss,
+					procpid, procppid, procpcpu, procstat, 
+					procetime, procprog, procargs);
+			}
 
 			if (metric == METRIC_VSZ)
 				i = check_thresholds (procvsz);
@@ -263,19 +284,21 @@
 	}
 
 	/* If we get anything on STDERR, at least set warning */
-	while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) {
-		if (verbose)
-			printf ("STDERR: %s", input_buffer);
-		result = max_state (result, STATE_WARNING);
-		printf (_("System call sent warnings to stderr\n"));
-	}
+	if (input_filename == NULL) {
+		while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) {
+			if (verbose)
+				printf ("STDERR: %s", input_buffer);
+			result = max_state (result, STATE_WARNING);
+			printf (_("System call sent warnings to stderr\n"));
+		}
 	
-	(void) fclose (child_stderr);
+		(void) fclose (child_stderr);
 
-	/* close the pipe */
-	if (spclose (child_process)) {
-		printf (_("System call returned nonzero status\n"));
-		result = max_state (result, STATE_WARNING);
+		/* close the pipe */
+		if (spclose (ps_input)) {
+			printf (_("System call returned nonzero status\n"));
+			result = max_state (result, STATE_WARNING);
+		}
 	}
 
 	if (found == 0) {							/* no process lines parsed so return STATE_UNKNOWN */
@@ -327,6 +350,9 @@
 	char *user;
 	struct passwd *pw;
 	int option = 0;
+	int err;
+	int cflags = REG_NOSUB | REG_EXTENDED;
+	char errbuf[MAX_INPUT_BUFFER];
 	static struct option longopts[] = {
 		{"warning", required_argument, 0, 'w'},
 		{"critical", required_argument, 0, 'c'},
@@ -343,6 +369,8 @@
 		{"help", no_argument, 0, 'h'},
 		{"version", no_argument, 0, 'V'},
 		{"verbose", no_argument, 0, 'v'},
+		{"ereg-argument-array", required_argument, 0, CHAR_MAX+1},
+		{"input-file", required_argument, 0, CHAR_MAX+2},
 		{0, 0, 0, 0}
 	};
 
@@ -417,13 +445,13 @@
 				pw = getpwuid ((uid_t) uid);
 				/*  check to be sure user exists */
 				if (pw == NULL)
-					usage2 (_("UID %s was not found"), optarg);
+					usage2 (_("UID was not found"), optarg);
 			}
 			else {
 				pw = getpwnam (optarg);
 				/*  check to be sure user exists */
 				if (pw == NULL)
-					usage2 (_("User name %s was not found"), optarg);
+					usage2 (_("User name was not found"), optarg);
 				/*  then get uid */
 				uid = pw->pw_uid;
 			}
@@ -451,6 +479,15 @@
 			asprintf (&fmt, "%s%sargs '%s'", (fmt ? fmt : ""), (options ? ", " : ""), args);
 			options |= ARGS;
 			break;
+		case CHAR_MAX+1:
+			err = regcomp(&re_args, optarg, cflags);
+			if (err != 0) {
+				regerror (err, &re_args, errbuf, MAX_INPUT_BUFFER);
+				die (STATE_UNKNOWN, "PROCS %s: %s - %s\n", _("UNKNOWN"), _("Could not compile regular expression"), errbuf);
+			}
+			asprintf (&fmt, "%s%sregex args '%s'", (fmt ? fmt : ""), (options ? ", " : ""), optarg);
+			options |= EREG_ARGS;
+			break;
 		case 'r': 					/* RSS */
 			if (sscanf (optarg, "%d%[^0-9]", &rss, tmp) == 1) {
 				asprintf (&fmt, "%s%sRSS >= %d", (fmt ? fmt : ""), (options ? ", " : ""), rss);
@@ -500,6 +537,9 @@
 		case 'v':									/* command */
 			verbose++;
 			break;
+		case CHAR_MAX+2:
+			input_filename = optarg;
+			break;
 		}
 	}
 
@@ -667,7 +707,7 @@
 {
 	print_revision (progname, revision);
 
-	printf ("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>");
+	printf ("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n");
 	printf (COPYRIGHT, copyright, email);
 
 	printf ("%s\n", _("Checks all processes and generates WARNING or CRITICAL states if the specified"));
@@ -675,16 +715,15 @@
   printf ("%s\n", _("of processes.  Search filters can be applied to limit the processes to check."));
 
   printf ("\n\n");
-  
+
 	print_usage ();
 
-	printf ("%s\n", _("Required Arguments:"));
+  printf (_(UT_HELP_VRSN));
+  printf (_(UT_EXTRA_OPTS));
   printf (" %s\n", "-w, --warning=RANGE");
   printf ("   %s\n", _("Generate warning state if metric is outside this range"));
   printf (" %s\n", "-c, --critical=RANGE");
   printf ("   %s\n", _("Generate critical state if metric is outside this range"));
-
-	printf ("%s\n", _("Optional Arguments:"));
   printf (" %s\n", "-m, --metric=TYPE");
   printf ("  %s\n", _("Check thresholds against metric. Valid types:"));
   printf ("  %s\n", _("PROCS   - number of processes (default)"));
@@ -700,7 +739,8 @@
 	printf (" %s\n", "-v, --verbose");
   printf ("    %s\n", _("Extra information. Up to 3 verbosity levels"));
 
-	printf ("%s\n", "Optional Filters:");
+  printf ("\n");
+	printf ("%s\n", "Filters:");
   printf (" %s\n", "-s, --state=STATUSFLAGS");
   printf ("   %s\n", _("Only scan for processes that have, in the output of `ps`, one or"));
   printf ("   %s\n", _("more of the status flags you specify (for example R, Z, S, RS,"));
@@ -717,6 +757,8 @@
   printf ("   %s\n", _("Only scan for processes with user name or ID indicated."));
   printf (" %s\n", "-a, --argument-array=STRING");
   printf ("   %s\n", _("Only scan for processes with args that contain STRING."));
+  printf (" %s\n", "--ereg-argument-array=STRING");
+  printf ("   %s\n", _("Only scan for processes with args that contain the regex STRING."));
   printf (" %s\n", "-C, --command=COMMAND");
   printf ("   %s\n", _("Only scan for exact matches of COMMAND (without path)."));
 
@@ -732,6 +774,12 @@
 process owner, parent process PID, current state (e.g., 'Z'), or may\n\
 be the total number of running processes\n\n"));
 
+#ifdef NP_EXTRA_OPTS
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+  printf ("\n");
+#endif
+
 	printf ("%s\n", _("Examples:"));
   printf (" %s\n", "check_procs -w 2:2 -c 2:1024 -C portsentry");
   printf ("  %s\n", _("Warning if not two processes with command name portsentry."));
@@ -742,7 +790,7 @@
   printf (" %s\n", "check_procs -w 50000 -c 100000 --metric=VSZ");
   printf ("  %s\n\n", _("Alert if vsz of any processes over 50K or 100K"));
   printf (" %s\n", "check_procs -w 10 -c 20 --metric=CPU");
-  printf ("  %s\n\n", _("Alert if cpu of any processes over 10%% or 20%%"));
+  printf ("  %s\n", _("Alert if cpu of any processes over 10%% or 20%%"));
 
 	printf (_(UT_SUPPORT));
 }
@@ -750,7 +798,7 @@
 void
 print_usage (void)
 {
-  printf (_("Usage:"));
+  printf (_("Usage: "));
 	printf ("%s -w <range> -c <range> [-m metric] [-s state] [-p ppid]\n", progname);
   printf (" [-u user] [-r rss] [-z vsz] [-P %%cpu] [-a argument-array]\n");
   printf (" [-C command] [-t timeout] [-v]\n");
diff -uNr nagios-plugins-1.4.11/plugins/check_radius.c nagios-plugins-1.4.12/plugins/check_radius.c
--- nagios-plugins-1.4.11/plugins/check_radius.c	2007-12-10 08:52:00.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_radius.c	2008-05-20 09:57:13.000000000 +0200
@@ -1,42 +1,39 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_radius plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
-*
+* Copyright (c) 1999-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-20 08:57:13 +0100 (Tue, 20 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_radius plugin
-*
-*  Tests to see if a radius server is accepting connections.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* Tests to see if a radius server is accepting connections.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_radius.c 1859 2007-12-10 07:52:00Z dermoth $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_radius.c 1994 2008-05-20 07:57:13Z dermoth $
 * 
-*******************************************************************************/
+*****************************************************************************/
 
 const char *progname = "check_radius";
-const char *revision = "$Revision: 1859 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1994 $";
+const char *copyright = "2000-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -152,6 +149,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -260,7 +260,13 @@
 			username = optarg;
 			break;
 		case 'p':									/* password */
-			password = optarg;
+			password = strdup(optarg);
+
+			/* Delete the password from process list */
+			while (*optarg != '\0') {
+				*optarg = 'X';
+				optarg++;
+			}
 			break;
 		case 'n':									/* nas id */
 			nasid = optarg;
@@ -318,6 +324,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'P', myport);
 
@@ -336,16 +343,22 @@
 
 	printf (_(UT_TIMEOUT), timeout_interval);
 
-	printf ("%s\n", _("This plugin tests a radius server to see if it is accepting connections."));
+  printf ("\n");
+  printf ("%s\n", _("This plugin tests a radius server to see if it is accepting connections."));
   printf ("%s\n", _("The server to test must be specified in the invocation, as well as a user"));
   printf ("%s\n", _("name and password. A configuration file may also be present. The format of"));
   printf ("%s\n", _("the configuration file is described in the radiusclient library sources."));
 	printf ("%s\n", _("The password option presents a substantial security issue because the"));
-  printf ("%s\n", _("password can be determined by careful watching of the command line in"));
-  printf ("%s\n", _("a process listing.  This risk is exacerbated because nagios will"));
-  printf ("%s\n", _("run the plugin at regular prdictable intervals.  Please be sure that"));
-  printf ("%s\n", _("the password used does not allow access to sensitive system resources,"));
-  printf ("%s\n", _("otherwise compormise could occur."));
+  printf ("%s\n", _("password can possibly be determined by careful watching of the command line"));
+  printf ("%s\n", _("in a process listing. This risk is exacerbated because nagios will"));
+  printf ("%s\n", _("run the plugin at regular predictable intervals. Please be sure that"));
+  printf ("%s\n", _("the password used does not allow access to sensitive system resources."));
+
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_real.c nagios-plugins-1.4.12/plugins/check_real.c
--- nagios-plugins-1.4.11/plugins/check_real.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_real.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,43 +1,39 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_real plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_real plugin
-*
-*  This plugin tests the REAL service on the specified host.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin tests the REAL service on the specified host.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-*
-* $Id: check_real.c 1590 2007-01-28 21:46:41Z hweiss $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
-******************************************************************************/
+* $Id: check_real.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_real";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -81,6 +77,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -422,6 +421,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', myport);
 
@@ -437,12 +437,19 @@
 
 	printf (_(UT_VERBOSE));
 
+  printf ("\n");
 	printf ("%s\n", _("This plugin will attempt to open an RTSP connection with the host."));
   printf ("%s\n", _("Successul connects return STATE_OK, refusals and timeouts return"));
   printf ("%s\n", _("STATE_CRITICAL, other errors return STATE_UNKNOWN.  Successful connects,"));
   printf ("%s\n", _("but incorrect reponse messages from the host result in STATE_WARNING return"));
   printf ("%s\n", _("values."));
 
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
 	printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_smtp.c nagios-plugins-1.4.12/plugins/check_smtp.c
--- nagios-plugins-1.4.11/plugins/check_smtp.c	2007-11-09 22:17:03.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_smtp.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,52 +1,48 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_smtp plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-11-09 21:17:03 +0000 (Fri, 09 Nov 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_smtp plugin
-*
-*  This plugin will attempt to open an SMTP connection with the host.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin will attempt to open an SMTP connection with the host.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-*
-* $Id: check_smtp.c 1817 2007-11-09 21:17:03Z dermoth $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_smtp.c 1991 2008-05-07 10:02:42Z dermoth $
 * 
-******************************************************************************/
+*****************************************************************************/
 
 const char *progname = "check_smtp";
-const char *revision = "$Revision: 1817 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
-#include <ctype.h>
-
 #include "common.h"
 #include "netutils.h"
 #include "utils.h"
 #include "base64.h"
 
+#include <ctype.h>
+
 #ifdef HAVE_SSL
 int check_cert = FALSE;
 int days_till_exp;
@@ -141,6 +137,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -198,10 +197,10 @@
 			/* make sure we find the response we are looking for */
 			if (!strstr (buffer, server_expect)) {
 				if (server_port == SMTP_PORT)
-					printf (_("Invalid SMTP response received from host\n"));
+					printf (_("Invalid SMTP response received from host: %s\n"), buffer);
 				else
-					printf (_("Invalid SMTP response received from host on port %d\n"),
-									server_port);
+					printf (_("Invalid SMTP response received from host on port %d: %s\n"),
+									server_port, buffer);
 				result = STATE_WARNING;
 			}
 		}
@@ -370,7 +369,8 @@
 					}
 
 					/* encode authuser with base64 */
-					abuf = base64 (authuser, strlen(authuser));
+					base64_encode_alloc (authuser, strlen(authuser), &abuf);
+					/* FIXME: abuf shouldn't have enough space to strcat a '\r\n' into it. */
 					strcat (abuf, "\r\n");
 					my_send(abuf, strlen(abuf));
 					if (verbose)
@@ -390,7 +390,8 @@
 						break;
 					}
 					/* encode authpass with base64 */
-					abuf = base64 (authpass, strlen(authpass));
+					base64_encode_alloc (authpass, strlen(authpass), &abuf);
+					/* FIXME: abuf shouldn't have enough space to strcat a '\r\n' into it. */
 					strcat (abuf, "\r\n");
 					my_send(abuf, strlen(abuf));
 					if (verbose) {
@@ -773,6 +774,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', myport);
 
@@ -814,6 +816,12 @@
   printf ("%s\n", _("connects, but incorrect reponse messages from the host result in"));
   printf ("%s\n", _("STATE_WARNING return values."));
 
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
 	printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_snmp.c nagios-plugins-1.4.12/plugins/check_snmp.c
--- nagios-plugins-1.4.11/plugins/check_snmp.c	2007-12-10 08:52:00.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_snmp.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,41 +1,38 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_snmp plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2007 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_snmp plugin
-*
-*  Check status of remote machines and obtain system information via SNMP
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* Check status of remote machines and obtain system information via SNMP
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_snmp.c 1859 2007-12-10 07:52:00Z dermoth $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
-******************************************************************************/
+* $Id: check_snmp.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_snmp";
-const char *revision = "$Revision: 1859 $";
+const char *revision = "$Revision: 1991 $";
 const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
@@ -179,6 +176,9 @@
 	timeout_interval = DEFAULT_TIMEOUT;
 	retries = DEFAULT_RETRIES;
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -935,6 +935,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', DEFAULT_PORT);
 
@@ -996,27 +997,33 @@
 
 	printf (_(UT_VERBOSE));
 
-	printf ("%s\n", _("This plugin uses the 'snmpget' command included with the NET-SNMP package."));
+  printf ("\n");
+  printf ("%s\n", _("This plugin uses the 'snmpget' command included with the NET-SNMP package."));
   printf ("%s\n", _("if you don't have the package installed, you will need to download it from"));
   printf ("%s\n", _("http://net-snmp.sourceforge.net before you can use this plugin."));
 
-	printf ("%s\n", _("- Multiple OIDs may be indicated by a comma- or space-delimited list (lists with"));
-  printf ("%s\n", _(" internal spaces must be quoted) [max 8 OIDs]"));
-
-	printf ("%s\n", _("- Ranges are inclusive and are indicated with colons. When specified as"));
-  printf ("%s\n", _(" 'min:max' a STATE_OK will be returned if the result is within the indicated"));
-  printf ("%s\n", _(" range or is equal to the upper or lower bound. A non-OK state will be"));
-  printf ("%s\n", _(" returned if the result is outside the specified range."));
-
-	printf ("%s\n", _("- If specified in the order 'max:min' a non-OK state will be returned if the"));
-  printf ("%s\n", _(" result is within the (inclusive) range."));
-
-	printf ("%s\n", _("- Upper or lower bounds may be omitted to skip checking the respective limit."));
-  printf ("%s\n", _("- Bare integers are interpreted as upper limits."));
-  printf ("%s\n", _("- When checking multiple OIDs, separate ranges by commas like '-w 1:10,1:,:20'"));
-  printf ("%s\n", _("- Note that only one string and one regex may be checked at present"));
-  printf ("%s\n", _("- All evaluation methods other than PR, STR, and SUBSTR expect that the value"));
-  printf ("%s\n", _(" returned from the SNMP query is an unsigned integer."));
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (" %s\n", _("- Multiple OIDs may be indicated by a comma- or space-delimited list (lists with"));
+  printf ("   %s\n", _("internal spaces must be quoted) [max 8 OIDs]"));
+
+  printf (" %s\n", _("- Ranges are inclusive and are indicated with colons. When specified as"));
+  printf ("   %s\n", _("'min:max' a STATE_OK will be returned if the result is within the indicated"));
+  printf ("   %s\n", _("range or is equal to the upper or lower bound. A non-OK state will be"));
+  printf ("   %s\n", _("returned if the result is outside the specified range."));
+
+  printf (" %s\n", _("- If specified in the order 'max:min' a non-OK state will be returned if the"));
+  printf ("   %s\n", _("result is within the (inclusive) range."));
+
+  printf (" %s\n", _("- Upper or lower bounds may be omitted to skip checking the respective limit."));
+  printf (" %s\n", _("- Bare integers are interpreted as upper limits."));
+  printf (" %s\n", _("- When checking multiple OIDs, separate ranges by commas like '-w 1:10,1:,:20'"));
+  printf (" %s\n", _("- Note that only one string and one regex may be checked at present"));
+  printf (" %s\n", _("- All evaluation methods other than PR, STR, and SUBSTR expect that the value"));
+  printf ("   %s\n", _("returned from the SNMP query is an unsigned integer."));
+#ifdef NP_EXTRA_OPTS
+  printf (" -%s", _(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_ssh.c nagios-plugins-1.4.12/plugins/check_ssh.c
--- nagios-plugins-1.4.11/plugins/check_ssh.c	2007-11-09 14:08:43.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_ssh.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,43 +1,39 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_ssh plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-11-09 13:08:43 +0000 (Fri, 09 Nov 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_ssh plugin
-*
-*
-*  Try to connect to an SSH server at specified server and port
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* Try to connect to an SSH server at specified server and port
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_ssh.c 1813 2007-11-09 13:08:43Z dermoth $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_ssh.c 1991 2008-05-07 10:02:42Z dermoth $
 * 
-******************************************************************************/
+*****************************************************************************/
 
 const char *progname = "check_ssh";
-const char *revision = "$Revision: 1813 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -74,6 +70,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -221,7 +220,7 @@
 	char *ssh_server = NULL;
 	char rev_no[20];
 
-	sscanf ("$Revision: 1813 $", "$Revision: %[0123456789.]", rev_no);
+	sscanf ("$Revision: 1991 $", "$Revision: %[0123456789.]", rev_no);
 
 	result = my_tcp_connect (haddr, hport, &sd);
 
@@ -285,6 +284,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', myport);
 
@@ -297,6 +297,12 @@
 	
 	printf (_(UT_VERBOSE));
 
+#ifdef NP_EXTRA_OPTS
+	printf ("\n");
+	printf ("%s\n", _("Notes:"));
+	printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
 	printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_swap.c nagios-plugins-1.4.12/plugins/check_swap.c
--- nagios-plugins-1.4.11/plugins/check_swap.c	2007-12-10 08:52:00.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_swap.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,40 +1,38 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_disk plugin
-*
+* 
 * License: GPL
 * Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net)
-* Copyright (c) 2000-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_disk plugin
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_swap.c 1859 2007-12-10 07:52:00Z dermoth $
-*
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_swap.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
 *****************************************************************************/
 
 const char *progname = "check_swap";
-const char *revision = "$Revision: 1859 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -109,6 +107,9 @@
 
 	status = strdup ("");
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -528,10 +529,11 @@
 	printf ("%s\n", _("Check swap space on local machine."));
 
   printf ("\n\n");
-  
+
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (" %s\n", "-w, --warning=INTEGER");
   printf ("    %s\n", _("Exit with WARNING status if less than INTEGER bytes of swap space are free"));
@@ -544,9 +546,15 @@
   printf (" %s\n", "-a, --allswaps");
   printf ("    %s\n", _("Conduct comparisons for all swap partitions, one by one"));
 	printf (_(UT_VERBOSE));
+
 	printf ("\n");
   printf ("%s\n", _("Notes:"));
-  printf (" %s\n", _("On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.\n"));
+  printf (" %s\n", _("On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s."));
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_tcp.c nagios-plugins-1.4.12/plugins/check_tcp.c
--- nagios-plugins-1.4.11/plugins/check_tcp.c	2007-06-03 16:40:13.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_tcp.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,40 +1,38 @@
 /*****************************************************************************
-*
+* 
 * Nagios check_tcp plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-06-03 15:40:13 +0100 (Sun, 03 Jun 2007) $
-*
+* Copyright (c) 1999-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_tcp plugin
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_tcp.c 1729 2007-06-03 14:40:13Z psychotrahe $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*  
+* $Id: check_tcp.c 1991 2008-05-07 10:02:42Z dermoth $
 * 
 *****************************************************************************/
 
 /* progname "check_tcp" changes depending on symlink called */
 char *progname;
-const char *revision = "$Revision: 1729 $";
-const char *copyright = "1999-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1999-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -207,6 +205,9 @@
 	server_quit = QUIT;
 	status = NULL;
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -604,6 +605,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', "none");
 
@@ -644,6 +646,12 @@
 
 	printf (_(UT_VERBOSE));
 
+#ifdef NP_EXTRA_OPTS
+	printf ("\n");
+	printf ("%s\n", _("Notes:"));
+	printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
 	printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_time.c nagios-plugins-1.4.12/plugins/check_time.c
--- nagios-plugins-1.4.11/plugins/check_time.c	2007-05-02 07:22:31.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_time.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,42 +1,39 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_time plugin
-*
+* 
 * License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-05-02 06:22:31 +0100 (Wed, 02 May 2007) $
-*
+* Copyright (c) 1999-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_time plugin
-*
-*  This plugin will check the time on the specified host.
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin will check the time difference with the specified host.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-*
-* $Id: check_time.c 1703 2007-05-02 05:22:31Z dermoth $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_time.c 1991 2008-05-07 10:02:42Z dermoth $
 * 
-******************************************************************************/
+*****************************************************************************/
 
 const char *progname = "check_time";
-const char *revision = "$Revision: 1703 $";
-const char *copyright = "1999-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "1999-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -78,6 +75,9 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -347,6 +347,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', myport);
 
@@ -362,6 +363,13 @@
   printf ("   %s\n", _("Response time (sec.) necessary to result in critical status"));
 
 	printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
+
+#ifdef NP_EXTRA_OPTS
+	printf ("\n");
+	printf ("%s\n", _("Notes:"));
+	printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
 	printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/check_ups.c nagios-plugins-1.4.12/plugins/check_ups.c
--- nagios-plugins-1.4.11/plugins/check_ups.c	2007-10-25 22:43:04.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/check_ups.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,45 +1,43 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_ups plugin
-*
+* 
 * License: GPL
 * Copyright (c) 2000 Tom Shields
 *               2004 Alain Richard <alain.richard@equation.fr>
 *               2004 Arnaud Quette <arnaud.quette@mgeups.com>
-* Copyright (c) 2002-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-10-25 21:43:04 +0100 (Thu, 25 Oct 2007) $
-*
+* Copyright (c) 2002-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains Network UPS Tools plugin for Nagios
-*
-*  This plugin tests the UPS service on the specified host.Network UPS Tools
-*  from www.networkupstools.org must be running for thisplugin to work.
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin tests the UPS service on the specified host.Network UPS Tools
+* from www.networkupstools.org must be running for thisplugin to work.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-*  $Id: check_ups.c 1810 2007-10-25 20:43:04Z tonvoon $
-*
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_ups.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "check_ups";
-const char *revision = "$Revision: 1810 $";
-const char *copyright = "2002-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -121,6 +119,9 @@
 	data = strdup ("");
 	message = strdup ("");
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -603,7 +604,7 @@
 	printf ("Copyright (c) 2004 Arnaud Quette <arnaud.quette@mgeups.com>\n");
 	printf (COPYRIGHT, copyright, email);
 
-	printf ("%s\n", _("This plugin tests the UPS service on the specified host.Network UPS Tools "));
+	printf ("%s\n", _("This plugin tests the UPS service on the specified host. Network UPS Tools"));
   printf ("%s\n", _("from www.networkupstools.org must be running for thisplugin to work."));
 
   printf ("\n\n");
@@ -611,6 +612,7 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_HOST_PORT), 'p', myport);
 
@@ -630,22 +632,27 @@
 /*	printf (_(UT_VERBOSE)); */
 
   printf ("\n");
-  printf ("%s\n", _("Notes:"));
-  
 	printf ("%s\n", _("This plugin attempts to determine the status of a UPS (Uninterruptible Power"));
   printf ("%s\n", _("Supply) on a local or remote host. If the UPS is online or calibrating, the"));
   printf ("%s\n", _("plugin will return an OK state. If the battery is on it will return a WARNING"));
   printf ("%s\n", _("state.If the UPS is off or has a low battery the plugin will return a CRITICAL"));
-  printf ("%s\n\n", _("state."));
+  printf ("%s\n", _("state."));
 
-	printf ("%s\n", _("You may also specify a variable to check [such as temperature, utility voltage,"));
-  printf ("%s\n", _("battery load, etc.]  as well as warning and critical thresholds for the value of"));
-  printf ("%s\n", _("that variable.  If the remote host has multiple UPS that are being monitored you"));
-  printf ("%s\n", _("will have to use the [ups] option to specify which UPS to check."));
-
-	printf ("%s\n", _("This plugin requires that the UPSD daemon distributed with Russel Kroll's"));
-  printf ("%s\n", _("Smart UPS Tools be installed on the remote host.  If you do not have the"));
-  printf ("%s\n", _("package installed on your system, you can download it from http://www.networkupstools.org"));
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (" %s\n", _("You may also specify a variable to check (such as temperature, utility voltage,"));
+  printf (" %s\n", _("battery load, etc.)  as well as warning and critical thresholds for the value"));
+  printf (" %s\n", _("of that variable.  If the remote host has multiple UPS that are being monitored"));
+  printf (" %s\n", _("you will have to use the --ups option to specify which UPS to check."));
+  printf ("\n");
+  printf (" %s\n", _("This plugin requires that the UPSD daemon distributed with Russel Kroll's"));
+  printf (" %s\n", _("Smart UPS Tools be installed on the remote host. If you do not have the"));
+  printf (" %s\n", _("package installed on your system, you can download it from"));
+  printf (" %s\n", _("http://www.networkupstools.org"));
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
 
 	printf (_(UT_SUPPORT));
 }
diff -uNr nagios-plugins-1.4.11/plugins/check_users.c nagios-plugins-1.4.12/plugins/check_users.c
--- nagios-plugins-1.4.11/plugins/check_users.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/check_users.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,42 +1,41 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_users plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2000-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_users plugin
-*
-*  This plugin checks the number of users currently logged in on the local
-*  system and generates an error if the number exceeds the thresholds specified.
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin checks the number of users currently logged in on the local
+* system and generates an error if the number exceeds the thresholds
+* specified.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-*  $Id: check_users.c 1590 2007-01-28 21:46:41Z hweiss $
-*
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_users.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
 *****************************************************************************/
 
 const char *progname = "check_users";
-const char *revision = "$Revision: 1590 $";
-const char *copyright = "2000-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2000-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -66,6 +65,9 @@
 
 	perf = strdup("");
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts (&argc, argv, progname);
+
 	if (process_arguments (argc, argv) == ERROR)
 		usage4 (_("Could not parse arguments"));
 
@@ -214,12 +216,19 @@
 	print_usage ();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (" %s\n", "-w, --warning=INTEGER");
   printf ("    %s\n", _("Set WARNING status if more than INTEGER users are logged in"));
   printf (" %s\n", "-c, --critical=INTEGER");
   printf ("    %s\n", _("Set CRITICAL status if more than INTEGER users are logged in"));
 
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
 	printf (_(UT_SUPPORT));
 }
 
diff -uNr nagios-plugins-1.4.11/plugins/common.h nagios-plugins-1.4.12/plugins/common.h
--- nagios-plugins-1.4.11/plugins/common.h	2007-04-26 00:10:13.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/common.h	2008-03-11 01:10:23.000000000 +0100
@@ -1,47 +1,40 @@
-/******************************************************************************
- *
- * Nagios plugins common include file
- *
- * License: GPL
- * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)
- *
- * Last Modified: 11-05-1999
- *
- * Description:
- *
- * This file contains common include files and defines used in many of
- * the plugins.
- *
- * License Information:
- *
- * 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: common.h 1700 2007-04-25 22:10:13Z tonvoon $
- *
- *****************************************************************************/
+/*****************************************************************************
+* 
+* Nagios plugins common include file
+* 
+* License: GPL
+* Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)
+* Copyright (c) 2003-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-03-11 00:10:23 +0000 (Tue, 11 Mar 2008) $
+* 
+* Description:
+* 
+* This file contains common include files and defines used in many of
+* the plugins.
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: common.h 1938 2008-03-11 00:10:23Z tonvoon $
+* 
+*****************************************************************************/
 
 #ifndef _COMMON_H_
 #define _COMMON_H_
 
 #include "config.h"
-/* This needs to be removed for Solaris servers, where 64 bit files, but 32 bit architecture
-   This needs to be done early on because subsequent system includes use _FILE_OFFSET_BITS
-   Cannot remove from config.h because is included by regex.c from lib/ */
-#if __sun__ && !defined(_LP64) && _FILE_OFFSET_BITS == 64
-#undef _FILE_OFFSET_BITS
-#endif
 
 #ifdef HAVE_FEATURES_H
 #include <features.h>
@@ -118,9 +111,6 @@
 /* GNU Libraries */
 #include <getopt.h>
 #include "dirname.h"
-#include "vasprintf.h"
-#include "snprintf.h"
-#include "vsnprintf.h"
 
 #ifdef HAVE_LOCALE_H
 #include <locale.h>
@@ -186,11 +176,6 @@
 };
 #endif
 
-/* Solaris does not have floorf, but floor works. Should probably be in configure */
-#if defined(__sun) || defined(__sun__)
-static inline float floorf (float x) { return floor(x); }
-#endif
-
 enum {
 	STATE_OK,
 	STATE_WARNING,
diff -uNr nagios-plugins-1.4.11/plugins/Makefile.am nagios-plugins-1.4.12/plugins/Makefile.am
--- nagios-plugins-1.4.11/plugins/Makefile.am	2007-12-12 02:27:48.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/Makefile.am	2008-03-14 16:44:27.000000000 +0100
@@ -4,10 +4,11 @@
 
 INCLUDES = -I.. -I$(top_srcdir)/lib -I$(top_srcdir)/gl -I$(top_srcdir)/intl @LDAPINCLUDE@ @PGINCLUDE@ @SSLINCLUDE@
 
-datadir = @datadir@
 localedir = $(datadir)/locale
+# gettext docs say to use AM_CPPFLAGS, but per module_CPPFLAGS override this
 DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
-LIBS = @LIBINTL@ @LIBS@
+# gettext docs say to use LDADD, but per module_LDADD override
+LIBS = @LTLIBINTL@ @LIBS@
 MATHLIBS = @MATHLIBS@
 
 # This is not portable. Run ". tools/devmode" to get development compile flags
diff -uNr nagios-plugins-1.4.11/plugins/Makefile.in nagios-plugins-1.4.12/plugins/Makefile.in
--- nagios-plugins-1.4.11/plugins/Makefile.in	2007-12-13 23:42:36.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/Makefile.in	2008-05-28 00:05:07.000000000 +0200
@@ -54,36 +54,40 @@
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
 	$(top_srcdir)/gl/m4/alloca.m4 \
 	$(top_srcdir)/gl/m4/arpa_inet_h.m4 \
-	$(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \
-	$(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \
-	$(top_srcdir)/gl/m4/dos.m4 \
+	$(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \
+	$(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \
+	$(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \
 	$(top_srcdir)/gl/m4/double-slash-root.m4 \
 	$(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \
 	$(top_srcdir)/gl/m4/exitfail.m4 \
 	$(top_srcdir)/gl/m4/extensions.m4 \
 	$(top_srcdir)/gl/m4/fcntl-safer.m4 \
+	$(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \
 	$(top_srcdir)/gl/m4/fstypename.m4 \
 	$(top_srcdir)/gl/m4/fsusage.m4 \
 	$(top_srcdir)/gl/m4/getaddrinfo.m4 \
 	$(top_srcdir)/gl/m4/gethostname.m4 \
 	$(top_srcdir)/gl/m4/getloadavg.m4 \
 	$(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \
+	$(top_srcdir)/gl/m4/glibc21.m4 \
 	$(top_srcdir)/gl/m4/gnulib-common.m4 \
 	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \
-	$(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \
+	$(top_srcdir)/gl/m4/iconv.m4 \
+	$(top_srcdir)/gl/m4/include_next.m4 \
+	$(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \
+	$(top_srcdir)/gl/m4/intlmacosx.m4 \
+	$(top_srcdir)/gl/m4/intmax_t.m4 \
 	$(top_srcdir)/gl/m4/inttypes_h.m4 \
 	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longdouble.m4 \
+	$(top_srcdir)/gl/m4/lib-prefix.m4 \
+	$(top_srcdir)/gl/m4/localcharset.m4 \
 	$(top_srcdir)/gl/m4/longlong.m4 \
 	$(top_srcdir)/gl/m4/ls-mntd-fs.m4 \
-	$(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \
-	$(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \
-	$(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \
+	$(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \
+	$(top_srcdir)/gl/m4/mbstate_t.m4 \
+	$(top_srcdir)/gl/m4/mountlist.m4 \
 	$(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \
 	$(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \
 	$(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \
@@ -93,21 +97,21 @@
 	$(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \
 	$(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \
 	$(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \
-	$(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \
+	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \
+	$(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \
+	$(top_srcdir)/gl/m4/strerror.m4 \
+	$(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \
 	$(top_srcdir)/gl/m4/strnlen.m4 \
 	$(top_srcdir)/gl/m4/sys_socket_h.m4 \
-	$(top_srcdir)/gl/m4/ulonglong.m4 \
 	$(top_srcdir)/gl/m4/unistd-safer.m4 \
 	$(top_srcdir)/gl/m4/unistd_h.m4 \
 	$(top_srcdir)/gl/m4/vasnprintf.m4 \
 	$(top_srcdir)/gl/m4/vasprintf.m4 \
 	$(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \
 	$(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \
-	$(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \
-	$(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \
-	$(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \
+	$(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
@@ -239,10 +243,6 @@
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t 
 INSTALL = @INSTALL@
-ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
-ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
-ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
-ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -271,6 +271,7 @@
 CXXDEPMODE = @CXXDEPMODE@
 CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
+# gettext docs say to use AM_CPPFLAGS, but per module_CPPFLAGS override this
 DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
 DEPDIR = @DEPDIR@
 DEPLIBS = @DEPLIBS@
@@ -287,27 +288,177 @@
 EXTRA_TEST = @EXTRA_TEST@
 F77 = @F77@
 FFLAGS = @FFLAGS@
+FLOAT_H = @FLOAT_H@
+FLOORF_LIBM = @FLOORF_LIBM@
 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
 GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
 GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
 GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MATHL = @GNULIB_MATHL@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
 GREP = @GREP@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_SETENV = @HAVE_SETENV@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE__BOOL = @HAVE__BOOL@
 HOSTNAME = @HOSTNAME@
+INCLUDE_NEXT = @INCLUDE_NEXT@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -325,9 +476,11 @@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
 LIBOBJS = @LIBOBJS@
-LIBS = @LIBINTL@ @LIBS@
+# gettext docs say to use LDADD, but per module_LDADD override
+LIBS = @LTLIBINTL@ @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
@@ -341,6 +494,17 @@
 MYSQLLIBS = @MYSQLLIBS@
 NEED_SETGID = @NEED_SETGID@
 NETINET_IN_H = @NETINET_IN_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_MATH_H = @NEXT_MATH_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -379,11 +543,56 @@
 PLUGIN_TEST = @PLUGIN_TEST@
 POSUB = @POSUB@
 POW_LIB = @POW_LIB@
+PST3CFLAGS = @PST3CFLAGS@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 PYTHON = @PYTHON@
 RADIUSLIBS = @RADIUSLIBS@
 RANLIB = @RANLIB@
 RELEASE = @RELEASE@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REV_DATESTAMP = @REV_DATESTAMP@
 REV_TIMESTAMP = @REV_TIMESTAMP@
 SCRIPT_TEST = @SCRIPT_TEST@
@@ -400,9 +609,11 @@
 STRIP = @STRIP@
 SUPPORT = @SUPPORT@
 SYS_SOCKET_H = @SYS_SOCKET_H@
-UNISTD_H = @UNISTD_H@
 USE_NLS = @USE_NLS@
+USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@
+USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@
 VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
 WARRANTY = @WARRANTY@
 WCHAR_H = @WCHAR_H@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
@@ -410,6 +621,7 @@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
@@ -436,6 +648,8 @@
 exec_prefix = @exec_prefix@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
diff -uNr nagios-plugins-1.4.11/plugins/negate.c nagios-plugins-1.4.12/plugins/negate.c
--- nagios-plugins-1.4.11/plugins/negate.c	2007-12-10 08:52:00.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/negate.c	2008-05-02 11:28:15.000000000 +0200
@@ -1,79 +1,43 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios negate plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2002-2007 nagios-plugins team
-*
-* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
-*
+* Copyright (c) 2002-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-05-02 10:28:15 +0100 (Fri, 02 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the negate plugin
-*
-*  Negates the status of a plugin (returns OK for CRITICAL, and vice-versa)
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* Negates the status of a plugin (returns OK for CRITICAL, and vice-versa).
+* Can also perform custom state switching.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: negate.c 1859 2007-12-10 07:52:00Z dermoth $
-
-@@-<article>
-
-<sect1>
-<title>Quick Reference</title>
-<refentry>
-<refmeta><manvolnum>5<manvolnum></refmeta>
-<refnamdiv>
-<refname>&progname;</refname>
-<refpurpose>&SUMMARY;</refpurpose>
-</refnamdiv>
-</refentry>
-</sect1>
-
-<sect1>
-<title>FAQ</title>
-</sect1>
-
-<sect1>
-<title>Theory, Installation, and Operation</title>
-
-<sect2>
-<title>General Description</title>
-<para>
-&DESCRIPTION;
-</para>
-</sect2>
-
-<sect2>
-<title>Future Enhancements</title>
-<para>ToDo List</para>
-<itemizedlist>
-<listitem>Add option to do regex substitution in output text</listitem>
-</itemizedlist>
-</sect2>-@@
-
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: negate.c 1989 2008-05-02 09:28:15Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "negate";
-const char *revision = "$Revision: 1859 $";
-const char *copyright = "2002-2007";
+const char *revision = "$Revision: 1989 $";
+const char *copyright = "2002-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
-#define DEFAULT_TIMEOUT 9
+#define DEFAULT_TIMEOUT 11
 
 #include "common.h"
 #include "utils.h"
@@ -85,6 +49,7 @@
 int validate_arguments (char **);
 void print_help (void);
 void print_usage (void);
+int subst_text = FALSE;
 
 static int state[4] = {
 	STATE_OK,
@@ -97,7 +62,7 @@
 main (int argc, char **argv)
 {
 	int found = 0, result = STATE_UNKNOWN;
-	char *buf;
+	char *buf, *sub;
 	char **command_line;
 	output chld_out, chld_err;
 	int i;
@@ -128,10 +93,22 @@
 		exit (STATE_WARNING);
 	}
 
+	/* Return UNKNOWN or worse if no output is returned */
 	if (chld_out.lines == 0)
-		die (STATE_UNKNOWN, _("No data returned from command\n"));
+		die (max_state_alt (result, STATE_UNKNOWN), _("No data returned from command\n"));
 
 	for (i = 0; i < chld_out.lines; i++) {
+		if (subst_text && result != state[result] &&
+		    result >= 0 && result <= 4) {
+			/* Loop over each match found */
+			while ((sub = strstr (chld_out.line[i], state_text (result)))) {
+				/* Terminate the first part and skip over the string we'll substitute */
+				*sub = '\0';
+				sub += strlen (state_text (result));
+				/* then put everything back together */
+				asprintf (&chld_out.line[i], "%s%s%s", chld_out.line[i], state_text (state[result]), sub);
+			}
+		}
 		printf ("%s\n", chld_out.line[i]);
 	}
 
@@ -142,25 +119,6 @@
 	}
 }
 
-/******************************************************************************
-@@-
-<sect2>
-<title>Functions</title>
-
-<sect3>
-<title>process_arguments</title>
-
-<para>This function parses the command line into the needed
-variables.</para>
-
-<para>Aside from the standard 'help' and 'version' options, there
-is a only a 'timeout' option.</para>
-
-</sect3>
--@@
-******************************************************************************/
-
-
 
 /* process command-line arguments */
 static const char **
@@ -178,11 +136,12 @@
 		{"warning", required_argument, 0, 'w'},
 		{"critical", required_argument, 0, 'c'},
 		{"unknown", required_argument, 0, 'u'},
+		{"substitute", no_argument, 0, 's'},
 		{0, 0, 0, 0}
 	};
 
 	while (1) {
-		c = getopt_long (argc, argv, "+hVt:o:w:c:u:", longopts, &option);
+		c = getopt_long (argc, argv, "+hVt:o:w:c:u:s", longopts, &option);
 
 		if (c == -1 || c == EOF)
 			break;
@@ -225,6 +184,9 @@
 				usage4 (_("Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3)."));
 			permute = FALSE;
 			break;
+		case 's':     /* Substitute status text */
+			subst_text = TRUE;
+			break;
 		}
 	}
 
@@ -239,19 +201,6 @@
 }
 
 
-/******************************************************************************
-@@-
-<sect3>
-<title>validate_arguments</title>
-
-<para>No validation is currently done.</para>
-
-</sect3>
--@@
-******************************************************************************/
-
-
-
 int
 validate_arguments (char **command_line)
 {
@@ -262,13 +211,6 @@
 		usage4 (_("Require path to command"));
 }
 
-/******************************************************************************
-@@-
-</sect2> 
-</sect1>
-</article>
--@@
-******************************************************************************/
 
 int
 translate_state (char *state_text)
@@ -307,13 +249,15 @@
 	printf (_(UT_TIMEOUT), DEFAULT_TIMEOUT);
 	printf ("    %s\n", _("Keep timeout longer than the plugin timeout to retain CRITICAL status."));
 
-	printf(" -o,--ok=STATUS\n");
-	printf(" -w,--warning=STATUS\n");
-	printf(" -c,--critical=STATUS\n");
-	printf(" -u,--unknown=STATUS\n");
+	printf(" -o, --ok=STATUS\n");
+	printf(" -w, --warning=STATUS\n");
+	printf(" -c, --critical=STATUS\n");
+	printf(" -u, --unknown=STATUS\n");
 	printf(_("    STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n"));
 	printf(_("    quotes. Numeric values are accepted. If nothing is specified, permutes\n"));
 	printf(_("    OK and CRITICAL.\n"));
+	printf(" -s, --substitute\n");
+	printf(_("    Substitute output text as well. Will only substitute text in CAPITALS\n"));
 
 	printf ("\n");
 	printf ("%s\n", _("Examples:"));
@@ -323,11 +267,11 @@
 	printf ("    %s\n", _("This will return OK instead of WARNING and UNKNOWN instead of CRITICAL"));
 	printf ("\n");
 	printf ("%s\n", _("Notes:"));
-	printf ("%s\n", _("This plugin is a wrapper to take the output of another plugin and invert it."));
-	printf ("%s\n", _("The full path of the plugin must be provided."));
-	printf ("%s\n", _("If the wrapped plugin returns OK, the wrapper will return CRITICAL."));
-	printf ("%s\n", _("If the wrapped plugin returns CRITICAL, the wrapper will return OK."));
-	printf ("%s\n", _("Otherwise, the output state of the wrapped plugin is unchanged."));
+	printf (" %s\n", _("This plugin is a wrapper to take the output of another plugin and invert it."));
+	printf (" %s\n", _("The full path of the plugin must be provided."));
+	printf (" %s\n", _("If the wrapped plugin returns OK, the wrapper will return CRITICAL."));
+	printf (" %s\n", _("If the wrapped plugin returns CRITICAL, the wrapper will return OK."));
+	printf (" %s\n", _("Otherwise, the output state of the wrapped plugin is unchanged."));
 
 	printf (_(UT_SUPPORT));
 }
@@ -338,5 +282,5 @@
 print_usage (void)
 {
 	printf (_("Usage:"));
-	printf ("%s [-t timeout] [-owcu STATE] <definition of wrapped plugin>\n", progname);
+	printf ("%s [-t timeout] [-owcu STATE] [-s] <definition of wrapped plugin>\n", progname);
 }
diff -uNr nagios-plugins-1.4.11/plugins/netutils.c nagios-plugins-1.4.12/plugins/netutils.c
--- nagios-plugins-1.4.11/plugins/netutils.c	2007-09-24 02:30:14.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/netutils.c	2008-01-31 12:27:22.000000000 +0100
@@ -1,35 +1,34 @@
-/****************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios plugins network utilities
-*
+* 
 * License: GPL
 * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)
-*
-* Last Modified: $Date: 2007-09-24 01:30:14 +0100 (Mon, 24 Sep 2007) $
-*
+* Copyright (c) 2003-2008 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $
+* 
 * Description:
-*
+* 
 * This file contains commons functions used in many of the plugins.
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: netutils.c 1794 2007-09-24 00:30:14Z hweiss $
-*
-****************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: netutils.c 1918 2008-01-31 11:27:22Z dermoth $
+* 
+*****************************************************************************/
 
 #define LOCAL_TIMEOUT_ALARM_HANDLER
 
@@ -168,7 +167,8 @@
 	struct addrinfo hints;
 	struct addrinfo *r, *res;
 	struct sockaddr_un su;
-	char port_str[6];
+	char port_str[6], host[MAX_HOST_ADDRESS_LENGTH];
+	size_t len;
 	int socktype, result;
 
 	socktype = (proto == IPPROTO_UDP) ? SOCK_DGRAM : SOCK_STREAM;
@@ -180,8 +180,18 @@
 		hints.ai_protocol = proto;
 		hints.ai_socktype = socktype;
 
+		len = strlen (host_name);
+		/* check for an [IPv6] address (and strip the brackets) */
+		if (len >= 2 && host_name[0] == '[' && host_name[len - 1] == ']') {
+			host_name++;
+			len -= 2;
+		}
+		if (len >= sizeof(host))
+			return STATE_UNKNOWN;
+		memcpy (host, host_name, len);
+		host[len] = '\0';
 		snprintf (port_str, sizeof (port_str), "%d", port);
-		result = getaddrinfo (host_name, port_str, &hints, &res);
+		result = getaddrinfo (host, port_str, &hints, &res);
 
 		if (result != 0) {
 			printf ("%s\n", gai_strerror (result));
diff -uNr nagios-plugins-1.4.11/plugins/netutils.h nagios-plugins-1.4.12/plugins/netutils.h
--- nagios-plugins-1.4.11/plugins/netutils.h	2007-01-24 23:47:25.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/netutils.h	2008-01-31 12:45:28.000000000 +0100
@@ -1,36 +1,35 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios plugins net utilities include file
-*
+* 
 * License: GPL
 * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)
-*
-* Last Modified: $Date: 2007-01-24 22:47:25 +0000 (Wed, 24 Jan 2007) $
-*
+* Copyright (c) 2003-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-01-31 11:45:28 +0000 (Thu, 31 Jan 2008) $
+* 
 * Description:
-*
+* 
 * This file contains common include files and function definitions
 * used in many of the plugins.
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: netutils.h 1580 2007-01-24 22:47:25Z tonvoon $
-*
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: netutils.h 1919 2008-01-31 11:45:28Z dermoth $
+* 
+*****************************************************************************/
 
 #ifndef _NETUTILS_H_
 #define _NETUTILS_H_
diff -uNr nagios-plugins-1.4.11/plugins/popen.c nagios-plugins-1.4.12/plugins/popen.c
--- nagios-plugins-1.4.11/plugins/popen.c	2007-06-12 09:13:02.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/popen.c	2008-01-31 12:27:22.000000000 +0100
@@ -1,48 +1,45 @@
-/****************************************************************************
- *
- * Nagios plugins popen
- *
- * License: GPL
- * Copyright (c) 2005 nagios-plugins team
- *
- * Last Modified: $Date: 2007-06-12 08:13:02 +0100 (Tue, 12 Jun 2007) $
- *
- * Description:
- *
- * A safe alternative to popen
- * 
- * Provides spopen and spclose
- *
- * FILE * spopen(const char *);
- * int spclose(FILE *);
- *
- *
- * Code taken with liitle modification from "Advanced Programming for the Unix
- * Environment" by W. Richard Stevens
- *
- * This is considered safe in that no shell is spawned, and the environment and
- * path passed to the exec'd program are esstially empty. (popen create a shell
- * and passes the environment to it).
- *
- * License Information:
- *
- * 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 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., 675 Mass Ave, Cambridge, MA 02139, USA. 
- *
- * $Id: popen.c 1737 2007-06-12 07:13:02Z psychotrahe $
- *
- ******************************************************************************/
+/*****************************************************************************
+* 
+* Nagios plugins popen
+* 
+* License: GPL
+* Copyright (c) 2005-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $
+* 
+* Description:
+* 
+* A safe alternative to popen
+* 
+* Provides spopen and spclose
+* 
+* FILE * spopen(const char *);
+* int spclose(FILE *);
+* 
+* Code taken with liitle modification from "Advanced Programming for the Unix
+* Environment" by W. Richard Stevens
+* 
+* This is considered safe in that no shell is spawned, and the environment
+* and path passed to the exec'd program are essentially empty. (popen create
+* a shell and passes the environment to it).
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: popen.c 1918 2008-01-31 11:27:22Z dermoth $
+* 
+*****************************************************************************/
 
 #include "common.h"
 
diff -uNr nagios-plugins-1.4.11/plugins/popen.h nagios-plugins-1.4.12/plugins/popen.h
--- nagios-plugins-1.4.11/plugins/popen.h	2005-05-01 22:12:03.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/popen.h	2008-01-31 12:45:28.000000000 +0100
@@ -1,8 +1,8 @@
 /******************************************************************************
- *
- * $Id: popen.h 1169 2005-05-01 20:12:03Z seanius $
- *
- ******************************************************************************/
+*
+* $Id: popen.h 1919 2008-01-31 11:45:28Z dermoth $
+*
+*****************************************************************************/
 
 FILE *spopen (const char *);
 int spclose (FILE *);
diff -uNr nagios-plugins-1.4.11/plugins/runcmd.c nagios-plugins-1.4.12/plugins/runcmd.c
--- nagios-plugins-1.4.11/plugins/runcmd.c	2006-06-18 21:36:48.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/runcmd.c	2008-01-31 12:27:22.000000000 +0100
@@ -1,42 +1,43 @@
-/****************************************************************************
- * Nagios run command utilities
- *
- * License: GPL
- * Copyright (c) 2005 nagios-plugins team
- *
- * $Id: runcmd.c 1434 2006-06-18 19:36:48Z opensides $
- *
- * Description :
- *
- * A simple interface to executing programs from other programs, using an
- * optimized and safe popen()-like implementation. It is considered safe
- * in that no shell needs to be spawned and the environment passed to the
- * execve()'d program is essentially empty.
- *
- *
- * The code in this file is a derivative of popen.c which in turn was taken
- * from "Advanced Programming for the Unix Environment" by W. Richard Stevens.
- *
- * Care has been taken to make sure the functions are async-safe. The one
- * function which isn't is np_runcmd_init() which it doesn't make sense to
- * call twice anyway, so the api as a whole should be considered async-safe.
- *
- * License Information:
- *
- * 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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
+/*****************************************************************************
+* 
+* Nagios run command utilities
+* 
+* License: GPL
+* Copyright (c) 2005-2006 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $
+* 
+* Description :
+* 
+* A simple interface to executing programs from other programs, using an
+* optimized and safe popen()-like implementation. It is considered safe
+* in that no shell needs to be spawned and the environment passed to the
+* execve()'d program is essentially empty.
+* 
+* The code in this file is a derivative of popen.c which in turn was taken
+* from "Advanced Programming for the Unix Environment" by W. Richard Stevens.
+* 
+* Care has been taken to make sure the functions are async-safe. The one
+* function which isn't is np_runcmd_init() which it doesn't make sense to
+* call twice anyway, so the api as a whole should be considered async-safe.
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: runcmd.c 1918 2008-01-31 11:27:22Z dermoth $
+* 
+*****************************************************************************/
 
 #define NAGIOSPLUG_API_C 1
 
diff -uNr nagios-plugins-1.4.11/plugins/runcmd.h nagios-plugins-1.4.12/plugins/runcmd.h
--- nagios-plugins-1.4.11/plugins/runcmd.h	2005-10-24 13:10:29.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/runcmd.h	2008-01-31 12:45:28.000000000 +0100
@@ -1,11 +1,26 @@
-/*
- * $Id: runcmd.h 1260 2005-10-24 11:10:29Z seanius $
- * 
- * Author: Andreas Ericsson <ae@op5.se>
- *
- * Copyright: GNU GPL v2 or any later version.
- * 
- */
+/****************************************************************************
+* 
+* License: GPL
+* Copyright (c) 2005 Nagios Plugins Development Team
+* Author: Andreas Ericsson <ae@op5.se>
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: runcmd.h 1919 2008-01-31 11:45:28Z dermoth $
+* 
+*****************************************************************************/
 
 #ifndef NAGIOSPLUG_RUNCMD_H
 #define NAGIOSPLUG_RUNCMD_H
diff -uNr nagios-plugins-1.4.11/plugins/sslutils.c nagios-plugins-1.4.12/plugins/sslutils.c
--- nagios-plugins-1.4.11/plugins/sslutils.c	2007-06-02 00:57:31.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/sslutils.c	2008-01-31 12:27:22.000000000 +0100
@@ -1,35 +1,33 @@
-/****************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios plugins SSL utilities
-*
+* 
 * License: GPL
-* Copyright (c) 2005 nagios-plugins team
-*
-* Last Modified: $Date: 2007-06-01 23:57:31 +0100 (Fri, 01 Jun 2007) $
-*
+* Copyright (c) 2005-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $
+* 
 * Description:
-*
+* 
 * This file contains common functions for plugins that require SSL.
+* 
 *
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: sslutils.c 1726 2007-06-01 22:57:31Z hweiss $
-*
-****************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: sslutils.c 1918 2008-01-31 11:27:22Z dermoth $
+* 
+*****************************************************************************/
 
 #define LOCAL_TIMEOUT_ALARM_HANDLER
 #include "common.h"
diff -uNr nagios-plugins-1.4.11/plugins/t/check_by_ssh.t nagios-plugins-1.4.12/plugins/t/check_by_ssh.t
--- nagios-plugins-1.4.11/plugins/t/check_by_ssh.t	1970-01-01 01:00:00.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/t/check_by_ssh.t	2008-05-21 10:57:13.000000000 +0200
@@ -0,0 +1,147 @@
+#! /usr/bin/perl -w -I ..
+#
+# check_by_ssh tests
+#
+# $Id$
+#
+
+use strict;
+use Test::More;
+use NPTest;
+
+# Required parameters
+my $ssh_service = getTestParameter( "NP_SSH_HOST",
+    "A host providing SSH service",
+    "localhost");
+
+my $ssh_key = getTestParameter( "NP_SSH_IDENTITY",
+    "A key allowing access to NP_SSH_HOST",
+    "~/.ssh/id_dsa");
+
+plan skip_all => "SSH_HOST and SSH_IDENTITY must be defined" unless ($ssh_service && $ssh_key);
+
+plan tests => 40;
+
+# Some random check strings/response
+my @responce = ('OK: Everything is fine!',
+                'WARNING: Hey, pick me, pick me!',
+                'CRITICAL: Shit happens...',
+                'UNKNOWN: What can I do for ya?',
+                'WOOPS: What did I smoke?',
+);
+my @responce_re;
+my @check;
+for (@responce) {
+	push(@check, "echo $_");
+	my $re_str = $_;
+	$re_str =~ s{(.)} { "\Q$1" }ge;
+	push(@responce_re, $re_str);
+}
+
+my $result;
+
+## Single active checks
+
+for (my $i=0; $i<4; $i++) {
+	$result = NPTest->testCmd(
+		"./check_by_ssh -i $ssh_key -H $ssh_service -C '$check[$i]; exit $i'"
+		);
+	cmp_ok($result->return_code, '==', $i, "Exit with return code $i");
+	is($result->output, $responce[$i], "Status text is correct for check $i");
+}
+
+$result = NPTest->testCmd(
+	"./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 0'"
+	);
+cmp_ok($result->return_code, '==', 0, "Exit with return code 0 (OK)");
+is($result->output, 'OK - check_by_ssh: Remote command \'exit 0\' returned status 0', "Status text if command returned none (OK)");
+
+$result = NPTest->testCmd(
+	"./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 1'"
+	);
+cmp_ok($result->return_code, '==', 1, "Exit with return code 1 (WARNING)");
+is($result->output, 'WARNING - check_by_ssh: Remote command \'exit 1\' returned status 1', "Status text if command returned none (WARNING)");
+
+$result = NPTest->testCmd(
+	"./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 2'"
+	);
+cmp_ok($result->return_code, '==', 2, "Exit with return code 2 (CRITICAL)");
+is($result->output, 'CRITICAL - check_by_ssh: Remote command \'exit 2\' returned status 2', "Status text if command returned none (CRITICAL)");
+
+$result = NPTest->testCmd(
+	"./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 3'"
+	);
+cmp_ok($result->return_code, '==', 3, "Exit with return code 3 (UNKNOWN)");
+is($result->output, 'UNKNOWN - check_by_ssh: Remote command \'exit 3\' returned status 3', "Status text if command returned none (UNKNOWN)");
+
+$result = NPTest->testCmd(
+	"./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 7'"
+	);
+cmp_ok($result->return_code, '==', 7, "Exit with return code 7 (out of bounds)");
+is($result->output, 'UNKNOWN - check_by_ssh: Remote command \'exit 7\' returned status 7', "Status text if command returned none (out of bounds)");
+
+$result = NPTest->testCmd(
+	"./check_by_ssh -i $ssh_key -H $ssh_service -C '$check[4]; exit 8'"
+	);
+cmp_ok($result->return_code, '==', 8, "Exit with return code 8 (out of bounds)");
+is($result->output, $responce[4], "Return proper status text even with unknown status codes");
+
+# Multiple active checks
+$result = NPTest->testCmd(
+	"./check_by_ssh -i $ssh_key -H $ssh_service -C '$check[1]; sh -c exit\\ 1'  -C '$check[0]; sh -c exit\\ 0' -C '$check[3]; sh -c exit\\ 3' -C '$check[2]; sh -c exit\\ 2'"
+	);
+cmp_ok($result->return_code, '==', 0, "Multiple checks always return OK");
+my @lines = split(/\n/, $result->output);
+cmp_ok(scalar(@lines), '==', 8, "Correct number of output lined for multiple checks");
+my %linemap = (
+               '0' => '1',
+               '2' => '0',
+               '4' => '3',
+               '6' => '2',
+);
+foreach my $line (0, 2, 4, 6) {
+	my $code = $linemap{$line};
+	my $statline = $line+1;
+	is($lines[$line], "$responce[$code]", "multiple checks status text is correct for line $line");
+	is($lines[$statline], "STATUS CODE: $code", "multiple check status code is correct for line $line");
+}
+
+# Passive checks
+unlink("/tmp/check_by_ssh.$$");
+$result = NPTest->testCmd(
+	"./check_by_ssh -i $ssh_key -H $ssh_service -n flint -s serv -C '$check[2]; sh -c exit\\ 2' -O /tmp/check_by_ssh.$$"
+	);
+cmp_ok($result->return_code, '==', 0, "Exit always ok on passive checks");
+open(PASV, "/tmp/check_by_ssh.$$") or die("Unable to open '/tmp/check_by_ssh.$$': $!");
+my @pasv = <PASV>;
+close(PASV) or die("Unable to close '/tmp/check_by_ssh.$$': $!");
+cmp_ok(scalar(@pasv), '==', 1, 'One passive result for one check performed');
+for (0) {
+	if ($pasv[$_]) {
+		like($pasv[$_], '/^\[\d+\] PROCESS_SERVICE_CHECK_RESULT;flint;serv;2;' . $responce_re[2] . '$/', 'proper result for passive check');
+	} else {
+		fail('proper result for passive check');
+	}
+}
+unlink("/tmp/check_by_ssh.$$") or die("Unable to unlink '/tmp/check_by_ssh.$$': $!");
+undef @pasv;
+
+$result = NPTest->testCmd(
+	"./check_by_ssh -i $ssh_key -H $ssh_service -n flint -s c0:c1:c2:c3:c4 -C '$check[0];sh -c exit\\ 0' -C '$check[1];sh -c exit\\ 1' -C '$check[2];sh -c exit\\ 2' -C '$check[3];sh -c exit\\ 3' -C '$check[4];sh -c exit\\ 9' -O /tmp/check_by_ssh.$$"
+	);
+cmp_ok($result->return_code, '==', 0, "Exit always ok on passive checks");
+open(PASV, "/tmp/check_by_ssh.$$") or die("Unable to open '/tmp/check_by_ssh.$$': $!");
+@pasv = <PASV>;
+close(PASV) or die("Unable to close '/tmp/check_by_ssh.$$': $!");
+cmp_ok(scalar(@pasv), '==', 5, 'Five passive result for five checks performed');
+for (0, 1, 2, 3, 4) {
+	if ($pasv[$_]) {
+		my $ret = $_;
+		$ret = 9 if ($_ == 4);
+		like($pasv[$_], '/^\[\d+\] PROCESS_SERVICE_CHECK_RESULT;flint;c' . $_ . ';' . $ret . ';' . $responce_re[$_] . '$/', "proper result for passive check $_");
+	} else {
+		fail("proper result for passive check $_");
+	}
+}
+unlink("/tmp/check_by_ssh.$$") or die("Unable to unlink '/tmp/check_by_ssh.$$': $!");
+
diff -uNr nagios-plugins-1.4.11/plugins/t/check_dns.t nagios-plugins-1.4.12/plugins/t/check_dns.t
--- nagios-plugins-1.4.11/plugins/t/check_dns.t	2006-03-29 10:13:29.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/t/check_dns.t	2008-01-08 17:05:36.000000000 +0100
@@ -2,7 +2,7 @@
 #
 # Domain Name Server (DNS) Tests via check_dns
 #
-# $Id: check_dns.t 1361 2006-03-29 08:13:29Z tonvoon $
+# $Id: check_dns.t 1902 2008-01-08 16:05:36Z tonvoon $
 #
 
 use strict;
@@ -18,19 +18,19 @@
 my $hostname_valid = getTestParameter( 
 			"NP_HOSTNAME_VALID",
 			"A valid (known to DNS) hostname",
-			"apple.com"
+			"nagios.com"
 			);
 
 my $hostname_valid_ip = getTestParameter(
 			"NP_HOSTNAME_VALID_IP",
 			"The IP address of the valid hostname $hostname_valid",
-			"17.254.3.183"
+			"66.118.156.50",
 			);
 
 my $hostname_valid_reverse = getTestParameter(
 			"NP_HOSTNAME_VALID_REVERSE",
 			"The hostname of $hostname_valid_ip",
-			$hostname_valid."."
+			"66-118-156-50.static.sagonet.net.",
 			);
 
 my $hostname_invalid = getTestParameter( 
diff -uNr nagios-plugins-1.4.11/plugins/t/check_ftp.t nagios-plugins-1.4.12/plugins/t/check_ftp.t
--- nagios-plugins-1.4.11/plugins/t/check_ftp.t	2005-07-25 03:47:15.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/t/check_ftp.t	2008-01-08 12:57:24.000000000 +0100
@@ -2,7 +2,7 @@
 #
 # File Transfer Protocol (FTP) Test via check_ftp
 #
-# $Id: check_ftp.t 1207 2005-07-25 01:47:15Z illumino $
+# $Id: check_ftp.t 1901 2008-01-08 11:57:24Z tonvoon $
 #
 
 use strict;
diff -uNr nagios-plugins-1.4.11/plugins/t/check_imap.t nagios-plugins-1.4.12/plugins/t/check_imap.t
--- nagios-plugins-1.4.11/plugins/t/check_imap.t	2005-11-09 17:40:12.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/t/check_imap.t	2008-01-08 12:57:24.000000000 +0100
@@ -2,7 +2,7 @@
 #
 # Internet Mail Access Protocol (IMAP) Server Tests via check_imap
 #
-# $Id: check_imap.t 1279 2005-11-09 16:40:12Z tonvoon $
+# $Id: check_imap.t 1901 2008-01-08 11:57:24Z tonvoon $
 #
 
 use strict;
diff -uNr nagios-plugins-1.4.11/plugins/t/check_jabber.t nagios-plugins-1.4.12/plugins/t/check_jabber.t
--- nagios-plugins-1.4.11/plugins/t/check_jabber.t	2007-02-01 07:53:12.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/t/check_jabber.t	2008-01-08 12:57:24.000000000 +0100
@@ -2,7 +2,7 @@
 #
 # Jabber Server Tests via check_jabber
 #
-# $Id: check_jabber.t 1604 2007-02-01 06:53:12Z dermoth $
+# $Id: check_jabber.t 1901 2008-01-08 11:57:24Z tonvoon $
 #
 
 use strict;
diff -uNr nagios-plugins-1.4.11/plugins/t/check_mysql.t nagios-plugins-1.4.12/plugins/t/check_mysql.t
--- nagios-plugins-1.4.11/plugins/t/check_mysql.t	2006-03-17 15:07:34.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/t/check_mysql.t	2008-04-30 14:50:52.000000000 +0200
@@ -2,7 +2,7 @@
 #
 # MySQL Database Server Tests via check_mysql
 #
-# $Id: check_mysql.t 1327 2006-03-17 14:07:34Z tonvoon $
+# $Id: check_mysql.t 1988 2008-04-30 12:50:52Z dermoth $
 #
 #
 # These are the database permissions required for this test:
@@ -19,12 +19,16 @@
 
 plan skip_all => "check_mysql not compiled" unless (-x "check_mysql");
 
-plan tests => 10;
+plan tests => 15;
 
 my $bad_login_output = '/Access denied for user /';
 my $mysqlserver = getTestParameter( 
 		"NP_MYSQL_SERVER", 
-		"A MySQL Server with no slaves setup"
+		"A MySQL Server hostname or IP with no slaves setup"
+		);
+my $mysqlsocket = getTestParameter( 
+		"NP_MYSQL_SOCKET", 
+		"A MySQL Server socket with no slaves setup"
 		);
 my $mysql_login_details = getTestParameter( 
 		"MYSQL_LOGIN_DETAILS", 
@@ -58,6 +62,20 @@
 }
 
 SKIP: {
+	skip "No mysql socket defined", 5 unless $mysqlsocket;
+	$result = NPTest->testCmd("./check_mysql -s $mysqlsocket $mysql_login_details");
+	cmp_ok( $result->return_code, '==', 0, "Login okay");
+
+	$result = NPTest->testCmd("./check_mysql -s $mysqlsocket -u dummy -pdummy");
+	cmp_ok( $result->return_code, '==', 2, "Login failure");
+	like( $result->output, $bad_login_output, "Expected login failure message");
+
+	$result = NPTest->testCmd("./check_mysql -S -s $mysqlsocket $mysql_login_details");
+	cmp_ok( $result->return_code, "==", 1, "No slaves defined" );
+	like( $result->output, "/No slaves defined/", "Correct error message");
+}
+
+SKIP: {
 	skip "No mysql server with slaves defined", 5 unless $with_slave;
 	$result = NPTest->testCmd("./check_mysql -H $with_slave $with_slave_login");
 	cmp_ok( $result->return_code, '==', 0, "Login okay");
diff -uNr nagios-plugins-1.4.11/plugins/t/check_nagios.t nagios-plugins-1.4.12/plugins/t/check_nagios.t
--- nagios-plugins-1.4.11/plugins/t/check_nagios.t	2006-04-19 11:33:44.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/t/check_nagios.t	2008-03-18 00:08:21.000000000 +0100
@@ -2,13 +2,19 @@
 #
 # check_nagios tests
 #
-# $Id: check_nagios.t 1382 2006-04-19 09:33:44Z tonvoon $
+# $Id: check_nagios.t 1953 2008-03-17 23:08:21Z tonvoon $
 #
 
 use strict;
-use Test::More tests => 13;
+use Test::More;
 use NPTest;
 
+if (`uname -s` eq "SunOS\n") {
+        plan skip_all => "Ignoring tests on solaris because of pst3";
+} else {
+        plan tests => 13;
+}
+
 my $successOutput = '/^NAGIOS OK: /';
 my $warningOutput = '/^NAGIOS WARNING: /';
 my $failureOutput = '/^NAGIOS CRITICAL: /';
diff -uNr nagios-plugins-1.4.11/plugins/t/check_pop.t nagios-plugins-1.4.12/plugins/t/check_pop.t
--- nagios-plugins-1.4.11/plugins/t/check_pop.t	2006-03-22 16:45:49.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/t/check_pop.t	2008-01-08 12:57:24.000000000 +0100
@@ -2,7 +2,7 @@
 #
 # Post Office Protocol (POP) Server Tests via check_pop
 #
-# $Id: check_pop.t 1345 2006-03-22 15:45:49Z tonvoon $
+# $Id: check_pop.t 1901 2008-01-08 11:57:24Z tonvoon $
 #
 
 use strict;
diff -uNr nagios-plugins-1.4.11/plugins/t/check_procs.t nagios-plugins-1.4.12/plugins/t/check_procs.t
--- nagios-plugins-1.4.11/plugins/t/check_procs.t	2005-11-03 16:13:13.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/t/check_procs.t	2008-02-28 17:21:59.000000000 +0100
@@ -2,24 +2,44 @@
 #
 # Process Tests via check_procs
 #
-# $Id: check_procs.t 1271 2005-11-03 15:13:13Z tonvoon $
+# $Id: check_procs.t 1937 2008-02-28 16:21:59Z tonvoon $
 #
 
 use strict;
-use Test;
+use Test::More;
 use NPTest;
 
-use vars qw($tests);
-BEGIN {$tests = 12; plan tests => $tests}
-
 my $t;
 
-$t += checkCmd( "./check_procs -w 100000 -c   100000",      0, '/^PROCS OK: [0-9]+ process(es)?$/' );
-$t += checkCmd( "./check_procs -w 100000 -c   100000 -s Z", 0, '/^PROCS OK: [0-9]+ process(es)? with /' );
-$t += checkCmd( "./check_procs -w      0 -c 10000000",      1, '/^PROCS WARNING: [0-9]+ process(es)?$/' );
-$t += checkCmd( "./check_procs -w 0      -c        0",      2, '/^PROCS CRITICAL: [0-9]+ process(es)?$/' );
-$t += checkCmd( "./check_procs -w 0      -c        0 -s S", 2, '/^PROCS CRITICAL: [0-9]+ process(es)? with /' );
-$t += checkCmd( "./check_procs -w 0      -c 10000000 -p 1", 1, '/^PROCS WARNING: [0-9]+ process(es)? with PPID = 1/' );
+if (`uname -s` eq "SunOS\n") {
+	plan skip_all => "Ignoring tests on solaris because of pst3";
+} else {
+	plan tests => 12;
+}
+
+my $result;
+
+$result = NPTest->testCmd( "./check_procs -w 100000 -c 100000" );
+is( $result->return_code, 0, "Checking less than 10000 processes" );
+like( $result->output, '/^PROCS OK: [0-9]+ process(es)?$/', "Output correct" );
+
+$result = NPTest->testCmd( "./check_procs -w 100000 -c 100000 -s Z" );
+is( $result->return_code, 0, "Checking less than 100000 zombie processes" );
+like( $result->output, '/^PROCS OK: [0-9]+ process(es)? with /', "Output correct" );
+
+$result = NPTest->testCmd( "./check_procs -w 0 -c 100000" );
+is( $result->return_code, 1, "Checking warning if processes > 0" );
+like( $result->output, '/^PROCS WARNING: [0-9]+ process(es)?$/', "Output correct" );
+
+$result = NPTest->testCmd( "./check_procs -w 0 -c 0" );
+is( $result->return_code, 2, "Checking critical if processes > 0" );
+like( $result->output, '/^PROCS CRITICAL: [0-9]+ process(es)?$/', "Output correct" );
+
+$result = NPTest->testCmd( "./check_procs -w 0 -c 0 -s S" );
+is( $result->return_code, 2, "Checking critical if sleeping processes" );
+like( $result->output, '/^PROCS CRITICAL: [0-9]+ process(es)? with /', "Output correct" );
+
+$result = NPTest->testCmd( "./check_procs -w 0 -c 100000 -p 1" );
+is( $result->return_code, 1, "Checking warning for processes by parentid = 1" );
+like( $result->output, '/^PROCS WARNING: [0-9]+ process(es)? with PPID = 1/', "Output correct" );
 
-exit(0) if defined($Test::Harness::VERSION);
-exit($tests - $t);
diff -uNr nagios-plugins-1.4.11/plugins/t/check_tcp.t nagios-plugins-1.4.12/plugins/t/check_tcp.t
--- nagios-plugins-1.4.11/plugins/t/check_tcp.t	2007-05-18 09:17:59.000000000 +0200
+++ nagios-plugins-1.4.12/plugins/t/check_tcp.t	2008-01-08 12:57:24.000000000 +0100
@@ -2,7 +2,7 @@
 #
 # TCP Connection Based Tests via check_tcp
 #
-# $Id: check_tcp.t 1714 2007-05-18 07:17:59Z dermoth $
+# $Id: check_tcp.t 1901 2008-01-08 11:57:24Z tonvoon $
 #
 
 use strict;
diff -uNr nagios-plugins-1.4.11/plugins/urlize.c nagios-plugins-1.4.12/plugins/urlize.c
--- nagios-plugins-1.4.11/plugins/urlize.c	2007-01-28 22:46:41.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/urlize.c	2008-01-31 12:27:22.000000000 +0100
@@ -1,43 +1,40 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios urlize plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2000-2006 nagios-plugins team
-*
-* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
-*
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+* 
+* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the urlize plugin
-*
-*  This plugin wraps the text output of another command (plugin)
-*  in HTML <A> tags, thus displaying the plugin output in as a clickable link in
-*  the Nagios status screen.  The return status is the same as the invoked plugin.
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin wraps the text output of another command (plugin) in HTML <A>
+* tags, thus displaying the plugin output in as a clickable link in the
+* Nagios status screen.  The return status is the same as the invoked plugin.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-
- $Id: urlize.c 1590 2007-01-28 21:46:41Z hweiss $
- 
-******************************************************************************/
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: urlize.c 1918 2008-01-31 11:27:22Z dermoth $
+* 
+*****************************************************************************/
 
 const char *progname = "urlize";
-const char *revision = "$Revision: 1590 $";
+const char *revision = "$Revision: 1918 $";
 const char *copyright = "2000-2006";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
diff -uNr nagios-plugins-1.4.11/plugins/utils.c nagios-plugins-1.4.12/plugins/utils.c
--- nagios-plugins-1.4.11/plugins/utils.c	2007-11-23 05:18:16.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/utils.c	2008-01-31 12:27:22.000000000 +0100
@@ -1,16 +1,30 @@
 /*****************************************************************************
- *
- * utils.c
- *
- * Library of useful functions for plugins
- *
- * Copyright (c) 2000 Karl DeBisschop (karl@debisschop.net)
- * Copyright (c) 2006 Nagios Plugin Development Team
- * License: GPL
- *
- * $Revision: 1829 $
- * $Date: 2007-11-23 04:18:16 +0000 (Fri, 23 Nov 2007) $
- ****************************************************************************/
+* 
+* Library of useful functions for plugins
+* 
+* License: GPL
+* Copyright (c) 2000 Karl DeBisschop (karl@debisschop.net)
+* Copyright (c) 2002-2007 Nagios Plugin Development Team
+* 
+* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $
+* 
+* 
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: utils.c 1918 2008-01-31 11:27:22Z dermoth $
+* 
+*****************************************************************************/
 
 #define LOCAL_TIMEOUT_ALARM_HANDLER
 
diff -uNr nagios-plugins-1.4.11/plugins/utils.h nagios-plugins-1.4.12/plugins/utils.h
--- nagios-plugins-1.4.11/plugins/utils.h	2007-11-23 05:18:16.000000000 +0100
+++ nagios-plugins-1.4.12/plugins/utils.h	2008-05-07 12:02:42.000000000 +0200
@@ -16,9 +16,17 @@
 /* now some functions etc are being defined in ../lib/utils_base.c */
 #include "utils_base.h"
 
+#ifdef NP_EXTRA_OPTS
+/* Include extra-opts functions if compiled in */
+#include "extra_opts.h"
+#else
+/* else, fake np_extra_opts */
+#define np_extra_opts(acptr,av,pr) av
+#endif
+
 /* Standardize version information, termination */
 
-/* $Id: utils.h 1829 2007-11-23 04:18:16Z dermoth $ */
+/* $Id: utils.h 1991 2008-05-07 10:02:42Z dermoth $ */
 
 void support (void);
 char *clean_revstring (const char *);
@@ -173,10 +181,26 @@
  -t, --timeout=INTEGER\n\
     Seconds before connection times out (default: %d)\n"
 
+#ifdef NP_EXTRA_OPTS
+#define UT_EXTRA_OPTS "\
+ --extra-opts=[section][@file]\n\
+    Read additionnal options from ini file\n"
+#define UT_EXTRA_OPTS_NOTES "\
+ See: http://nagiosplugins.org/extra-opts for --extra-opts usage and examples.\n"
+#else
+#define UT_EXTRA_OPTS ""
+#define UT_EXTRA_OPTS_NOTES ""
+#endif
+
+#define UT_THRESHOLDS_NOTES "\
+ See:\n\
+ http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT\n\
+ for THRESHOLD format and examples.\n"
+
 #define UT_SUPPORT "\n\
 Send email to nagios-users@lists.sourceforge.net if you have questions\n\
 regarding use of this software. To submit patches or suggest improvements,\n\
-send email to nagiosplug-devel@lists.sourceforge.net\n"
+send email to nagiosplug-devel@lists.sourceforge.net\n\n"
 
 #define UT_NOWARRANTY "\n\
 The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute\n\
diff -uNr nagios-plugins-1.4.11/plugins-root/check_dhcp.c nagios-plugins-1.4.12/plugins-root/check_dhcp.c
--- nagios-plugins-1.4.11/plugins-root/check_dhcp.c	2007-10-25 22:43:04.000000000 +0200
+++ nagios-plugins-1.4.12/plugins-root/check_dhcp.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,49 +1,44 @@
-/******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_dhcp plugin
-*
+* 
 * License: GPL
 * Copyright (c) 2001-2004 Ethan Galstad (nagios@nagios.org)
-* Copyright (c) 2001-2006 Nagios Plugin Development Team
-*
-* Last Modified: $Date: 2007-10-25 21:43:04 +0100 (Thu, 25 Oct 2007) $
-*
+* Copyright (c) 2001-2007 Nagios Plugin Development Team
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_dhcp plugin
-*
-*  This plugin tests the availability of DHCP servers on a network.
-*
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* This plugin tests the availability of DHCP servers on a network.
+* 
+* Unicast mode was originally implemented by Heiti of Boras Kommun with
+* general improvements as well as usability fixes and "forward"-porting by
+* Andreas Ericsson of OP5 AB.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_dhcp.c 1810 2007-10-25 20:43:04Z tonvoon $
-*
-* ------------------------------------------------------------------------
-* Unicast mode was originally implemented by Heiti of Boras Kommun with
-* general improvements as well as usability fixes and "forward"-porting by
-* Andreas Ericsson of OP5 AB.
-* ------------------------------------------------------------------------
-*
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_dhcp.c 1991 2008-05-07 10:02:42Z dermoth $
+* 
 *****************************************************************************/
 
 const char *progname = "check_dhcp";
-const char *revision = "$Revision: 1810 $";
-const char *copyright = "2001-2006";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2001-2007";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -273,13 +268,16 @@
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts(&argc, argv, progname);
+
 	if(process_arguments(argc,argv)!=OK){
 		usage4 (_("Could not parse arguments"));
 		}
 
 	/* this plugin almost certainly needs root permissions. */
 	np_warn_if_not_root();
-	
+
 	/* create socket for DHCP communications */
 	dhcp_socket=create_dhcp_socket();
 
@@ -321,7 +319,7 @@
 
 	strncpy((char *)&ifr.ifr_name,interface_name,sizeof(ifr.ifr_name)-1);
 	ifr.ifr_name[sizeof(ifr.ifr_name)-1]='\0';
-	
+
 	/* try and grab hardware address of requested interface */
 	if(ioctl(sock,SIOCGIFHWADDR,&ifr)<0){
                 printf(_("Error: Could not get hardware address of interface '%s'\n"),interface_name);
@@ -511,7 +509,7 @@
 		opts += sizeof(requested_address);
 	        }
 	discover_packet.options[opts++]=DHCP_OPTION_END;
-	
+
 	/* unicast fields */
 	if(unicast)
 		discover_packet.giaddr.s_addr = my_ip.s_addr;
@@ -576,7 +574,7 @@
 
 		result=OK;
 		result=receive_dhcp_packet(&offer_packet,sizeof(offer_packet),sock,dhcpoffer_timeout,&source);
-		
+
 		if(result!=OK){
 			if(verbose)
 				printf(_("Result=ERROR\n"));
@@ -957,7 +955,7 @@
 		next_server=this_server->next;
 		free(this_server);
 	        }
-	
+
 	return OK;
         }
 
@@ -982,7 +980,7 @@
 				/* get max lease time we were offered */
 				if(temp_offer->lease_time>max_lease_time || temp_offer->lease_time==DHCP_INFINITE_TIME)
 					max_lease_time=temp_offer->lease_time;
-				
+
 				/* see if we got the address we requested */
 				if(!memcmp(&requested_address,&temp_offer->offered_address,sizeof(requested_address)))
 					received_requested_address=TRUE;
@@ -1014,7 +1012,7 @@
 			/* get max lease time we were offered */
 			if(temp_offer->lease_time>max_lease_time || temp_offer->lease_time==DHCP_INFINITE_TIME)
 				max_lease_time=temp_offer->lease_time;
-				
+
 			/* see if we got the address we requested */
 			if(!memcmp(&requested_address,&temp_offer->offered_address,sizeof(requested_address)))
 				received_requested_address=TRUE;
@@ -1392,7 +1390,7 @@
 
 	printf("Copyright (c) 2001-2004 Ethan Galstad (nagios@nagios.org)\n");
 	printf (COPYRIGHT, copyright, email);
-	
+
 	printf("%s\n", _("This plugin tests the availability of DHCP servers on a network."));
 
   printf ("\n\n");
@@ -1400,6 +1398,7 @@
 	print_usage();
 
 	printf (_(UT_HELP_VRSN));
+	printf (_(UT_EXTRA_OPTS));
 
 	printf (_(UT_VERBOSE));
 
@@ -1416,17 +1415,24 @@
   printf (" %s\n", "-u, --unicast");
   printf ("    %s\n", _("Unicast testing: mimic a DHCP relay, requires -s"));
 
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf ("%s\n", _("Notes:"));
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
+  printf (_(UT_SUPPORT));
 	return;
 	}
 
 
 void
 print_usage(void){
-	
+
   printf (_("Usage:"));
   printf (" %s [-v] [-u] [-s serverip] [-r requestedip] [-t timeout]\n",progname);
   printf ("                  [-i interface] [-m mac]\n");
-  
+
 	return;
 	}
 
diff -uNr nagios-plugins-1.4.11/plugins-root/check_icmp.c nagios-plugins-1.4.12/plugins-root/check_icmp.c
--- nagios-plugins-1.4.11/plugins-root/check_icmp.c	2007-12-11 06:57:35.000000000 +0100
+++ nagios-plugins-1.4.12/plugins-root/check_icmp.c	2008-05-07 12:02:42.000000000 +0200
@@ -1,52 +1,49 @@
- /******************************************************************************
-*
+/*****************************************************************************
+* 
 * Nagios check_icmp plugin
-*
+* 
 * License: GPL
-* Copyright (c) 2005-2007 nagios-plugins team
-*
+* Copyright (c) 2005-2008 Nagios Plugins Development Team
 * Original Author : Andreas Ericsson <ae@op5.se>
-*
-* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
-*
+* 
+* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $
+* 
 * Description:
-*
+* 
 * This file contains the check_icmp plugin
-*
-*  Relevant RFC's: 792 (ICMP), 791 (IP)
-*
-*  This program was modeled somewhat after the check_icmp program,
-*  which was in turn a hack of fping (www.fping.org) but has been
-*  completely rewritten since to generate higher precision rta values,
-*  and support several different modes as well as setting ttl to control.
-*  redundant routes. The only remainders of fping is currently a few
-*  function names.
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
+* 
+* Relevant RFC's: 792 (ICMP), 791 (IP)
+* 
+* This program was modeled somewhat after the check_icmp program,
+* which was in turn a hack of fping (www.fping.org) but has been
+* completely rewritten since to generate higher precision rta values,
+* and support several different modes as well as setting ttl to control.
+* redundant routes. The only remainders of fping is currently a few
+* function names.
+* 
+* 
+* 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 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
-*
+* 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
-*
+* 
 * You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id: check_icmp.c 1861 2007-12-11 05:57:35Z dermoth $
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+* 
+* $Id: check_icmp.c 1991 2008-05-07 10:02:42Z dermoth $
 * 
 *****************************************************************************/
 
 /* progname may change */
 /* char *progname = "check_icmp"; */
 char *progname;
-const char *revision = "$Revision: 1861 $";
-const char *copyright = "2005-2007";
+const char *revision = "$Revision: 1991 $";
+const char *copyright = "2005-2008";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 /** nagios plugins basic includes */
@@ -54,6 +51,10 @@
 #include "netutils.h"
 #include "utils.h"
 
+#if HAVE_SYS_SOCKIO_H
+#include <sys/sockio.h>
+#endif
+#include <sys/ioctl.h>
 #include <sys/time.h>
 #include <sys/types.h>
 #include <stdio.h>
@@ -66,6 +67,7 @@
 #include <ctype.h>
 #include <netdb.h>
 #include <sys/socket.h>
+#include <net/if.h>
 #include <netinet/in_systm.h>
 #include <netinet/in.h>
 #include <netinet/ip.h>
@@ -79,7 +81,7 @@
 # define MAXTTL	255
 #endif
 #ifndef INADDR_NONE
-# define INADDR_NONE 0xffffffU
+# define INADDR_NONE (in_addr_t)(-1)
 #endif
 
 #ifndef SOL_IP
@@ -178,14 +180,16 @@
 void print_usage (void);
 static u_int get_timevar(const char *);
 static u_int get_timevaldiff(struct timeval *, struct timeval *);
+static in_addr_t get_ip_address(const char *);
 static int wait_for_reply(int, u_int);
 static int recvfrom_wto(int, char *, unsigned int, struct sockaddr *, u_int *);
 static int send_icmp_ping(int, struct rta_host *);
 static int get_threshold(char *str, threshold *th);
 static void run_checks(void);
+static void set_source_ip(char *);
 static int add_target(char *);
 static int add_target_ip(char *, struct in_addr *);
-static int handle_random_icmp(struct icmp *, struct sockaddr_in *);
+static int handle_random_icmp(char *, struct sockaddr_in *);
 static unsigned short icmp_checksum(unsigned short *, int);
 static void finish(int);
 static void crash(const char *, ...);
@@ -235,10 +239,10 @@
 }
 
 
-static char *
+static const char *
 get_icmp_error_msg(unsigned char icmp_type, unsigned char icmp_code)
 {
-	char *msg = "unreachable";
+	const char *msg = "unreachable";
 
 	if(debug > 1) printf("get_icmp_error_msg(%u, %u)\n", icmp_type, icmp_code);
 	switch(icmp_type) {
@@ -292,19 +296,18 @@
 }
 
 static int
-handle_random_icmp(struct icmp *p, struct sockaddr_in *addr)
+handle_random_icmp(char *packet, struct sockaddr_in *addr)
 {
-	struct icmp sent_icmp;
+	struct icmp p, sent_icmp;
 	struct rta_host *host = NULL;
-	unsigned char *ptr;
 
-	if(p->icmp_type == ICMP_ECHO && p->icmp_id == pid) {
+	memcpy(&p, packet, sizeof(p));
+	if(p.icmp_type == ICMP_ECHO && p.icmp_id == pid) {
 		/* echo request from us to us (pinging localhost) */
 		return 0;
 	}
 
-	ptr = (unsigned char *)p;
-	if(debug) printf("handle_random_icmp(%p, %p)\n", (void *)p, (void *)addr);
+	if(debug) printf("handle_random_icmp(%p, %p)\n", (void *)&p, (void *)addr);
 
 	/* only handle a few types, since others can't possibly be replies to
 	 * us in a sane network (if it is anyway, it will be counted as lost
@@ -316,15 +319,15 @@
 	 * TIMXCEED actually sends a proper icmp response we will have passed
 	 * too many hops to have a hope of reaching it later, in which case it
 	 * indicates overconfidence in the network, poor routing or both. */
-	if(p->icmp_type != ICMP_UNREACH && p->icmp_type != ICMP_TIMXCEED &&
-	   p->icmp_type != ICMP_SOURCEQUENCH && p->icmp_type != ICMP_PARAMPROB)
+	if(p.icmp_type != ICMP_UNREACH && p.icmp_type != ICMP_TIMXCEED &&
+	   p.icmp_type != ICMP_SOURCEQUENCH && p.icmp_type != ICMP_PARAMPROB)
 	{
 		return 0;
 	}
 
 	/* might be for us. At least it holds the original package (according
 	 * to RFC 792). If it isn't, just ignore it */
-	memcpy(&sent_icmp, ptr + 28, sizeof(sent_icmp));
+	memcpy(&sent_icmp, packet + 28, sizeof(sent_icmp));
 	if(sent_icmp.icmp_type != ICMP_ECHO || sent_icmp.icmp_id != pid ||
 	   sent_icmp.icmp_seq >= targets)
 	{
@@ -336,7 +339,7 @@
 	host = table[sent_icmp.icmp_seq];
 	if(debug) {
 		printf("Received \"%s\" from %s for ICMP ECHO sent to %s.\n",
-			   get_icmp_error_msg(p->icmp_type, p->icmp_code),
+			   get_icmp_error_msg(p.icmp_type, p.icmp_code),
 			   inet_ntoa(addr->sin_addr), host->name);
 	}
 
@@ -347,7 +350,7 @@
 
 	/* source quench means we're sending too fast, so increase the
 	 * interval and mark this packet lost */
-	if(p->icmp_type == ICMP_SOURCEQUENCH) {
+	if(p.icmp_type == ICMP_SOURCEQUENCH) {
 		pkt_interval *= pkt_backoff_factor;
 		target_interval *= target_backoff_factor;
 	}
@@ -355,8 +358,8 @@
 		targets_down++;
 		host->flags |= FLAG_LOST_CAUSE;
 	}
-	host->icmp_type = p->icmp_type;
-	host->icmp_code = p->icmp_code;
+	host->icmp_type = p.icmp_type;
+	host->icmp_code = p.icmp_code;
 	host->error_addr.s_addr = addr->sin_addr.s_addr;
 
 	return 0;
@@ -375,7 +378,7 @@
 	setlocale (LC_ALL, "");
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
-	
+
 	/* print a helpful error message if geteuid != 0 */
 	np_warn_if_not_root();
 
@@ -444,9 +447,12 @@
 		packets = 5;
 	}
 
+	/* Parse extra opts if any */
+	argv=np_extra_opts(&argc, argv, progname);
+
 	/* parse the arguments */
 	for(i = 1; i < argc; i++) {
-		while((arg = getopt(argc, argv, "vhVw:c:n:p:t:H:i:b:I:l:m:")) != EOF) {
+		while((arg = getopt(argc, argv, "vhVw:c:n:p:t:H:s:i:b:I:l:m:")) != EOF) {
 			switch(arg) {
 			case 'v':
 				debug++;
@@ -489,6 +495,9 @@
 					crit_down = (unsigned char)strtoul(ptr + 1, NULL, 0);
 				}
 				break;
+			case 's': /* specify source IP address */
+				set_source_ip(optarg);
+				break;
       case 'V':                 /* version */
         /*print_revision (progname, revision);*/ /* FIXME: Why? */
         exit (STATE_OK);
@@ -640,7 +649,7 @@
 								 table[t]->name);
 				continue;
 			}
-			
+
 			/* we're still in the game, so send next packet */
 			(void)send_icmp_ping(icmp_sock, table[t]);
 			result = wait_for_reply(icmp_sock, target_interval);
@@ -748,13 +757,13 @@
 		memcpy(&icp, buf + hlen, sizeof(icp));
 
 		if(icp.icmp_id != pid) {
-			handle_random_icmp(&icp, &resp_addr);
+			handle_random_icmp(buf + hlen, &resp_addr);
 			continue;
 		}
 
 		if(icp.icmp_type != ICMP_ECHOREPLY || icp.icmp_seq >= targets) {
 			if(debug > 2) printf("not a proper ICMP_ECHOREPLY\n");
-			handle_random_icmp(&icp, &resp_addr);
+			handle_random_icmp(buf + hlen, &resp_addr);
 			continue;
 		}
 
@@ -887,7 +896,7 @@
 	unsigned char pl;
 	double rta;
 	struct rta_host *host;
-	char *status_string[] =
+	const char *status_string[] =
 	{"OK", "WARNING", "CRITICAL", "UNKNOWN", "DEPENDENT"};
 	int hosts_ok = 0;
 	int hosts_warn = 0;
@@ -1101,7 +1110,7 @@
 
 		/* this is silly, but it works */
 		if(mode == MODE_HOSTCHECK || mode == MODE_ALL) {
-			printf("mode: %d\n", mode);
+			if(debug > 2) printf("mode: %d\n", mode);
 			continue;
 		}
 		break;
@@ -1109,6 +1118,40 @@
 
 	return 0;
 }
+
+static void
+set_source_ip(char *arg)
+{
+	struct sockaddr_in src;
+
+	memset(&src, 0, sizeof(src));
+	src.sin_family = AF_INET;
+	if((src.sin_addr.s_addr = inet_addr(arg)) == INADDR_NONE)
+		src.sin_addr.s_addr = get_ip_address(arg);
+	if(bind(icmp_sock, (struct sockaddr *)&src, sizeof(src)) == -1)
+		crash("Cannot bind to IP address %s", arg);
+}
+
+/* TODO: Move this to netutils.c and also change check_dhcp to use that. */
+static in_addr_t
+get_ip_address(const char *ifname)
+{
+#if defined(SIOCGIFADDR)
+	struct ifreq ifr;
+	struct sockaddr_in ip;
+
+	strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1);
+	ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0';
+	if(ioctl(icmp_sock, SIOCGIFADDR, &ifr) == -1)
+		crash("Cannot determine IP address of interface %s", ifname);
+	memcpy(&ip, &ifr.ifr_addr, sizeof(ip));
+	return ip.sin_addr.s_addr;
+#else
+	errno = 0;
+	crash("Cannot get interface IP address on this platform.");
+#endif
+}
+
 /*
  * u = micro
  * m = milli
@@ -1213,16 +1256,17 @@
 {
 
   /*print_revision (progname, revision);*/ /* FIXME: Why? */
-  
+
   printf ("Copyright (c) 2005 Andreas Ericsson <ae@op5.se>\n");
   printf (COPYRIGHT, copyright, email);
-  
+
   printf ("\n\n");
-  
+
   print_usage ();
-  
+
   printf (_(UT_HELP_VRSN));
-  
+  printf (_(UT_EXTRA_OPTS));
+
   printf (" %s\n", "-H");
   printf ("    %s\n", _("specify a target"));
   printf (" %s\n", "-w");
@@ -1231,6 +1275,8 @@
   printf (" %s\n", "-c");
   printf ("    %s", _("critical threshold (currently "));
   printf ("%0.3fms,%u%%)\n", (float)crit.rta, crit.pl);
+  printf (" %s\n", "-s");
+  printf ("    %s\n", _("specify a source IP address or device name"));
   printf (" %s\n", "-n");
   printf ("    %s", _("number of packets to send (currently "));
   printf ("%u)\n",packets);
@@ -1255,23 +1301,28 @@
   printf ("    %s\n", _("verbose"));
 
   printf ("\n");
-	printf ("%s\n\n", _("The -H switch is optional. Naming a host (or several) to check is not."));
-  printf ("%s\n", _("Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%"));
-  printf ("%s\n", _("packet loss.  The default values should work well for most users."));
-  printf ("%s\n", _("You can specify different RTA factors using the standardized abbreviations"));
-  printf ("%s\n\n", _("us (microseconds), ms (milliseconds, default) or just plain s for seconds."));
+  printf ("%s\n", _("Notes:"));
+  printf (" %s\n", _("The -H switch is optional. Naming a host (or several) to check is not."));
+  printf ("\n");
+  printf (" %s\n", _("Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%"));
+  printf (" %s\n", _("packet loss.  The default values should work well for most users."));
+  printf (" %s\n", _("You can specify different RTA factors using the standardized abbreviations"));
+  printf (" %s\n", _("us (microseconds), ms (milliseconds, default) or just plain s for seconds."));
 /* -d not yet implemented */
 /*  printf ("%s\n", _("Threshold format for -d is warn,crit.  12,14 means WARNING if >= 12 hops"));
   printf ("%s\n", _("are spent and CRITICAL if >= 14 hops are spent."));
   printf ("%s\n\n", _("NOTE: Some systems decrease TTL when forming ICMP_ECHOREPLY, others do not."));*/
-  printf ("%s\n\n", _("The -v switch can be specified several times for increased verbosity."));
-
+  printf ("\n");
+  printf (" %s\n", _("The -v switch can be specified several times for increased verbosity."));
 /*  printf ("%s\n", _("Long options are currently unsupported."));
   printf ("%s\n", _("Options marked with * require an argument"));
 */
+#ifdef NP_EXTRA_OPTS
+  printf ("\n");
+  printf (_(UT_EXTRA_OPTS_NOTES));
+#endif
+
   printf (_(UT_SUPPORT));
-  
-  printf (_(UT_NOWARRANTY));
 }
 
 
@@ -1280,5 +1331,5 @@
 print_usage (void)
 {
   printf (_("Usage:"));
-  printf(" %s [options] [-H] host1 host2 hostn\n", progname);
+  printf(" %s [options] [-H] host1 host2 hostN\n", progname);
 }
diff -uNr nagios-plugins-1.4.11/plugins-root/Makefile.am nagios-plugins-1.4.12/plugins-root/Makefile.am
--- nagios-plugins-1.4.11/plugins-root/Makefile.am	2007-12-13 23:22:27.000000000 +0100
+++ nagios-plugins-1.4.12/plugins-root/Makefile.am	2008-03-14 16:44:27.000000000 +0100
@@ -4,10 +4,10 @@
 
 INCLUDES = -I.. -I$(top_srcdir)/lib -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins @SSLINCLUDE@
 
-datadir = @datadir@
 localedir = $(datadir)/locale
 DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
-LIBS = @LIBINTL@ @LIBS@ @SSLLIBS@
+# Don't add LTLIBINTL to all, as pst3 doesn't need it
+#LIBS = @LTLIBINTL@ @LIBS@
 
 noinst_PROGRAMS = check_dhcp check_icmp @EXTRAS_ROOT@
 
@@ -66,8 +66,11 @@
 
 ##############################################################################
 # the actual targets
-check_dhcp_LDADD = $(NETLIBS)
-check_icmp_LDADD = $(NETLIBS) $(SOCKETLIBS)
+check_dhcp_LDADD = @LTLIBINTL@ $(NETLIBS)
+check_icmp_LDADD = @LTLIBINTL@ $(NETLIBS) $(SOCKETLIBS)
+# -m64 needed at compiler and linker phase
+pst3_CFLAGS = @PST3CFLAGS@
+pst3_LDFLAGS = @PST3CFLAGS@
 pst3_LDADD = -lkvm
 
 check_dhcp_DEPENDENCIES = check_dhcp.c $(NETOBJS) $(DEPLIBS) 
diff -uNr nagios-plugins-1.4.11/plugins-root/Makefile.in nagios-plugins-1.4.12/plugins-root/Makefile.in
--- nagios-plugins-1.4.11/plugins-root/Makefile.in	2007-12-13 23:42:35.000000000 +0100
+++ nagios-plugins-1.4.12/plugins-root/Makefile.in	2008-05-28 00:05:07.000000000 +0200
@@ -41,36 +41,40 @@
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
 	$(top_srcdir)/gl/m4/alloca.m4 \
 	$(top_srcdir)/gl/m4/arpa_inet_h.m4 \
-	$(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \
-	$(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \
-	$(top_srcdir)/gl/m4/dos.m4 \
+	$(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \
+	$(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \
+	$(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \
 	$(top_srcdir)/gl/m4/double-slash-root.m4 \
 	$(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \
 	$(top_srcdir)/gl/m4/exitfail.m4 \
 	$(top_srcdir)/gl/m4/extensions.m4 \
 	$(top_srcdir)/gl/m4/fcntl-safer.m4 \
+	$(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \
 	$(top_srcdir)/gl/m4/fstypename.m4 \
 	$(top_srcdir)/gl/m4/fsusage.m4 \
 	$(top_srcdir)/gl/m4/getaddrinfo.m4 \
 	$(top_srcdir)/gl/m4/gethostname.m4 \
 	$(top_srcdir)/gl/m4/getloadavg.m4 \
 	$(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \
+	$(top_srcdir)/gl/m4/glibc21.m4 \
 	$(top_srcdir)/gl/m4/gnulib-common.m4 \
 	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \
-	$(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \
+	$(top_srcdir)/gl/m4/iconv.m4 \
+	$(top_srcdir)/gl/m4/include_next.m4 \
+	$(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \
+	$(top_srcdir)/gl/m4/intlmacosx.m4 \
+	$(top_srcdir)/gl/m4/intmax_t.m4 \
 	$(top_srcdir)/gl/m4/inttypes_h.m4 \
 	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longdouble.m4 \
+	$(top_srcdir)/gl/m4/lib-prefix.m4 \
+	$(top_srcdir)/gl/m4/localcharset.m4 \
 	$(top_srcdir)/gl/m4/longlong.m4 \
 	$(top_srcdir)/gl/m4/ls-mntd-fs.m4 \
-	$(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \
-	$(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \
-	$(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \
+	$(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \
+	$(top_srcdir)/gl/m4/mbstate_t.m4 \
+	$(top_srcdir)/gl/m4/mountlist.m4 \
 	$(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \
 	$(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \
 	$(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \
@@ -80,21 +84,21 @@
 	$(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \
 	$(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \
 	$(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \
-	$(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \
+	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \
+	$(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \
+	$(top_srcdir)/gl/m4/strerror.m4 \
+	$(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \
 	$(top_srcdir)/gl/m4/strnlen.m4 \
 	$(top_srcdir)/gl/m4/sys_socket_h.m4 \
-	$(top_srcdir)/gl/m4/ulonglong.m4 \
 	$(top_srcdir)/gl/m4/unistd-safer.m4 \
 	$(top_srcdir)/gl/m4/unistd_h.m4 \
 	$(top_srcdir)/gl/m4/vasnprintf.m4 \
 	$(top_srcdir)/gl/m4/vasprintf.m4 \
 	$(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \
 	$(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \
-	$(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \
-	$(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \
-	$(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \
+	$(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
@@ -112,7 +116,7 @@
 check_icmp_SOURCES = check_icmp.c
 check_icmp_OBJECTS = check_icmp.$(OBJEXT)
 pst3_SOURCES = pst3.c
-pst3_OBJECTS = pst3.$(OBJEXT)
+pst3_OBJECTS = pst3-pst3.$(OBJEXT)
 pst3_DEPENDENCIES =
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
@@ -132,10 +136,6 @@
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t $(srcdir)
 INSTALL = @INSTALL@
-ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
-ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
-ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
-ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -180,27 +180,177 @@
 EXTRA_TEST = @EXTRA_TEST@
 F77 = @F77@
 FFLAGS = @FFLAGS@
+FLOAT_H = @FLOAT_H@
+FLOORF_LIBM = @FLOORF_LIBM@
 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
 GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
 GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
 GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MATHL = @GNULIB_MATHL@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
 GREP = @GREP@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_SETENV = @HAVE_SETENV@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE__BOOL = @HAVE__BOOL@
 HOSTNAME = @HOSTNAME@
+INCLUDE_NEXT = @INCLUDE_NEXT@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -218,9 +368,10 @@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
 LIBOBJS = @LIBOBJS@
-LIBS = @LIBINTL@ @LIBS@ @SSLLIBS@
+LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
@@ -234,6 +385,17 @@
 MYSQLLIBS = @MYSQLLIBS@
 NEED_SETGID = @NEED_SETGID@
 NETINET_IN_H = @NETINET_IN_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_MATH_H = @NEXT_MATH_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -272,11 +434,56 @@
 PLUGIN_TEST = @PLUGIN_TEST@
 POSUB = @POSUB@
 POW_LIB = @POW_LIB@
+PST3CFLAGS = @PST3CFLAGS@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 PYTHON = @PYTHON@
 RADIUSLIBS = @RADIUSLIBS@
 RANLIB = @RANLIB@
 RELEASE = @RELEASE@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REV_DATESTAMP = @REV_DATESTAMP@
 REV_TIMESTAMP = @REV_TIMESTAMP@
 SCRIPT_TEST = @SCRIPT_TEST@
@@ -293,9 +500,11 @@
 STRIP = @STRIP@
 SUPPORT = @SUPPORT@
 SYS_SOCKET_H = @SYS_SOCKET_H@
-UNISTD_H = @UNISTD_H@
 USE_NLS = @USE_NLS@
+USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@
+USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@
 VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
 WARRANTY = @WARRANTY@
 WCHAR_H = @WCHAR_H@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
@@ -303,6 +512,7 @@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
@@ -329,6 +539,8 @@
 exec_prefix = @exec_prefix@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
@@ -381,8 +593,11 @@
 
 ##############################################################################
 # the actual targets
-check_dhcp_LDADD = $(NETLIBS)
-check_icmp_LDADD = $(NETLIBS) $(SOCKETLIBS)
+check_dhcp_LDADD = @LTLIBINTL@ $(NETLIBS)
+check_icmp_LDADD = @LTLIBINTL@ $(NETLIBS) $(SOCKETLIBS)
+# -m64 needed at compiler and linker phase
+pst3_CFLAGS = @PST3CFLAGS@
+pst3_LDFLAGS = @PST3CFLAGS@
 pst3_LDADD = -lkvm
 check_dhcp_DEPENDENCIES = check_dhcp.c $(NETOBJS) $(DEPLIBS) 
 check_icmp_DEPENDENCIES = check_icmp.c $(NETOBJS)
@@ -444,7 +659,7 @@
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_dhcp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_icmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pst3.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pst3-pst3.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@@ -467,6 +682,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
+pst3-pst3.o: pst3.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pst3_CFLAGS) $(CFLAGS) -MT pst3-pst3.o -MD -MP -MF "$(DEPDIR)/pst3-pst3.Tpo" -c -o pst3-pst3.o `test -f 'pst3.c' || echo '$(srcdir)/'`pst3.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pst3-pst3.Tpo" "$(DEPDIR)/pst3-pst3.Po"; else rm -f "$(DEPDIR)/pst3-pst3.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pst3.c' object='pst3-pst3.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pst3_CFLAGS) $(CFLAGS) -c -o pst3-pst3.o `test -f 'pst3.c' || echo '$(srcdir)/'`pst3.c
+
+pst3-pst3.obj: pst3.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pst3_CFLAGS) $(CFLAGS) -MT pst3-pst3.obj -MD -MP -MF "$(DEPDIR)/pst3-pst3.Tpo" -c -o pst3-pst3.obj `if test -f 'pst3.c'; then $(CYGPATH_W) 'pst3.c'; else $(CYGPATH_W) '$(srcdir)/pst3.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pst3-pst3.Tpo" "$(DEPDIR)/pst3-pst3.Po"; else rm -f "$(DEPDIR)/pst3-pst3.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pst3.c' object='pst3-pst3.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pst3_CFLAGS) $(CFLAGS) -c -o pst3-pst3.obj `if test -f 'pst3.c'; then $(CYGPATH_W) 'pst3.c'; else $(CYGPATH_W) '$(srcdir)/pst3.c'; fi`
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff -uNr nagios-plugins-1.4.11/plugins-root/pst3.c nagios-plugins-1.4.12/plugins-root/pst3.c
--- nagios-plugins-1.4.11/plugins-root/pst3.c	2005-09-22 11:43:12.000000000 +0200
+++ nagios-plugins-1.4.12/plugins-root/pst3.c	2008-05-27 15:35:59.000000000 +0200
@@ -1,15 +1,15 @@
 /*	pst3.c
- *
- *  Third version to get process arg info; this time by using
- *  a combination of reading the /proc/<pid>/psinfo structures
- *  and reading the complete arg vector from kernel memory structures.
- *
- *  Developed and tested under Solaris 5.8 (both 32 and 64 bit modes).
- *
- *  NOTE:  This program must be setuid-root (or run by root) to work!
- *
- *	Written: 2005-04-28	R.W.Ingraham
- */
+*
+*  Third version to get process arg info; this time by using
+*  a combination of reading the /proc/<pid>/psinfo structures
+*  and reading the complete arg vector from kernel memory structures.
+*
+*  Developed and tested under Solaris 5.8 (both 32 and 64 bit modes).
+*
+*  NOTE:  This program must be setuid-root (or run by root) to work!
+*
+*	Written: 2005-04-28	R.W.Ingraham
+*/
 
 
 #define _KMEMUSER	1
@@ -99,7 +99,7 @@
 	if ((pDir = opendir(PROC_DIR)) != NULL)
 	{
 		/* Display column headings */
-		printf("S   UID  PPID    VSZ    RSS %%CPU COMMAND ARGS\n");
+		printf("S   UID   PID  PPID    VSZ    RSS %%CPU COMMAND ARGS\n");
 
 		/* Zip through all of the process entries */
 		while ((pDent = readdir(pDir)) != NULL)
@@ -187,9 +187,10 @@
 			thisProg = myArgv[0];
  
 		/* Display the ps columns (except for argv) */
-		printf("%c %5d %5d %6lu %6lu %4.1f %s ",
+		printf("%c %5d %5d %5d %6lu %6lu %4.1f %s ",
 			pPsInfo->pr_lwp.pr_sname,
 			(int)(pPsInfo->pr_euid),
+			(int)(pPsInfo->pr_pid),
 			(int)(pPsInfo->pr_ppid),
 			(unsigned long)(pPsInfo->pr_size),
 			(unsigned long)(pPsInfo->pr_rssize),
diff -uNr nagios-plugins-1.4.11/plugins-scripts/Makefile.in nagios-plugins-1.4.12/plugins-scripts/Makefile.in
--- nagios-plugins-1.4.11/plugins-scripts/Makefile.in	2007-12-13 23:42:35.000000000 +0100
+++ nagios-plugins-1.4.12/plugins-scripts/Makefile.in	2008-05-28 00:05:07.000000000 +0200
@@ -39,36 +39,40 @@
 	$(srcdir)/subst.in $(srcdir)/utils.pm.in $(srcdir)/utils.sh.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
 	$(top_srcdir)/gl/m4/alloca.m4 \
 	$(top_srcdir)/gl/m4/arpa_inet_h.m4 \
-	$(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \
-	$(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \
-	$(top_srcdir)/gl/m4/dos.m4 \
+	$(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \
+	$(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \
+	$(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \
 	$(top_srcdir)/gl/m4/double-slash-root.m4 \
 	$(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \
 	$(top_srcdir)/gl/m4/exitfail.m4 \
 	$(top_srcdir)/gl/m4/extensions.m4 \
 	$(top_srcdir)/gl/m4/fcntl-safer.m4 \
+	$(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \
 	$(top_srcdir)/gl/m4/fstypename.m4 \
 	$(top_srcdir)/gl/m4/fsusage.m4 \
 	$(top_srcdir)/gl/m4/getaddrinfo.m4 \
 	$(top_srcdir)/gl/m4/gethostname.m4 \
 	$(top_srcdir)/gl/m4/getloadavg.m4 \
 	$(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \
+	$(top_srcdir)/gl/m4/glibc21.m4 \
 	$(top_srcdir)/gl/m4/gnulib-common.m4 \
 	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \
-	$(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \
+	$(top_srcdir)/gl/m4/iconv.m4 \
+	$(top_srcdir)/gl/m4/include_next.m4 \
+	$(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \
+	$(top_srcdir)/gl/m4/intlmacosx.m4 \
+	$(top_srcdir)/gl/m4/intmax_t.m4 \
 	$(top_srcdir)/gl/m4/inttypes_h.m4 \
 	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longdouble.m4 \
+	$(top_srcdir)/gl/m4/lib-prefix.m4 \
+	$(top_srcdir)/gl/m4/localcharset.m4 \
 	$(top_srcdir)/gl/m4/longlong.m4 \
 	$(top_srcdir)/gl/m4/ls-mntd-fs.m4 \
-	$(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \
-	$(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \
-	$(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \
+	$(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \
+	$(top_srcdir)/gl/m4/mbstate_t.m4 \
+	$(top_srcdir)/gl/m4/mountlist.m4 \
 	$(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \
 	$(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \
 	$(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \
@@ -78,21 +82,21 @@
 	$(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \
 	$(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \
 	$(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \
-	$(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \
+	$(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \
+	$(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \
+	$(top_srcdir)/gl/m4/strerror.m4 \
+	$(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \
 	$(top_srcdir)/gl/m4/strnlen.m4 \
 	$(top_srcdir)/gl/m4/sys_socket_h.m4 \
-	$(top_srcdir)/gl/m4/ulonglong.m4 \
 	$(top_srcdir)/gl/m4/unistd-safer.m4 \
 	$(top_srcdir)/gl/m4/unistd_h.m4 \
 	$(top_srcdir)/gl/m4/vasnprintf.m4 \
 	$(top_srcdir)/gl/m4/vasprintf.m4 \
 	$(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \
 	$(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \
-	$(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \
-	$(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \
-	$(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \
+	$(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
@@ -106,10 +110,6 @@
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 VPATH = $(top_srcdir) $(top_srcdir)/plugins-scripts $(top_srcdir)/plugins-scripts/t
 INSTALL = @INSTALL@
-ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
-ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
-ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
-ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -154,27 +154,177 @@
 EXTRA_TEST = @EXTRA_TEST@
 F77 = @F77@
 FFLAGS = @FFLAGS@
+FLOAT_H = @FLOAT_H@
+FLOORF_LIBM = @FLOORF_LIBM@
 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
 GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
 GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
 GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MATHL = @GNULIB_MATHL@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
 GREP = @GREP@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_SETENV = @HAVE_SETENV@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE__BOOL = @HAVE__BOOL@
 HOSTNAME = @HOSTNAME@
+INCLUDE_NEXT = @INCLUDE_NEXT@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -195,6 +345,7 @@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
@@ -208,6 +359,17 @@
 MYSQLLIBS = @MYSQLLIBS@
 NEED_SETGID = @NEED_SETGID@
 NETINET_IN_H = @NETINET_IN_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_MATH_H = @NEXT_MATH_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -246,11 +408,56 @@
 PLUGIN_TEST = @PLUGIN_TEST@
 POSUB = @POSUB@
 POW_LIB = @POW_LIB@
+PST3CFLAGS = @PST3CFLAGS@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 PYTHON = @PYTHON@
 RADIUSLIBS = @RADIUSLIBS@
 RANLIB = @RANLIB@
 RELEASE = @RELEASE@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REV_DATESTAMP = @REV_DATESTAMP@
 REV_TIMESTAMP = @REV_TIMESTAMP@
 SCRIPT_TEST = @SCRIPT_TEST@
@@ -267,9 +474,11 @@
 STRIP = @STRIP@
 SUPPORT = @SUPPORT@
 SYS_SOCKET_H = @SYS_SOCKET_H@
-UNISTD_H = @UNISTD_H@
 USE_NLS = @USE_NLS@
+USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@
+USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@
 VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
 WARRANTY = @WARRANTY@
 WCHAR_H = @WCHAR_H@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
@@ -277,6 +486,7 @@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
@@ -303,6 +513,8 @@
 exec_prefix = @exec_prefix@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 host = @host@
 host_alias = @host_alias@
 host_cpu = @host_cpu@
Dateien nagios-plugins-1.4.11/po/de.gmo und nagios-plugins-1.4.12/po/de.gmo sind verschieden.
diff -uNr nagios-plugins-1.4.11/po/de.po nagios-plugins-1.4.12/po/de.po
--- nagios-plugins-1.4.11/po/de.po	2007-12-13 23:43:55.000000000 +0100
+++ nagios-plugins-1.4.12/po/de.po	2008-05-28 00:06:18.000000000 +0200
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: nagiosplug\n"
 "Report-Msgid-Bugs-To: nagiosplug-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2007-12-13 22:43+0000\n"
+"POT-Creation-Date: 2008-05-27 23:06+0100\n"
 "PO-Revision-Date: 2004-12-23 17:46+0100\n"
 "Last-Translator:  <>\n"
 "Language-Team: English <en@li.org>\n"
@@ -18,56 +18,61 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms:  nplurals=2; plural=(n > 1);X-Generator: KBabel 1.3.1\n"
 
-#: plugins/check_by_ssh.c:83 plugins/check_cluster.c:79 plugins/check_dig.c:89
-#: plugins/check_disk.c:198 plugins/check_dns.c:93 plugins/check_dummy.c:59
-#: plugins/check_fping.c:89 plugins/check_game.c:84 plugins/check_hpjd.c:106
-#: plugins/check_http.c:154 plugins/check_ldap.c:108 plugins/check_load.c:126
-#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:88
-#: plugins/check_nagios.c:94 plugins/check_nt.c:126 plugins/check_ntp.c:767
-#: plugins/check_ntp_peer.c:553 plugins/check_ntp_time.c:544
+#: plugins/check_by_ssh.c:84 plugins/check_cluster.c:81 plugins/check_dig.c:91
+#: plugins/check_disk.c:199 plugins/check_dns.c:106 plugins/check_dummy.c:56
+#: plugins/check_fping.c:90 plugins/check_game.c:86 plugins/check_hpjd.c:107
+#: plugins/check_http.c:154 plugins/check_ldap.c:112 plugins/check_load.c:126
+#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:89
+#: plugins/check_nagios.c:95 plugins/check_nt.c:129 plugins/check_ntp.c:770
+#: plugins/check_ntp_peer.c:559 plugins/check_ntp_time.c:547
 #: plugins/check_nwstat.c:177 plugins/check_overcr.c:106
-#: plugins/check_pgsql.c:156 plugins/check_ping.c:99 plugins/check_procs.c:143
-#: plugins/check_radius.c:156 plugins/check_real.c:85 plugins/check_smtp.c:145
-#: plugins/check_snmp.c:183 plugins/check_ssh.c:78 plugins/check_swap.c:113
-#: plugins/check_tcp.c:211 plugins/check_time.c:82 plugins/check_ups.c:125
-#: plugins/check_users.c:70 plugins/negate.c:259 plugins-root/check_dhcp.c:277
+#: plugins/check_pgsql.c:157 plugins/check_ping.c:99 plugins/check_procs.c:150
+#: plugins/check_radius.c:156 plugins/check_real.c:84 plugins/check_smtp.c:144
+#: plugins/check_snmp.c:183 plugins/check_ssh.c:77 plugins/check_swap.c:114
+#: plugins/check_tcp.c:212 plugins/check_time.c:82 plugins/check_ups.c:126
+#: plugins/check_users.c:72 plugins/negate.c:208 plugins-root/check_dhcp.c:275
 msgid "Could not parse arguments"
 msgstr "Argumente konnten nicht ausgewertet werden"
 
-#: plugins/check_by_ssh.c:87 plugins/check_dig.c:86 plugins/check_dns.c:89
-#: plugins/check_nagios.c:98 plugins/check_pgsql.c:160
-#: plugins/check_ping.c:103 plugins/check_procs.c:150 plugins/negate.c:113
+#: plugins/check_by_ssh.c:88 plugins/check_dig.c:85 plugins/check_dns.c:99
+#: plugins/check_nagios.c:99 plugins/check_pgsql.c:161
+#: plugins/check_ping.c:103 plugins/check_procs.c:157 plugins/negate.c:78
 msgid "Cannot catch SIGALRM"
 msgstr "Konnte SIGALRM nicht erhalten"
 
-#: plugins/check_by_ssh.c:104
+#: plugins/check_by_ssh.c:105
 #, c-format
 msgid "Remote command execution failed: %s\n"
 msgstr ""
 
-#: plugins/check_by_ssh.c:116
+#: plugins/check_by_ssh.c:117
 #, c-format
 msgid "%s - check_by_ssh: Remote command '%s' returned status %d\n"
 msgstr ""
 
-#: plugins/check_by_ssh.c:128
+#: plugins/check_by_ssh.c:129
 #, c-format
 msgid "SSH WARNING: could not open %s\n"
 msgstr "SSH WARNING: Konnte %s nicht �ffnen\n"
 
-#: plugins/check_by_ssh.c:214 plugins/check_disk.c:530
-#: plugins/check_http.c:248 plugins/check_ldap.c:292 plugins/check_pgsql.c:237
-#: plugins/check_procs.c:371 plugins/check_radius.c:284
-#: plugins/check_real.c:361 plugins/check_smtp.c:592 plugins/check_snmp.c:516
-#: plugins/check_ssh.c:143 plugins/check_tcp.c:494 plugins/check_time.c:306
-#: plugins/check_ups.c:555 plugins/negate.c:203
+#: plugins/check_by_ssh.c:138
+#, c-format
+msgid "%s: Error parsing output\n"
+msgstr ""
+
+#: plugins/check_by_ssh.c:214 plugins/check_disk.c:532
+#: plugins/check_http.c:249 plugins/check_ldap.c:296 plugins/check_pgsql.c:238
+#: plugins/check_procs.c:399 plugins/check_radius.c:290
+#: plugins/check_real.c:360 plugins/check_smtp.c:593 plugins/check_snmp.c:516
+#: plugins/check_ssh.c:142 plugins/check_tcp.c:495 plugins/check_time.c:306
+#: plugins/check_ups.c:556 plugins/negate.c:162
 msgid "Timeout interval must be a positive integer"
 msgstr "Timeout interval muss ein positiver Integer sein"
 
-#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:261
-#: plugins/check_radius.c:257 plugins/check_real.c:332
-#: plugins/check_smtp.c:519 plugins/check_tcp.c:500 plugins/check_time.c:300
-#: plugins/check_ups.c:517
+#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:262
+#: plugins/check_radius.c:257 plugins/check_real.c:331
+#: plugins/check_smtp.c:520 plugins/check_tcp.c:501 plugins/check_time.c:300
+#: plugins/check_ups.c:518
 msgid "Port must be a positive integer"
 msgstr "Port muss ein positiver Integer sein"
 
@@ -113,330 +118,336 @@
 "Dieses Plugin nutzt SSH um Befehle auf dem entfernten Rechner auszuf�hren\n"
 "\n"
 
-#: plugins/check_by_ssh.c:360
+#: plugins/check_by_ssh.c:362
 msgid "tell ssh to use Protocol 1 [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:362
+#: plugins/check_by_ssh.c:364
 msgid "tell ssh to use Protocol 2 [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:364
+#: plugins/check_by_ssh.c:366
 msgid "Ignore all or (if specified) first n lines on STDOUT [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:366
+#: plugins/check_by_ssh.c:368
 msgid "Ignore all or (if specified) first n lines on STDERR [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:368
-msgid "tells ssh to fork rather than create a tty [optional]"
+#: plugins/check_by_ssh.c:370
+msgid ""
+"tells ssh to fork rather than create a tty [optional]. This will always "
+"return OK if ssh is executed"
 msgstr ""
 
-#: plugins/check_by_ssh.c:370
+#: plugins/check_by_ssh.c:372
 msgid "command to execute on the remote machine"
 msgstr ""
 
-#: plugins/check_by_ssh.c:372
+#: plugins/check_by_ssh.c:374
 msgid "SSH user name on remote host [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:374
+#: plugins/check_by_ssh.c:376
 msgid "identity of an authorized key [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:376
+#: plugins/check_by_ssh.c:378
 msgid "external command file for nagios [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:378
+#: plugins/check_by_ssh.c:380
 msgid "list of nagios service names, separated by ':' [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:380
+#: plugins/check_by_ssh.c:382
 msgid "short name of host in nagios configuration [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:382
+#: plugins/check_by_ssh.c:384
 msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:384
+#: plugins/check_by_ssh.c:386
 msgid "Tell ssh to suppress warning and diagnostic messages [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:387
+#: plugins/check_by_ssh.c:391
 msgid "The most common mode of use is to refer to a local identity file with"
 msgstr ""
 
-#: plugins/check_by_ssh.c:388
+#: plugins/check_by_ssh.c:392
 msgid "the '-i' option. In this mode, the identity pair should have a null"
 msgstr ""
 
-#: plugins/check_by_ssh.c:389
+#: plugins/check_by_ssh.c:393
 msgid "passphrase and the public key should be listed in the authorized_keys"
 msgstr ""
 
-#: plugins/check_by_ssh.c:390
+#: plugins/check_by_ssh.c:394
 msgid "file of the remote host. Usually the key will be restricted to running"
 msgstr ""
 
-#: plugins/check_by_ssh.c:391
+#: plugins/check_by_ssh.c:395
 msgid "only one command on the remote server. If the remote SSH server tracks"
 msgstr ""
 
-#: plugins/check_by_ssh.c:392
+#: plugins/check_by_ssh.c:396
 msgid "invocation arguments, the one remote program may be an agent that can"
 msgstr ""
 
-#: plugins/check_by_ssh.c:393
+#: plugins/check_by_ssh.c:397
 msgid "execute additional commands as proxy"
 msgstr ""
 
-#: plugins/check_by_ssh.c:394
+#: plugins/check_by_ssh.c:399
 msgid "To use passive mode, provide multiple '-C' options, and provide"
 msgstr ""
 
-#: plugins/check_by_ssh.c:395
+#: plugins/check_by_ssh.c:400
 msgid ""
 "all of -O, -s, and -n options (servicelist order must match '-C'options)"
 msgstr ""
 
-#: plugins/check_by_ssh.c:397 plugins/check_disk.c:954
-#: plugins/check_http.c:1312 plugins/check_nagios.c:303
-#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:668
-#: plugins/check_ntp_time.c:623 plugins/check_procs.c:735 plugins/negate.c:319
-#: plugins/urlize.c:187
-#, c-format
+#: plugins/check_by_ssh.c:402 plugins/check_dig.c:341 plugins/check_disk.c:970
+#: plugins/check_http.c:1323 plugins/check_nagios.c:312
+#: plugins/check_ntp.c:872 plugins/check_ntp_peer.c:680
+#: plugins/check_ntp_time.c:631 plugins/check_procs.c:783 plugins/negate.c:263
+#: plugins/urlize.c:184
 msgid "Examples:"
 msgstr ""
 
-#: plugins/check_by_ssh.c:412 plugins/check_cluster.c:273
-#: plugins/check_dig.c:336 plugins/check_disk.c:970 plugins/check_dns.c:447
-#: plugins/check_dummy.c:129 plugins/check_fping.c:407
-#: plugins/check_game.c:334 plugins/check_hpjd.c:415 plugins/check_http.c:1335
-#: plugins/check_ldap.c:449 plugins/check_load.c:328 plugins/check_mrtg.c:383
-#: plugins/check_mysql.c:407 plugins/check_nagios.c:313 plugins/check_nt.c:707
-#: plugins/check_ntp.c:879 plugins/check_ntp_peer.c:683
-#: plugins/check_ntp_time.c:632 plugins/check_nwstat.c:1688
-#: plugins/check_overcr.c:469 plugins/check_pgsql.c:458
-#: plugins/check_ping.c:597 plugins/check_procs.c:753
-#: plugins/check_radius.c:358 plugins/check_real.c:454
-#: plugins/check_smtp.c:825 plugins/check_snmp.c:1029 plugins/check_ssh.c:308
-#: plugins/check_swap.c:559 plugins/check_tcp.c:654 plugins/check_time.c:373
-#: plugins/check_ups.c:657 plugins/check_users.c:230
-#: plugins/check_ide_smart.c:527 plugins/negate.c:340 plugins/urlize.c:204
-#: plugins-root/check_dhcp.c:1426 plugins-root/check_icmp.c:1282
+#: plugins/check_by_ssh.c:411 plugins/check_cluster.c:262
+#: plugins/check_dig.c:347 plugins/check_disk.c:965 plugins/check_dns.c:485
+#: plugins/check_fping.c:405 plugins/check_game.c:322 plugins/check_hpjd.c:412
+#: plugins/check_http.c:1307 plugins/check_ldap.c:437 plugins/check_load.c:325
+#: plugins/check_mrtg.c:367 plugins/check_mrtgtraf.c:367
+#: plugins/check_mysql.c:421 plugins/check_nagios.c:307 plugins/check_nt.c:728
+#: plugins/check_ntp.c:864 plugins/check_ntp_peer.c:667
+#: plugins/check_ntp_time.c:620 plugins/check_nwstat.c:1674
+#: plugins/check_overcr.c:460 plugins/check_pgsql.c:456
+#: plugins/check_ping.c:601 plugins/check_procs.c:778
+#: plugins/check_radius.c:359 plugins/check_real.c:449
+#: plugins/check_smtp.c:821 plugins/check_snmp.c:1006 plugins/check_ssh.c:302
+#: plugins/check_swap.c:551 plugins/check_tcp.c:651 plugins/check_time.c:369
+#: plugins/check_ups.c:642 plugins/check_users.c:228
+#: plugins/check_ide_smart.c:514 plugins/negate.c:269
+#: plugins-root/check_dhcp.c:1420 plugins-root/check_icmp.c:1304
+msgid "Notes:"
+msgstr ""
+
+#: plugins/check_by_ssh.c:423 plugins/check_cluster.c:277
+#: plugins/check_dig.c:359 plugins/check_disk.c:987 plugins/check_dns.c:496
+#: plugins/check_dummy.c:126 plugins/check_fping.c:416
+#: plugins/check_game.c:339 plugins/check_hpjd.c:424 plugins/check_http.c:1346
+#: plugins/check_ldap.c:459 plugins/check_load.c:335 plugins/check_mrtg.c:389
+#: plugins/check_mysql.c:432 plugins/check_nagios.c:323 plugins/check_nt.c:747
+#: plugins/check_ntp.c:891 plugins/check_ntp_peer.c:697
+#: plugins/check_ntp_time.c:640 plugins/check_nwstat.c:1692
+#: plugins/check_overcr.c:475 plugins/check_pgsql.c:468
+#: plugins/check_ping.c:611 plugins/check_radius.c:371
+#: plugins/check_real.c:461 plugins/check_smtp.c:833 plugins/check_snmp.c:1036
+#: plugins/check_ssh.c:314 plugins/check_swap.c:567 plugins/check_tcp.c:662
+#: plugins/check_time.c:381 plugins/check_ups.c:664 plugins/check_users.c:239
+#: plugins/check_ide_smart.c:536 plugins/negate.c:284 plugins/urlize.c:201
+#: plugins-root/check_dhcp.c:1432 plugins-root/check_icmp.c:1333
 #, c-format
 msgid "Usage:"
 msgstr ""
 
-#: plugins/check_cluster.c:233
+#: plugins/check_cluster.c:235
 #, c-format
 msgid "Host/Service Cluster Plugin for Nagios 2"
 msgstr ""
 
-#: plugins/check_cluster.c:239 plugins/check_nt.c:632
+#: plugins/check_cluster.c:241 plugins/check_nt.c:652
 msgid "Options:"
 msgstr ""
 
-#: plugins/check_cluster.c:241
+#: plugins/check_cluster.c:244
 msgid "Check service cluster status"
 msgstr ""
 
-#: plugins/check_cluster.c:243
+#: plugins/check_cluster.c:246
 msgid "Check host cluster status"
 msgstr ""
 
-#: plugins/check_cluster.c:245
+#: plugins/check_cluster.c:248
 msgid "Optional prepended text output (i.e. \"Host cluster\")"
 msgstr ""
 
-#: plugins/check_cluster.c:247 plugins/check_cluster.c:250
+#: plugins/check_cluster.c:250 plugins/check_cluster.c:253
 msgid "Specifies the range of hosts or services in cluster that must be in a"
 msgstr ""
 
-#: plugins/check_cluster.c:248
+#: plugins/check_cluster.c:251
 msgid "non-OK state in order to return a WARNING status level"
 msgstr ""
 
-#: plugins/check_cluster.c:251
+#: plugins/check_cluster.c:254
 msgid "non-OK state in order to return a CRITICAL status level"
 msgstr ""
 
-#: plugins/check_cluster.c:253
+#: plugins/check_cluster.c:256
 msgid "The status codes of the hosts or services in the cluster, separated by"
 msgstr ""
 
-#: plugins/check_cluster.c:254
+#: plugins/check_cluster.c:257
 msgid "commas"
 msgstr ""
 
-#: plugins/check_cluster.c:259 plugins/check_game.c:318
-#: plugins/check_http.c:1300 plugins/check_mrtg.c:364
-#: plugins/check_mrtgtraf.c:365 plugins/check_nt.c:693 plugins/check_ntp.c:860
-#: plugins/check_ntp_peer.c:655 plugins/check_ntp_time.c:611
-#: plugins/check_nwstat.c:1673 plugins/check_overcr.c:452
-#: plugins/check_swap.c:548 plugins/check_ups.c:633 plugins/negate.c:325
-#, c-format
-msgid "Notes:"
-msgstr ""
-
-#: plugins/check_cluster.c:260 plugins/check_ntp.c:861
-#: plugins/check_ntp_peer.c:663 plugins/check_ntp_time.c:618
-msgid "See:"
-msgstr ""
-
-#: plugins/check_cluster.c:262 plugins/check_ntp.c:863
-#: plugins/check_ntp_peer.c:665 plugins/check_ntp_time.c:620
-msgid "for THRESHOLD format and examples."
-msgstr ""
-
-#: plugins/check_dig.c:101 plugins/check_dig.c:103
+#: plugins/check_dig.c:103 plugins/check_dig.c:105
 #, c-format
 msgid "Looking for: '%s'\n"
 msgstr ""
 
-#: plugins/check_dig.c:110
+#: plugins/check_dig.c:112
 msgid "dig returned an error status"
 msgstr "dig hat einen Fehler zur�ckgegeben"
 
-#: plugins/check_dig.c:135
+#: plugins/check_dig.c:137
 msgid "Server not found in ANSWER SECTION"
 msgstr "Server nicht gefunden in ANSWER SECTION"
 
-#: plugins/check_dig.c:145
+#: plugins/check_dig.c:147
 msgid "No ANSWER SECTION found"
 msgstr "Keine ANSWER SECTION gefunden"
 
-#: plugins/check_dig.c:170
+#: plugins/check_dig.c:172
 #, fuzzy
 msgid "Probably a non-existent host/domain"
 msgstr "nicht existierender Host/Domain"
 
-#: plugins/check_dig.c:229
+#: plugins/check_dig.c:232
 #, fuzzy, c-format
 msgid "Port must be a positive integer - %s"
 msgstr "Port muss ein positiver Integer sein - %s"
 
-#: plugins/check_dig.c:240
+#: plugins/check_dig.c:243
 #, fuzzy, c-format
 msgid "Warning interval must be a positive integer - %s"
 msgstr "Warning interval muss ein positiver Integer sein - %s"
 
-#: plugins/check_dig.c:248
+#: plugins/check_dig.c:251
 #, fuzzy, c-format
 msgid "Critical interval must be a positive integer - %s"
 msgstr "Critical interval muss ein positiver Integer sein - %s"
 
-#: plugins/check_dig.c:256
+#: plugins/check_dig.c:259
 #, fuzzy, c-format
 msgid "Timeout interval must be a positive integer - %s"
 msgstr "Timeout interval muss ein positiver Integer sein - %s"
 
-#: plugins/check_dig.c:309
+#: plugins/check_dig.c:315
 #, fuzzy, c-format
 msgid "This plugin test the DNS service on the specified host using dig"
 msgstr "Testet den DNS Dienst auf dem angegebenen Host mit dig"
 
-#: plugins/check_dig.c:320
+#: plugins/check_dig.c:328
 #, fuzzy
-msgid "machine name to lookup"
+msgid "Machine name to lookup"
 msgstr "zu pr�fender Hostname"
 
-#: plugins/check_dig.c:322
+#: plugins/check_dig.c:330
 #, fuzzy
-msgid "record type to lookup (default: A)"
+msgid "Record type to lookup (default: A)"
 msgstr "abzufragender Datensatztyp (Default: A)"
 
-#: plugins/check_dig.c:324
+#: plugins/check_dig.c:332
 #, fuzzy
 msgid ""
-"an address expected to be in the answer section.if not set, uses whatever "
-"was in -l"
+"An address expected to be in the answer section. If not set, uses whatever"
 msgstr ""
 "Adresse die in der ANSWER SECTION erwartet wird.wenn nicht gesetzt, "
 "ubernommen aus -l"
 
-#: plugins/check_disk.c:220
+#: plugins/check_dig.c:333
+msgid "was in -l"
+msgstr ""
+
+#: plugins/check_dig.c:335
+msgid "Pass STRING as argument(s) to dig"
+msgstr ""
+
+#: plugins/check_disk.c:221
 #, fuzzy, c-format
 msgid "DISK %s: %s not found\n"
 msgstr "%s [%s nicht gefunden]"
 
-#: plugins/check_disk.c:220 plugins/check_disk.c:985 plugins/check_dns.c:208
-#: plugins/check_dummy.c:81 plugins/check_http.c:951 plugins/check_mysql.c:214
-#: plugins/check_nagios.c:107 plugins/check_nagios.c:171
-#: plugins/check_nagios.c:175 plugins/check_procs.c:302
+#: plugins/check_disk.c:221 plugins/check_disk.c:1002 plugins/check_dns.c:245
+#: plugins/check_dummy.c:78 plugins/check_http.c:956 plugins/check_mysql.c:215
+#: plugins/check_nagios.c:108 plugins/check_nagios.c:172
+#: plugins/check_nagios.c:176 plugins/check_procs.c:325
 #, c-format
 msgid "CRITICAL"
 msgstr "CRITICAL"
 
-#: plugins/check_disk.c:604
+#: plugins/check_disk.c:606
 #, c-format
 msgid "unit type %s not known\n"
 msgstr "unbekannter unit type: %s\n"
 
-#: plugins/check_disk.c:607
+#: plugins/check_disk.c:609
 #, c-format
 msgid "failed allocating storage for '%s'\n"
 msgstr "konnte keinen Speicher f�r '%s' reservieren\n"
 
-#: plugins/check_disk.c:631 plugins/check_disk.c:662 plugins/check_disk.c:667
-#: plugins/check_disk.c:674 plugins/check_disk.c:678 plugins/check_disk.c:718
-#: plugins/check_disk.c:724 plugins/check_disk.c:743 plugins/check_dummy.c:84
-#: plugins/check_dummy.c:87
+#: plugins/check_disk.c:633 plugins/check_disk.c:664 plugins/check_disk.c:669
+#: plugins/check_disk.c:676 plugins/check_disk.c:680 plugins/check_disk.c:720
+#: plugins/check_disk.c:726 plugins/check_disk.c:745 plugins/check_dummy.c:81
+#: plugins/check_dummy.c:84 plugins/check_procs.c:486
 #, c-format
 msgid "UNKNOWN"
 msgstr "UNKNOWN"
 
-#: plugins/check_disk.c:631
+#: plugins/check_disk.c:633
 msgid "Must set a threshold value before using -p\n"
 msgstr ""
 
-#: plugins/check_disk.c:662
+#: plugins/check_disk.c:664
 msgid "Must set -E before selecting pathes\n"
 msgstr ""
 
-#: plugins/check_disk.c:667
+#: plugins/check_disk.c:669
 msgid "Must set group value before selecting pathes \n"
 msgstr ""
 
-#: plugins/check_disk.c:674
+#: plugins/check_disk.c:676
 msgid ""
 "Pathes need to be selected before using -i/-I. Use -A to select all pathes "
 "explicitly"
 msgstr ""
 
-#: plugins/check_disk.c:678 plugins/check_disk.c:724
+#: plugins/check_disk.c:680 plugins/check_disk.c:726 plugins/check_procs.c:486
 msgid "Could not compile regular expression"
 msgstr ""
 
-#: plugins/check_disk.c:718
+#: plugins/check_disk.c:720
 msgid "Must set a threshold value before using -r/-R\n"
 msgstr ""
 
-#: plugins/check_disk.c:744
+#: plugins/check_disk.c:746
 msgid "Regular expression did not match any path or disk"
 msgstr ""
 
-#: plugins/check_disk.c:791
+#: plugins/check_disk.c:793
 #, fuzzy
 msgid "Unknown argument"
 msgstr "Unbekanntes Argument"
 
-#: plugins/check_disk.c:825
+#: plugins/check_disk.c:827
 #, c-format
 msgid " for %s\n"
 msgstr ""
 
-#: plugins/check_disk.c:893
+#: plugins/check_disk.c:901
 #, fuzzy
 msgid ""
 "This plugin checks the amount of used disk space on a mounted file system"
 msgstr ""
 "Dieses Plugin pr�ft den freien Speicher auf einem gemounteten Filesystem"
 
-#: plugins/check_disk.c:894
+#: plugins/check_disk.c:902
 #, fuzzy
 msgid ""
 "and generates an alert if free space is less than one of the threshold values"
@@ -444,571 +455,587 @@
 "und erzeugt einen Alarm wenn einer der angegebenen Schwellwerte "
 "unterschritten wird."
 
-#: plugins/check_disk.c:903
+#: plugins/check_disk.c:912
 msgid "Exit with WARNING status if less than INTEGER units of disk are free"
 msgstr ""
 
-#: plugins/check_disk.c:905
+#: plugins/check_disk.c:914
 msgid "Exit with WARNING status if less than PERCENT of disk space is free"
 msgstr ""
 
-#: plugins/check_disk.c:907
+#: plugins/check_disk.c:916
 msgid "Exit with CRITICAL status if less than INTEGER units of disk are free"
 msgstr ""
 
-#: plugins/check_disk.c:909
+#: plugins/check_disk.c:918
 msgid "Exit with CRITCAL status if less than PERCENT of disk space is free"
 msgstr ""
 
-#: plugins/check_disk.c:911
+#: plugins/check_disk.c:920
 msgid "Exit with WARNING status if less than PERCENT of inode space is free"
 msgstr ""
 
-#: plugins/check_disk.c:913
+#: plugins/check_disk.c:922
 msgid "Exit with CRITICAL status if less than PERCENT of inode space is free"
 msgstr ""
 
-#: plugins/check_disk.c:915
+#: plugins/check_disk.c:924
 msgid "Path or partition (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:917
+#: plugins/check_disk.c:926
 msgid "Ignore device (only works if -p unspecified)"
 msgstr ""
 
-#: plugins/check_disk.c:919
+#: plugins/check_disk.c:928
 msgid "Clear thresholds"
 msgstr ""
 
-#: plugins/check_disk.c:921
+#: plugins/check_disk.c:930
 msgid "For paths or partitions specified with -p, only check for exact paths"
 msgstr ""
 
-#: plugins/check_disk.c:923
+#: plugins/check_disk.c:932
 msgid "Display only devices/mountpoints with errors"
 msgstr ""
 
-#: plugins/check_disk.c:925
+#: plugins/check_disk.c:934
 msgid ""
 "Group pathes. Thresholds apply to (free-)space of all partitions together"
 msgstr ""
 
-#: plugins/check_disk.c:927
+#: plugins/check_disk.c:936
 msgid "Same as '--units kB'"
 msgstr ""
 
-#: plugins/check_disk.c:929
+#: plugins/check_disk.c:938
 msgid "Only check local filesystems"
 msgstr ""
 
-#: plugins/check_disk.c:931
+#: plugins/check_disk.c:940
 msgid ""
 "Only check local filesystems against thresholds. Yet call stat on remote "
 "filesystems"
 msgstr ""
 
-#: plugins/check_disk.c:932
+#: plugins/check_disk.c:941
 msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)"
 msgstr ""
 
-#: plugins/check_disk.c:934
+#: plugins/check_disk.c:943
 msgid "Display the mountpoint instead of the partition"
 msgstr ""
 
-#: plugins/check_disk.c:936
+#: plugins/check_disk.c:945
 msgid "Same as '--units MB'"
 msgstr ""
 
-#: plugins/check_disk.c:938
+#: plugins/check_disk.c:947
 msgid "Explicitly select all pathes. This is equivalent to -R '.*'"
 msgstr ""
 
-#: plugins/check_disk.c:940
+#: plugins/check_disk.c:949
 msgid ""
 "Case insensitive regular expression for path/partition (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:942
+#: plugins/check_disk.c:951
 msgid "Regular expression for path or partition (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:944
+#: plugins/check_disk.c:953
 msgid ""
 "Regular expression to ignore selected path/partition (case insensitive) (may "
 "be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:946
+#: plugins/check_disk.c:955
 msgid ""
 "Regular expression to ignore selected path or partition (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:949
+#: plugins/check_disk.c:958
 msgid "Choose bytes, kB, MB, GB, TB (default: MB)"
 msgstr ""
 
-#: plugins/check_disk.c:952
+#: plugins/check_disk.c:961
 msgid "Ignore all filesystems of indicated type (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:956
+#: plugins/check_disk.c:972
 msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB"
 msgstr ""
 
-#: plugins/check_disk.c:958
+#: plugins/check_disk.c:974
 msgid ""
 "Checks all filesystems not matching -r at 100M and 50M. The fs matching the -"
 "r regex"
 msgstr ""
 
-#: plugins/check_disk.c:959
+#: plugins/check_disk.c:975
 msgid ""
 "are grouped which means the freespace thresholds are applied to all disks "
 "together"
 msgstr ""
 
-#: plugins/check_disk.c:961
+#: plugins/check_disk.c:977
 msgid ""
 "Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use "
 "100M/50M"
 msgstr ""
 
-#: plugins/check_disk.c:986
+#: plugins/check_disk.c:1003
 #, c-format
 msgid "%s %s: %s\n"
 msgstr ""
 
-#: plugins/check_disk.c:986
+#: plugins/check_disk.c:1003
 msgid "is not accessible"
 msgstr ""
 
-#: plugins/check_dns.c:107
+#: plugins/check_dns.c:120
 #, fuzzy
 msgid "nslookup returned an error status"
 msgstr "nslookup hat einen Fehler zur�ckgegeben"
 
-#: plugins/check_dns.c:120
+#: plugins/check_dns.c:138
 msgid "Warning plugin error"
 msgstr "Warnung Plugin Fehler"
 
-#: plugins/check_dns.c:140
+#: plugins/check_dns.c:158
 #, c-format
 msgid "DNS CRITICAL - '%s' returned empty host name string\n"
 msgstr "DNS CRITICAL - '%s'  hat einen leeren Hostnamen zur�ckgegeben\n"
 
-#: plugins/check_dns.c:150
+#: plugins/check_dns.c:164
 msgid "Non-authoritative answer:"
 msgstr ""
 
-#: plugins/check_dns.c:178
+#: plugins/check_dns.c:205
 #, fuzzy, c-format
 msgid "DNS CRITICAL - '%s' msg parsing exited with no address\n"
 msgstr "DNS CRITICAL - '%s' Ausgabeverarbeitung hat keine Adresse ergeben\n"
 
-#: plugins/check_dns.c:184
+#: plugins/check_dns.c:220
 #, fuzzy, c-format
 msgid "expected '%s' but got '%s'"
 msgstr "Erwartet: %s aber: %s erhalten"
 
-#: plugins/check_dns.c:190
+#: plugins/check_dns.c:227
 #, c-format
 msgid "server %s is not authoritative for %s"
 msgstr "Server %s ist nicht autoritativ f�r %s"
 
-#: plugins/check_dns.c:204 plugins/check_dummy.c:75 plugins/check_nagios.c:185
-#: plugins/check_procs.c:295
+#: plugins/check_dns.c:241 plugins/check_dummy.c:72 plugins/check_nagios.c:186
+#: plugins/check_procs.c:318
 #, c-format
 msgid "OK"
 msgstr "OK"
 
-#: plugins/check_dns.c:206 plugins/check_dummy.c:78 plugins/check_http.c:953
-#: plugins/check_mysql.c:211 plugins/check_nagios.c:185
-#: plugins/check_procs.c:297
+#: plugins/check_dns.c:243 plugins/check_dummy.c:75 plugins/check_http.c:958
+#: plugins/check_mysql.c:212 plugins/check_nagios.c:186
+#: plugins/check_procs.c:320
 #, c-format
 msgid "WARNING"
 msgstr "WARNING"
 
-#: plugins/check_dns.c:210
+#: plugins/check_dns.c:247
 #, fuzzy, c-format
 msgid "%.3f second response time"
 msgid_plural "%.3f seconds response time"
 msgstr[0] "%.3f Sekunden Antwortzeit "
 msgstr[1] "%.3f Sekunden Antwortzeit "
 
-#: plugins/check_dns.c:211
+#: plugins/check_dns.c:248
 #, fuzzy, c-format
 msgid ". %s returns %s"
 msgstr "%s hat %s zur�ckgegeben"
 
-#: plugins/check_dns.c:215
+#: plugins/check_dns.c:252
 #, c-format
 msgid "DNS WARNING - %s\n"
 msgstr "DNS WARNING - %s\n"
 
-#: plugins/check_dns.c:216 plugins/check_dns.c:219 plugins/check_dns.c:222
+#: plugins/check_dns.c:253 plugins/check_dns.c:256 plugins/check_dns.c:259
 msgid " Probably a non-existent host/domain"
 msgstr "nicht existierender Host/Domain"
 
-#: plugins/check_dns.c:218
+#: plugins/check_dns.c:255
 #, c-format
 msgid "DNS CRITICAL - %s\n"
 msgstr "DNS CRITICAL - %s\n"
 
-#: plugins/check_dns.c:221
+#: plugins/check_dns.c:258
 #, c-format
 msgid "DNS UNKNOW - %s\n"
 msgstr "DNS UNKNOW - %s\n"
 
-#: plugins/check_dns.c:234
+#: plugins/check_dns.c:271
 msgid "Note: nslookup is deprecated and may be removed from future releases."
 msgstr ""
 
-#: plugins/check_dns.c:235
+#: plugins/check_dns.c:272
 msgid "Consider using the `dig' or `host' programs instead.  Run nslookup with"
 msgstr ""
 
-#: plugins/check_dns.c:236
+#: plugins/check_dns.c:273
 msgid "the `-sil[ent]' option to prevent this message from appearing."
 msgstr ""
 
-#: plugins/check_dns.c:241
+#: plugins/check_dns.c:278
 #, c-format
 msgid "No response from DNS %s\n"
 msgstr "Keine Antwort von DNS %s\n"
 
-#: plugins/check_dns.c:245
+#: plugins/check_dns.c:282
 #, c-format
 msgid "DNS %s has no records\n"
 msgstr "Nameserver %s hat keine Datens�tze\n"
 
-#: plugins/check_dns.c:253
+#: plugins/check_dns.c:290
 #, c-format
 msgid "Connection to DNS %s was refused\n"
 msgstr "Verbindung zum Nameserver %s wurde verweigert\n"
 
-#: plugins/check_dns.c:257
+#: plugins/check_dns.c:294
 #, c-format
 msgid "Query was refused by DNS server at %s\n"
 msgstr ""
 
-#: plugins/check_dns.c:261
+#: plugins/check_dns.c:298
 #, c-format
 msgid "No information returned by DNS server at %s\n"
 msgstr ""
 
-#: plugins/check_dns.c:267
+#: plugins/check_dns.c:304
 #, c-format
 msgid "Domain %s was not found by the server\n"
 msgstr "Dom�ne %s wurde vom Server nicht gefunden\n"
 
-#: plugins/check_dns.c:271
+#: plugins/check_dns.c:308
 msgid "Network is unreachable\n"
 msgstr "Netzwerk nicht erreichbar\n"
 
-#: plugins/check_dns.c:275
+#: plugins/check_dns.c:312
 #, c-format
 msgid "DNS failure for %s\n"
 msgstr "DNS Fehler f�r %s\n"
 
-#: plugins/check_dns.c:339 plugins/check_dns.c:347 plugins/check_dns.c:354
-#: plugins/check_dns.c:359 plugins/check_dns.c:380 plugins/check_dns.c:388
-#: plugins/check_game.c:213 plugins/check_game.c:221
+#: plugins/check_dns.c:376 plugins/check_dns.c:384 plugins/check_dns.c:391
+#: plugins/check_dns.c:396 plugins/check_dns.c:418 plugins/check_dns.c:426
+#: plugins/check_game.c:215 plugins/check_game.c:223
 msgid "Input buffer overflow\n"
 msgstr "Eingabe-Puffer�berlauf\n"
 
-#: plugins/check_dns.c:416
+#: plugins/check_dns.c:454
 msgid ""
 "This plugin uses the nslookup program to obtain the IP address for the given "
 "host/domain query."
 msgstr ""
 
-#: plugins/check_dns.c:417
+#: plugins/check_dns.c:455
 msgid "An optional DNS server to use may be specified."
 msgstr ""
 
-#: plugins/check_dns.c:418
+#: plugins/check_dns.c:456
 msgid ""
 "If no DNS server is specified, the default server(s) specified in /etc/"
 "resolv.conf will be used."
 msgstr ""
 
-#: plugins/check_dns.c:427
+#: plugins/check_dns.c:466
 msgid "The name or address you want to query"
 msgstr ""
 
-#: plugins/check_dns.c:429
+#: plugins/check_dns.c:468
 msgid "Optional DNS server you want to use for the lookup"
 msgstr ""
 
-#: plugins/check_dns.c:431
+#: plugins/check_dns.c:470
+msgid ""
+"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with"
+msgstr ""
+
+#: plugins/check_dns.c:471
+msgid ""
+"a dot (.). This option can be repeated multiple times (Returns OK if any"
+msgstr ""
+
+#: plugins/check_dns.c:472
+msgid ""
+"value match). If multiple addresses are returned at once, you have to match"
+msgstr ""
+
+#: plugins/check_dns.c:473
 msgid ""
-"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with ."
+"the whole string of addresses separated with commas (sorted alphabetically)."
 msgstr ""
 
-#: plugins/check_dns.c:433
+#: plugins/check_dns.c:475
 msgid "Optionally expect the DNS server to be authoritative for the lookup"
 msgstr ""
 
-#: plugins/check_dns.c:435
+#: plugins/check_dns.c:477
 msgid "Return warning if elapsed time exceeds value. Default off"
 msgstr ""
 
-#: plugins/check_dns.c:437
+#: plugins/check_dns.c:479
 msgid "Return critical if elapsed time exceeds value. Default off"
 msgstr ""
 
-#: plugins/check_dummy.c:69
+#: plugins/check_dummy.c:66
 msgid "Arguments to check_dummy must be an integer"
 msgstr "Argument f�r check_dummy muss ein Integer sein"
 
-#: plugins/check_dummy.c:89
+#: plugins/check_dummy.c:86
 #, c-format
 msgid "Status %d is not a supported error state\n"
 msgstr "Status %d ist kein bekannter Fehlerstatus\n"
 
-#: plugins/check_dummy.c:111
+#: plugins/check_dummy.c:108
 msgid ""
 "This plugin will simply return the state corresponding to the numeric value"
 msgstr ""
 
-#: plugins/check_dummy.c:113
+#: plugins/check_dummy.c:110
 msgid "of the <state> argument with optional text"
 msgstr ""
 
-#: plugins/check_fping.c:103 plugins/check_hpjd.c:131 plugins/check_ping.c:432
-#: plugins/check_procs.c:159 plugins/check_snmp.c:210 plugins/check_swap.c:178
-#: plugins/check_users.c:75 plugins/urlize.c:117
+#: plugins/check_fping.c:104 plugins/check_hpjd.c:132 plugins/check_ping.c:441
+#: plugins/check_procs.c:167 plugins/check_snmp.c:210 plugins/check_swap.c:179
+#: plugins/check_users.c:77 plugins/urlize.c:114
 #, c-format
 msgid "Could not open pipe: %s\n"
 msgstr "Pipe: %s konnte nicht ge�ffnet werden\n"
 
-#: plugins/check_fping.c:109 plugins/check_hpjd.c:137 plugins/check_load.c:157
-#: plugins/check_procs.c:165 plugins/check_snmp.c:217 plugins/check_swap.c:184
-#: plugins/check_users.c:81 plugins/urlize.c:123
+#: plugins/check_fping.c:110 plugins/check_hpjd.c:138 plugins/check_load.c:157
+#: plugins/check_procs.c:172 plugins/check_snmp.c:217 plugins/check_swap.c:185
+#: plugins/check_users.c:83 plugins/urlize.c:120
 #, c-format
 msgid "Could not open stderr for %s\n"
 msgstr "Konnte stderr nicht �ffnen f�r: %s\n"
 
-#: plugins/check_fping.c:149
+#: plugins/check_fping.c:150
 #, c-format
 msgid "FPING UNKNOW - %s not found\n"
 msgstr "FPING UNKNOW - %s nicht gefunden\n"
 
-#: plugins/check_fping.c:153
+#: plugins/check_fping.c:154
 #, c-format
 msgid "FPING CRITICAL - %s is unreachable\n"
 msgstr "FPING CRITICAL - %s ist nicht erreichbar\n"
 
-#: plugins/check_fping.c:158
+#: plugins/check_fping.c:159
 #, c-format
 msgid "FPING CRITICAL - %s is down\n"
 msgstr "FPING CRITICAL - %s ist down\n"
 
-#: plugins/check_fping.c:185
+#: plugins/check_fping.c:186
 #, c-format
 msgid "FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n"
 msgstr "FPING %s - %s (verloren=%.0f%%, rta=%f ms)|%s %s\n"
 
-#: plugins/check_fping.c:206
+#: plugins/check_fping.c:207
 #, c-format
 msgid "FPING %s - %s (loss=%.0f%% )|%s\n"
 msgstr "FPING %s - %s (verloren=%.0f%% )|%s\n"
 
-#: plugins/check_fping.c:273 plugins/check_hpjd.c:341 plugins/check_hpjd.c:364
-#: plugins/check_mysql.c:277 plugins/check_mysql.c:326 plugins/check_ntp.c:709
-#: plugins/check_ntp_peer.c:489 plugins/check_ntp_time.c:494
-#: plugins/check_pgsql.c:255 plugins/check_ping.c:290 plugins/check_ping.c:413
-#: plugins/check_radius.c:249 plugins/check_real.c:319
-#: plugins/check_real.c:381 plugins/check_smtp.c:512 plugins/check_smtp.c:638
-#: plugins/check_ssh.c:162 plugins/check_time.c:244 plugins/check_time.c:319
-#: plugins/check_ups.c:503 plugins/check_ups.c:572
+#: plugins/check_fping.c:274 plugins/check_hpjd.c:342 plugins/check_hpjd.c:365
+#: plugins/check_mysql.c:279 plugins/check_mysql.c:337 plugins/check_ntp.c:709
+#: plugins/check_ntp_peer.c:492 plugins/check_ntp_time.c:494
+#: plugins/check_pgsql.c:256 plugins/check_ping.c:299 plugins/check_ping.c:422
+#: plugins/check_radius.c:249 plugins/check_real.c:318
+#: plugins/check_real.c:380 plugins/check_smtp.c:513 plugins/check_smtp.c:639
+#: plugins/check_ssh.c:161 plugins/check_time.c:244 plugins/check_time.c:319
+#: plugins/check_ups.c:504 plugins/check_ups.c:573
 msgid "Invalid hostname/address"
 msgstr "Ung�ltige(r) Hostname/Adresse"
 
-#: plugins/check_fping.c:307
+#: plugins/check_fping.c:308
 msgid "Packet size must be a positive integer"
 msgstr "Paketgr��e muss ein positiver Integer sein"
 
-#: plugins/check_fping.c:313
+#: plugins/check_fping.c:314
 msgid "Packet count must be a positive integer"
 msgstr "Paketanzahl muss ein positiver Integer sein"
 
-#: plugins/check_fping.c:319 plugins/check_ntp.c:733
-#: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:518
-#: plugins/check_radius.c:290 plugins/check_time.c:323
+#: plugins/check_fping.c:320 plugins/check_ntp.c:733
+#: plugins/check_ntp_peer.c:516 plugins/check_ntp_time.c:518
+#: plugins/check_radius.c:296 plugins/check_time.c:323
 msgid "Hostname was not supplied"
 msgstr ""
 
-#: plugins/check_fping.c:339
+#: plugins/check_fping.c:340
 #, c-format
 msgid "%s: Only one threshold may be packet loss (%s)\n"
 msgstr "%s: Nur ein Wert darf f�r paket loss angegeben werden (%s)\n"
 
-#: plugins/check_fping.c:343
+#: plugins/check_fping.c:344
 #, c-format
 msgid "%s: Only one threshold must be packet loss (%s)\n"
 msgstr "%s: Nur ein Wert darf f�r paket loss angegeben werden (%s)\n"
 
-#: plugins/check_fping.c:375
+#: plugins/check_fping.c:376
 msgid ""
 "This plugin will use the fping command to ping the specified host for a fast "
 "check"
 msgstr ""
 
-#: plugins/check_fping.c:377
+#: plugins/check_fping.c:378
 msgid "Note that it is necessary to set the suid flag on fping."
 msgstr ""
 
-#: plugins/check_fping.c:386
+#: plugins/check_fping.c:388
 msgid ""
 "name or IP Address of host to ping (IP Address bypasses name lookup, "
 "reducing system load)"
 msgstr ""
 
-#: plugins/check_fping.c:388 plugins/check_ping.c:567
+#: plugins/check_fping.c:390 plugins/check_ping.c:577
 #, fuzzy
 msgid "warning threshold pair"
 msgstr "Warning threshold  Integer sein"
 
-#: plugins/check_fping.c:390 plugins/check_ping.c:569
+#: plugins/check_fping.c:392 plugins/check_ping.c:579
 #, fuzzy
 msgid "critical threshold pair"
 msgstr "Critical threshold muss ein Integer sein"
 
-#: plugins/check_fping.c:392
+#: plugins/check_fping.c:394
 #, c-format
 msgid "size of ICMP packet (default: %d)"
 msgstr ""
 
-#: plugins/check_fping.c:394
+#: plugins/check_fping.c:396
 #, c-format
 msgid "number of ICMP packets to send (default: %d)"
 msgstr ""
 
-#: plugins/check_fping.c:397
+#: plugins/check_fping.c:399
 #, c-format
 msgid ""
 "THRESHOLD is <rta>,<pl>%% where <rta> is the round trip average travel time "
 "(ms)"
 msgstr ""
 
-#: plugins/check_fping.c:398
+#: plugins/check_fping.c:400
 msgid ""
 "which triggers a WARNING or CRITICAL state, and <pl> is the percentage of"
 msgstr ""
 
-#: plugins/check_fping.c:399
+#: plugins/check_fping.c:401
 msgid "packet loss to trigger an alarm state."
 msgstr ""
 
-#: plugins/check_game.c:113
+#: plugins/check_game.c:115
 #, c-format
 msgid "CRITICAL - Host type parameter incorrect!\n"
 msgstr "CRITICAL - Host type parameter unkorrekt!\n"
 
-#: plugins/check_game.c:128
+#: plugins/check_game.c:130
 #, fuzzy, c-format
 msgid "CRITICAL - Host not found\n"
 msgstr "CRITICAL - Text nicht gefunden%s|%s %s\n"
 
-#: plugins/check_game.c:132
+#: plugins/check_game.c:134
 #, fuzzy, c-format
 msgid "CRITICAL - Game server down or unavailable\n"
 msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden"
 
-#: plugins/check_game.c:136
+#: plugins/check_game.c:138
 #, fuzzy, c-format
 msgid "CRITICAL - Game server timeout\n"
 msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n"
 
-#: plugins/check_game.c:299
+#: plugins/check_game.c:301
 #, c-format
 msgid "This plugin tests game server connections with the specified host."
 msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host."
 
-#: plugins/check_game.c:308
+#: plugins/check_game.c:311
 msgid "Optional port of which to connect"
 msgstr ""
 
-#: plugins/check_game.c:310
+#: plugins/check_game.c:313
 msgid "Field number in raw qstat output that contains game name"
 msgstr ""
 
-#: plugins/check_game.c:312
+#: plugins/check_game.c:315
 msgid "Field number in raw qstat output that contains map name"
 msgstr ""
 
-#: plugins/check_game.c:314
+#: plugins/check_game.c:317
 msgid "Field number in raw qstat output that contains ping time"
 msgstr ""
 
-#: plugins/check_game.c:320
+#: plugins/check_game.c:323
+#, fuzzy
 msgid ""
 "This plugin uses the 'qstat' command, the popular game server status query "
-"tool ."
-msgstr ""
+"tool."
+msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host."
 
-#: plugins/check_game.c:322
+#: plugins/check_game.c:324
 msgid ""
 "If you don't have the package installed, you will need to download it from"
 msgstr ""
 
-#: plugins/check_game.c:324
+#: plugins/check_game.c:325
 msgid ""
 "http://www.activesw.com/people/steve/qstat.html before you can use this "
 "plugin."
 msgstr ""
 
-#: plugins/check_hpjd.c:242
+#: plugins/check_hpjd.c:243
 msgid "Paper Jam"
 msgstr "Papierstau"
 
-#: plugins/check_hpjd.c:246
+#: plugins/check_hpjd.c:247
 msgid "Out of Paper"
 msgstr "Kein Papier"
 
-#: plugins/check_hpjd.c:251
+#: plugins/check_hpjd.c:252
 msgid "Printer Offline"
 msgstr "Drucker ausgeschaltet"
 
-#: plugins/check_hpjd.c:256
+#: plugins/check_hpjd.c:257
 msgid "Peripheral Error"
 msgstr "Peripheriefehler"
 
-#: plugins/check_hpjd.c:260
+#: plugins/check_hpjd.c:261
 msgid "Intervention Required"
 msgstr "Eingriff ben�tigt"
 
-#: plugins/check_hpjd.c:264
+#: plugins/check_hpjd.c:265
 msgid "Toner Low"
 msgstr "Wenig Toner"
 
-#: plugins/check_hpjd.c:268
+#: plugins/check_hpjd.c:269
 msgid "Insufficient Memory"
 msgstr "Nicht gen�gend Speicher"
 
-#: plugins/check_hpjd.c:272
+#: plugins/check_hpjd.c:273
 msgid "A Door is Open"
 msgstr "Eine Abdeckung ist offen"
 
-#: plugins/check_hpjd.c:276
+#: plugins/check_hpjd.c:277
 msgid "Output Tray is Full"
 msgstr "Ausgabeschacht ist voll"
 
-#: plugins/check_hpjd.c:280
+#: plugins/check_hpjd.c:281
 msgid "Data too Slow for Engine"
 msgstr ""
 
-#: plugins/check_hpjd.c:284
+#: plugins/check_hpjd.c:285
 msgid "Unknown Paper Error"
 msgstr "Papierfehler"
 
-#: plugins/check_hpjd.c:289
+#: plugins/check_hpjd.c:290
 #, c-format
 msgid "Printer ok - (%s)\n"
 msgstr "Printer ok - (%s)\n"
 
-#: plugins/check_hpjd.c:394
+#: plugins/check_hpjd.c:395
 #, fuzzy
 msgid "This plugin tests the STATUS of an HP printer with a JetDirect card."
 msgstr ""
@@ -1017,7 +1044,7 @@
 "Net-snmp muss auf dem ausf�hrenden Computer installiert sein.\n"
 "\n"
 
-#: plugins/check_hpjd.c:395
+#: plugins/check_hpjd.c:396
 #, fuzzy
 msgid "Net-snmp must be installed on the computer running the plugin."
 msgstr ""
@@ -1026,605 +1053,605 @@
 "Net-snmp muss auf dem ausf�hrenden Computer installiert sein.\n"
 "\n"
 
-#: plugins/check_hpjd.c:404
+#: plugins/check_hpjd.c:406
 msgid "The SNMP community name "
 msgstr ""
 
-#: plugins/check_hpjd.c:405
+#: plugins/check_hpjd.c:407
 #, c-format
 msgid "(default=%s)"
 msgstr ""
 
-#: plugins/check_http.c:254
+#: plugins/check_http.c:255
 msgid "Critical threshold must be integer"
 msgstr "Critical threshold muss ein Integer sein"
 
-#: plugins/check_http.c:262
+#: plugins/check_http.c:263
 msgid "Warning threshold must be integer"
 msgstr "Warning threshold  Integer sein"
 
-#: plugins/check_http.c:288 plugins/check_tcp.c:563
+#: plugins/check_http.c:289 plugins/check_tcp.c:564
 msgid "Invalid certificate expiration period"
 msgstr "Ung�ltiger Zertifikatsablauftermin"
 
-#: plugins/check_http.c:297 plugins/check_tcp.c:575
+#: plugins/check_http.c:298 plugins/check_tcp.c:576
 #, fuzzy
 msgid "Invalid option - SSL is not available"
 msgstr "Ung�ltige Option - SSL ist nicht verf�gbar\n"
 
-#: plugins/check_http.c:315
+#: plugins/check_http.c:316
 #, c-format
 msgid "option f:%d \n"
 msgstr "Option f:%d \n"
 
-#: plugins/check_http.c:332
+#: plugins/check_http.c:337
 msgid "Invalid port number"
 msgstr "Ung�ltige Portnummer"
 
-#: plugins/check_http.c:370
+#: plugins/check_http.c:375
 #, c-format
 msgid "Could Not Compile Regular Expression: %s"
 msgstr ""
 
-#: plugins/check_http.c:384 plugins/check_ntp.c:722
-#: plugins/check_ntp_peer.c:502 plugins/check_ntp_time.c:507
-#: plugins/check_smtp.c:618 plugins/check_ssh.c:154 plugins/check_tcp.c:467
+#: plugins/check_http.c:389 plugins/check_ntp.c:722
+#: plugins/check_ntp_peer.c:505 plugins/check_ntp_time.c:507
+#: plugins/check_smtp.c:619 plugins/check_ssh.c:153 plugins/check_tcp.c:468
 msgid "IPv6 support not available"
 msgstr "IPv6 Unterst�tzung nicht vorhanden"
 
-#: plugins/check_http.c:446 plugins/check_ping.c:417
+#: plugins/check_http.c:451 plugins/check_ping.c:426
 msgid "You must specify a server address or host name"
 msgstr "Hostname oder Serveradresse muss angegeben werden"
 
-#: plugins/check_http.c:629
+#: plugins/check_http.c:634
 msgid "HTTP UNKNOWN - Server date unknown\n"
 msgstr "HTTP UNKNOWN - Serverdatum unbekannt\n"
 
-#: plugins/check_http.c:631
+#: plugins/check_http.c:636
 msgid "HTTP CRITICAL - Document modification date unknown\n"
 msgstr "HTTP CRITICAL - Datum der letzten �nderung unbekannt\n"
 
-#: plugins/check_http.c:637
+#: plugins/check_http.c:642
 #, c-format
 msgid "HTTP CRITICAL - Server date \"%100s\" unparsable"
 msgstr "HTTP CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden"
 
-#: plugins/check_http.c:639
+#: plugins/check_http.c:644
 #, c-format
 msgid "HTTP CRITICAL - Document date \"%100s\" unparsable"
 msgstr ""
 "HTTP CRITICAL - Dokumentendatum \"%100s\" konnte nicht verarbeitet werden"
 
-#: plugins/check_http.c:641
+#: plugins/check_http.c:646
 #, c-format
 msgid "HTTP CRITICAL - Document is %d seconds in the future\n"
 msgstr "HTTP CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n"
 
-#: plugins/check_http.c:646
+#: plugins/check_http.c:651
 #, c-format
 msgid "HTTP CRITICAL - Last modified %.1f days ago\n"
 msgstr "HTTP CRITICAL - Letzte �nderung vor %.1f Tagen\n"
 
-#: plugins/check_http.c:650
+#: plugins/check_http.c:655
 #, c-format
 msgid "HTTP CRITICAL - Last modified %d:%02d:%02d ago\n"
 msgstr "HTTP CRITICAL - Letzte �nderung vor %d:%02d:%02d \n"
 
-#: plugins/check_http.c:731
+#: plugins/check_http.c:736
 msgid "HTTP CRITICAL - Unable to open TCP socket\n"
 msgstr "HTTP CRITICAL - Konnte TCP socket nicht �ffnen\n"
 
-#: plugins/check_http.c:814
+#: plugins/check_http.c:819
 msgid "HTTP CRITICAL - Error on receive\n"
 msgstr "HTTP CRITICAL - Fehler beim Empfangen\n"
 
-#: plugins/check_http.c:824
+#: plugins/check_http.c:829
 #, fuzzy
 msgid "HTTP CRITICAL - No data received from host\n"
 msgstr "HTTP CRITICAL - Keine Daten empfangen\n"
 
-#: plugins/check_http.c:874
+#: plugins/check_http.c:879
+#, c-format
 msgid "Invalid HTTP response received from host\n"
 msgstr "Ung�ltige HTTP Antwort von Host empfangen\n"
 
-#: plugins/check_http.c:877
+#: plugins/check_http.c:882
 #, c-format
 msgid "Invalid HTTP response received from host on port %d\n"
 msgstr "Ung�ltige HTTP Antwort von Host erhalten auf Port %d\n"
 
-#: plugins/check_http.c:885
+#: plugins/check_http.c:890
 #, c-format
 msgid "HTTP OK: Status line output matched \"%s\"\n"
 msgstr "HTTP OK: Statusausgabe passt auf \"%s\"\n"
 
-#: plugins/check_http.c:897
+#: plugins/check_http.c:902
 #, c-format
 msgid "HTTP CRITICAL: Invalid Status Line (%s)\n"
 msgstr "HTTP CRITICAL: Ung�ltige Statusmeldung (%s)\n"
 
-#: plugins/check_http.c:904
+#: plugins/check_http.c:909
 #, c-format
 msgid "HTTP CRITICAL: Invalid Status (%s)\n"
 msgstr "HTTP CRITICAL: Ung�ltiger Status (%s)\n"
 
-#: plugins/check_http.c:908
+#: plugins/check_http.c:913
 #, c-format
 msgid "HTTP CRITICAL: %s\n"
 msgstr "HTTP CRITICAL: %s\n"
 
-#: plugins/check_http.c:912
+#: plugins/check_http.c:917
 #, c-format
 msgid "HTTP WARNING: %s\n"
 msgstr "HTTP WARNING: %s\n"
 
-#: plugins/check_http.c:920
+#: plugins/check_http.c:925
 #, c-format
 msgid "HTTP UNKNOWN"
 msgstr "HTTP UNKNOWN"
 
-#: plugins/check_http.c:922
+#: plugins/check_http.c:927
 #, c-format
 msgid "HTTP OK"
 msgstr "HTTP OK"
 
-#: plugins/check_http.c:924
+#: plugins/check_http.c:929
 #, c-format
 msgid "HTTP WARNING"
 msgstr "HTTP WARNING"
 
-#: plugins/check_http.c:926 plugins/check_http.c:989
+#: plugins/check_http.c:931 plugins/check_http.c:994
 #, c-format
 msgid "HTTP CRITICAL"
 msgstr "HTTP CRITICAL"
 
-#: plugins/check_http.c:930 plugins/check_http.c:946
+#: plugins/check_http.c:935 plugins/check_http.c:951
 #, fuzzy, c-format
 msgid " - %s - %.3f second response time %s|%s %s\n"
 msgstr " - %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n"
 
-#: plugins/check_http.c:960 plugins/check_http.c:977
+#: plugins/check_http.c:965 plugins/check_http.c:982
 #, fuzzy, c-format
 msgid "HTTP OK %s - %.3f second response time %s|%s %s\n"
 msgstr "HTTP OK %s - %.3f Sekunde Antwortzeit %s%s|%s %s\n"
 
-#: plugins/check_http.c:967
+#: plugins/check_http.c:972
 #, c-format
 msgid "HTTP CRITICAL - string not found%s|%s %s\n"
 msgstr "HTTP CRITICAL - Text nicht gefunden%s|%s %s\n"
 
-#: plugins/check_http.c:985
+#: plugins/check_http.c:990
 #, fuzzy
 msgid "pattern not found"
 msgstr "CRITICAL - Muster nicht gefunden%s|%s %s\n"
 
-#: plugins/check_http.c:987
+#: plugins/check_http.c:992
 msgid "pattern found"
 msgstr ""
 
-#: plugins/check_http.c:997
+#: plugins/check_http.c:1002
 #, c-format
 msgid "HTTP CRITICAL - Execute Error: %s\n"
 msgstr "HTTP CRITICAL - Fehler: %s\n"
 
-#: plugins/check_http.c:1006
+#: plugins/check_http.c:1011
 #, fuzzy, c-format
 msgid "HTTP WARNING: page size %d too large%s|%s\n"
 msgstr "HTTP WARNING: Seitengr��e %d zu klein%s|%s\n"
 
-#: plugins/check_http.c:1010
+#: plugins/check_http.c:1015
 #, c-format
 msgid "HTTP WARNING: page size %d too small%s|%s\n"
 msgstr "HTTP WARNING: Seitengr��e %d zu klein%s|%s\n"
 
-#: plugins/check_http.c:1015
+#: plugins/check_http.c:1020
 #, fuzzy, c-format
 msgid "HTTP OK %s - %d bytes in %.3f seconds %s|%s %s\n"
 msgstr "HTTP OK %s - %.3f Sekunde Antwortzeit %s%s|%s %s\n"
 
-#: plugins/check_http.c:1048
+#: plugins/check_http.c:1053
 msgid "HTTP UNKNOWN - Could not allocate addr\n"
 msgstr "HTTP UNKNOWN - Konnte addr nicht zuweisen\n"
 
-#: plugins/check_http.c:1052
+#: plugins/check_http.c:1057
 msgid "HTTP UNKNOWN - Could not allocate url\n"
 msgstr "HTTP UNKNOWN - Konnte�url�nicht�zuweisen\n"
 
-#: plugins/check_http.c:1061
+#: plugins/check_http.c:1066
 #, c-format
 msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1076
+#: plugins/check_http.c:1081
 #, fuzzy, c-format
 msgid "HTTP UNKNOWN - Empty redirect location%s\n"
 msgstr "HTTP UNKNOWN - Serverdatum unbekannt\n"
 
-#: plugins/check_http.c:1083
+#: plugins/check_http.c:1088
 #, fuzzy
 msgid "HTTP UNKNOWN - could not allocate url\n"
 msgstr "HTTP UNKNOWN - Konnte�url�nicht�zuweisen\n"
 
-#: plugins/check_http.c:1123
+#: plugins/check_http.c:1128
 #, c-format
 msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1133
+#: plugins/check_http.c:1138
 #, fuzzy, c-format
 msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n"
 msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n"
 
-#: plugins/check_http.c:1141
+#: plugins/check_http.c:1146
 #, c-format
 msgid "HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n"
 msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n"
 
-#: plugins/check_http.c:1156
+#: plugins/check_http.c:1161
 #, fuzzy, c-format
 msgid "HTTP UNKNOWN - Could not allocate server_url%s\n"
 msgstr "HTTP UNKNOWN - Konnte�url�nicht�zuweisen\n"
 
-#: plugins/check_http.c:1162
+#: plugins/check_http.c:1167
 #, fuzzy, c-format
 msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n"
 msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n"
 
-#: plugins/check_http.c:1167
+#: plugins/check_http.c:1172
 #, c-format
 msgid "Redirection to %s://%s:%d%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1219
+#: plugins/check_http.c:1224
 #, fuzzy
 msgid "This plugin tests the HTTP service on the specified host. It can test"
 msgstr ""
 "Testet den DNS Dienst auf dem angegebenen Host mit dig\n"
 "\n"
 
-#: plugins/check_http.c:1220
+#: plugins/check_http.c:1225
 msgid "normal (http) and secure (https) servers, follow redirects, search for"
 msgstr ""
 
-#: plugins/check_http.c:1221
+#: plugins/check_http.c:1226
 msgid "strings and regular expressions, check connection times, and report on"
 msgstr ""
 
-#: plugins/check_http.c:1222
+#: plugins/check_http.c:1227
 #, fuzzy
 msgid "certificate expiration times."
 msgstr "Clientzertifikat ben�tigt\n"
 
-#: plugins/check_http.c:1228
+#: plugins/check_http.c:1233
 #, c-format
 msgid "NOTE: One or both of -H and -I must be specified"
 msgstr ""
 
-#: plugins/check_http.c:1235
+#: plugins/check_http.c:1241
 msgid "Host name argument for servers using host headers (virtual host)"
 msgstr ""
 
-#: plugins/check_http.c:1236
+#: plugins/check_http.c:1242
 msgid "Append a port to include it in the header (eg: example.com:5000)"
 msgstr ""
 
-#: plugins/check_http.c:1238
+#: plugins/check_http.c:1244
 msgid ""
 "IP address or name (use numeric address if possible to bypass DNS lookup)."
 msgstr ""
 
-#: plugins/check_http.c:1240
+#: plugins/check_http.c:1246
 msgid "Port number (default: "
 msgstr ""
 
-#: plugins/check_http.c:1247
+#: plugins/check_http.c:1253
 msgid "Connect via SSL. Port defaults to 443"
 msgstr ""
 
-#: plugins/check_http.c:1249
+#: plugins/check_http.c:1255
 msgid ""
 "Minimum number of days a certificate has to be valid. Port defaults to 443"
 msgstr ""
 
-#: plugins/check_http.c:1250
+#: plugins/check_http.c:1256
 msgid "(when this option is used the url is not checked.)\n"
 msgstr ""
 
-#: plugins/check_http.c:1254
+#: plugins/check_http.c:1260
 msgid "String to expect in first (status) line of server response (default: "
 msgstr ""
 
-#: plugins/check_http.c:1256
+#: plugins/check_http.c:1262
 msgid ""
 "If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)"
 msgstr ""
 
-#: plugins/check_http.c:1258
+#: plugins/check_http.c:1264
 msgid "String to expect in the content"
 msgstr ""
 
-#: plugins/check_http.c:1260
+#: plugins/check_http.c:1266
 msgid "URL to GET or POST (default: /)"
 msgstr ""
 
-#: plugins/check_http.c:1262
+#: plugins/check_http.c:1268
 msgid "URL encoded http POST data"
 msgstr ""
 
-#: plugins/check_http.c:1264
+#: plugins/check_http.c:1270
 msgid "Don't wait for document body: stop reading after headers."
 msgstr ""
 
-#: plugins/check_http.c:1265
+#: plugins/check_http.c:1271
 msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)"
 msgstr ""
 
-#: plugins/check_http.c:1267
+#: plugins/check_http.c:1273
 msgid "Warn if document is more than SECONDS old. the number can also be of"
 msgstr ""
 
-#: plugins/check_http.c:1268
+#: plugins/check_http.c:1274
 msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days."
 msgstr ""
 
-#: plugins/check_http.c:1270
+#: plugins/check_http.c:1276
 msgid "specify Content-Type header media type when POSTing\n"
 msgstr ""
 
-#: plugins/check_http.c:1273
+#: plugins/check_http.c:1279
 msgid "Allow regex to span newlines (must precede -r or -R)"
 msgstr ""
 
-#: plugins/check_http.c:1275
+#: plugins/check_http.c:1281
 msgid "Search page for regex STRING"
 msgstr ""
 
-#: plugins/check_http.c:1277
+#: plugins/check_http.c:1283
 msgid "Search page for case-insensitive regex STRING"
 msgstr ""
 
-#: plugins/check_http.c:1279
+#: plugins/check_http.c:1285
 msgid "Return CRITICAL if found, OK if not\n"
 msgstr ""
 
-#: plugins/check_http.c:1282
+#: plugins/check_http.c:1288
 msgid "Username:password on sites with basic authentication"
 msgstr ""
 
-#: plugins/check_http.c:1284
+#: plugins/check_http.c:1290
 msgid "String to be sent in http header as \"User Agent\""
 msgstr ""
 
-#: plugins/check_http.c:1286
+#: plugins/check_http.c:1292
 msgid ""
 " Any other tags to be sent in http header. Use multiple times for additional "
 "headers"
 msgstr ""
 
-#: plugins/check_http.c:1288
+#: plugins/check_http.c:1294
 msgid "Wrap output in HTML link (obsoleted by urlize)"
 msgstr ""
 
-#: plugins/check_http.c:1290
+#: plugins/check_http.c:1296
 msgid "How to handle redirected pages"
 msgstr ""
 
-#: plugins/check_http.c:1292
+#: plugins/check_http.c:1298
 msgid "Minimum page size required (bytes) : Maximum page size required (bytes)"
 msgstr ""
 
-#: plugins/check_http.c:1301
+#: plugins/check_http.c:1308
 #, fuzzy
 msgid "This plugin will attempt to open an HTTP connection with the host."
 msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host."
 
-#: plugins/check_http.c:1302
+#: plugins/check_http.c:1309
 msgid ""
 "Successful connects return STATE_OK, refusals and timeouts return "
 "STATE_CRITICAL"
 msgstr ""
 
-#: plugins/check_http.c:1303
+#: plugins/check_http.c:1310
 msgid ""
 "other errors return STATE_UNKNOWN.  Successful connects, but incorrect "
 "reponse"
 msgstr ""
 
-#: plugins/check_http.c:1304
+#: plugins/check_http.c:1311
 msgid ""
 "messages from the host result in STATE_WARNING return values.  If you are"
 msgstr ""
 
-#: plugins/check_http.c:1305
+#: plugins/check_http.c:1312
 msgid ""
 "checking a virtual server that uses 'host headers' you must supply the FQDN"
 msgstr ""
 
-#: plugins/check_http.c:1306
+#: plugins/check_http.c:1313
 msgid "(fully qualified domain name) as the [host_name] argument."
 msgstr ""
 
-#: plugins/check_http.c:1309
+#: plugins/check_http.c:1319
 msgid "This plugin can also check whether an SSL enabled web server is able to"
 msgstr ""
 
-#: plugins/check_http.c:1310
+#: plugins/check_http.c:1320
 msgid "serve content (optionally within a specified time) or whether the X509 "
 msgstr ""
 
-#: plugins/check_http.c:1311
+#: plugins/check_http.c:1321
 msgid "certificate is still valid for the specified number of days."
 msgstr ""
 
-#: plugins/check_http.c:1314
+#: plugins/check_http.c:1325
 msgid ""
 "When the 'www.verisign.com' server returns its content within 5 seconds,"
 msgstr ""
 
-#: plugins/check_http.c:1315
+#: plugins/check_http.c:1326
 msgid ""
 "a STATE_OK will be returned. When the server returns its content but exceeds"
 msgstr ""
 
-#: plugins/check_http.c:1316
+#: plugins/check_http.c:1327
 msgid ""
 "the 5-second threshold, a STATE_WARNING will be returned. When an error "
 "occurs,"
 msgstr ""
 
-#: plugins/check_http.c:1317
+#: plugins/check_http.c:1328
 msgid "a STATE_CRITICAL will be returned."
 msgstr ""
 
-#: plugins/check_http.c:1320
+#: plugins/check_http.c:1331
 msgid ""
 "When the certificate of 'www.verisign.com' is valid for more than 14 days,"
 msgstr ""
 
-#: plugins/check_http.c:1321
+#: plugins/check_http.c:1332
 msgid ""
 "a STATE_OK is returned. When the certificate is still valid, but for less "
 "than"
 msgstr ""
 
-#: plugins/check_http.c:1322
+#: plugins/check_http.c:1333
 msgid ""
 "14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when"
 msgstr ""
 
-#: plugins/check_http.c:1323
+#: plugins/check_http.c:1334
 #, fuzzy
 msgid "the certificate is expired."
 msgstr "Clientzertifikat ben�tigt\n"
 
-#: plugins/check_ldap.c:132
+#: plugins/check_ldap.c:136
 #, c-format
 msgid "Could not connect to the server at port %i\n"
 msgstr ""
 
-#: plugins/check_ldap.c:141
+#: plugins/check_ldap.c:145
 #, c-format
 msgid "Could not set protocol version %d\n"
 msgstr ""
 
-#: plugins/check_ldap.c:156
+#: plugins/check_ldap.c:160
 #, fuzzy, c-format
 msgid "Could not init TLS at port %i!\n"
 msgstr "Konnte stderr nicht �ffnen f�r: %s\n"
 
-#: plugins/check_ldap.c:160
+#: plugins/check_ldap.c:164
 #, c-format
 msgid "TLS not supported by the libraries!\n"
 msgstr ""
 
-#: plugins/check_ldap.c:180
+#: plugins/check_ldap.c:184
 #, fuzzy, c-format
 msgid "Could not init startTLS at port %i!\n"
 msgstr "Konnte stderr nicht �ffnen f�r: %s\n"
 
-#: plugins/check_ldap.c:184
+#: plugins/check_ldap.c:188
 #, c-format
 msgid "startTLS not supported by the library, needs LDAPv3!\n"
 msgstr ""
 
-#: plugins/check_ldap.c:194
+#: plugins/check_ldap.c:198
 #, c-format
 msgid "Could not bind to the ldap-server\n"
 msgstr ""
 
-#: plugins/check_ldap.c:203
+#: plugins/check_ldap.c:207
 #, c-format
 msgid "Could not search/find objectclasses in %s\n"
 msgstr ""
 
-#: plugins/check_ldap.c:226
+#: plugins/check_ldap.c:230
 #, c-format
 msgid "LDAP %s - %.3f seconds response time|%s\n"
 msgstr ""
 
-#: plugins/check_ldap.c:338 plugins/check_ldap.c:345
+#: plugins/check_ldap.c:342 plugins/check_ldap.c:349
 #, c-format
 msgid "%s cannot be combined with %s"
 msgstr ""
 
-#: plugins/check_ldap.c:351 plugins/check_ping.c:241
+#: plugins/check_ldap.c:355 plugins/check_ping.c:250
 msgid "IPv6 support not available\n"
 msgstr ""
 
-#: plugins/check_ldap.c:374
+#: plugins/check_ldap.c:378
 msgid "Please specify the host name\n"
 msgstr ""
 
-#: plugins/check_ldap.c:377
+#: plugins/check_ldap.c:381
 msgid "Please specify the LDAP base\n"
 msgstr ""
 
-#: plugins/check_ldap.c:405
+#: plugins/check_ldap.c:410
 msgid "ldap attribute to search (default: \"(objectclass=*)\""
 msgstr ""
 
-#: plugins/check_ldap.c:407
+#: plugins/check_ldap.c:412
 msgid "ldap base (eg. ou=my unit, o=my org, c=at"
 msgstr ""
 
-#: plugins/check_ldap.c:409
+#: plugins/check_ldap.c:414
 msgid "ldap bind DN (if required)"
 msgstr ""
 
-#: plugins/check_ldap.c:411
+#: plugins/check_ldap.c:416
 msgid "ldap password (if required)"
 msgstr ""
 
-#: plugins/check_ldap.c:413
+#: plugins/check_ldap.c:418
 msgid "use starttls mechanism introduced in protocol version 3"
 msgstr ""
 
-#: plugins/check_ldap.c:415
-#, c-format
-msgid "use ldaps (ldap v2 ssl method). this also sets the default port to %s"
+#: plugins/check_ldap.c:420
+msgid "use ldaps (ldap v2 ssl method). this also sets the default port to"
 msgstr ""
 
-#: plugins/check_ldap.c:419
+#: plugins/check_ldap.c:424
 msgid "use ldap protocol version 2"
 msgstr ""
 
-#: plugins/check_ldap.c:421
+#: plugins/check_ldap.c:426
 msgid "use ldap protocol version 3"
 msgstr ""
 
-#: plugins/check_ldap.c:431
-msgid "Note:"
+#: plugins/check_ldap.c:427
+msgid "default protocol version:"
 msgstr ""
 
-#: plugins/check_ldap.c:432
+#: plugins/check_ldap.c:438
 msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be"
 msgstr ""
 
-#: plugins/check_ldap.c:433
+#: plugins/check_ldap.c:439
 #, c-format
 msgid ""
-"implied (using default port %i) unless --port=636 is specified. In that case "
-"%s"
+" implied (using default port %i) unless --port=636 is specified. In that "
+"case\n"
 msgstr ""
 
-#: plugins/check_ldap.c:434
+#: plugins/check_ldap.c:440
 msgid "'SSL on connect' will be used no matter how the plugin was called."
 msgstr ""
 
-#: plugins/check_ldap.c:435
+#: plugins/check_ldap.c:441
 msgid ""
 "This detection is deprecated, please use 'check_ldap' with the '--starttls' "
 "or '--ssl' flags"
 msgstr ""
 
-#: plugins/check_ldap.c:436
+#: plugins/check_ldap.c:442
 msgid "to define the behaviour explicitly instead."
 msgstr ""
 
-#: plugins/check_load.c:94
+#: plugins/check_load.c:91
 msgid "Warning threshold must be float or float triplet!\n"
 msgstr ""
 
-#: plugins/check_load.c:136 plugins/check_load.c:152
+#: plugins/check_load.c:136 plugins/check_load.c:152 plugins/check_procs.c:176
 #, c-format
 msgid "Error opening %s\n"
 msgstr ""
@@ -1671,19 +1698,19 @@
 msgid "This plugin tests the current system load average."
 msgstr ""
 
-#: plugins/check_load.c:315
+#: plugins/check_load.c:316
 msgid "Exit with WARNING status if load average exceeds WLOADn"
 msgstr ""
 
-#: plugins/check_load.c:317
+#: plugins/check_load.c:318
 msgid "Exit with CRITICAL status if load average exceed CLOADn"
 msgstr ""
 
-#: plugins/check_load.c:318
+#: plugins/check_load.c:319
 msgid "the load average format is the same used by \"uptime\" and \"w\""
 msgstr ""
 
-#: plugins/check_load.c:320
+#: plugins/check_load.c:321
 msgid "Divide the load averages by the number of CPUs (when possible)"
 msgstr ""
 
@@ -1745,109 +1772,108 @@
 msgid "two variables recorded in an MRTG log file."
 msgstr "Konnte MRTG Logfile nicht �ffnen"
 
-#: plugins/check_mrtg.c:335
+#: plugins/check_mrtg.c:336
 msgid "The MRTG log file containing the data you want to monitor"
 msgstr ""
 
-#: plugins/check_mrtg.c:337
+#: plugins/check_mrtg.c:338
 msgid "Minutes before MRTG data is considered to be too old"
 msgstr ""
 
-#: plugins/check_mrtg.c:339
+#: plugins/check_mrtg.c:340
 msgid "Should we check average or maximum values?"
 msgstr ""
 
-#: plugins/check_mrtg.c:341
+#: plugins/check_mrtg.c:342
 msgid "Which variable set should we inspect? (1 or 2)"
 msgstr ""
 
-#: plugins/check_mrtg.c:343
+#: plugins/check_mrtg.c:344
 msgid "Threshold value for data to result in WARNING status"
 msgstr ""
 
-#: plugins/check_mrtg.c:345
+#: plugins/check_mrtg.c:346
 msgid "Threshold value for data to result in CRITICAL status"
 msgstr ""
 
-#: plugins/check_mrtg.c:347
+#: plugins/check_mrtg.c:348
 msgid "Type label for data (Examples: Conns, \"Processor Load\", In, Out)"
 msgstr ""
 
-#: plugins/check_mrtg.c:349
+#: plugins/check_mrtg.c:350
 msgid "Option units label for data (Example: Packets/Sec, Errors/Sec,"
 msgstr ""
 
-#: plugins/check_mrtg.c:350
+#: plugins/check_mrtg.c:351
 #, c-format
 msgid "\"Bytes Per Second\", \"%% Utilization\")"
 msgstr ""
 
-#: plugins/check_mrtg.c:352
+#: plugins/check_mrtg.c:354
 msgid ""
 "If the value exceeds the <vwl> threshold, a WARNING status is returned. If"
 msgstr ""
 
-#: plugins/check_mrtg.c:353
+#: plugins/check_mrtg.c:355
 msgid ""
 "the value exceeds the <vcl> threshold, a CRITICAL status is returned.  If"
 msgstr ""
 
-#: plugins/check_mrtg.c:354
+#: plugins/check_mrtg.c:356
 msgid "the data in the log file is older than <expire_minutes> old, a WARNING"
 msgstr ""
 
-#: plugins/check_mrtg.c:355
+#: plugins/check_mrtg.c:357
 msgid "status is returned and a warning message is printed."
 msgstr ""
 
-#: plugins/check_mrtg.c:357
+#: plugins/check_mrtg.c:360
 msgid ""
 "This plugin is useful for monitoring MRTG data that does not correspond to"
 msgstr ""
 
-#: plugins/check_mrtg.c:358
+#: plugins/check_mrtg.c:361
 msgid ""
 "bandwidth usage.  (Use the check_mrtgtraf plugin for monitoring bandwidth)."
 msgstr ""
 
-#: plugins/check_mrtg.c:359
+#: plugins/check_mrtg.c:362
 msgid ""
 "It can be used to monitor any kind of data that MRTG is monitoring - errors,"
 msgstr ""
 
-#: plugins/check_mrtg.c:360
+#: plugins/check_mrtg.c:363
 msgid ""
 "packets/sec, etc.  I use MRTG in conjuction with the Novell NLM that allows"
 msgstr ""
 
-#: plugins/check_mrtg.c:361
+#: plugins/check_mrtg.c:364
 msgid ""
 "me to track processor utilization, user connections, drive space, etc and"
 msgstr ""
 
-#: plugins/check_mrtg.c:362
+#: plugins/check_mrtg.c:365
 msgid "this plugin works well for monitoring that kind of data as well."
 msgstr ""
 
-#: plugins/check_mrtg.c:365
+#: plugins/check_mrtg.c:368
 msgid ""
 "- This plugin only monitors one of the two variables stored in the MRTG log"
 msgstr ""
 
-#: plugins/check_mrtg.c:366
-msgid "  file.  If you want to monitor both values you will have to define two"
+#: plugins/check_mrtg.c:369
+msgid "file.  If you want to monitor both values you will have to define two"
 msgstr ""
 
-#: plugins/check_mrtg.c:367
-msgid ""
-"  commands with different values for the <variable> argument.  Of course,"
+#: plugins/check_mrtg.c:370
+msgid "commands with different values for the <variable> argument.  Of course,"
 msgstr ""
 
-#: plugins/check_mrtg.c:368
+#: plugins/check_mrtg.c:371
 msgid "you can always hack the code to make this plugin work for you..."
 msgstr ""
 
-#: plugins/check_mrtg.c:369
+#: plugins/check_mrtg.c:372
 msgid ""
 "- MRTG stands for the Multi Router Traffic Grapher.  It can be downloaded "
 "from"
@@ -1896,178 +1922,187 @@
 msgid "the <iwl> or <owl> thresholds (in Bytes/sec), a WARNING status results."
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:355
+#: plugins/check_mrtgtraf.c:356
 msgid "File to read log from"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:357
+#: plugins/check_mrtgtraf.c:358
 msgid "Minutes after which log expires"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:359
+#: plugins/check_mrtgtraf.c:360
 msgid "Test average or maximum"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:361
+#: plugins/check_mrtgtraf.c:362
 #, fuzzy
 msgid "Warning threshold pair <incoming>,<outgoing>"
 msgstr "Warning threshold  Integer sein"
 
-#: plugins/check_mrtgtraf.c:363
+#: plugins/check_mrtgtraf.c:364
 #, fuzzy
 msgid "Critical threshold pair <incoming>,<outgoing>"
 msgstr "Critical threshold muss ein Integer sein"
 
-#: plugins/check_mrtgtraf.c:366
+#: plugins/check_mrtgtraf.c:368
 msgid ""
 "- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:368
+#: plugins/check_mrtgtraf.c:370
 msgid "- While MRTG can monitor things other than traffic rates, this"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:369
+#: plugins/check_mrtgtraf.c:371
 msgid "  plugin probably won't work with much else without modification."
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:370
+#: plugins/check_mrtgtraf.c:372
 msgid "- The calculated i/o rates are a little off from what MRTG actually"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:371
+#: plugins/check_mrtgtraf.c:373
 msgid "  reports.  I'm not sure why this is right now, but will look into it"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:372
+#: plugins/check_mrtgtraf.c:374
 msgid "  for future enhancements of this plugin."
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:382
+#: plugins/check_mrtgtraf.c:387
 #, c-format
 msgid "Usage"
 msgstr ""
 
-#: plugins/check_mysql.c:129
+#: plugins/check_mysql.c:130
 #, c-format
 msgid "slave query error: %s\n"
 msgstr ""
 
-#: plugins/check_mysql.c:136
+#: plugins/check_mysql.c:137
 #, c-format
 msgid "slave store_result error: %s\n"
 msgstr ""
 
-#: plugins/check_mysql.c:142
+#: plugins/check_mysql.c:143
 msgid "No slaves defined"
 msgstr ""
 
-#: plugins/check_mysql.c:150
+#: plugins/check_mysql.c:151
 #, c-format
 msgid "slave fetch row error: %s\n"
 msgstr ""
 
-#: plugins/check_mysql.c:155
+#: plugins/check_mysql.c:156
 #, c-format
 msgid "Slave running: %s"
 msgstr ""
 
-#: plugins/check_mysql.c:373
+#: plugins/check_mysql.c:384
 msgid "This program tests connections to a mysql server"
 msgstr ""
 
-#: plugins/check_mysql.c:384
+#: plugins/check_mysql.c:395
+msgid "Use the specified socket (has no effect if -H is used)"
+msgstr ""
+
+#: plugins/check_mysql.c:398
 msgid "Check database with indicated name"
 msgstr ""
 
-#: plugins/check_mysql.c:386
+#: plugins/check_mysql.c:400
 msgid "Connect using the indicated username"
 msgstr ""
 
-#: plugins/check_mysql.c:388
+#: plugins/check_mysql.c:402
 msgid "Use the indicated password to authenticate the connection"
 msgstr ""
 
-#: plugins/check_mysql.c:389
-msgid "==> IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!! <=="
+#: plugins/check_mysql.c:403
+msgid "IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!"
 msgstr ""
 
-#: plugins/check_mysql.c:390
-msgid "Your clear-text password will be visible as a process table entry"
+#: plugins/check_mysql.c:404
+msgid "Your clear-text password could be visible as a process table entry"
 msgstr ""
 
-#: plugins/check_mysql.c:392
+#: plugins/check_mysql.c:406
 msgid "Check if the slave thread is running properly."
 msgstr ""
 
-#: plugins/check_mysql.c:394
-msgid ""
-"Exit with WARNING status if slave server is more than INTEGER seconds behind "
-"master"
+#: plugins/check_mysql.c:408
+msgid "Exit with WARNING status if slave server is more than INTEGER seconds"
+msgstr ""
+
+#: plugins/check_mysql.c:409 plugins/check_mysql.c:412
+msgid "behind master"
 msgstr ""
 
-#: plugins/check_mysql.c:396
+#: plugins/check_mysql.c:411
+msgid "Exit with CRITICAL status if slave server is more then INTEGER seconds"
+msgstr ""
+
+#: plugins/check_mysql.c:415
 msgid ""
-"Exit with CRITICAL status if slave server is more then INTEGER seconds "
-"behind master"
+"There are no required arguments. By default, the local database is checked"
 msgstr ""
 
-#: plugins/check_mysql.c:397
-msgid "There are no required arguments. By default, the local database with"
+#: plugins/check_mysql.c:416
+msgid ""
+"using the default unix socket. You can force TCP on localhost by using an"
 msgstr ""
 
-#: plugins/check_mysql.c:398
-#, c-format
-msgid "a server listening on MySQL standard port %d will be checked\n"
+#: plugins/check_mysql.c:417
+msgid "IP address or FQDN ('localhost' will use the socket as well)."
 msgstr ""
 
-#: plugins/check_nagios.c:107
+#: plugins/check_nagios.c:108
 msgid "Cannot open status log for reading!"
 msgstr ""
 
-#: plugins/check_nagios.c:157
+#: plugins/check_nagios.c:158
 #, c-format
 msgid "Found process: %s %s\n"
 msgstr ""
 
-#: plugins/check_nagios.c:171
+#: plugins/check_nagios.c:172
 msgid "Could not locate a running Nagios process!"
 msgstr ""
 
-#: plugins/check_nagios.c:175
+#: plugins/check_nagios.c:176
 msgid "Cannot parse Nagios log file for valid time"
 msgstr ""
 
-#: plugins/check_nagios.c:186 plugins/check_procs.c:307
+#: plugins/check_nagios.c:187 plugins/check_procs.c:330
 #, c-format
 msgid "%d process"
 msgid_plural "%d processes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: plugins/check_nagios.c:189
+#: plugins/check_nagios.c:190
 #, c-format
 msgid "status log updated %d second ago"
 msgid_plural "status log updated %d seconds ago"
 msgstr[0] ""
 msgstr[1] ""
 
-#: plugins/check_nagios.c:226 plugins/check_nagios.c:255
+#: plugins/check_nagios.c:227 plugins/check_nagios.c:256
 #, fuzzy
 msgid "Expiration time must be an integer (seconds)\n"
 msgstr "skip lines muss ein Integer sein"
 
-#: plugins/check_nagios.c:267
+#: plugins/check_nagios.c:268
 #, fuzzy
 msgid "You must provide the status_log\n"
 msgstr "%s: Hostname muss angegeben werden\n"
 
-#: plugins/check_nagios.c:270
+#: plugins/check_nagios.c:271
 #, fuzzy
 msgid "You must provide a process string\n"
 msgstr "%s: Hostname muss angegeben werden\n"
 
-#: plugins/check_nagios.c:284
+#: plugins/check_nagios.c:285
 #, fuzzy
 msgid ""
 "This plugin checks the status of the Nagios process on the local machine"
@@ -2077,453 +2112,521 @@
 "unterschritten wird.\n"
 "\n"
 
-#: plugins/check_nagios.c:285
+#: plugins/check_nagios.c:286
 msgid ""
 "The plugin will check to make sure the Nagios status log is no older than"
 msgstr ""
 
-#: plugins/check_nagios.c:286
+#: plugins/check_nagios.c:287
 msgid "the number of minutes specified by the expires option."
 msgstr ""
 
-#: plugins/check_nagios.c:287
+#: plugins/check_nagios.c:288
 msgid ""
 "It also checks the process table for a process matching the command argument."
 msgstr ""
 
-#: plugins/check_nagios.c:296
+#: plugins/check_nagios.c:298
 msgid "Name of the log file to check"
 msgstr ""
 
-#: plugins/check_nagios.c:298
+#: plugins/check_nagios.c:300
 msgid "Minutes aging after which logfile is considered stale"
 msgstr ""
 
-#: plugins/check_nagios.c:300
+#: plugins/check_nagios.c:302
 msgid "Substring to search for in process arguments"
 msgstr ""
 
-#: plugins/check_nt.c:141
+#: plugins/check_nt.c:144
 #, c-format
 msgid "Wrong client version - running: %s, required: %s"
 msgstr ""
 
-#: plugins/check_nt.c:152 plugins/check_nt.c:212
+#: plugins/check_nt.c:155 plugins/check_nt.c:215
 msgid "missing -l parameters"
 msgstr ""
 
-#: plugins/check_nt.c:154
+#: plugins/check_nt.c:157
 msgid "wrong -l parameter."
 msgstr ""
 
-#: plugins/check_nt.c:158
+#: plugins/check_nt.c:161
 msgid "CPU Load"
 msgstr ""
 
-#: plugins/check_nt.c:181
+#: plugins/check_nt.c:184
 #, c-format
 msgid " %lu%% (%lu min average)"
 msgstr ""
 
-#: plugins/check_nt.c:183
+#: plugins/check_nt.c:186
 #, c-format
 msgid " '%lu min avg Load'=%lu%%;%lu;%lu;0;100"
 msgstr ""
 
-#: plugins/check_nt.c:193
+#: plugins/check_nt.c:196
 msgid "not enough values for -l parameters"
 msgstr ""
 
-#: plugins/check_nt.c:205
+#: plugins/check_nt.c:208
 #, c-format
 msgid "System Uptime - %u day(s) %u hour(s) %u minute(s)"
 msgstr ""
 
-#: plugins/check_nt.c:214
+#: plugins/check_nt.c:217
 msgid "wrong -l argument"
 msgstr ""
 
-#: plugins/check_nt.c:225
+#: plugins/check_nt.c:228
 #, c-format
 msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)"
 msgstr ""
 
-#: plugins/check_nt.c:228
+#: plugins/check_nt.c:231
 #, c-format
 msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f"
 msgstr ""
 
-#: plugins/check_nt.c:242
+#: plugins/check_nt.c:245
 msgid "Free disk space : Invalid drive "
 msgstr ""
 
-#: plugins/check_nt.c:252
+#: plugins/check_nt.c:255
 msgid "No service/process specified"
 msgstr ""
 
-#: plugins/check_nt.c:276
+#: plugins/check_nt.c:279
 #, c-format
 msgid ""
 "Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)"
 msgstr ""
 
-#: plugins/check_nt.c:279
+#: plugins/check_nt.c:282
 #, c-format
 msgid "'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f"
 msgstr ""
 
-#: plugins/check_nt.c:315 plugins/check_nt.c:401
+#: plugins/check_nt.c:318 plugins/check_nt.c:404 plugins/check_nt.c:434
 msgid "No counter specified"
 msgstr ""
 
-#: plugins/check_nt.c:348
+#: plugins/check_nt.c:351
 msgid "Minimum value contains non-numbers"
 msgstr ""
 
-#: plugins/check_nt.c:352
+#: plugins/check_nt.c:355
 msgid "Maximum value contains non-numbers"
 msgstr ""
 
-#: plugins/check_nt.c:359
+#: plugins/check_nt.c:362
 msgid "No unit counter specified"
 msgstr ""
 
-#: plugins/check_nt.c:431
+#: plugins/check_nt.c:449
 msgid "Please specify a variable to check"
 msgstr ""
 
-#: plugins/check_nt.c:513
+#: plugins/check_nt.c:530
 #, fuzzy
 msgid "Server port must be an integer\n"
 msgstr "skip lines muss ein Integer sein"
 
-#: plugins/check_nt.c:566
+#: plugins/check_nt.c:585
 msgid "None"
 msgstr ""
 
-#: plugins/check_nt.c:579
+#: plugins/check_nt.c:598
 msgid "could not fetch information from server\n"
 msgstr ""
 
-#: plugins/check_nt.c:623
+#: plugins/check_nt.c:642
 msgid "This plugin collects data from the NSClient service running on a"
 msgstr ""
 
-#: plugins/check_nt.c:624
+#: plugins/check_nt.c:643
 msgid "Windows NT/2000/XP/2003 server."
 msgstr ""
 
-#: plugins/check_nt.c:634
+#: plugins/check_nt.c:654
 msgid "Name of the host to check"
 msgstr ""
 
-#: plugins/check_nt.c:636
+#: plugins/check_nt.c:656
 #, fuzzy
 msgid "Optional port number (default: "
 msgstr "Ung�ltige Portnummer"
 
-#: plugins/check_nt.c:639
+#: plugins/check_nt.c:659
 msgid "Password needed for the request"
 msgstr ""
 
-#: plugins/check_nt.c:641 plugins/check_nwstat.c:1664
-#: plugins/check_overcr.c:435
+#: plugins/check_nt.c:661 plugins/check_nwstat.c:1665
+#: plugins/check_overcr.c:436
 msgid "Threshold which will result in a warning status"
 msgstr ""
 
-#: plugins/check_nt.c:643 plugins/check_nwstat.c:1666
-#: plugins/check_overcr.c:437
+#: plugins/check_nt.c:663 plugins/check_nwstat.c:1667
+#: plugins/check_overcr.c:438
 msgid "Threshold which will result in a critical status"
 msgstr ""
 
-#: plugins/check_nt.c:645
+#: plugins/check_nt.c:665
 msgid "Seconds before connection attempt times out (default: "
 msgstr ""
 
-#: plugins/check_nt.c:648
+#: plugins/check_nt.c:668
 msgid "Print this help screen"
 msgstr ""
 
-#: plugins/check_nt.c:650
+#: plugins/check_nt.c:670
 msgid "Print version information"
 msgstr ""
 
-#: plugins/check_nt.c:652
+#: plugins/check_nt.c:672
 msgid "Variable to check"
 msgstr ""
 
-#: plugins/check_nt.c:653
+#: plugins/check_nt.c:673
 msgid "Valid variables are:"
 msgstr ""
 
-#: plugins/check_nt.c:655
+#: plugins/check_nt.c:675
 msgid "Get the NSClient version"
 msgstr ""
 
-#: plugins/check_nt.c:656
+#: plugins/check_nt.c:676
 msgid "If -l <version> is specified, will return warning if versions differ."
 msgstr ""
 
-#: plugins/check_nt.c:658
+#: plugins/check_nt.c:678
 msgid "Average CPU load on last x minutes."
 msgstr ""
 
-#: plugins/check_nt.c:659
+#: plugins/check_nt.c:679
 msgid "Request a -l parameter with the following syntax:"
 msgstr ""
 
-#: plugins/check_nt.c:660
+#: plugins/check_nt.c:680
 msgid "-l <minutes range>,<warning threshold>,<critical threshold>."
 msgstr ""
 
-#: plugins/check_nt.c:661
+#: plugins/check_nt.c:681
 msgid "<minute range> should be less than 24*60."
 msgstr ""
 
-#: plugins/check_nt.c:662
+#: plugins/check_nt.c:682
 msgid ""
 "Thresholds are percentage and up to 10 requests can be done in one shot."
 msgstr ""
 
-#: plugins/check_nt.c:665
+#: plugins/check_nt.c:685
 msgid "Get the uptime of the machine."
 msgstr ""
 
-#: plugins/check_nt.c:666
+#: plugins/check_nt.c:686
 msgid "No specific parameters. No warning or critical threshold"
 msgstr ""
 
-#: plugins/check_nt.c:668
+#: plugins/check_nt.c:688
 msgid "Size and percentage of disk use."
 msgstr ""
 
-#: plugins/check_nt.c:669
+#: plugins/check_nt.c:689
 msgid "Request a -l parameter containing the drive letter only."
 msgstr ""
 
-#: plugins/check_nt.c:670 plugins/check_nt.c:673
+#: plugins/check_nt.c:690 plugins/check_nt.c:693
 msgid "Warning and critical thresholds can be specified with -w and -c."
 msgstr ""
 
-#: plugins/check_nt.c:672
+#: plugins/check_nt.c:692
 msgid "Memory use."
 msgstr ""
 
-#: plugins/check_nt.c:675
+#: plugins/check_nt.c:695
 msgid "Check the state of one or several services."
 msgstr ""
 
-#: plugins/check_nt.c:676 plugins/check_nt.c:685
+#: plugins/check_nt.c:696 plugins/check_nt.c:705
 msgid "Request a -l parameters with the following syntax:"
 msgstr ""
 
-#: plugins/check_nt.c:677
+#: plugins/check_nt.c:697
 msgid "-l <service1>,<service2>,<service3>,..."
 msgstr ""
 
-#: plugins/check_nt.c:678
+#: plugins/check_nt.c:698
 msgid "You can specify -d SHOWALL in case you want to see working services"
 msgstr ""
 
-#: plugins/check_nt.c:679
+#: plugins/check_nt.c:699
 msgid "in the returned string."
 msgstr ""
 
-#: plugins/check_nt.c:681
+#: plugins/check_nt.c:701
 msgid "Check if one or several process are running."
 msgstr ""
 
-#: plugins/check_nt.c:682
+#: plugins/check_nt.c:702
 msgid "Same syntax as SERVICESTATE."
 msgstr ""
 
-#: plugins/check_nt.c:684
+#: plugins/check_nt.c:704
 msgid "Check any performance counter of Windows NT/2000."
 msgstr ""
 
-#: plugins/check_nt.c:686
+#: plugins/check_nt.c:706
 msgid "-l \"\\\\<performance object>\\\\counter\",\"<description>"
 msgstr ""
 
-#: plugins/check_nt.c:687
+#: plugins/check_nt.c:707
 msgid "The <description> parameter is optional and is given to a printf "
 msgstr ""
 
-#: plugins/check_nt.c:688
+#: plugins/check_nt.c:708
 msgid "output command which requires a float parameter."
 msgstr ""
 
-#: plugins/check_nt.c:689
+#: plugins/check_nt.c:709
 #, c-format
 msgid "If <description> does not include \"%%\", it is used as a label."
 msgstr ""
 
-#: plugins/check_nt.c:690
+#: plugins/check_nt.c:710 plugins/check_nt.c:725
 msgid "Some examples:"
 msgstr ""
 
-#: plugins/check_nt.c:694
+#: plugins/check_nt.c:714
+msgid "Check any performance counter object of Windows NT/2000."
+msgstr ""
+
+#: plugins/check_nt.c:715
+msgid ""
+"Syntax: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object>"
+msgstr ""
+
+#: plugins/check_nt.c:716
+msgid "<counter object> is a Windows Perfmon Counter object (eg. Process),"
+msgstr ""
+
+#: plugins/check_nt.c:717
+msgid "if it is two words, it should be enclosed in quotes"
+msgstr ""
+
+#: plugins/check_nt.c:718
+msgid "The returned results will be a comma-separated list of instances on "
+msgstr ""
+
+#: plugins/check_nt.c:719
+msgid " the selected computer for that object."
+msgstr ""
+
+#: plugins/check_nt.c:720
+msgid ""
+"The purpose of this is to be run from command line to determine what "
+"instances"
+msgstr ""
+
+#: plugins/check_nt.c:721
+msgid ""
+" are available for monitoring without having to log onto the Windows server"
+msgstr ""
+
+#: plugins/check_nt.c:722
+msgid "  to run Perfmon directly."
+msgstr ""
+
+#: plugins/check_nt.c:723
+msgid "It can also be used in scripts that automatically create Nagios service"
+msgstr ""
+
+#: plugins/check_nt.c:724
+msgid " configuration files."
+msgstr ""
+
+#: plugins/check_nt.c:726
+msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process"
+msgstr ""
+
+#: plugins/check_nt.c:729
 msgid ""
 "- The NSClient service should be running on the server to get any information"
 msgstr ""
 
-#: plugins/check_nt.c:696
+#: plugins/check_nt.c:731
 msgid "- Critical thresholds should be lower than warning thresholds"
 msgstr ""
 
-#: plugins/check_nt.c:697
+#: plugins/check_nt.c:732
 msgid "- Default port 1248 is sometimes in use by other services. The error"
 msgstr ""
 
-#: plugins/check_nt.c:698
+#: plugins/check_nt.c:733
 msgid ""
 "output when this happens contains \"Cannot map xxxxx to protocol number\"."
 msgstr ""
 
-#: plugins/check_nt.c:699
+#: plugins/check_nt.c:734
 msgid "One fix for this is to change the port to something else on check_nt "
 msgstr ""
 
-#: plugins/check_nt.c:700
+#: plugins/check_nt.c:735
 msgid "and on the client service it's connecting to."
 msgstr ""
 
-#: plugins/check_ntp.c:804 plugins/check_ntp_peer.c:586
-#: plugins/check_ntp_time.c:563
+#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:592
+#: plugins/check_ntp_time.c:566
+#, c-format
 msgid "NTP CRITICAL:"
 msgstr "NTP CRITICAL:"
 
-#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:589
-#: plugins/check_ntp_time.c:566
+#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:595
+#: plugins/check_ntp_time.c:569
+#, c-format
 msgid "NTP WARNING:"
 msgstr "NTP WARNING:"
 
-#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:592
-#: plugins/check_ntp_time.c:569
+#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:598
+#: plugins/check_ntp_time.c:572
+#, c-format
 msgid "NTP OK:"
 msgstr "NTP OK:"
 
-#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:595
-#: plugins/check_ntp_time.c:572
+#: plugins/check_ntp.c:816 plugins/check_ntp_peer.c:601
+#: plugins/check_ntp_time.c:575
+#, c-format
 msgid "NTP UNKNOWN:"
 msgstr "NTP UNKNOWN:"
 
-#: plugins/check_ntp.c:817 plugins/check_ntp_peer.c:602
-#: plugins/check_ntp_time.c:576
+#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:610
+#: plugins/check_ntp_time.c:579
 msgid "Offset unknown"
 msgstr ""
 
-#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:605
-#: plugins/check_ntp_time.c:579
+#: plugins/check_ntp.c:823 plugins/check_ntp_peer.c:613
+#: plugins/check_ntp_time.c:582
 msgid "Offset"
 msgstr ""
 
-#: plugins/check_ntp.c:841 plugins/check_ntp_peer.c:630
+#: plugins/check_ntp.c:844 plugins/check_ntp_peer.c:638
 #, fuzzy
 msgid "This plugin checks the selected ntp server"
 msgstr ""
 "Testet den DNS Dienst auf dem angegebenen Host mit dig\n"
 "\n"
 
-#: plugins/check_ntp.c:849 plugins/check_ntp_peer.c:640
-#: plugins/check_ntp_time.c:604
+#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:649
+#: plugins/check_ntp_time.c:608
 msgid "Offset to result in warning status (seconds)"
 msgstr ""
 
-#: plugins/check_ntp.c:851 plugins/check_ntp_peer.c:642
-#: plugins/check_ntp_time.c:606
+#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:651
+#: plugins/check_ntp_time.c:610
 msgid "Offset to result in critical status (seconds)"
 msgstr ""
 
-#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:648
+#: plugins/check_ntp.c:857 plugins/check_ntp_peer.c:657
 #, fuzzy
 msgid "Warning threshold for jitter"
 msgstr "Warning threshold  Integer sein"
 
-#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:650
+#: plugins/check_ntp.c:859 plugins/check_ntp_peer.c:659
 #, fuzzy
 msgid "Critical threshold for jitter"
 msgstr "Critical threshold muss ein Integer sein"
 
-#: plugins/check_ntp.c:867
+#: plugins/check_ntp.c:873
 msgid "Normal offset check:"
 msgstr ""
 
-#: plugins/check_ntp.c:869 plugins/check_ntp_peer.c:671
+#: plugins/check_ntp.c:876 plugins/check_ntp_peer.c:684
 msgid ""
 "Check jitter too, avoiding critical notifications if jitter isn't available"
 msgstr ""
 
-#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:672
+#: plugins/check_ntp.c:877 plugins/check_ntp_peer.c:685
 msgid "(See Notes above for more details on thresholds formats):"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:599
+#: plugins/check_ntp.c:882 plugins/check_ntp.c:889
+msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or"
+msgstr ""
+
+#: plugins/check_ntp.c:883 plugins/check_ntp.c:890
+msgid "check_ntp_time istead."
+msgstr ""
+
+#: plugins/check_ntp_peer.c:605
 msgid "Server not synchronized"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:638
+#: plugins/check_ntp_peer.c:607
+msgid "Server has the LI_ALARM bit set"
+msgstr ""
+
+#: plugins/check_ntp_peer.c:647
 msgid ""
 "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:644
+#: plugins/check_ntp_peer.c:653
 #, fuzzy
 msgid "Warning threshold for stratum"
 msgstr "Warning threshold  Integer sein"
 
-#: plugins/check_ntp_peer.c:646
+#: plugins/check_ntp_peer.c:655
 #, fuzzy
 msgid "Critical threshold for stratum"
 msgstr "Critical threshold muss ein Integer sein"
 
-#: plugins/check_ntp_peer.c:656
+#: plugins/check_ntp_peer.c:664
 msgid "This plugin checks an NTP server independent of any commandline"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:657
+#: plugins/check_ntp_peer.c:665
 msgid "programs or external libraries."
 msgstr ""
 
-#: plugins/check_ntp_peer.c:658
+#: plugins/check_ntp_peer.c:668
 #, fuzzy
 msgid "Use this plugin to check the health of an NTP server. It supports"
 msgstr ""
 "Testet den DNS Dienst auf dem angegebenen Host mit dig\n"
 "\n"
 
-#: plugins/check_ntp_peer.c:659
+#: plugins/check_ntp_peer.c:669
 msgid "checking the offset with the sync peer, the jitter and stratum. This"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:660
+#: plugins/check_ntp_peer.c:670
 msgid "plugin will not check the clock offset between the local host and NTP"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:661
+#: plugins/check_ntp_peer.c:671
 msgid "server; please use check_ntp_time for that purpose."
 msgstr ""
 
-#: plugins/check_ntp_peer.c:669
+#: plugins/check_ntp_peer.c:681
 msgid "Simple NTP server check:"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:674
+#: plugins/check_ntp_peer.c:688
 msgid "Check only stratum:"
 msgstr ""
 
-#: plugins/check_ntp_time.c:594
+#: plugins/check_ntp_time.c:597
 #, fuzzy
 msgid "This plugin checks the clock offset with the ntp server"
 msgstr ""
 "Testet den DNS Dienst auf dem angegebenen Host mit dig\n"
 "\n"
 
-#: plugins/check_ntp_time.c:602
+#: plugins/check_ntp_time.c:606
 msgid "Returns UNKNOWN instead of CRITICAL if offset cannot be found"
 msgstr ""
 
-#: plugins/check_ntp_time.c:612
+#: plugins/check_ntp_time.c:615
 #, fuzzy
 msgid "This plugin checks the clock offset between the local host and a"
 msgstr ""
@@ -2532,19 +2635,19 @@
 "unterschritten wird.\n"
 "\n"
 
-#: plugins/check_ntp_time.c:613
+#: plugins/check_ntp_time.c:616
 msgid "remote NTP server. It is independent of any commandline programs or"
 msgstr ""
 
-#: plugins/check_ntp_time.c:614
+#: plugins/check_ntp_time.c:617
 msgid "external libraries."
 msgstr ""
 
-#: plugins/check_ntp_time.c:615
+#: plugins/check_ntp_time.c:621
 msgid "If you'd rather want to monitor an NTP server, please use"
 msgstr ""
 
-#: plugins/check_ntp_time.c:616
+#: plugins/check_ntp_time.c:622
 msgid "check_ntp_peer."
 msgstr ""
 
@@ -2643,15 +2746,17 @@
 msgstr ""
 
 #: plugins/check_nwstat.c:564
-#, fuzzy
+#, fuzzy, c-format
 msgid "CRITICAL - NRM Status is bad!"
 msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden"
 
 #: plugins/check_nwstat.c:569
+#, c-format
 msgid "Warning - NRM Status is suspect!"
 msgstr ""
 
 #: plugins/check_nwstat.c:572
+#, c-format
 msgid "OK - NRM Status is good!"
 msgstr ""
 
@@ -2711,10 +2816,12 @@
 msgstr ""
 
 #: plugins/check_nwstat.c:908
+#, c-format
 msgid "CRITICAL - Time not in sync with network!"
 msgstr ""
 
 #: plugins/check_nwstat.c:911
+#, c-format
 msgid "OK - Time in sync with network!"
 msgstr ""
 
@@ -2788,216 +2895,216 @@
 msgid "Novell server to gather the requested system information."
 msgstr ""
 
-#: plugins/check_nwstat.c:1617 plugins/check_overcr.c:439
+#: plugins/check_nwstat.c:1618 plugins/check_overcr.c:440
 msgid "Variable to check.  Valid variables include:"
 msgstr ""
 
-#: plugins/check_nwstat.c:1618
+#: plugins/check_nwstat.c:1619
 msgid "LOAD1     = 1 minute average CPU load"
 msgstr ""
 
-#: plugins/check_nwstat.c:1619
+#: plugins/check_nwstat.c:1620
 msgid "LOAD5     = 5 minute average CPU load"
 msgstr ""
 
-#: plugins/check_nwstat.c:1620
+#: plugins/check_nwstat.c:1621
 msgid "LOAD15    = 15 minute average CPU load"
 msgstr ""
 
-#: plugins/check_nwstat.c:1621
+#: plugins/check_nwstat.c:1622
 msgid "CSPROCS   = number of current service processes (NW 5.x only)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1622
+#: plugins/check_nwstat.c:1623
 msgid "ABENDS    = number of abended threads (NW 5.x only)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1623
+#: plugins/check_nwstat.c:1624
 msgid "UPTIME    = server uptime"
 msgstr ""
 
-#: plugins/check_nwstat.c:1624
+#: plugins/check_nwstat.c:1625
 msgid "LTCH      = percent long term cache hits"
 msgstr ""
 
-#: plugins/check_nwstat.c:1625
+#: plugins/check_nwstat.c:1626
 msgid "CBUFF     = current number of cache buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1626
+#: plugins/check_nwstat.c:1627
 msgid "CDBUFF    = current number of dirty cache buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1627
+#: plugins/check_nwstat.c:1628
 msgid "DCB       = dirty cache buffers as a percentage of the total"
 msgstr ""
 
-#: plugins/check_nwstat.c:1628
+#: plugins/check_nwstat.c:1629
 msgid "TCB       = dirty cache buffers as a percentage of the original"
 msgstr ""
 
-#: plugins/check_nwstat.c:1629
+#: plugins/check_nwstat.c:1630
 msgid "OFILES    = number of open files"
 msgstr ""
 
-#: plugins/check_nwstat.c:1630
+#: plugins/check_nwstat.c:1631
 msgid "    VMF<vol>  = MB of free space on Volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1631
+#: plugins/check_nwstat.c:1632
 msgid "    VMU<vol>  = MB used space on Volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1632
+#: plugins/check_nwstat.c:1633
 msgid "    VMP<vol>  = MB of purgeable space on Volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1633
+#: plugins/check_nwstat.c:1634
 msgid "    VPF<vol>  = percent free space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1634
+#: plugins/check_nwstat.c:1635
 msgid "    VKF<vol>  = KB of free space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1635
+#: plugins/check_nwstat.c:1636
 msgid "    VPP<vol>  = percent purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1636
+#: plugins/check_nwstat.c:1637
 msgid "    VKP<vol>  = KB of purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1637
+#: plugins/check_nwstat.c:1638
 msgid "    VPNP<vol> = percent not yet purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1638
+#: plugins/check_nwstat.c:1639
 msgid "    VKNP<vol> = KB of not yet purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1639
+#: plugins/check_nwstat.c:1640
 msgid "    LRUM      = LRU sitting time in minutes"
 msgstr ""
 
-#: plugins/check_nwstat.c:1640
+#: plugins/check_nwstat.c:1641
 msgid "    LRUS      = LRU sitting time in seconds"
 msgstr ""
 
-#: plugins/check_nwstat.c:1641
+#: plugins/check_nwstat.c:1642
 msgid "    DSDB      = check to see if DS Database is open"
 msgstr ""
 
-#: plugins/check_nwstat.c:1642
+#: plugins/check_nwstat.c:1643
 msgid "    DSVER     = NDS version"
 msgstr ""
 
-#: plugins/check_nwstat.c:1643
+#: plugins/check_nwstat.c:1644
 msgid "    UPRB      = used packet receive buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1644
+#: plugins/check_nwstat.c:1645
 msgid "    PUPRB     = percent (of max) used packet receive buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1645
+#: plugins/check_nwstat.c:1646
 msgid "    SAPENTRIES = number of entries in the SAP table"
 msgstr ""
 
-#: plugins/check_nwstat.c:1646
+#: plugins/check_nwstat.c:1647
 msgid "    SAPENTRIES<n> = number of entries in the SAP table for SAP type <n>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1647
+#: plugins/check_nwstat.c:1648
 msgid "    TSYNC     = timesync status"
 msgstr ""
 
-#: plugins/check_nwstat.c:1648
+#: plugins/check_nwstat.c:1649
 msgid "    LOGINS    = check to see if logins are enabled"
 msgstr ""
 
-#: plugins/check_nwstat.c:1649
+#: plugins/check_nwstat.c:1650
 msgid "    CONNS     = number of currently licensed connections"
 msgstr ""
 
-#: plugins/check_nwstat.c:1650
+#: plugins/check_nwstat.c:1651
 msgid "    NRMH\t= NRM Summary Status"
 msgstr ""
 
-#: plugins/check_nwstat.c:1651
+#: plugins/check_nwstat.c:1652
 msgid "    NRMP<stat> = Returns the current value for a NRM health item"
 msgstr ""
 
-#: plugins/check_nwstat.c:1652
+#: plugins/check_nwstat.c:1653
 msgid "    NRMM<stat> = Returns the current memory stats from NRM"
 msgstr ""
 
-#: plugins/check_nwstat.c:1653
+#: plugins/check_nwstat.c:1654
 msgid "    NRMS<stat> = Returns the current Swapfile stats from NRM"
 msgstr ""
 
-#: plugins/check_nwstat.c:1654
+#: plugins/check_nwstat.c:1655
 msgid "    NSS1<stat> = Statistics from _Admin:Manage_NSS\\GeneralStats.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1655
+#: plugins/check_nwstat.c:1656
 msgid "    NSS3<stat> = Statistics from _Admin:Manage_NSS\\NameCache.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1656
+#: plugins/check_nwstat.c:1657
 msgid "    NSS4<stat> = Statistics from _Admin:Manage_NSS\\FileStats.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1657
+#: plugins/check_nwstat.c:1658
 msgid "    NSS5<stat> = Statistics from _Admin:Manage_NSS\\ObjectCache.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1658
+#: plugins/check_nwstat.c:1659
 msgid "    NSS6<stat> = Statistics from _Admin:Manage_NSS\\Thread.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1659
+#: plugins/check_nwstat.c:1660
 msgid ""
 "    NSS7<stat> = Statistics from _Admin:Manage_NSS\\AuthorizationCache.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1660
+#: plugins/check_nwstat.c:1661
 msgid "    NLM:<nlm> = check if NLM is loaded and report version"
 msgstr ""
 
-#: plugins/check_nwstat.c:1661
+#: plugins/check_nwstat.c:1662
 msgid "                (e.g. NLM:TSANDS.NLM)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1668
+#: plugins/check_nwstat.c:1669
 msgid "Include server version string in results"
 msgstr ""
 
-#: plugins/check_nwstat.c:1674
+#: plugins/check_nwstat.c:1675
 msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG"
 msgstr ""
 
-#: plugins/check_nwstat.c:1675
+#: plugins/check_nwstat.c:1676
 msgid ""
 "  extension for NetWare be loaded on the Novell servers you wish to check."
 msgstr ""
 
-#: plugins/check_nwstat.c:1676
+#: plugins/check_nwstat.c:1677
 msgid "  (available from http://www.engr.wisc.edu/~drews/mrtg/)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1677
+#: plugins/check_nwstat.c:1678
 msgid ""
 "- Values for critical thresholds should be lower than warning thresholds"
 msgstr ""
 
-#: plugins/check_nwstat.c:1678
+#: plugins/check_nwstat.c:1679
 msgid ""
 "  when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, "
 msgstr ""
 
-#: plugins/check_nwstat.c:1679
-msgid "  TCB, LRUS and LRUM.\n"
+#: plugins/check_nwstat.c:1680
+msgid "  TCB, LRUS and LRUM."
 msgstr ""
 
 #: plugins/check_overcr.c:127
@@ -3062,159 +3169,163 @@
 msgid "remote UNIX server in order to gather the requested system information."
 msgstr ""
 
-#: plugins/check_overcr.c:440
+#: plugins/check_overcr.c:441
 msgid "LOAD1         = 1 minute average CPU load"
 msgstr ""
 
-#: plugins/check_overcr.c:441
+#: plugins/check_overcr.c:442
 msgid "LOAD5         = 5 minute average CPU load"
 msgstr ""
 
-#: plugins/check_overcr.c:442
+#: plugins/check_overcr.c:443
 msgid "LOAD15        = 15 minute average CPU load"
 msgstr ""
 
-#: plugins/check_overcr.c:443
+#: plugins/check_overcr.c:444
 msgid "DPU<filesys>  = percent used disk space on filesystem <filesys>"
 msgstr ""
 
-#: plugins/check_overcr.c:444
+#: plugins/check_overcr.c:445
 msgid "PROC<process> = number of running processes with name <process>"
 msgstr ""
 
-#: plugins/check_overcr.c:445
+#: plugins/check_overcr.c:446
 msgid "NET<port>     = number of active connections on TCP port <port>"
 msgstr ""
 
-#: plugins/check_overcr.c:446
+#: plugins/check_overcr.c:447
 msgid "UPTIME        = system uptime in seconds"
 msgstr ""
 
 #: plugins/check_overcr.c:454
-msgid ""
-"For the available options, the critical threshold value should always be"
+msgid "This plugin requires that Eric Molitors' Over-CR collector daemon be"
 msgstr ""
 
 #: plugins/check_overcr.c:455
-msgid ""
-"higher than the warning threshold value, EXCEPT with the uptime variable"
+msgid "running on the remote server."
+msgstr ""
+
+#: plugins/check_overcr.c:456
+msgid "Over-CR can be downloaded from http://www.molitor.org/overcr"
 msgstr ""
 
 #: plugins/check_overcr.c:457
-msgid "This plugin requres that Eric Molitors' Over-CR collector daemon be"
+msgid "This plugin was tested with version 0.99.53 of the Over-CR collector"
 msgstr ""
 
-#: plugins/check_overcr.c:458
-msgid "running on the remote server."
+#: plugins/check_overcr.c:461
+msgid ""
+"For the available options, the critical threshold value should always be"
 msgstr ""
 
-#: plugins/check_overcr.c:460
-msgid "This plugin was tested with version 0.99.53 of the Over-CR collector"
+#: plugins/check_overcr.c:462
+msgid ""
+"higher than the warning threshold value, EXCEPT with the uptime variable"
 msgstr ""
 
-#: plugins/check_pgsql.c:173
+#: plugins/check_pgsql.c:174
 #, c-format
 msgid "CRITICAL - no connection to '%s' (%s).\n"
 msgstr ""
 
-#: plugins/check_pgsql.c:188
+#: plugins/check_pgsql.c:189
 #, c-format
 msgid " %s - database %s (%d sec.)|%s\n"
 msgstr ""
 
-#: plugins/check_pgsql.c:243 plugins/check_time.c:281 plugins/check_time.c:293
-#: plugins/check_users.c:168
+#: plugins/check_pgsql.c:244 plugins/check_time.c:281 plugins/check_time.c:293
+#: plugins/check_users.c:170
 msgid "Critical threshold must be a positive integer"
 msgstr "Critical threshold muss ein positiver Integer sein"
 
-#: plugins/check_pgsql.c:249 plugins/check_time.c:262 plugins/check_time.c:286
-#: plugins/check_users.c:174 plugins/check_users.c:184
-#: plugins/check_users.c:191
+#: plugins/check_pgsql.c:250 plugins/check_time.c:262 plugins/check_time.c:286
+#: plugins/check_users.c:176 plugins/check_users.c:186
+#: plugins/check_users.c:193
 msgid "Warning threshold must be a positive integer"
 msgstr "Warning threshold muss ein positiver Integer sein"
 
-#: plugins/check_pgsql.c:267
+#: plugins/check_pgsql.c:268
 msgid "Database name is not valid"
 msgstr ""
 
-#: plugins/check_pgsql.c:273
+#: plugins/check_pgsql.c:274
 msgid "User name is not valid"
 msgstr ""
 
-#: plugins/check_pgsql.c:410
+#: plugins/check_pgsql.c:411
 #, c-format
 msgid "Test whether a PostgreSQL Database is accepting connections."
 msgstr ""
 
-#: plugins/check_pgsql.c:423
+#: plugins/check_pgsql.c:425
 msgid "Database to check "
 msgstr ""
 
-#: plugins/check_pgsql.c:424
+#: plugins/check_pgsql.c:426
 #, c-format
 msgid "(default: %s)"
 msgstr ""
 
-#: plugins/check_pgsql.c:426
+#: plugins/check_pgsql.c:428
 msgid "Login name of user"
 msgstr ""
 
-#: plugins/check_pgsql.c:428
+#: plugins/check_pgsql.c:430
 msgid "Password (BIG SECURITY ISSUE)"
 msgstr ""
 
-#: plugins/check_pgsql.c:437
+#: plugins/check_pgsql.c:439
 msgid "All parameters are optional."
 msgstr ""
 
-#: plugins/check_pgsql.c:438
+#: plugins/check_pgsql.c:440
 msgid ""
 "This plugin tests a PostgreSQL DBMS to determine whether it is active and"
 msgstr ""
 
-#: plugins/check_pgsql.c:439
+#: plugins/check_pgsql.c:441
 msgid "accepting queries. In its current operation, it simply connects to the"
 msgstr ""
 
-#: plugins/check_pgsql.c:440
+#: plugins/check_pgsql.c:442
 msgid ""
 "specified database, and then disconnects. If no database is specified, it"
 msgstr ""
 
-#: plugins/check_pgsql.c:441
+#: plugins/check_pgsql.c:443
 msgid ""
 "connects to the template1 database, which is present in every functioning"
 msgstr ""
 
-#: plugins/check_pgsql.c:442
+#: plugins/check_pgsql.c:444
 msgid "PostgreSQL DBMS."
 msgstr ""
 
-#: plugins/check_pgsql.c:443
+#: plugins/check_pgsql.c:446
 msgid ""
 "The plugin will connect to a local postmaster if no host is specified. To"
 msgstr ""
 
-#: plugins/check_pgsql.c:444
+#: plugins/check_pgsql.c:447
 msgid ""
 "connect to a remote host, be sure that the remote postmaster accepts TCP/IP"
 msgstr ""
 
-#: plugins/check_pgsql.c:445
+#: plugins/check_pgsql.c:448
 msgid "connections (start the postmaster with the -i option)."
 msgstr ""
 
-#: plugins/check_pgsql.c:446
+#: plugins/check_pgsql.c:450
 msgid ""
 "Typically, the nagios user (unless the --logname option is used) should be"
 msgstr ""
 
-#: plugins/check_pgsql.c:447
+#: plugins/check_pgsql.c:451
 msgid ""
 "able to connect to the database without a password. The plugin can also send"
 msgstr ""
 
-#: plugins/check_pgsql.c:448
+#: plugins/check_pgsql.c:452
 msgid "a password, but no effort is made to obsure or encrypt the password."
 msgstr ""
 
@@ -3232,390 +3343,386 @@
 msgid "PING %s - %sPacket loss = %d%%, RTA = %2.2f ms"
 msgstr ""
 
-#: plugins/check_ping.c:252
+#: plugins/check_ping.c:261
 msgid "Could not realloc() addresses\n"
 msgstr ""
 
-#: plugins/check_ping.c:267 plugins/check_ping.c:347
+#: plugins/check_ping.c:276 plugins/check_ping.c:356
 #, c-format
 msgid "<max_packets> (%s) must be a non-negative number\n"
 msgstr ""
 
-#: plugins/check_ping.c:301
+#: plugins/check_ping.c:310
 #, c-format
 msgid "<wpl> (%s) must be an integer percentage\n"
 msgstr ""
 
-#: plugins/check_ping.c:312
+#: plugins/check_ping.c:321
 #, c-format
 msgid "<cpl> (%s) must be an integer percentage\n"
 msgstr ""
 
-#: plugins/check_ping.c:323
+#: plugins/check_ping.c:332
 #, c-format
 msgid "<wrta> (%s) must be a non-negative number\n"
 msgstr ""
 
-#: plugins/check_ping.c:334
+#: plugins/check_ping.c:343
 #, c-format
 msgid "<crta> (%s) must be a non-negative number\n"
 msgstr ""
 
-#: plugins/check_ping.c:367
+#: plugins/check_ping.c:376
 #, c-format
 msgid ""
 "%s: Warning threshold must be integer or percentage!\n"
 "\n"
 msgstr ""
 
-#: plugins/check_ping.c:380
+#: plugins/check_ping.c:389
 #, c-format
 msgid "<wrta> was not set\n"
 msgstr ""
 
-#: plugins/check_ping.c:384
+#: plugins/check_ping.c:393
 #, c-format
 msgid "<crta> was not set\n"
 msgstr ""
 
-#: plugins/check_ping.c:388
+#: plugins/check_ping.c:397
 #, c-format
 msgid "<wpl> was not set\n"
 msgstr ""
 
-#: plugins/check_ping.c:392
+#: plugins/check_ping.c:401
 #, c-format
 msgid "<cpl> was not set\n"
 msgstr ""
 
-#: plugins/check_ping.c:396
+#: plugins/check_ping.c:405
 #, c-format
 msgid "<wrta> (%f) cannot be larger than <crta> (%f)\n"
 msgstr ""
 
-#: plugins/check_ping.c:400
+#: plugins/check_ping.c:409
 #, c-format
 msgid "<wpl> (%d) cannot be larger than <cpl> (%d)\n"
 msgstr ""
 
-#: plugins/check_ping.c:436
+#: plugins/check_ping.c:445
 #, c-format
 msgid "Cannot open stderr for %s\n"
 msgstr ""
 
-#: plugins/check_ping.c:485 plugins/check_ping.c:487
+#: plugins/check_ping.c:494 plugins/check_ping.c:496
 msgid "System call sent warnings to stderr "
 msgstr ""
 
-#: plugins/check_ping.c:514
+#: plugins/check_ping.c:523
 #, fuzzy, c-format
 msgid "CRITICAL - Network Unreachable (%s)"
 msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)"
 
-#: plugins/check_ping.c:516
+#: plugins/check_ping.c:525
 #, c-format
 msgid "CRITICAL - Host Unreachable (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:518
+#: plugins/check_ping.c:527
 #, fuzzy, c-format
 msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)"
 msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)"
 
-#: plugins/check_ping.c:520
+#: plugins/check_ping.c:529
 #, fuzzy, c-format
 msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)"
 msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)"
 
-#: plugins/check_ping.c:522
+#: plugins/check_ping.c:531
 #, fuzzy, c-format
 msgid "CRITICAL - Network Prohibited (%s)"
 msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)"
 
-#: plugins/check_ping.c:524
+#: plugins/check_ping.c:533
 #, fuzzy, c-format
 msgid "CRITICAL - Host Prohibited (%s)"
 msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)"
 
-#: plugins/check_ping.c:526
+#: plugins/check_ping.c:535
 #, fuzzy, c-format
 msgid "CRITICAL - Packet Filtered (%s)"
 msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)"
 
-#: plugins/check_ping.c:528
+#: plugins/check_ping.c:537
 #, c-format
 msgid "CRITICAL - Host not found (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:530
+#: plugins/check_ping.c:539
 #, c-format
 msgid "CRITICAL - Time to live exceeded (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:537
+#: plugins/check_ping.c:546
 msgid "Unable to realloc warn_text"
 msgstr ""
 
-#: plugins/check_ping.c:554
+#: plugins/check_ping.c:563
 #, c-format
 msgid "Use ping to check connection statistics for a remote host."
 msgstr ""
 
-#: plugins/check_ping.c:565
+#: plugins/check_ping.c:575
 msgid "host to ping"
 msgstr ""
 
-#: plugins/check_ping.c:571
+#: plugins/check_ping.c:581
 msgid "number of ICMP ECHO packets to send"
 msgstr ""
 
-#: plugins/check_ping.c:572
+#: plugins/check_ping.c:582
 #, c-format
 msgid "(Default: %d)\n"
 msgstr ""
 
-#: plugins/check_ping.c:574
+#: plugins/check_ping.c:584
 msgid "show HTML in the plugin output (obsoleted by urlize)"
 msgstr ""
 
-#: plugins/check_ping.c:578
+#: plugins/check_ping.c:589
 msgid "THRESHOLD is <rta>,<pl>% where <rta> is the round trip average travel"
 msgstr ""
 
-#: plugins/check_ping.c:579
+#: plugins/check_ping.c:590
 msgid "time (ms) which triggers a WARNING or CRITICAL state, and <pl> is the"
 msgstr ""
 
-#: plugins/check_ping.c:580
+#: plugins/check_ping.c:591
 msgid "percentage of packet loss to trigger an alarm state."
 msgstr ""
 
-#: plugins/check_ping.c:584
+#: plugins/check_ping.c:594
 #, fuzzy
 msgid ""
 "This plugin uses the ping command to probe the specified host for packet loss"
 msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host."
 
-#: plugins/check_ping.c:585
+#: plugins/check_ping.c:595
 msgid ""
 "(percentage) and round trip average (milliseconds). It can produce HTML "
 "output"
 msgstr ""
 
-#: plugins/check_ping.c:586
+#: plugins/check_ping.c:596
 msgid ""
 "linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in"
 msgstr ""
 
-#: plugins/check_ping.c:587
+#: plugins/check_ping.c:597
 msgid "the contrib area of the downloads section at http://www.nagios.org/"
 msgstr ""
 
-#: plugins/check_procs.c:155
+#: plugins/check_procs.c:162
 #, c-format
 msgid "CMD: %s\n"
 msgstr ""
 
-#: plugins/check_procs.c:261
+#: plugins/check_procs.c:282
 #, c-format
 msgid "Not parseable: %s"
 msgstr ""
 
-#: plugins/check_procs.c:270
+#: plugins/check_procs.c:292
 #, c-format
 msgid "System call sent warnings to stderr\n"
 msgstr ""
 
-#: plugins/check_procs.c:277
+#: plugins/check_procs.c:299
 #, c-format
 msgid "System call returned nonzero status\n"
 msgstr ""
 
-#: plugins/check_procs.c:282
+#: plugins/check_procs.c:305
 #, c-format
 msgid "Unable to read output\n"
 msgstr ""
 
-#: plugins/check_procs.c:299
+#: plugins/check_procs.c:322
 #, c-format
 msgid "%d warn out of "
 msgstr ""
 
-#: plugins/check_procs.c:304
+#: plugins/check_procs.c:327
 #, c-format
 msgid "%d crit, %d warn out of "
 msgstr ""
 
-#: plugins/check_procs.c:310
+#: plugins/check_procs.c:333
 #, c-format
 msgid " with %s"
 msgstr ""
 
-#: plugins/check_procs.c:385
+#: plugins/check_procs.c:413
 #, fuzzy
 msgid "Critical Process Count must be an integer!"
 msgstr "Critical threshold muss ein Integer sein"
 
-#: plugins/check_procs.c:397
+#: plugins/check_procs.c:425
 #, fuzzy
 msgid "Warning Process Count must be an integer!"
 msgstr "Warning threshold  Integer sein"
 
-#: plugins/check_procs.c:405
+#: plugins/check_procs.c:433
 #, fuzzy
 msgid "Parent Process ID must be an integer!"
 msgstr "Argument f�r check_dummy muss ein Integer sein"
 
-#: plugins/check_procs.c:411 plugins/check_procs.c:513
+#: plugins/check_procs.c:439 plugins/check_procs.c:553
 #, c-format
 msgid "%s%sSTATE = %s"
 msgstr ""
 
-#: plugins/check_procs.c:420
-#, fuzzy, c-format
-msgid "UID %s was not found"
+#: plugins/check_procs.c:448
+#, fuzzy
+msgid "UID was not found"
 msgstr "%s [%s nicht gefunden]"
 
-#: plugins/check_procs.c:426
-#, fuzzy, c-format
-msgid "User name %s was not found"
+#: plugins/check_procs.c:454
+#, fuzzy
+msgid "User name was not found"
 msgstr "%s [%s nicht gefunden]"
 
-#: plugins/check_procs.c:441
+#: plugins/check_procs.c:469
 #, c-format
 msgid "%s%scommand name '%s'"
 msgstr ""
 
-#: plugins/check_procs.c:460
+#: plugins/check_procs.c:497
 #, fuzzy
 msgid "RSS must be an integer!"
 msgstr "skip lines muss ein Integer sein"
 
-#: plugins/check_procs.c:467
+#: plugins/check_procs.c:504
 #, fuzzy
 msgid "VSZ must be an integer!"
 msgstr "skip lines muss ein Integer sein"
 
-#: plugins/check_procs.c:475
+#: plugins/check_procs.c:512
 msgid "PCPU must be a float!"
 msgstr ""
 
-#: plugins/check_procs.c:499
+#: plugins/check_procs.c:536
 msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!"
 msgstr ""
 
-#: plugins/check_procs.c:532
+#: plugins/check_procs.c:572
 #, c-format
 msgid "wmax (%d) cannot be greater than cmax (%d)\n"
 msgstr ""
 
-#: plugins/check_procs.c:536
+#: plugins/check_procs.c:576
 #, c-format
 msgid "wmin (%d) cannot be less than cmin (%d)\n"
 msgstr ""
 
-#: plugins/check_procs.c:673
+#: plugins/check_procs.c:713
 msgid ""
 "Checks all processes and generates WARNING or CRITICAL states if the "
 "specified"
 msgstr ""
 
-#: plugins/check_procs.c:674
+#: plugins/check_procs.c:714
 msgid ""
 "metric is outside the required threshold ranges. The metric defaults to "
 "number"
 msgstr ""
 
-#: plugins/check_procs.c:675
+#: plugins/check_procs.c:715
 msgid ""
 "of processes.  Search filters can be applied to limit the processes to check."
 msgstr ""
 
-#: plugins/check_procs.c:681
-msgid "Required Arguments:"
-msgstr ""
-
-#: plugins/check_procs.c:683
+#: plugins/check_procs.c:724
 msgid "Generate warning state if metric is outside this range"
 msgstr ""
 
-#: plugins/check_procs.c:685
+#: plugins/check_procs.c:726
 msgid "Generate critical state if metric is outside this range"
 msgstr ""
 
-#: plugins/check_procs.c:687
-msgid "Optional Arguments:"
-msgstr ""
-
-#: plugins/check_procs.c:689
+#: plugins/check_procs.c:728
 msgid "Check thresholds against metric. Valid types:"
 msgstr ""
 
-#: plugins/check_procs.c:690
+#: plugins/check_procs.c:729
 msgid "PROCS   - number of processes (default)"
 msgstr ""
 
-#: plugins/check_procs.c:691
+#: plugins/check_procs.c:730
 msgid "VSZ     - virtual memory size"
 msgstr ""
 
-#: plugins/check_procs.c:692
+#: plugins/check_procs.c:731
 msgid "RSS     - resident set memory size"
 msgstr ""
 
-#: plugins/check_procs.c:693
+#: plugins/check_procs.c:732
 msgid "CPU     - percentage cpu"
 msgstr ""
 
-#: plugins/check_procs.c:696
+#: plugins/check_procs.c:735
 msgid "ELAPSED - time elapsed in seconds"
 msgstr ""
 
-#: plugins/check_procs.c:701
+#: plugins/check_procs.c:740
 msgid "Extra information. Up to 3 verbosity levels"
 msgstr ""
 
-#: plugins/check_procs.c:705
+#: plugins/check_procs.c:745
 msgid "Only scan for processes that have, in the output of `ps`, one or"
 msgstr ""
 
-#: plugins/check_procs.c:706
+#: plugins/check_procs.c:746
 msgid "more of the status flags you specify (for example R, Z, S, RS,"
 msgstr ""
 
-#: plugins/check_procs.c:707
+#: plugins/check_procs.c:747
 msgid "RSZDT, plus others based on the output of your 'ps' command)."
 msgstr ""
 
-#: plugins/check_procs.c:709
+#: plugins/check_procs.c:749
 msgid "Only scan for children of the parent process ID indicated."
 msgstr ""
 
-#: plugins/check_procs.c:711
+#: plugins/check_procs.c:751
 msgid "Only scan for processes with vsz higher than indicated."
 msgstr ""
 
-#: plugins/check_procs.c:713
+#: plugins/check_procs.c:753
 msgid "Only scan for processes with rss higher than indicated."
 msgstr ""
 
-#: plugins/check_procs.c:715
+#: plugins/check_procs.c:755
 msgid "Only scan for processes with pcpu higher than indicated."
 msgstr ""
 
-#: plugins/check_procs.c:717
+#: plugins/check_procs.c:757
 msgid "Only scan for processes with user name or ID indicated."
 msgstr ""
 
-#: plugins/check_procs.c:719
+#: plugins/check_procs.c:759
 msgid "Only scan for processes with args that contain STRING."
 msgstr ""
 
-#: plugins/check_procs.c:721
+#: plugins/check_procs.c:761
+msgid "Only scan for processes with args that contain the regex STRING."
+msgstr ""
+
+#: plugins/check_procs.c:763
 msgid "Only scan for exact matches of COMMAND (without path)."
 msgstr ""
 
-#: plugins/check_procs.c:723
+#: plugins/check_procs.c:765
 #, c-format
 msgid ""
 "\n"
@@ -3625,7 +3732,7 @@
 "\n"
 msgstr ""
 
-#: plugins/check_procs.c:728
+#: plugins/check_procs.c:770
 #, c-format
 msgid ""
 "This plugin checks the number of currently running processes and\n"
@@ -3636,31 +3743,36 @@
 "\n"
 msgstr ""
 
-#: plugins/check_procs.c:737
+#: plugins/check_procs.c:785
 msgid "Warning if not two processes with command name portsentry."
 msgstr ""
 
-#: plugins/check_procs.c:738
+#: plugins/check_procs.c:786
 msgid "Critical if < 2 or > 1024 processes"
 msgstr ""
 
-#: plugins/check_procs.c:740
+#: plugins/check_procs.c:788
 msgid "Warning alert if > 10 processes with command arguments containing"
 msgstr ""
 
-#: plugins/check_procs.c:741
+#: plugins/check_procs.c:789
 msgid "'/usr/local/bin/perl' and owned by root"
 msgstr ""
 
-#: plugins/check_procs.c:743
+#: plugins/check_procs.c:791
 msgid "Alert if vsz of any processes over 50K or 100K"
 msgstr ""
 
-#: plugins/check_procs.c:745
+#: plugins/check_procs.c:793
 #, c-format
 msgid "Alert if cpu of any processes over 10%% or 20%%"
 msgstr ""
 
+#: plugins/check_procs.c:801
+#, c-format
+msgid "Usage: "
+msgstr ""
+
 #: plugins/check_radius.c:161
 msgid "Config file error"
 msgstr ""
@@ -3685,139 +3797,136 @@
 msgid "Auth OK"
 msgstr ""
 
-#: plugins/check_radius.c:278
+#: plugins/check_radius.c:284
 msgid "Number of retries must be a positive integer"
 msgstr ""
 
-#: plugins/check_radius.c:292
+#: plugins/check_radius.c:298
 msgid "User not specified"
 msgstr ""
 
-#: plugins/check_radius.c:294
+#: plugins/check_radius.c:300
 msgid "Password not specified"
 msgstr ""
 
-#: plugins/check_radius.c:296
+#: plugins/check_radius.c:302
 msgid "Configuration file not specified"
 msgstr ""
 
-#: plugins/check_radius.c:314
+#: plugins/check_radius.c:320
 msgid "Tests to see if a radius server is accepting connections."
 msgstr ""
 
-#: plugins/check_radius.c:325
+#: plugins/check_radius.c:332
 msgid "The user to authenticate"
 msgstr ""
 
-#: plugins/check_radius.c:327
+#: plugins/check_radius.c:334
 msgid "Password for autentication (SECURITY RISK)"
 msgstr ""
 
-#: plugins/check_radius.c:329
+#: plugins/check_radius.c:336
 msgid "NAS identifier"
 msgstr ""
 
-#: plugins/check_radius.c:331
+#: plugins/check_radius.c:338
 msgid "Configuration file"
 msgstr ""
 
-#: plugins/check_radius.c:333
+#: plugins/check_radius.c:340
 msgid "Response string to expect from the server"
 msgstr ""
 
-#: plugins/check_radius.c:335
+#: plugins/check_radius.c:342
 msgid "Number of times to retry a failed connection"
 msgstr ""
 
-#: plugins/check_radius.c:339
+#: plugins/check_radius.c:347
 #, fuzzy
 msgid ""
 "This plugin tests a radius server to see if it is accepting connections."
 msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host."
 
-#: plugins/check_radius.c:340
+#: plugins/check_radius.c:348
 msgid ""
 "The server to test must be specified in the invocation, as well as a user"
 msgstr ""
 
-#: plugins/check_radius.c:341
+#: plugins/check_radius.c:349
 msgid ""
 "name and password. A configuration file may also be present. The format of"
 msgstr ""
 
-#: plugins/check_radius.c:342
+#: plugins/check_radius.c:350
 msgid ""
 "the configuration file is described in the radiusclient library sources."
 msgstr ""
 
-#: plugins/check_radius.c:343
+#: plugins/check_radius.c:351
 msgid "The password option presents a substantial security issue because the"
 msgstr ""
 
-#: plugins/check_radius.c:344
-msgid "password can be determined by careful watching of the command line in"
-msgstr ""
-
-#: plugins/check_radius.c:345
-msgid "a process listing.  This risk is exacerbated because nagios will"
+#: plugins/check_radius.c:352
+msgid ""
+"password can possibly be determined by careful watching of the command line"
 msgstr ""
 
-#: plugins/check_radius.c:346
-msgid "run the plugin at regular prdictable intervals.  Please be sure that"
+#: plugins/check_radius.c:353
+msgid "in a process listing. This risk is exacerbated because nagios will"
 msgstr ""
 
-#: plugins/check_radius.c:347
-msgid "the password used does not allow access to sensitive system resources,"
+#: plugins/check_radius.c:354
+msgid "run the plugin at regular predictable intervals. Please be sure that"
 msgstr ""
 
-#: plugins/check_radius.c:348
-msgid "otherwise compormise could occur."
+#: plugins/check_radius.c:355
+msgid "the password used does not allow access to sensitive system resources."
 msgstr ""
 
-#: plugins/check_real.c:96
+#: plugins/check_real.c:95
 #, c-format
 msgid "Unable to connect to %s on port %d\n"
 msgstr ""
 
-#: plugins/check_real.c:118
+#: plugins/check_real.c:117
 #, c-format
 msgid "No data received from %s\n"
 msgstr ""
 
-#: plugins/check_real.c:123 plugins/check_real.c:196
+#: plugins/check_real.c:122 plugins/check_real.c:195
 #, fuzzy
 msgid "Invalid REAL response received from host"
 msgstr "Ung�ltige HTTP Antwort von Host empfangen\n"
 
-#: plugins/check_real.c:125 plugins/check_real.c:198
+#: plugins/check_real.c:124 plugins/check_real.c:197
 #, c-format
 msgid "Invalid REAL response received from host on port %d\n"
 msgstr ""
 
-#: plugins/check_real.c:189 plugins/check_tcp.c:294
+#: plugins/check_real.c:188 plugins/check_tcp.c:295
 #, c-format
 msgid "No data received from host\n"
 msgstr ""
 
-#: plugins/check_real.c:252
+#: plugins/check_real.c:251
 #, c-format
 msgid "REAL %s - %d second response time\n"
 msgstr ""
 
-#: plugins/check_real.c:341 plugins/check_smtp.c:581 plugins/check_ups.c:535
+#: plugins/check_real.c:340 plugins/check_smtp.c:582 plugins/check_ups.c:536
 msgid "Warning time must be a positive integer"
 msgstr "Warnung time muss ein positiver Integer sein"
 
-#: plugins/check_real.c:350 plugins/check_smtp.c:572 plugins/check_ups.c:526
+#: plugins/check_real.c:349 plugins/check_smtp.c:573 plugins/check_ups.c:527
 msgid "Critical time must be a positive integer"
 msgstr "Critical time muss ein positiver Integer sein"
 
-#: plugins/check_real.c:386
+#: plugins/check_real.c:385
 #, fuzzy
 msgid "You must provide a server to check"
 msgstr "%s: Hostname muss angegeben werden\n"
 
-#: plugins/check_real.c:418
+#: plugins/check_real.c:417
 #, fuzzy
 msgid "This plugin tests the REAL service on the specified host."
 msgstr ""
@@ -3833,233 +3942,238 @@
 msgid "String to expect in first line of server response (default: %s)\n"
 msgstr ""
 
-#: plugins/check_real.c:440
+#: plugins/check_real.c:441
 #, fuzzy
 msgid "This plugin will attempt to open an RTSP connection with the host."
 msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host."
 
-#: plugins/check_real.c:441 plugins/check_smtp.c:812
+#: plugins/check_real.c:442 plugins/check_smtp.c:814
 msgid "Successul connects return STATE_OK, refusals and timeouts return"
 msgstr ""
 
-#: plugins/check_real.c:442
+#: plugins/check_real.c:443
 msgid ""
 "STATE_CRITICAL, other errors return STATE_UNKNOWN.  Successful connects,"
 msgstr ""
 
-#: plugins/check_real.c:443
+#: plugins/check_real.c:444
 msgid ""
 "but incorrect reponse messages from the host result in STATE_WARNING return"
 msgstr ""
 
-#: plugins/check_real.c:444
+#: plugins/check_real.c:445
 msgid "values."
 msgstr ""
 
-#: plugins/check_smtp.c:151 plugins/check_swap.c:268 plugins/check_swap.c:274
+#: plugins/check_smtp.c:150 plugins/check_swap.c:269 plugins/check_swap.c:275
 #, c-format
 msgid "malloc() failed!\n"
 msgstr ""
 
-#: plugins/check_smtp.c:155
+#: plugins/check_smtp.c:154
 #, c-format
 msgid "gethostname() failed!\n"
 msgstr ""
 
-#: plugins/check_smtp.c:190 plugins/check_smtp.c:214
+#: plugins/check_smtp.c:189 plugins/check_smtp.c:213
 #, c-format
 msgid "recv() failed\n"
 msgstr ""
 
-#: plugins/check_smtp.c:201
-#, c-format
-msgid "Invalid SMTP response received from host\n"
-msgstr ""
+#: plugins/check_smtp.c:200
+#, fuzzy, c-format
+msgid "Invalid SMTP response received from host: %s\n"
+msgstr "Ung�ltige HTTP Antwort von Host empfangen\n"
 
-#: plugins/check_smtp.c:203
-#, c-format
-msgid "Invalid SMTP response received from host on port %d\n"
-msgstr ""
+#: plugins/check_smtp.c:202
+#, fuzzy, c-format
+msgid "Invalid SMTP response received from host on port %d: %s\n"
+msgstr "Ung�ltige HTTP Antwort von Host erhalten auf Port %d\n"
 
-#: plugins/check_smtp.c:224
+#: plugins/check_smtp.c:223
 #, c-format
 msgid "WARNING - TLS not supported by server\n"
 msgstr ""
 
-#: plugins/check_smtp.c:236
+#: plugins/check_smtp.c:235
 #, c-format
 msgid "Server does not support STARTTLS\n"
 msgstr ""
 
-#: plugins/check_smtp.c:242
+#: plugins/check_smtp.c:241
 #, c-format
 msgid "CRITICAL - Cannot create SSL context.\n"
 msgstr ""
 
-#: plugins/check_smtp.c:262
+#: plugins/check_smtp.c:261
 msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS."
 msgstr ""
 
-#: plugins/check_smtp.c:267
+#: plugins/check_smtp.c:266
 #, c-format
 msgid "sent %s"
 msgstr ""
 
-#: plugins/check_smtp.c:269
+#: plugins/check_smtp.c:268
 msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS."
 msgstr ""
 
-#: plugins/check_smtp.c:281
+#: plugins/check_smtp.c:280
 #, fuzzy
 msgid "CRITICAL - Cannot retrieve server certificate."
 msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n"
 
-#: plugins/check_smtp.c:317 plugins/check_snmp.c:590
+#: plugins/check_smtp.c:316 plugins/check_snmp.c:590
 #, c-format
 msgid "Could Not Compile Regular Expression"
 msgstr ""
 
-#: plugins/check_smtp.c:326
+#: plugins/check_smtp.c:325
 #, c-format
 msgid "SMTP %s - Invalid response '%s' to command '%s'\n"
 msgstr ""
 
-#: plugins/check_smtp.c:330 plugins/check_snmp.c:335
+#: plugins/check_smtp.c:329 plugins/check_snmp.c:335
 #, c-format
 msgid "Execute Error: %s\n"
 msgstr ""
 
-#: plugins/check_smtp.c:344
+#: plugins/check_smtp.c:343
+#, c-format
 msgid "no authuser specified, "
 msgstr ""
 
-#: plugins/check_smtp.c:349
+#: plugins/check_smtp.c:348
+#, c-format
 msgid "no authpass specified, "
 msgstr ""
 
-#: plugins/check_smtp.c:356 plugins/check_smtp.c:377 plugins/check_smtp.c:397
-#: plugins/check_smtp.c:673
+#: plugins/check_smtp.c:355 plugins/check_smtp.c:377 plugins/check_smtp.c:398
+#: plugins/check_smtp.c:674
 #, c-format
 msgid "sent %s\n"
 msgstr ""
 
-#: plugins/check_smtp.c:359
-#, fuzzy
+#: plugins/check_smtp.c:358
+#, fuzzy, c-format
 msgid "recv() failed after AUTH LOGIN, "
 msgstr "Ung�ltige HTTP Antwort von Host empfangen\n"
 
-#: plugins/check_smtp.c:364 plugins/check_smtp.c:385 plugins/check_smtp.c:405
-#: plugins/check_smtp.c:684
+#: plugins/check_smtp.c:363 plugins/check_smtp.c:385 plugins/check_smtp.c:406
+#: plugins/check_smtp.c:685
 #, fuzzy, c-format
 msgid "received %s\n"
 msgstr "Keine Daten empfangen %s\n"
 
-#: plugins/check_smtp.c:368
-#, fuzzy
+#: plugins/check_smtp.c:367
+#, fuzzy, c-format
 msgid "invalid response received after AUTH LOGIN, "
 msgstr "Ung�ltige HTTP Antwort von Host empfangen\n"
 
 #: plugins/check_smtp.c:381
+#, c-format
 msgid "recv() failed after sending authuser, "
 msgstr ""
 
 #: plugins/check_smtp.c:389
-#, fuzzy
+#, fuzzy, c-format
 msgid "invalid response received after authuser, "
 msgstr "Ung�ltige HTTP Antwort von Host empfangen\n"
 
-#: plugins/check_smtp.c:401
+#: plugins/check_smtp.c:402
+#, c-format
 msgid "recv() failed after sending authpass, "
 msgstr ""
 
-#: plugins/check_smtp.c:409
-#, fuzzy
+#: plugins/check_smtp.c:410
+#, fuzzy, c-format
 msgid "invalid response received after authpass, "
 msgstr "Ung�ltige HTTP Antwort von Host empfangen\n"
 
-#: plugins/check_smtp.c:416
+#: plugins/check_smtp.c:417
+#, c-format
 msgid "only authtype LOGIN is supported, "
 msgstr ""
 
-#: plugins/check_smtp.c:440
+#: plugins/check_smtp.c:441
 #, fuzzy, c-format
 msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n"
 msgstr " - %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n"
 
-#: plugins/check_smtp.c:548 plugins/check_smtp.c:560
+#: plugins/check_smtp.c:549 plugins/check_smtp.c:561
 #, c-format
 msgid "Could not realloc() units [%d]\n"
 msgstr ""
 
-#: plugins/check_smtp.c:608
+#: plugins/check_smtp.c:609
 msgid "SSL support not available - install OpenSSL and recompile"
 msgstr ""
 
-#: plugins/check_smtp.c:679
+#: plugins/check_smtp.c:680
 #, fuzzy, c-format
 msgid "recv() failed after QUIT."
 msgstr "Ung�ltige HTTP Antwort von Host empfangen\n"
 
-#: plugins/check_smtp.c:681
+#: plugins/check_smtp.c:682
 #, c-format
 msgid "Connection reset by peer."
 msgstr ""
 
-#: plugins/check_smtp.c:769
+#: plugins/check_smtp.c:770
 #, fuzzy
 msgid "This plugin will attempt to open an SMTP connection with the host."
 msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host."
 
-#: plugins/check_smtp.c:782
+#: plugins/check_smtp.c:784
 #, c-format
 msgid "    String to expect in first line of server response (default: '%s')\n"
 msgstr ""
 
-#: plugins/check_smtp.c:784
+#: plugins/check_smtp.c:786
 msgid "Suppress SMTP command"
 msgstr ""
 
-#: plugins/check_smtp.c:786
+#: plugins/check_smtp.c:788
 msgid "SMTP command (may be used repeatedly)"
 msgstr ""
 
-#: plugins/check_smtp.c:788
+#: plugins/check_smtp.c:790
 msgid "Expected response to command (may be used repeatedly)"
 msgstr ""
 
-#: plugins/check_smtp.c:790
+#: plugins/check_smtp.c:792
 msgid "FROM-address to include in MAIL command, required by Exchange 2000"
 msgstr ""
 
-#: plugins/check_smtp.c:793 plugins/check_tcp.c:636
+#: plugins/check_smtp.c:795 plugins/check_tcp.c:638
 msgid "Minimum number of days a certificate has to be valid."
 msgstr ""
 
-#: plugins/check_smtp.c:795
+#: plugins/check_smtp.c:797
 msgid "Use STARTTLS for the connection."
 msgstr ""
 
-#: plugins/check_smtp.c:799
+#: plugins/check_smtp.c:801
 msgid "SMTP AUTH type to check (default none, only LOGIN supported)"
 msgstr ""
 
-#: plugins/check_smtp.c:801
+#: plugins/check_smtp.c:803
 msgid "SMTP AUTH username"
 msgstr ""
 
-#: plugins/check_smtp.c:803
+#: plugins/check_smtp.c:805
 msgid "SMTP AUTH password"
 msgstr ""
 
-#: plugins/check_smtp.c:813
+#: plugins/check_smtp.c:815
 msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN.  Successful"
 msgstr ""
 
-#: plugins/check_smtp.c:814
+#: plugins/check_smtp.c:816
 msgid "connects, but incorrect reponse messages from the host result in"
 msgstr ""
 
-#: plugins/check_smtp.c:815
+#: plugins/check_smtp.c:817
 msgid "STATE_WARNING return values."
 msgstr ""
 
@@ -4135,201 +4249,201 @@
 msgid "Check status of remote machines and obtain sustem information via SNMP"
 msgstr ""
 
-#: plugins/check_snmp.c:943
+#: plugins/check_snmp.c:944
 msgid "Use SNMP GETNEXT instead of SNMP GET"
 msgstr ""
 
-#: plugins/check_snmp.c:945
+#: plugins/check_snmp.c:946
 msgid "SNMP protocol version"
 msgstr ""
 
-#: plugins/check_snmp.c:947
+#: plugins/check_snmp.c:948
 msgid "SNMPv3 securityLevel"
 msgstr ""
 
-#: plugins/check_snmp.c:949
+#: plugins/check_snmp.c:950
 msgid "SNMPv3 auth proto"
 msgstr ""
 
-#: plugins/check_snmp.c:953
+#: plugins/check_snmp.c:954
 msgid "Optional community string for SNMP communication"
 msgstr ""
 
-#: plugins/check_snmp.c:954
+#: plugins/check_snmp.c:955
 msgid "default is"
 msgstr ""
 
-#: plugins/check_snmp.c:956
+#: plugins/check_snmp.c:957
 msgid "SNMPv3 username"
 msgstr ""
 
-#: plugins/check_snmp.c:958
+#: plugins/check_snmp.c:959
 msgid "SNMPv3 authentication password"
 msgstr ""
 
-#: plugins/check_snmp.c:960
+#: plugins/check_snmp.c:961
 msgid "SNMPv3 privacy password"
 msgstr ""
 
-#: plugins/check_snmp.c:964
+#: plugins/check_snmp.c:965
 msgid "Object identifier(s) or SNMP variables whose value you wish to query"
 msgstr ""
 
-#: plugins/check_snmp.c:966
+#: plugins/check_snmp.c:967
 msgid ""
 "List of MIBS to be loaded (default = none if using numeric oids or 'ALL'"
 msgstr ""
 
-#: plugins/check_snmp.c:967
+#: plugins/check_snmp.c:968
 msgid "for symbolic oids.)"
 msgstr ""
 
-#: plugins/check_snmp.c:969
+#: plugins/check_snmp.c:970
 #, c-format
 msgid "    Delimiter to use when parsing returned data. Default is \"%s\""
 msgstr ""
 
-#: plugins/check_snmp.c:970
+#: plugins/check_snmp.c:971
 msgid "Any data on the right hand side of the delimiter is considered"
 msgstr ""
 
-#: plugins/check_snmp.c:971
+#: plugins/check_snmp.c:972
 msgid "to be the data that should be used in the evaluation."
 msgstr ""
 
-#: plugins/check_snmp.c:975
+#: plugins/check_snmp.c:976
 msgid "Range(s) which will not result in a WARNING status"
 msgstr ""
 
-#: plugins/check_snmp.c:977
+#: plugins/check_snmp.c:978
 msgid "Range(s) which will not result in a CRITICAL status"
 msgstr ""
 
-#: plugins/check_snmp.c:981
+#: plugins/check_snmp.c:982
 msgid "Return OK state (for that OID) if STRING is an exact match"
 msgstr ""
 
-#: plugins/check_snmp.c:983
+#: plugins/check_snmp.c:984
 msgid ""
 "Return OK state (for that OID) if extended regular expression REGEX matches"
 msgstr ""
 
-#: plugins/check_snmp.c:985
+#: plugins/check_snmp.c:986
 msgid ""
 "Return OK state (for that OID) if case-insensitive extended REGEX matches"
 msgstr ""
 
-#: plugins/check_snmp.c:987
+#: plugins/check_snmp.c:988
 msgid "Prefix label for output from plugin (default -s 'SNMP')"
 msgstr ""
 
-#: plugins/check_snmp.c:991
+#: plugins/check_snmp.c:992
 msgid "Units label(s) for output data (e.g., 'sec.')."
 msgstr ""
 
-#: plugins/check_snmp.c:993
+#: plugins/check_snmp.c:994
 msgid "Separates output on multiple OID requests"
 msgstr ""
 
-#: plugins/check_snmp.c:999
+#: plugins/check_snmp.c:1001
 msgid ""
 "This plugin uses the 'snmpget' command included with the NET-SNMP package."
 msgstr ""
 
-#: plugins/check_snmp.c:1000
+#: plugins/check_snmp.c:1002
 msgid ""
 "if you don't have the package installed, you will need to download it from"
 msgstr ""
 
-#: plugins/check_snmp.c:1001
+#: plugins/check_snmp.c:1003
 msgid "http://net-snmp.sourceforge.net before you can use this plugin."
 msgstr ""
 
-#: plugins/check_snmp.c:1003
+#: plugins/check_snmp.c:1007
 msgid ""
 "- Multiple OIDs may be indicated by a comma- or space-delimited list (lists "
 "with"
 msgstr ""
 
-#: plugins/check_snmp.c:1004
-msgid " internal spaces must be quoted) [max 8 OIDs]"
+#: plugins/check_snmp.c:1008
+msgid "internal spaces must be quoted) [max 8 OIDs]"
 msgstr ""
 
-#: plugins/check_snmp.c:1006
+#: plugins/check_snmp.c:1010
 msgid "- Ranges are inclusive and are indicated with colons. When specified as"
 msgstr ""
 
-#: plugins/check_snmp.c:1007
+#: plugins/check_snmp.c:1011
 msgid ""
-" 'min:max' a STATE_OK will be returned if the result is within the indicated"
+"'min:max' a STATE_OK will be returned if the result is within the indicated"
 msgstr ""
 
-#: plugins/check_snmp.c:1008
-msgid " range or is equal to the upper or lower bound. A non-OK state will be"
+#: plugins/check_snmp.c:1012
+msgid "range or is equal to the upper or lower bound. A non-OK state will be"
 msgstr ""
 
-#: plugins/check_snmp.c:1009
-msgid " returned if the result is outside the specified range."
+#: plugins/check_snmp.c:1013
+msgid "returned if the result is outside the specified range."
 msgstr ""
 
-#: plugins/check_snmp.c:1011
+#: plugins/check_snmp.c:1015
 msgid ""
 "- If specified in the order 'max:min' a non-OK state will be returned if the"
 msgstr ""
 
-#: plugins/check_snmp.c:1012
-msgid " result is within the (inclusive) range."
+#: plugins/check_snmp.c:1016
+msgid "result is within the (inclusive) range."
 msgstr ""
 
-#: plugins/check_snmp.c:1014
+#: plugins/check_snmp.c:1018
 msgid ""
 "- Upper or lower bounds may be omitted to skip checking the respective limit."
 msgstr ""
 
-#: plugins/check_snmp.c:1015
+#: plugins/check_snmp.c:1019
 msgid "- Bare integers are interpreted as upper limits."
 msgstr ""
 
-#: plugins/check_snmp.c:1016
+#: plugins/check_snmp.c:1020
 msgid ""
 "- When checking multiple OIDs, separate ranges by commas like '-w "
 "1:10,1:,:20'"
 msgstr ""
 
-#: plugins/check_snmp.c:1017
+#: plugins/check_snmp.c:1021
 msgid "- Note that only one string and one regex may be checked at present"
 msgstr ""
 
-#: plugins/check_snmp.c:1018
+#: plugins/check_snmp.c:1022
 msgid ""
 "- All evaluation methods other than PR, STR, and SUBSTR expect that the value"
 msgstr ""
 
-#: plugins/check_snmp.c:1019
-msgid " returned from the SNMP query is an unsigned integer."
+#: plugins/check_snmp.c:1023
+msgid "returned from the SNMP query is an unsigned integer."
 msgstr ""
 
-#: plugins/check_ssh.c:170
+#: plugins/check_ssh.c:169
 #, fuzzy
 msgid "Port number must be a positive integer"
 msgstr "Port muss ein positiver Integer sein"
 
-#: plugins/check_ssh.c:235
+#: plugins/check_ssh.c:234
 #, c-format
 msgid "Server answer: %s"
 msgstr ""
 
-#: plugins/check_ssh.c:254
+#: plugins/check_ssh.c:253
 #, c-format
 msgid "SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n"
 msgstr ""
 
-#: plugins/check_ssh.c:261
+#: plugins/check_ssh.c:260
 #, c-format
 msgid "SSH OK - %s (protocol %s)\n"
 msgstr ""
 
-#: plugins/check_ssh.c:281
+#: plugins/check_ssh.c:280
 msgid "Try to connect to an SSH server at specified server and port"
 msgstr ""
 
@@ -4338,197 +4452,197 @@
 "Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1)"
 msgstr ""
 
-#: plugins/check_swap.c:172
+#: plugins/check_swap.c:173
 #, c-format
 msgid "Command: %s\n"
 msgstr ""
 
-#: plugins/check_swap.c:174
+#: plugins/check_swap.c:175
 #, c-format
 msgid "Format: %s\n"
 msgstr ""
 
-#: plugins/check_swap.c:210
+#: plugins/check_swap.c:211
 #, c-format
 msgid "total=%.0f, used=%.0f, free=%.0f\n"
 msgstr ""
 
-#: plugins/check_swap.c:224
+#: plugins/check_swap.c:225
 #, c-format
 msgid "total=%.0f, free=%.0f\n"
 msgstr ""
 
-#: plugins/check_swap.c:256
+#: plugins/check_swap.c:257
 msgid "Error getting swap devices\n"
 msgstr ""
 
-#: plugins/check_swap.c:259
+#: plugins/check_swap.c:260
 msgid "SWAP OK: No swap devices defined\n"
 msgstr ""
 
-#: plugins/check_swap.c:280 plugins/check_swap.c:322
+#: plugins/check_swap.c:281 plugins/check_swap.c:323
 msgid "swapctl failed: "
 msgstr ""
 
-#: plugins/check_swap.c:281 plugins/check_swap.c:323
+#: plugins/check_swap.c:282 plugins/check_swap.c:324
 msgid "Error in swapctl call\n"
 msgstr ""
 
-#: plugins/check_swap.c:360
+#: plugins/check_swap.c:361
 #, c-format
 msgid "SWAP %s - %d%% free (%d MB out of %d MB) %s|"
 msgstr ""
 
-#: plugins/check_swap.c:438
+#: plugins/check_swap.c:439
 msgid "Warning threshold must be integer or percentage!"
 msgstr "Warning threshold muss ein Integer oder ein Prozentwert sein"
 
-#: plugins/check_swap.c:456
+#: plugins/check_swap.c:457
 msgid "Critical threshold must be integer or percentage!"
 msgstr "Critical threshold muss ein Integer oder ein Prozentwert sein!"
 
-#: plugins/check_swap.c:510
+#: plugins/check_swap.c:511
 #, fuzzy
 msgid "Warning percentage should be more than critical percentage"
 msgstr "Warning threshold muss ein Integer oder ein Prozentwert sein"
 
-#: plugins/check_swap.c:514
+#: plugins/check_swap.c:515
 msgid "Warning free space should be more than critical free space"
 msgstr ""
 
-#: plugins/check_swap.c:528
+#: plugins/check_swap.c:529
 msgid "Check swap space on local machine."
 msgstr ""
 
-#: plugins/check_swap.c:537
+#: plugins/check_swap.c:539
 msgid ""
 "Exit with WARNING status if less than INTEGER bytes of swap space are free"
 msgstr ""
 
-#: plugins/check_swap.c:539
+#: plugins/check_swap.c:541
 msgid "Exit with WARNING status if less than PERCENT of swap space is free"
 msgstr ""
 
-#: plugins/check_swap.c:541
+#: plugins/check_swap.c:543
 msgid ""
 "Exit with CRITICAL status if less than INTEGER bytes of swap space are free"
 msgstr ""
 
-#: plugins/check_swap.c:543
+#: plugins/check_swap.c:545
 msgid "Exit with CRITCAL status if less than PERCENT of swap space is free"
 msgstr ""
 
-#: plugins/check_swap.c:545
+#: plugins/check_swap.c:547
 msgid "Conduct comparisons for all swap partitions, one by one"
 msgstr ""
 
-#: plugins/check_swap.c:549
-msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.\n"
+#: plugins/check_swap.c:552
+msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s."
 msgstr ""
 
-#: plugins/check_tcp.c:202
+#: plugins/check_tcp.c:200
 msgid "CRITICAL - Generic check_tcp called with unknown service\n"
 msgstr ""
 
-#: plugins/check_tcp.c:223
+#: plugins/check_tcp.c:224
 msgid "With UDP checks, a send/expect string must be specified."
 msgstr ""
 
-#: plugins/check_tcp.c:242
+#: plugins/check_tcp.c:243
 #, c-format
 msgid "CRITICAL - Cannot retrieve server certificate.\n"
 msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n"
 
-#: plugins/check_tcp.c:422
+#: plugins/check_tcp.c:423
 msgid "No arguments found"
 msgstr ""
 
-#: plugins/check_tcp.c:523
+#: plugins/check_tcp.c:524
 msgid "Maxbytes must be a positive integer"
 msgstr "Maxbytes muss ein positiver Integer sein"
 
-#: plugins/check_tcp.c:541
+#: plugins/check_tcp.c:542
 msgid "Refuse must be one of ok, warn, crit"
 msgstr ""
 
-#: plugins/check_tcp.c:551
+#: plugins/check_tcp.c:552
 msgid "Mismatch must be one of ok, warn, crit"
 msgstr ""
 
-#: plugins/check_tcp.c:557
+#: plugins/check_tcp.c:558
 msgid "Delay must be a positive integer"
 msgstr "Delay muss ein positiver Integer sein"
 
-#: plugins/check_tcp.c:585
+#: plugins/check_tcp.c:586
 #, fuzzy
 msgid "You must provide a server address"
 msgstr "%s: Hostname muss angegeben werden\n"
 
-#: plugins/check_tcp.c:587
+#: plugins/check_tcp.c:588
 #, fuzzy
 msgid "Invalid hostname, address or socket"
 msgstr "Ung�ltige(r) Hostname/Adresse"
 
-#: plugins/check_tcp.c:601
+#: plugins/check_tcp.c:602
 #, fuzzy, c-format
 msgid ""
 "This plugin tests %s connections with the specified host (or unix socket).\n"
 "\n"
 msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host."
 
-#: plugins/check_tcp.c:613
+#: plugins/check_tcp.c:615
 msgid ""
 "Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or "
 "quit option"
 msgstr ""
 
-#: plugins/check_tcp.c:614
+#: plugins/check_tcp.c:616
 msgid "Default: nothing added to send, \\r\\n added to end of quit"
 msgstr ""
 
-#: plugins/check_tcp.c:616
+#: plugins/check_tcp.c:618
 msgid "String to send to the server"
 msgstr ""
 
-#: plugins/check_tcp.c:618
+#: plugins/check_tcp.c:620
 msgid "String to expect in server response"
 msgstr ""
 
-#: plugins/check_tcp.c:618
+#: plugins/check_tcp.c:620
 msgid "(may be repeated)"
 msgstr ""
 
-#: plugins/check_tcp.c:620
+#: plugins/check_tcp.c:622
 msgid "All expect strings need to occur in server response. Default is any"
 msgstr ""
 
-#: plugins/check_tcp.c:622
+#: plugins/check_tcp.c:624
 msgid "String to send server to initiate a clean close of the connection"
 msgstr ""
 
-#: plugins/check_tcp.c:624
+#: plugins/check_tcp.c:626
 msgid "Accept tcp refusals with states ok, warn, crit (default: crit)"
 msgstr ""
 
-#: plugins/check_tcp.c:626
+#: plugins/check_tcp.c:628
 msgid ""
 "Accept expected string mismatches with states ok, warn, crit (default: warn)"
 msgstr ""
 
-#: plugins/check_tcp.c:628
+#: plugins/check_tcp.c:630
 #, fuzzy
 msgid "Hide output from TCP socket"
 msgstr "Konnte TCP socket nicht �ffnen\n"
 
-#: plugins/check_tcp.c:630
+#: plugins/check_tcp.c:632
 msgid "Close connection once more than this number of bytes are received"
 msgstr ""
 
-#: plugins/check_tcp.c:632
+#: plugins/check_tcp.c:634
 msgid "Seconds to wait between sending string and polling for response"
 msgstr ""
 
-#: plugins/check_tcp.c:638
+#: plugins/check_tcp.c:640
 msgid "Use SSL for the connection."
 msgstr ""
 
@@ -4572,136 +4686,137 @@
 "Testet den DNS Dienst auf dem angegebenen Host mit dig\n"
 "\n"
 
-#: plugins/check_time.c:354
+#: plugins/check_time.c:355
 msgid "Use UDP to connect, not TCP"
 msgstr ""
 
-#: plugins/check_time.c:356
+#: plugins/check_time.c:357
 msgid "Time difference (sec.) necessary to result in a warning status"
 msgstr ""
 
-#: plugins/check_time.c:358
+#: plugins/check_time.c:359
 msgid "Time difference (sec.) necessary to result in a critical status"
 msgstr ""
 
-#: plugins/check_time.c:360
+#: plugins/check_time.c:361
 msgid "Response time (sec.) necessary to result in warning status"
 msgstr ""
 
-#: plugins/check_time.c:362
+#: plugins/check_time.c:363
 msgid "Response time (sec.) necessary to result in critical status"
 msgstr ""
 
-#: plugins/check_ups.c:147
+#: plugins/check_ups.c:148
+#, c-format
 msgid "On Battery, Low Battery"
 msgstr ""
 
-#: plugins/check_ups.c:152
+#: plugins/check_ups.c:153
 msgid "Online"
 msgstr ""
 
-#: plugins/check_ups.c:155
+#: plugins/check_ups.c:156
 msgid "On Battery"
 msgstr ""
 
-#: plugins/check_ups.c:159
+#: plugins/check_ups.c:160
 msgid ", Low Battery"
 msgstr ""
 
-#: plugins/check_ups.c:163
+#: plugins/check_ups.c:164
 msgid ", Calibrating"
 msgstr ""
 
-#: plugins/check_ups.c:166
+#: plugins/check_ups.c:167
 msgid ", Replace Battery"
 msgstr ""
 
-#: plugins/check_ups.c:170
+#: plugins/check_ups.c:171
 msgid ", On Bypass"
 msgstr ""
 
-#: plugins/check_ups.c:173
+#: plugins/check_ups.c:174
 msgid ", Overload"
 msgstr ""
 
-#: plugins/check_ups.c:176
+#: plugins/check_ups.c:177
 msgid ", Trimming"
 msgstr ""
 
-#: plugins/check_ups.c:179
+#: plugins/check_ups.c:180
 msgid ", Boosting"
 msgstr ""
 
-#: plugins/check_ups.c:182
+#: plugins/check_ups.c:183
 msgid ", Charging"
 msgstr ""
 
-#: plugins/check_ups.c:185
+#: plugins/check_ups.c:186
 msgid ", Discharging"
 msgstr ""
 
-#: plugins/check_ups.c:188
+#: plugins/check_ups.c:189
 msgid ", Unknown"
 msgstr ""
 
-#: plugins/check_ups.c:327
-#, fuzzy
+#: plugins/check_ups.c:328
+#, fuzzy, c-format
 msgid "UPS does not support any available options\n"
 msgstr "IPv6 Unterst�tzung nicht vorhanden"
 
-#: plugins/check_ups.c:351 plugins/check_ups.c:411
+#: plugins/check_ups.c:352 plugins/check_ups.c:412
 #, fuzzy
 msgid "Invalid response received from host"
 msgstr "Ung�ltige HTTP Antwort von Host empfangen\n"
 
-#: plugins/check_ups.c:419
+#: plugins/check_ups.c:420
 #, c-format
 msgid "CRITICAL - no such ups '%s' on that host\n"
 msgstr ""
 
-#: plugins/check_ups.c:429
+#: plugins/check_ups.c:430
 #, fuzzy
 msgid "CRITICAL - UPS data is stale"
 msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden"
 
-#: plugins/check_ups.c:434
+#: plugins/check_ups.c:435
 #, fuzzy, c-format
 msgid "Unknown error: %s\n"
 msgstr "Papierfehler"
 
-#: plugins/check_ups.c:441
+#: plugins/check_ups.c:442
 msgid "Error: unable to parse variable"
 msgstr ""
 
-#: plugins/check_ups.c:548
+#: plugins/check_ups.c:549
 msgid "Unrecognized UPS variable"
 msgstr ""
 
-#: plugins/check_ups.c:586
+#: plugins/check_ups.c:587
 msgid "Error : no ups indicated"
 msgstr ""
 
-#: plugins/check_ups.c:606
+#: plugins/check_ups.c:607
 #, fuzzy
 msgid ""
-"This plugin tests the UPS service on the specified host.Network UPS Tools "
+"This plugin tests the UPS service on the specified host. Network UPS Tools"
 msgstr ""
 "Testet den DNS Dienst auf dem angegebenen Host mit dig\n"
 "\n"
 
-#: plugins/check_ups.c:607
+#: plugins/check_ups.c:608
 msgid "from www.networkupstools.org must be running for thisplugin to work."
 msgstr ""
 
-#: plugins/check_ups.c:618
+#: plugins/check_ups.c:620
 msgid "Name of UPS"
 msgstr ""
 
-#: plugins/check_ups.c:620
+#: plugins/check_ups.c:622
 msgid "Output of temperatures in Celsius"
 msgstr ""
 
-#: plugins/check_ups.c:622
+#: plugins/check_ups.c:624
 msgid "Valid values for STRING are"
 msgstr ""
 
@@ -4730,59 +4845,59 @@
 msgid "state."
 msgstr ""
 
-#: plugins/check_ups.c:641
+#: plugins/check_ups.c:643
 msgid ""
-"You may also specify a variable to check [such as temperature, utility "
+"You may also specify a variable to check (such as temperature, utility "
 "voltage,"
 msgstr ""
 
-#: plugins/check_ups.c:642
+#: plugins/check_ups.c:644
 msgid ""
-"battery load, etc.]  as well as warning and critical thresholds for the "
-"value of"
+"battery load, etc.)  as well as warning and critical thresholds for the value"
 msgstr ""
 
-#: plugins/check_ups.c:643
+#: plugins/check_ups.c:645
 msgid ""
-"that variable.  If the remote host has multiple UPS that are being monitored "
-"you"
+"of that variable.  If the remote host has multiple UPS that are being "
+"monitored"
 msgstr ""
 
-#: plugins/check_ups.c:644
-msgid "will have to use the [ups] option to specify which UPS to check."
+#: plugins/check_ups.c:646
+msgid "you will have to use the --ups option to specify which UPS to check."
 msgstr ""
 
-#: plugins/check_ups.c:646
+#: plugins/check_ups.c:648
 msgid ""
 "This plugin requires that the UPSD daemon distributed with Russel Kroll's"
 msgstr ""
 
-#: plugins/check_ups.c:647
-msgid ""
-"Smart UPS Tools be installed on the remote host.  If you do not have the"
+#: plugins/check_ups.c:649
+msgid "Smart UPS Tools be installed on the remote host. If you do not have the"
 msgstr ""
 
-#: plugins/check_ups.c:648
-msgid ""
-"package installed on your system, you can download it from http://www."
-"networkupstools.org"
+#: plugins/check_ups.c:650
+msgid "package installed on your system, you can download it from"
+msgstr ""
+
+#: plugins/check_ups.c:651
+msgid "http://www.networkupstools.org"
 msgstr ""
 
-#: plugins/check_users.c:94
+#: plugins/check_users.c:96
 #, c-format
 msgid "# users=%d"
 msgstr ""
 
-#: plugins/check_users.c:117
+#: plugins/check_users.c:119
 msgid "Unable to read output"
 msgstr ""
 
-#: plugins/check_users.c:124
+#: plugins/check_users.c:126
 #, c-format
 msgid "USERS %s - %d users currently logged in |%s\n"
 msgstr ""
 
-#: plugins/check_users.c:209
+#: plugins/check_users.c:211
 #, fuzzy
 msgid "This plugin checks the number of users currently logged in on the local"
 msgstr ""
@@ -4791,722 +4906,733 @@
 "unterschritten wird.\n"
 "\n"
 
-#: plugins/check_users.c:210
+#: plugins/check_users.c:212
 msgid ""
 "system and generates an error if the number exceeds the thresholds specified."
 msgstr ""
 
-#: plugins/check_users.c:219
+#: plugins/check_users.c:222
 msgid "Set WARNING status if more than INTEGER users are logged in"
 msgstr ""
 
-#: plugins/check_users.c:221
+#: plugins/check_users.c:224
 msgid "Set CRITICAL status if more than INTEGER users are logged in"
 msgstr ""
 
-#: plugins/check_ide_smart.c:231
+#: plugins/check_ide_smart.c:232
 #, fuzzy, c-format
 msgid "CRITICAL - Couldn't open device %s: %s\n"
 msgstr "CRITICAL - Device konnte nicht ge�ffnet werden: %s\n"
 
-#: plugins/check_ide_smart.c:236
+#: plugins/check_ide_smart.c:237
 #, c-format
 msgid "CRITICAL - SMART_CMD_ENABLE\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:297
+#: plugins/check_ide_smart.c:298
 #, c-format
 msgid "CRITICAL - SMART_READ_VALUES: %s\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:366
+#: plugins/check_ide_smart.c:367
 #, c-format
 msgid "CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:374
+#: plugins/check_ide_smart.c:375
 #, c-format
 msgid "WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:382
+#: plugins/check_ide_smart.c:383
 #, c-format
 msgid "OK - Operational (%d/%d tests passed)\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:386
+#: plugins/check_ide_smart.c:387
 #, c-format
 msgid "ERROR - Status '%d' unkown. %d/%d tests passed\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:419
+#: plugins/check_ide_smart.c:420
 #, c-format
 msgid "OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:425
+#: plugins/check_ide_smart.c:426
 #, c-format
 msgid "OffLineCapability=%d {%s %s %s}\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:431
+#: plugins/check_ide_smart.c:432
 #, c-format
 msgid "SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:452
+#: plugins/check_ide_smart.c:453
 #, c-format
 msgid "CRITICAL - %s: %s\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:471
+#: plugins/check_ide_smart.c:472
 #, c-format
 msgid "CRITICAL - SMART_READ_THRESHOLDS: %s\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:488
+#: plugins/check_ide_smart.c:489
 #, c-format
 msgid ""
 "This plugin checks a local hard drive with the (Linux specific) SMART "
 "interface [http://smartlinux.sourceforge.net/smart/index.php]."
 msgstr ""
 
-#: plugins/check_ide_smart.c:497
+#: plugins/check_ide_smart.c:499
 msgid "Select device DEVICE"
 msgstr ""
 
-#: plugins/check_ide_smart.c:498
+#: plugins/check_ide_smart.c:500
 msgid ""
 "Note: if the device is selected with this option, _no_ other options are "
 "accepted"
 msgstr ""
 
-#: plugins/check_ide_smart.c:500
+#: plugins/check_ide_smart.c:502
 msgid "Perform immediately offline tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:502
+#: plugins/check_ide_smart.c:504
 msgid "Returns the number of failed tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:504
+#: plugins/check_ide_smart.c:506
 msgid "Turn on automatic offline tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:506
+#: plugins/check_ide_smart.c:508
 msgid "Turn off automatic offline tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:508
+#: plugins/check_ide_smart.c:510
 msgid "Output suitable for Nagios"
 msgstr ""
 
-#: plugins/negate.c:132
+#: plugins/negate.c:98
 #, fuzzy
 msgid "No data returned from command\n"
 msgstr "Keine Daten empfangen %s\n"
 
-#: plugins/negate.c:209
+#: plugins/negate.c:168
 msgid ""
 "Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-"
 "3)."
 msgstr ""
 
-#: plugins/negate.c:215
+#: plugins/negate.c:174
 msgid ""
 "Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or "
 "integer (0-3)."
 msgstr ""
 
-#: plugins/negate.c:220
+#: plugins/negate.c:179
 msgid ""
 "Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or "
 "integer (0-3)."
 msgstr ""
 
-#: plugins/negate.c:225
+#: plugins/negate.c:184
 msgid ""
 "Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or "
 "integer (0-3)."
 msgstr ""
 
-#: plugins/negate.c:262
+#: plugins/negate.c:211
 msgid "Require path to command"
 msgstr ""
 
-#: plugins/negate.c:298
+#: plugins/negate.c:240
 msgid ""
 "Negates the status of a plugin (returns OK for CRITICAL and vice-versa)."
 msgstr ""
 
-#: plugins/negate.c:299
+#: plugins/negate.c:241
 msgid "Additional switches can be used to control which state becomes what."
 msgstr ""
 
-#: plugins/negate.c:308
+#: plugins/negate.c:250
 msgid "Keep timeout longer than the plugin timeout to retain CRITICAL status."
 msgstr ""
 
-#: plugins/negate.c:314
+#: plugins/negate.c:256
 #, c-format
 msgid ""
 "    STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n"
 msgstr ""
 
-#: plugins/negate.c:315
+#: plugins/negate.c:257
 #, c-format
 msgid ""
 "    quotes. Numeric values are accepted. If nothing is specified, permutes\n"
 msgstr ""
 
-#: plugins/negate.c:316
+#: plugins/negate.c:258
 #, c-format
 msgid "    OK and CRITICAL.\n"
 msgstr ""
 
-#: plugins/negate.c:321
+#: plugins/negate.c:260
+#, c-format
+msgid ""
+"    Substitute output text as well. Will only substitute text in CAPITALS\n"
+msgstr ""
+
+#: plugins/negate.c:265
 msgid "Run check_ping and invert result. Must use full path to plugin"
 msgstr ""
 
-#: plugins/negate.c:323
+#: plugins/negate.c:267
 msgid "This will return OK instead of WARNING and UNKNOWN instead of CRITICAL"
 msgstr ""
 
-#: plugins/negate.c:326
+#: plugins/negate.c:270
 msgid ""
 "This plugin is a wrapper to take the output of another plugin and invert it."
 msgstr ""
 
-#: plugins/negate.c:327
+#: plugins/negate.c:271
 msgid "The full path of the plugin must be provided."
 msgstr ""
 
-#: plugins/negate.c:328
+#: plugins/negate.c:272
 msgid "If the wrapped plugin returns OK, the wrapper will return CRITICAL."
 msgstr ""
 
-#: plugins/negate.c:329
+#: plugins/negate.c:273
 msgid "If the wrapped plugin returns CRITICAL, the wrapper will return OK."
 msgstr ""
 
-#: plugins/negate.c:330
+#: plugins/negate.c:274
 msgid "Otherwise, the output state of the wrapped plugin is unchanged."
 msgstr ""
 
-#: plugins/netutils.c:53
+#: plugins/netutils.c:52
 #, fuzzy, c-format
 msgid "CRITICAL - Socket timeout after %d seconds\n"
 msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n"
 
-#: plugins/netutils.c:55
+#: plugins/netutils.c:54
 #, fuzzy, c-format
 msgid "CRITICAL - Abnormal timeout after %d seconds\n"
 msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n"
 
-#: plugins/netutils.c:83 plugins/netutils.c:274
+#: plugins/netutils.c:82 plugins/netutils.c:284
 msgid "Send failed"
 msgstr ""
 
-#: plugins/netutils.c:100 plugins/netutils.c:289
+#: plugins/netutils.c:99 plugins/netutils.c:299
 #, fuzzy
 msgid "No data was received from host!"
 msgstr "Keine Daten empfangen %s\n"
 
-#: plugins/netutils.c:197 plugins/netutils.c:233
+#: plugins/netutils.c:207 plugins/netutils.c:243
 msgid "Socket creation failed"
 msgstr ""
 
-#: plugins/netutils.c:226
+#: plugins/netutils.c:236
 msgid "Supplied path too long unix domain socket"
 msgstr ""
 
-#: plugins/netutils.c:298
+#: plugins/netutils.c:308
 msgid "Receive failed"
 msgstr ""
 
-#: plugins/netutils.c:324 plugins-root/check_dhcp.c:1348
+#: plugins/netutils.c:334 plugins-root/check_dhcp.c:1346
 #, fuzzy, c-format
 msgid "Invalid hostname/address - %s"
 msgstr ""
 "Ung�ltige(r) Name/Adresse: %s\n"
 "\n"
 
-#: plugins/popen.c:148
+#: plugins/popen.c:145
 #, fuzzy
 msgid "Could not malloc argv array in popen()"
 msgstr "Konnte addr nicht zuweisen\n"
 
-#: plugins/popen.c:158
+#: plugins/popen.c:155
 #, fuzzy
 msgid "CRITICAL - You need more args!!!"
 msgstr "CRITICAL - Fehler: %s\n"
 
-#: plugins/popen.c:215
+#: plugins/popen.c:212
 #, fuzzy
 msgid "Cannot catch SIGCHLD"
 msgstr "Konnte SIGALRM nicht erhalten"
 
-#: plugins/popen.c:310 plugins/utils.c:172
+#: plugins/popen.c:307 plugins/utils.c:186
 #, fuzzy, c-format
 msgid "CRITICAL - Plugin timed out after %d seconds\n"
 msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n"
 
-#: plugins/popen.c:313
+#: plugins/popen.c:310
 msgid "CRITICAL - popen timeout received, but no child process"
 msgstr ""
 
-#: plugins/popen.c:329
+#: plugins/popen.c:326
 msgid "sysconf error for _SC_OPEN_MAX"
 msgstr ""
 
-#: plugins/urlize.c:137
+#: plugins/urlize.c:134
 #, c-format
 msgid ""
 "%s UNKNOWN - No data received from host\n"
 "CMD: %s</A>\n"
 msgstr ""
 
-#: plugins/urlize.c:176
+#: plugins/urlize.c:173
 msgid "This plugin wraps the text output of another command (plugin)"
 msgstr ""
 
-#: plugins/urlize.c:177
+#: plugins/urlize.c:174
 msgid ""
 "in HTML <A> tags, thus displaying the plugin output in as a clickable link in"
 msgstr ""
 
-#: plugins/urlize.c:178
+#: plugins/urlize.c:175
 msgid ""
 "the Nagios status screen.  The return status is the same as the invoked "
 "plugin."
 msgstr ""
 
-#: plugins/urlize.c:188
+#: plugins/urlize.c:185
 msgid ""
 "Pay close attention to quoting to ensure that the shell passes the expected"
 msgstr ""
 
-#: plugins/urlize.c:189
+#: plugins/urlize.c:186
 msgid "data to the plugin. For example, in:"
 msgstr ""
 
-#: plugins/urlize.c:190
+#: plugins/urlize.c:187
 msgid "urlize http://example.com/ check_http -H example.com -r 'two words'"
 msgstr ""
 
-#: plugins/urlize.c:191
+#: plugins/urlize.c:188
 msgid "the shell will remove the single quotes and urlize will see:"
 msgstr ""
 
-#: plugins/urlize.c:192
+#: plugins/urlize.c:189
 msgid "urlize http://example.com/ check_http -H example.com -r two words"
 msgstr ""
 
-#: plugins/urlize.c:193
+#: plugins/urlize.c:190
 msgid "You probably want:"
 msgstr ""
 
-#: plugins/urlize.c:194
+#: plugins/urlize.c:191
 msgid "urlize http://example.com/ \"check_http -H example.com -r 'two words'\""
 msgstr ""
 
-#: plugins/utils.c:467
+#: plugins/utils.c:481
 #, fuzzy
 msgid "failed realloc in strpcpy\n"
 msgstr "konnte keinen Speicher f�r '%s' reservieren\n"
 
-#: plugins/utils.c:509
+#: plugins/utils.c:523
 #, fuzzy
 msgid "failed malloc in strscat\n"
 msgstr "konnte keinen Speicher f�r '%s' reservieren\n"
 
-#: plugins-root/check_dhcp.c:327
+#: plugins-root/check_dhcp.c:325
 #, c-format
 msgid "Error: Could not get hardware address of interface '%s'\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:349
+#: plugins-root/check_dhcp.c:347
 #, c-format
 msgid "Error: if_nametoindex error - %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:354
+#: plugins-root/check_dhcp.c:352
 #, c-format
 msgid "Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:359
+#: plugins-root/check_dhcp.c:357
 #, c-format
 msgid ""
 "Error: Couldn't get hardware address from interface %s. malloc error - %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:364
+#: plugins-root/check_dhcp.c:362
 #, c-format
 msgid "Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:390
+#: plugins-root/check_dhcp.c:388
 #, c-format
 msgid ""
 "Error: can't find unit number in interface_name (%s) - expecting TypeNumber "
 "eg lnc0.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:395 plugins-root/check_dhcp.c:407
+#: plugins-root/check_dhcp.c:393 plugins-root/check_dhcp.c:405
 #, c-format
 msgid ""
 "Error: can't read MAC address from DLPI streams interface for device %s unit "
 "%d.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:413
+#: plugins-root/check_dhcp.c:411
 #, c-format
 msgid ""
 "Error: can't get MAC address for this architecture.  Use the --mac option.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:432
+#: plugins-root/check_dhcp.c:430
 #, c-format
 msgid "Error: Cannot determine IP address of interface %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:440
+#: plugins-root/check_dhcp.c:438
 #, c-format
 msgid "Error: Cannot get interface IP address on this platform.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:445
+#: plugins-root/check_dhcp.c:443
 #, c-format
 msgid "Pretending to be relay client %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:530
+#: plugins-root/check_dhcp.c:528
 #, c-format
 msgid "DHCPDISCOVER to %s port %d\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:582
+#: plugins-root/check_dhcp.c:580
 #, c-format
 msgid "Result=ERROR\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:588
+#: plugins-root/check_dhcp.c:586
 #, c-format
 msgid "Result=OK\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:603
+#: plugins-root/check_dhcp.c:601
 #, c-format
 msgid "DHCPOFFER from IP address %s"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:604
+#: plugins-root/check_dhcp.c:602
 #, c-format
 msgid " via %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:611
+#: plugins-root/check_dhcp.c:609
 #, c-format
 msgid ""
 "DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:633
+#: plugins-root/check_dhcp.c:631
 #, c-format
 msgid "DHCPOFFER hardware address did not match our own - ignoring packet\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:651
+#: plugins-root/check_dhcp.c:649
 #, c-format
 msgid "Total responses seen on the wire: %d\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:652
+#: plugins-root/check_dhcp.c:650
 #, fuzzy, c-format
 msgid "Valid responses for this machine: %d\n"
 msgstr "Keine Antwort vom Host \n"
 
-#: plugins-root/check_dhcp.c:667
+#: plugins-root/check_dhcp.c:665
 #, c-format
 msgid "send_dhcp_packet result: %d\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:700
+#: plugins-root/check_dhcp.c:698
 #, fuzzy, c-format
 msgid "No (more) data received (nfound: %d)\n"
 msgstr "Keine Daten empfangen %s\n"
 
-#: plugins-root/check_dhcp.c:719
+#: plugins-root/check_dhcp.c:717
 #, c-format
 msgid "recvfrom() failed, "
 msgstr ""
 
-#: plugins-root/check_dhcp.c:726
+#: plugins-root/check_dhcp.c:724
 #, c-format
 msgid "receive_dhcp_packet() result: %d\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:727
+#: plugins-root/check_dhcp.c:725
 #, c-format
 msgid "receive_dhcp_packet() source: %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:757
+#: plugins-root/check_dhcp.c:755
 #, c-format
 msgid "Error: Could not create socket!\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:767
+#: plugins-root/check_dhcp.c:765
 #, c-format
 msgid "Error: Could not set reuse address option on DHCP socket!\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:773
+#: plugins-root/check_dhcp.c:771
 #, c-format
 msgid "Error: Could not set broadcast option on DHCP socket!\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:782
+#: plugins-root/check_dhcp.c:780
 #, c-format
 msgid ""
 "Error: Could not bind socket to interface %s.  Check your privileges...\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:793
+#: plugins-root/check_dhcp.c:791
 #, c-format
 msgid ""
 "Error: Could not bind to DHCP socket (port %d)!  Check your privileges...\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:827
+#: plugins-root/check_dhcp.c:825
 #, c-format
 msgid "Requested server address: %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:888
+#: plugins-root/check_dhcp.c:886
 #, c-format
 msgid "Lease Time: Infinite\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:890
+#: plugins-root/check_dhcp.c:888
 #, c-format
 msgid "Lease Time: %lu seconds\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:892
+#: plugins-root/check_dhcp.c:890
 #, c-format
 msgid "Renewal Time: Infinite\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:894
+#: plugins-root/check_dhcp.c:892
 #, c-format
 msgid "Renewal Time: %lu seconds\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:896
+#: plugins-root/check_dhcp.c:894
 #, c-format
 msgid "Rebinding Time: Infinite\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:897
+#: plugins-root/check_dhcp.c:895
 #, c-format
 msgid "Rebinding Time: %lu seconds\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:925
+#: plugins-root/check_dhcp.c:923
 #, c-format
 msgid "Added offer from server @ %s"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:926
+#: plugins-root/check_dhcp.c:924
 #, c-format
 msgid " of IP address %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:993
+#: plugins-root/check_dhcp.c:991
 #, c-format
 msgid "DHCP Server Match: Offerer=%s"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:994
+#: plugins-root/check_dhcp.c:992
 #, c-format
 msgid " Requested=%s"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:996
+#: plugins-root/check_dhcp.c:994
 #, c-format
 msgid " (duplicate)"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:997
+#: plugins-root/check_dhcp.c:995
 #, c-format
 msgid "\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1045
+#: plugins-root/check_dhcp.c:1043
 #, c-format
 msgid "No DHCPOFFERs were received.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1049
+#: plugins-root/check_dhcp.c:1047
 #, c-format
 msgid "Received %d DHCPOFFER(s)"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1052
+#: plugins-root/check_dhcp.c:1050
 #, c-format
 msgid ", %s%d of %d requested servers responded"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1055
+#: plugins-root/check_dhcp.c:1053
 #, c-format
 msgid ", requested address (%s) was %soffered"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1055
+#: plugins-root/check_dhcp.c:1053
 msgid "not "
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1057
+#: plugins-root/check_dhcp.c:1055
 #, c-format
 msgid ", max lease time = "
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1059
+#: plugins-root/check_dhcp.c:1057
 #, c-format
 msgid "Infinity"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1240
+#: plugins-root/check_dhcp.c:1238
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1252
+#: plugins-root/check_dhcp.c:1250
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1265
+#: plugins-root/check_dhcp.c:1263
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in put_both/putmsg().\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1277
+#: plugins-root/check_dhcp.c:1275
 #, c-format
 msgid ""
 "Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1301
+#: plugins-root/check_dhcp.c:1299
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1380
+#: plugins-root/check_dhcp.c:1378
 #, c-format
 msgid "Hardware address: "
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1396
+#: plugins-root/check_dhcp.c:1394
 msgid "This plugin tests the availability of DHCP servers on a network."
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1407
+#: plugins-root/check_dhcp.c:1406
 msgid "IP address of DHCP server that we must hear from"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1409
+#: plugins-root/check_dhcp.c:1408
 msgid "IP address that should be offered by at least one DHCP server"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1411
+#: plugins-root/check_dhcp.c:1410
 msgid "Seconds to wait for DHCPOFFER before timeout occurs"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1413
+#: plugins-root/check_dhcp.c:1412
 msgid "Interface to to use for listening (i.e. eth0)"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1415
+#: plugins-root/check_dhcp.c:1414
 msgid "MAC address to use in the DHCP request"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1417
+#: plugins-root/check_dhcp.c:1416
 msgid "Unicast testing: mimic a DHCP relay, requires -s"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1227
+#: plugins-root/check_icmp.c:1271
 msgid "specify a target"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1229
+#: plugins-root/check_icmp.c:1273
 #, fuzzy
 msgid "warning threshold (currently "
 msgstr "Warning threshold  Integer sein"
 
-#: plugins-root/check_icmp.c:1232
+#: plugins-root/check_icmp.c:1276
 #, fuzzy
 msgid "critical threshold (currently "
 msgstr "Critical threshold muss ein Integer sein"
 
-#: plugins-root/check_icmp.c:1235
+#: plugins-root/check_icmp.c:1279
+#, fuzzy
+msgid "specify a source IP address or device name"
+msgstr "Hostname oder Serveradresse muss angegeben werden"
+
+#: plugins-root/check_icmp.c:1281
 msgid "number of packets to send (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1238
+#: plugins-root/check_icmp.c:1284
 msgid "max packet interval (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1241
+#: plugins-root/check_icmp.c:1287
 msgid "max target interval (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1244
+#: plugins-root/check_icmp.c:1290
 msgid "number of alive hosts required for success"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1247
+#: plugins-root/check_icmp.c:1293
 msgid "TTL on outgoing packets (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1250
+#: plugins-root/check_icmp.c:1296
 msgid "timeout value (seconds, currently  "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1253
+#: plugins-root/check_icmp.c:1299
 msgid "icmp packet size (currenly ignored)"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1255
+#: plugins-root/check_icmp.c:1301
 msgid "verbose"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1258
+#: plugins-root/check_icmp.c:1305
 msgid "The -H switch is optional. Naming a host (or several) to check is not."
 msgstr ""
 
-#: plugins-root/check_icmp.c:1259
+#: plugins-root/check_icmp.c:1307
 msgid ""
 "Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1260
+#: plugins-root/check_icmp.c:1308
 msgid "packet loss.  The default values should work well for most users."
 msgstr ""
 
-#: plugins-root/check_icmp.c:1261
+#: plugins-root/check_icmp.c:1309
 msgid ""
 "You can specify different RTA factors using the standardized abbreviations"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1262
+#: plugins-root/check_icmp.c:1310
 msgid ""
 "us (microseconds), ms (milliseconds, default) or just plain s for seconds."
 msgstr ""
 
-#: plugins-root/check_icmp.c:1267
+#: plugins-root/check_icmp.c:1316
 msgid "The -v switch can be specified several times for increased verbosity."
 msgstr ""
 
Dateien nagios-plugins-1.4.11/po/fr.gmo und nagios-plugins-1.4.12/po/fr.gmo sind verschieden.
diff -uNr nagios-plugins-1.4.11/po/fr.po nagios-plugins-1.4.12/po/fr.po
--- nagios-plugins-1.4.11/po/fr.po	2007-12-13 23:43:54.000000000 +0100
+++ nagios-plugins-1.4.12/po/fr.po	2008-05-28 00:06:17.000000000 +0200
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: nagiosplug-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2007-12-13 22:43+0000\n"
+"POT-Creation-Date: 2008-05-27 23:06+0100\n"
 "PO-Revision-Date: 2007-12-10 02:10-0500\n"
 "Last-Translator: Thomas Guyot-Sionnest <dermoth@aei.ca>\n"
 "Language-Team:  <en@li.org>\n"
@@ -20,56 +20,61 @@
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 "X-Generator: KBabel 1.11.4\n"
 
-#: plugins/check_by_ssh.c:83 plugins/check_cluster.c:79 plugins/check_dig.c:89
-#: plugins/check_disk.c:198 plugins/check_dns.c:93 plugins/check_dummy.c:59
-#: plugins/check_fping.c:89 plugins/check_game.c:84 plugins/check_hpjd.c:106
-#: plugins/check_http.c:154 plugins/check_ldap.c:108 plugins/check_load.c:126
-#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:88
-#: plugins/check_nagios.c:94 plugins/check_nt.c:126 plugins/check_ntp.c:767
-#: plugins/check_ntp_peer.c:553 plugins/check_ntp_time.c:544
+#: plugins/check_by_ssh.c:84 plugins/check_cluster.c:81 plugins/check_dig.c:91
+#: plugins/check_disk.c:199 plugins/check_dns.c:106 plugins/check_dummy.c:56
+#: plugins/check_fping.c:90 plugins/check_game.c:86 plugins/check_hpjd.c:107
+#: plugins/check_http.c:154 plugins/check_ldap.c:112 plugins/check_load.c:126
+#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:89
+#: plugins/check_nagios.c:95 plugins/check_nt.c:129 plugins/check_ntp.c:770
+#: plugins/check_ntp_peer.c:559 plugins/check_ntp_time.c:547
 #: plugins/check_nwstat.c:177 plugins/check_overcr.c:106
-#: plugins/check_pgsql.c:156 plugins/check_ping.c:99 plugins/check_procs.c:143
-#: plugins/check_radius.c:156 plugins/check_real.c:85 plugins/check_smtp.c:145
-#: plugins/check_snmp.c:183 plugins/check_ssh.c:78 plugins/check_swap.c:113
-#: plugins/check_tcp.c:211 plugins/check_time.c:82 plugins/check_ups.c:125
-#: plugins/check_users.c:70 plugins/negate.c:259 plugins-root/check_dhcp.c:277
+#: plugins/check_pgsql.c:157 plugins/check_ping.c:99 plugins/check_procs.c:150
+#: plugins/check_radius.c:156 plugins/check_real.c:84 plugins/check_smtp.c:144
+#: plugins/check_snmp.c:183 plugins/check_ssh.c:77 plugins/check_swap.c:114
+#: plugins/check_tcp.c:212 plugins/check_time.c:82 plugins/check_ups.c:126
+#: plugins/check_users.c:72 plugins/negate.c:208 plugins-root/check_dhcp.c:275
 msgid "Could not parse arguments"
 msgstr "Impossible de décomposer les arguments"
 
-#: plugins/check_by_ssh.c:87 plugins/check_dig.c:86 plugins/check_dns.c:89
-#: plugins/check_nagios.c:98 plugins/check_pgsql.c:160
-#: plugins/check_ping.c:103 plugins/check_procs.c:150 plugins/negate.c:113
+#: plugins/check_by_ssh.c:88 plugins/check_dig.c:85 plugins/check_dns.c:99
+#: plugins/check_nagios.c:99 plugins/check_pgsql.c:161
+#: plugins/check_ping.c:103 plugins/check_procs.c:157 plugins/negate.c:78
 msgid "Cannot catch SIGALRM"
 msgstr "Impossible d'obtenir le signal SIGALRM"
 
-#: plugins/check_by_ssh.c:104
+#: plugins/check_by_ssh.c:105
 #, c-format
 msgid "Remote command execution failed: %s\n"
 msgstr "L'exécution de la commande à distance %s à échoué\n"
 
-#: plugins/check_by_ssh.c:116
+#: plugins/check_by_ssh.c:117
 #, c-format
 msgid "%s - check_by_ssh: Remote command '%s' returned status %d\n"
 msgstr ""
 
-#: plugins/check_by_ssh.c:128
+#: plugins/check_by_ssh.c:129
 #, c-format
 msgid "SSH WARNING: could not open %s\n"
 msgstr "SSH AVERTISSEMENT: impossible d'ouvrir %s\n"
 
-#: plugins/check_by_ssh.c:214 plugins/check_disk.c:530
-#: plugins/check_http.c:248 plugins/check_ldap.c:292 plugins/check_pgsql.c:237
-#: plugins/check_procs.c:371 plugins/check_radius.c:284
-#: plugins/check_real.c:361 plugins/check_smtp.c:592 plugins/check_snmp.c:516
-#: plugins/check_ssh.c:143 plugins/check_tcp.c:494 plugins/check_time.c:306
-#: plugins/check_ups.c:555 plugins/negate.c:203
+#: plugins/check_by_ssh.c:138
+#, fuzzy, c-format
+msgid "%s: Error parsing output\n"
+msgstr "Erreur lors de l'utilisation de %s\n"
+
+#: plugins/check_by_ssh.c:214 plugins/check_disk.c:532
+#: plugins/check_http.c:249 plugins/check_ldap.c:296 plugins/check_pgsql.c:238
+#: plugins/check_procs.c:399 plugins/check_radius.c:290
+#: plugins/check_real.c:360 plugins/check_smtp.c:593 plugins/check_snmp.c:516
+#: plugins/check_ssh.c:142 plugins/check_tcp.c:495 plugins/check_time.c:306
+#: plugins/check_ups.c:556 plugins/negate.c:162
 msgid "Timeout interval must be a positive integer"
 msgstr "Le délai d'attente doit être un entier positif"
 
-#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:261
-#: plugins/check_radius.c:257 plugins/check_real.c:332
-#: plugins/check_smtp.c:519 plugins/check_tcp.c:500 plugins/check_time.c:300
-#: plugins/check_ups.c:517
+#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:262
+#: plugins/check_radius.c:257 plugins/check_real.c:331
+#: plugins/check_smtp.c:520 plugins/check_tcp.c:501 plugins/check_time.c:300
+#: plugins/check_ups.c:518
 msgid "Port must be a positive integer"
 msgstr "Le numéro du port doit être un entier positif"
 
@@ -111,436 +116,445 @@
 msgid "This plugin uses SSH to execute commands on a remote host"
 msgstr "Ce plugin utilise SSH pour exécuter des commandes sur un hôte distant"
 
-#: plugins/check_by_ssh.c:360
+#: plugins/check_by_ssh.c:362
 msgid "tell ssh to use Protocol 1 [optional]"
 msgstr "dire à ssh d'utiliser le protocole version 1 [optionnel]"
 
-#: plugins/check_by_ssh.c:362
+#: plugins/check_by_ssh.c:364
 msgid "tell ssh to use Protocol 2 [optional]"
 msgstr "dire à ssh d'utiliser le protocole 2 [optionnel]"
 
-#: plugins/check_by_ssh.c:364
+#: plugins/check_by_ssh.c:366
 msgid "Ignore all or (if specified) first n lines on STDOUT [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:366
+#: plugins/check_by_ssh.c:368
 msgid "Ignore all or (if specified) first n lines on STDERR [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:368
-msgid "tells ssh to fork rather than create a tty [optional]"
+#: plugins/check_by_ssh.c:370
+msgid ""
+"tells ssh to fork rather than create a tty [optional]. This will always "
+"return OK if ssh is executed"
 msgstr ""
 
-#: plugins/check_by_ssh.c:370
+#: plugins/check_by_ssh.c:372
 msgid "command to execute on the remote machine"
 msgstr "commande à exécuter sur la machine distante"
 
-#: plugins/check_by_ssh.c:372
+#: plugins/check_by_ssh.c:374
 msgid "SSH user name on remote host [optional]"
 msgstr "Nom d'utilisateur ssh sur la machine distante [optionnel]"
 
-#: plugins/check_by_ssh.c:374
+#: plugins/check_by_ssh.c:376
 msgid "identity of an authorized key [optional]"
 msgstr "Identité de la clé autorisée [optionnel]"
 
-#: plugins/check_by_ssh.c:376
+#: plugins/check_by_ssh.c:378
 msgid "external command file for nagios [optional]"
 msgstr "commande externe pour nagios [optionnel]"
 
-#: plugins/check_by_ssh.c:378
+#: plugins/check_by_ssh.c:380
 msgid "list of nagios service names, separated by ':' [optional]"
 msgstr "liste des services nagios, séparés par ':' [optionnel] "
 
-#: plugins/check_by_ssh.c:380
+#: plugins/check_by_ssh.c:382
 msgid "short name of host in nagios configuration [optional]"
 msgstr "nom court de l'hôte dans la configuration nagios [optionnel]"
 
-#: plugins/check_by_ssh.c:382
+#: plugins/check_by_ssh.c:384
 msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]"
 msgstr ""
 "appelle ssh avec '-o OPTION' (peut être utilisé plusieurs fois) [optionnel]"
 
-#: plugins/check_by_ssh.c:384
+#: plugins/check_by_ssh.c:386
 msgid "Tell ssh to suppress warning and diagnostic messages [optional]"
 msgstr ""
 "dire à ssh de supprimer les messages d'erreurs et de diagnostic [optionnel]"
 
-#: plugins/check_by_ssh.c:387
+#: plugins/check_by_ssh.c:391
 msgid "The most common mode of use is to refer to a local identity file with"
 msgstr ""
 
-#: plugins/check_by_ssh.c:388
+#: plugins/check_by_ssh.c:392
 msgid "the '-i' option. In this mode, the identity pair should have a null"
 msgstr ""
 
-#: plugins/check_by_ssh.c:389
+#: plugins/check_by_ssh.c:393
 msgid "passphrase and the public key should be listed in the authorized_keys"
 msgstr ""
 
-#: plugins/check_by_ssh.c:390
+#: plugins/check_by_ssh.c:394
 msgid "file of the remote host. Usually the key will be restricted to running"
 msgstr ""
 
-#: plugins/check_by_ssh.c:391
+#: plugins/check_by_ssh.c:395
 msgid "only one command on the remote server. If the remote SSH server tracks"
 msgstr ""
 
-#: plugins/check_by_ssh.c:392
+#: plugins/check_by_ssh.c:396
 msgid "invocation arguments, the one remote program may be an agent that can"
 msgstr ""
 
-#: plugins/check_by_ssh.c:393
+#: plugins/check_by_ssh.c:397
 msgid "execute additional commands as proxy"
 msgstr ""
 
-#: plugins/check_by_ssh.c:394
+#: plugins/check_by_ssh.c:399
 msgid "To use passive mode, provide multiple '-C' options, and provide"
 msgstr "Pour utiliser le mode passif, utilisez plusieurs fois l'option '-C',et"
 
-#: plugins/check_by_ssh.c:395
+#: plugins/check_by_ssh.c:400
 msgid ""
 "all of -O, -s, and -n options (servicelist order must match '-C'options)"
 msgstr ""
 "et les options -O, -s, n (l'ordre des services doit correspondre aux "
 "multiples options '-C)"
 
-#: plugins/check_by_ssh.c:397 plugins/check_disk.c:954
-#: plugins/check_http.c:1312 plugins/check_nagios.c:303
-#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:668
-#: plugins/check_ntp_time.c:623 plugins/check_procs.c:735 plugins/negate.c:319
-#: plugins/urlize.c:187
-#, c-format
+#: plugins/check_by_ssh.c:402 plugins/check_dig.c:341 plugins/check_disk.c:970
+#: plugins/check_http.c:1323 plugins/check_nagios.c:312
+#: plugins/check_ntp.c:872 plugins/check_ntp_peer.c:680
+#: plugins/check_ntp_time.c:631 plugins/check_procs.c:783 plugins/negate.c:263
+#: plugins/urlize.c:184
 msgid "Examples:"
 msgstr "Exemples:"
 
-#: plugins/check_by_ssh.c:412 plugins/check_cluster.c:273
-#: plugins/check_dig.c:336 plugins/check_disk.c:970 plugins/check_dns.c:447
-#: plugins/check_dummy.c:129 plugins/check_fping.c:407
-#: plugins/check_game.c:334 plugins/check_hpjd.c:415 plugins/check_http.c:1335
-#: plugins/check_ldap.c:449 plugins/check_load.c:328 plugins/check_mrtg.c:383
-#: plugins/check_mysql.c:407 plugins/check_nagios.c:313 plugins/check_nt.c:707
-#: plugins/check_ntp.c:879 plugins/check_ntp_peer.c:683
-#: plugins/check_ntp_time.c:632 plugins/check_nwstat.c:1688
-#: plugins/check_overcr.c:469 plugins/check_pgsql.c:458
-#: plugins/check_ping.c:597 plugins/check_procs.c:753
-#: plugins/check_radius.c:358 plugins/check_real.c:454
-#: plugins/check_smtp.c:825 plugins/check_snmp.c:1029 plugins/check_ssh.c:308
-#: plugins/check_swap.c:559 plugins/check_tcp.c:654 plugins/check_time.c:373
-#: plugins/check_ups.c:657 plugins/check_users.c:230
-#: plugins/check_ide_smart.c:527 plugins/negate.c:340 plugins/urlize.c:204
-#: plugins-root/check_dhcp.c:1426 plugins-root/check_icmp.c:1282
+#: plugins/check_by_ssh.c:411 plugins/check_cluster.c:262
+#: plugins/check_dig.c:347 plugins/check_disk.c:965 plugins/check_dns.c:485
+#: plugins/check_fping.c:405 plugins/check_game.c:322 plugins/check_hpjd.c:412
+#: plugins/check_http.c:1307 plugins/check_ldap.c:437 plugins/check_load.c:325
+#: plugins/check_mrtg.c:367 plugins/check_mrtgtraf.c:367
+#: plugins/check_mysql.c:421 plugins/check_nagios.c:307 plugins/check_nt.c:728
+#: plugins/check_ntp.c:864 plugins/check_ntp_peer.c:667
+#: plugins/check_ntp_time.c:620 plugins/check_nwstat.c:1674
+#: plugins/check_overcr.c:460 plugins/check_pgsql.c:456
+#: plugins/check_ping.c:601 plugins/check_procs.c:778
+#: plugins/check_radius.c:359 plugins/check_real.c:449
+#: plugins/check_smtp.c:821 plugins/check_snmp.c:1006 plugins/check_ssh.c:302
+#: plugins/check_swap.c:551 plugins/check_tcp.c:651 plugins/check_time.c:369
+#: plugins/check_ups.c:642 plugins/check_users.c:228
+#: plugins/check_ide_smart.c:514 plugins/negate.c:269
+#: plugins-root/check_dhcp.c:1420 plugins-root/check_icmp.c:1304
+msgid "Notes:"
+msgstr "Notes:"
+
+#: plugins/check_by_ssh.c:423 plugins/check_cluster.c:277
+#: plugins/check_dig.c:359 plugins/check_disk.c:987 plugins/check_dns.c:496
+#: plugins/check_dummy.c:126 plugins/check_fping.c:416
+#: plugins/check_game.c:339 plugins/check_hpjd.c:424 plugins/check_http.c:1346
+#: plugins/check_ldap.c:459 plugins/check_load.c:335 plugins/check_mrtg.c:389
+#: plugins/check_mysql.c:432 plugins/check_nagios.c:323 plugins/check_nt.c:747
+#: plugins/check_ntp.c:891 plugins/check_ntp_peer.c:697
+#: plugins/check_ntp_time.c:640 plugins/check_nwstat.c:1692
+#: plugins/check_overcr.c:475 plugins/check_pgsql.c:468
+#: plugins/check_ping.c:611 plugins/check_radius.c:371
+#: plugins/check_real.c:461 plugins/check_smtp.c:833 plugins/check_snmp.c:1036
+#: plugins/check_ssh.c:314 plugins/check_swap.c:567 plugins/check_tcp.c:662
+#: plugins/check_time.c:381 plugins/check_ups.c:664 plugins/check_users.c:239
+#: plugins/check_ide_smart.c:536 plugins/negate.c:284 plugins/urlize.c:201
+#: plugins-root/check_dhcp.c:1432 plugins-root/check_icmp.c:1333
 #, c-format
 msgid "Usage:"
 msgstr "Utilisation:"
 
-#: plugins/check_cluster.c:233
+#: plugins/check_cluster.c:235
 #, c-format
 msgid "Host/Service Cluster Plugin for Nagios 2"
 msgstr "Plugin de Cluster d'Hôte/Service pour Nagios 2"
 
-#: plugins/check_cluster.c:239 plugins/check_nt.c:632
+#: plugins/check_cluster.c:241 plugins/check_nt.c:652
 msgid "Options:"
 msgstr "Options:"
 
-#: plugins/check_cluster.c:241
+#: plugins/check_cluster.c:244
 msgid "Check service cluster status"
 msgstr "Vérifie l'état d'un cluster de services"
 
-#: plugins/check_cluster.c:243
+#: plugins/check_cluster.c:246
 msgid "Check host cluster status"
 msgstr "Vérifie l'état d'un cluster d'hôtes"
 
-#: plugins/check_cluster.c:245
+#: plugins/check_cluster.c:248
 msgid "Optional prepended text output (i.e. \"Host cluster\")"
 msgstr "Texte optionnel accolé à la sortie (i.e. \"Cluster d'hôtes\")"
 
-#: plugins/check_cluster.c:247 plugins/check_cluster.c:250
+#: plugins/check_cluster.c:250 plugins/check_cluster.c:253
 msgid "Specifies the range of hosts or services in cluster that must be in a"
 msgstr "Défini le nombre d'hôtes ou de services du cluster qui doivent être"
 
-#: plugins/check_cluster.c:248
+#: plugins/check_cluster.c:251
 msgid "non-OK state in order to return a WARNING status level"
 msgstr "dans un état non-OK pour retourner un état AVERTISSEMENT"
 
-#: plugins/check_cluster.c:251
+#: plugins/check_cluster.c:254
 msgid "non-OK state in order to return a CRITICAL status level"
 msgstr "dans un état non-OK pour retourner un état CRITIQUE"
 
-#: plugins/check_cluster.c:253
+#: plugins/check_cluster.c:256
 msgid "The status codes of the hosts or services in the cluster, separated by"
 msgstr "Les codes d'état des hôtes ou des services du cluster, séparés par des"
 
-#: plugins/check_cluster.c:254
+#: plugins/check_cluster.c:257
 msgid "commas"
 msgstr "virgules"
 
-#: plugins/check_cluster.c:259 plugins/check_game.c:318
-#: plugins/check_http.c:1300 plugins/check_mrtg.c:364
-#: plugins/check_mrtgtraf.c:365 plugins/check_nt.c:693 plugins/check_ntp.c:860
-#: plugins/check_ntp_peer.c:655 plugins/check_ntp_time.c:611
-#: plugins/check_nwstat.c:1673 plugins/check_overcr.c:452
-#: plugins/check_swap.c:548 plugins/check_ups.c:633 plugins/negate.c:325
-#, c-format
-msgid "Notes:"
-msgstr "Notes:"
-
-#: plugins/check_cluster.c:260 plugins/check_ntp.c:861
-#: plugins/check_ntp_peer.c:663 plugins/check_ntp_time.c:618
-msgid "See:"
-msgstr "Voir:"
-
-#: plugins/check_cluster.c:262 plugins/check_ntp.c:863
-#: plugins/check_ntp_peer.c:665 plugins/check_ntp_time.c:620
-msgid "for THRESHOLD format and examples."
-msgstr "pour le format et examples des seuils (THRESHOLD)"
-
-#: plugins/check_dig.c:101 plugins/check_dig.c:103
+#: plugins/check_dig.c:103 plugins/check_dig.c:105
 #, c-format
 msgid "Looking for: '%s'\n"
 msgstr "Recherche de: '%s'\n"
 
-#: plugins/check_dig.c:110
+#: plugins/check_dig.c:112
 msgid "dig returned an error status"
 msgstr "dig à renvoyé un état d'erreur"
 
-#: plugins/check_dig.c:135
+#: plugins/check_dig.c:137
 msgid "Server not found in ANSWER SECTION"
 msgstr "Le serveur n'a pas été trouvé dans l'ANSWER SECTION"
 
-#: plugins/check_dig.c:145
+#: plugins/check_dig.c:147
 msgid "No ANSWER SECTION found"
 msgstr "Pas d' ANSWER SECTION trouvé"
 
-#: plugins/check_dig.c:170
+#: plugins/check_dig.c:172
 msgid "Probably a non-existent host/domain"
 msgstr "Probablement un hôte/domaine inexistant"
 
-#: plugins/check_dig.c:229
+#: plugins/check_dig.c:232
 #, c-format
 msgid "Port must be a positive integer - %s"
 msgstr "Le numéro du port doit être un entier positif - %s"
 
-#: plugins/check_dig.c:240
+#: plugins/check_dig.c:243
 #, c-format
 msgid "Warning interval must be a positive integer - %s"
 msgstr "Le seuil d'avertissement doit être un entier positif - %s"
 
-#: plugins/check_dig.c:248
+#: plugins/check_dig.c:251
 #, c-format
 msgid "Critical interval must be a positive integer - %s"
 msgstr "Le seuil critique doit être un entier positif - %s"
 
-#: plugins/check_dig.c:256
+#: plugins/check_dig.c:259
 #, c-format
 msgid "Timeout interval must be a positive integer - %s"
 msgstr "Le délai d'attente doit être un entier positif - %s"
 
-#: plugins/check_dig.c:309
+#: plugins/check_dig.c:315
 #, c-format
 msgid "This plugin test the DNS service on the specified host using dig"
 msgstr "Ce plugin teste le service DNS sur l'hôte spécifié en utilisant dig"
 
-#: plugins/check_dig.c:320
-msgid "machine name to lookup"
+#: plugins/check_dig.c:328
+#, fuzzy
+msgid "Machine name to lookup"
 msgstr "nom de machine à vérifier"
 
-#: plugins/check_dig.c:322
-msgid "record type to lookup (default: A)"
+#: plugins/check_dig.c:330
+#, fuzzy
+msgid "Record type to lookup (default: A)"
 msgstr "type d'enregistrement à vérifier (par défaut: A)"
 
-#: plugins/check_dig.c:324
+#: plugins/check_dig.c:332
+#, fuzzy
 msgid ""
-"an address expected to be in the answer section.if not set, uses whatever "
-"was in -l"
+"An address expected to be in the answer section. If not set, uses whatever"
 msgstr ""
 "une adresse qui devrait se trouver dans l'ANSWER SECTION. Si elle ne si "
 "trouve pas, utilise ce qui a été précisé avec -l"
 
-#: plugins/check_disk.c:220
+#: plugins/check_dig.c:333
+msgid "was in -l"
+msgstr ""
+
+#: plugins/check_dig.c:335
+msgid "Pass STRING as argument(s) to dig"
+msgstr ""
+
+#: plugins/check_disk.c:221
 #, c-format
 msgid "DISK %s: %s not found\n"
 msgstr "DISK %s: %s non trouvé\n"
 
-#: plugins/check_disk.c:220 plugins/check_disk.c:985 plugins/check_dns.c:208
-#: plugins/check_dummy.c:81 plugins/check_http.c:951 plugins/check_mysql.c:214
-#: plugins/check_nagios.c:107 plugins/check_nagios.c:171
-#: plugins/check_nagios.c:175 plugins/check_procs.c:302
+#: plugins/check_disk.c:221 plugins/check_disk.c:1002 plugins/check_dns.c:245
+#: plugins/check_dummy.c:78 plugins/check_http.c:956 plugins/check_mysql.c:215
+#: plugins/check_nagios.c:108 plugins/check_nagios.c:172
+#: plugins/check_nagios.c:176 plugins/check_procs.c:325
 #, c-format
 msgid "CRITICAL"
 msgstr "CRITIQUE"
 
-#: plugins/check_disk.c:604
+#: plugins/check_disk.c:606
 #, c-format
 msgid "unit type %s not known\n"
 msgstr "unité de type %s inconnue\n"
 
-#: plugins/check_disk.c:607
+#: plugins/check_disk.c:609
 #, c-format
 msgid "failed allocating storage for '%s'\n"
 msgstr "Impossible d'allouer de l'espace pour '%s'\n"
 
-#: plugins/check_disk.c:631 plugins/check_disk.c:662 plugins/check_disk.c:667
-#: plugins/check_disk.c:674 plugins/check_disk.c:678 plugins/check_disk.c:718
-#: plugins/check_disk.c:724 plugins/check_disk.c:743 plugins/check_dummy.c:84
-#: plugins/check_dummy.c:87
+#: plugins/check_disk.c:633 plugins/check_disk.c:664 plugins/check_disk.c:669
+#: plugins/check_disk.c:676 plugins/check_disk.c:680 plugins/check_disk.c:720
+#: plugins/check_disk.c:726 plugins/check_disk.c:745 plugins/check_dummy.c:81
+#: plugins/check_dummy.c:84 plugins/check_procs.c:486
 #, c-format
 msgid "UNKNOWN"
 msgstr "INCONNU"
 
-#: plugins/check_disk.c:631
+#: plugins/check_disk.c:633
 msgid "Must set a threshold value before using -p\n"
 msgstr ""
 
-#: plugins/check_disk.c:662
+#: plugins/check_disk.c:664
 msgid "Must set -E before selecting pathes\n"
 msgstr ""
 
-#: plugins/check_disk.c:667
+#: plugins/check_disk.c:669
 msgid "Must set group value before selecting pathes \n"
 msgstr ""
 
-#: plugins/check_disk.c:674
+#: plugins/check_disk.c:676
 msgid ""
 "Pathes need to be selected before using -i/-I. Use -A to select all pathes "
 "explicitly"
 msgstr ""
 
-#: plugins/check_disk.c:678 plugins/check_disk.c:724
+#: plugins/check_disk.c:680 plugins/check_disk.c:726 plugins/check_procs.c:486
 msgid "Could not compile regular expression"
 msgstr "Impossible de compiler l'expression rationnelle"
 
-#: plugins/check_disk.c:718
+#: plugins/check_disk.c:720
 msgid "Must set a threshold value before using -r/-R\n"
 msgstr ""
 
-#: plugins/check_disk.c:744
+#: plugins/check_disk.c:746
 msgid "Regular expression did not match any path or disk"
 msgstr ""
 
-#: plugins/check_disk.c:791
+#: plugins/check_disk.c:793
 msgid "Unknown argument"
 msgstr "Argument inconnu"
 
-#: plugins/check_disk.c:825
+#: plugins/check_disk.c:827
 #, c-format
 msgid " for %s\n"
 msgstr " pour %s\n"
 
-#: plugins/check_disk.c:893
+#: plugins/check_disk.c:901
 msgid ""
 "This plugin checks the amount of used disk space on a mounted file system"
 msgstr "Ce plugin vérifie la place utilisé sur un système de fichier monté"
 
-#: plugins/check_disk.c:894
+#: plugins/check_disk.c:902
 msgid ""
 "and generates an alert if free space is less than one of the threshold values"
 msgstr ""
 "et génère une alerte si la place disponible est plus petite qu'un des seuils "
 "fourni"
 
-#: plugins/check_disk.c:903
+#: plugins/check_disk.c:912
 msgid "Exit with WARNING status if less than INTEGER units of disk are free"
 msgstr ""
 "Sortir avec un résultat AVERTISSEMENT si moins de X unités de disques sont "
 "libres"
 
-#: plugins/check_disk.c:905
+#: plugins/check_disk.c:914
 msgid "Exit with WARNING status if less than PERCENT of disk space is free"
 msgstr ""
 "Sortir avec un résultat AVERTISSEMENT si moins de X pour-cent du disque est "
 "libre"
 
-#: plugins/check_disk.c:907
+#: plugins/check_disk.c:916
 msgid "Exit with CRITICAL status if less than INTEGER units of disk are free"
 msgstr ""
 "Sortir avec un résultat CRITIQUE si moins de X unités du disque sont libres"
 
-#: plugins/check_disk.c:909
+#: plugins/check_disk.c:918
 msgid "Exit with CRITCAL status if less than PERCENT of disk space is free"
 msgstr ""
 "Sortir avec un résultat CRITIQUE si moins de X pour-cent du disque est libre"
 
-#: plugins/check_disk.c:911
+#: plugins/check_disk.c:920
 msgid "Exit with WARNING status if less than PERCENT of inode space is free"
 msgstr ""
 "Sortir avec un résultat AVERTISSEMENT si moins de X pour-cent des inodes "
 "sont libres"
 
-#: plugins/check_disk.c:913
+#: plugins/check_disk.c:922
 msgid "Exit with CRITICAL status if less than PERCENT of inode space is free"
 msgstr ""
 "Sortir avec un résultat CRITIQUE si moins de X pour-cent des inodes sont "
 "libres"
 
-#: plugins/check_disk.c:915
+#: plugins/check_disk.c:924
 msgid "Path or partition (may be repeated)"
 msgstr "Répertoire ou partition (peut être utilisé plusieurs fois)"
 
-#: plugins/check_disk.c:917
+#: plugins/check_disk.c:926
 msgid "Ignore device (only works if -p unspecified)"
 msgstr "Ignorer le périphérique (marche seulement lorsque -p est utilisé)"
 
-#: plugins/check_disk.c:919
+#: plugins/check_disk.c:928
 msgid "Clear thresholds"
 msgstr "Effacer les seuils"
 
-#: plugins/check_disk.c:921
+#: plugins/check_disk.c:930
 msgid "For paths or partitions specified with -p, only check for exact paths"
 msgstr ""
 
-#: plugins/check_disk.c:923
+#: plugins/check_disk.c:932
 msgid "Display only devices/mountpoints with errors"
 msgstr "Afficher seulement les périphériques/point de montage avec des erreurs"
 
-#: plugins/check_disk.c:925
+#: plugins/check_disk.c:934
 msgid ""
 "Group pathes. Thresholds apply to (free-)space of all partitions together"
 msgstr ""
 
-#: plugins/check_disk.c:927
+#: plugins/check_disk.c:936
 msgid "Same as '--units kB'"
 msgstr "Pareil à '--units kB'"
 
-#: plugins/check_disk.c:929
+#: plugins/check_disk.c:938
 msgid "Only check local filesystems"
 msgstr "Vérifier seulement les systèmes de fichiers locaux"
 
-#: plugins/check_disk.c:931
+#: plugins/check_disk.c:940
 msgid ""
 "Only check local filesystems against thresholds. Yet call stat on remote "
 "filesystems"
 msgstr ""
 
-#: plugins/check_disk.c:932
+#: plugins/check_disk.c:941
 msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)"
 msgstr ""
 
-#: plugins/check_disk.c:934
+#: plugins/check_disk.c:943
 msgid "Display the mountpoint instead of the partition"
 msgstr "Afficher le point de montage au lieu de la partition"
 
-#: plugins/check_disk.c:936
+#: plugins/check_disk.c:945
 msgid "Same as '--units MB'"
 msgstr "Pareil à '--units MB'"
 
-#: plugins/check_disk.c:938
+#: plugins/check_disk.c:947
 msgid "Explicitly select all pathes. This is equivalent to -R '.*'"
 msgstr ""
 
-#: plugins/check_disk.c:940
+#: plugins/check_disk.c:949
 msgid ""
 "Case insensitive regular expression for path/partition (may be repeated)"
 msgstr ""
 "Expression rationnelle indépendante de la case pour un répertoire ou une "
 "partition (peut être utilisé plusieurs fois)"
 
-#: plugins/check_disk.c:942
+#: plugins/check_disk.c:951
 msgid "Regular expression for path or partition (may be repeated)"
 msgstr ""
 "Expression rationnelle pour un répertoire ou une partition (peut être "
 "utilisé plusieurs fois)"
 
-#: plugins/check_disk.c:944
+#: plugins/check_disk.c:953
 msgid ""
 "Regular expression to ignore selected path/partition (case insensitive) (may "
 "be repeated)"
@@ -548,192 +562,192 @@
 "Expression rationnelle pour ignorer un répertoire ou une partition (peut "
 "être utilisé plusieurs fois)"
 
-#: plugins/check_disk.c:946
+#: plugins/check_disk.c:955
 msgid ""
 "Regular expression to ignore selected path or partition (may be repeated)"
 msgstr ""
 "Expression rationnelle pour ignorer un répertoire ou une partition (peut "
 "être utilisé plusieurs fois)"
 
-#: plugins/check_disk.c:949
+#: plugins/check_disk.c:958
 msgid "Choose bytes, kB, MB, GB, TB (default: MB)"
 msgstr "Choisissez octets, kb, MB, GB, TB (par défaut: MB)"
 
-#: plugins/check_disk.c:952
+#: plugins/check_disk.c:961
 msgid "Ignore all filesystems of indicated type (may be repeated)"
 msgstr ""
 "Ignorer tout les systèmes de fichiers qui correspondent au type indiqué "
 "(peut être utilisé plusieurs fois)"
 
-#: plugins/check_disk.c:956
+#: plugins/check_disk.c:972
 msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB"
 msgstr "Vérifie /tmp à 10% et /var à 5% et / à 100MB et 50MB"
 
-#: plugins/check_disk.c:958
+#: plugins/check_disk.c:974
 msgid ""
 "Checks all filesystems not matching -r at 100M and 50M. The fs matching the -"
 "r regex"
 msgstr ""
 
-#: plugins/check_disk.c:959
+#: plugins/check_disk.c:975
 msgid ""
 "are grouped which means the freespace thresholds are applied to all disks "
 "together"
 msgstr ""
 
-#: plugins/check_disk.c:961
+#: plugins/check_disk.c:977
 msgid ""
 "Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use "
 "100M/50M"
 msgstr ""
 
-#: plugins/check_disk.c:986
+#: plugins/check_disk.c:1003
 #, c-format
 msgid "%s %s: %s\n"
 msgstr ""
 
-#: plugins/check_disk.c:986
+#: plugins/check_disk.c:1003
 msgid "is not accessible"
 msgstr ""
 
-#: plugins/check_dns.c:107
+#: plugins/check_dns.c:120
 msgid "nslookup returned an error status"
 msgstr "nslookup à retourné un code d'erreur"
 
-#: plugins/check_dns.c:120
+#: plugins/check_dns.c:138
 msgid "Warning plugin error"
 msgstr "Alerte erreur de plugin"
 
-#: plugins/check_dns.c:140
+#: plugins/check_dns.c:158
 #, c-format
 msgid "DNS CRITICAL - '%s' returned empty host name string\n"
 msgstr "DNS CRITIQUE - '%s' à retourné un nom d'hôte vide\n"
 
-#: plugins/check_dns.c:150
+#: plugins/check_dns.c:164
 msgid "Non-authoritative answer:"
 msgstr "Réponse non autoritative:"
 
-#: plugins/check_dns.c:178
+#: plugins/check_dns.c:205
 #, c-format
 msgid "DNS CRITICAL - '%s' msg parsing exited with no address\n"
 msgstr "DNS CRITIQUE - '%s' n'a pas retourné d'adresse\n"
 
-#: plugins/check_dns.c:184
+#: plugins/check_dns.c:220
 #, c-format
 msgid "expected '%s' but got '%s'"
 msgstr "j'attendais '%s' mais j'ai reçu '%s'"
 
-#: plugins/check_dns.c:190
+#: plugins/check_dns.c:227
 #, c-format
 msgid "server %s is not authoritative for %s"
 msgstr "serveur %s n'est pas autoritaire pour %s"
 
-#: plugins/check_dns.c:204 plugins/check_dummy.c:75 plugins/check_nagios.c:185
-#: plugins/check_procs.c:295
+#: plugins/check_dns.c:241 plugins/check_dummy.c:72 plugins/check_nagios.c:186
+#: plugins/check_procs.c:318
 #, c-format
 msgid "OK"
 msgstr "OK"
 
-#: plugins/check_dns.c:206 plugins/check_dummy.c:78 plugins/check_http.c:953
-#: plugins/check_mysql.c:211 plugins/check_nagios.c:185
-#: plugins/check_procs.c:297
+#: plugins/check_dns.c:243 plugins/check_dummy.c:75 plugins/check_http.c:958
+#: plugins/check_mysql.c:212 plugins/check_nagios.c:186
+#: plugins/check_procs.c:320
 #, c-format
 msgid "WARNING"
 msgstr "AVERTISSEMENT"
 
-#: plugins/check_dns.c:210
+#: plugins/check_dns.c:247
 #, c-format
 msgid "%.3f second response time"
 msgid_plural "%.3f seconds response time"
 msgstr[0] "%.3f secondes de temps de réponse "
 msgstr[1] "%.3f secondes de temps de réponse "
 
-#: plugins/check_dns.c:211
+#: plugins/check_dns.c:248
 #, c-format
 msgid ". %s returns %s"
 msgstr ". %s renvoie %s"
 
-#: plugins/check_dns.c:215
+#: plugins/check_dns.c:252
 #, c-format
 msgid "DNS WARNING - %s\n"
 msgstr "DNS AVERTISSEMENT - %s\n"
 
-#: plugins/check_dns.c:216 plugins/check_dns.c:219 plugins/check_dns.c:222
+#: plugins/check_dns.c:253 plugins/check_dns.c:256 plugins/check_dns.c:259
 msgid " Probably a non-existent host/domain"
 msgstr " Probablement un hôte/domaine inexistant"
 
-#: plugins/check_dns.c:218
+#: plugins/check_dns.c:255
 #, c-format
 msgid "DNS CRITICAL - %s\n"
 msgstr "DNS CRITIQUE - %s\n"
 
-#: plugins/check_dns.c:221
+#: plugins/check_dns.c:258
 #, c-format
 msgid "DNS UNKNOW - %s\n"
 msgstr "DNS INCONNU - %s\n"
 
-#: plugins/check_dns.c:234
+#: plugins/check_dns.c:271
 msgid "Note: nslookup is deprecated and may be removed from future releases."
 msgstr ""
 "Note: nslookup est obsolète et pourra être retiré dans les prochaines "
 "versions."
 
-#: plugins/check_dns.c:235
+#: plugins/check_dns.c:272
 msgid "Consider using the `dig' or `host' programs instead.  Run nslookup with"
 msgstr ""
 "Veuillez utiliser le programme 'dig' ou 'host' à la place. Faire fonctionner "
 "nslookup avec"
 
-#: plugins/check_dns.c:236
+#: plugins/check_dns.c:273
 msgid "the `-sil[ent]' option to prevent this message from appearing."
 msgstr "L'option '-sil[ent]' empêche l'apparition de ce message."
 
-#: plugins/check_dns.c:241
+#: plugins/check_dns.c:278
 #, c-format
 msgid "No response from DNS %s\n"
 msgstr "Pas de réponse du DNS %s\n"
 
-#: plugins/check_dns.c:245
+#: plugins/check_dns.c:282
 #, c-format
 msgid "DNS %s has no records\n"
 msgstr "Le DNS %s n'a pas d'enregistrements\n"
 
-#: plugins/check_dns.c:253
+#: plugins/check_dns.c:290
 #, c-format
 msgid "Connection to DNS %s was refused\n"
 msgstr "La connexion au DNS %s à été refusée\n"
 
-#: plugins/check_dns.c:257
+#: plugins/check_dns.c:294
 #, c-format
 msgid "Query was refused by DNS server at %s\n"
 msgstr "La requête à été refusée par le serveur DNS %s\n"
 
-#: plugins/check_dns.c:261
+#: plugins/check_dns.c:298
 #, c-format
 msgid "No information returned by DNS server at %s\n"
 msgstr "Pas d'information renvoyée par le serveur DNS %s\n"
 
-#: plugins/check_dns.c:267
+#: plugins/check_dns.c:304
 #, c-format
 msgid "Domain %s was not found by the server\n"
 msgstr "Le domaine %s n'a pas été trouvé par le serveur\n"
 
-#: plugins/check_dns.c:271
+#: plugins/check_dns.c:308
 msgid "Network is unreachable\n"
 msgstr "Le réseau est inaccessible\n"
 
-#: plugins/check_dns.c:275
+#: plugins/check_dns.c:312
 #, c-format
 msgid "DNS failure for %s\n"
 msgstr "DNS à échoué pour %s\n"
 
-#: plugins/check_dns.c:339 plugins/check_dns.c:347 plugins/check_dns.c:354
-#: plugins/check_dns.c:359 plugins/check_dns.c:380 plugins/check_dns.c:388
-#: plugins/check_game.c:213 plugins/check_game.c:221
+#: plugins/check_dns.c:376 plugins/check_dns.c:384 plugins/check_dns.c:391
+#: plugins/check_dns.c:396 plugins/check_dns.c:418 plugins/check_dns.c:426
+#: plugins/check_game.c:215 plugins/check_game.c:223
 msgid "Input buffer overflow\n"
 msgstr "Le tampon d'entrée a débordé\n"
 
-#: plugins/check_dns.c:416
+#: plugins/check_dns.c:454
 msgid ""
 "This plugin uses the nslookup program to obtain the IP address for the given "
 "host/domain query."
@@ -741,11 +755,11 @@
 "Ce plugin utilise le programme nslookup pour obtenir l'adresse IP de l'hôte/"
 "domaine à interroger."
 
-#: plugins/check_dns.c:417
+#: plugins/check_dns.c:455
 msgid "An optional DNS server to use may be specified."
 msgstr "Un serveur DNS à utiliser peut être indiqué."
 
-#: plugins/check_dns.c:418
+#: plugins/check_dns.c:456
 msgid ""
 "If no DNS server is specified, the default server(s) specified in /etc/"
 "resolv.conf will be used."
@@ -753,146 +767,162 @@
 "Si aucun serveur DNS n'est spécifié, les serveurs spécifiés dans /etc/resolv."
 "conf seront utilisé."
 
-#: plugins/check_dns.c:427
+#: plugins/check_dns.c:466
 msgid "The name or address you want to query"
 msgstr "Le nom ou l'adresse que vous voulez interroger"
 
-#: plugins/check_dns.c:429
+#: plugins/check_dns.c:468
 msgid "Optional DNS server you want to use for the lookup"
 msgstr "Serveur DNS que vous voulez utiliser pour la recherche"
 
-#: plugins/check_dns.c:431
+#: plugins/check_dns.c:470
+#, fuzzy
 msgid ""
-"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with ."
+"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with"
 msgstr ""
 "Adresse IP que le serveur DNS doit renvoyer. Les hôtes doivent se terminer "
 "avec ."
 
-#: plugins/check_dns.c:433
+#: plugins/check_dns.c:471
+msgid ""
+"a dot (.). This option can be repeated multiple times (Returns OK if any"
+msgstr ""
+
+#: plugins/check_dns.c:472
+msgid ""
+"value match). If multiple addresses are returned at once, you have to match"
+msgstr ""
+
+#: plugins/check_dns.c:473
+msgid ""
+"the whole string of addresses separated with commas (sorted alphabetically)."
+msgstr ""
+
+#: plugins/check_dns.c:475
 msgid "Optionally expect the DNS server to be authoritative for the lookup"
 msgstr "Serveur DNS qui doit normalement être autoritaire pour la recherche"
 
-#: plugins/check_dns.c:435
+#: plugins/check_dns.c:477
 msgid "Return warning if elapsed time exceeds value. Default off"
 msgstr ""
 "Renvoie une alerte si le temps écoulé dépasse la valeur indiquée. Désactivé "
 "par défaut"
 
-#: plugins/check_dns.c:437
+#: plugins/check_dns.c:479
 msgid "Return critical if elapsed time exceeds value. Default off"
 msgstr ""
 "Renvoie critique si le temps utilisé dépasse la valeur indiquée. Désactivé "
 "par défaut"
 
-#: plugins/check_dummy.c:69
+#: plugins/check_dummy.c:66
 msgid "Arguments to check_dummy must be an integer"
 msgstr "Les arguments pour check_dummy doivent être des entiers"
 
-#: plugins/check_dummy.c:89
+#: plugins/check_dummy.c:86
 #, c-format
 msgid "Status %d is not a supported error state\n"
 msgstr "Le résultat %d n'est pas un résultat supporté\n"
 
-#: plugins/check_dummy.c:111
+#: plugins/check_dummy.c:108
 msgid ""
 "This plugin will simply return the state corresponding to the numeric value"
 msgstr ""
 "Ce plugin renverra simplement l'état correspondant à la valeur numérique"
 
-#: plugins/check_dummy.c:113
+#: plugins/check_dummy.c:110
 msgid "of the <state> argument with optional text"
 msgstr "du paramètre <state> avec un texte optionnel"
 
-#: plugins/check_fping.c:103 plugins/check_hpjd.c:131 plugins/check_ping.c:432
-#: plugins/check_procs.c:159 plugins/check_snmp.c:210 plugins/check_swap.c:178
-#: plugins/check_users.c:75 plugins/urlize.c:117
+#: plugins/check_fping.c:104 plugins/check_hpjd.c:132 plugins/check_ping.c:441
+#: plugins/check_procs.c:167 plugins/check_snmp.c:210 plugins/check_swap.c:179
+#: plugins/check_users.c:77 plugins/urlize.c:114
 #, c-format
 msgid "Could not open pipe: %s\n"
 msgstr "Impossible d'ouvrir le pipe: %s\n"
 
-#: plugins/check_fping.c:109 plugins/check_hpjd.c:137 plugins/check_load.c:157
-#: plugins/check_procs.c:165 plugins/check_snmp.c:217 plugins/check_swap.c:184
-#: plugins/check_users.c:81 plugins/urlize.c:123
+#: plugins/check_fping.c:110 plugins/check_hpjd.c:138 plugins/check_load.c:157
+#: plugins/check_procs.c:172 plugins/check_snmp.c:217 plugins/check_swap.c:185
+#: plugins/check_users.c:83 plugins/urlize.c:120
 #, c-format
 msgid "Could not open stderr for %s\n"
 msgstr "Impossible d'ouvrir la sortie d'erreur standard pour %s\n"
 
-#: plugins/check_fping.c:149
+#: plugins/check_fping.c:150
 #, c-format
 msgid "FPING UNKNOW - %s not found\n"
 msgstr "PING INCONNU - Hôte non trouvé (%s)\n"
 
-#: plugins/check_fping.c:153
+#: plugins/check_fping.c:154
 #, c-format
 msgid "FPING CRITICAL - %s is unreachable\n"
 msgstr "PING CRITIQUE - Hôte inaccessible (%s)\n"
 
-#: plugins/check_fping.c:158
+#: plugins/check_fping.c:159
 #, c-format
 msgid "FPING CRITICAL - %s is down\n"
 msgstr "FPING CRITIQUE - %s est en panne\n"
 
-#: plugins/check_fping.c:185
+#: plugins/check_fping.c:186
 #, c-format
 msgid "FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n"
 msgstr "FPING %s - %s (perte=%.0f%%, rta=%f ms)|%s %s\n"
 
-#: plugins/check_fping.c:206
+#: plugins/check_fping.c:207
 #, c-format
 msgid "FPING %s - %s (loss=%.0f%% )|%s\n"
 msgstr "FPING %s - %s (perte=%.0f%% )|%s\n"
 
-#: plugins/check_fping.c:273 plugins/check_hpjd.c:341 plugins/check_hpjd.c:364
-#: plugins/check_mysql.c:277 plugins/check_mysql.c:326 plugins/check_ntp.c:709
-#: plugins/check_ntp_peer.c:489 plugins/check_ntp_time.c:494
-#: plugins/check_pgsql.c:255 plugins/check_ping.c:290 plugins/check_ping.c:413
-#: plugins/check_radius.c:249 plugins/check_real.c:319
-#: plugins/check_real.c:381 plugins/check_smtp.c:512 plugins/check_smtp.c:638
-#: plugins/check_ssh.c:162 plugins/check_time.c:244 plugins/check_time.c:319
-#: plugins/check_ups.c:503 plugins/check_ups.c:572
+#: plugins/check_fping.c:274 plugins/check_hpjd.c:342 plugins/check_hpjd.c:365
+#: plugins/check_mysql.c:279 plugins/check_mysql.c:337 plugins/check_ntp.c:709
+#: plugins/check_ntp_peer.c:492 plugins/check_ntp_time.c:494
+#: plugins/check_pgsql.c:256 plugins/check_ping.c:299 plugins/check_ping.c:422
+#: plugins/check_radius.c:249 plugins/check_real.c:318
+#: plugins/check_real.c:380 plugins/check_smtp.c:513 plugins/check_smtp.c:639
+#: plugins/check_ssh.c:161 plugins/check_time.c:244 plugins/check_time.c:319
+#: plugins/check_ups.c:504 plugins/check_ups.c:573
 msgid "Invalid hostname/address"
 msgstr "Adresse/Nom d'hôte invalide"
 
-#: plugins/check_fping.c:307
+#: plugins/check_fping.c:308
 msgid "Packet size must be a positive integer"
 msgstr "La taille du paquet doit être un entier positif"
 
-#: plugins/check_fping.c:313
+#: plugins/check_fping.c:314
 msgid "Packet count must be a positive integer"
 msgstr "Le nombre de paquets doit être un entier positif"
 
-#: plugins/check_fping.c:319 plugins/check_ntp.c:733
-#: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:518
-#: plugins/check_radius.c:290 plugins/check_time.c:323
+#: plugins/check_fping.c:320 plugins/check_ntp.c:733
+#: plugins/check_ntp_peer.c:516 plugins/check_ntp_time.c:518
+#: plugins/check_radius.c:296 plugins/check_time.c:323
 msgid "Hostname was not supplied"
 msgstr "Le nom de l'hôte n'a pas été spécifié"
 
-#: plugins/check_fping.c:339
+#: plugins/check_fping.c:340
 #, c-format
 msgid "%s: Only one threshold may be packet loss (%s)\n"
 msgstr ""
 "%s: Seulement un seuil peut être utilisé pour les pertes de paquets (%s)\n"
 
-#: plugins/check_fping.c:343
+#: plugins/check_fping.c:344
 #, c-format
 msgid "%s: Only one threshold must be packet loss (%s)\n"
 msgstr ""
 "%s: Seulement un seuil doit être utilisé pour les pertes de paquets (%s)\n"
 
-#: plugins/check_fping.c:375
+#: plugins/check_fping.c:376
 msgid ""
 "This plugin will use the fping command to ping the specified host for a fast "
 "check"
 msgstr ""
 "Ce plugin va utiliser la commande fping pour pinger l'hôte de manière rapide."
 
-#: plugins/check_fping.c:377
+#: plugins/check_fping.c:378
 msgid "Note that it is necessary to set the suid flag on fping."
 msgstr ""
 "Veuillez noter qu'il est nécessaire de mettre le bit suid sur le programme "
 "fping."
 
-#: plugins/check_fping.c:386
+#: plugins/check_fping.c:388
 msgid ""
 "name or IP Address of host to ping (IP Address bypasses name lookup, "
 "reducing system load)"
@@ -900,25 +930,25 @@
 "nom ou adresse IP des hôtes à pinger (l'indication d'un adresse IP évite une "
 "recherche sur le nom, ce qui réduit la charge système)"
 
-#: plugins/check_fping.c:388 plugins/check_ping.c:567
+#: plugins/check_fping.c:390 plugins/check_ping.c:577
 msgid "warning threshold pair"
 msgstr "Valeurs pour le seuil d'avertissement"
 
-#: plugins/check_fping.c:390 plugins/check_ping.c:569
+#: plugins/check_fping.c:392 plugins/check_ping.c:579
 msgid "critical threshold pair"
 msgstr "Valeurs pour le seuil critique"
 
-#: plugins/check_fping.c:392
+#: plugins/check_fping.c:394
 #, c-format
 msgid "size of ICMP packet (default: %d)"
 msgstr "taille du paquet ICMP (%d par défaut)"
 
-#: plugins/check_fping.c:394
+#: plugins/check_fping.c:396
 #, c-format
 msgid "number of ICMP packets to send (default: %d)"
 msgstr "nombre de paquets ICMP à envoyer (%d par défaut)"
 
-#: plugins/check_fping.c:397
+#: plugins/check_fping.c:399
 #, c-format
 msgid ""
 "THRESHOLD is <rta>,<pl>%% where <rta> is the round trip average travel time "
@@ -927,73 +957,74 @@
 "Le seuil est <rta>,<pl>%% ou <rta> est le temps moyen pour l'aller retour "
 "(ms)"
 
-#: plugins/check_fping.c:398
+#: plugins/check_fping.c:400
 msgid ""
 "which triggers a WARNING or CRITICAL state, and <pl> is the percentage of"
 msgstr ""
 "qui déclenche résultat AVERTISSEMENT ou CRITIQUE, et <pl> est le pourcentage "
 "de"
 
-#: plugins/check_fping.c:399
+#: plugins/check_fping.c:401
 msgid "packet loss to trigger an alarm state."
 msgstr "paquets perdu pour déclencher une alarme."
 
-#: plugins/check_game.c:113
+#: plugins/check_game.c:115
 #, c-format
 msgid "CRITICAL - Host type parameter incorrect!\n"
 msgstr "CRITIQUE - Argument de type hôte incorrect!\n"
 
-#: plugins/check_game.c:128
+#: plugins/check_game.c:130
 #, c-format
 msgid "CRITICAL - Host not found\n"
 msgstr "CRITIQUE - Hôte non trouvé\n"
 
-#: plugins/check_game.c:132
+#: plugins/check_game.c:134
 #, c-format
 msgid "CRITICAL - Game server down or unavailable\n"
 msgstr "CRITIQUE - Serveur de jeux en panne ou non disponible\n"
 
-#: plugins/check_game.c:136
+#: plugins/check_game.c:138
 #, c-format
 msgid "CRITICAL - Game server timeout\n"
 msgstr "CRITIQUE - Temps d'attente pour le serveur de jeux dépassé\n"
 
-#: plugins/check_game.c:299
+#: plugins/check_game.c:301
 #, c-format
 msgid "This plugin tests game server connections with the specified host."
 msgstr "Le plugin teste la connexion au serveur de jeux avec l'hôte spécifié."
 
-#: plugins/check_game.c:308
+#: plugins/check_game.c:311
 msgid "Optional port of which to connect"
 msgstr ""
 
-#: plugins/check_game.c:310
+#: plugins/check_game.c:313
 msgid "Field number in raw qstat output that contains game name"
 msgstr ""
 
-#: plugins/check_game.c:312
+#: plugins/check_game.c:315
 msgid "Field number in raw qstat output that contains map name"
 msgstr ""
 
-#: plugins/check_game.c:314
+#: plugins/check_game.c:317
 msgid "Field number in raw qstat output that contains ping time"
 msgstr ""
 
-#: plugins/check_game.c:320
+#: plugins/check_game.c:323
+#, fuzzy
 msgid ""
 "This plugin uses the 'qstat' command, the popular game server status query "
-"tool ."
+"tool."
 msgstr ""
 "Ce plugin utilise la commande 'qstat', le programme préféré pour tester les "
 "serveurs de jeux."
 
-#: plugins/check_game.c:322
+#: plugins/check_game.c:324
 msgid ""
 "If you don't have the package installed, you will need to download it from"
 msgstr ""
 "Si vous n'avez pas le programme installé, vous devrez le télécharger depuis"
 
-#: plugins/check_game.c:324
+#: plugins/check_game.c:325
 msgid ""
 "http://www.activesw.com/people/steve/qstat.html before you can use this "
 "plugin."
@@ -1001,666 +1032,667 @@
 "http://www.activesw.com/people/steve/qstat.html avant de pouvoir utiliser ce "
 "plugin."
 
-#: plugins/check_hpjd.c:242
+#: plugins/check_hpjd.c:243
 msgid "Paper Jam"
 msgstr "Bourrage Papier"
 
-#: plugins/check_hpjd.c:246
+#: plugins/check_hpjd.c:247
 msgid "Out of Paper"
 msgstr "Plus de Papier"
 
-#: plugins/check_hpjd.c:251
+#: plugins/check_hpjd.c:252
 msgid "Printer Offline"
 msgstr "Imprimante hors ligne"
 
-#: plugins/check_hpjd.c:256
+#: plugins/check_hpjd.c:257
 msgid "Peripheral Error"
 msgstr "Erreur du périphérique"
 
-#: plugins/check_hpjd.c:260
+#: plugins/check_hpjd.c:261
 msgid "Intervention Required"
 msgstr "Intervention Requise"
 
-#: plugins/check_hpjd.c:264
+#: plugins/check_hpjd.c:265
 msgid "Toner Low"
 msgstr "Toner Faible"
 
-#: plugins/check_hpjd.c:268
+#: plugins/check_hpjd.c:269
 msgid "Insufficient Memory"
 msgstr "Mémoire Insuffisante"
 
-#: plugins/check_hpjd.c:272
+#: plugins/check_hpjd.c:273
 msgid "A Door is Open"
 msgstr "Une porte est ouverte"
 
-#: plugins/check_hpjd.c:276
+#: plugins/check_hpjd.c:277
 msgid "Output Tray is Full"
 msgstr "Le bac de sortie est plein"
 
-#: plugins/check_hpjd.c:280
+#: plugins/check_hpjd.c:281
 msgid "Data too Slow for Engine"
 msgstr "Le données arrivent trop lentement pour l'imprimante"
 
-#: plugins/check_hpjd.c:284
+#: plugins/check_hpjd.c:285
 msgid "Unknown Paper Error"
 msgstr "Erreur de papier inconnue"
 
-#: plugins/check_hpjd.c:289
+#: plugins/check_hpjd.c:290
 #, c-format
 msgid "Printer ok - (%s)\n"
 msgstr "Imprimante ok - (%s)\n"
 
-#: plugins/check_hpjd.c:394
+#: plugins/check_hpjd.c:395
 msgid "This plugin tests the STATUS of an HP printer with a JetDirect card."
 msgstr "Ce plugin teste l'état d'une imprimante HP avec une carte JetDirect."
 
-#: plugins/check_hpjd.c:395
+#: plugins/check_hpjd.c:396
 msgid "Net-snmp must be installed on the computer running the plugin."
 msgstr "Net-snmp doit être installé sur l'ordinateur qui exécute le plugin."
 
-#: plugins/check_hpjd.c:404
+#: plugins/check_hpjd.c:406
 msgid "The SNMP community name "
 msgstr "Le nom de la communauté SNMP "
 
-#: plugins/check_hpjd.c:405
+#: plugins/check_hpjd.c:407
 #, c-format
 msgid "(default=%s)"
 msgstr "(défaut=%s)"
 
-#: plugins/check_http.c:254
+#: plugins/check_http.c:255
 msgid "Critical threshold must be integer"
 msgstr "le seuil critique doit être un entier positif"
 
-#: plugins/check_http.c:262
+#: plugins/check_http.c:263
 msgid "Warning threshold must be integer"
 msgstr "Le seuil d'avertissement doit être un entier positif"
 
-#: plugins/check_http.c:288 plugins/check_tcp.c:563
+#: plugins/check_http.c:289 plugins/check_tcp.c:564
 msgid "Invalid certificate expiration period"
 msgstr "Période d'expiration du certificat invalide"
 
-#: plugins/check_http.c:297 plugins/check_tcp.c:575
+#: plugins/check_http.c:298 plugins/check_tcp.c:576
 msgid "Invalid option - SSL is not available"
 msgstr "Option invalide - SSL n'est pas disponible"
 
-#: plugins/check_http.c:315
+#: plugins/check_http.c:316
 #, c-format
 msgid "option f:%d \n"
 msgstr "option f:%d \n"
 
-#: plugins/check_http.c:332
+#: plugins/check_http.c:337
 msgid "Invalid port number"
 msgstr "Numéro de port invalide"
 
-#: plugins/check_http.c:370
+#: plugins/check_http.c:375
 #, c-format
 msgid "Could Not Compile Regular Expression: %s"
 msgstr "Impossible de compiler l'expression rationnelle: %s"
 
-#: plugins/check_http.c:384 plugins/check_ntp.c:722
-#: plugins/check_ntp_peer.c:502 plugins/check_ntp_time.c:507
-#: plugins/check_smtp.c:618 plugins/check_ssh.c:154 plugins/check_tcp.c:467
+#: plugins/check_http.c:389 plugins/check_ntp.c:722
+#: plugins/check_ntp_peer.c:505 plugins/check_ntp_time.c:507
+#: plugins/check_smtp.c:619 plugins/check_ssh.c:153 plugins/check_tcp.c:468
 msgid "IPv6 support not available"
 msgstr "Support IPv6 non disponible"
 
-#: plugins/check_http.c:446 plugins/check_ping.c:417
+#: plugins/check_http.c:451 plugins/check_ping.c:426
 msgid "You must specify a server address or host name"
 msgstr "Vous devez spécifier une adresse ou un nom d'hôte"
 
-#: plugins/check_http.c:629
+#: plugins/check_http.c:634
 msgid "HTTP UNKNOWN - Server date unknown\n"
 msgstr "HTTP INCONNU - Date du serveur inconnue\n"
 
-#: plugins/check_http.c:631
+#: plugins/check_http.c:636
 msgid "HTTP CRITICAL - Document modification date unknown\n"
 msgstr "HTTP CRITIQUE - Date de modification du document inconnue\n"
 
-#: plugins/check_http.c:637
+#: plugins/check_http.c:642
 #, c-format
 msgid "HTTP CRITICAL - Server date \"%100s\" unparsable"
 msgstr "HTTP CRITIQUE - Date du serveur \"%100s\" illisible"
 
-#: plugins/check_http.c:639
+#: plugins/check_http.c:644
 #, c-format
 msgid "HTTP CRITICAL - Document date \"%100s\" unparsable"
 msgstr "HTTP CRITIQUE - Date du document \"%100s\" illisible"
 
-#: plugins/check_http.c:641
+#: plugins/check_http.c:646
 #, c-format
 msgid "HTTP CRITICAL - Document is %d seconds in the future\n"
 msgstr "HTTP CRITIQUE - La date du document est %d secondes dans le futur\n"
 
-#: plugins/check_http.c:646
+#: plugins/check_http.c:651
 #, c-format
 msgid "HTTP CRITICAL - Last modified %.1f days ago\n"
 msgstr "HTTP CRITIQUE - Dernière modification %.1f jours auparavant\n"
 
-#: plugins/check_http.c:650
+#: plugins/check_http.c:655
 #, c-format
 msgid "HTTP CRITICAL - Last modified %d:%02d:%02d ago\n"
 msgstr "HTTP CRITIQUE - Dernière modification %d:%02d:%02d auparavant\n"
 
-#: plugins/check_http.c:731
+#: plugins/check_http.c:736
 msgid "HTTP CRITICAL - Unable to open TCP socket\n"
 msgstr "HTTP CRITIQUE - Impossible d'ouvrir un socket TCP\n"
 
-#: plugins/check_http.c:814
+#: plugins/check_http.c:819
 msgid "HTTP CRITICAL - Error on receive\n"
 msgstr "HTTP CRITIQUE - Erreur dans la réception\n"
 
-#: plugins/check_http.c:824
+#: plugins/check_http.c:829
 msgid "HTTP CRITICAL - No data received from host\n"
 msgstr "HTTP CRITIQUE - Pas de données reçues de l'hôte\n"
 
-#: plugins/check_http.c:874
+#: plugins/check_http.c:879
+#, c-format
 msgid "Invalid HTTP response received from host\n"
 msgstr "Réponse HTTP invalide reçue de l'hôte\n"
 
-#: plugins/check_http.c:877
+#: plugins/check_http.c:882
 #, c-format
 msgid "Invalid HTTP response received from host on port %d\n"
 msgstr "Réponse HTTP invalide reçue de l'hôte sur le port %d\n"
 
-#: plugins/check_http.c:885
+#: plugins/check_http.c:890
 #, c-format
 msgid "HTTP OK: Status line output matched \"%s\"\n"
 msgstr "HTTP OK: La ligne d'état correspond à \"%s\"\n"
 
-#: plugins/check_http.c:897
+#: plugins/check_http.c:902
 #, c-format
 msgid "HTTP CRITICAL: Invalid Status Line (%s)\n"
 msgstr "HTTP CRITIQUE: Ligne d'état non valide (%s)\n"
 
-#: plugins/check_http.c:904
+#: plugins/check_http.c:909
 #, c-format
 msgid "HTTP CRITICAL: Invalid Status (%s)\n"
 msgstr "HTTP CRITIQUE: Etat Invalide (%s)\n"
 
-#: plugins/check_http.c:908
+#: plugins/check_http.c:913
 #, c-format
 msgid "HTTP CRITICAL: %s\n"
 msgstr "HTTP CRITIQUE: %s\n"
 
-#: plugins/check_http.c:912
+#: plugins/check_http.c:917
 #, c-format
 msgid "HTTP WARNING: %s\n"
 msgstr "HTTP AVERTISSEMENT: %s\n"
 
-#: plugins/check_http.c:920
+#: plugins/check_http.c:925
 #, c-format
 msgid "HTTP UNKNOWN"
 msgstr "HTTP INCONNU"
 
-#: plugins/check_http.c:922
+#: plugins/check_http.c:927
 #, c-format
 msgid "HTTP OK"
 msgstr ""
 
-#: plugins/check_http.c:924
+#: plugins/check_http.c:929
 #, c-format
 msgid "HTTP WARNING"
 msgstr "HTTP AVERTISSEMENT"
 
-#: plugins/check_http.c:926 plugins/check_http.c:989
+#: plugins/check_http.c:931 plugins/check_http.c:994
 #, c-format
 msgid "HTTP CRITICAL"
 msgstr "HTTP CRITIQUE"
 
-#: plugins/check_http.c:930 plugins/check_http.c:946
+#: plugins/check_http.c:935 plugins/check_http.c:951
 #, c-format
 msgid " - %s - %.3f second response time %s|%s %s\n"
 msgstr " - %s - %.3f secondes de temps de réponse %s|%s %s\n"
 
-#: plugins/check_http.c:960 plugins/check_http.c:977
+#: plugins/check_http.c:965 plugins/check_http.c:982
 #, c-format
 msgid "HTTP OK %s - %.3f second response time %s|%s %s\n"
 msgstr "HTTP OK %s - %.3f secondes de temps de réponse %s|%s %s\n"
 
-#: plugins/check_http.c:967
+#: plugins/check_http.c:972
 #, c-format
 msgid "HTTP CRITICAL - string not found%s|%s %s\n"
 msgstr "HTTP CRITIQUE - chaîne non trouvée%s|%s %s\n"
 
-#: plugins/check_http.c:985
+#: plugins/check_http.c:990
 msgid "pattern not found"
 msgstr "chaîne non trouvée"
 
-#: plugins/check_http.c:987
+#: plugins/check_http.c:992
 msgid "pattern found"
 msgstr "chaîne de caractère trouvée"
 
-#: plugins/check_http.c:997
+#: plugins/check_http.c:1002
 #, c-format
 msgid "HTTP CRITICAL - Execute Error: %s\n"
 msgstr "HTTP CRITIQUE - Erreur d'exécution: %s\n"
 
-#: plugins/check_http.c:1006
+#: plugins/check_http.c:1011
 #, c-format
 msgid "HTTP WARNING: page size %d too large%s|%s\n"
 msgstr "HTTP AVERTISSEMENT: la taille de la page %d est trop grande%s|%s\n"
 
-#: plugins/check_http.c:1010
+#: plugins/check_http.c:1015
 #, c-format
 msgid "HTTP WARNING: page size %d too small%s|%s\n"
 msgstr "HTTP AVERTISSEMENT: la taille de la page %d est trop petite%s|%s\n"
 
-#: plugins/check_http.c:1015
+#: plugins/check_http.c:1020
 #, c-format
 msgid "HTTP OK %s - %d bytes in %.3f seconds %s|%s %s\n"
 msgstr "HTTP OK %s - %d bytes en %.3f secondes %s|%s %s\n"
 
-#: plugins/check_http.c:1048
+#: plugins/check_http.c:1053
 msgid "HTTP UNKNOWN - Could not allocate addr\n"
 msgstr "HTTP INCONNU - Impossible d'allouer une adresse\n"
 
-#: plugins/check_http.c:1052
+#: plugins/check_http.c:1057
 msgid "HTTP UNKNOWN - Could not allocate url\n"
 msgstr "HTTP INCONNU - Impossible d'allouer une URL\n"
 
-#: plugins/check_http.c:1061
+#: plugins/check_http.c:1066
 #, c-format
 msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n"
 msgstr ""
 "HTTP INCONNU - Impossible de trouver l'endroit de la redirection - %s%s\n"
 
-#: plugins/check_http.c:1076
+#: plugins/check_http.c:1081
 #, c-format
 msgid "HTTP UNKNOWN - Empty redirect location%s\n"
 msgstr "HTTP INCONNU - endroit de redirection vide%s\n"
 
-#: plugins/check_http.c:1083
+#: plugins/check_http.c:1088
 msgid "HTTP UNKNOWN - could not allocate url\n"
 msgstr "Impossible d'allouer une URL\n"
 
-#: plugins/check_http.c:1123
+#: plugins/check_http.c:1128
 #, c-format
 msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n"
 msgstr ""
 "HTTP INCONNU - Impossible de définir l'endroit de la redirection - %s%s\n"
 
-#: plugins/check_http.c:1133
+#: plugins/check_http.c:1138
 #, c-format
 msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n"
 msgstr ""
 "HTTP AVERTISSEMENT - le niveau maximum de redirection %d à été dépassé - %"
 "s://%s:%d%s%s\n"
 
-#: plugins/check_http.c:1141
+#: plugins/check_http.c:1146
 #, c-format
 msgid "HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n"
 msgstr ""
 "HTTP AVERTISSEMENT - la redirection crée une boucle infinie - %s://%s:%d%s%"
 "s\n"
 
-#: plugins/check_http.c:1156
+#: plugins/check_http.c:1161
 #, c-format
 msgid "HTTP UNKNOWN - Could not allocate server_url%s\n"
 msgstr "HTTP INCONNU - Impossible d'allouer server_url%s\n"
 
-#: plugins/check_http.c:1162
+#: plugins/check_http.c:1167
 #, c-format
 msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n"
 msgstr "HTTP INCONNU - Redirection à un port supérieur à %d - %s://%s:%d%s%s\n"
 
-#: plugins/check_http.c:1167
+#: plugins/check_http.c:1172
 #, c-format
 msgid "Redirection to %s://%s:%d%s\n"
 msgstr "Redirection vers %s://%s:%d%s\n"
 
-#: plugins/check_http.c:1219
+#: plugins/check_http.c:1224
 msgid "This plugin tests the HTTP service on the specified host. It can test"
 msgstr ""
 "Ce plugin teste le service HTTP sur l'hôte spécifié. Il peut tester les"
 
-#: plugins/check_http.c:1220
+#: plugins/check_http.c:1225
 msgid "normal (http) and secure (https) servers, follow redirects, search for"
 msgstr ""
 "serveurs normaux (http) et sécurisés (https), suivre les redirections, "
 "rechercher des"
 
-#: plugins/check_http.c:1221
+#: plugins/check_http.c:1226
 msgid "strings and regular expressions, check connection times, and report on"
 msgstr ""
 "chaînes de caractères et expressions rationnelles, vérifier le temps de "
 "réponse"
 
-#: plugins/check_http.c:1222
+#: plugins/check_http.c:1227
 msgid "certificate expiration times."
 msgstr "et rapporter la date d'expiration du certificat."
 
-#: plugins/check_http.c:1228
+#: plugins/check_http.c:1233
 #, c-format
 msgid "NOTE: One or both of -H and -I must be specified"
 msgstr "NOTE: les paramètres -H et -I peuvent être spécifiés"
 
-#: plugins/check_http.c:1235
+#: plugins/check_http.c:1241
 msgid "Host name argument for servers using host headers (virtual host)"
 msgstr ""
 
-#: plugins/check_http.c:1236
+#: plugins/check_http.c:1242
 msgid "Append a port to include it in the header (eg: example.com:5000)"
 msgstr ""
 
-#: plugins/check_http.c:1238
+#: plugins/check_http.c:1244
 msgid ""
 "IP address or name (use numeric address if possible to bypass DNS lookup)."
 msgstr ""
 
-#: plugins/check_http.c:1240
+#: plugins/check_http.c:1246
 msgid "Port number (default: "
 msgstr "Numéro du port (défaut: "
 
-#: plugins/check_http.c:1247
+#: plugins/check_http.c:1253
 msgid "Connect via SSL. Port defaults to 443"
 msgstr ""
 
-#: plugins/check_http.c:1249
+#: plugins/check_http.c:1255
 msgid ""
 "Minimum number of days a certificate has to be valid. Port defaults to 443"
 msgstr ""
 "Nombre de jours minimum pour que le certificat soit valide. Port par défaut "
 "443"
 
-#: plugins/check_http.c:1250
+#: plugins/check_http.c:1256
 msgid "(when this option is used the url is not checked.)\n"
 msgstr ""
 
-#: plugins/check_http.c:1254
+#: plugins/check_http.c:1260
 msgid "String to expect in first (status) line of server response (default: "
 msgstr "Texte attendu dans la première ligne de réponse du serveur (défaut: "
 
-#: plugins/check_http.c:1256
+#: plugins/check_http.c:1262
 msgid ""
 "If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)"
 msgstr ""
 
-#: plugins/check_http.c:1258
+#: plugins/check_http.c:1264
 msgid "String to expect in the content"
 msgstr "Chaîne de caractère attendue dans le contenu"
 
-#: plugins/check_http.c:1260
+#: plugins/check_http.c:1266
 msgid "URL to GET or POST (default: /)"
 msgstr "URL pour le GET ou le POST (défaut: /)"
 
-#: plugins/check_http.c:1262
+#: plugins/check_http.c:1268
 msgid "URL encoded http POST data"
 msgstr ""
 
-#: plugins/check_http.c:1264
+#: plugins/check_http.c:1270
 msgid "Don't wait for document body: stop reading after headers."
 msgstr ""
 "Ne pas attendre pour le corps du document: arrêter de lire après les entêtes"
 
-#: plugins/check_http.c:1265
+#: plugins/check_http.c:1271
 msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)"
 msgstr "(Veuillez noter qu'un HTTP GET ou POST est effectué, pas un HEAD.)"
 
-#: plugins/check_http.c:1267
+#: plugins/check_http.c:1273
 msgid "Warn if document is more than SECONDS old. the number can also be of"
 msgstr ""
 
-#: plugins/check_http.c:1268
+#: plugins/check_http.c:1274
 msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days."
 msgstr ""
 
-#: plugins/check_http.c:1270
+#: plugins/check_http.c:1276
 msgid "specify Content-Type header media type when POSTing\n"
 msgstr ""
 
-#: plugins/check_http.c:1273
+#: plugins/check_http.c:1279
 msgid "Allow regex to span newlines (must precede -r or -R)"
 msgstr ""
 
-#: plugins/check_http.c:1275
+#: plugins/check_http.c:1281
 msgid "Search page for regex STRING"
 msgstr ""
 
-#: plugins/check_http.c:1277
+#: plugins/check_http.c:1283
 msgid "Search page for case-insensitive regex STRING"
 msgstr ""
 
-#: plugins/check_http.c:1279
+#: plugins/check_http.c:1285
 msgid "Return CRITICAL if found, OK if not\n"
 msgstr ""
 
-#: plugins/check_http.c:1282
+#: plugins/check_http.c:1288
 msgid "Username:password on sites with basic authentication"
 msgstr ""
 
-#: plugins/check_http.c:1284
+#: plugins/check_http.c:1290
 msgid "String to be sent in http header as \"User Agent\""
 msgstr ""
 
-#: plugins/check_http.c:1286
+#: plugins/check_http.c:1292
 msgid ""
 " Any other tags to be sent in http header. Use multiple times for additional "
 "headers"
 msgstr ""
 
-#: plugins/check_http.c:1288
+#: plugins/check_http.c:1294
 msgid "Wrap output in HTML link (obsoleted by urlize)"
 msgstr ""
 
-#: plugins/check_http.c:1290
+#: plugins/check_http.c:1296
 msgid "How to handle redirected pages"
 msgstr ""
 
-#: plugins/check_http.c:1292
+#: plugins/check_http.c:1298
 msgid "Minimum page size required (bytes) : Maximum page size required (bytes)"
 msgstr ""
 
-#: plugins/check_http.c:1301
+#: plugins/check_http.c:1308
 msgid "This plugin will attempt to open an HTTP connection with the host."
 msgstr "Ce plugin va essayer d'ouvrir un connexion SMTP avec l'hôte."
 
-#: plugins/check_http.c:1302
+#: plugins/check_http.c:1309
 msgid ""
 "Successful connects return STATE_OK, refusals and timeouts return "
 "STATE_CRITICAL"
 msgstr ""
 
-#: plugins/check_http.c:1303
+#: plugins/check_http.c:1310
 msgid ""
 "other errors return STATE_UNKNOWN.  Successful connects, but incorrect "
 "reponse"
 msgstr ""
 
-#: plugins/check_http.c:1304
+#: plugins/check_http.c:1311
 msgid ""
 "messages from the host result in STATE_WARNING return values.  If you are"
 msgstr ""
 
-#: plugins/check_http.c:1305
+#: plugins/check_http.c:1312
 msgid ""
 "checking a virtual server that uses 'host headers' you must supply the FQDN"
 msgstr ""
 
-#: plugins/check_http.c:1306
+#: plugins/check_http.c:1313
 msgid "(fully qualified domain name) as the [host_name] argument."
 msgstr ""
 
-#: plugins/check_http.c:1309
+#: plugins/check_http.c:1319
 msgid "This plugin can also check whether an SSL enabled web server is able to"
 msgstr ""
 
-#: plugins/check_http.c:1310
+#: plugins/check_http.c:1320
 msgid "serve content (optionally within a specified time) or whether the X509 "
 msgstr ""
 
-#: plugins/check_http.c:1311
+#: plugins/check_http.c:1321
 msgid "certificate is still valid for the specified number of days."
 msgstr ""
 
-#: plugins/check_http.c:1314
+#: plugins/check_http.c:1325
 msgid ""
 "When the 'www.verisign.com' server returns its content within 5 seconds,"
 msgstr ""
 
-#: plugins/check_http.c:1315
+#: plugins/check_http.c:1326
 msgid ""
 "a STATE_OK will be returned. When the server returns its content but exceeds"
 msgstr ""
 
-#: plugins/check_http.c:1316
+#: plugins/check_http.c:1327
 msgid ""
 "the 5-second threshold, a STATE_WARNING will be returned. When an error "
 "occurs,"
 msgstr ""
 
-#: plugins/check_http.c:1317
+#: plugins/check_http.c:1328
 msgid "a STATE_CRITICAL will be returned."
 msgstr ""
 
-#: plugins/check_http.c:1320
+#: plugins/check_http.c:1331
 msgid ""
 "When the certificate of 'www.verisign.com' is valid for more than 14 days,"
 msgstr ""
 
-#: plugins/check_http.c:1321
+#: plugins/check_http.c:1332
 msgid ""
 "a STATE_OK is returned. When the certificate is still valid, but for less "
 "than"
 msgstr ""
 
-#: plugins/check_http.c:1322
+#: plugins/check_http.c:1333
 msgid ""
 "14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when"
 msgstr ""
 
-#: plugins/check_http.c:1323
+#: plugins/check_http.c:1334
 msgid "the certificate is expired."
 msgstr "le certificat est expiré."
 
-#: plugins/check_ldap.c:132
+#: plugins/check_ldap.c:136
 #, c-format
 msgid "Could not connect to the server at port %i\n"
 msgstr "Impossible de se connecter au serveur port %i\n"
 
-#: plugins/check_ldap.c:141
+#: plugins/check_ldap.c:145
 #, c-format
 msgid "Could not set protocol version %d\n"
 msgstr "Impossible d'utiliser le protocole version %d\n"
 
-#: plugins/check_ldap.c:156
+#: plugins/check_ldap.c:160
 #, c-format
 msgid "Could not init TLS at port %i!\n"
 msgstr "Impossible d'initialiser TLS sur le port %i!\n"
 
-#: plugins/check_ldap.c:160
+#: plugins/check_ldap.c:164
 #, c-format
 msgid "TLS not supported by the libraries!\n"
 msgstr "TLS n'est pas supporté!\n"
 
-#: plugins/check_ldap.c:180
+#: plugins/check_ldap.c:184
 #, c-format
 msgid "Could not init startTLS at port %i!\n"
 msgstr "Impossible d'initialiser startTLS sur le port %i!\n"
 
-#: plugins/check_ldap.c:184
+#: plugins/check_ldap.c:188
 #, c-format
 msgid "startTLS not supported by the library, needs LDAPv3!\n"
 msgstr ""
 "startTLS n'est pas supporté par la librairie LDAP, j'ai besoin de LDAPv3!\n"
 
-#: plugins/check_ldap.c:194
+#: plugins/check_ldap.c:198
 #, c-format
 msgid "Could not bind to the ldap-server\n"
 msgstr "Impossible de se connecter au serveur LDAP\n"
 
-#: plugins/check_ldap.c:203
+#: plugins/check_ldap.c:207
 #, c-format
 msgid "Could not search/find objectclasses in %s\n"
 msgstr "Impossible de chercher/trouver les objectclasses dans %s\n"
 
-#: plugins/check_ldap.c:226
+#: plugins/check_ldap.c:230
 #, c-format
 msgid "LDAP %s - %.3f seconds response time|%s\n"
 msgstr "LDAP %s - %.3f secondes de temps de réponse|%s\n"
 
-#: plugins/check_ldap.c:338 plugins/check_ldap.c:345
+#: plugins/check_ldap.c:342 plugins/check_ldap.c:349
 #, c-format
 msgid "%s cannot be combined with %s"
 msgstr ""
 
-#: plugins/check_ldap.c:351 plugins/check_ping.c:241
+#: plugins/check_ldap.c:355 plugins/check_ping.c:250
 msgid "IPv6 support not available\n"
 msgstr "Support IPv6 non disponible\n"
 
-#: plugins/check_ldap.c:374
+#: plugins/check_ldap.c:378
 msgid "Please specify the host name\n"
 msgstr "Veuillez spécifier le nom de l'hôte\n"
 
-#: plugins/check_ldap.c:377
+#: plugins/check_ldap.c:381
 msgid "Please specify the LDAP base\n"
 msgstr "Veuillez spécifier la base LDAP\n"
 
-#: plugins/check_ldap.c:405
+#: plugins/check_ldap.c:410
 msgid "ldap attribute to search (default: \"(objectclass=*)\""
 msgstr ""
 
-#: plugins/check_ldap.c:407
+#: plugins/check_ldap.c:412
 msgid "ldap base (eg. ou=my unit, o=my org, c=at"
 msgstr ""
 
-#: plugins/check_ldap.c:409
+#: plugins/check_ldap.c:414
 msgid "ldap bind DN (if required)"
 msgstr ""
 
-#: plugins/check_ldap.c:411
+#: plugins/check_ldap.c:416
 msgid "ldap password (if required)"
 msgstr ""
 
-#: plugins/check_ldap.c:413
+#: plugins/check_ldap.c:418
 msgid "use starttls mechanism introduced in protocol version 3"
 msgstr "utiliser le fonctionnement starttls du protocole version 3"
 
-#: plugins/check_ldap.c:415
-#, c-format
-msgid "use ldaps (ldap v2 ssl method). this also sets the default port to %s"
+#: plugins/check_ldap.c:420
+msgid "use ldaps (ldap v2 ssl method). this also sets the default port to"
 msgstr ""
 
-#: plugins/check_ldap.c:419
+#: plugins/check_ldap.c:424
 msgid "use ldap protocol version 2"
 msgstr "utiliser le protocole ldap version 2"
 
-#: plugins/check_ldap.c:421
+#: plugins/check_ldap.c:426
 msgid "use ldap protocol version 3"
 msgstr "utiliser le protocole ldap version 3"
 
-#: plugins/check_ldap.c:431
-msgid "Note:"
-msgstr "Note:"
+#: plugins/check_ldap.c:427
+#, fuzzy
+msgid "default protocol version:"
+msgstr "Version du protocole SNMP"
 
-#: plugins/check_ldap.c:432
+#: plugins/check_ldap.c:438
 msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be"
 msgstr ""
 
-#: plugins/check_ldap.c:433
+#: plugins/check_ldap.c:439
 #, c-format
 msgid ""
-"implied (using default port %i) unless --port=636 is specified. In that case "
-"%s"
+" implied (using default port %i) unless --port=636 is specified. In that "
+"case\n"
 msgstr ""
 
-#: plugins/check_ldap.c:434
+#: plugins/check_ldap.c:440
 msgid "'SSL on connect' will be used no matter how the plugin was called."
 msgstr ""
 
-#: plugins/check_ldap.c:435
+#: plugins/check_ldap.c:441
 msgid ""
 "This detection is deprecated, please use 'check_ldap' with the '--starttls' "
 "or '--ssl' flags"
 msgstr ""
 
-#: plugins/check_ldap.c:436
+#: plugins/check_ldap.c:442
 msgid "to define the behaviour explicitly instead."
 msgstr ""
 
-#: plugins/check_load.c:94
+#: plugins/check_load.c:91
 msgid "Warning threshold must be float or float triplet!\n"
 msgstr "Le seuil d'alerte doit être un nombre à virgule flottante!\n"
 
-#: plugins/check_load.c:136 plugins/check_load.c:152
+#: plugins/check_load.c:136 plugins/check_load.c:152 plugins/check_procs.c:176
 #, c-format
 msgid "Error opening %s\n"
 msgstr "Erreur à l'ouverture de %s\n"
@@ -1713,20 +1745,20 @@
 msgid "This plugin tests the current system load average."
 msgstr "Ce plugin teste la charge système actuelle."
 
-#: plugins/check_load.c:315
+#: plugins/check_load.c:316
 msgid "Exit with WARNING status if load average exceeds WLOADn"
 msgstr ""
 "Sortir avec un résultat AVERTISSEMENT si la charge moyenne dépasse WLOAD"
 
-#: plugins/check_load.c:317
+#: plugins/check_load.c:318
 msgid "Exit with CRITICAL status if load average exceed CLOADn"
 msgstr "Sortir avec un résultat CRITIQUE si la charge moyenne excède CLOAD"
 
-#: plugins/check_load.c:318
+#: plugins/check_load.c:319
 msgid "the load average format is the same used by \"uptime\" and \"w\""
 msgstr ""
 
-#: plugins/check_load.c:320
+#: plugins/check_load.c:321
 msgid "Divide the load averages by the number of CPUs (when possible)"
 msgstr ""
 
@@ -1789,111 +1821,110 @@
 msgid "two variables recorded in an MRTG log file."
 msgstr "deux variables du fichier de log de MRTG."
 
-#: plugins/check_mrtg.c:335
+#: plugins/check_mrtg.c:336
 msgid "The MRTG log file containing the data you want to monitor"
 msgstr ""
 
-#: plugins/check_mrtg.c:337
+#: plugins/check_mrtg.c:338
 msgid "Minutes before MRTG data is considered to be too old"
 msgstr ""
 
-#: plugins/check_mrtg.c:339
+#: plugins/check_mrtg.c:340
 msgid "Should we check average or maximum values?"
 msgstr ""
 
-#: plugins/check_mrtg.c:341
+#: plugins/check_mrtg.c:342
 msgid "Which variable set should we inspect? (1 or 2)"
 msgstr ""
 
-#: plugins/check_mrtg.c:343
+#: plugins/check_mrtg.c:344
 msgid "Threshold value for data to result in WARNING status"
 msgstr ""
 
-#: plugins/check_mrtg.c:345
+#: plugins/check_mrtg.c:346
 msgid "Threshold value for data to result in CRITICAL status"
 msgstr ""
 
-#: plugins/check_mrtg.c:347
+#: plugins/check_mrtg.c:348
 msgid "Type label for data (Examples: Conns, \"Processor Load\", In, Out)"
 msgstr ""
 
-#: plugins/check_mrtg.c:349
+#: plugins/check_mrtg.c:350
 msgid "Option units label for data (Example: Packets/Sec, Errors/Sec,"
 msgstr ""
 
-#: plugins/check_mrtg.c:350
+#: plugins/check_mrtg.c:351
 #, c-format
 msgid "\"Bytes Per Second\", \"%% Utilization\")"
 msgstr ""
 
-#: plugins/check_mrtg.c:352
+#: plugins/check_mrtg.c:354
 msgid ""
 "If the value exceeds the <vwl> threshold, a WARNING status is returned. If"
 msgstr ""
 
-#: plugins/check_mrtg.c:353
+#: plugins/check_mrtg.c:355
 msgid ""
 "the value exceeds the <vcl> threshold, a CRITICAL status is returned.  If"
 msgstr ""
 
-#: plugins/check_mrtg.c:354
+#: plugins/check_mrtg.c:356
 msgid "the data in the log file is older than <expire_minutes> old, a WARNING"
 msgstr ""
 
-#: plugins/check_mrtg.c:355
+#: plugins/check_mrtg.c:357
 msgid "status is returned and a warning message is printed."
 msgstr ""
 
-#: plugins/check_mrtg.c:357
+#: plugins/check_mrtg.c:360
 msgid ""
 "This plugin is useful for monitoring MRTG data that does not correspond to"
 msgstr ""
 
-#: plugins/check_mrtg.c:358
+#: plugins/check_mrtg.c:361
 msgid ""
 "bandwidth usage.  (Use the check_mrtgtraf plugin for monitoring bandwidth)."
 msgstr ""
 
-#: plugins/check_mrtg.c:359
+#: plugins/check_mrtg.c:362
 msgid ""
 "It can be used to monitor any kind of data that MRTG is monitoring - errors,"
 msgstr ""
 
-#: plugins/check_mrtg.c:360
+#: plugins/check_mrtg.c:363
 msgid ""
 "packets/sec, etc.  I use MRTG in conjuction with the Novell NLM that allows"
 msgstr ""
 
-#: plugins/check_mrtg.c:361
+#: plugins/check_mrtg.c:364
 msgid ""
 "me to track processor utilization, user connections, drive space, etc and"
 msgstr ""
 
-#: plugins/check_mrtg.c:362
+#: plugins/check_mrtg.c:365
 msgid "this plugin works well for monitoring that kind of data as well."
 msgstr ""
 
-#: plugins/check_mrtg.c:365
+#: plugins/check_mrtg.c:368
 msgid ""
 "- This plugin only monitors one of the two variables stored in the MRTG log"
 msgstr ""
 "- Ce plugin vérifie seulement une ou deux variables écrites dans un fichier "
 "de log MRTG"
 
-#: plugins/check_mrtg.c:366
-msgid "  file.  If you want to monitor both values you will have to define two"
+#: plugins/check_mrtg.c:369
+msgid "file.  If you want to monitor both values you will have to define two"
 msgstr ""
 
-#: plugins/check_mrtg.c:367
-msgid ""
-"  commands with different values for the <variable> argument.  Of course,"
+#: plugins/check_mrtg.c:370
+msgid "commands with different values for the <variable> argument.  Of course,"
 msgstr ""
 
-#: plugins/check_mrtg.c:368
+#: plugins/check_mrtg.c:371
 msgid "you can always hack the code to make this plugin work for you..."
 msgstr ""
 
-#: plugins/check_mrtg.c:369
+#: plugins/check_mrtg.c:372
 msgid ""
 "- MRTG stands for the Multi Router Traffic Grapher.  It can be downloaded "
 "from"
@@ -1943,269 +1974,281 @@
 msgid "the <iwl> or <owl> thresholds (in Bytes/sec), a WARNING status results."
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:355
+#: plugins/check_mrtgtraf.c:356
 msgid "File to read log from"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:357
+#: plugins/check_mrtgtraf.c:358
 msgid "Minutes after which log expires"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:359
+#: plugins/check_mrtgtraf.c:360
 msgid "Test average or maximum"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:361
+#: plugins/check_mrtgtraf.c:362
 msgid "Warning threshold pair <incoming>,<outgoing>"
 msgstr "Paire de seuils d'avertissement <entrant>,<sortant>"
 
-#: plugins/check_mrtgtraf.c:363
+#: plugins/check_mrtgtraf.c:364
 msgid "Critical threshold pair <incoming>,<outgoing>"
 msgstr "Paire de seuils critique <entrant>,<sortant>"
 
-#: plugins/check_mrtgtraf.c:366
+#: plugins/check_mrtgtraf.c:368
 msgid ""
 "- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:368
+#: plugins/check_mrtgtraf.c:370
 msgid "- While MRTG can monitor things other than traffic rates, this"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:369
+#: plugins/check_mrtgtraf.c:371
 msgid "  plugin probably won't work with much else without modification."
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:370
+#: plugins/check_mrtgtraf.c:372
 msgid "- The calculated i/o rates are a little off from what MRTG actually"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:371
+#: plugins/check_mrtgtraf.c:373
 msgid "  reports.  I'm not sure why this is right now, but will look into it"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:372
+#: plugins/check_mrtgtraf.c:374
 msgid "  for future enhancements of this plugin."
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:382
+#: plugins/check_mrtgtraf.c:387
 #, c-format
 msgid "Usage"
 msgstr "Utilisation"
 
-#: plugins/check_mysql.c:129
+#: plugins/check_mysql.c:130
 #, c-format
 msgid "slave query error: %s\n"
 msgstr "erreur de requête de l'esclave: %s\n"
 
-#: plugins/check_mysql.c:136
+#: plugins/check_mysql.c:137
 #, c-format
 msgid "slave store_result error: %s\n"
 msgstr "erreur slave store_result: %s\n"
 
-#: plugins/check_mysql.c:142
+#: plugins/check_mysql.c:143
 msgid "No slaves defined"
 msgstr "Pas d'esclave spécifié"
 
-#: plugins/check_mysql.c:150
+#: plugins/check_mysql.c:151
 #, c-format
 msgid "slave fetch row error: %s\n"
 msgstr "erreur esclave lecture d'une ligne: %s\n"
 
-#: plugins/check_mysql.c:155
+#: plugins/check_mysql.c:156
 #, c-format
 msgid "Slave running: %s"
 msgstr "L'esclave fonctionne: %s"
 
-#: plugins/check_mysql.c:373
+#: plugins/check_mysql.c:384
 msgid "This program tests connections to a mysql server"
 msgstr "Ce plugin teste une connexion vers un serveur mysql"
 
-#: plugins/check_mysql.c:384
+#: plugins/check_mysql.c:395
+msgid "Use the specified socket (has no effect if -H is used)"
+msgstr ""
+
+#: plugins/check_mysql.c:398
 msgid "Check database with indicated name"
 msgstr ""
 
-#: plugins/check_mysql.c:386
+#: plugins/check_mysql.c:400
 msgid "Connect using the indicated username"
 msgstr ""
 
-#: plugins/check_mysql.c:388
+#: plugins/check_mysql.c:402
 msgid "Use the indicated password to authenticate the connection"
 msgstr ""
 
-#: plugins/check_mysql.c:389
-msgid "==> IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!! <=="
+#: plugins/check_mysql.c:403
+msgid "IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!"
 msgstr ""
 
-#: plugins/check_mysql.c:390
-msgid "Your clear-text password will be visible as a process table entry"
+#: plugins/check_mysql.c:404
+msgid "Your clear-text password could be visible as a process table entry"
 msgstr ""
 
-#: plugins/check_mysql.c:392
+#: plugins/check_mysql.c:406
 msgid "Check if the slave thread is running properly."
 msgstr ""
 
-#: plugins/check_mysql.c:394
-msgid ""
-"Exit with WARNING status if slave server is more than INTEGER seconds behind "
-"master"
+#: plugins/check_mysql.c:408
+#, fuzzy
+msgid "Exit with WARNING status if slave server is more than INTEGER seconds"
 msgstr ""
 "Sortir avec un résultat AVERTISSEMENT si le serveur esclave est plus de X "
 "secondes en retard sur le maître"
 
-#: plugins/check_mysql.c:396
-msgid ""
-"Exit with CRITICAL status if slave server is more then INTEGER seconds "
-"behind master"
+#: plugins/check_mysql.c:409 plugins/check_mysql.c:412
+msgid "behind master"
+msgstr ""
+
+#: plugins/check_mysql.c:411
+#, fuzzy
+msgid "Exit with CRITICAL status if slave server is more then INTEGER seconds"
 msgstr ""
 "Sortir avec un résultat CRITIQUE si le serveur esclave est plus de X "
 "secondes en retard sur le maître"
 
-#: plugins/check_mysql.c:397
-msgid "There are no required arguments. By default, the local database with"
+#: plugins/check_mysql.c:415
+#, fuzzy
+msgid ""
+"There are no required arguments. By default, the local database is checked"
 msgstr ""
 "Il n'y a pas d'arguments nécessaires. Par défaut la base de donnée locale"
 
-#: plugins/check_mysql.c:398
-#, c-format
-msgid "a server listening on MySQL standard port %d will be checked\n"
-msgstr "avec un serveur MySQL écoutant sur le port %d sera vérifiée\n"
+#: plugins/check_mysql.c:416
+msgid ""
+"using the default unix socket. You can force TCP on localhost by using an"
+msgstr ""
 
-#: plugins/check_nagios.c:107
+#: plugins/check_mysql.c:417
+msgid "IP address or FQDN ('localhost' will use the socket as well)."
+msgstr ""
+
+#: plugins/check_nagios.c:108
 msgid "Cannot open status log for reading!"
 msgstr "Impossible d'ouvrir le fichier status log en lecture!"
 
-#: plugins/check_nagios.c:157
+#: plugins/check_nagios.c:158
 #, c-format
 msgid "Found process: %s %s\n"
 msgstr "Processus trouvé: %s %s\n"
 
-#: plugins/check_nagios.c:171
+#: plugins/check_nagios.c:172
 msgid "Could not locate a running Nagios process!"
 msgstr "Impossible de trouver un processus Nagios actif!"
 
-#: plugins/check_nagios.c:175
+#: plugins/check_nagios.c:176
 msgid "Cannot parse Nagios log file for valid time"
 msgstr ""
 "Impossible de trouver une date/heure valide dans le fichier de log de Nagios"
 
-#: plugins/check_nagios.c:186 plugins/check_procs.c:307
+#: plugins/check_nagios.c:187 plugins/check_procs.c:330
 #, c-format
 msgid "%d process"
 msgid_plural "%d processes"
 msgstr[0] "%d processus"
 msgstr[1] "%d processus"
 
-#: plugins/check_nagios.c:189
+#: plugins/check_nagios.c:190
 #, c-format
 msgid "status log updated %d second ago"
 msgid_plural "status log updated %d seconds ago"
 msgstr[0] "status log mis à jour %d secondes auparavant"
 msgstr[1] "status log mis à jour %d secondes auparavant"
 
-#: plugins/check_nagios.c:226 plugins/check_nagios.c:255
+#: plugins/check_nagios.c:227 plugins/check_nagios.c:256
 msgid "Expiration time must be an integer (seconds)\n"
 msgstr "Le délai d'expiration doit être un entier (en secondes)\n"
 
-#: plugins/check_nagios.c:267
+#: plugins/check_nagios.c:268
 msgid "You must provide the status_log\n"
 msgstr "Vous devez fournir le status_log\n"
 
-#: plugins/check_nagios.c:270
+#: plugins/check_nagios.c:271
 msgid "You must provide a process string\n"
 msgstr "Vous devez fournir un nom de processus\n"
 
-#: plugins/check_nagios.c:284
+#: plugins/check_nagios.c:285
 msgid ""
 "This plugin checks the status of the Nagios process on the local machine"
 msgstr "Ce plugin vérifie l'état du processus Nagios sur la machine locale."
 
-#: plugins/check_nagios.c:285
+#: plugins/check_nagios.c:286
 msgid ""
 "The plugin will check to make sure the Nagios status log is no older than"
 msgstr "Ce plugin vérifie que le status log de Nagios n'est pas plus vieux que"
 
-#: plugins/check_nagios.c:286
+#: plugins/check_nagios.c:287
 msgid "the number of minutes specified by the expires option."
 msgstr "le nombre de minutes spécifies par l'option expire."
 
-#: plugins/check_nagios.c:287
+#: plugins/check_nagios.c:288
 msgid ""
 "It also checks the process table for a process matching the command argument."
 msgstr ""
 
-#: plugins/check_nagios.c:296
+#: plugins/check_nagios.c:298
 msgid "Name of the log file to check"
 msgstr "Nom du fichier log à vérifier"
 
-#: plugins/check_nagios.c:298
+#: plugins/check_nagios.c:300
 msgid "Minutes aging after which logfile is considered stale"
 msgstr ""
 
-#: plugins/check_nagios.c:300
+#: plugins/check_nagios.c:302
 msgid "Substring to search for in process arguments"
 msgstr ""
 
-#: plugins/check_nt.c:141
+#: plugins/check_nt.c:144
 #, c-format
 msgid "Wrong client version - running: %s, required: %s"
 msgstr "Mauvaise version du client utilisée: %s, nécessaire: %s"
 
-#: plugins/check_nt.c:152 plugins/check_nt.c:212
+#: plugins/check_nt.c:155 plugins/check_nt.c:215
 msgid "missing -l parameters"
 msgstr "Arguments -l manquants"
 
-#: plugins/check_nt.c:154
+#: plugins/check_nt.c:157
 msgid "wrong -l parameter."
 msgstr "Arguments -l erronés."
 
-#: plugins/check_nt.c:158
+#: plugins/check_nt.c:161
 msgid "CPU Load"
 msgstr "Charge CPU"
 
-#: plugins/check_nt.c:181
+#: plugins/check_nt.c:184
 #, c-format
 msgid " %lu%% (%lu min average)"
 msgstr " %lu%% (%lu moyenne minimale)"
 
-#: plugins/check_nt.c:183
+#: plugins/check_nt.c:186
 #, c-format
 msgid " '%lu min avg Load'=%lu%%;%lu;%lu;0;100"
 msgstr " '%lu Charge moyenne minimale'=%lu%%;%lu;%lu;0;100"
 
-#: plugins/check_nt.c:193
+#: plugins/check_nt.c:196
 msgid "not enough values for -l parameters"
 msgstr "pas assez de valeur pour l'argument -l"
 
-#: plugins/check_nt.c:205
+#: plugins/check_nt.c:208
 #, c-format
 msgid "System Uptime - %u day(s) %u hour(s) %u minute(s)"
 msgstr "Système démarré - %u jour(s) %u heure(s) %u minute(s)"
 
-#: plugins/check_nt.c:214
+#: plugins/check_nt.c:217
 msgid "wrong -l argument"
 msgstr "Argument -l erroné"
 
-#: plugins/check_nt.c:225
+#: plugins/check_nt.c:228
 #, c-format
 msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)"
 msgstr ""
 "%s:\\ - total: %.2f Gb - utilisé: %.2f Gb (%.0f%%) - libre %.2f Gb (%.0f%%)"
 
-#: plugins/check_nt.c:228
+#: plugins/check_nt.c:231
 #, c-format
 msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f"
 msgstr "'%s:\\ Espace Utilisé'=%.2fGb;%.2f;%.2f;0.00;%.2f"
 
-#: plugins/check_nt.c:242
+#: plugins/check_nt.c:245
 msgid "Free disk space : Invalid drive "
 msgstr "Espace disque libre : Lecteur invalide "
 
-#: plugins/check_nt.c:252
+#: plugins/check_nt.c:255
 msgid "No service/process specified"
 msgstr "Pas de service/processus spécifié"
 
-#: plugins/check_nt.c:276
+#: plugins/check_nt.c:279
 #, c-format
 msgid ""
 "Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)"
@@ -2213,384 +2256,455 @@
 "Mémoire utilisée: total:%.2f Mb - utilisée: %.2f Mb (%.0f%%) - libre: %.2f "
 "Mb (%.0f%%)"
 
-#: plugins/check_nt.c:279
+#: plugins/check_nt.c:282
 #, c-format
 msgid "'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f"
 msgstr "'Mémoire utilisée'=%.2fMb;%.2f;%.2f;0.00;%.2f"
 
-#: plugins/check_nt.c:315 plugins/check_nt.c:401
+#: plugins/check_nt.c:318 plugins/check_nt.c:404 plugins/check_nt.c:434
 msgid "No counter specified"
 msgstr "Pas de compteur spécifié"
 
-#: plugins/check_nt.c:348
+#: plugins/check_nt.c:351
 msgid "Minimum value contains non-numbers"
 msgstr "La valeur minimum contient des caractères non numériques"
 
-#: plugins/check_nt.c:352
+#: plugins/check_nt.c:355
 msgid "Maximum value contains non-numbers"
 msgstr "La valeur maximum contient des caractères non numériques"
 
-#: plugins/check_nt.c:359
+#: plugins/check_nt.c:362
 msgid "No unit counter specified"
 msgstr "Pas de compteur spécifié"
 
-#: plugins/check_nt.c:431
+#: plugins/check_nt.c:449
 msgid "Please specify a variable to check"
 msgstr "Veuillez préciser une variable a vérifier"
 
-#: plugins/check_nt.c:513
+#: plugins/check_nt.c:530
 msgid "Server port must be an integer\n"
 msgstr "Le port du serveur doit être un nombre entier\n"
 
-#: plugins/check_nt.c:566
+#: plugins/check_nt.c:585
 msgid "None"
 msgstr "Aucun"
 
-#: plugins/check_nt.c:579
+#: plugins/check_nt.c:598
 msgid "could not fetch information from server\n"
 msgstr "Impossible d'obtenir l'information depuis le serveur\n"
 
-#: plugins/check_nt.c:623
+#: plugins/check_nt.c:642
 msgid "This plugin collects data from the NSClient service running on a"
 msgstr ""
 "Ce plugin collecte les données depuis le service NSClient tournant sur un"
 
-#: plugins/check_nt.c:624
+#: plugins/check_nt.c:643
 msgid "Windows NT/2000/XP/2003 server."
 msgstr "Serveur Windows NT/2000/XP/2003."
 
-#: plugins/check_nt.c:634
+#: plugins/check_nt.c:654
 msgid "Name of the host to check"
 msgstr "Nom de l'hôte à vérifier"
 
-#: plugins/check_nt.c:636
+#: plugins/check_nt.c:656
 msgid "Optional port number (default: "
 msgstr "Numéro de port optionnel (défaut: "
 
-#: plugins/check_nt.c:639
+#: plugins/check_nt.c:659
 msgid "Password needed for the request"
 msgstr "Mot de passe nécessaire pour la requête"
 
-#: plugins/check_nt.c:641 plugins/check_nwstat.c:1664
-#: plugins/check_overcr.c:435
+#: plugins/check_nt.c:661 plugins/check_nwstat.c:1665
+#: plugins/check_overcr.c:436
 msgid "Threshold which will result in a warning status"
 msgstr ""
 
-#: plugins/check_nt.c:643 plugins/check_nwstat.c:1666
-#: plugins/check_overcr.c:437
+#: plugins/check_nt.c:663 plugins/check_nwstat.c:1667
+#: plugins/check_overcr.c:438
 msgid "Threshold which will result in a critical status"
 msgstr ""
 
-#: plugins/check_nt.c:645
+#: plugins/check_nt.c:665
 msgid "Seconds before connection attempt times out (default: "
 msgstr ""
 
-#: plugins/check_nt.c:648
+#: plugins/check_nt.c:668
 msgid "Print this help screen"
 msgstr "Afficher l'écran d'aide"
 
-#: plugins/check_nt.c:650
+#: plugins/check_nt.c:670
 msgid "Print version information"
 msgstr "Afficher la version"
 
-#: plugins/check_nt.c:652
+#: plugins/check_nt.c:672
 msgid "Variable to check"
 msgstr "Variable a vérifier"
 
-#: plugins/check_nt.c:653
+#: plugins/check_nt.c:673
 msgid "Valid variables are:"
 msgstr "Les variables valides sont"
 
-#: plugins/check_nt.c:655
+#: plugins/check_nt.c:675
 msgid "Get the NSClient version"
 msgstr "Obtenir la version de NSClient"
 
-#: plugins/check_nt.c:656
+#: plugins/check_nt.c:676
 msgid "If -l <version> is specified, will return warning if versions differ."
 msgstr ""
 "si l'argument -l <version> est spécifié, une alerte AVERTISSEMENT sera "
 "renvoyée, si les versions sont différentes."
 
-#: plugins/check_nt.c:658
+#: plugins/check_nt.c:678
 msgid "Average CPU load on last x minutes."
 msgstr "Moyenne de la charge CPU sur les dernières x minutes."
 
-#: plugins/check_nt.c:659
+#: plugins/check_nt.c:679
 msgid "Request a -l parameter with the following syntax:"
 msgstr "Demande un paramètre -l avec la syntaxe suivante:"
 
-#: plugins/check_nt.c:660
+#: plugins/check_nt.c:680
 msgid "-l <minutes range>,<warning threshold>,<critical threshold>."
 msgstr "-l <plage de minutes>,<seuil d'avertissement>,<seuil critique>."
 
-#: plugins/check_nt.c:661
+#: plugins/check_nt.c:681
 msgid "<minute range> should be less than 24*60."
 msgstr "<plage de minutes> devrait être inférieur à 24*60."
 
-#: plugins/check_nt.c:662
+#: plugins/check_nt.c:682
 msgid ""
 "Thresholds are percentage and up to 10 requests can be done in one shot."
 msgstr ""
 "Les seuils sonts en pourcentage et un maximum de 10 requêtes peuvent être "
 "effectuées à la fois."
 
-#: plugins/check_nt.c:665
+#: plugins/check_nt.c:685
 msgid "Get the uptime of the machine."
 msgstr "Obtenir le temps de service de la machine."
 
-#: plugins/check_nt.c:666
+#: plugins/check_nt.c:686
 msgid "No specific parameters. No warning or critical threshold"
 msgstr "Pas d'argument spécifique. Pas de seuil d'avertissement ou critique"
 
-#: plugins/check_nt.c:668
+#: plugins/check_nt.c:688
 msgid "Size and percentage of disk use."
 msgstr "Taille et pourcentage de l'utilisation disque."
 
-#: plugins/check_nt.c:669
+#: plugins/check_nt.c:689
 msgid "Request a -l parameter containing the drive letter only."
 msgstr "Demande un paramètre -l contennant uniquement la lettre du lecteur."
 
-#: plugins/check_nt.c:670 plugins/check_nt.c:673
+#: plugins/check_nt.c:690 plugins/check_nt.c:693
 msgid "Warning and critical thresholds can be specified with -w and -c."
 msgstr "Les seuils d'alerte et critiques peuvent être spécifiés avec -w et -c."
 
-#: plugins/check_nt.c:672
+#: plugins/check_nt.c:692
 msgid "Memory use."
 msgstr "Mémoire utilisée."
 
-#: plugins/check_nt.c:675
+#: plugins/check_nt.c:695
 msgid "Check the state of one or several services."
 msgstr "Vérifier l'état d'un ou plusieurs services."
 
-#: plugins/check_nt.c:676 plugins/check_nt.c:685
+#: plugins/check_nt.c:696 plugins/check_nt.c:705
 msgid "Request a -l parameters with the following syntax:"
 msgstr "Demande un paramètre -l avec la syntaxe suivante:"
 
-#: plugins/check_nt.c:677
+#: plugins/check_nt.c:697
 msgid "-l <service1>,<service2>,<service3>,..."
 msgstr "-l <service1>,<service2>,<service3>,..."
 
-#: plugins/check_nt.c:678
+#: plugins/check_nt.c:698
 msgid "You can specify -d SHOWALL in case you want to see working services"
 msgstr "Vous pouvez spécifier -d SHOWALL pour voir les services fonctionnant"
 
-#: plugins/check_nt.c:679
+#: plugins/check_nt.c:699
 msgid "in the returned string."
 msgstr "dans la chaîne de caractère renvoyée."
 
-#: plugins/check_nt.c:681
+#: plugins/check_nt.c:701
 msgid "Check if one or several process are running."
 msgstr "Vérifie si un ou plusieurs processus sont démarrés."
 
-#: plugins/check_nt.c:682
+#: plugins/check_nt.c:702
 msgid "Same syntax as SERVICESTATE."
 msgstr "Même syntaxe que SERVICESTATE."
 
-#: plugins/check_nt.c:684
+#: plugins/check_nt.c:704
 msgid "Check any performance counter of Windows NT/2000."
 msgstr "Vérifier n'importe quel compteur de performance sur Windows NT/2000."
 
-#: plugins/check_nt.c:686
+#: plugins/check_nt.c:706
 msgid "-l \"\\\\<performance object>\\\\counter\",\"<description>"
 msgstr "-l \"\\\\<catégorie>\\\\compteur\",\"<description>"
 
-#: plugins/check_nt.c:687
+#: plugins/check_nt.c:707
 msgid "The <description> parameter is optional and is given to a printf "
 msgstr "Le paramètre <description> est optionnel et est passé à la fonction "
 
-#: plugins/check_nt.c:688
+#: plugins/check_nt.c:708
 msgid "output command which requires a float parameter."
 msgstr "de sortie printf qui demande un paramètre de type float."
 
-#: plugins/check_nt.c:689
+#: plugins/check_nt.c:709
 #, c-format
 msgid "If <description> does not include \"%%\", it is used as a label."
 msgstr "Si <description> n'inclus pas \"%%\", il est utilisé comme étiquette."
 
-#: plugins/check_nt.c:690
+#: plugins/check_nt.c:710 plugins/check_nt.c:725
 msgid "Some examples:"
 msgstr "Exemples:"
 
-#: plugins/check_nt.c:694
+#: plugins/check_nt.c:714
+#, fuzzy
+msgid "Check any performance counter object of Windows NT/2000."
+msgstr "Vérifier n'importe quel compteur de performance sur Windows NT/2000."
+
+#: plugins/check_nt.c:715
+msgid ""
+"Syntax: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object>"
+msgstr ""
+
+#: plugins/check_nt.c:716
+msgid "<counter object> is a Windows Perfmon Counter object (eg. Process),"
+msgstr ""
+
+#: plugins/check_nt.c:717
+msgid "if it is two words, it should be enclosed in quotes"
+msgstr ""
+
+#: plugins/check_nt.c:718
+msgid "The returned results will be a comma-separated list of instances on "
+msgstr ""
+
+#: plugins/check_nt.c:719
+msgid " the selected computer for that object."
+msgstr ""
+
+#: plugins/check_nt.c:720
+msgid ""
+"The purpose of this is to be run from command line to determine what "
+"instances"
+msgstr ""
+
+#: plugins/check_nt.c:721
+msgid ""
+" are available for monitoring without having to log onto the Windows server"
+msgstr ""
+
+#: plugins/check_nt.c:722
+msgid "  to run Perfmon directly."
+msgstr ""
+
+#: plugins/check_nt.c:723
+msgid "It can also be used in scripts that automatically create Nagios service"
+msgstr ""
+
+#: plugins/check_nt.c:724
+#, fuzzy
+msgid " configuration files."
+msgstr "Fichier de configuration"
+
+#: plugins/check_nt.c:726
+msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process"
+msgstr ""
+
+#: plugins/check_nt.c:729
 msgid ""
 "- The NSClient service should be running on the server to get any information"
 msgstr ""
 "- Le service NSClient doit rouler sur le serveur pour obtenir les "
 "informations"
 
-#: plugins/check_nt.c:696
+#: plugins/check_nt.c:731
 msgid "- Critical thresholds should be lower than warning thresholds"
 msgstr ""
 "- Les seuils critiques doivent être plus bas que les seuils d'avertissement"
 
-#: plugins/check_nt.c:697
+#: plugins/check_nt.c:732
 msgid "- Default port 1248 is sometimes in use by other services. The error"
 msgstr ""
 "- Le port par défaut 1248 est parfois utilisé par d'autres services. L'erreur"
 
-#: plugins/check_nt.c:698
+#: plugins/check_nt.c:733
 msgid ""
 "output when this happens contains \"Cannot map xxxxx to protocol number\"."
 msgstr "qui en résulte contiens \"Cannot map xxxxx to protocol number\"."
 
-#: plugins/check_nt.c:699
+#: plugins/check_nt.c:734
 msgid "One fix for this is to change the port to something else on check_nt "
 msgstr ""
 "Une possibilité pour corriger ce problème est de changer le port dans "
 "check_nt "
 
-#: plugins/check_nt.c:700
+#: plugins/check_nt.c:735
 msgid "and on the client service it's connecting to."
 msgstr "et dans le service auquel il se connecte."
 
-#: plugins/check_ntp.c:804 plugins/check_ntp_peer.c:586
-#: plugins/check_ntp_time.c:563
+#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:592
+#: plugins/check_ntp_time.c:566
+#, c-format
 msgid "NTP CRITICAL:"
 msgstr "NTP CRITIQUE:"
 
-#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:589
-#: plugins/check_ntp_time.c:566
+#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:595
+#: plugins/check_ntp_time.c:569
+#, c-format
 msgid "NTP WARNING:"
 msgstr "NTP AVERTISSEMENT:"
 
-#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:592
-#: plugins/check_ntp_time.c:569
+#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:598
+#: plugins/check_ntp_time.c:572
+#, c-format
 msgid "NTP OK:"
 msgstr "NTP OK:"
 
-#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:595
-#: plugins/check_ntp_time.c:572
+#: plugins/check_ntp.c:816 plugins/check_ntp_peer.c:601
+#: plugins/check_ntp_time.c:575
+#, c-format
 msgid "NTP UNKNOWN:"
 msgstr "NTP INCONNU:"
 
-#: plugins/check_ntp.c:817 plugins/check_ntp_peer.c:602
-#: plugins/check_ntp_time.c:576
+#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:610
+#: plugins/check_ntp_time.c:579
 msgid "Offset unknown"
 msgstr "Décalage inconnu"
 
-#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:605
-#: plugins/check_ntp_time.c:579
+#: plugins/check_ntp.c:823 plugins/check_ntp_peer.c:613
+#: plugins/check_ntp_time.c:582
 msgid "Offset"
 msgstr "Décalage"
 
-#: plugins/check_ntp.c:841 plugins/check_ntp_peer.c:630
+#: plugins/check_ntp.c:844 plugins/check_ntp_peer.c:638
 msgid "This plugin checks the selected ntp server"
 msgstr "Ce plugin vérifie le service ntp sur l'hôte"
 
-#: plugins/check_ntp.c:849 plugins/check_ntp_peer.c:640
-#: plugins/check_ntp_time.c:604
+#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:649
+#: plugins/check_ntp_time.c:608
 msgid "Offset to result in warning status (seconds)"
 msgstr "Décalage résultant un avertissement (secondes)"
 
-#: plugins/check_ntp.c:851 plugins/check_ntp_peer.c:642
-#: plugins/check_ntp_time.c:606
+#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:651
+#: plugins/check_ntp_time.c:610
 msgid "Offset to result in critical status (seconds)"
 msgstr "Décalage résultant un état critique (secondes)"
 
-#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:648
+#: plugins/check_ntp.c:857 plugins/check_ntp_peer.c:657
 msgid "Warning threshold for jitter"
 msgstr "Seuil d'avertissement pour la variation (jitter)"
 
-#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:650
+#: plugins/check_ntp.c:859 plugins/check_ntp_peer.c:659
 msgid "Critical threshold for jitter"
 msgstr "Seuil critique pour la variation (jitter)"
 
-#: plugins/check_ntp.c:867
+#: plugins/check_ntp.c:873
 msgid "Normal offset check:"
 msgstr "Vérification normale du décalage:"
 
-#: plugins/check_ntp.c:869 plugins/check_ntp_peer.c:671
+#: plugins/check_ntp.c:876 plugins/check_ntp_peer.c:684
 msgid ""
 "Check jitter too, avoiding critical notifications if jitter isn't available"
 msgstr ""
 "Vérifier aussi la variation (jitter) en évitant les notifications s'il n'est "
 "pas dispoible"
 
-#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:672
+#: plugins/check_ntp.c:877 plugins/check_ntp_peer.c:685
 msgid "(See Notes above for more details on thresholds formats):"
 msgstr ""
 "(Voir les Notes ci-dessus pour plus de détails sur le format des seuils)"
 
-#: plugins/check_ntp_peer.c:599
+#: plugins/check_ntp.c:882 plugins/check_ntp.c:889
+msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or"
+msgstr ""
+
+#: plugins/check_ntp.c:883 plugins/check_ntp.c:890
+#, fuzzy
+msgid "check_ntp_time istead."
+msgstr "utiliser check_ntp_peer."
+
+#: plugins/check_ntp_peer.c:605
 msgid "Server not synchronized"
 msgstr "Le serveur n'est pas synchronisé"
 
-#: plugins/check_ntp_peer.c:638
+#: plugins/check_ntp_peer.c:607
+msgid "Server has the LI_ALARM bit set"
+msgstr ""
+
+#: plugins/check_ntp_peer.c:647
 msgid ""
 "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized"
 msgstr ""
 "Retourne INCONNU au lieu de CRITIQUE ou AVERTISSEMENT si le serveur n'est "
 "pas synchronisé"
 
-#: plugins/check_ntp_peer.c:644
+#: plugins/check_ntp_peer.c:653
 msgid "Warning threshold for stratum"
 msgstr "Seuil d'avertissement pour le stratum"
 
-#: plugins/check_ntp_peer.c:646
+#: plugins/check_ntp_peer.c:655
 msgid "Critical threshold for stratum"
 msgstr "Seuil critique pour le stratum"
 
-#: plugins/check_ntp_peer.c:656
+#: plugins/check_ntp_peer.c:664
 msgid "This plugin checks an NTP server independent of any commandline"
 msgstr "Ce plugin vérifie un serveur NTP sans recours aux programmes de"
 
-#: plugins/check_ntp_peer.c:657
+#: plugins/check_ntp_peer.c:665
 msgid "programs or external libraries."
 msgstr "la ligne de commande ou libraries externes"
 
-#: plugins/check_ntp_peer.c:658
+#: plugins/check_ntp_peer.c:668
 msgid "Use this plugin to check the health of an NTP server. It supports"
 msgstr ""
 "Utilisez ce plugin pour vérifier le service NTP sur l'hôte. Il supporte la"
 
-#: plugins/check_ntp_peer.c:659
+#: plugins/check_ntp_peer.c:669
 msgid "checking the offset with the sync peer, the jitter and stratum. This"
 msgstr ""
 "vérification du décalage avec le pair se synchronisation, la variation "
 "(jitter) et le stratum."
 
-#: plugins/check_ntp_peer.c:660
+#: plugins/check_ntp_peer.c:670
 msgid "plugin will not check the clock offset between the local host and NTP"
 msgstr ""
 "Ce plugin ne vérifie pas le décalage entre le serveur local et le serveur"
 
-#: plugins/check_ntp_peer.c:661
+#: plugins/check_ntp_peer.c:671
 msgid "server; please use check_ntp_time for that purpose."
 msgstr "NTP; utilisez plutôt check_ntp_time à cette fin."
 
-#: plugins/check_ntp_peer.c:669
+#: plugins/check_ntp_peer.c:681
 msgid "Simple NTP server check:"
 msgstr "Vérification simple du serveur NTP:"
 
-#: plugins/check_ntp_peer.c:674
+#: plugins/check_ntp_peer.c:688
 msgid "Check only stratum:"
 msgstr "Vérification du stratum seulement:"
 
-#: plugins/check_ntp_time.c:594
+#: plugins/check_ntp_time.c:597
 msgid "This plugin checks the clock offset with the ntp server"
 msgstr "Ce plugin vérifie le décalage de l'horloge avec le serveur ntp"
 
-#: plugins/check_ntp_time.c:602
+#: plugins/check_ntp_time.c:606
 msgid "Returns UNKNOWN instead of CRITICAL if offset cannot be found"
 msgstr "Retourne INCONNU au lieu de CRITIQUE si le décalage est inconnu"
 
-#: plugins/check_ntp_time.c:612
+#: plugins/check_ntp_time.c:615
 msgid "This plugin checks the clock offset between the local host and a"
 msgstr "Ce plugin vérifie le décalage de l'horloge entre se serveur local et"
 
-#: plugins/check_ntp_time.c:613
+#: plugins/check_ntp_time.c:616
 msgid "remote NTP server. It is independent of any commandline programs or"
 msgstr "le serveur NTP distant. Il ne fait aucun recours aux programmes de"
 
-#: plugins/check_ntp_time.c:614
+#: plugins/check_ntp_time.c:617
 msgid "external libraries."
 msgstr "la ligne de commande ou libraries externes."
 
-#: plugins/check_ntp_time.c:615
+#: plugins/check_ntp_time.c:621
 msgid "If you'd rather want to monitor an NTP server, please use"
 msgstr "Si vous voulez plutôt surveiller un serveur NTP, veuillez"
 
-#: plugins/check_ntp_time.c:616
+#: plugins/check_ntp_time.c:622
 msgid "check_ntp_peer."
 msgstr "utiliser check_ntp_peer."
 
@@ -2692,14 +2806,17 @@
 msgstr "désactivé"
 
 #: plugins/check_nwstat.c:564
+#, c-format
 msgid "CRITICAL - NRM Status is bad!"
 msgstr "CRITIQUE - le statut NRM est mauvais!"
 
 #: plugins/check_nwstat.c:569
+#, c-format
 msgid "Warning - NRM Status is suspect!"
 msgstr ""
 
 #: plugins/check_nwstat.c:572
+#, c-format
 msgid "OK - NRM Status is good!"
 msgstr "OK - Le status du NRM est bon!"
 
@@ -2760,10 +2877,12 @@
 msgstr "%lu processus services actuels (%lu max)|Processus=%lu;%lu;%lu;0;%lu"
 
 #: plugins/check_nwstat.c:908
+#, c-format
 msgid "CRITICAL - Time not in sync with network!"
 msgstr "CRITIQUE - Le temps n'est pas synchronisé avec le réseau!"
 
 #: plugins/check_nwstat.c:911
+#, c-format
 msgid "OK - Time in sync with network!"
 msgstr "OK - Le temps est synchronisé avec le réseau!"
 
@@ -2836,216 +2955,216 @@
 msgid "Novell server to gather the requested system information."
 msgstr "un serveur Novell pour récupérer l'information système demandée."
 
-#: plugins/check_nwstat.c:1617 plugins/check_overcr.c:439
+#: plugins/check_nwstat.c:1618 plugins/check_overcr.c:440
 msgid "Variable to check.  Valid variables include:"
 msgstr "Variable à vérifier.  Les variables valides sont:"
 
-#: plugins/check_nwstat.c:1618
+#: plugins/check_nwstat.c:1619
 msgid "LOAD1     = 1 minute average CPU load"
 msgstr ""
 
-#: plugins/check_nwstat.c:1619
+#: plugins/check_nwstat.c:1620
 msgid "LOAD5     = 5 minute average CPU load"
 msgstr ""
 
-#: plugins/check_nwstat.c:1620
+#: plugins/check_nwstat.c:1621
 msgid "LOAD15    = 15 minute average CPU load"
 msgstr ""
 
-#: plugins/check_nwstat.c:1621
+#: plugins/check_nwstat.c:1622
 msgid "CSPROCS   = number of current service processes (NW 5.x only)"
 msgstr "CSPROCS   = nombres de processus services actuels (NW 5.x seulement)"
 
-#: plugins/check_nwstat.c:1622
+#: plugins/check_nwstat.c:1623
 msgid "ABENDS    = number of abended threads (NW 5.x only)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1623
+#: plugins/check_nwstat.c:1624
 msgid "UPTIME    = server uptime"
 msgstr ""
 
-#: plugins/check_nwstat.c:1624
+#: plugins/check_nwstat.c:1625
 msgid "LTCH      = percent long term cache hits"
 msgstr ""
 
-#: plugins/check_nwstat.c:1625
+#: plugins/check_nwstat.c:1626
 msgid "CBUFF     = current number of cache buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1626
+#: plugins/check_nwstat.c:1627
 msgid "CDBUFF    = current number of dirty cache buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1627
+#: plugins/check_nwstat.c:1628
 msgid "DCB       = dirty cache buffers as a percentage of the total"
 msgstr ""
 
-#: plugins/check_nwstat.c:1628
+#: plugins/check_nwstat.c:1629
 msgid "TCB       = dirty cache buffers as a percentage of the original"
 msgstr ""
 
-#: plugins/check_nwstat.c:1629
+#: plugins/check_nwstat.c:1630
 msgid "OFILES    = number of open files"
 msgstr ""
 
-#: plugins/check_nwstat.c:1630
+#: plugins/check_nwstat.c:1631
 msgid "    VMF<vol>  = MB of free space on Volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1631
+#: plugins/check_nwstat.c:1632
 msgid "    VMU<vol>  = MB used space on Volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1632
+#: plugins/check_nwstat.c:1633
 msgid "    VMP<vol>  = MB of purgeable space on Volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1633
+#: plugins/check_nwstat.c:1634
 msgid "    VPF<vol>  = percent free space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1634
+#: plugins/check_nwstat.c:1635
 msgid "    VKF<vol>  = KB of free space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1635
+#: plugins/check_nwstat.c:1636
 msgid "    VPP<vol>  = percent purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1636
+#: plugins/check_nwstat.c:1637
 msgid "    VKP<vol>  = KB of purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1637
+#: plugins/check_nwstat.c:1638
 msgid "    VPNP<vol> = percent not yet purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1638
+#: plugins/check_nwstat.c:1639
 msgid "    VKNP<vol> = KB of not yet purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1639
+#: plugins/check_nwstat.c:1640
 msgid "    LRUM      = LRU sitting time in minutes"
 msgstr ""
 
-#: plugins/check_nwstat.c:1640
+#: plugins/check_nwstat.c:1641
 msgid "    LRUS      = LRU sitting time in seconds"
 msgstr "    LRUS       = LRU temps d'attente en secondes"
 
-#: plugins/check_nwstat.c:1641
+#: plugins/check_nwstat.c:1642
 msgid "    DSDB      = check to see if DS Database is open"
 msgstr ""
 
-#: plugins/check_nwstat.c:1642
+#: plugins/check_nwstat.c:1643
 msgid "    DSVER     = NDS version"
 msgstr ""
 
-#: plugins/check_nwstat.c:1643
+#: plugins/check_nwstat.c:1644
 msgid "    UPRB      = used packet receive buffers"
 msgstr "    UPRB      = paquets du tampon de réception utilisés"
 
-#: plugins/check_nwstat.c:1644
+#: plugins/check_nwstat.c:1645
 msgid "    PUPRB     = percent (of max) used packet receive buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1645
+#: plugins/check_nwstat.c:1646
 msgid "    SAPENTRIES = number of entries in the SAP table"
 msgstr ""
 
-#: plugins/check_nwstat.c:1646
+#: plugins/check_nwstat.c:1647
 msgid "    SAPENTRIES<n> = number of entries in the SAP table for SAP type <n>"
 msgstr "    SAPENTRIES<n> = entrées dans la table SAP pour le type SAP <n>"
 
-#: plugins/check_nwstat.c:1647
+#: plugins/check_nwstat.c:1648
 msgid "    TSYNC     = timesync status"
 msgstr ""
 
-#: plugins/check_nwstat.c:1648
+#: plugins/check_nwstat.c:1649
 msgid "    LOGINS    = check to see if logins are enabled"
 msgstr ""
 
-#: plugins/check_nwstat.c:1649
+#: plugins/check_nwstat.c:1650
 msgid "    CONNS     = number of currently licensed connections"
 msgstr ""
 
-#: plugins/check_nwstat.c:1650
+#: plugins/check_nwstat.c:1651
 msgid "    NRMH\t= NRM Summary Status"
 msgstr ""
 
-#: plugins/check_nwstat.c:1651
+#: plugins/check_nwstat.c:1652
 msgid "    NRMP<stat> = Returns the current value for a NRM health item"
 msgstr ""
 
-#: plugins/check_nwstat.c:1652
+#: plugins/check_nwstat.c:1653
 msgid "    NRMM<stat> = Returns the current memory stats from NRM"
 msgstr ""
 
-#: plugins/check_nwstat.c:1653
+#: plugins/check_nwstat.c:1654
 msgid "    NRMS<stat> = Returns the current Swapfile stats from NRM"
 msgstr ""
 
-#: plugins/check_nwstat.c:1654
+#: plugins/check_nwstat.c:1655
 msgid "    NSS1<stat> = Statistics from _Admin:Manage_NSS\\GeneralStats.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1655
+#: plugins/check_nwstat.c:1656
 msgid "    NSS3<stat> = Statistics from _Admin:Manage_NSS\\NameCache.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1656
+#: plugins/check_nwstat.c:1657
 msgid "    NSS4<stat> = Statistics from _Admin:Manage_NSS\\FileStats.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1657
+#: plugins/check_nwstat.c:1658
 msgid "    NSS5<stat> = Statistics from _Admin:Manage_NSS\\ObjectCache.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1658
+#: plugins/check_nwstat.c:1659
 msgid "    NSS6<stat> = Statistics from _Admin:Manage_NSS\\Thread.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1659
+#: plugins/check_nwstat.c:1660
 msgid ""
 "    NSS7<stat> = Statistics from _Admin:Manage_NSS\\AuthorizationCache.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1660
+#: plugins/check_nwstat.c:1661
 msgid "    NLM:<nlm> = check if NLM is loaded and report version"
 msgstr ""
 
-#: plugins/check_nwstat.c:1661
+#: plugins/check_nwstat.c:1662
 msgid "                (e.g. NLM:TSANDS.NLM)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1668
+#: plugins/check_nwstat.c:1669
 msgid "Include server version string in results"
 msgstr ""
 
-#: plugins/check_nwstat.c:1674
+#: plugins/check_nwstat.c:1675
 msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG"
 msgstr ""
 
-#: plugins/check_nwstat.c:1675
+#: plugins/check_nwstat.c:1676
 msgid ""
 "  extension for NetWare be loaded on the Novell servers you wish to check."
 msgstr ""
 
-#: plugins/check_nwstat.c:1676
+#: plugins/check_nwstat.c:1677
 msgid "  (available from http://www.engr.wisc.edu/~drews/mrtg/)"
 msgstr "  (disponible depuis http://www.engr.wisc.edu/~drews/mrtg/)"
 
-#: plugins/check_nwstat.c:1677
+#: plugins/check_nwstat.c:1678
 msgid ""
 "- Values for critical thresholds should be lower than warning thresholds"
 msgstr ""
 
-#: plugins/check_nwstat.c:1678
+#: plugins/check_nwstat.c:1679
 msgid ""
 "  when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, "
 msgstr ""
 
-#: plugins/check_nwstat.c:1679
-msgid "  TCB, LRUS and LRUM.\n"
+#: plugins/check_nwstat.c:1680
+msgid "  TCB, LRUS and LRUM."
 msgstr ""
 
 #: plugins/check_overcr.c:127
@@ -3112,162 +3231,167 @@
 msgid "remote UNIX server in order to gather the requested system information."
 msgstr "distant afin de récupérer les informations système demandées."
 
-#: plugins/check_overcr.c:440
+#: plugins/check_overcr.c:441
 msgid "LOAD1         = 1 minute average CPU load"
 msgstr ""
 
-#: plugins/check_overcr.c:441
+#: plugins/check_overcr.c:442
 msgid "LOAD5         = 5 minute average CPU load"
 msgstr ""
 
-#: plugins/check_overcr.c:442
+#: plugins/check_overcr.c:443
 msgid "LOAD15        = 15 minute average CPU load"
 msgstr ""
 
-#: plugins/check_overcr.c:443
+#: plugins/check_overcr.c:444
 msgid "DPU<filesys>  = percent used disk space on filesystem <filesys>"
 msgstr ""
 
-#: plugins/check_overcr.c:444
+#: plugins/check_overcr.c:445
 msgid "PROC<process> = number of running processes with name <process>"
 msgstr ""
 
-#: plugins/check_overcr.c:445
+#: plugins/check_overcr.c:446
 msgid "NET<port>     = number of active connections on TCP port <port>"
 msgstr ""
 
-#: plugins/check_overcr.c:446
+#: plugins/check_overcr.c:447
 msgid "UPTIME        = system uptime in seconds"
 msgstr ""
 
 #: plugins/check_overcr.c:454
+#, fuzzy
+msgid "This plugin requires that Eric Molitors' Over-CR collector daemon be"
+msgstr "Ce plugin requiert que le daemon collecteur Over-CR d'Eric Molitors"
+
+#: plugins/check_overcr.c:455
+msgid "running on the remote server."
+msgstr "soit fonctionnel sur le serveur distant"
+
+#: plugins/check_overcr.c:456
+msgid "Over-CR can be downloaded from http://www.molitor.org/overcr"
+msgstr ""
+
+#: plugins/check_overcr.c:457
+msgid "This plugin was tested with version 0.99.53 of the Over-CR collector"
+msgstr "Ce plugin a été testé avec la version 0.99.53 su collecteur Over-CR"
+
+#: plugins/check_overcr.c:461
 msgid ""
 "For the available options, the critical threshold value should always be"
 msgstr ""
 "Pour toutes les options disponibles, le seuil critique doit toujours être"
 
-#: plugins/check_overcr.c:455
+#: plugins/check_overcr.c:462
 msgid ""
 "higher than the warning threshold value, EXCEPT with the uptime variable"
 msgstr "plus grand que le seuil d'alerte SAUF pour l'option uptime"
 
-#: plugins/check_overcr.c:457
-msgid "This plugin requres that Eric Molitors' Over-CR collector daemon be"
-msgstr "Ce plugin requiert que le daemon collecteur Over-CR d'Eric Molitors"
-
-#: plugins/check_overcr.c:458
-msgid "running on the remote server."
-msgstr "soit fonctionnel sur le serveur distant"
-
-#: plugins/check_overcr.c:460
-msgid "This plugin was tested with version 0.99.53 of the Over-CR collector"
-msgstr "Ce plugin a été testé avec la version 0.99.53 su collecteur Over-CR"
-
-#: plugins/check_pgsql.c:173
+#: plugins/check_pgsql.c:174
 #, c-format
 msgid "CRITICAL - no connection to '%s' (%s).\n"
 msgstr "CRITIQUE - pas de connexion à '%s' (%s).\n"
 
-#: plugins/check_pgsql.c:188
+#: plugins/check_pgsql.c:189
 #, c-format
 msgid " %s - database %s (%d sec.)|%s\n"
 msgstr " %s - base de données %s (%d sec.)|%s\n"
 
-#: plugins/check_pgsql.c:243 plugins/check_time.c:281 plugins/check_time.c:293
-#: plugins/check_users.c:168
+#: plugins/check_pgsql.c:244 plugins/check_time.c:281 plugins/check_time.c:293
+#: plugins/check_users.c:170
 msgid "Critical threshold must be a positive integer"
 msgstr "Le seuil critique doit être un entier positif"
 
-#: plugins/check_pgsql.c:249 plugins/check_time.c:262 plugins/check_time.c:286
-#: plugins/check_users.c:174 plugins/check_users.c:184
-#: plugins/check_users.c:191
+#: plugins/check_pgsql.c:250 plugins/check_time.c:262 plugins/check_time.c:286
+#: plugins/check_users.c:176 plugins/check_users.c:186
+#: plugins/check_users.c:193
 msgid "Warning threshold must be a positive integer"
 msgstr "Le seuil d'avertissement doit être un entier positif"
 
-#: plugins/check_pgsql.c:267
+#: plugins/check_pgsql.c:268
 msgid "Database name is not valid"
 msgstr "Le nom de la base de données est invalide"
 
-#: plugins/check_pgsql.c:273
+#: plugins/check_pgsql.c:274
 msgid "User name is not valid"
 msgstr "Le nom de l'utilisateur est invalide"
 
-#: plugins/check_pgsql.c:410
+#: plugins/check_pgsql.c:411
 #, c-format
 msgid "Test whether a PostgreSQL Database is accepting connections."
 msgstr "Teste si une base de données Postgresql accepte les connections."
 
-#: plugins/check_pgsql.c:423
+#: plugins/check_pgsql.c:425
 msgid "Database to check "
 msgstr ""
 
-#: plugins/check_pgsql.c:424
+#: plugins/check_pgsql.c:426
 #, c-format
 msgid "(default: %s)"
 msgstr ""
 
-#: plugins/check_pgsql.c:426
+#: plugins/check_pgsql.c:428
 msgid "Login name of user"
 msgstr "Le nom d'un utilisateur"
 
-#: plugins/check_pgsql.c:428
+#: plugins/check_pgsql.c:430
 msgid "Password (BIG SECURITY ISSUE)"
 msgstr ""
 
-#: plugins/check_pgsql.c:437
+#: plugins/check_pgsql.c:439
 msgid "All parameters are optional."
 msgstr ""
 
-#: plugins/check_pgsql.c:438
+#: plugins/check_pgsql.c:440
 msgid ""
 "This plugin tests a PostgreSQL DBMS to determine whether it is active and"
 msgstr ""
 
-#: plugins/check_pgsql.c:439
+#: plugins/check_pgsql.c:441
 msgid "accepting queries. In its current operation, it simply connects to the"
 msgstr ""
 
-#: plugins/check_pgsql.c:440
+#: plugins/check_pgsql.c:442
 msgid ""
 "specified database, and then disconnects. If no database is specified, it"
 msgstr ""
 
-#: plugins/check_pgsql.c:441
+#: plugins/check_pgsql.c:443
 msgid ""
 "connects to the template1 database, which is present in every functioning"
 msgstr ""
 
-#: plugins/check_pgsql.c:442
+#: plugins/check_pgsql.c:444
 msgid "PostgreSQL DBMS."
 msgstr ""
 
-#: plugins/check_pgsql.c:443
+#: plugins/check_pgsql.c:446
 msgid ""
 "The plugin will connect to a local postmaster if no host is specified. To"
 msgstr ""
 "Ce plugin va se connecter sur un postmaster local si aucun hôte n'est "
 "spécifié."
 
-#: plugins/check_pgsql.c:444
+#: plugins/check_pgsql.c:447
 msgid ""
 "connect to a remote host, be sure that the remote postmaster accepts TCP/IP"
 msgstr ""
 
-#: plugins/check_pgsql.c:445
+#: plugins/check_pgsql.c:448
 msgid "connections (start the postmaster with the -i option)."
 msgstr ""
 
-#: plugins/check_pgsql.c:446
+#: plugins/check_pgsql.c:450
 msgid ""
 "Typically, the nagios user (unless the --logname option is used) should be"
 msgstr ""
 
-#: plugins/check_pgsql.c:447
+#: plugins/check_pgsql.c:451
 msgid ""
 "able to connect to the database without a password. The plugin can also send"
 msgstr ""
 
-#: plugins/check_pgsql.c:448
+#: plugins/check_pgsql.c:452
 msgid "a password, but no effort is made to obsure or encrypt the password."
 msgstr ""
 
@@ -3285,391 +3409,387 @@
 msgid "PING %s - %sPacket loss = %d%%, RTA = %2.2f ms"
 msgstr "PING %s - %s Paquets perdus = %d%%, RTA = %2.2f ms"
 
-#: plugins/check_ping.c:252
+#: plugins/check_ping.c:261
 msgid "Could not realloc() addresses\n"
 msgstr "Impossible de réallouer les adresses\n"
 
-#: plugins/check_ping.c:267 plugins/check_ping.c:347
+#: plugins/check_ping.c:276 plugins/check_ping.c:356
 #, c-format
 msgid "<max_packets> (%s) must be a non-negative number\n"
 msgstr "<max_packets> (%s) doit être un nombre positif\n"
 
-#: plugins/check_ping.c:301
+#: plugins/check_ping.c:310
 #, c-format
 msgid "<wpl> (%s) must be an integer percentage\n"
 msgstr "<wpl> (%s) doit être un pourcentage entier\n"
 
-#: plugins/check_ping.c:312
+#: plugins/check_ping.c:321
 #, c-format
 msgid "<cpl> (%s) must be an integer percentage\n"
 msgstr "<cpl> (%s) doit être un pourcentage entier\n"
 
-#: plugins/check_ping.c:323
+#: plugins/check_ping.c:332
 #, c-format
 msgid "<wrta> (%s) must be a non-negative number\n"
 msgstr "<wrta> (%s) doit être un nombre positif\n"
 
-#: plugins/check_ping.c:334
+#: plugins/check_ping.c:343
 #, c-format
 msgid "<crta> (%s) must be a non-negative number\n"
 msgstr "<crta> (%s) doit être un nombre positif\n"
 
-#: plugins/check_ping.c:367
+#: plugins/check_ping.c:376
 #, c-format
 msgid ""
 "%s: Warning threshold must be integer or percentage!\n"
 "\n"
 msgstr "%s: Le seuil d'avertissement doit être un entier ou un pourcentage!\n"
 
-#: plugins/check_ping.c:380
+#: plugins/check_ping.c:389
 #, c-format
 msgid "<wrta> was not set\n"
 msgstr "<wrta> n'a pas été indiqué\n"
 
-#: plugins/check_ping.c:384
+#: plugins/check_ping.c:393
 #, c-format
 msgid "<crta> was not set\n"
 msgstr "<crta> n'a pas été indiqué\n"
 
-#: plugins/check_ping.c:388
+#: plugins/check_ping.c:397
 #, c-format
 msgid "<wpl> was not set\n"
 msgstr " <wpl> n'a pas été indiqué\n"
 
-#: plugins/check_ping.c:392
+#: plugins/check_ping.c:401
 #, c-format
 msgid "<cpl> was not set\n"
 msgstr "<cpl> n'a pas été indiqué\n"
 
-#: plugins/check_ping.c:396
+#: plugins/check_ping.c:405
 #, c-format
 msgid "<wrta> (%f) cannot be larger than <crta> (%f)\n"
 msgstr "<wrta> (%f) ne peut pas être plus large que <crta> (%f)\n"
 
-#: plugins/check_ping.c:400
+#: plugins/check_ping.c:409
 #, c-format
 msgid "<wpl> (%d) cannot be larger than <cpl> (%d)\n"
 msgstr "<wpl> (%d) ne peut pas être plus large que <cpl> (%d)\n"
 
-#: plugins/check_ping.c:436
+#: plugins/check_ping.c:445
 #, c-format
 msgid "Cannot open stderr for %s\n"
 msgstr "Impossible d'ouvrir le canal d'erreur standard pour %s\n"
 
-#: plugins/check_ping.c:485 plugins/check_ping.c:487
+#: plugins/check_ping.c:494 plugins/check_ping.c:496
 msgid "System call sent warnings to stderr "
 msgstr ""
 "Les appel système enverront leurs messages d'avertissement vers le canal "
 "d'erreur standard"
 
-#: plugins/check_ping.c:514
+#: plugins/check_ping.c:523
 #, c-format
 msgid "CRITICAL - Network Unreachable (%s)"
 msgstr "CRITIQUE - Le réseau est inaccessible (%s)"
 
-#: plugins/check_ping.c:516
+#: plugins/check_ping.c:525
 #, c-format
 msgid "CRITICAL - Host Unreachable (%s)"
 msgstr "CRITIQUE - Hôte inaccessible (%s)"
 
-#: plugins/check_ping.c:518
+#: plugins/check_ping.c:527
 #, c-format
 msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)"
 msgstr "CRITIQUE - Paquet ICMP incorrect: Port inaccessible (%s)"
 
-#: plugins/check_ping.c:520
+#: plugins/check_ping.c:529
 #, c-format
 msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)"
 msgstr "CRITIQUE - Paquet ICMP incorrect: Protocole inaccessible (%s)"
 
-#: plugins/check_ping.c:522
+#: plugins/check_ping.c:531
 #, c-format
 msgid "CRITICAL - Network Prohibited (%s)"
 msgstr "CRITIQUE - L'accès au réseau est interdit (%s)"
 
-#: plugins/check_ping.c:524
+#: plugins/check_ping.c:533
 #, c-format
 msgid "CRITICAL - Host Prohibited (%s)"
 msgstr "CRITIQUE - L'accès a l'hôte est interdit (%s)"
 
-#: plugins/check_ping.c:526
+#: plugins/check_ping.c:535
 #, c-format
 msgid "CRITICAL - Packet Filtered (%s)"
 msgstr "CRITIQUE - Paquet filtré (%s)"
 
-#: plugins/check_ping.c:528
+#: plugins/check_ping.c:537
 #, c-format
 msgid "CRITICAL - Host not found (%s)"
 msgstr "CRITIQUE - Hôte non trouvé (%s)"
 
-#: plugins/check_ping.c:530
+#: plugins/check_ping.c:539
 #, c-format
 msgid "CRITICAL - Time to live exceeded (%s)"
 msgstr "CRITIQUE - La durée de vie du paquet est dépassée (%s)"
 
-#: plugins/check_ping.c:537
+#: plugins/check_ping.c:546
 msgid "Unable to realloc warn_text"
 msgstr "Impossible de réattribuer le texte d'avertissement"
 
-#: plugins/check_ping.c:554
+#: plugins/check_ping.c:563
 #, c-format
 msgid "Use ping to check connection statistics for a remote host."
 msgstr ""
 "Utilise ping pour vérifier les statistiques de connections d'un hôte distant."
 
-#: plugins/check_ping.c:565
+#: plugins/check_ping.c:575
 msgid "host to ping"
 msgstr "hôte à tester"
 
-#: plugins/check_ping.c:571
+#: plugins/check_ping.c:581
 msgid "number of ICMP ECHO packets to send"
 msgstr "nombre de paquets ICMP à envoyer"
 
-#: plugins/check_ping.c:572
+#: plugins/check_ping.c:582
 #, c-format
 msgid "(Default: %d)\n"
 msgstr "(Défaut: %d)\n"
 
-#: plugins/check_ping.c:574
+#: plugins/check_ping.c:584
 msgid "show HTML in the plugin output (obsoleted by urlize)"
 msgstr ""
 
-#: plugins/check_ping.c:578
+#: plugins/check_ping.c:589
 msgid "THRESHOLD is <rta>,<pl>% where <rta> is the round trip average travel"
 msgstr ""
 "Le seuil est <rta>,<pl>% où <rta> est le temps moyen pour l'aller retour (ms)"
 
-#: plugins/check_ping.c:579
+#: plugins/check_ping.c:590
 msgid "time (ms) which triggers a WARNING or CRITICAL state, and <pl> is the"
 msgstr "qui déclenche un résultat AVERTISSEMENT ou CRITIQUE, et <pl> est le "
 
-#: plugins/check_ping.c:580
+#: plugins/check_ping.c:591
 msgid "percentage of packet loss to trigger an alarm state."
 msgstr "pourcentage de paquets perdus pour déclencher une alarme."
 
-#: plugins/check_ping.c:584
+#: plugins/check_ping.c:594
 msgid ""
 "This plugin uses the ping command to probe the specified host for packet loss"
 msgstr ""
 "Ce plugin utilise la commande ping pour vérifier l'hôte spécifié pour les "
 "pertes de paquets"
 
-#: plugins/check_ping.c:585
+#: plugins/check_ping.c:595
 msgid ""
 "(percentage) and round trip average (milliseconds). It can produce HTML "
 "output"
 msgstr ""
 
-#: plugins/check_ping.c:586
+#: plugins/check_ping.c:596
 msgid ""
 "linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in"
 msgstr ""
 
-#: plugins/check_ping.c:587
+#: plugins/check_ping.c:597
 msgid "the contrib area of the downloads section at http://www.nagios.org/"
 msgstr ""
 
-#: plugins/check_procs.c:155
+#: plugins/check_procs.c:162
 #, c-format
 msgid "CMD: %s\n"
 msgstr "Commande: %s\n"
 
-#: plugins/check_procs.c:261
+#: plugins/check_procs.c:282
 #, c-format
 msgid "Not parseable: %s"
 msgstr "Impossible de parcourir les arguments: %s"
 
-#: plugins/check_procs.c:270
+#: plugins/check_procs.c:292
 #, c-format
 msgid "System call sent warnings to stderr\n"
 msgstr ""
 "Les alertes du système seront envoyées vers le canal d'erreur standard\n"
 
-#: plugins/check_procs.c:277
+#: plugins/check_procs.c:299
 #, c-format
 msgid "System call returned nonzero status\n"
 msgstr "L'appel système à retourné un statut non égal à zéro\n"
 
-#: plugins/check_procs.c:282
+#: plugins/check_procs.c:305
 #, c-format
 msgid "Unable to read output\n"
 msgstr "Impossible de lire les données en entrée\n"
 
-#: plugins/check_procs.c:299
+#: plugins/check_procs.c:322
 #, c-format
 msgid "%d warn out of "
 msgstr "%d avertissements sur"
 
-#: plugins/check_procs.c:304
+#: plugins/check_procs.c:327
 #, c-format
 msgid "%d crit, %d warn out of "
 msgstr "%d crit, %d alertes sur "
 
-#: plugins/check_procs.c:310
+#: plugins/check_procs.c:333
 #, c-format
 msgid " with %s"
 msgstr " avec %s"
 
-#: plugins/check_procs.c:385
+#: plugins/check_procs.c:413
 msgid "Critical Process Count must be an integer!"
 msgstr "Critique Le total des processus doit être un nombre entier!"
 
-#: plugins/check_procs.c:397
+#: plugins/check_procs.c:425
 msgid "Warning Process Count must be an integer!"
 msgstr "Avertissement Le total des processus doit être un nombre entier!"
 
-#: plugins/check_procs.c:405
+#: plugins/check_procs.c:433
 msgid "Parent Process ID must be an integer!"
 msgstr "L'identifiant du processus parent doit être un entier!"
 
-#: plugins/check_procs.c:411 plugins/check_procs.c:513
+#: plugins/check_procs.c:439 plugins/check_procs.c:553
 #, c-format
 msgid "%s%sSTATE = %s"
 msgstr "%s%sETAT = %s"
 
-#: plugins/check_procs.c:420
-#, c-format
-msgid "UID %s was not found"
+#: plugins/check_procs.c:448
+#, fuzzy
+msgid "UID was not found"
 msgstr "UID %s n'a pas été trouvé"
 
-#: plugins/check_procs.c:426
-#, c-format
-msgid "User name %s was not found"
+#: plugins/check_procs.c:454
+#, fuzzy
+msgid "User name was not found"
 msgstr "L'utilisateur %s n'a pas été trouvé"
 
-#: plugins/check_procs.c:441
+#: plugins/check_procs.c:469
 #, c-format
 msgid "%s%scommand name '%s'"
 msgstr "%s%snom de la commande '%s'"
 
-#: plugins/check_procs.c:460
+#: plugins/check_procs.c:497
 msgid "RSS must be an integer!"
 msgstr "RSS doit être un entier!"
 
-#: plugins/check_procs.c:467
+#: plugins/check_procs.c:504
 msgid "VSZ must be an integer!"
 msgstr "VSZ doit être un entier!"
 
-#: plugins/check_procs.c:475
+#: plugins/check_procs.c:512
 msgid "PCPU must be a float!"
 msgstr "PCPU doit être un nombre en virgule flottante!"
 
-#: plugins/check_procs.c:499
+#: plugins/check_procs.c:536
 msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!"
 msgstr "Metric doit être l'un des PROCS, VSZ, RSS, CPU, ELAPSED!"
 
-#: plugins/check_procs.c:532
+#: plugins/check_procs.c:572
 #, c-format
 msgid "wmax (%d) cannot be greater than cmax (%d)\n"
 msgstr "wmax (%d) ne peut pas être plus grand que cmax (%d)\n"
 
-#: plugins/check_procs.c:536
+#: plugins/check_procs.c:576
 #, c-format
 msgid "wmin (%d) cannot be less than cmin (%d)\n"
 msgstr "wmin (%d) ne peut pas être plus petit que cmin (%d)\n"
 
-#: plugins/check_procs.c:673
+#: plugins/check_procs.c:713
 msgid ""
 "Checks all processes and generates WARNING or CRITICAL states if the "
 "specified"
 msgstr ""
 
-#: plugins/check_procs.c:674
+#: plugins/check_procs.c:714
 msgid ""
 "metric is outside the required threshold ranges. The metric defaults to "
 "number"
 msgstr ""
 
-#: plugins/check_procs.c:675
+#: plugins/check_procs.c:715
 msgid ""
 "of processes.  Search filters can be applied to limit the processes to check."
 msgstr ""
 
-#: plugins/check_procs.c:681
-msgid "Required Arguments:"
-msgstr ""
-
-#: plugins/check_procs.c:683
+#: plugins/check_procs.c:724
 msgid "Generate warning state if metric is outside this range"
 msgstr ""
 
-#: plugins/check_procs.c:685
+#: plugins/check_procs.c:726
 msgid "Generate critical state if metric is outside this range"
 msgstr ""
 
-#: plugins/check_procs.c:687
-msgid "Optional Arguments:"
-msgstr "Arguments optionnels:"
-
-#: plugins/check_procs.c:689
+#: plugins/check_procs.c:728
 msgid "Check thresholds against metric. Valid types:"
 msgstr ""
 
-#: plugins/check_procs.c:690
+#: plugins/check_procs.c:729
 msgid "PROCS   - number of processes (default)"
 msgstr "PROCS   - nombre de  processus (défaut)"
 
-#: plugins/check_procs.c:691
+#: plugins/check_procs.c:730
 msgid "VSZ     - virtual memory size"
 msgstr "VSZ     - taille mémoire virtuelle"
 
-#: plugins/check_procs.c:692
+#: plugins/check_procs.c:731
 msgid "RSS     - resident set memory size"
 msgstr ""
 
-#: plugins/check_procs.c:693
+#: plugins/check_procs.c:732
 msgid "CPU     - percentage cpu"
 msgstr "CPU     - pourcentage du cpu"
 
-#: plugins/check_procs.c:696
+#: plugins/check_procs.c:735
 msgid "ELAPSED - time elapsed in seconds"
 msgstr "ELAPSED - temps écoulé en secondes"
 
-#: plugins/check_procs.c:701
+#: plugins/check_procs.c:740
 msgid "Extra information. Up to 3 verbosity levels"
 msgstr "informations supplémentaires. Jusqu'à 3 niveaux de verbosité"
 
-#: plugins/check_procs.c:705
+#: plugins/check_procs.c:745
 msgid "Only scan for processes that have, in the output of `ps`, one or"
 msgstr ""
 
-#: plugins/check_procs.c:706
+#: plugins/check_procs.c:746
 msgid "more of the status flags you specify (for example R, Z, S, RS,"
 msgstr ""
 
-#: plugins/check_procs.c:707
+#: plugins/check_procs.c:747
 msgid "RSZDT, plus others based on the output of your 'ps' command)."
 msgstr ""
 
-#: plugins/check_procs.c:709
+#: plugins/check_procs.c:749
 msgid "Only scan for children of the parent process ID indicated."
 msgstr ""
 
-#: plugins/check_procs.c:711
+#: plugins/check_procs.c:751
 msgid "Only scan for processes with vsz higher than indicated."
 msgstr ""
 
-#: plugins/check_procs.c:713
+#: plugins/check_procs.c:753
 msgid "Only scan for processes with rss higher than indicated."
 msgstr ""
 
-#: plugins/check_procs.c:715
+#: plugins/check_procs.c:755
 msgid "Only scan for processes with pcpu higher than indicated."
 msgstr ""
 
-#: plugins/check_procs.c:717
+#: plugins/check_procs.c:757
 msgid "Only scan for processes with user name or ID indicated."
 msgstr ""
 
-#: plugins/check_procs.c:719
+#: plugins/check_procs.c:759
 msgid "Only scan for processes with args that contain STRING."
 msgstr ""
 
-#: plugins/check_procs.c:721
+#: plugins/check_procs.c:761
+msgid "Only scan for processes with args that contain the regex STRING."
+msgstr ""
+
+#: plugins/check_procs.c:763
 msgid "Only scan for exact matches of COMMAND (without path)."
 msgstr ""
 
-#: plugins/check_procs.c:723
+#: plugins/check_procs.c:765
 #, c-format
 msgid ""
 "\n"
@@ -3684,7 +3804,7 @@
 "est à l'intérieur du seuil\n"
 "\n"
 
-#: plugins/check_procs.c:728
+#: plugins/check_procs.c:770
 #, c-format
 msgid ""
 "This plugin checks the number of currently running processes and\n"
@@ -3701,31 +3821,36 @@
 "état actuel (ex: 'Z'), ou par le nombre de processus en cours d'exécution\n"
 "\n"
 
-#: plugins/check_procs.c:737
+#: plugins/check_procs.c:785
 msgid "Warning if not two processes with command name portsentry."
 msgstr ""
 
-#: plugins/check_procs.c:738
+#: plugins/check_procs.c:786
 msgid "Critical if < 2 or > 1024 processes"
 msgstr ""
 
-#: plugins/check_procs.c:740
+#: plugins/check_procs.c:788
 msgid "Warning alert if > 10 processes with command arguments containing"
 msgstr ""
 
-#: plugins/check_procs.c:741
+#: plugins/check_procs.c:789
 msgid "'/usr/local/bin/perl' and owned by root"
 msgstr ""
 
-#: plugins/check_procs.c:743
+#: plugins/check_procs.c:791
 msgid "Alert if vsz of any processes over 50K or 100K"
 msgstr ""
 
-#: plugins/check_procs.c:745
+#: plugins/check_procs.c:793
 #, c-format
 msgid "Alert if cpu of any processes over 10%% or 20%%"
 msgstr ""
 
+#: plugins/check_procs.c:801
+#, fuzzy, c-format
+msgid "Usage: "
+msgstr "Utilisation:"
+
 #: plugins/check_radius.c:161
 msgid "Config file error"
 msgstr "Erreur dans le fichier de configuration"
@@ -3750,138 +3875,135 @@
 msgid "Auth OK"
 msgstr "L'authentification à réussi"
 
-#: plugins/check_radius.c:278
+#: plugins/check_radius.c:284
 msgid "Number of retries must be a positive integer"
 msgstr "Le nombre d'essai doit être un entier positif"
 
-#: plugins/check_radius.c:292
+#: plugins/check_radius.c:298
 msgid "User not specified"
 msgstr "L'utilisateur n'a pas été spécifié"
 
-#: plugins/check_radius.c:294
+#: plugins/check_radius.c:300
 msgid "Password not specified"
 msgstr "Le mot de passe n'a pas été spécifié"
 
-#: plugins/check_radius.c:296
+#: plugins/check_radius.c:302
 msgid "Configuration file not specified"
 msgstr "Le fichier de configuration n'a pas été spécifié"
 
-#: plugins/check_radius.c:314
+#: plugins/check_radius.c:320
 msgid "Tests to see if a radius server is accepting connections."
 msgstr "Teste si un serveur radius accepte les connections."
 
-#: plugins/check_radius.c:325
+#: plugins/check_radius.c:332
 msgid "The user to authenticate"
 msgstr ""
 
-#: plugins/check_radius.c:327
+#: plugins/check_radius.c:334
 msgid "Password for autentication (SECURITY RISK)"
 msgstr ""
 
-#: plugins/check_radius.c:329
+#: plugins/check_radius.c:336
 msgid "NAS identifier"
 msgstr ""
 
-#: plugins/check_radius.c:331
+#: plugins/check_radius.c:338
 msgid "Configuration file"
 msgstr "Fichier de configuration"
 
-#: plugins/check_radius.c:333
+#: plugins/check_radius.c:340
 msgid "Response string to expect from the server"
 msgstr ""
 
-#: plugins/check_radius.c:335
+#: plugins/check_radius.c:342
 msgid "Number of times to retry a failed connection"
 msgstr ""
 
-#: plugins/check_radius.c:339
+#: plugins/check_radius.c:347
 msgid ""
 "This plugin tests a radius server to see if it is accepting connections."
 msgstr ""
 "Ce plugin teste un serveur radius afin de vérifier si il accepte les "
 "connections."
 
-#: plugins/check_radius.c:340
+#: plugins/check_radius.c:348
 msgid ""
 "The server to test must be specified in the invocation, as well as a user"
 msgstr ""
 
-#: plugins/check_radius.c:341
+#: plugins/check_radius.c:349
 msgid ""
 "name and password. A configuration file may also be present. The format of"
 msgstr ""
 
-#: plugins/check_radius.c:342
+#: plugins/check_radius.c:350
 msgid ""
 "the configuration file is described in the radiusclient library sources."
 msgstr ""
 
-#: plugins/check_radius.c:343
+#: plugins/check_radius.c:351
 msgid "The password option presents a substantial security issue because the"
 msgstr ""
 
-#: plugins/check_radius.c:344
-msgid "password can be determined by careful watching of the command line in"
-msgstr ""
-
-#: plugins/check_radius.c:345
-msgid "a process listing.  This risk is exacerbated because nagios will"
+#: plugins/check_radius.c:352
+msgid ""
+"password can possibly be determined by careful watching of the command line"
 msgstr ""
 
-#: plugins/check_radius.c:346
-msgid "run the plugin at regular prdictable intervals.  Please be sure that"
+#: plugins/check_radius.c:353
+msgid "in a process listing. This risk is exacerbated because nagios will"
 msgstr ""
 
-#: plugins/check_radius.c:347
-msgid "the password used does not allow access to sensitive system resources,"
+#: plugins/check_radius.c:354
+msgid "run the plugin at regular predictable intervals. Please be sure that"
 msgstr ""
 
-#: plugins/check_radius.c:348
-msgid "otherwise compormise could occur."
+#: plugins/check_radius.c:355
+msgid "the password used does not allow access to sensitive system resources."
 msgstr ""
 
-#: plugins/check_real.c:96
+#: plugins/check_real.c:95
 #, c-format
 msgid "Unable to connect to %s on port %d\n"
 msgstr "Impossible de se connecter à %s sur le port %d\n"
 
-#: plugins/check_real.c:118
+#: plugins/check_real.c:117
 #, c-format
 msgid "No data received from %s\n"
 msgstr "Pas de données reçues de %s\n"
 
-#: plugins/check_real.c:123 plugins/check_real.c:196
+#: plugins/check_real.c:122 plugins/check_real.c:195
 msgid "Invalid REAL response received from host"
 msgstr "Réponses REAL invalide reçue de l'hôte"
 
-#: plugins/check_real.c:125 plugins/check_real.c:198
+#: plugins/check_real.c:124 plugins/check_real.c:197
 #, c-format
 msgid "Invalid REAL response received from host on port %d\n"
 msgstr "Réponses REAL invalide reçue de l'hôte sur le port %d\n"
 
-#: plugins/check_real.c:189 plugins/check_tcp.c:294
+#: plugins/check_real.c:188 plugins/check_tcp.c:295
 #, c-format
 msgid "No data received from host\n"
 msgstr "Pas de données reçues de l'hôte\n"
 
-#: plugins/check_real.c:252
+#: plugins/check_real.c:251
 #, c-format
 msgid "REAL %s - %d second response time\n"
 msgstr "REAL %s - %d secondes de temps de réponse\n"
 
-#: plugins/check_real.c:341 plugins/check_smtp.c:581 plugins/check_ups.c:535
+#: plugins/check_real.c:340 plugins/check_smtp.c:582 plugins/check_ups.c:536
 msgid "Warning time must be a positive integer"
 msgstr "Le seuil d'avertissement doit être un entier positif"
 
-#: plugins/check_real.c:350 plugins/check_smtp.c:572 plugins/check_ups.c:526
+#: plugins/check_real.c:349 plugins/check_smtp.c:573 plugins/check_ups.c:527
 msgid "Critical time must be a positive integer"
 msgstr "Le seuil critique doit être un entier positif"
 
-#: plugins/check_real.c:386
+#: plugins/check_real.c:385
 msgid "You must provide a server to check"
 msgstr "Vous devez fournir un serveur à vérifier"
 
-#: plugins/check_real.c:418
+#: plugins/check_real.c:417
 msgid "This plugin tests the REAL service on the specified host."
 msgstr "Ce plugin teste le service REAL sur l'hôte spécifié."
 
@@ -3895,228 +4017,237 @@
 msgstr ""
 "Texte attendu dans la première ligne de réponse du serveur (défaut: %s)\n"
 
-#: plugins/check_real.c:440
+#: plugins/check_real.c:441
 msgid "This plugin will attempt to open an RTSP connection with the host."
 msgstr "Ce plugin va essayer d'ouvrir un connexion RTSP avec l'hôte."
 
-#: plugins/check_real.c:441 plugins/check_smtp.c:812
+#: plugins/check_real.c:442 plugins/check_smtp.c:814
 msgid "Successul connects return STATE_OK, refusals and timeouts return"
 msgstr ""
 
-#: plugins/check_real.c:442
+#: plugins/check_real.c:443
 msgid ""
 "STATE_CRITICAL, other errors return STATE_UNKNOWN.  Successful connects,"
 msgstr ""
 
-#: plugins/check_real.c:443
+#: plugins/check_real.c:444
 msgid ""
 "but incorrect reponse messages from the host result in STATE_WARNING return"
 msgstr ""
 
-#: plugins/check_real.c:444
+#: plugins/check_real.c:445
 msgid "values."
 msgstr ""
 
-#: plugins/check_smtp.c:151 plugins/check_swap.c:268 plugins/check_swap.c:274
+#: plugins/check_smtp.c:150 plugins/check_swap.c:269 plugins/check_swap.c:275
 #, c-format
 msgid "malloc() failed!\n"
 msgstr "l'allocation mémoire à échoué!\n"
 
-#: plugins/check_smtp.c:155
+#: plugins/check_smtp.c:154
 #, c-format
 msgid "gethostname() failed!\n"
 msgstr "La commande gethostname() à échoué\n"
 
-#: plugins/check_smtp.c:190 plugins/check_smtp.c:214
+#: plugins/check_smtp.c:189 plugins/check_smtp.c:213
 #, c-format
 msgid "recv() failed\n"
 msgstr "La commande recv() à échoué\n"
 
-#: plugins/check_smtp.c:201
-#, c-format
-msgid "Invalid SMTP response received from host\n"
+#: plugins/check_smtp.c:200
+#, fuzzy, c-format
+msgid "Invalid SMTP response received from host: %s\n"
 msgstr "Réponse SMTP invalide reçue de l'hôte\n"
 
-#: plugins/check_smtp.c:203
-#, c-format
-msgid "Invalid SMTP response received from host on port %d\n"
+#: plugins/check_smtp.c:202
+#, fuzzy, c-format
+msgid "Invalid SMTP response received from host on port %d: %s\n"
 msgstr "Réponse SMTP invalide reçue de l'hôte sur le port %d\n"
 
-#: plugins/check_smtp.c:224
+#: plugins/check_smtp.c:223
 #, c-format
 msgid "WARNING - TLS not supported by server\n"
 msgstr "AVERTISSEMENT: - TLS n'est pas supporté par ce serveur\n"
 
-#: plugins/check_smtp.c:236
+#: plugins/check_smtp.c:235
 #, c-format
 msgid "Server does not support STARTTLS\n"
 msgstr "Le serveur ne supporte pas STARTTLS\n"
 
-#: plugins/check_smtp.c:242
+#: plugins/check_smtp.c:241
 #, c-format
 msgid "CRITICAL - Cannot create SSL context.\n"
 msgstr "CRITIQUE - Impossible de créer le contexte SSL.\n"
 
-#: plugins/check_smtp.c:262
+#: plugins/check_smtp.c:261
 msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS."
 msgstr ""
 
-#: plugins/check_smtp.c:267
+#: plugins/check_smtp.c:266
 #, c-format
 msgid "sent %s"
 msgstr "envoyé %s"
 
-#: plugins/check_smtp.c:269
+#: plugins/check_smtp.c:268
 msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS."
 msgstr ""
 
-#: plugins/check_smtp.c:281
+#: plugins/check_smtp.c:280
 msgid "CRITICAL - Cannot retrieve server certificate."
 msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur"
 
-#: plugins/check_smtp.c:317 plugins/check_snmp.c:590
+#: plugins/check_smtp.c:316 plugins/check_snmp.c:590
 #, c-format
 msgid "Could Not Compile Regular Expression"
 msgstr "Impossible de compiler l'expression rationnelle"
 
-#: plugins/check_smtp.c:326
+#: plugins/check_smtp.c:325
 #, c-format
 msgid "SMTP %s - Invalid response '%s' to command '%s'\n"
 msgstr "SMTP %s - réponse invalide de '%s' à la commande '%s'\n"
 
-#: plugins/check_smtp.c:330 plugins/check_snmp.c:335
+#: plugins/check_smtp.c:329 plugins/check_snmp.c:335
 #, c-format
 msgid "Execute Error: %s\n"
 msgstr "Erreur d'exécution: %s\n"
 
-#: plugins/check_smtp.c:344
+#: plugins/check_smtp.c:343
+#, c-format
 msgid "no authuser specified, "
 msgstr "Pas d'utilisateur pour l'authentification spécifié, "
 
-#: plugins/check_smtp.c:349
+#: plugins/check_smtp.c:348
+#, c-format
 msgid "no authpass specified, "
 msgstr "pas de mot de passe spécifié, "
 
-#: plugins/check_smtp.c:356 plugins/check_smtp.c:377 plugins/check_smtp.c:397
-#: plugins/check_smtp.c:673
+#: plugins/check_smtp.c:355 plugins/check_smtp.c:377 plugins/check_smtp.c:398
+#: plugins/check_smtp.c:674
 #, c-format
 msgid "sent %s\n"
 msgstr "envoyé %s\n"
 
-#: plugins/check_smtp.c:359
+#: plugins/check_smtp.c:358
+#, c-format
 msgid "recv() failed after AUTH LOGIN, "
 msgstr "recv() à échoué après AUTH LOGIN, "
 
-#: plugins/check_smtp.c:364 plugins/check_smtp.c:385 plugins/check_smtp.c:405
-#: plugins/check_smtp.c:684
+#: plugins/check_smtp.c:363 plugins/check_smtp.c:385 plugins/check_smtp.c:406
+#: plugins/check_smtp.c:685
 #, c-format
 msgid "received %s\n"
 msgstr "reçu %s\n"
 
-#: plugins/check_smtp.c:368
+#: plugins/check_smtp.c:367
+#, c-format
 msgid "invalid response received after AUTH LOGIN, "
 msgstr "Réponse invalide reçue après AUTH LOGIN, "
 
 #: plugins/check_smtp.c:381
+#, c-format
 msgid "recv() failed after sending authuser, "
 msgstr "La commande recv() a échoué après authuser, "
 
 #: plugins/check_smtp.c:389
+#, c-format
 msgid "invalid response received after authuser, "
 msgstr "Réponse invalide reçue après authuser, "
 
-#: plugins/check_smtp.c:401
+#: plugins/check_smtp.c:402
+#, c-format
 msgid "recv() failed after sending authpass, "
 msgstr "la commande recv() à échoué après authpass, "
 
-#: plugins/check_smtp.c:409
+#: plugins/check_smtp.c:410
+#, c-format
 msgid "invalid response received after authpass, "
 msgstr "Réponse invalide reçue après authpass, "
 
-#: plugins/check_smtp.c:416
+#: plugins/check_smtp.c:417
+#, c-format
 msgid "only authtype LOGIN is supported, "
 msgstr "seul la méthode d'authentification LOGIN est supportée, "
 
-#: plugins/check_smtp.c:440
+#: plugins/check_smtp.c:441
 #, c-format
 msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n"
 msgstr "SMTP %s - %s%.3f sec. de temps de réponse%s%s|%s\n"
 
-#: plugins/check_smtp.c:548 plugins/check_smtp.c:560
+#: plugins/check_smtp.c:549 plugins/check_smtp.c:561
 #, c-format
 msgid "Could not realloc() units [%d]\n"
 msgstr "Impossible de réallouer des unités [%d]\n"
 
-#: plugins/check_smtp.c:608
+#: plugins/check_smtp.c:609
 msgid "SSL support not available - install OpenSSL and recompile"
 msgstr "SSL n'est pas disponible - installer OpenSSL et recompilez"
 
-#: plugins/check_smtp.c:679
+#: plugins/check_smtp.c:680
 #, c-format
 msgid "recv() failed after QUIT."
 msgstr "recv() à échoué après QUIT."
 
-#: plugins/check_smtp.c:681
+#: plugins/check_smtp.c:682
 #, c-format
 msgid "Connection reset by peer."
 msgstr ""
 
-#: plugins/check_smtp.c:769
+#: plugins/check_smtp.c:770
 msgid "This plugin will attempt to open an SMTP connection with the host."
 msgstr "Ce plugin va essayer d'ouvrir un connexion SMTP avec l'hôte."
 
-#: plugins/check_smtp.c:782
+#: plugins/check_smtp.c:784
 #, c-format
 msgid "    String to expect in first line of server response (default: '%s')\n"
 msgstr ""
 "   Texte attendu dans la première ligne de réponse du serveur (défaut: '%"
 "s')\n"
 
-#: plugins/check_smtp.c:784
+#: plugins/check_smtp.c:786
 msgid "Suppress SMTP command"
 msgstr ""
 
-#: plugins/check_smtp.c:786
+#: plugins/check_smtp.c:788
 msgid "SMTP command (may be used repeatedly)"
 msgstr "Commande SMTP (peut être utilisé plusieurs fois)"
 
-#: plugins/check_smtp.c:788
+#: plugins/check_smtp.c:790
 msgid "Expected response to command (may be used repeatedly)"
 msgstr ""
 
-#: plugins/check_smtp.c:790
+#: plugins/check_smtp.c:792
 msgid "FROM-address to include in MAIL command, required by Exchange 2000"
 msgstr ""
 
-#: plugins/check_smtp.c:793 plugins/check_tcp.c:636
+#: plugins/check_smtp.c:795 plugins/check_tcp.c:638
 msgid "Minimum number of days a certificate has to be valid."
 msgstr "Nombre de jours minimum pour que le certificat soit valide."
 
-#: plugins/check_smtp.c:795
+#: plugins/check_smtp.c:797
 msgid "Use STARTTLS for the connection."
 msgstr ""
 
-#: plugins/check_smtp.c:799
+#: plugins/check_smtp.c:801
 msgid "SMTP AUTH type to check (default none, only LOGIN supported)"
 msgstr ""
 
-#: plugins/check_smtp.c:801
+#: plugins/check_smtp.c:803
 msgid "SMTP AUTH username"
 msgstr ""
 
-#: plugins/check_smtp.c:803
+#: plugins/check_smtp.c:805
 msgid "SMTP AUTH password"
 msgstr ""
 
-#: plugins/check_smtp.c:813
+#: plugins/check_smtp.c:815
 msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN.  Successful"
 msgstr ""
 
-#: plugins/check_smtp.c:814
+#: plugins/check_smtp.c:816
 msgid "connects, but incorrect reponse messages from the host result in"
 msgstr ""
 
-#: plugins/check_smtp.c:815
+#: plugins/check_smtp.c:817
 msgid "STATE_WARNING return values."
 msgstr ""
 
@@ -4191,207 +4322,208 @@
 "Vérifie l'état des machines distantes et obtient l'information système via "
 "SNMP"
 
-#: plugins/check_snmp.c:943
+#: plugins/check_snmp.c:944
 msgid "Use SNMP GETNEXT instead of SNMP GET"
 msgstr "Utiliser SNMP GETNEXT au lieu de SNMP GET"
 
-#: plugins/check_snmp.c:945
+#: plugins/check_snmp.c:946
 msgid "SNMP protocol version"
 msgstr "Version du protocole SNMP"
 
-#: plugins/check_snmp.c:947
+#: plugins/check_snmp.c:948
 msgid "SNMPv3 securityLevel"
 msgstr "Niveau de sécurité SNMPv3 (securityLevel)"
 
-#: plugins/check_snmp.c:949
+#: plugins/check_snmp.c:950
 msgid "SNMPv3 auth proto"
 msgstr "Protocole d'authentification SNMPv3"
 
-#: plugins/check_snmp.c:953
+#: plugins/check_snmp.c:954
 msgid "Optional community string for SNMP communication"
 msgstr "Communauté optionnelle pour la communication SNMP"
 
-#: plugins/check_snmp.c:954
+#: plugins/check_snmp.c:955
 msgid "default is"
 msgstr "défaut:"
 
-#: plugins/check_snmp.c:956
+#: plugins/check_snmp.c:957
 msgid "SNMPv3 username"
 msgstr "Nom d'utilisateur SNMPv3"
 
-#: plugins/check_snmp.c:958
+#: plugins/check_snmp.c:959
 msgid "SNMPv3 authentication password"
 msgstr "Mot de passe d'authentification SNMPv3"
 
-#: plugins/check_snmp.c:960
+#: plugins/check_snmp.c:961
 msgid "SNMPv3 privacy password"
 msgstr "Mot de passe de confidentialité SNMPv3"
 
-#: plugins/check_snmp.c:964
+#: plugins/check_snmp.c:965
 msgid "Object identifier(s) or SNMP variables whose value you wish to query"
 msgstr ""
 
-#: plugins/check_snmp.c:966
+#: plugins/check_snmp.c:967
 msgid ""
 "List of MIBS to be loaded (default = none if using numeric oids or 'ALL'"
 msgstr ""
 
-#: plugins/check_snmp.c:967
+#: plugins/check_snmp.c:968
 msgid "for symbolic oids.)"
 msgstr ""
 
-#: plugins/check_snmp.c:969
+#: plugins/check_snmp.c:970
 #, c-format
 msgid "    Delimiter to use when parsing returned data. Default is \"%s\""
 msgstr ""
 
-#: plugins/check_snmp.c:970
+#: plugins/check_snmp.c:971
 msgid "Any data on the right hand side of the delimiter is considered"
 msgstr ""
 
-#: plugins/check_snmp.c:971
+#: plugins/check_snmp.c:972
 msgid "to be the data that should be used in the evaluation."
 msgstr ""
 
-#: plugins/check_snmp.c:975
+#: plugins/check_snmp.c:976
 msgid "Range(s) which will not result in a WARNING status"
 msgstr ""
 
-#: plugins/check_snmp.c:977
+#: plugins/check_snmp.c:978
 msgid "Range(s) which will not result in a CRITICAL status"
 msgstr ""
 
-#: plugins/check_snmp.c:981
+#: plugins/check_snmp.c:982
 msgid "Return OK state (for that OID) if STRING is an exact match"
 msgstr ""
 
-#: plugins/check_snmp.c:983
+#: plugins/check_snmp.c:984
 msgid ""
 "Return OK state (for that OID) if extended regular expression REGEX matches"
 msgstr ""
 
-#: plugins/check_snmp.c:985
+#: plugins/check_snmp.c:986
 msgid ""
 "Return OK state (for that OID) if case-insensitive extended REGEX matches"
 msgstr ""
 
-#: plugins/check_snmp.c:987
+#: plugins/check_snmp.c:988
 msgid "Prefix label for output from plugin (default -s 'SNMP')"
 msgstr ""
 
-#: plugins/check_snmp.c:991
+#: plugins/check_snmp.c:992
 msgid "Units label(s) for output data (e.g., 'sec.')."
 msgstr ""
 
-#: plugins/check_snmp.c:993
+#: plugins/check_snmp.c:994
 msgid "Separates output on multiple OID requests"
 msgstr ""
 
-#: plugins/check_snmp.c:999
+#: plugins/check_snmp.c:1001
 msgid ""
 "This plugin uses the 'snmpget' command included with the NET-SNMP package."
 msgstr ""
 
-#: plugins/check_snmp.c:1000
+#: plugins/check_snmp.c:1002
 msgid ""
 "if you don't have the package installed, you will need to download it from"
 msgstr ""
 "Si vous n'avez pas le programme installé, vous devrez le télécharger depuis"
 
-#: plugins/check_snmp.c:1001
+#: plugins/check_snmp.c:1003
 msgid "http://net-snmp.sourceforge.net before you can use this plugin."
 msgstr "http://net-snmp.sourceforge.net avant de pouvoir utiliser ce plugin."
 
-#: plugins/check_snmp.c:1003
+#: plugins/check_snmp.c:1007
 msgid ""
 "- Multiple OIDs may be indicated by a comma- or space-delimited list (lists "
 "with"
 msgstr ""
 "- Des OIDs multiples peuvent être indiquées par une virgule ou par des listes"
 
-#: plugins/check_snmp.c:1004
-msgid " internal spaces must be quoted) [max 8 OIDs]"
+#: plugins/check_snmp.c:1008
+msgid "internal spaces must be quoted) [max 8 OIDs]"
 msgstr ""
 
-#: plugins/check_snmp.c:1006
+#: plugins/check_snmp.c:1010
 msgid "- Ranges are inclusive and are indicated with colons. When specified as"
 msgstr ""
 
-#: plugins/check_snmp.c:1007
+#: plugins/check_snmp.c:1011
+#, fuzzy
 msgid ""
-" 'min:max' a STATE_OK will be returned if the result is within the indicated"
+"'min:max' a STATE_OK will be returned if the result is within the indicated"
 msgstr ""
 " 'max:min' un résultat STATE_OK sera retourné si le résultat est dans "
 "l'écart spécifié."
 
-#: plugins/check_snmp.c:1008
-msgid " range or is equal to the upper or lower bound. A non-OK state will be"
+#: plugins/check_snmp.c:1012
+msgid "range or is equal to the upper or lower bound. A non-OK state will be"
 msgstr ""
 
-#: plugins/check_snmp.c:1009
-msgid " returned if the result is outside the specified range."
+#: plugins/check_snmp.c:1013
+msgid "returned if the result is outside the specified range."
 msgstr ""
 
-#: plugins/check_snmp.c:1011
+#: plugins/check_snmp.c:1015
 msgid ""
 "- If specified in the order 'max:min' a non-OK state will be returned if the"
 msgstr ""
 "- Si l'écart est indiqué comme 'max:min' un résultat autre que STATE_OK sera "
 "retourné si le"
 
-#: plugins/check_snmp.c:1012
-msgid " result is within the (inclusive) range."
+#: plugins/check_snmp.c:1016
+msgid "result is within the (inclusive) range."
 msgstr ""
 
-#: plugins/check_snmp.c:1014
+#: plugins/check_snmp.c:1018
 msgid ""
 "- Upper or lower bounds may be omitted to skip checking the respective limit."
 msgstr ""
 
-#: plugins/check_snmp.c:1015
+#: plugins/check_snmp.c:1019
 msgid "- Bare integers are interpreted as upper limits."
 msgstr ""
 
-#: plugins/check_snmp.c:1016
+#: plugins/check_snmp.c:1020
 msgid ""
 "- When checking multiple OIDs, separate ranges by commas like '-w "
 "1:10,1:,:20'"
 msgstr ""
 
-#: plugins/check_snmp.c:1017
+#: plugins/check_snmp.c:1021
 msgid "- Note that only one string and one regex may be checked at present"
 msgstr ""
 
-#: plugins/check_snmp.c:1018
+#: plugins/check_snmp.c:1022
 msgid ""
 "- All evaluation methods other than PR, STR, and SUBSTR expect that the value"
 msgstr ""
 
-#: plugins/check_snmp.c:1019
-msgid " returned from the SNMP query is an unsigned integer."
+#: plugins/check_snmp.c:1023
+msgid "returned from the SNMP query is an unsigned integer."
 msgstr ""
 
-#: plugins/check_ssh.c:170
+#: plugins/check_ssh.c:169
 msgid "Port number must be a positive integer"
 msgstr "Le numéro du port doit être un nombre entier positif"
 
-#: plugins/check_ssh.c:235
+#: plugins/check_ssh.c:234
 #, c-format
 msgid "Server answer: %s"
 msgstr "Réponse du serveur: %s"
 
-#: plugins/check_ssh.c:254
+#: plugins/check_ssh.c:253
 #, c-format
 msgid "SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n"
 msgstr ""
 "SSH AVERTISSEMENT - %s (protocole %s) différence de version, attendu'%s'\n"
 
-#: plugins/check_ssh.c:261
+#: plugins/check_ssh.c:260
 #, c-format
 msgid "SSH OK - %s (protocol %s)\n"
 msgstr "SSH OK - %s (protocole %s)\n"
 
-#: plugins/check_ssh.c:281
+#: plugins/check_ssh.c:280
 msgid "Try to connect to an SSH server at specified server and port"
 msgstr "Essaye de se connecter à un serveur SSH précisé à un port précis"
 
@@ -4402,152 +4534,153 @@
 "AVERTISSEMENT si la chaîne ne correspond pas à la version précisée (ex: "
 "OpenSSH_3.9p1)"
 
-#: plugins/check_swap.c:172
+#: plugins/check_swap.c:173
 #, c-format
 msgid "Command: %s\n"
 msgstr "Commande: %s\n"
 
-#: plugins/check_swap.c:174
+#: plugins/check_swap.c:175
 #, c-format
 msgid "Format: %s\n"
 msgstr "Format: %s\n"
 
-#: plugins/check_swap.c:210
+#: plugins/check_swap.c:211
 #, c-format
 msgid "total=%.0f, used=%.0f, free=%.0f\n"
 msgstr "total=%.0f, utilisé=%.0f, libre=%.0ff\n"
 
-#: plugins/check_swap.c:224
+#: plugins/check_swap.c:225
 #, c-format
 msgid "total=%.0f, free=%.0f\n"
 msgstr "total=%.0f, libre=%.0f\n"
 
-#: plugins/check_swap.c:256
+#: plugins/check_swap.c:257
 msgid "Error getting swap devices\n"
 msgstr ""
 
-#: plugins/check_swap.c:259
+#: plugins/check_swap.c:260
 msgid "SWAP OK: No swap devices defined\n"
 msgstr "SWAP OK: Pas de périphériques swap définis\n"
 
-#: plugins/check_swap.c:280 plugins/check_swap.c:322
+#: plugins/check_swap.c:281 plugins/check_swap.c:323
 msgid "swapctl failed: "
 msgstr "swapctl à échoué:"
 
-#: plugins/check_swap.c:281 plugins/check_swap.c:323
+#: plugins/check_swap.c:282 plugins/check_swap.c:324
 msgid "Error in swapctl call\n"
 msgstr ""
 
-#: plugins/check_swap.c:360
+#: plugins/check_swap.c:361
 #, c-format
 msgid "SWAP %s - %d%% free (%d MB out of %d MB) %s|"
 msgstr "SWAP %s - %d%% libre (%d MB sur un total de %d MB) %s|"
 
-#: plugins/check_swap.c:438
+#: plugins/check_swap.c:439
 msgid "Warning threshold must be integer or percentage!"
 msgstr "Le seuil d'avertissement doit être un entier ou un pourcentage!"
 
-#: plugins/check_swap.c:456
+#: plugins/check_swap.c:457
 msgid "Critical threshold must be integer or percentage!"
 msgstr "Le seuil critique doit être un entier ou un pourcentage!"
 
-#: plugins/check_swap.c:510
+#: plugins/check_swap.c:511
 msgid "Warning percentage should be more than critical percentage"
 msgstr ""
 "Le pourcentage d'avertissement doit être plus important que le pourcentage "
 "critique"
 
-#: plugins/check_swap.c:514
+#: plugins/check_swap.c:515
 msgid "Warning free space should be more than critical free space"
 msgstr ""
 "Le seuil d'avertissement pour la place libre doit être plus grand que le "
 "seuil critique"
 
-#: plugins/check_swap.c:528
+#: plugins/check_swap.c:529
 msgid "Check swap space on local machine."
 msgstr "Vérifie l'espace swap sur la machine locale."
 
-#: plugins/check_swap.c:537
+#: plugins/check_swap.c:539
 msgid ""
 "Exit with WARNING status if less than INTEGER bytes of swap space are free"
 msgstr ""
 "Sortir avec un résultat AVERTISSEMENT si moins de X octets de mémoire "
 "virtuelle sont libres"
 
-#: plugins/check_swap.c:539
+#: plugins/check_swap.c:541
 msgid "Exit with WARNING status if less than PERCENT of swap space is free"
 msgstr ""
 "Sortir avec un résultat AVERTISSEMENT si moins de X pour cent de mémoire "
 "virtuelle est libre"
 
-#: plugins/check_swap.c:541
+#: plugins/check_swap.c:543
 msgid ""
 "Exit with CRITICAL status if less than INTEGER bytes of swap space are free"
 msgstr ""
 "Sortir avec un résultat CRITIQUE si moins de X octets de mémoire virtuelle "
 "sont libres"
 
-#: plugins/check_swap.c:543
+#: plugins/check_swap.c:545
 msgid "Exit with CRITCAL status if less than PERCENT of swap space is free"
 msgstr ""
 "Sortir avec un résultat CRITIQUE si moins de X pour cent de mémoire "
 "virtuelle est libre"
 
-#: plugins/check_swap.c:545
+#: plugins/check_swap.c:547
 msgid "Conduct comparisons for all swap partitions, one by one"
 msgstr "Vérifier chacune des partitions de mémoire virtuelle séparément"
 
-#: plugins/check_swap.c:549
-msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.\n"
+#: plugins/check_swap.c:552
+#, fuzzy
+msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s."
 msgstr ""
 "Sur AIX, si -a est spécifié, le plugin utilise lsps -a, au sinon il utilise "
 "lsps -s.\n"
 
-#: plugins/check_tcp.c:202
+#: plugins/check_tcp.c:200
 msgid "CRITICAL - Generic check_tcp called with unknown service\n"
 msgstr ""
 "CRITIQUE -check_tcp version générique utilisé avec un service inconnu\n"
 
-#: plugins/check_tcp.c:223
+#: plugins/check_tcp.c:224
 msgid "With UDP checks, a send/expect string must be specified."
 msgstr ""
 "Avec la surveillance UDP, une chaîne d'envoi et un chaîne de réponse doit "
 "être spécifiée."
 
-#: plugins/check_tcp.c:242
+#: plugins/check_tcp.c:243
 #, c-format
 msgid "CRITICAL - Cannot retrieve server certificate.\n"
 msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur.\n"
 
-#: plugins/check_tcp.c:422
+#: plugins/check_tcp.c:423
 msgid "No arguments found"
 msgstr "Pas de paramètres"
 
-#: plugins/check_tcp.c:523
+#: plugins/check_tcp.c:524
 msgid "Maxbytes must be a positive integer"
 msgstr "Maxbytes doit être un entier positif"
 
-#: plugins/check_tcp.c:541
+#: plugins/check_tcp.c:542
 msgid "Refuse must be one of ok, warn, crit"
 msgstr "Refuse doit être parmis ok, warn, crit"
 
-#: plugins/check_tcp.c:551
+#: plugins/check_tcp.c:552
 msgid "Mismatch must be one of ok, warn, crit"
 msgstr "Mismatch doit être parmis ok, warn, crit"
 
-#: plugins/check_tcp.c:557
+#: plugins/check_tcp.c:558
 msgid "Delay must be a positive integer"
 msgstr "Delay doit être un entier positif"
 
-#: plugins/check_tcp.c:585
+#: plugins/check_tcp.c:586
 msgid "You must provide a server address"
 msgstr "Vous devez fournir une adresse serveur"
 
-#: plugins/check_tcp.c:587
+#: plugins/check_tcp.c:588
 msgid "Invalid hostname, address or socket"
 msgstr "Adresse/Nom/Socket invalide"
 
-#: plugins/check_tcp.c:601
+#: plugins/check_tcp.c:602
 #, c-format
 msgid ""
 "This plugin tests %s connections with the specified host (or unix socket).\n"
@@ -4556,7 +4689,7 @@
 "Ce plugin teste %s connections avec l'hôte spécifié (ou socket unix).\n"
 "\n"
 
-#: plugins/check_tcp.c:613
+#: plugins/check_tcp.c:615
 msgid ""
 "Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or "
 "quit option"
@@ -4564,55 +4697,55 @@
 "Permet d'utiliser \\n, \\r, \\t ou \\ dans la chaîne de caractères send ou "
 "quit. Doit être placé avant ces dernières."
 
-#: plugins/check_tcp.c:614
+#: plugins/check_tcp.c:616
 msgid "Default: nothing added to send, \\r\\n added to end of quit"
 msgstr ""
 "Par défaut: Rien n'est ajouté à send, \\r\\n est ajouté à la fin de quit"
 
-#: plugins/check_tcp.c:616
+#: plugins/check_tcp.c:618
 msgid "String to send to the server"
 msgstr "Chaîne de caractères à envoyer au serveur"
 
-#: plugins/check_tcp.c:618
+#: plugins/check_tcp.c:620
 msgid "String to expect in server response"
 msgstr "Chaîne de caractères à attendre en réponse"
 
-#: plugins/check_tcp.c:618
+#: plugins/check_tcp.c:620
 msgid "(may be repeated)"
 msgstr "(peut être utilisé plusieurs fois)"
 
-#: plugins/check_tcp.c:620
+#: plugins/check_tcp.c:622
 msgid "All expect strings need to occur in server response. Default is any"
 msgstr ""
 "Toutes les chaînes attendus (expect) doivent être repérés dans la réponse. "
 "Par défaut, n'importe laquelle suffit."
 
-#: plugins/check_tcp.c:622
+#: plugins/check_tcp.c:624
 msgid "String to send server to initiate a clean close of the connection"
 msgstr "Chaîne de caractères à envoyer pour fermer gracieusement la connection"
 
-#: plugins/check_tcp.c:624
+#: plugins/check_tcp.c:626
 msgid "Accept tcp refusals with states ok, warn, crit (default: crit)"
 msgstr ""
 
-#: plugins/check_tcp.c:626
+#: plugins/check_tcp.c:628
 msgid ""
 "Accept expected string mismatches with states ok, warn, crit (default: warn)"
 msgstr ""
 
-#: plugins/check_tcp.c:628
+#: plugins/check_tcp.c:630
 msgid "Hide output from TCP socket"
 msgstr "Cacher la réponse provenant du socket TCP"
 
-#: plugins/check_tcp.c:630
+#: plugins/check_tcp.c:632
 msgid "Close connection once more than this number of bytes are received"
 msgstr ""
 
-#: plugins/check_tcp.c:632
+#: plugins/check_tcp.c:634
 msgid "Seconds to wait between sending string and polling for response"
 msgstr ""
 
-#: plugins/check_tcp.c:638
+#: plugins/check_tcp.c:640
 msgid "Use SSL for the connection."
 msgstr ""
 
@@ -4655,134 +4788,137 @@
 msgid "This plugin will check the time on the specified host."
 msgstr "Ce plugin va vérifier l'heure sur l'hôte spécifié."
 
-#: plugins/check_time.c:354
+#: plugins/check_time.c:355
 msgid "Use UDP to connect, not TCP"
 msgstr ""
 
-#: plugins/check_time.c:356
+#: plugins/check_time.c:357
 msgid "Time difference (sec.) necessary to result in a warning status"
 msgstr ""
 
-#: plugins/check_time.c:358
+#: plugins/check_time.c:359
 msgid "Time difference (sec.) necessary to result in a critical status"
 msgstr ""
 
-#: plugins/check_time.c:360
+#: plugins/check_time.c:361
 msgid "Response time (sec.) necessary to result in warning status"
 msgstr ""
 
-#: plugins/check_time.c:362
+#: plugins/check_time.c:363
 msgid "Response time (sec.) necessary to result in critical status"
 msgstr ""
 
-#: plugins/check_ups.c:147
+#: plugins/check_ups.c:148
+#, c-format
 msgid "On Battery, Low Battery"
 msgstr "Sur Batterie, Batterie faible"
 
-#: plugins/check_ups.c:152
+#: plugins/check_ups.c:153
 msgid "Online"
 msgstr "En marche"
 
-#: plugins/check_ups.c:155
+#: plugins/check_ups.c:156
 msgid "On Battery"
 msgstr "Sur Batterie"
 
-#: plugins/check_ups.c:159
+#: plugins/check_ups.c:160
 msgid ", Low Battery"
 msgstr ", Batterie faible"
 
-#: plugins/check_ups.c:163
+#: plugins/check_ups.c:164
 msgid ", Calibrating"
 msgstr ", Calibration"
 
-#: plugins/check_ups.c:166
+#: plugins/check_ups.c:167
 msgid ", Replace Battery"
 msgstr ", Remplacer la batterie"
 
-#: plugins/check_ups.c:170
+#: plugins/check_ups.c:171
 msgid ", On Bypass"
 msgstr ", Sur Secteur"
 
-#: plugins/check_ups.c:173
+#: plugins/check_ups.c:174
 msgid ", Overload"
 msgstr ", Surcharge"
 
-#: plugins/check_ups.c:176
+#: plugins/check_ups.c:177
 msgid ", Trimming"
 msgstr ", En Test"
 
-#: plugins/check_ups.c:179
+#: plugins/check_ups.c:180
 msgid ", Boosting"
 msgstr ""
 
-#: plugins/check_ups.c:182
+#: plugins/check_ups.c:183
 msgid ", Charging"
 msgstr ", En charge"
 
-#: plugins/check_ups.c:185
+#: plugins/check_ups.c:186
 msgid ", Discharging"
 msgstr ", Déchargement"
 
-#: plugins/check_ups.c:188
+#: plugins/check_ups.c:189
 msgid ", Unknown"
 msgstr ", Inconnu"
 
-#: plugins/check_ups.c:327
+#: plugins/check_ups.c:328
+#, c-format
 msgid "UPS does not support any available options\n"
 msgstr "L'UPS ne supporte aucune des options disponibles\n"
 
-#: plugins/check_ups.c:351 plugins/check_ups.c:411
+#: plugins/check_ups.c:352 plugins/check_ups.c:412
 msgid "Invalid response received from host"
 msgstr "Réponse invalide reçue de l'hôte"
 
-#: plugins/check_ups.c:419
+#: plugins/check_ups.c:420
 #, c-format
 msgid "CRITICAL - no such ups '%s' on that host\n"
 msgstr "CRITIQUE - pas d'ups '%s' sur cet hôte\n"
 
-#: plugins/check_ups.c:429
+#: plugins/check_ups.c:430
 msgid "CRITICAL - UPS data is stale"
 msgstr "CRITIQUE - les données de l'ups ne sont plus valables"
 
-#: plugins/check_ups.c:434
+#: plugins/check_ups.c:435
 #, c-format
 msgid "Unknown error: %s\n"
 msgstr "Erreur inconnue: %s\n"
 
-#: plugins/check_ups.c:441
+#: plugins/check_ups.c:442
 msgid "Error: unable to parse variable"
 msgstr "Erreur: impossible de lire la variable"
 
-#: plugins/check_ups.c:548
+#: plugins/check_ups.c:549
 msgid "Unrecognized UPS variable"
 msgstr "Variable d'UPS non reconnue"
 
-#: plugins/check_ups.c:586
+#: plugins/check_ups.c:587
 msgid "Error : no ups indicated"
 msgstr "Erreur: pas d'ups indiqué"
 
-#: plugins/check_ups.c:606
+#: plugins/check_ups.c:607
+#, fuzzy
 msgid ""
-"This plugin tests the UPS service on the specified host.Network UPS Tools "
+"This plugin tests the UPS service on the specified host. Network UPS Tools"
 msgstr ""
 "Ce plugin teste le service UPS sur l'hôte spécifié en utilisant Network UPS "
 "Tools "
 
-#: plugins/check_ups.c:607
+#: plugins/check_ups.c:608
 msgid "from www.networkupstools.org must be running for thisplugin to work."
 msgstr ""
 "de www.networkupstools.org doit fonctionner sur l'hôte pour que ce plugin "
 "fonctionne."
 
-#: plugins/check_ups.c:618
+#: plugins/check_ups.c:620
 msgid "Name of UPS"
 msgstr ""
 
-#: plugins/check_ups.c:620
+#: plugins/check_ups.c:622
 msgid "Output of temperatures in Celsius"
 msgstr "Affichage des températures en Celsius"
 
-#: plugins/check_ups.c:622
+#: plugins/check_ups.c:624
 msgid "Valid values for STRING are"
 msgstr "Les variables valides pour STRING sont"
 
@@ -4811,146 +4947,148 @@
 msgid "state."
 msgstr ""
 
-#: plugins/check_ups.c:641
+#: plugins/check_ups.c:643
 msgid ""
-"You may also specify a variable to check [such as temperature, utility "
+"You may also specify a variable to check (such as temperature, utility "
 "voltage,"
 msgstr ""
 
-#: plugins/check_ups.c:642
+#: plugins/check_ups.c:644
 msgid ""
-"battery load, etc.]  as well as warning and critical thresholds for the "
-"value of"
+"battery load, etc.)  as well as warning and critical thresholds for the value"
 msgstr ""
 
-#: plugins/check_ups.c:643
+#: plugins/check_ups.c:645
 msgid ""
-"that variable.  If the remote host has multiple UPS that are being monitored "
-"you"
+"of that variable.  If the remote host has multiple UPS that are being "
+"monitored"
 msgstr ""
 
-#: plugins/check_ups.c:644
-msgid "will have to use the [ups] option to specify which UPS to check."
+#: plugins/check_ups.c:646
+msgid "you will have to use the --ups option to specify which UPS to check."
 msgstr ""
 
-#: plugins/check_ups.c:646
+#: plugins/check_ups.c:648
 msgid ""
 "This plugin requires that the UPSD daemon distributed with Russel Kroll's"
 msgstr ""
 
-#: plugins/check_ups.c:647
-msgid ""
-"Smart UPS Tools be installed on the remote host.  If you do not have the"
+#: plugins/check_ups.c:649
+msgid "Smart UPS Tools be installed on the remote host. If you do not have the"
 msgstr ""
 
-#: plugins/check_ups.c:648
-msgid ""
-"package installed on your system, you can download it from http://www."
-"networkupstools.org"
+#: plugins/check_ups.c:650
+#, fuzzy
+msgid "package installed on your system, you can download it from"
+msgstr ""
+"Si vous n'avez pas le programme installé, vous devrez le télécharger depuis"
+
+#: plugins/check_ups.c:651
+msgid "http://www.networkupstools.org"
 msgstr ""
 
-#: plugins/check_users.c:94
+#: plugins/check_users.c:96
 #, c-format
 msgid "# users=%d"
 msgstr "# utilisateurs=%d"
 
-#: plugins/check_users.c:117
+#: plugins/check_users.c:119
 msgid "Unable to read output"
 msgstr "Impossible de lire les données en entrée"
 
-#: plugins/check_users.c:124
+#: plugins/check_users.c:126
 #, c-format
 msgid "USERS %s - %d users currently logged in |%s\n"
 msgstr "UTILISATEURS %s - %d utilisateurs actuellement connectés sur |%s\n"
 
-#: plugins/check_users.c:209
+#: plugins/check_users.c:211
 msgid "This plugin checks the number of users currently logged in on the local"
 msgstr ""
 "Ce plugin vérifie le nombre d'utilisateurs actuellement connecté sur le "
 "système local"
 
-#: plugins/check_users.c:210
+#: plugins/check_users.c:212
 msgid ""
 "system and generates an error if the number exceeds the thresholds specified."
 msgstr "et génère une erreur si le nombre excède le seuil spécifié."
 
-#: plugins/check_users.c:219
+#: plugins/check_users.c:222
 msgid "Set WARNING status if more than INTEGER users are logged in"
 msgstr ""
 "Sortir avec un résultat AVERTISSEMENT si plus de INTEGER utilisateurs sont "
 "connectés"
 
-#: plugins/check_users.c:221
+#: plugins/check_users.c:224
 msgid "Set CRITICAL status if more than INTEGER users are logged in"
 msgstr ""
 "Sortir avec un résultat CRITIQUE si plus de INTEGER utilisateurs sont "
 "connectés"
 
-#: plugins/check_ide_smart.c:231
+#: plugins/check_ide_smart.c:232
 #, c-format
 msgid "CRITICAL - Couldn't open device %s: %s\n"
 msgstr "Critique - Impossible d'ouvrir le périphérique %s: %s\n"
 
-#: plugins/check_ide_smart.c:236
+#: plugins/check_ide_smart.c:237
 #, c-format
 msgid "CRITICAL - SMART_CMD_ENABLE\n"
 msgstr "CRITIQUE - SMART_CMD_ENABLE\n"
 
-#: plugins/check_ide_smart.c:297
+#: plugins/check_ide_smart.c:298
 #, c-format
 msgid "CRITICAL - SMART_READ_VALUES: %s\n"
 msgstr "CRITIQUE - SMART_READ_VALUES: %s\n"
 
-#: plugins/check_ide_smart.c:366
+#: plugins/check_ide_smart.c:367
 #, c-format
 msgid "CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n"
 msgstr ""
 "CRITIQUE - %d État de pré-panne %c Détecté! %d/%d les tests on échoués.\n"
 
-#: plugins/check_ide_smart.c:374
+#: plugins/check_ide_smart.c:375
 #, c-format
 msgid "WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n"
 msgstr ""
 "AVERTISSEMENT -  %d État de pré-panne %s Détecté! %d/%d les tests on "
 "échoués.\n"
 
-#: plugins/check_ide_smart.c:382
+#: plugins/check_ide_smart.c:383
 #, c-format
 msgid "OK - Operational (%d/%d tests passed)\n"
 msgstr "OK - En fonctionnement (%d/%d les tests on été réussi)\n"
 
-#: plugins/check_ide_smart.c:386
+#: plugins/check_ide_smart.c:387
 #, c-format
 msgid "ERROR - Status '%d' unkown. %d/%d tests passed\n"
 msgstr "ERREUR - État '%d' inconnu. %d/%d les tests on réussi\n"
 
-#: plugins/check_ide_smart.c:419
+#: plugins/check_ide_smart.c:420
 #, c-format
 msgid "OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n"
 msgstr ""
 "Etat Hors Ligne=%d {%s}, Hors Ligne Auto=%s, Temps avant arrêt=%d minutes\n"
 
-#: plugins/check_ide_smart.c:425
+#: plugins/check_ide_smart.c:426
 #, c-format
 msgid "OffLineCapability=%d {%s %s %s}\n"
 msgstr "Capacité Hors Ligne=%d {%s %s %s}\n"
 
-#: plugins/check_ide_smart.c:431
+#: plugins/check_ide_smart.c:432
 #, c-format
 msgid "SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n"
 msgstr "Révision Smart=%d, Somme de contrôle=%d, Capacité Smart=%d {%s %s}\n"
 
-#: plugins/check_ide_smart.c:452
+#: plugins/check_ide_smart.c:453
 #, c-format
 msgid "CRITICAL - %s: %s\n"
 msgstr "CRITIQUE - %s: %s\n"
 
-#: plugins/check_ide_smart.c:471
+#: plugins/check_ide_smart.c:472
 #, c-format
 msgid "CRITICAL - SMART_READ_THRESHOLDS: %s\n"
 msgstr "CRITIQUE - SMART_READ_THRESHOLDS: %s\n"
 
-#: plugins/check_ide_smart.c:488
+#: plugins/check_ide_smart.c:489
 #, c-format
 msgid ""
 "This plugin checks a local hard drive with the (Linux specific) SMART "
@@ -4959,41 +5097,41 @@
 "Ce plugin vérifie un disque dur local à l'aide de l'interface SMART (pour "
 "Linux) [http://smartlinux.sourceforge.net/smart/index.php]."
 
-#: plugins/check_ide_smart.c:497
+#: plugins/check_ide_smart.c:499
 msgid "Select device DEVICE"
 msgstr ""
 
-#: plugins/check_ide_smart.c:498
+#: plugins/check_ide_smart.c:500
 msgid ""
 "Note: if the device is selected with this option, _no_ other options are "
 "accepted"
 msgstr ""
 
-#: plugins/check_ide_smart.c:500
+#: plugins/check_ide_smart.c:502
 msgid "Perform immediately offline tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:502
+#: plugins/check_ide_smart.c:504
 msgid "Returns the number of failed tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:504
+#: plugins/check_ide_smart.c:506
 msgid "Turn on automatic offline tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:506
+#: plugins/check_ide_smart.c:508
 msgid "Turn off automatic offline tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:508
+#: plugins/check_ide_smart.c:510
 msgid "Output suitable for Nagios"
 msgstr ""
 
-#: plugins/negate.c:132
+#: plugins/negate.c:98
 msgid "No data returned from command\n"
 msgstr "Pas de données reçues de la commande\n"
 
-#: plugins/negate.c:209
+#: plugins/negate.c:168
 msgid ""
 "Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-"
 "3)."
@@ -5001,7 +5139,7 @@
 "Ok doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou un "
 "nombre entier (0-3)."
 
-#: plugins/negate.c:215
+#: plugins/negate.c:174
 msgid ""
 "Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or "
 "integer (0-3)."
@@ -5009,7 +5147,7 @@
 "Warning doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou "
 "un nombre entier (0-3)."
 
-#: plugins/negate.c:220
+#: plugins/negate.c:179
 msgid ""
 "Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or "
 "integer (0-3)."
@@ -5017,7 +5155,7 @@
 "Critical doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou "
 "un nombre entier (0-3)."
 
-#: plugins/negate.c:225
+#: plugins/negate.c:184
 msgid ""
 "Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or "
 "integer (0-3)."
@@ -5025,29 +5163,29 @@
 "Unknown doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou "
 "un nombre entier (0-3)."
 
-#: plugins/negate.c:262
+#: plugins/negate.c:211
 msgid "Require path to command"
 msgstr "Chemin vers la commande requis"
 
-#: plugins/negate.c:298
+#: plugins/negate.c:240
 msgid ""
 "Negates the status of a plugin (returns OK for CRITICAL and vice-versa)."
 msgstr ""
 "Inverse le statut d'un plugin (retourne OK pour CRITIQUE et vice-versa)."
 
-#: plugins/negate.c:299
+#: plugins/negate.c:241
 msgid "Additional switches can be used to control which state becomes what."
 msgstr ""
 "Des options additionnelles peuvent être utilisées pour contrôler quel état "
 "devient quoi."
 
-#: plugins/negate.c:308
+#: plugins/negate.c:250
 msgid "Keep timeout longer than the plugin timeout to retain CRITICAL status."
 msgstr ""
 "Utilisez un délai de réponse plus long que celui du plugin afin de conserver "
 "les résultats CRITIQUE"
 
-#: plugins/negate.c:314
+#: plugins/negate.c:256
 #, c-format
 msgid ""
 "    STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n"
@@ -5055,114 +5193,120 @@
 "    STATUS peut être 'OK', 'WARNING', 'CRITICAL' ou 'UNKNOWN' sans les "
 "simple\n"
 
-#: plugins/negate.c:315
+#: plugins/negate.c:257
 #, c-format
 msgid ""
 "    quotes. Numeric values are accepted. If nothing is specified, permutes\n"
 msgstr "    quotes. Les valeurs numériques sont acceptées. Si rien n'est\n"
 
-#: plugins/negate.c:316
+#: plugins/negate.c:258
 #, c-format
 msgid "    OK and CRITICAL.\n"
 msgstr "    spécifié, inverse OK et CRITIQUE.\n"
 
-#: plugins/negate.c:321
+#: plugins/negate.c:260
+#, c-format
+msgid ""
+"    Substitute output text as well. Will only substitute text in CAPITALS\n"
+msgstr ""
+
+#: plugins/negate.c:265
 msgid "Run check_ping and invert result. Must use full path to plugin"
 msgstr ""
 "Execute check_ping et inverse le résultat. Le chemin complet du plug-in doit "
 "être spécifié"
 
-#: plugins/negate.c:323
+#: plugins/negate.c:267
 msgid "This will return OK instead of WARNING and UNKNOWN instead of CRITICAL"
 msgstr ""
 "Ceci retournera OK au lieu de AVERTISSEMENT et INCONNU au lieu de CRITIQUE"
 
-#: plugins/negate.c:326
+#: plugins/negate.c:270
 msgid ""
 "This plugin is a wrapper to take the output of another plugin and invert it."
 msgstr ""
 "Ce plugin est un adaptateur qui prends l'état d'un autre plug-in et "
 "l'inverse."
 
-#: plugins/negate.c:327
+#: plugins/negate.c:271
 msgid "The full path of the plugin must be provided."
 msgstr "Le chemin complet du plugin doit être spécifié."
 
-#: plugins/negate.c:328
+#: plugins/negate.c:272
 msgid "If the wrapped plugin returns OK, the wrapper will return CRITICAL."
 msgstr "Si le plugin executé retourne OK, l'adaptateur retournera CRITIQUE."
 
-#: plugins/negate.c:329
+#: plugins/negate.c:273
 msgid "If the wrapped plugin returns CRITICAL, the wrapper will return OK."
 msgstr "Si le plugin executé retourne CRITIQUE, l'adaptateur retournera OK."
 
-#: plugins/negate.c:330
+#: plugins/negate.c:274
 msgid "Otherwise, the output state of the wrapped plugin is unchanged."
 msgstr "Autrement, l'état du plugin executé reste inchangé."
 
-#: plugins/netutils.c:53
+#: plugins/netutils.c:52
 #, c-format
 msgid "CRITICAL - Socket timeout after %d seconds\n"
 msgstr "CRITIQUE - le socket n'as pas répondu dans les %d secondes\n"
 
-#: plugins/netutils.c:55
+#: plugins/netutils.c:54
 #, c-format
 msgid "CRITICAL - Abnormal timeout after %d seconds\n"
 msgstr "CRITIQUE - dépassement anormal du temps de réponse après %d secondes\n"
 
-#: plugins/netutils.c:83 plugins/netutils.c:274
+#: plugins/netutils.c:82 plugins/netutils.c:284
 msgid "Send failed"
 msgstr "L'envoi à échoué"
 
-#: plugins/netutils.c:100 plugins/netutils.c:289
+#: plugins/netutils.c:99 plugins/netutils.c:299
 msgid "No data was received from host!"
 msgstr "Pas de données reçues de l'hôte!"
 
-#: plugins/netutils.c:197 plugins/netutils.c:233
+#: plugins/netutils.c:207 plugins/netutils.c:243
 msgid "Socket creation failed"
 msgstr "La création du socket à échoué "
 
-#: plugins/netutils.c:226
+#: plugins/netutils.c:236
 msgid "Supplied path too long unix domain socket"
 msgstr "Le chemin fourni est trop long pour un socket unix"
 
-#: plugins/netutils.c:298
+#: plugins/netutils.c:308
 msgid "Receive failed"
 msgstr "La réception à échoué"
 
-#: plugins/netutils.c:324 plugins-root/check_dhcp.c:1348
+#: plugins/netutils.c:334 plugins-root/check_dhcp.c:1346
 #, c-format
 msgid "Invalid hostname/address - %s"
 msgstr "Adresse/Nom invalide - %s"
 
-#: plugins/popen.c:148
+#: plugins/popen.c:145
 msgid "Could not malloc argv array in popen()"
 msgstr "Impossible de réallouer un tableau pour les paramètres dans popen()"
 
-#: plugins/popen.c:158
+#: plugins/popen.c:155
 msgid "CRITICAL - You need more args!!!"
 msgstr "CRITIQUE - Vous devez spécifier plus d'arguments!!!"
 
-#: plugins/popen.c:215
+#: plugins/popen.c:212
 msgid "Cannot catch SIGCHLD"
 msgstr "impossible d'obtenir le signal SIGCHLD"
 
-#: plugins/popen.c:310 plugins/utils.c:172
+#: plugins/popen.c:307 plugins/utils.c:186
 #, c-format
 msgid "CRITICAL - Plugin timed out after %d seconds\n"
 msgstr "CRITIQUE - Le plugin n'as pas répondu dans les %d secondes\n"
 
-#: plugins/popen.c:313
+#: plugins/popen.c:310
 msgid "CRITICAL - popen timeout received, but no child process"
 msgstr ""
 "CRITIQUE - le temps d'attente à été dépassé dans la fonction popen, mais il "
 "n'y a pas de processus fils"
 
-#: plugins/popen.c:329
+#: plugins/popen.c:326
 msgid "sysconf error for _SC_OPEN_MAX"
 msgstr ""
 
-#: plugins/urlize.c:137
+#: plugins/urlize.c:134
 #, c-format
 msgid ""
 "%s UNKNOWN - No data received from host\n"
@@ -5171,77 +5315,77 @@
 "%s INCONNU - Pas de données reçues de l'hôte\n"
 "Commande: %s</A>\n"
 
-#: plugins/urlize.c:176
+#: plugins/urlize.c:173
 msgid "This plugin wraps the text output of another command (plugin)"
 msgstr ""
 
-#: plugins/urlize.c:177
+#: plugins/urlize.c:174
 msgid ""
 "in HTML <A> tags, thus displaying the plugin output in as a clickable link in"
 msgstr ""
 
-#: plugins/urlize.c:178
+#: plugins/urlize.c:175
 msgid ""
 "the Nagios status screen.  The return status is the same as the invoked "
 "plugin."
 msgstr ""
 
-#: plugins/urlize.c:188
+#: plugins/urlize.c:185
 msgid ""
 "Pay close attention to quoting to ensure that the shell passes the expected"
 msgstr ""
 
-#: plugins/urlize.c:189
+#: plugins/urlize.c:186
 msgid "data to the plugin. For example, in:"
 msgstr ""
 
-#: plugins/urlize.c:190
+#: plugins/urlize.c:187
 msgid "urlize http://example.com/ check_http -H example.com -r 'two words'"
 msgstr ""
 
-#: plugins/urlize.c:191
+#: plugins/urlize.c:188
 msgid "the shell will remove the single quotes and urlize will see:"
 msgstr ""
 
-#: plugins/urlize.c:192
+#: plugins/urlize.c:189
 msgid "urlize http://example.com/ check_http -H example.com -r two words"
 msgstr ""
 
-#: plugins/urlize.c:193
+#: plugins/urlize.c:190
 msgid "You probably want:"
 msgstr ""
 
-#: plugins/urlize.c:194
+#: plugins/urlize.c:191
 msgid "urlize http://example.com/ \"check_http -H example.com -r 'two words'\""
 msgstr ""
 
-#: plugins/utils.c:467
+#: plugins/utils.c:481
 msgid "failed realloc in strpcpy\n"
 msgstr "La fonction realloc à échoué dans strpcpy\n"
 
-#: plugins/utils.c:509
+#: plugins/utils.c:523
 msgid "failed malloc in strscat\n"
 msgstr "La fonction malloc à échoué dans strscat\n"
 
-#: plugins-root/check_dhcp.c:327
+#: plugins-root/check_dhcp.c:325
 #, c-format
 msgid "Error: Could not get hardware address of interface '%s'\n"
 msgstr ""
 "Erreur: Impossible d'obtenir l'adresse matérielle pour l'interface '%s'\n"
 
-#: plugins-root/check_dhcp.c:349
+#: plugins-root/check_dhcp.c:347
 #, c-format
 msgid "Error: if_nametoindex error - %s.\n"
 msgstr "Erreur: if_nametoindex erreur - %s.\n"
 
-#: plugins-root/check_dhcp.c:354
+#: plugins-root/check_dhcp.c:352
 #, c-format
 msgid "Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n"
 msgstr ""
 "Erreur: Impossible d'obtenir l'adresse matérielle depuis %s. erreur sysctl 1 "
 "- %s.\n"
 
-#: plugins-root/check_dhcp.c:359
+#: plugins-root/check_dhcp.c:357
 #, c-format
 msgid ""
 "Error: Couldn't get hardware address from interface %s. malloc error - %s.\n"
@@ -5249,14 +5393,14 @@
 "Erreur: Impossible d'obtenir l'adresse matérielle depuis l'interface %s\n"
 " erreur malloc - %s.\n"
 
-#: plugins-root/check_dhcp.c:364
+#: plugins-root/check_dhcp.c:362
 #, c-format
 msgid "Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n"
 msgstr ""
 "Erreur: Impossible d'obtenir l'adresse matérielle depuis %s erreur sysctl 2 "
 "- %s.\n"
 
-#: plugins-root/check_dhcp.c:390
+#: plugins-root/check_dhcp.c:388
 #, c-format
 msgid ""
 "Error: can't find unit number in interface_name (%s) - expecting TypeNumber "
@@ -5265,7 +5409,7 @@
 "Erreur: impossible de trouver le numéro dans le nom de l'interface (%s).\n"
 "J'attendais le nom suivi du type ex lnc0.\n"
 
-#: plugins-root/check_dhcp.c:395 plugins-root/check_dhcp.c:407
+#: plugins-root/check_dhcp.c:393 plugins-root/check_dhcp.c:405
 #, c-format
 msgid ""
 "Error: can't read MAC address from DLPI streams interface for device %s unit "
@@ -5274,7 +5418,7 @@
 "Erreur: impossible de lire l'adresse MAC depuis l'interface DLPI pour le \n"
 "périphérique %s numéro %d.\n"
 
-#: plugins-root/check_dhcp.c:413
+#: plugins-root/check_dhcp.c:411
 #, c-format
 msgid ""
 "Error: can't get MAC address for this architecture.  Use the --mac option.\n"
@@ -5282,47 +5426,47 @@
 "Erreur: impossible d'obtenir l'adresse MAC sur cette architecture.  Utilisez "
 "l'option --mac.\n"
 
-#: plugins-root/check_dhcp.c:432
+#: plugins-root/check_dhcp.c:430
 #, c-format
 msgid "Error: Cannot determine IP address of interface %s\n"
 msgstr "Erreur: Impossible d'obtenir l'adresse IP de l'interface %s\n"
 
-#: plugins-root/check_dhcp.c:440
+#: plugins-root/check_dhcp.c:438
 #, c-format
 msgid "Error: Cannot get interface IP address on this platform.\n"
 msgstr "Erreur: Impossible d'obtenir l'adresse IP sur cette architecture.\n"
 
-#: plugins-root/check_dhcp.c:445
+#: plugins-root/check_dhcp.c:443
 #, c-format
 msgid "Pretending to be relay client %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:530
+#: plugins-root/check_dhcp.c:528
 #, c-format
 msgid "DHCPDISCOVER to %s port %d\n"
 msgstr "DHCPDISCOVER vers %s port %d\n"
 
-#: plugins-root/check_dhcp.c:582
+#: plugins-root/check_dhcp.c:580
 #, c-format
 msgid "Result=ERROR\n"
 msgstr "Résultat=ERREUR\n"
 
-#: plugins-root/check_dhcp.c:588
+#: plugins-root/check_dhcp.c:586
 #, c-format
 msgid "Result=OK\n"
 msgstr "Résultat=OK\n"
 
-#: plugins-root/check_dhcp.c:603
+#: plugins-root/check_dhcp.c:601
 #, c-format
 msgid "DHCPOFFER from IP address %s"
 msgstr "DHCPOFFER depuis l'adresse IP %s"
 
-#: plugins-root/check_dhcp.c:604
+#: plugins-root/check_dhcp.c:602
 #, c-format
 msgid " via %s\n"
 msgstr " depuis %s\n"
 
-#: plugins-root/check_dhcp.c:611
+#: plugins-root/check_dhcp.c:609
 #, c-format
 msgid ""
 "DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n"
@@ -5330,67 +5474,67 @@
 "DHCPOFFER XID (%u) ne correspond pas au DHCPDISCOVER XID (%u) - paquet "
 "ignoré\n"
 
-#: plugins-root/check_dhcp.c:633
+#: plugins-root/check_dhcp.c:631
 #, c-format
 msgid "DHCPOFFER hardware address did not match our own - ignoring packet\n"
 msgstr ""
 "l'adresse matérielle du DHCPOFFER ne correspond pas à la notre paquet "
 "ignoré\n"
 
-#: plugins-root/check_dhcp.c:651
+#: plugins-root/check_dhcp.c:649
 #, c-format
 msgid "Total responses seen on the wire: %d\n"
 msgstr "Nombre total de réponses vues: %d\n"
 
-#: plugins-root/check_dhcp.c:652
+#: plugins-root/check_dhcp.c:650
 #, c-format
 msgid "Valid responses for this machine: %d\n"
 msgstr "Nombre de réponse valides pour cette machine: %d\n"
 
-#: plugins-root/check_dhcp.c:667
+#: plugins-root/check_dhcp.c:665
 #, c-format
 msgid "send_dhcp_packet result: %d\n"
 msgstr "résultat de send_dchp_packet: %d\n"
 
-#: plugins-root/check_dhcp.c:700
+#: plugins-root/check_dhcp.c:698
 #, c-format
 msgid "No (more) data received (nfound: %d)\n"
 msgstr "Plus de données reçues (nfound: %d)\n"
 
-#: plugins-root/check_dhcp.c:719
+#: plugins-root/check_dhcp.c:717
 #, c-format
 msgid "recvfrom() failed, "
 msgstr "recvfrom() a échoué, "
 
-#: plugins-root/check_dhcp.c:726
+#: plugins-root/check_dhcp.c:724
 #, c-format
 msgid "receive_dhcp_packet() result: %d\n"
 msgstr "résultat de receive_dchp_packet(): %d\n"
 
-#: plugins-root/check_dhcp.c:727
+#: plugins-root/check_dhcp.c:725
 #, c-format
 msgid "receive_dhcp_packet() source: %s\n"
 msgstr "source de receive_dchp_packet(): %s\n"
 
-#: plugins-root/check_dhcp.c:757
+#: plugins-root/check_dhcp.c:755
 #, c-format
 msgid "Error: Could not create socket!\n"
 msgstr "Erreur: Impossible de créer un socket!\n"
 
-#: plugins-root/check_dhcp.c:767
+#: plugins-root/check_dhcp.c:765
 #, c-format
 msgid "Error: Could not set reuse address option on DHCP socket!\n"
 msgstr ""
 "Erreur: Impossible de configurer l'option de réutilisation de l'adresse sur\n"
 "le socket DHCP!\n"
 
-#: plugins-root/check_dhcp.c:773
+#: plugins-root/check_dhcp.c:771
 #, c-format
 msgid "Error: Could not set broadcast option on DHCP socket!\n"
 msgstr ""
 "Erreur: Impossible de configurer l'option broadcast sur le socket DHCP!\n"
 
-#: plugins-root/check_dhcp.c:782
+#: plugins-root/check_dhcp.c:780
 #, c-format
 msgid ""
 "Error: Could not bind socket to interface %s.  Check your privileges...\n"
@@ -5398,7 +5542,7 @@
 "Erreur: Impossible de connecter le socket à l'interface %s.\n"
 "Vérifiez vos droits...\n"
 
-#: plugins-root/check_dhcp.c:793
+#: plugins-root/check_dhcp.c:791
 #, c-format
 msgid ""
 "Error: Could not bind to DHCP socket (port %d)!  Check your privileges...\n"
@@ -5406,125 +5550,125 @@
 "Erreur: Impossible de se connecter au socket (port %d)!  Vérifiez vos "
 "droits..\n"
 
-#: plugins-root/check_dhcp.c:827
+#: plugins-root/check_dhcp.c:825
 #, c-format
 msgid "Requested server address: %s\n"
 msgstr "Adresse serveur demandée: %s\n"
 
-#: plugins-root/check_dhcp.c:888
+#: plugins-root/check_dhcp.c:886
 #, c-format
 msgid "Lease Time: Infinite\n"
 msgstr "Durée du Bail: Infini\n"
 
-#: plugins-root/check_dhcp.c:890
+#: plugins-root/check_dhcp.c:888
 #, c-format
 msgid "Lease Time: %lu seconds\n"
 msgstr "Durée du Bail: %lu secondes\n"
 
-#: plugins-root/check_dhcp.c:892
+#: plugins-root/check_dhcp.c:890
 #, c-format
 msgid "Renewal Time: Infinite\n"
 msgstr "Renouvellement du bail: Infini\n"
 
-#: plugins-root/check_dhcp.c:894
+#: plugins-root/check_dhcp.c:892
 #, c-format
 msgid "Renewal Time: %lu seconds\n"
 msgstr "Durée du renouvellement = %lu secondes\n"
 
-#: plugins-root/check_dhcp.c:896
+#: plugins-root/check_dhcp.c:894
 #, c-format
 msgid "Rebinding Time: Infinite\n"
 msgstr "Délai de nouvelle demande: Infini\n"
 
-#: plugins-root/check_dhcp.c:897
+#: plugins-root/check_dhcp.c:895
 #, c-format
 msgid "Rebinding Time: %lu seconds\n"
 msgstr "Délai de nouvelle demande: %lu secondes\n"
 
-#: plugins-root/check_dhcp.c:925
+#: plugins-root/check_dhcp.c:923
 #, c-format
 msgid "Added offer from server @ %s"
 msgstr "Rajouté offre du serveur @ %s"
 
-#: plugins-root/check_dhcp.c:926
+#: plugins-root/check_dhcp.c:924
 #, c-format
 msgid " of IP address %s\n"
 msgstr "de l'adresse IP %s\n"
 
-#: plugins-root/check_dhcp.c:993
+#: plugins-root/check_dhcp.c:991
 #, c-format
 msgid "DHCP Server Match: Offerer=%s"
 msgstr "Correspondance du serveur DHCP: Offrant=%s"
 
-#: plugins-root/check_dhcp.c:994
+#: plugins-root/check_dhcp.c:992
 #, c-format
 msgid " Requested=%s"
 msgstr " Demandé=%s"
 
-#: plugins-root/check_dhcp.c:996
+#: plugins-root/check_dhcp.c:994
 #, c-format
 msgid " (duplicate)"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:997
+#: plugins-root/check_dhcp.c:995
 #, c-format
 msgid "\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1045
+#: plugins-root/check_dhcp.c:1043
 #, c-format
 msgid "No DHCPOFFERs were received.\n"
 msgstr "Pas de DHCPOFFERs reçus.\n"
 
-#: plugins-root/check_dhcp.c:1049
+#: plugins-root/check_dhcp.c:1047
 #, c-format
 msgid "Received %d DHCPOFFER(s)"
 msgstr "Reçu %d DHCPOFFER(s)"
 
-#: plugins-root/check_dhcp.c:1052
+#: plugins-root/check_dhcp.c:1050
 #, c-format
 msgid ", %s%d of %d requested servers responded"
 msgstr ", %s%d de %d serveurs ont répondus"
 
-#: plugins-root/check_dhcp.c:1055
+#: plugins-root/check_dhcp.c:1053
 #, c-format
 msgid ", requested address (%s) was %soffered"
 msgstr ", l'adresse demandée (%s) %s été offerte"
 
-#: plugins-root/check_dhcp.c:1055
+#: plugins-root/check_dhcp.c:1053
 msgid "not "
 msgstr "n'as pas"
 
-#: plugins-root/check_dhcp.c:1057
+#: plugins-root/check_dhcp.c:1055
 #, c-format
 msgid ", max lease time = "
 msgstr ", bail maximum = "
 
-#: plugins-root/check_dhcp.c:1059
+#: plugins-root/check_dhcp.c:1057
 #, c-format
 msgid "Infinity"
 msgstr "Infini"
 
-#: plugins-root/check_dhcp.c:1240
+#: plugins-root/check_dhcp.c:1238
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n"
 msgstr ""
 "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans check_ctrl: %s.\n"
 
-#: plugins-root/check_dhcp.c:1252
+#: plugins-root/check_dhcp.c:1250
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n"
 msgstr ""
 "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans put_ctrl/putmsg(): %"
 "s.\n"
 
-#: plugins-root/check_dhcp.c:1265
+#: plugins-root/check_dhcp.c:1263
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in put_both/putmsg().\n"
 msgstr ""
 "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans put_both/putmsg().\n"
 
-#: plugins-root/check_dhcp.c:1277
+#: plugins-root/check_dhcp.c:1275
 #, c-format
 msgid ""
 "Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n"
@@ -5532,113 +5676,137 @@
 "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans dl_attach_req/open(%"
 "s..): %s.\n"
 
-#: plugins-root/check_dhcp.c:1301
+#: plugins-root/check_dhcp.c:1299
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n"
 msgstr ""
 "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans dl_bind/check_ctrl"
 "(): %s.\n"
 
-#: plugins-root/check_dhcp.c:1380
+#: plugins-root/check_dhcp.c:1378
 #, c-format
 msgid "Hardware address: "
 msgstr "Adresse matérielle: "
 
-#: plugins-root/check_dhcp.c:1396
+#: plugins-root/check_dhcp.c:1394
 msgid "This plugin tests the availability of DHCP servers on a network."
 msgstr "Ce plugin teste la disponibilité de serveurs DHCP dans un réseau."
 
-#: plugins-root/check_dhcp.c:1407
+#: plugins-root/check_dhcp.c:1406
 msgid "IP address of DHCP server that we must hear from"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1409
+#: plugins-root/check_dhcp.c:1408
 msgid "IP address that should be offered by at least one DHCP server"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1411
+#: plugins-root/check_dhcp.c:1410
 msgid "Seconds to wait for DHCPOFFER before timeout occurs"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1413
+#: plugins-root/check_dhcp.c:1412
 msgid "Interface to to use for listening (i.e. eth0)"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1415
+#: plugins-root/check_dhcp.c:1414
 msgid "MAC address to use in the DHCP request"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1417
+#: plugins-root/check_dhcp.c:1416
 msgid "Unicast testing: mimic a DHCP relay, requires -s"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1227
+#: plugins-root/check_icmp.c:1271
 msgid "specify a target"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1229
+#: plugins-root/check_icmp.c:1273
 msgid "warning threshold (currently "
 msgstr "Valeurs pour le seuil d'avertissement (actuellement "
 
-#: plugins-root/check_icmp.c:1232
+#: plugins-root/check_icmp.c:1276
 msgid "critical threshold (currently "
 msgstr "Valeurs pour le seuil critique (actuellement "
 
-#: plugins-root/check_icmp.c:1235
+#: plugins-root/check_icmp.c:1279
+#, fuzzy
+msgid "specify a source IP address or device name"
+msgstr "Vous devez spécifier une adresse ou un nom d'hôte"
+
+#: plugins-root/check_icmp.c:1281
 msgid "number of packets to send (currently "
 msgstr "nombre de paquets à envoyer (actuellement "
 
-#: plugins-root/check_icmp.c:1238
+#: plugins-root/check_icmp.c:1284
 msgid "max packet interval (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1241
+#: plugins-root/check_icmp.c:1287
 msgid "max target interval (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1244
+#: plugins-root/check_icmp.c:1290
 msgid "number of alive hosts required for success"
 msgstr "nombre d'hôtes vivants requis pour réussite"
 
-#: plugins-root/check_icmp.c:1247
+#: plugins-root/check_icmp.c:1293
 msgid "TTL on outgoing packets (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1250
+#: plugins-root/check_icmp.c:1296
 msgid "timeout value (seconds, currently  "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1253
+#: plugins-root/check_icmp.c:1299
 msgid "icmp packet size (currenly ignored)"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1255
+#: plugins-root/check_icmp.c:1301
 msgid "verbose"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1258
+#: plugins-root/check_icmp.c:1305
 msgid "The -H switch is optional. Naming a host (or several) to check is not."
 msgstr ""
 
-#: plugins-root/check_icmp.c:1259
+#: plugins-root/check_icmp.c:1307
 msgid ""
 "Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1260
+#: plugins-root/check_icmp.c:1308
 msgid "packet loss.  The default values should work well for most users."
 msgstr ""
 
-#: plugins-root/check_icmp.c:1261
+#: plugins-root/check_icmp.c:1309
 msgid ""
 "You can specify different RTA factors using the standardized abbreviations"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1262
+#: plugins-root/check_icmp.c:1310
 msgid ""
 "us (microseconds), ms (milliseconds, default) or just plain s for seconds."
 msgstr ""
 
-#: plugins-root/check_icmp.c:1267
+#: plugins-root/check_icmp.c:1316
 msgid "The -v switch can be specified several times for increased verbosity."
 msgstr ""
+
+#~ msgid "See:"
+#~ msgstr "Voir:"
+
+#~ msgid "for THRESHOLD format and examples."
+#~ msgstr "pour le format et examples des seuils (THRESHOLD)"
+
+#, fuzzy
+#~ msgid "for --extra-opts usage and examples."
+#~ msgstr "pour le format et examples des seuils (THRESHOLD)"
+
+#~ msgid "Note:"
+#~ msgstr "Note:"
+
+#~ msgid "a server listening on MySQL standard port %d will be checked\n"
+#~ msgstr "avec un serveur MySQL écoutant sur le port %d sera vérifiée\n"
+
+#~ msgid "Optional Arguments:"
+#~ msgstr "Arguments optionnels:"
diff -uNr nagios-plugins-1.4.11/po/Makevars nagios-plugins-1.4.12/po/Makevars
--- nagios-plugins-1.4.11/po/Makevars	2007-02-06 19:34:33.000000000 +0100
+++ nagios-plugins-1.4.12/po/Makevars	2008-02-12 12:07:18.000000000 +0100
@@ -8,7 +8,7 @@
 top_builddir = ..
 
 # These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --flag=error:3:c-format --flag=error_at_line:5:c-format --flag=asprintf:2:c-format --flag=vasprintf:2:c-format
 
 # This is the copyright holder that gets inserted into the header of the
 # $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
diff -uNr nagios-plugins-1.4.11/po/nagios-plugins.pot nagios-plugins-1.4.12/po/nagios-plugins.pot
--- nagios-plugins-1.4.11/po/nagios-plugins.pot	2007-12-13 23:43:54.000000000 +0100
+++ nagios-plugins-1.4.12/po/nagios-plugins.pot	2008-05-28 00:06:15.000000000 +0200
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: nagiosplug-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2007-12-13 22:43+0000\n"
+"POT-Creation-Date: 2008-05-27 23:06+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,56 +17,61 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: plugins/check_by_ssh.c:83 plugins/check_cluster.c:79 plugins/check_dig.c:89
-#: plugins/check_disk.c:198 plugins/check_dns.c:93 plugins/check_dummy.c:59
-#: plugins/check_fping.c:89 plugins/check_game.c:84 plugins/check_hpjd.c:106
-#: plugins/check_http.c:154 plugins/check_ldap.c:108 plugins/check_load.c:126
-#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:88
-#: plugins/check_nagios.c:94 plugins/check_nt.c:126 plugins/check_ntp.c:767
-#: plugins/check_ntp_peer.c:553 plugins/check_ntp_time.c:544
+#: plugins/check_by_ssh.c:84 plugins/check_cluster.c:81 plugins/check_dig.c:91
+#: plugins/check_disk.c:199 plugins/check_dns.c:106 plugins/check_dummy.c:56
+#: plugins/check_fping.c:90 plugins/check_game.c:86 plugins/check_hpjd.c:107
+#: plugins/check_http.c:154 plugins/check_ldap.c:112 plugins/check_load.c:126
+#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:89
+#: plugins/check_nagios.c:95 plugins/check_nt.c:129 plugins/check_ntp.c:770
+#: plugins/check_ntp_peer.c:559 plugins/check_ntp_time.c:547
 #: plugins/check_nwstat.c:177 plugins/check_overcr.c:106
-#: plugins/check_pgsql.c:156 plugins/check_ping.c:99 plugins/check_procs.c:143
-#: plugins/check_radius.c:156 plugins/check_real.c:85 plugins/check_smtp.c:145
-#: plugins/check_snmp.c:183 plugins/check_ssh.c:78 plugins/check_swap.c:113
-#: plugins/check_tcp.c:211 plugins/check_time.c:82 plugins/check_ups.c:125
-#: plugins/check_users.c:70 plugins/negate.c:259 plugins-root/check_dhcp.c:277
+#: plugins/check_pgsql.c:157 plugins/check_ping.c:99 plugins/check_procs.c:150
+#: plugins/check_radius.c:156 plugins/check_real.c:84 plugins/check_smtp.c:144
+#: plugins/check_snmp.c:183 plugins/check_ssh.c:77 plugins/check_swap.c:114
+#: plugins/check_tcp.c:212 plugins/check_time.c:82 plugins/check_ups.c:126
+#: plugins/check_users.c:72 plugins/negate.c:208 plugins-root/check_dhcp.c:275
 msgid "Could not parse arguments"
 msgstr ""
 
-#: plugins/check_by_ssh.c:87 plugins/check_dig.c:86 plugins/check_dns.c:89
-#: plugins/check_nagios.c:98 plugins/check_pgsql.c:160
-#: plugins/check_ping.c:103 plugins/check_procs.c:150 plugins/negate.c:113
+#: plugins/check_by_ssh.c:88 plugins/check_dig.c:85 plugins/check_dns.c:99
+#: plugins/check_nagios.c:99 plugins/check_pgsql.c:161
+#: plugins/check_ping.c:103 plugins/check_procs.c:157 plugins/negate.c:78
 msgid "Cannot catch SIGALRM"
 msgstr ""
 
-#: plugins/check_by_ssh.c:104
+#: plugins/check_by_ssh.c:105
 #, c-format
 msgid "Remote command execution failed: %s\n"
 msgstr ""
 
-#: plugins/check_by_ssh.c:116
+#: plugins/check_by_ssh.c:117
 #, c-format
 msgid "%s - check_by_ssh: Remote command '%s' returned status %d\n"
 msgstr ""
 
-#: plugins/check_by_ssh.c:128
+#: plugins/check_by_ssh.c:129
 #, c-format
 msgid "SSH WARNING: could not open %s\n"
 msgstr ""
 
-#: plugins/check_by_ssh.c:214 plugins/check_disk.c:530
-#: plugins/check_http.c:248 plugins/check_ldap.c:292 plugins/check_pgsql.c:237
-#: plugins/check_procs.c:371 plugins/check_radius.c:284
-#: plugins/check_real.c:361 plugins/check_smtp.c:592 plugins/check_snmp.c:516
-#: plugins/check_ssh.c:143 plugins/check_tcp.c:494 plugins/check_time.c:306
-#: plugins/check_ups.c:555 plugins/negate.c:203
+#: plugins/check_by_ssh.c:138
+#, c-format
+msgid "%s: Error parsing output\n"
+msgstr ""
+
+#: plugins/check_by_ssh.c:214 plugins/check_disk.c:532
+#: plugins/check_http.c:249 plugins/check_ldap.c:296 plugins/check_pgsql.c:238
+#: plugins/check_procs.c:399 plugins/check_radius.c:290
+#: plugins/check_real.c:360 plugins/check_smtp.c:593 plugins/check_snmp.c:516
+#: plugins/check_ssh.c:142 plugins/check_tcp.c:495 plugins/check_time.c:306
+#: plugins/check_ups.c:556 plugins/negate.c:162
 msgid "Timeout interval must be a positive integer"
 msgstr ""
 
-#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:261
-#: plugins/check_radius.c:257 plugins/check_real.c:332
-#: plugins/check_smtp.c:519 plugins/check_tcp.c:500 plugins/check_time.c:300
-#: plugins/check_ups.c:517
+#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:262
+#: plugins/check_radius.c:257 plugins/check_real.c:331
+#: plugins/check_smtp.c:520 plugins/check_tcp.c:501 plugins/check_time.c:300
+#: plugins/check_ups.c:518
 msgid "Port must be a positive integer"
 msgstr ""
 
@@ -105,1482 +110,1503 @@
 msgid "This plugin uses SSH to execute commands on a remote host"
 msgstr ""
 
-#: plugins/check_by_ssh.c:360
+#: plugins/check_by_ssh.c:362
 msgid "tell ssh to use Protocol 1 [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:362
+#: plugins/check_by_ssh.c:364
 msgid "tell ssh to use Protocol 2 [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:364
+#: plugins/check_by_ssh.c:366
 msgid "Ignore all or (if specified) first n lines on STDOUT [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:366
+#: plugins/check_by_ssh.c:368
 msgid "Ignore all or (if specified) first n lines on STDERR [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:368
-msgid "tells ssh to fork rather than create a tty [optional]"
+#: plugins/check_by_ssh.c:370
+msgid ""
+"tells ssh to fork rather than create a tty [optional]. This will always "
+"return OK if ssh is executed"
 msgstr ""
 
-#: plugins/check_by_ssh.c:370
+#: plugins/check_by_ssh.c:372
 msgid "command to execute on the remote machine"
 msgstr ""
 
-#: plugins/check_by_ssh.c:372
+#: plugins/check_by_ssh.c:374
 msgid "SSH user name on remote host [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:374
+#: plugins/check_by_ssh.c:376
 msgid "identity of an authorized key [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:376
+#: plugins/check_by_ssh.c:378
 msgid "external command file for nagios [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:378
+#: plugins/check_by_ssh.c:380
 msgid "list of nagios service names, separated by ':' [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:380
+#: plugins/check_by_ssh.c:382
 msgid "short name of host in nagios configuration [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:382
+#: plugins/check_by_ssh.c:384
 msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:384
+#: plugins/check_by_ssh.c:386
 msgid "Tell ssh to suppress warning and diagnostic messages [optional]"
 msgstr ""
 
-#: plugins/check_by_ssh.c:387
+#: plugins/check_by_ssh.c:391
 msgid "The most common mode of use is to refer to a local identity file with"
 msgstr ""
 
-#: plugins/check_by_ssh.c:388
+#: plugins/check_by_ssh.c:392
 msgid "the '-i' option. In this mode, the identity pair should have a null"
 msgstr ""
 
-#: plugins/check_by_ssh.c:389
+#: plugins/check_by_ssh.c:393
 msgid "passphrase and the public key should be listed in the authorized_keys"
 msgstr ""
 
-#: plugins/check_by_ssh.c:390
+#: plugins/check_by_ssh.c:394
 msgid "file of the remote host. Usually the key will be restricted to running"
 msgstr ""
 
-#: plugins/check_by_ssh.c:391
+#: plugins/check_by_ssh.c:395
 msgid "only one command on the remote server. If the remote SSH server tracks"
 msgstr ""
 
-#: plugins/check_by_ssh.c:392
+#: plugins/check_by_ssh.c:396
 msgid "invocation arguments, the one remote program may be an agent that can"
 msgstr ""
 
-#: plugins/check_by_ssh.c:393
+#: plugins/check_by_ssh.c:397
 msgid "execute additional commands as proxy"
 msgstr ""
 
-#: plugins/check_by_ssh.c:394
+#: plugins/check_by_ssh.c:399
 msgid "To use passive mode, provide multiple '-C' options, and provide"
 msgstr ""
 
-#: plugins/check_by_ssh.c:395
+#: plugins/check_by_ssh.c:400
 msgid ""
 "all of -O, -s, and -n options (servicelist order must match '-C'options)"
 msgstr ""
 
-#: plugins/check_by_ssh.c:397 plugins/check_disk.c:954
-#: plugins/check_http.c:1312 plugins/check_nagios.c:303
-#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:668
-#: plugins/check_ntp_time.c:623 plugins/check_procs.c:735 plugins/negate.c:319
-#: plugins/urlize.c:187
-#, c-format
+#: plugins/check_by_ssh.c:402 plugins/check_dig.c:341 plugins/check_disk.c:970
+#: plugins/check_http.c:1323 plugins/check_nagios.c:312
+#: plugins/check_ntp.c:872 plugins/check_ntp_peer.c:680
+#: plugins/check_ntp_time.c:631 plugins/check_procs.c:783 plugins/negate.c:263
+#: plugins/urlize.c:184
 msgid "Examples:"
 msgstr ""
 
-#: plugins/check_by_ssh.c:412 plugins/check_cluster.c:273
-#: plugins/check_dig.c:336 plugins/check_disk.c:970 plugins/check_dns.c:447
-#: plugins/check_dummy.c:129 plugins/check_fping.c:407
-#: plugins/check_game.c:334 plugins/check_hpjd.c:415 plugins/check_http.c:1335
-#: plugins/check_ldap.c:449 plugins/check_load.c:328 plugins/check_mrtg.c:383
-#: plugins/check_mysql.c:407 plugins/check_nagios.c:313 plugins/check_nt.c:707
-#: plugins/check_ntp.c:879 plugins/check_ntp_peer.c:683
-#: plugins/check_ntp_time.c:632 plugins/check_nwstat.c:1688
-#: plugins/check_overcr.c:469 plugins/check_pgsql.c:458
-#: plugins/check_ping.c:597 plugins/check_procs.c:753
-#: plugins/check_radius.c:358 plugins/check_real.c:454
-#: plugins/check_smtp.c:825 plugins/check_snmp.c:1029 plugins/check_ssh.c:308
-#: plugins/check_swap.c:559 plugins/check_tcp.c:654 plugins/check_time.c:373
-#: plugins/check_ups.c:657 plugins/check_users.c:230
-#: plugins/check_ide_smart.c:527 plugins/negate.c:340 plugins/urlize.c:204
-#: plugins-root/check_dhcp.c:1426 plugins-root/check_icmp.c:1282
+#: plugins/check_by_ssh.c:411 plugins/check_cluster.c:262
+#: plugins/check_dig.c:347 plugins/check_disk.c:965 plugins/check_dns.c:485
+#: plugins/check_fping.c:405 plugins/check_game.c:322 plugins/check_hpjd.c:412
+#: plugins/check_http.c:1307 plugins/check_ldap.c:437 plugins/check_load.c:325
+#: plugins/check_mrtg.c:367 plugins/check_mrtgtraf.c:367
+#: plugins/check_mysql.c:421 plugins/check_nagios.c:307 plugins/check_nt.c:728
+#: plugins/check_ntp.c:864 plugins/check_ntp_peer.c:667
+#: plugins/check_ntp_time.c:620 plugins/check_nwstat.c:1674
+#: plugins/check_overcr.c:460 plugins/check_pgsql.c:456
+#: plugins/check_ping.c:601 plugins/check_procs.c:778
+#: plugins/check_radius.c:359 plugins/check_real.c:449
+#: plugins/check_smtp.c:821 plugins/check_snmp.c:1006 plugins/check_ssh.c:302
+#: plugins/check_swap.c:551 plugins/check_tcp.c:651 plugins/check_time.c:369
+#: plugins/check_ups.c:642 plugins/check_users.c:228
+#: plugins/check_ide_smart.c:514 plugins/negate.c:269
+#: plugins-root/check_dhcp.c:1420 plugins-root/check_icmp.c:1304
+msgid "Notes:"
+msgstr ""
+
+#: plugins/check_by_ssh.c:423 plugins/check_cluster.c:277
+#: plugins/check_dig.c:359 plugins/check_disk.c:987 plugins/check_dns.c:496
+#: plugins/check_dummy.c:126 plugins/check_fping.c:416
+#: plugins/check_game.c:339 plugins/check_hpjd.c:424 plugins/check_http.c:1346
+#: plugins/check_ldap.c:459 plugins/check_load.c:335 plugins/check_mrtg.c:389
+#: plugins/check_mysql.c:432 plugins/check_nagios.c:323 plugins/check_nt.c:747
+#: plugins/check_ntp.c:891 plugins/check_ntp_peer.c:697
+#: plugins/check_ntp_time.c:640 plugins/check_nwstat.c:1692
+#: plugins/check_overcr.c:475 plugins/check_pgsql.c:468
+#: plugins/check_ping.c:611 plugins/check_radius.c:371
+#: plugins/check_real.c:461 plugins/check_smtp.c:833 plugins/check_snmp.c:1036
+#: plugins/check_ssh.c:314 plugins/check_swap.c:567 plugins/check_tcp.c:662
+#: plugins/check_time.c:381 plugins/check_ups.c:664 plugins/check_users.c:239
+#: plugins/check_ide_smart.c:536 plugins/negate.c:284 plugins/urlize.c:201
+#: plugins-root/check_dhcp.c:1432 plugins-root/check_icmp.c:1333
 #, c-format
 msgid "Usage:"
 msgstr ""
 
-#: plugins/check_cluster.c:233
+#: plugins/check_cluster.c:235
 #, c-format
 msgid "Host/Service Cluster Plugin for Nagios 2"
 msgstr ""
 
-#: plugins/check_cluster.c:239 plugins/check_nt.c:632
+#: plugins/check_cluster.c:241 plugins/check_nt.c:652
 msgid "Options:"
 msgstr ""
 
-#: plugins/check_cluster.c:241
+#: plugins/check_cluster.c:244
 msgid "Check service cluster status"
 msgstr ""
 
-#: plugins/check_cluster.c:243
+#: plugins/check_cluster.c:246
 msgid "Check host cluster status"
 msgstr ""
 
-#: plugins/check_cluster.c:245
+#: plugins/check_cluster.c:248
 msgid "Optional prepended text output (i.e. \"Host cluster\")"
 msgstr ""
 
-#: plugins/check_cluster.c:247 plugins/check_cluster.c:250
+#: plugins/check_cluster.c:250 plugins/check_cluster.c:253
 msgid "Specifies the range of hosts or services in cluster that must be in a"
 msgstr ""
 
-#: plugins/check_cluster.c:248
+#: plugins/check_cluster.c:251
 msgid "non-OK state in order to return a WARNING status level"
 msgstr ""
 
-#: plugins/check_cluster.c:251
+#: plugins/check_cluster.c:254
 msgid "non-OK state in order to return a CRITICAL status level"
 msgstr ""
 
-#: plugins/check_cluster.c:253
+#: plugins/check_cluster.c:256
 msgid "The status codes of the hosts or services in the cluster, separated by"
 msgstr ""
 
-#: plugins/check_cluster.c:254
+#: plugins/check_cluster.c:257
 msgid "commas"
 msgstr ""
 
-#: plugins/check_cluster.c:259 plugins/check_game.c:318
-#: plugins/check_http.c:1300 plugins/check_mrtg.c:364
-#: plugins/check_mrtgtraf.c:365 plugins/check_nt.c:693 plugins/check_ntp.c:860
-#: plugins/check_ntp_peer.c:655 plugins/check_ntp_time.c:611
-#: plugins/check_nwstat.c:1673 plugins/check_overcr.c:452
-#: plugins/check_swap.c:548 plugins/check_ups.c:633 plugins/negate.c:325
-#, c-format
-msgid "Notes:"
-msgstr ""
-
-#: plugins/check_cluster.c:260 plugins/check_ntp.c:861
-#: plugins/check_ntp_peer.c:663 plugins/check_ntp_time.c:618
-msgid "See:"
-msgstr ""
-
-#: plugins/check_cluster.c:262 plugins/check_ntp.c:863
-#: plugins/check_ntp_peer.c:665 plugins/check_ntp_time.c:620
-msgid "for THRESHOLD format and examples."
-msgstr ""
-
-#: plugins/check_dig.c:101 plugins/check_dig.c:103
+#: plugins/check_dig.c:103 plugins/check_dig.c:105
 #, c-format
 msgid "Looking for: '%s'\n"
 msgstr ""
 
-#: plugins/check_dig.c:110
+#: plugins/check_dig.c:112
 msgid "dig returned an error status"
 msgstr ""
 
-#: plugins/check_dig.c:135
+#: plugins/check_dig.c:137
 msgid "Server not found in ANSWER SECTION"
 msgstr ""
 
-#: plugins/check_dig.c:145
+#: plugins/check_dig.c:147
 msgid "No ANSWER SECTION found"
 msgstr ""
 
-#: plugins/check_dig.c:170
+#: plugins/check_dig.c:172
 msgid "Probably a non-existent host/domain"
 msgstr ""
 
-#: plugins/check_dig.c:229
+#: plugins/check_dig.c:232
 #, c-format
 msgid "Port must be a positive integer - %s"
 msgstr ""
 
-#: plugins/check_dig.c:240
+#: plugins/check_dig.c:243
 #, c-format
 msgid "Warning interval must be a positive integer - %s"
 msgstr ""
 
-#: plugins/check_dig.c:248
+#: plugins/check_dig.c:251
 #, c-format
 msgid "Critical interval must be a positive integer - %s"
 msgstr ""
 
-#: plugins/check_dig.c:256
+#: plugins/check_dig.c:259
 #, c-format
 msgid "Timeout interval must be a positive integer - %s"
 msgstr ""
 
-#: plugins/check_dig.c:309
+#: plugins/check_dig.c:315
 #, c-format
 msgid "This plugin test the DNS service on the specified host using dig"
 msgstr ""
 
-#: plugins/check_dig.c:320
-msgid "machine name to lookup"
+#: plugins/check_dig.c:328
+msgid "Machine name to lookup"
 msgstr ""
 
-#: plugins/check_dig.c:322
-msgid "record type to lookup (default: A)"
+#: plugins/check_dig.c:330
+msgid "Record type to lookup (default: A)"
 msgstr ""
 
-#: plugins/check_dig.c:324
+#: plugins/check_dig.c:332
 msgid ""
-"an address expected to be in the answer section.if not set, uses whatever "
-"was in -l"
+"An address expected to be in the answer section. If not set, uses whatever"
 msgstr ""
 
-#: plugins/check_disk.c:220
+#: plugins/check_dig.c:333
+msgid "was in -l"
+msgstr ""
+
+#: plugins/check_dig.c:335
+msgid "Pass STRING as argument(s) to dig"
+msgstr ""
+
+#: plugins/check_disk.c:221
 #, c-format
 msgid "DISK %s: %s not found\n"
 msgstr ""
 
-#: plugins/check_disk.c:220 plugins/check_disk.c:985 plugins/check_dns.c:208
-#: plugins/check_dummy.c:81 plugins/check_http.c:951 plugins/check_mysql.c:214
-#: plugins/check_nagios.c:107 plugins/check_nagios.c:171
-#: plugins/check_nagios.c:175 plugins/check_procs.c:302
+#: plugins/check_disk.c:221 plugins/check_disk.c:1002 plugins/check_dns.c:245
+#: plugins/check_dummy.c:78 plugins/check_http.c:956 plugins/check_mysql.c:215
+#: plugins/check_nagios.c:108 plugins/check_nagios.c:172
+#: plugins/check_nagios.c:176 plugins/check_procs.c:325
 #, c-format
 msgid "CRITICAL"
 msgstr ""
 
-#: plugins/check_disk.c:604
+#: plugins/check_disk.c:606
 #, c-format
 msgid "unit type %s not known\n"
 msgstr ""
 
-#: plugins/check_disk.c:607
+#: plugins/check_disk.c:609
 #, c-format
 msgid "failed allocating storage for '%s'\n"
 msgstr ""
 
-#: plugins/check_disk.c:631 plugins/check_disk.c:662 plugins/check_disk.c:667
-#: plugins/check_disk.c:674 plugins/check_disk.c:678 plugins/check_disk.c:718
-#: plugins/check_disk.c:724 plugins/check_disk.c:743 plugins/check_dummy.c:84
-#: plugins/check_dummy.c:87
+#: plugins/check_disk.c:633 plugins/check_disk.c:664 plugins/check_disk.c:669
+#: plugins/check_disk.c:676 plugins/check_disk.c:680 plugins/check_disk.c:720
+#: plugins/check_disk.c:726 plugins/check_disk.c:745 plugins/check_dummy.c:81
+#: plugins/check_dummy.c:84 plugins/check_procs.c:486
 #, c-format
 msgid "UNKNOWN"
 msgstr ""
 
-#: plugins/check_disk.c:631
+#: plugins/check_disk.c:633
 msgid "Must set a threshold value before using -p\n"
 msgstr ""
 
-#: plugins/check_disk.c:662
+#: plugins/check_disk.c:664
 msgid "Must set -E before selecting pathes\n"
 msgstr ""
 
-#: plugins/check_disk.c:667
+#: plugins/check_disk.c:669
 msgid "Must set group value before selecting pathes \n"
 msgstr ""
 
-#: plugins/check_disk.c:674
+#: plugins/check_disk.c:676
 msgid ""
 "Pathes need to be selected before using -i/-I. Use -A to select all pathes "
 "explicitly"
 msgstr ""
 
-#: plugins/check_disk.c:678 plugins/check_disk.c:724
+#: plugins/check_disk.c:680 plugins/check_disk.c:726 plugins/check_procs.c:486
 msgid "Could not compile regular expression"
 msgstr ""
 
-#: plugins/check_disk.c:718
+#: plugins/check_disk.c:720
 msgid "Must set a threshold value before using -r/-R\n"
 msgstr ""
 
-#: plugins/check_disk.c:744
+#: plugins/check_disk.c:746
 msgid "Regular expression did not match any path or disk"
 msgstr ""
 
-#: plugins/check_disk.c:791
+#: plugins/check_disk.c:793
 msgid "Unknown argument"
 msgstr ""
 
-#: plugins/check_disk.c:825
+#: plugins/check_disk.c:827
 #, c-format
 msgid " for %s\n"
 msgstr ""
 
-#: plugins/check_disk.c:893
+#: plugins/check_disk.c:901
 msgid ""
 "This plugin checks the amount of used disk space on a mounted file system"
 msgstr ""
 
-#: plugins/check_disk.c:894
+#: plugins/check_disk.c:902
 msgid ""
 "and generates an alert if free space is less than one of the threshold values"
 msgstr ""
 
-#: plugins/check_disk.c:903
+#: plugins/check_disk.c:912
 msgid "Exit with WARNING status if less than INTEGER units of disk are free"
 msgstr ""
 
-#: plugins/check_disk.c:905
+#: plugins/check_disk.c:914
 msgid "Exit with WARNING status if less than PERCENT of disk space is free"
 msgstr ""
 
-#: plugins/check_disk.c:907
+#: plugins/check_disk.c:916
 msgid "Exit with CRITICAL status if less than INTEGER units of disk are free"
 msgstr ""
 
-#: plugins/check_disk.c:909
+#: plugins/check_disk.c:918
 msgid "Exit with CRITCAL status if less than PERCENT of disk space is free"
 msgstr ""
 
-#: plugins/check_disk.c:911
+#: plugins/check_disk.c:920
 msgid "Exit with WARNING status if less than PERCENT of inode space is free"
 msgstr ""
 
-#: plugins/check_disk.c:913
+#: plugins/check_disk.c:922
 msgid "Exit with CRITICAL status if less than PERCENT of inode space is free"
 msgstr ""
 
-#: plugins/check_disk.c:915
+#: plugins/check_disk.c:924
 msgid "Path or partition (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:917
+#: plugins/check_disk.c:926
 msgid "Ignore device (only works if -p unspecified)"
 msgstr ""
 
-#: plugins/check_disk.c:919
+#: plugins/check_disk.c:928
 msgid "Clear thresholds"
 msgstr ""
 
-#: plugins/check_disk.c:921
+#: plugins/check_disk.c:930
 msgid "For paths or partitions specified with -p, only check for exact paths"
 msgstr ""
 
-#: plugins/check_disk.c:923
+#: plugins/check_disk.c:932
 msgid "Display only devices/mountpoints with errors"
 msgstr ""
 
-#: plugins/check_disk.c:925
+#: plugins/check_disk.c:934
 msgid ""
 "Group pathes. Thresholds apply to (free-)space of all partitions together"
 msgstr ""
 
-#: plugins/check_disk.c:927
+#: plugins/check_disk.c:936
 msgid "Same as '--units kB'"
 msgstr ""
 
-#: plugins/check_disk.c:929
+#: plugins/check_disk.c:938
 msgid "Only check local filesystems"
 msgstr ""
 
-#: plugins/check_disk.c:931
+#: plugins/check_disk.c:940
 msgid ""
 "Only check local filesystems against thresholds. Yet call stat on remote "
 "filesystems"
 msgstr ""
 
-#: plugins/check_disk.c:932
+#: plugins/check_disk.c:941
 msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)"
 msgstr ""
 
-#: plugins/check_disk.c:934
+#: plugins/check_disk.c:943
 msgid "Display the mountpoint instead of the partition"
 msgstr ""
 
-#: plugins/check_disk.c:936
+#: plugins/check_disk.c:945
 msgid "Same as '--units MB'"
 msgstr ""
 
-#: plugins/check_disk.c:938
+#: plugins/check_disk.c:947
 msgid "Explicitly select all pathes. This is equivalent to -R '.*'"
 msgstr ""
 
-#: plugins/check_disk.c:940
+#: plugins/check_disk.c:949
 msgid ""
 "Case insensitive regular expression for path/partition (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:942
+#: plugins/check_disk.c:951
 msgid "Regular expression for path or partition (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:944
+#: plugins/check_disk.c:953
 msgid ""
 "Regular expression to ignore selected path/partition (case insensitive) (may "
 "be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:946
+#: plugins/check_disk.c:955
 msgid ""
 "Regular expression to ignore selected path or partition (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:949
+#: plugins/check_disk.c:958
 msgid "Choose bytes, kB, MB, GB, TB (default: MB)"
 msgstr ""
 
-#: plugins/check_disk.c:952
+#: plugins/check_disk.c:961
 msgid "Ignore all filesystems of indicated type (may be repeated)"
 msgstr ""
 
-#: plugins/check_disk.c:956
+#: plugins/check_disk.c:972
 msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB"
 msgstr ""
 
-#: plugins/check_disk.c:958
+#: plugins/check_disk.c:974
 msgid ""
 "Checks all filesystems not matching -r at 100M and 50M. The fs matching the -"
 "r regex"
 msgstr ""
 
-#: plugins/check_disk.c:959
+#: plugins/check_disk.c:975
 msgid ""
 "are grouped which means the freespace thresholds are applied to all disks "
 "together"
 msgstr ""
 
-#: plugins/check_disk.c:961
+#: plugins/check_disk.c:977
 msgid ""
 "Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use "
 "100M/50M"
 msgstr ""
 
-#: plugins/check_disk.c:986
+#: plugins/check_disk.c:1003
 #, c-format
 msgid "%s %s: %s\n"
 msgstr ""
 
-#: plugins/check_disk.c:986
+#: plugins/check_disk.c:1003
 msgid "is not accessible"
 msgstr ""
 
-#: plugins/check_dns.c:107
+#: plugins/check_dns.c:120
 msgid "nslookup returned an error status"
 msgstr ""
 
-#: plugins/check_dns.c:120
+#: plugins/check_dns.c:138
 msgid "Warning plugin error"
 msgstr ""
 
-#: plugins/check_dns.c:140
+#: plugins/check_dns.c:158
 #, c-format
 msgid "DNS CRITICAL - '%s' returned empty host name string\n"
 msgstr ""
 
-#: plugins/check_dns.c:150
+#: plugins/check_dns.c:164
 msgid "Non-authoritative answer:"
 msgstr ""
 
-#: plugins/check_dns.c:178
+#: plugins/check_dns.c:205
 #, c-format
 msgid "DNS CRITICAL - '%s' msg parsing exited with no address\n"
 msgstr ""
 
-#: plugins/check_dns.c:184
+#: plugins/check_dns.c:220
 #, c-format
 msgid "expected '%s' but got '%s'"
 msgstr ""
 
-#: plugins/check_dns.c:190
+#: plugins/check_dns.c:227
 #, c-format
 msgid "server %s is not authoritative for %s"
 msgstr ""
 
-#: plugins/check_dns.c:204 plugins/check_dummy.c:75 plugins/check_nagios.c:185
-#: plugins/check_procs.c:295
+#: plugins/check_dns.c:241 plugins/check_dummy.c:72 plugins/check_nagios.c:186
+#: plugins/check_procs.c:318
 #, c-format
 msgid "OK"
 msgstr ""
 
-#: plugins/check_dns.c:206 plugins/check_dummy.c:78 plugins/check_http.c:953
-#: plugins/check_mysql.c:211 plugins/check_nagios.c:185
-#: plugins/check_procs.c:297
+#: plugins/check_dns.c:243 plugins/check_dummy.c:75 plugins/check_http.c:958
+#: plugins/check_mysql.c:212 plugins/check_nagios.c:186
+#: plugins/check_procs.c:320
 #, c-format
 msgid "WARNING"
 msgstr ""
 
-#: plugins/check_dns.c:210
+#: plugins/check_dns.c:247
 #, c-format
 msgid "%.3f second response time"
 msgid_plural "%.3f seconds response time"
 msgstr[0] ""
 msgstr[1] ""
 
-#: plugins/check_dns.c:211
+#: plugins/check_dns.c:248
 #, c-format
 msgid ". %s returns %s"
 msgstr ""
 
-#: plugins/check_dns.c:215
+#: plugins/check_dns.c:252
 #, c-format
 msgid "DNS WARNING - %s\n"
 msgstr ""
 
-#: plugins/check_dns.c:216 plugins/check_dns.c:219 plugins/check_dns.c:222
+#: plugins/check_dns.c:253 plugins/check_dns.c:256 plugins/check_dns.c:259
 msgid " Probably a non-existent host/domain"
 msgstr ""
 
-#: plugins/check_dns.c:218
+#: plugins/check_dns.c:255
 #, c-format
 msgid "DNS CRITICAL - %s\n"
 msgstr ""
 
-#: plugins/check_dns.c:221
+#: plugins/check_dns.c:258
 #, c-format
 msgid "DNS UNKNOW - %s\n"
 msgstr ""
 
-#: plugins/check_dns.c:234
+#: plugins/check_dns.c:271
 msgid "Note: nslookup is deprecated and may be removed from future releases."
 msgstr ""
 
-#: plugins/check_dns.c:235
+#: plugins/check_dns.c:272
 msgid "Consider using the `dig' or `host' programs instead.  Run nslookup with"
 msgstr ""
 
-#: plugins/check_dns.c:236
+#: plugins/check_dns.c:273
 msgid "the `-sil[ent]' option to prevent this message from appearing."
 msgstr ""
 
-#: plugins/check_dns.c:241
+#: plugins/check_dns.c:278
 #, c-format
 msgid "No response from DNS %s\n"
 msgstr ""
 
-#: plugins/check_dns.c:245
+#: plugins/check_dns.c:282
 #, c-format
 msgid "DNS %s has no records\n"
 msgstr ""
 
-#: plugins/check_dns.c:253
+#: plugins/check_dns.c:290
 #, c-format
 msgid "Connection to DNS %s was refused\n"
 msgstr ""
 
-#: plugins/check_dns.c:257
+#: plugins/check_dns.c:294
 #, c-format
 msgid "Query was refused by DNS server at %s\n"
 msgstr ""
 
-#: plugins/check_dns.c:261
+#: plugins/check_dns.c:298
 #, c-format
 msgid "No information returned by DNS server at %s\n"
 msgstr ""
 
-#: plugins/check_dns.c:267
+#: plugins/check_dns.c:304
 #, c-format
 msgid "Domain %s was not found by the server\n"
 msgstr ""
 
-#: plugins/check_dns.c:271
+#: plugins/check_dns.c:308
 msgid "Network is unreachable\n"
 msgstr ""
 
-#: plugins/check_dns.c:275
+#: plugins/check_dns.c:312
 #, c-format
 msgid "DNS failure for %s\n"
 msgstr ""
 
-#: plugins/check_dns.c:339 plugins/check_dns.c:347 plugins/check_dns.c:354
-#: plugins/check_dns.c:359 plugins/check_dns.c:380 plugins/check_dns.c:388
-#: plugins/check_game.c:213 plugins/check_game.c:221
+#: plugins/check_dns.c:376 plugins/check_dns.c:384 plugins/check_dns.c:391
+#: plugins/check_dns.c:396 plugins/check_dns.c:418 plugins/check_dns.c:426
+#: plugins/check_game.c:215 plugins/check_game.c:223
 msgid "Input buffer overflow\n"
 msgstr ""
 
-#: plugins/check_dns.c:416
+#: plugins/check_dns.c:454
 msgid ""
 "This plugin uses the nslookup program to obtain the IP address for the given "
 "host/domain query."
 msgstr ""
 
-#: plugins/check_dns.c:417
+#: plugins/check_dns.c:455
 msgid "An optional DNS server to use may be specified."
 msgstr ""
 
-#: plugins/check_dns.c:418
+#: plugins/check_dns.c:456
 msgid ""
 "If no DNS server is specified, the default server(s) specified in /etc/"
 "resolv.conf will be used."
 msgstr ""
 
-#: plugins/check_dns.c:427
+#: plugins/check_dns.c:466
 msgid "The name or address you want to query"
 msgstr ""
 
-#: plugins/check_dns.c:429
+#: plugins/check_dns.c:468
 msgid "Optional DNS server you want to use for the lookup"
 msgstr ""
 
-#: plugins/check_dns.c:431
+#: plugins/check_dns.c:470
 msgid ""
-"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with ."
+"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with"
 msgstr ""
 
-#: plugins/check_dns.c:433
+#: plugins/check_dns.c:471
+msgid ""
+"a dot (.). This option can be repeated multiple times (Returns OK if any"
+msgstr ""
+
+#: plugins/check_dns.c:472
+msgid ""
+"value match). If multiple addresses are returned at once, you have to match"
+msgstr ""
+
+#: plugins/check_dns.c:473
+msgid ""
+"the whole string of addresses separated with commas (sorted alphabetically)."
+msgstr ""
+
+#: plugins/check_dns.c:475
 msgid "Optionally expect the DNS server to be authoritative for the lookup"
 msgstr ""
 
-#: plugins/check_dns.c:435
+#: plugins/check_dns.c:477
 msgid "Return warning if elapsed time exceeds value. Default off"
 msgstr ""
 
-#: plugins/check_dns.c:437
+#: plugins/check_dns.c:479
 msgid "Return critical if elapsed time exceeds value. Default off"
 msgstr ""
 
-#: plugins/check_dummy.c:69
+#: plugins/check_dummy.c:66
 msgid "Arguments to check_dummy must be an integer"
 msgstr ""
 
-#: plugins/check_dummy.c:89
+#: plugins/check_dummy.c:86
 #, c-format
 msgid "Status %d is not a supported error state\n"
 msgstr ""
 
-#: plugins/check_dummy.c:111
+#: plugins/check_dummy.c:108
 msgid ""
 "This plugin will simply return the state corresponding to the numeric value"
 msgstr ""
 
-#: plugins/check_dummy.c:113
+#: plugins/check_dummy.c:110
 msgid "of the <state> argument with optional text"
 msgstr ""
 
-#: plugins/check_fping.c:103 plugins/check_hpjd.c:131 plugins/check_ping.c:432
-#: plugins/check_procs.c:159 plugins/check_snmp.c:210 plugins/check_swap.c:178
-#: plugins/check_users.c:75 plugins/urlize.c:117
+#: plugins/check_fping.c:104 plugins/check_hpjd.c:132 plugins/check_ping.c:441
+#: plugins/check_procs.c:167 plugins/check_snmp.c:210 plugins/check_swap.c:179
+#: plugins/check_users.c:77 plugins/urlize.c:114
 #, c-format
 msgid "Could not open pipe: %s\n"
 msgstr ""
 
-#: plugins/check_fping.c:109 plugins/check_hpjd.c:137 plugins/check_load.c:157
-#: plugins/check_procs.c:165 plugins/check_snmp.c:217 plugins/check_swap.c:184
-#: plugins/check_users.c:81 plugins/urlize.c:123
+#: plugins/check_fping.c:110 plugins/check_hpjd.c:138 plugins/check_load.c:157
+#: plugins/check_procs.c:172 plugins/check_snmp.c:217 plugins/check_swap.c:185
+#: plugins/check_users.c:83 plugins/urlize.c:120
 #, c-format
 msgid "Could not open stderr for %s\n"
 msgstr ""
 
-#: plugins/check_fping.c:149
+#: plugins/check_fping.c:150
 #, c-format
 msgid "FPING UNKNOW - %s not found\n"
 msgstr ""
 
-#: plugins/check_fping.c:153
+#: plugins/check_fping.c:154
 #, c-format
 msgid "FPING CRITICAL - %s is unreachable\n"
 msgstr ""
 
-#: plugins/check_fping.c:158
+#: plugins/check_fping.c:159
 #, c-format
 msgid "FPING CRITICAL - %s is down\n"
 msgstr ""
 
-#: plugins/check_fping.c:185
+#: plugins/check_fping.c:186
 #, c-format
 msgid "FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n"
 msgstr ""
 
-#: plugins/check_fping.c:206
+#: plugins/check_fping.c:207
 #, c-format
 msgid "FPING %s - %s (loss=%.0f%% )|%s\n"
 msgstr ""
 
-#: plugins/check_fping.c:273 plugins/check_hpjd.c:341 plugins/check_hpjd.c:364
-#: plugins/check_mysql.c:277 plugins/check_mysql.c:326 plugins/check_ntp.c:709
-#: plugins/check_ntp_peer.c:489 plugins/check_ntp_time.c:494
-#: plugins/check_pgsql.c:255 plugins/check_ping.c:290 plugins/check_ping.c:413
-#: plugins/check_radius.c:249 plugins/check_real.c:319
-#: plugins/check_real.c:381 plugins/check_smtp.c:512 plugins/check_smtp.c:638
-#: plugins/check_ssh.c:162 plugins/check_time.c:244 plugins/check_time.c:319
-#: plugins/check_ups.c:503 plugins/check_ups.c:572
+#: plugins/check_fping.c:274 plugins/check_hpjd.c:342 plugins/check_hpjd.c:365
+#: plugins/check_mysql.c:279 plugins/check_mysql.c:337 plugins/check_ntp.c:709
+#: plugins/check_ntp_peer.c:492 plugins/check_ntp_time.c:494
+#: plugins/check_pgsql.c:256 plugins/check_ping.c:299 plugins/check_ping.c:422
+#: plugins/check_radius.c:249 plugins/check_real.c:318
+#: plugins/check_real.c:380 plugins/check_smtp.c:513 plugins/check_smtp.c:639
+#: plugins/check_ssh.c:161 plugins/check_time.c:244 plugins/check_time.c:319
+#: plugins/check_ups.c:504 plugins/check_ups.c:573
 msgid "Invalid hostname/address"
 msgstr ""
 
-#: plugins/check_fping.c:307
+#: plugins/check_fping.c:308
 msgid "Packet size must be a positive integer"
 msgstr ""
 
-#: plugins/check_fping.c:313
+#: plugins/check_fping.c:314
 msgid "Packet count must be a positive integer"
 msgstr ""
 
-#: plugins/check_fping.c:319 plugins/check_ntp.c:733
-#: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:518
-#: plugins/check_radius.c:290 plugins/check_time.c:323
+#: plugins/check_fping.c:320 plugins/check_ntp.c:733
+#: plugins/check_ntp_peer.c:516 plugins/check_ntp_time.c:518
+#: plugins/check_radius.c:296 plugins/check_time.c:323
 msgid "Hostname was not supplied"
 msgstr ""
 
-#: plugins/check_fping.c:339
+#: plugins/check_fping.c:340
 #, c-format
 msgid "%s: Only one threshold may be packet loss (%s)\n"
 msgstr ""
 
-#: plugins/check_fping.c:343
+#: plugins/check_fping.c:344
 #, c-format
 msgid "%s: Only one threshold must be packet loss (%s)\n"
 msgstr ""
 
-#: plugins/check_fping.c:375
+#: plugins/check_fping.c:376
 msgid ""
 "This plugin will use the fping command to ping the specified host for a fast "
 "check"
 msgstr ""
 
-#: plugins/check_fping.c:377
+#: plugins/check_fping.c:378
 msgid "Note that it is necessary to set the suid flag on fping."
 msgstr ""
 
-#: plugins/check_fping.c:386
+#: plugins/check_fping.c:388
 msgid ""
 "name or IP Address of host to ping (IP Address bypasses name lookup, "
 "reducing system load)"
 msgstr ""
 
-#: plugins/check_fping.c:388 plugins/check_ping.c:567
+#: plugins/check_fping.c:390 plugins/check_ping.c:577
 msgid "warning threshold pair"
 msgstr ""
 
-#: plugins/check_fping.c:390 plugins/check_ping.c:569
+#: plugins/check_fping.c:392 plugins/check_ping.c:579
 msgid "critical threshold pair"
 msgstr ""
 
-#: plugins/check_fping.c:392
+#: plugins/check_fping.c:394
 #, c-format
 msgid "size of ICMP packet (default: %d)"
 msgstr ""
 
-#: plugins/check_fping.c:394
+#: plugins/check_fping.c:396
 #, c-format
 msgid "number of ICMP packets to send (default: %d)"
 msgstr ""
 
-#: plugins/check_fping.c:397
+#: plugins/check_fping.c:399
 #, c-format
 msgid ""
 "THRESHOLD is <rta>,<pl>%% where <rta> is the round trip average travel time "
 "(ms)"
 msgstr ""
 
-#: plugins/check_fping.c:398
+#: plugins/check_fping.c:400
 msgid ""
 "which triggers a WARNING or CRITICAL state, and <pl> is the percentage of"
 msgstr ""
 
-#: plugins/check_fping.c:399
+#: plugins/check_fping.c:401
 msgid "packet loss to trigger an alarm state."
 msgstr ""
 
-#: plugins/check_game.c:113
+#: plugins/check_game.c:115
 #, c-format
 msgid "CRITICAL - Host type parameter incorrect!\n"
 msgstr ""
 
-#: plugins/check_game.c:128
+#: plugins/check_game.c:130
 #, c-format
 msgid "CRITICAL - Host not found\n"
 msgstr ""
 
-#: plugins/check_game.c:132
+#: plugins/check_game.c:134
 #, c-format
 msgid "CRITICAL - Game server down or unavailable\n"
 msgstr ""
 
-#: plugins/check_game.c:136
+#: plugins/check_game.c:138
 #, c-format
 msgid "CRITICAL - Game server timeout\n"
 msgstr ""
 
-#: plugins/check_game.c:299
+#: plugins/check_game.c:301
 #, c-format
 msgid "This plugin tests game server connections with the specified host."
 msgstr ""
 
-#: plugins/check_game.c:308
+#: plugins/check_game.c:311
 msgid "Optional port of which to connect"
 msgstr ""
 
-#: plugins/check_game.c:310
+#: plugins/check_game.c:313
 msgid "Field number in raw qstat output that contains game name"
 msgstr ""
 
-#: plugins/check_game.c:312
+#: plugins/check_game.c:315
 msgid "Field number in raw qstat output that contains map name"
 msgstr ""
 
-#: plugins/check_game.c:314
+#: plugins/check_game.c:317
 msgid "Field number in raw qstat output that contains ping time"
 msgstr ""
 
-#: plugins/check_game.c:320
+#: plugins/check_game.c:323
 msgid ""
 "This plugin uses the 'qstat' command, the popular game server status query "
-"tool ."
+"tool."
 msgstr ""
 
-#: plugins/check_game.c:322
+#: plugins/check_game.c:324
 msgid ""
 "If you don't have the package installed, you will need to download it from"
 msgstr ""
 
-#: plugins/check_game.c:324
+#: plugins/check_game.c:325
 msgid ""
 "http://www.activesw.com/people/steve/qstat.html before you can use this "
 "plugin."
 msgstr ""
 
-#: plugins/check_hpjd.c:242
+#: plugins/check_hpjd.c:243
 msgid "Paper Jam"
 msgstr ""
 
-#: plugins/check_hpjd.c:246
+#: plugins/check_hpjd.c:247
 msgid "Out of Paper"
 msgstr ""
 
-#: plugins/check_hpjd.c:251
+#: plugins/check_hpjd.c:252
 msgid "Printer Offline"
 msgstr ""
 
-#: plugins/check_hpjd.c:256
+#: plugins/check_hpjd.c:257
 msgid "Peripheral Error"
 msgstr ""
 
-#: plugins/check_hpjd.c:260
+#: plugins/check_hpjd.c:261
 msgid "Intervention Required"
 msgstr ""
 
-#: plugins/check_hpjd.c:264
+#: plugins/check_hpjd.c:265
 msgid "Toner Low"
 msgstr ""
 
-#: plugins/check_hpjd.c:268
+#: plugins/check_hpjd.c:269
 msgid "Insufficient Memory"
 msgstr ""
 
-#: plugins/check_hpjd.c:272
+#: plugins/check_hpjd.c:273
 msgid "A Door is Open"
 msgstr ""
 
-#: plugins/check_hpjd.c:276
+#: plugins/check_hpjd.c:277
 msgid "Output Tray is Full"
 msgstr ""
 
-#: plugins/check_hpjd.c:280
+#: plugins/check_hpjd.c:281
 msgid "Data too Slow for Engine"
 msgstr ""
 
-#: plugins/check_hpjd.c:284
+#: plugins/check_hpjd.c:285
 msgid "Unknown Paper Error"
 msgstr ""
 
-#: plugins/check_hpjd.c:289
+#: plugins/check_hpjd.c:290
 #, c-format
 msgid "Printer ok - (%s)\n"
 msgstr ""
 
-#: plugins/check_hpjd.c:394
+#: plugins/check_hpjd.c:395
 msgid "This plugin tests the STATUS of an HP printer with a JetDirect card."
 msgstr ""
 
-#: plugins/check_hpjd.c:395
+#: plugins/check_hpjd.c:396
 msgid "Net-snmp must be installed on the computer running the plugin."
 msgstr ""
 
-#: plugins/check_hpjd.c:404
+#: plugins/check_hpjd.c:406
 msgid "The SNMP community name "
 msgstr ""
 
-#: plugins/check_hpjd.c:405
+#: plugins/check_hpjd.c:407
 #, c-format
 msgid "(default=%s)"
 msgstr ""
 
-#: plugins/check_http.c:254
+#: plugins/check_http.c:255
 msgid "Critical threshold must be integer"
 msgstr ""
 
-#: plugins/check_http.c:262
+#: plugins/check_http.c:263
 msgid "Warning threshold must be integer"
 msgstr ""
 
-#: plugins/check_http.c:288 plugins/check_tcp.c:563
+#: plugins/check_http.c:289 plugins/check_tcp.c:564
 msgid "Invalid certificate expiration period"
 msgstr ""
 
-#: plugins/check_http.c:297 plugins/check_tcp.c:575
+#: plugins/check_http.c:298 plugins/check_tcp.c:576
 msgid "Invalid option - SSL is not available"
 msgstr ""
 
-#: plugins/check_http.c:315
+#: plugins/check_http.c:316
 #, c-format
 msgid "option f:%d \n"
 msgstr ""
 
-#: plugins/check_http.c:332
+#: plugins/check_http.c:337
 msgid "Invalid port number"
 msgstr ""
 
-#: plugins/check_http.c:370
+#: plugins/check_http.c:375
 #, c-format
 msgid "Could Not Compile Regular Expression: %s"
 msgstr ""
 
-#: plugins/check_http.c:384 plugins/check_ntp.c:722
-#: plugins/check_ntp_peer.c:502 plugins/check_ntp_time.c:507
-#: plugins/check_smtp.c:618 plugins/check_ssh.c:154 plugins/check_tcp.c:467
+#: plugins/check_http.c:389 plugins/check_ntp.c:722
+#: plugins/check_ntp_peer.c:505 plugins/check_ntp_time.c:507
+#: plugins/check_smtp.c:619 plugins/check_ssh.c:153 plugins/check_tcp.c:468
 msgid "IPv6 support not available"
 msgstr ""
 
-#: plugins/check_http.c:446 plugins/check_ping.c:417
+#: plugins/check_http.c:451 plugins/check_ping.c:426
 msgid "You must specify a server address or host name"
 msgstr ""
 
-#: plugins/check_http.c:629
+#: plugins/check_http.c:634
 msgid "HTTP UNKNOWN - Server date unknown\n"
 msgstr ""
 
-#: plugins/check_http.c:631
+#: plugins/check_http.c:636
 msgid "HTTP CRITICAL - Document modification date unknown\n"
 msgstr ""
 
-#: plugins/check_http.c:637
+#: plugins/check_http.c:642
 #, c-format
 msgid "HTTP CRITICAL - Server date \"%100s\" unparsable"
 msgstr ""
 
-#: plugins/check_http.c:639
+#: plugins/check_http.c:644
 #, c-format
 msgid "HTTP CRITICAL - Document date \"%100s\" unparsable"
 msgstr ""
 
-#: plugins/check_http.c:641
+#: plugins/check_http.c:646
 #, c-format
 msgid "HTTP CRITICAL - Document is %d seconds in the future\n"
 msgstr ""
 
-#: plugins/check_http.c:646
+#: plugins/check_http.c:651
 #, c-format
 msgid "HTTP CRITICAL - Last modified %.1f days ago\n"
 msgstr ""
 
-#: plugins/check_http.c:650
+#: plugins/check_http.c:655
 #, c-format
 msgid "HTTP CRITICAL - Last modified %d:%02d:%02d ago\n"
 msgstr ""
 
-#: plugins/check_http.c:731
+#: plugins/check_http.c:736
 msgid "HTTP CRITICAL - Unable to open TCP socket\n"
 msgstr ""
 
-#: plugins/check_http.c:814
+#: plugins/check_http.c:819
 msgid "HTTP CRITICAL - Error on receive\n"
 msgstr ""
 
-#: plugins/check_http.c:824
+#: plugins/check_http.c:829
 msgid "HTTP CRITICAL - No data received from host\n"
 msgstr ""
 
-#: plugins/check_http.c:874
+#: plugins/check_http.c:879
+#, c-format
 msgid "Invalid HTTP response received from host\n"
 msgstr ""
 
-#: plugins/check_http.c:877
+#: plugins/check_http.c:882
 #, c-format
 msgid "Invalid HTTP response received from host on port %d\n"
 msgstr ""
 
-#: plugins/check_http.c:885
+#: plugins/check_http.c:890
 #, c-format
 msgid "HTTP OK: Status line output matched \"%s\"\n"
 msgstr ""
 
-#: plugins/check_http.c:897
+#: plugins/check_http.c:902
 #, c-format
 msgid "HTTP CRITICAL: Invalid Status Line (%s)\n"
 msgstr ""
 
-#: plugins/check_http.c:904
+#: plugins/check_http.c:909
 #, c-format
 msgid "HTTP CRITICAL: Invalid Status (%s)\n"
 msgstr ""
 
-#: plugins/check_http.c:908
+#: plugins/check_http.c:913
 #, c-format
 msgid "HTTP CRITICAL: %s\n"
 msgstr ""
 
-#: plugins/check_http.c:912
+#: plugins/check_http.c:917
 #, c-format
 msgid "HTTP WARNING: %s\n"
 msgstr ""
 
-#: plugins/check_http.c:920
+#: plugins/check_http.c:925
 #, c-format
 msgid "HTTP UNKNOWN"
 msgstr ""
 
-#: plugins/check_http.c:922
+#: plugins/check_http.c:927
 #, c-format
 msgid "HTTP OK"
 msgstr ""
 
-#: plugins/check_http.c:924
+#: plugins/check_http.c:929
 #, c-format
 msgid "HTTP WARNING"
 msgstr ""
 
-#: plugins/check_http.c:926 plugins/check_http.c:989
+#: plugins/check_http.c:931 plugins/check_http.c:994
 #, c-format
 msgid "HTTP CRITICAL"
 msgstr ""
 
-#: plugins/check_http.c:930 plugins/check_http.c:946
+#: plugins/check_http.c:935 plugins/check_http.c:951
 #, c-format
 msgid " - %s - %.3f second response time %s|%s %s\n"
 msgstr ""
 
-#: plugins/check_http.c:960 plugins/check_http.c:977
+#: plugins/check_http.c:965 plugins/check_http.c:982
 #, c-format
 msgid "HTTP OK %s - %.3f second response time %s|%s %s\n"
 msgstr ""
 
-#: plugins/check_http.c:967
+#: plugins/check_http.c:972
 #, c-format
 msgid "HTTP CRITICAL - string not found%s|%s %s\n"
 msgstr ""
 
-#: plugins/check_http.c:985
+#: plugins/check_http.c:990
 msgid "pattern not found"
 msgstr ""
 
-#: plugins/check_http.c:987
+#: plugins/check_http.c:992
 msgid "pattern found"
 msgstr ""
 
-#: plugins/check_http.c:997
+#: plugins/check_http.c:1002
 #, c-format
 msgid "HTTP CRITICAL - Execute Error: %s\n"
 msgstr ""
 
-#: plugins/check_http.c:1006
+#: plugins/check_http.c:1011
 #, c-format
 msgid "HTTP WARNING: page size %d too large%s|%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1010
+#: plugins/check_http.c:1015
 #, c-format
 msgid "HTTP WARNING: page size %d too small%s|%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1015
+#: plugins/check_http.c:1020
 #, c-format
 msgid "HTTP OK %s - %d bytes in %.3f seconds %s|%s %s\n"
 msgstr ""
 
-#: plugins/check_http.c:1048
+#: plugins/check_http.c:1053
 msgid "HTTP UNKNOWN - Could not allocate addr\n"
 msgstr ""
 
-#: plugins/check_http.c:1052
+#: plugins/check_http.c:1057
 msgid "HTTP UNKNOWN - Could not allocate url\n"
 msgstr ""
 
-#: plugins/check_http.c:1061
+#: plugins/check_http.c:1066
 #, c-format
 msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1076
+#: plugins/check_http.c:1081
 #, c-format
 msgid "HTTP UNKNOWN - Empty redirect location%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1083
+#: plugins/check_http.c:1088
 msgid "HTTP UNKNOWN - could not allocate url\n"
 msgstr ""
 
-#: plugins/check_http.c:1123
+#: plugins/check_http.c:1128
 #, c-format
 msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1133
+#: plugins/check_http.c:1138
 #, c-format
 msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1141
+#: plugins/check_http.c:1146
 #, c-format
 msgid "HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1156
+#: plugins/check_http.c:1161
 #, c-format
 msgid "HTTP UNKNOWN - Could not allocate server_url%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1162
+#: plugins/check_http.c:1167
 #, c-format
 msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1167
+#: plugins/check_http.c:1172
 #, c-format
 msgid "Redirection to %s://%s:%d%s\n"
 msgstr ""
 
-#: plugins/check_http.c:1219
+#: plugins/check_http.c:1224
 msgid "This plugin tests the HTTP service on the specified host. It can test"
 msgstr ""
 
-#: plugins/check_http.c:1220
+#: plugins/check_http.c:1225
 msgid "normal (http) and secure (https) servers, follow redirects, search for"
 msgstr ""
 
-#: plugins/check_http.c:1221
+#: plugins/check_http.c:1226
 msgid "strings and regular expressions, check connection times, and report on"
 msgstr ""
 
-#: plugins/check_http.c:1222
+#: plugins/check_http.c:1227
 msgid "certificate expiration times."
 msgstr ""
 
-#: plugins/check_http.c:1228
+#: plugins/check_http.c:1233
 #, c-format
 msgid "NOTE: One or both of -H and -I must be specified"
 msgstr ""
 
-#: plugins/check_http.c:1235
+#: plugins/check_http.c:1241
 msgid "Host name argument for servers using host headers (virtual host)"
 msgstr ""
 
-#: plugins/check_http.c:1236
+#: plugins/check_http.c:1242
 msgid "Append a port to include it in the header (eg: example.com:5000)"
 msgstr ""
 
-#: plugins/check_http.c:1238
+#: plugins/check_http.c:1244
 msgid ""
 "IP address or name (use numeric address if possible to bypass DNS lookup)."
 msgstr ""
 
-#: plugins/check_http.c:1240
+#: plugins/check_http.c:1246
 msgid "Port number (default: "
 msgstr ""
 
-#: plugins/check_http.c:1247
+#: plugins/check_http.c:1253
 msgid "Connect via SSL. Port defaults to 443"
 msgstr ""
 
-#: plugins/check_http.c:1249
+#: plugins/check_http.c:1255
 msgid ""
 "Minimum number of days a certificate has to be valid. Port defaults to 443"
 msgstr ""
 
-#: plugins/check_http.c:1250
+#: plugins/check_http.c:1256
 msgid "(when this option is used the url is not checked.)\n"
 msgstr ""
 
-#: plugins/check_http.c:1254
+#: plugins/check_http.c:1260
 msgid "String to expect in first (status) line of server response (default: "
 msgstr ""
 
-#: plugins/check_http.c:1256
+#: plugins/check_http.c:1262
 msgid ""
 "If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)"
 msgstr ""
 
-#: plugins/check_http.c:1258
+#: plugins/check_http.c:1264
 msgid "String to expect in the content"
 msgstr ""
 
-#: plugins/check_http.c:1260
+#: plugins/check_http.c:1266
 msgid "URL to GET or POST (default: /)"
 msgstr ""
 
-#: plugins/check_http.c:1262
+#: plugins/check_http.c:1268
 msgid "URL encoded http POST data"
 msgstr ""
 
-#: plugins/check_http.c:1264
+#: plugins/check_http.c:1270
 msgid "Don't wait for document body: stop reading after headers."
 msgstr ""
 
-#: plugins/check_http.c:1265
+#: plugins/check_http.c:1271
 msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)"
 msgstr ""
 
-#: plugins/check_http.c:1267
+#: plugins/check_http.c:1273
 msgid "Warn if document is more than SECONDS old. the number can also be of"
 msgstr ""
 
-#: plugins/check_http.c:1268
+#: plugins/check_http.c:1274
 msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days."
 msgstr ""
 
-#: plugins/check_http.c:1270
+#: plugins/check_http.c:1276
 msgid "specify Content-Type header media type when POSTing\n"
 msgstr ""
 
-#: plugins/check_http.c:1273
+#: plugins/check_http.c:1279
 msgid "Allow regex to span newlines (must precede -r or -R)"
 msgstr ""
 
-#: plugins/check_http.c:1275
+#: plugins/check_http.c:1281
 msgid "Search page for regex STRING"
 msgstr ""
 
-#: plugins/check_http.c:1277
+#: plugins/check_http.c:1283
 msgid "Search page for case-insensitive regex STRING"
 msgstr ""
 
-#: plugins/check_http.c:1279
+#: plugins/check_http.c:1285
 msgid "Return CRITICAL if found, OK if not\n"
 msgstr ""
 
-#: plugins/check_http.c:1282
+#: plugins/check_http.c:1288
 msgid "Username:password on sites with basic authentication"
 msgstr ""
 
-#: plugins/check_http.c:1284
+#: plugins/check_http.c:1290
 msgid "String to be sent in http header as \"User Agent\""
 msgstr ""
 
-#: plugins/check_http.c:1286
+#: plugins/check_http.c:1292
 msgid ""
 " Any other tags to be sent in http header. Use multiple times for additional "
 "headers"
 msgstr ""
 
-#: plugins/check_http.c:1288
+#: plugins/check_http.c:1294
 msgid "Wrap output in HTML link (obsoleted by urlize)"
 msgstr ""
 
-#: plugins/check_http.c:1290
+#: plugins/check_http.c:1296
 msgid "How to handle redirected pages"
 msgstr ""
 
-#: plugins/check_http.c:1292
+#: plugins/check_http.c:1298
 msgid "Minimum page size required (bytes) : Maximum page size required (bytes)"
 msgstr ""
 
-#: plugins/check_http.c:1301
+#: plugins/check_http.c:1308
 msgid "This plugin will attempt to open an HTTP connection with the host."
 msgstr ""
 
-#: plugins/check_http.c:1302
+#: plugins/check_http.c:1309
 msgid ""
 "Successful connects return STATE_OK, refusals and timeouts return "
 "STATE_CRITICAL"
 msgstr ""
 
-#: plugins/check_http.c:1303
+#: plugins/check_http.c:1310
 msgid ""
 "other errors return STATE_UNKNOWN.  Successful connects, but incorrect "
 "reponse"
 msgstr ""
 
-#: plugins/check_http.c:1304
+#: plugins/check_http.c:1311
 msgid ""
 "messages from the host result in STATE_WARNING return values.  If you are"
 msgstr ""
 
-#: plugins/check_http.c:1305
+#: plugins/check_http.c:1312
 msgid ""
 "checking a virtual server that uses 'host headers' you must supply the FQDN"
 msgstr ""
 
-#: plugins/check_http.c:1306
+#: plugins/check_http.c:1313
 msgid "(fully qualified domain name) as the [host_name] argument."
 msgstr ""
 
-#: plugins/check_http.c:1309
+#: plugins/check_http.c:1319
 msgid "This plugin can also check whether an SSL enabled web server is able to"
 msgstr ""
 
-#: plugins/check_http.c:1310
+#: plugins/check_http.c:1320
 msgid "serve content (optionally within a specified time) or whether the X509 "
 msgstr ""
 
-#: plugins/check_http.c:1311
+#: plugins/check_http.c:1321
 msgid "certificate is still valid for the specified number of days."
 msgstr ""
 
-#: plugins/check_http.c:1314
+#: plugins/check_http.c:1325
 msgid ""
 "When the 'www.verisign.com' server returns its content within 5 seconds,"
 msgstr ""
 
-#: plugins/check_http.c:1315
+#: plugins/check_http.c:1326
 msgid ""
 "a STATE_OK will be returned. When the server returns its content but exceeds"
 msgstr ""
 
-#: plugins/check_http.c:1316
+#: plugins/check_http.c:1327
 msgid ""
 "the 5-second threshold, a STATE_WARNING will be returned. When an error "
 "occurs,"
 msgstr ""
 
-#: plugins/check_http.c:1317
+#: plugins/check_http.c:1328
 msgid "a STATE_CRITICAL will be returned."
 msgstr ""
 
-#: plugins/check_http.c:1320
+#: plugins/check_http.c:1331
 msgid ""
 "When the certificate of 'www.verisign.com' is valid for more than 14 days,"
 msgstr ""
 
-#: plugins/check_http.c:1321
+#: plugins/check_http.c:1332
 msgid ""
 "a STATE_OK is returned. When the certificate is still valid, but for less "
 "than"
 msgstr ""
 
-#: plugins/check_http.c:1322
+#: plugins/check_http.c:1333
 msgid ""
 "14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when"
 msgstr ""
 
-#: plugins/check_http.c:1323
+#: plugins/check_http.c:1334
 msgid "the certificate is expired."
 msgstr ""
 
-#: plugins/check_ldap.c:132
+#: plugins/check_ldap.c:136
 #, c-format
 msgid "Could not connect to the server at port %i\n"
 msgstr ""
 
-#: plugins/check_ldap.c:141
+#: plugins/check_ldap.c:145
 #, c-format
 msgid "Could not set protocol version %d\n"
 msgstr ""
 
-#: plugins/check_ldap.c:156
+#: plugins/check_ldap.c:160
 #, c-format
 msgid "Could not init TLS at port %i!\n"
 msgstr ""
 
-#: plugins/check_ldap.c:160
+#: plugins/check_ldap.c:164
 #, c-format
 msgid "TLS not supported by the libraries!\n"
 msgstr ""
 
-#: plugins/check_ldap.c:180
+#: plugins/check_ldap.c:184
 #, c-format
 msgid "Could not init startTLS at port %i!\n"
 msgstr ""
 
-#: plugins/check_ldap.c:184
+#: plugins/check_ldap.c:188
 #, c-format
 msgid "startTLS not supported by the library, needs LDAPv3!\n"
 msgstr ""
 
-#: plugins/check_ldap.c:194
+#: plugins/check_ldap.c:198
 #, c-format
 msgid "Could not bind to the ldap-server\n"
 msgstr ""
 
-#: plugins/check_ldap.c:203
+#: plugins/check_ldap.c:207
 #, c-format
 msgid "Could not search/find objectclasses in %s\n"
 msgstr ""
 
-#: plugins/check_ldap.c:226
+#: plugins/check_ldap.c:230
 #, c-format
 msgid "LDAP %s - %.3f seconds response time|%s\n"
 msgstr ""
 
-#: plugins/check_ldap.c:338 plugins/check_ldap.c:345
+#: plugins/check_ldap.c:342 plugins/check_ldap.c:349
 #, c-format
 msgid "%s cannot be combined with %s"
 msgstr ""
 
-#: plugins/check_ldap.c:351 plugins/check_ping.c:241
+#: plugins/check_ldap.c:355 plugins/check_ping.c:250
 msgid "IPv6 support not available\n"
 msgstr ""
 
-#: plugins/check_ldap.c:374
+#: plugins/check_ldap.c:378
 msgid "Please specify the host name\n"
 msgstr ""
 
-#: plugins/check_ldap.c:377
+#: plugins/check_ldap.c:381
 msgid "Please specify the LDAP base\n"
 msgstr ""
 
-#: plugins/check_ldap.c:405
+#: plugins/check_ldap.c:410
 msgid "ldap attribute to search (default: \"(objectclass=*)\""
 msgstr ""
 
-#: plugins/check_ldap.c:407
+#: plugins/check_ldap.c:412
 msgid "ldap base (eg. ou=my unit, o=my org, c=at"
 msgstr ""
 
-#: plugins/check_ldap.c:409
+#: plugins/check_ldap.c:414
 msgid "ldap bind DN (if required)"
 msgstr ""
 
-#: plugins/check_ldap.c:411
+#: plugins/check_ldap.c:416
 msgid "ldap password (if required)"
 msgstr ""
 
-#: plugins/check_ldap.c:413
+#: plugins/check_ldap.c:418
 msgid "use starttls mechanism introduced in protocol version 3"
 msgstr ""
 
-#: plugins/check_ldap.c:415
-#, c-format
-msgid "use ldaps (ldap v2 ssl method). this also sets the default port to %s"
+#: plugins/check_ldap.c:420
+msgid "use ldaps (ldap v2 ssl method). this also sets the default port to"
 msgstr ""
 
-#: plugins/check_ldap.c:419
+#: plugins/check_ldap.c:424
 msgid "use ldap protocol version 2"
 msgstr ""
 
-#: plugins/check_ldap.c:421
+#: plugins/check_ldap.c:426
 msgid "use ldap protocol version 3"
 msgstr ""
 
-#: plugins/check_ldap.c:431
-msgid "Note:"
+#: plugins/check_ldap.c:427
+msgid "default protocol version:"
 msgstr ""
 
-#: plugins/check_ldap.c:432
+#: plugins/check_ldap.c:438
 msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be"
 msgstr ""
 
-#: plugins/check_ldap.c:433
+#: plugins/check_ldap.c:439
 #, c-format
 msgid ""
-"implied (using default port %i) unless --port=636 is specified. In that case "
-"%s"
+" implied (using default port %i) unless --port=636 is specified. In that "
+"case\n"
 msgstr ""
 
-#: plugins/check_ldap.c:434
+#: plugins/check_ldap.c:440
 msgid "'SSL on connect' will be used no matter how the plugin was called."
 msgstr ""
 
-#: plugins/check_ldap.c:435
+#: plugins/check_ldap.c:441
 msgid ""
 "This detection is deprecated, please use 'check_ldap' with the '--starttls' "
 "or '--ssl' flags"
 msgstr ""
 
-#: plugins/check_ldap.c:436
+#: plugins/check_ldap.c:442
 msgid "to define the behaviour explicitly instead."
 msgstr ""
 
-#: plugins/check_load.c:94
+#: plugins/check_load.c:91
 msgid "Warning threshold must be float or float triplet!\n"
 msgstr ""
 
-#: plugins/check_load.c:136 plugins/check_load.c:152
+#: plugins/check_load.c:136 plugins/check_load.c:152 plugins/check_procs.c:176
 #, c-format
 msgid "Error opening %s\n"
 msgstr ""
@@ -1627,19 +1653,19 @@
 msgid "This plugin tests the current system load average."
 msgstr ""
 
-#: plugins/check_load.c:315
+#: plugins/check_load.c:316
 msgid "Exit with WARNING status if load average exceeds WLOADn"
 msgstr ""
 
-#: plugins/check_load.c:317
+#: plugins/check_load.c:318
 msgid "Exit with CRITICAL status if load average exceed CLOADn"
 msgstr ""
 
-#: plugins/check_load.c:318
+#: plugins/check_load.c:319
 msgid "the load average format is the same used by \"uptime\" and \"w\""
 msgstr ""
 
-#: plugins/check_load.c:320
+#: plugins/check_load.c:321
 msgid "Divide the load averages by the number of CPUs (when possible)"
 msgstr ""
 
@@ -1700,109 +1726,108 @@
 msgid "two variables recorded in an MRTG log file."
 msgstr ""
 
-#: plugins/check_mrtg.c:335
+#: plugins/check_mrtg.c:336
 msgid "The MRTG log file containing the data you want to monitor"
 msgstr ""
 
-#: plugins/check_mrtg.c:337
+#: plugins/check_mrtg.c:338
 msgid "Minutes before MRTG data is considered to be too old"
 msgstr ""
 
-#: plugins/check_mrtg.c:339
+#: plugins/check_mrtg.c:340
 msgid "Should we check average or maximum values?"
 msgstr ""
 
-#: plugins/check_mrtg.c:341
+#: plugins/check_mrtg.c:342
 msgid "Which variable set should we inspect? (1 or 2)"
 msgstr ""
 
-#: plugins/check_mrtg.c:343
+#: plugins/check_mrtg.c:344
 msgid "Threshold value for data to result in WARNING status"
 msgstr ""
 
-#: plugins/check_mrtg.c:345
+#: plugins/check_mrtg.c:346
 msgid "Threshold value for data to result in CRITICAL status"
 msgstr ""
 
-#: plugins/check_mrtg.c:347
+#: plugins/check_mrtg.c:348
 msgid "Type label for data (Examples: Conns, \"Processor Load\", In, Out)"
 msgstr ""
 
-#: plugins/check_mrtg.c:349
+#: plugins/check_mrtg.c:350
 msgid "Option units label for data (Example: Packets/Sec, Errors/Sec,"
 msgstr ""
 
-#: plugins/check_mrtg.c:350
+#: plugins/check_mrtg.c:351
 #, c-format
 msgid "\"Bytes Per Second\", \"%% Utilization\")"
 msgstr ""
 
-#: plugins/check_mrtg.c:352
+#: plugins/check_mrtg.c:354
 msgid ""
 "If the value exceeds the <vwl> threshold, a WARNING status is returned. If"
 msgstr ""
 
-#: plugins/check_mrtg.c:353
+#: plugins/check_mrtg.c:355
 msgid ""
 "the value exceeds the <vcl> threshold, a CRITICAL status is returned.  If"
 msgstr ""
 
-#: plugins/check_mrtg.c:354
+#: plugins/check_mrtg.c:356
 msgid "the data in the log file is older than <expire_minutes> old, a WARNING"
 msgstr ""
 
-#: plugins/check_mrtg.c:355
+#: plugins/check_mrtg.c:357
 msgid "status is returned and a warning message is printed."
 msgstr ""
 
-#: plugins/check_mrtg.c:357
+#: plugins/check_mrtg.c:360
 msgid ""
 "This plugin is useful for monitoring MRTG data that does not correspond to"
 msgstr ""
 
-#: plugins/check_mrtg.c:358
+#: plugins/check_mrtg.c:361
 msgid ""
 "bandwidth usage.  (Use the check_mrtgtraf plugin for monitoring bandwidth)."
 msgstr ""
 
-#: plugins/check_mrtg.c:359
+#: plugins/check_mrtg.c:362
 msgid ""
 "It can be used to monitor any kind of data that MRTG is monitoring - errors,"
 msgstr ""
 
-#: plugins/check_mrtg.c:360
+#: plugins/check_mrtg.c:363
 msgid ""
 "packets/sec, etc.  I use MRTG in conjuction with the Novell NLM that allows"
 msgstr ""
 
-#: plugins/check_mrtg.c:361
+#: plugins/check_mrtg.c:364
 msgid ""
 "me to track processor utilization, user connections, drive space, etc and"
 msgstr ""
 
-#: plugins/check_mrtg.c:362
+#: plugins/check_mrtg.c:365
 msgid "this plugin works well for monitoring that kind of data as well."
 msgstr ""
 
-#: plugins/check_mrtg.c:365
+#: plugins/check_mrtg.c:368
 msgid ""
 "- This plugin only monitors one of the two variables stored in the MRTG log"
 msgstr ""
 
-#: plugins/check_mrtg.c:366
-msgid "  file.  If you want to monitor both values you will have to define two"
+#: plugins/check_mrtg.c:369
+msgid "file.  If you want to monitor both values you will have to define two"
 msgstr ""
 
-#: plugins/check_mrtg.c:367
-msgid ""
-"  commands with different values for the <variable> argument.  Of course,"
+#: plugins/check_mrtg.c:370
+msgid "commands with different values for the <variable> argument.  Of course,"
 msgstr ""
 
-#: plugins/check_mrtg.c:368
+#: plugins/check_mrtg.c:371
 msgid "you can always hack the code to make this plugin work for you..."
 msgstr ""
 
-#: plugins/check_mrtg.c:369
+#: plugins/check_mrtg.c:372
 msgid ""
 "- MRTG stands for the Multi Router Traffic Grapher.  It can be downloaded "
 "from"
@@ -1851,625 +1876,702 @@
 msgid "the <iwl> or <owl> thresholds (in Bytes/sec), a WARNING status results."
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:355
+#: plugins/check_mrtgtraf.c:356
 msgid "File to read log from"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:357
+#: plugins/check_mrtgtraf.c:358
 msgid "Minutes after which log expires"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:359
+#: plugins/check_mrtgtraf.c:360
 msgid "Test average or maximum"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:361
+#: plugins/check_mrtgtraf.c:362
 msgid "Warning threshold pair <incoming>,<outgoing>"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:363
+#: plugins/check_mrtgtraf.c:364
 msgid "Critical threshold pair <incoming>,<outgoing>"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:366
+#: plugins/check_mrtgtraf.c:368
 msgid ""
 "- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:368
+#: plugins/check_mrtgtraf.c:370
 msgid "- While MRTG can monitor things other than traffic rates, this"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:369
+#: plugins/check_mrtgtraf.c:371
 msgid "  plugin probably won't work with much else without modification."
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:370
+#: plugins/check_mrtgtraf.c:372
 msgid "- The calculated i/o rates are a little off from what MRTG actually"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:371
+#: plugins/check_mrtgtraf.c:373
 msgid "  reports.  I'm not sure why this is right now, but will look into it"
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:372
+#: plugins/check_mrtgtraf.c:374
 msgid "  for future enhancements of this plugin."
 msgstr ""
 
-#: plugins/check_mrtgtraf.c:382
+#: plugins/check_mrtgtraf.c:387
 #, c-format
 msgid "Usage"
 msgstr ""
 
-#: plugins/check_mysql.c:129
+#: plugins/check_mysql.c:130
 #, c-format
 msgid "slave query error: %s\n"
 msgstr ""
 
-#: plugins/check_mysql.c:136
+#: plugins/check_mysql.c:137
 #, c-format
 msgid "slave store_result error: %s\n"
 msgstr ""
 
-#: plugins/check_mysql.c:142
+#: plugins/check_mysql.c:143
 msgid "No slaves defined"
 msgstr ""
 
-#: plugins/check_mysql.c:150
+#: plugins/check_mysql.c:151
 #, c-format
 msgid "slave fetch row error: %s\n"
 msgstr ""
 
-#: plugins/check_mysql.c:155
+#: plugins/check_mysql.c:156
 #, c-format
 msgid "Slave running: %s"
 msgstr ""
 
-#: plugins/check_mysql.c:373
+#: plugins/check_mysql.c:384
 msgid "This program tests connections to a mysql server"
 msgstr ""
 
-#: plugins/check_mysql.c:384
+#: plugins/check_mysql.c:395
+msgid "Use the specified socket (has no effect if -H is used)"
+msgstr ""
+
+#: plugins/check_mysql.c:398
 msgid "Check database with indicated name"
 msgstr ""
 
-#: plugins/check_mysql.c:386
+#: plugins/check_mysql.c:400
 msgid "Connect using the indicated username"
 msgstr ""
 
-#: plugins/check_mysql.c:388
+#: plugins/check_mysql.c:402
 msgid "Use the indicated password to authenticate the connection"
 msgstr ""
 
-#: plugins/check_mysql.c:389
-msgid "==> IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!! <=="
+#: plugins/check_mysql.c:403
+msgid "IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!"
 msgstr ""
 
-#: plugins/check_mysql.c:390
-msgid "Your clear-text password will be visible as a process table entry"
+#: plugins/check_mysql.c:404
+msgid "Your clear-text password could be visible as a process table entry"
 msgstr ""
 
-#: plugins/check_mysql.c:392
+#: plugins/check_mysql.c:406
 msgid "Check if the slave thread is running properly."
 msgstr ""
 
-#: plugins/check_mysql.c:394
-msgid ""
-"Exit with WARNING status if slave server is more than INTEGER seconds behind "
-"master"
+#: plugins/check_mysql.c:408
+msgid "Exit with WARNING status if slave server is more than INTEGER seconds"
+msgstr ""
+
+#: plugins/check_mysql.c:409 plugins/check_mysql.c:412
+msgid "behind master"
+msgstr ""
+
+#: plugins/check_mysql.c:411
+msgid "Exit with CRITICAL status if slave server is more then INTEGER seconds"
 msgstr ""
 
-#: plugins/check_mysql.c:396
+#: plugins/check_mysql.c:415
 msgid ""
-"Exit with CRITICAL status if slave server is more then INTEGER seconds "
-"behind master"
+"There are no required arguments. By default, the local database is checked"
 msgstr ""
 
-#: plugins/check_mysql.c:397
-msgid "There are no required arguments. By default, the local database with"
+#: plugins/check_mysql.c:416
+msgid ""
+"using the default unix socket. You can force TCP on localhost by using an"
 msgstr ""
 
-#: plugins/check_mysql.c:398
-#, c-format
-msgid "a server listening on MySQL standard port %d will be checked\n"
+#: plugins/check_mysql.c:417
+msgid "IP address or FQDN ('localhost' will use the socket as well)."
 msgstr ""
 
-#: plugins/check_nagios.c:107
+#: plugins/check_nagios.c:108
 msgid "Cannot open status log for reading!"
 msgstr ""
 
-#: plugins/check_nagios.c:157
+#: plugins/check_nagios.c:158
 #, c-format
 msgid "Found process: %s %s\n"
 msgstr ""
 
-#: plugins/check_nagios.c:171
+#: plugins/check_nagios.c:172
 msgid "Could not locate a running Nagios process!"
 msgstr ""
 
-#: plugins/check_nagios.c:175
+#: plugins/check_nagios.c:176
 msgid "Cannot parse Nagios log file for valid time"
 msgstr ""
 
-#: plugins/check_nagios.c:186 plugins/check_procs.c:307
+#: plugins/check_nagios.c:187 plugins/check_procs.c:330
 #, c-format
 msgid "%d process"
 msgid_plural "%d processes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: plugins/check_nagios.c:189
+#: plugins/check_nagios.c:190
 #, c-format
 msgid "status log updated %d second ago"
 msgid_plural "status log updated %d seconds ago"
 msgstr[0] ""
 msgstr[1] ""
 
-#: plugins/check_nagios.c:226 plugins/check_nagios.c:255
+#: plugins/check_nagios.c:227 plugins/check_nagios.c:256
 msgid "Expiration time must be an integer (seconds)\n"
 msgstr ""
 
-#: plugins/check_nagios.c:267
+#: plugins/check_nagios.c:268
 msgid "You must provide the status_log\n"
 msgstr ""
 
-#: plugins/check_nagios.c:270
+#: plugins/check_nagios.c:271
 msgid "You must provide a process string\n"
 msgstr ""
 
-#: plugins/check_nagios.c:284
+#: plugins/check_nagios.c:285
 msgid ""
 "This plugin checks the status of the Nagios process on the local machine"
 msgstr ""
 
-#: plugins/check_nagios.c:285
+#: plugins/check_nagios.c:286
 msgid ""
 "The plugin will check to make sure the Nagios status log is no older than"
 msgstr ""
 
-#: plugins/check_nagios.c:286
+#: plugins/check_nagios.c:287
 msgid "the number of minutes specified by the expires option."
 msgstr ""
 
-#: plugins/check_nagios.c:287
+#: plugins/check_nagios.c:288
 msgid ""
 "It also checks the process table for a process matching the command argument."
 msgstr ""
 
-#: plugins/check_nagios.c:296
+#: plugins/check_nagios.c:298
 msgid "Name of the log file to check"
 msgstr ""
 
-#: plugins/check_nagios.c:298
+#: plugins/check_nagios.c:300
 msgid "Minutes aging after which logfile is considered stale"
 msgstr ""
 
-#: plugins/check_nagios.c:300
+#: plugins/check_nagios.c:302
 msgid "Substring to search for in process arguments"
 msgstr ""
 
-#: plugins/check_nt.c:141
+#: plugins/check_nt.c:144
 #, c-format
 msgid "Wrong client version - running: %s, required: %s"
 msgstr ""
 
-#: plugins/check_nt.c:152 plugins/check_nt.c:212
+#: plugins/check_nt.c:155 plugins/check_nt.c:215
 msgid "missing -l parameters"
 msgstr ""
 
-#: plugins/check_nt.c:154
+#: plugins/check_nt.c:157
 msgid "wrong -l parameter."
 msgstr ""
 
-#: plugins/check_nt.c:158
+#: plugins/check_nt.c:161
 msgid "CPU Load"
 msgstr ""
 
-#: plugins/check_nt.c:181
+#: plugins/check_nt.c:184
 #, c-format
 msgid " %lu%% (%lu min average)"
 msgstr ""
 
-#: plugins/check_nt.c:183
+#: plugins/check_nt.c:186
 #, c-format
 msgid " '%lu min avg Load'=%lu%%;%lu;%lu;0;100"
 msgstr ""
 
-#: plugins/check_nt.c:193
+#: plugins/check_nt.c:196
 msgid "not enough values for -l parameters"
 msgstr ""
 
-#: plugins/check_nt.c:205
+#: plugins/check_nt.c:208
 #, c-format
 msgid "System Uptime - %u day(s) %u hour(s) %u minute(s)"
 msgstr ""
 
-#: plugins/check_nt.c:214
+#: plugins/check_nt.c:217
 msgid "wrong -l argument"
 msgstr ""
 
-#: plugins/check_nt.c:225
+#: plugins/check_nt.c:228
 #, c-format
 msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)"
 msgstr ""
 
-#: plugins/check_nt.c:228
+#: plugins/check_nt.c:231
 #, c-format
 msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f"
 msgstr ""
 
-#: plugins/check_nt.c:242
+#: plugins/check_nt.c:245
 msgid "Free disk space : Invalid drive "
 msgstr ""
 
-#: plugins/check_nt.c:252
+#: plugins/check_nt.c:255
 msgid "No service/process specified"
 msgstr ""
 
-#: plugins/check_nt.c:276
+#: plugins/check_nt.c:279
 #, c-format
 msgid ""
 "Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)"
 msgstr ""
 
-#: plugins/check_nt.c:279
+#: plugins/check_nt.c:282
 #, c-format
 msgid "'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f"
 msgstr ""
 
-#: plugins/check_nt.c:315 plugins/check_nt.c:401
+#: plugins/check_nt.c:318 plugins/check_nt.c:404 plugins/check_nt.c:434
 msgid "No counter specified"
 msgstr ""
 
-#: plugins/check_nt.c:348
+#: plugins/check_nt.c:351
 msgid "Minimum value contains non-numbers"
 msgstr ""
 
-#: plugins/check_nt.c:352
+#: plugins/check_nt.c:355
 msgid "Maximum value contains non-numbers"
 msgstr ""
 
-#: plugins/check_nt.c:359
+#: plugins/check_nt.c:362
 msgid "No unit counter specified"
 msgstr ""
 
-#: plugins/check_nt.c:431
+#: plugins/check_nt.c:449
 msgid "Please specify a variable to check"
 msgstr ""
 
-#: plugins/check_nt.c:513
+#: plugins/check_nt.c:530
 msgid "Server port must be an integer\n"
 msgstr ""
 
-#: plugins/check_nt.c:566
+#: plugins/check_nt.c:585
 msgid "None"
 msgstr ""
 
-#: plugins/check_nt.c:579
+#: plugins/check_nt.c:598
 msgid "could not fetch information from server\n"
 msgstr ""
 
-#: plugins/check_nt.c:623
+#: plugins/check_nt.c:642
 msgid "This plugin collects data from the NSClient service running on a"
 msgstr ""
 
-#: plugins/check_nt.c:624
+#: plugins/check_nt.c:643
 msgid "Windows NT/2000/XP/2003 server."
 msgstr ""
 
-#: plugins/check_nt.c:634
+#: plugins/check_nt.c:654
 msgid "Name of the host to check"
 msgstr ""
 
-#: plugins/check_nt.c:636
+#: plugins/check_nt.c:656
 msgid "Optional port number (default: "
 msgstr ""
 
-#: plugins/check_nt.c:639
+#: plugins/check_nt.c:659
 msgid "Password needed for the request"
 msgstr ""
 
-#: plugins/check_nt.c:641 plugins/check_nwstat.c:1664
-#: plugins/check_overcr.c:435
+#: plugins/check_nt.c:661 plugins/check_nwstat.c:1665
+#: plugins/check_overcr.c:436
 msgid "Threshold which will result in a warning status"
 msgstr ""
 
-#: plugins/check_nt.c:643 plugins/check_nwstat.c:1666
-#: plugins/check_overcr.c:437
+#: plugins/check_nt.c:663 plugins/check_nwstat.c:1667
+#: plugins/check_overcr.c:438
 msgid "Threshold which will result in a critical status"
 msgstr ""
 
-#: plugins/check_nt.c:645
+#: plugins/check_nt.c:665
 msgid "Seconds before connection attempt times out (default: "
 msgstr ""
 
-#: plugins/check_nt.c:648
+#: plugins/check_nt.c:668
 msgid "Print this help screen"
 msgstr ""
 
-#: plugins/check_nt.c:650
+#: plugins/check_nt.c:670
 msgid "Print version information"
 msgstr ""
 
-#: plugins/check_nt.c:652
+#: plugins/check_nt.c:672
 msgid "Variable to check"
 msgstr ""
 
-#: plugins/check_nt.c:653
+#: plugins/check_nt.c:673
 msgid "Valid variables are:"
 msgstr ""
 
-#: plugins/check_nt.c:655
+#: plugins/check_nt.c:675
 msgid "Get the NSClient version"
 msgstr ""
 
-#: plugins/check_nt.c:656
+#: plugins/check_nt.c:676
 msgid "If -l <version> is specified, will return warning if versions differ."
 msgstr ""
 
-#: plugins/check_nt.c:658
+#: plugins/check_nt.c:678
 msgid "Average CPU load on last x minutes."
 msgstr ""
 
-#: plugins/check_nt.c:659
+#: plugins/check_nt.c:679
 msgid "Request a -l parameter with the following syntax:"
 msgstr ""
 
-#: plugins/check_nt.c:660
+#: plugins/check_nt.c:680
 msgid "-l <minutes range>,<warning threshold>,<critical threshold>."
 msgstr ""
 
-#: plugins/check_nt.c:661
+#: plugins/check_nt.c:681
 msgid "<minute range> should be less than 24*60."
 msgstr ""
 
-#: plugins/check_nt.c:662
+#: plugins/check_nt.c:682
 msgid ""
 "Thresholds are percentage and up to 10 requests can be done in one shot."
 msgstr ""
 
-#: plugins/check_nt.c:665
+#: plugins/check_nt.c:685
 msgid "Get the uptime of the machine."
 msgstr ""
 
-#: plugins/check_nt.c:666
+#: plugins/check_nt.c:686
 msgid "No specific parameters. No warning or critical threshold"
 msgstr ""
 
-#: plugins/check_nt.c:668
+#: plugins/check_nt.c:688
 msgid "Size and percentage of disk use."
 msgstr ""
 
-#: plugins/check_nt.c:669
+#: plugins/check_nt.c:689
 msgid "Request a -l parameter containing the drive letter only."
 msgstr ""
 
-#: plugins/check_nt.c:670 plugins/check_nt.c:673
+#: plugins/check_nt.c:690 plugins/check_nt.c:693
 msgid "Warning and critical thresholds can be specified with -w and -c."
 msgstr ""
 
-#: plugins/check_nt.c:672
+#: plugins/check_nt.c:692
 msgid "Memory use."
 msgstr ""
 
-#: plugins/check_nt.c:675
+#: plugins/check_nt.c:695
 msgid "Check the state of one or several services."
 msgstr ""
 
-#: plugins/check_nt.c:676 plugins/check_nt.c:685
+#: plugins/check_nt.c:696 plugins/check_nt.c:705
 msgid "Request a -l parameters with the following syntax:"
 msgstr ""
 
-#: plugins/check_nt.c:677
+#: plugins/check_nt.c:697
 msgid "-l <service1>,<service2>,<service3>,..."
 msgstr ""
 
-#: plugins/check_nt.c:678
+#: plugins/check_nt.c:698
 msgid "You can specify -d SHOWALL in case you want to see working services"
 msgstr ""
 
-#: plugins/check_nt.c:679
+#: plugins/check_nt.c:699
 msgid "in the returned string."
 msgstr ""
 
-#: plugins/check_nt.c:681
+#: plugins/check_nt.c:701
 msgid "Check if one or several process are running."
 msgstr ""
 
-#: plugins/check_nt.c:682
+#: plugins/check_nt.c:702
 msgid "Same syntax as SERVICESTATE."
 msgstr ""
 
-#: plugins/check_nt.c:684
+#: plugins/check_nt.c:704
 msgid "Check any performance counter of Windows NT/2000."
 msgstr ""
 
-#: plugins/check_nt.c:686
+#: plugins/check_nt.c:706
 msgid "-l \"\\\\<performance object>\\\\counter\",\"<description>"
 msgstr ""
 
-#: plugins/check_nt.c:687
+#: plugins/check_nt.c:707
 msgid "The <description> parameter is optional and is given to a printf "
 msgstr ""
 
-#: plugins/check_nt.c:688
+#: plugins/check_nt.c:708
 msgid "output command which requires a float parameter."
 msgstr ""
 
-#: plugins/check_nt.c:689
+#: plugins/check_nt.c:709
 #, c-format
 msgid "If <description> does not include \"%%\", it is used as a label."
 msgstr ""
 
-#: plugins/check_nt.c:690
+#: plugins/check_nt.c:710 plugins/check_nt.c:725
 msgid "Some examples:"
 msgstr ""
 
-#: plugins/check_nt.c:694
+#: plugins/check_nt.c:714
+msgid "Check any performance counter object of Windows NT/2000."
+msgstr ""
+
+#: plugins/check_nt.c:715
+msgid ""
+"Syntax: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object>"
+msgstr ""
+
+#: plugins/check_nt.c:716
+msgid "<counter object> is a Windows Perfmon Counter object (eg. Process),"
+msgstr ""
+
+#: plugins/check_nt.c:717
+msgid "if it is two words, it should be enclosed in quotes"
+msgstr ""
+
+#: plugins/check_nt.c:718
+msgid "The returned results will be a comma-separated list of instances on "
+msgstr ""
+
+#: plugins/check_nt.c:719
+msgid " the selected computer for that object."
+msgstr ""
+
+#: plugins/check_nt.c:720
+msgid ""
+"The purpose of this is to be run from command line to determine what "
+"instances"
+msgstr ""
+
+#: plugins/check_nt.c:721
+msgid ""
+" are available for monitoring without having to log onto the Windows server"
+msgstr ""
+
+#: plugins/check_nt.c:722
+msgid "  to run Perfmon directly."
+msgstr ""
+
+#: plugins/check_nt.c:723
+msgid "It can also be used in scripts that automatically create Nagios service"
+msgstr ""
+
+#: plugins/check_nt.c:724
+msgid " configuration files."
+msgstr ""
+
+#: plugins/check_nt.c:726
+msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process"
+msgstr ""
+
+#: plugins/check_nt.c:729
 msgid ""
 "- The NSClient service should be running on the server to get any information"
 msgstr ""
 
-#: plugins/check_nt.c:696
+#: plugins/check_nt.c:731
 msgid "- Critical thresholds should be lower than warning thresholds"
 msgstr ""
 
-#: plugins/check_nt.c:697
+#: plugins/check_nt.c:732
 msgid "- Default port 1248 is sometimes in use by other services. The error"
 msgstr ""
 
-#: plugins/check_nt.c:698
+#: plugins/check_nt.c:733
 msgid ""
 "output when this happens contains \"Cannot map xxxxx to protocol number\"."
 msgstr ""
 
-#: plugins/check_nt.c:699
+#: plugins/check_nt.c:734
 msgid "One fix for this is to change the port to something else on check_nt "
 msgstr ""
 
-#: plugins/check_nt.c:700
+#: plugins/check_nt.c:735
 msgid "and on the client service it's connecting to."
 msgstr ""
 
-#: plugins/check_ntp.c:804 plugins/check_ntp_peer.c:586
-#: plugins/check_ntp_time.c:563
+#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:592
+#: plugins/check_ntp_time.c:566
+#, c-format
 msgid "NTP CRITICAL:"
 msgstr ""
 
-#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:589
-#: plugins/check_ntp_time.c:566
+#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:595
+#: plugins/check_ntp_time.c:569
+#, c-format
 msgid "NTP WARNING:"
 msgstr ""
 
-#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:592
-#: plugins/check_ntp_time.c:569
+#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:598
+#: plugins/check_ntp_time.c:572
+#, c-format
 msgid "NTP OK:"
 msgstr ""
 
-#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:595
-#: plugins/check_ntp_time.c:572
+#: plugins/check_ntp.c:816 plugins/check_ntp_peer.c:601
+#: plugins/check_ntp_time.c:575
+#, c-format
 msgid "NTP UNKNOWN:"
 msgstr ""
 
-#: plugins/check_ntp.c:817 plugins/check_ntp_peer.c:602
-#: plugins/check_ntp_time.c:576
+#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:610
+#: plugins/check_ntp_time.c:579
 msgid "Offset unknown"
 msgstr ""
 
-#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:605
-#: plugins/check_ntp_time.c:579
+#: plugins/check_ntp.c:823 plugins/check_ntp_peer.c:613
+#: plugins/check_ntp_time.c:582
 msgid "Offset"
 msgstr ""
 
-#: plugins/check_ntp.c:841 plugins/check_ntp_peer.c:630
+#: plugins/check_ntp.c:844 plugins/check_ntp_peer.c:638
 msgid "This plugin checks the selected ntp server"
 msgstr ""
 
-#: plugins/check_ntp.c:849 plugins/check_ntp_peer.c:640
-#: plugins/check_ntp_time.c:604
+#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:649
+#: plugins/check_ntp_time.c:608
 msgid "Offset to result in warning status (seconds)"
 msgstr ""
 
-#: plugins/check_ntp.c:851 plugins/check_ntp_peer.c:642
-#: plugins/check_ntp_time.c:606
+#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:651
+#: plugins/check_ntp_time.c:610
 msgid "Offset to result in critical status (seconds)"
 msgstr ""
 
-#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:648
+#: plugins/check_ntp.c:857 plugins/check_ntp_peer.c:657
 msgid "Warning threshold for jitter"
 msgstr ""
 
-#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:650
+#: plugins/check_ntp.c:859 plugins/check_ntp_peer.c:659
 msgid "Critical threshold for jitter"
 msgstr ""
 
-#: plugins/check_ntp.c:867
+#: plugins/check_ntp.c:873
 msgid "Normal offset check:"
 msgstr ""
 
-#: plugins/check_ntp.c:869 plugins/check_ntp_peer.c:671
+#: plugins/check_ntp.c:876 plugins/check_ntp_peer.c:684
 msgid ""
 "Check jitter too, avoiding critical notifications if jitter isn't available"
 msgstr ""
 
-#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:672
+#: plugins/check_ntp.c:877 plugins/check_ntp_peer.c:685
 msgid "(See Notes above for more details on thresholds formats):"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:599
+#: plugins/check_ntp.c:882 plugins/check_ntp.c:889
+msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or"
+msgstr ""
+
+#: plugins/check_ntp.c:883 plugins/check_ntp.c:890
+msgid "check_ntp_time istead."
+msgstr ""
+
+#: plugins/check_ntp_peer.c:605
 msgid "Server not synchronized"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:638
+#: plugins/check_ntp_peer.c:607
+msgid "Server has the LI_ALARM bit set"
+msgstr ""
+
+#: plugins/check_ntp_peer.c:647
 msgid ""
 "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:644
+#: plugins/check_ntp_peer.c:653
 msgid "Warning threshold for stratum"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:646
+#: plugins/check_ntp_peer.c:655
 msgid "Critical threshold for stratum"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:656
+#: plugins/check_ntp_peer.c:664
 msgid "This plugin checks an NTP server independent of any commandline"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:657
+#: plugins/check_ntp_peer.c:665
 msgid "programs or external libraries."
 msgstr ""
 
-#: plugins/check_ntp_peer.c:658
+#: plugins/check_ntp_peer.c:668
 msgid "Use this plugin to check the health of an NTP server. It supports"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:659
+#: plugins/check_ntp_peer.c:669
 msgid "checking the offset with the sync peer, the jitter and stratum. This"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:660
+#: plugins/check_ntp_peer.c:670
 msgid "plugin will not check the clock offset between the local host and NTP"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:661
+#: plugins/check_ntp_peer.c:671
 msgid "server; please use check_ntp_time for that purpose."
 msgstr ""
 
-#: plugins/check_ntp_peer.c:669
+#: plugins/check_ntp_peer.c:681
 msgid "Simple NTP server check:"
 msgstr ""
 
-#: plugins/check_ntp_peer.c:674
+#: plugins/check_ntp_peer.c:688
 msgid "Check only stratum:"
 msgstr ""
 
-#: plugins/check_ntp_time.c:594
+#: plugins/check_ntp_time.c:597
 msgid "This plugin checks the clock offset with the ntp server"
 msgstr ""
 
-#: plugins/check_ntp_time.c:602
+#: plugins/check_ntp_time.c:606
 msgid "Returns UNKNOWN instead of CRITICAL if offset cannot be found"
 msgstr ""
 
-#: plugins/check_ntp_time.c:612
+#: plugins/check_ntp_time.c:615
 msgid "This plugin checks the clock offset between the local host and a"
 msgstr ""
 
-#: plugins/check_ntp_time.c:613
+#: plugins/check_ntp_time.c:616
 msgid "remote NTP server. It is independent of any commandline programs or"
 msgstr ""
 
-#: plugins/check_ntp_time.c:614
+#: plugins/check_ntp_time.c:617
 msgid "external libraries."
 msgstr ""
 
-#: plugins/check_ntp_time.c:615
+#: plugins/check_ntp_time.c:621
 msgid "If you'd rather want to monitor an NTP server, please use"
 msgstr ""
 
-#: plugins/check_ntp_time.c:616
+#: plugins/check_ntp_time.c:622
 msgid "check_ntp_peer."
 msgstr ""
 
@@ -2568,14 +2670,17 @@
 msgstr ""
 
 #: plugins/check_nwstat.c:564
+#, c-format
 msgid "CRITICAL - NRM Status is bad!"
 msgstr ""
 
 #: plugins/check_nwstat.c:569
+#, c-format
 msgid "Warning - NRM Status is suspect!"
 msgstr ""
 
 #: plugins/check_nwstat.c:572
+#, c-format
 msgid "OK - NRM Status is good!"
 msgstr ""
 
@@ -2635,10 +2740,12 @@
 msgstr ""
 
 #: plugins/check_nwstat.c:908
+#, c-format
 msgid "CRITICAL - Time not in sync with network!"
 msgstr ""
 
 #: plugins/check_nwstat.c:911
+#, c-format
 msgid "OK - Time in sync with network!"
 msgstr ""
 
@@ -2711,216 +2818,216 @@
 msgid "Novell server to gather the requested system information."
 msgstr ""
 
-#: plugins/check_nwstat.c:1617 plugins/check_overcr.c:439
+#: plugins/check_nwstat.c:1618 plugins/check_overcr.c:440
 msgid "Variable to check.  Valid variables include:"
 msgstr ""
 
-#: plugins/check_nwstat.c:1618
+#: plugins/check_nwstat.c:1619
 msgid "LOAD1     = 1 minute average CPU load"
 msgstr ""
 
-#: plugins/check_nwstat.c:1619
+#: plugins/check_nwstat.c:1620
 msgid "LOAD5     = 5 minute average CPU load"
 msgstr ""
 
-#: plugins/check_nwstat.c:1620
+#: plugins/check_nwstat.c:1621
 msgid "LOAD15    = 15 minute average CPU load"
 msgstr ""
 
-#: plugins/check_nwstat.c:1621
+#: plugins/check_nwstat.c:1622
 msgid "CSPROCS   = number of current service processes (NW 5.x only)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1622
+#: plugins/check_nwstat.c:1623
 msgid "ABENDS    = number of abended threads (NW 5.x only)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1623
+#: plugins/check_nwstat.c:1624
 msgid "UPTIME    = server uptime"
 msgstr ""
 
-#: plugins/check_nwstat.c:1624
+#: plugins/check_nwstat.c:1625
 msgid "LTCH      = percent long term cache hits"
 msgstr ""
 
-#: plugins/check_nwstat.c:1625
+#: plugins/check_nwstat.c:1626
 msgid "CBUFF     = current number of cache buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1626
+#: plugins/check_nwstat.c:1627
 msgid "CDBUFF    = current number of dirty cache buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1627
+#: plugins/check_nwstat.c:1628
 msgid "DCB       = dirty cache buffers as a percentage of the total"
 msgstr ""
 
-#: plugins/check_nwstat.c:1628
+#: plugins/check_nwstat.c:1629
 msgid "TCB       = dirty cache buffers as a percentage of the original"
 msgstr ""
 
-#: plugins/check_nwstat.c:1629
+#: plugins/check_nwstat.c:1630
 msgid "OFILES    = number of open files"
 msgstr ""
 
-#: plugins/check_nwstat.c:1630
+#: plugins/check_nwstat.c:1631
 msgid "    VMF<vol>  = MB of free space on Volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1631
+#: plugins/check_nwstat.c:1632
 msgid "    VMU<vol>  = MB used space on Volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1632
+#: plugins/check_nwstat.c:1633
 msgid "    VMP<vol>  = MB of purgeable space on Volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1633
+#: plugins/check_nwstat.c:1634
 msgid "    VPF<vol>  = percent free space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1634
+#: plugins/check_nwstat.c:1635
 msgid "    VKF<vol>  = KB of free space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1635
+#: plugins/check_nwstat.c:1636
 msgid "    VPP<vol>  = percent purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1636
+#: plugins/check_nwstat.c:1637
 msgid "    VKP<vol>  = KB of purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1637
+#: plugins/check_nwstat.c:1638
 msgid "    VPNP<vol> = percent not yet purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1638
+#: plugins/check_nwstat.c:1639
 msgid "    VKNP<vol> = KB of not yet purgeable space on volume <vol>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1639
+#: plugins/check_nwstat.c:1640
 msgid "    LRUM      = LRU sitting time in minutes"
 msgstr ""
 
-#: plugins/check_nwstat.c:1640
+#: plugins/check_nwstat.c:1641
 msgid "    LRUS      = LRU sitting time in seconds"
 msgstr ""
 
-#: plugins/check_nwstat.c:1641
+#: plugins/check_nwstat.c:1642
 msgid "    DSDB      = check to see if DS Database is open"
 msgstr ""
 
-#: plugins/check_nwstat.c:1642
+#: plugins/check_nwstat.c:1643
 msgid "    DSVER     = NDS version"
 msgstr ""
 
-#: plugins/check_nwstat.c:1643
+#: plugins/check_nwstat.c:1644
 msgid "    UPRB      = used packet receive buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1644
+#: plugins/check_nwstat.c:1645
 msgid "    PUPRB     = percent (of max) used packet receive buffers"
 msgstr ""
 
-#: plugins/check_nwstat.c:1645
+#: plugins/check_nwstat.c:1646
 msgid "    SAPENTRIES = number of entries in the SAP table"
 msgstr ""
 
-#: plugins/check_nwstat.c:1646
+#: plugins/check_nwstat.c:1647
 msgid "    SAPENTRIES<n> = number of entries in the SAP table for SAP type <n>"
 msgstr ""
 
-#: plugins/check_nwstat.c:1647
+#: plugins/check_nwstat.c:1648
 msgid "    TSYNC     = timesync status"
 msgstr ""
 
-#: plugins/check_nwstat.c:1648
+#: plugins/check_nwstat.c:1649
 msgid "    LOGINS    = check to see if logins are enabled"
 msgstr ""
 
-#: plugins/check_nwstat.c:1649
+#: plugins/check_nwstat.c:1650
 msgid "    CONNS     = number of currently licensed connections"
 msgstr ""
 
-#: plugins/check_nwstat.c:1650
+#: plugins/check_nwstat.c:1651
 msgid "    NRMH\t= NRM Summary Status"
 msgstr ""
 
-#: plugins/check_nwstat.c:1651
+#: plugins/check_nwstat.c:1652
 msgid "    NRMP<stat> = Returns the current value for a NRM health item"
 msgstr ""
 
-#: plugins/check_nwstat.c:1652
+#: plugins/check_nwstat.c:1653
 msgid "    NRMM<stat> = Returns the current memory stats from NRM"
 msgstr ""
 
-#: plugins/check_nwstat.c:1653
+#: plugins/check_nwstat.c:1654
 msgid "    NRMS<stat> = Returns the current Swapfile stats from NRM"
 msgstr ""
 
-#: plugins/check_nwstat.c:1654
+#: plugins/check_nwstat.c:1655
 msgid "    NSS1<stat> = Statistics from _Admin:Manage_NSS\\GeneralStats.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1655
+#: plugins/check_nwstat.c:1656
 msgid "    NSS3<stat> = Statistics from _Admin:Manage_NSS\\NameCache.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1656
+#: plugins/check_nwstat.c:1657
 msgid "    NSS4<stat> = Statistics from _Admin:Manage_NSS\\FileStats.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1657
+#: plugins/check_nwstat.c:1658
 msgid "    NSS5<stat> = Statistics from _Admin:Manage_NSS\\ObjectCache.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1658
+#: plugins/check_nwstat.c:1659
 msgid "    NSS6<stat> = Statistics from _Admin:Manage_NSS\\Thread.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1659
+#: plugins/check_nwstat.c:1660
 msgid ""
 "    NSS7<stat> = Statistics from _Admin:Manage_NSS\\AuthorizationCache.xml"
 msgstr ""
 
-#: plugins/check_nwstat.c:1660
+#: plugins/check_nwstat.c:1661
 msgid "    NLM:<nlm> = check if NLM is loaded and report version"
 msgstr ""
 
-#: plugins/check_nwstat.c:1661
+#: plugins/check_nwstat.c:1662
 msgid "                (e.g. NLM:TSANDS.NLM)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1668
+#: plugins/check_nwstat.c:1669
 msgid "Include server version string in results"
 msgstr ""
 
-#: plugins/check_nwstat.c:1674
+#: plugins/check_nwstat.c:1675
 msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG"
 msgstr ""
 
-#: plugins/check_nwstat.c:1675
+#: plugins/check_nwstat.c:1676
 msgid ""
 "  extension for NetWare be loaded on the Novell servers you wish to check."
 msgstr ""
 
-#: plugins/check_nwstat.c:1676
+#: plugins/check_nwstat.c:1677
 msgid "  (available from http://www.engr.wisc.edu/~drews/mrtg/)"
 msgstr ""
 
-#: plugins/check_nwstat.c:1677
+#: plugins/check_nwstat.c:1678
 msgid ""
 "- Values for critical thresholds should be lower than warning thresholds"
 msgstr ""
 
-#: plugins/check_nwstat.c:1678
+#: plugins/check_nwstat.c:1679
 msgid ""
 "  when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, "
 msgstr ""
 
-#: plugins/check_nwstat.c:1679
-msgid "  TCB, LRUS and LRUM.\n"
+#: plugins/check_nwstat.c:1680
+msgid "  TCB, LRUS and LRUM."
 msgstr ""
 
 #: plugins/check_overcr.c:127
@@ -2985,159 +3092,163 @@
 msgid "remote UNIX server in order to gather the requested system information."
 msgstr ""
 
-#: plugins/check_overcr.c:440
+#: plugins/check_overcr.c:441
 msgid "LOAD1         = 1 minute average CPU load"
 msgstr ""
 
-#: plugins/check_overcr.c:441
+#: plugins/check_overcr.c:442
 msgid "LOAD5         = 5 minute average CPU load"
 msgstr ""
 
-#: plugins/check_overcr.c:442
+#: plugins/check_overcr.c:443
 msgid "LOAD15        = 15 minute average CPU load"
 msgstr ""
 
-#: plugins/check_overcr.c:443
+#: plugins/check_overcr.c:444
 msgid "DPU<filesys>  = percent used disk space on filesystem <filesys>"
 msgstr ""
 
-#: plugins/check_overcr.c:444
+#: plugins/check_overcr.c:445
 msgid "PROC<process> = number of running processes with name <process>"
 msgstr ""
 
-#: plugins/check_overcr.c:445
+#: plugins/check_overcr.c:446
 msgid "NET<port>     = number of active connections on TCP port <port>"
 msgstr ""
 
-#: plugins/check_overcr.c:446
+#: plugins/check_overcr.c:447
 msgid "UPTIME        = system uptime in seconds"
 msgstr ""
 
 #: plugins/check_overcr.c:454
-msgid ""
-"For the available options, the critical threshold value should always be"
+msgid "This plugin requires that Eric Molitors' Over-CR collector daemon be"
 msgstr ""
 
 #: plugins/check_overcr.c:455
-msgid ""
-"higher than the warning threshold value, EXCEPT with the uptime variable"
+msgid "running on the remote server."
+msgstr ""
+
+#: plugins/check_overcr.c:456
+msgid "Over-CR can be downloaded from http://www.molitor.org/overcr"
 msgstr ""
 
 #: plugins/check_overcr.c:457
-msgid "This plugin requres that Eric Molitors' Over-CR collector daemon be"
+msgid "This plugin was tested with version 0.99.53 of the Over-CR collector"
 msgstr ""
 
-#: plugins/check_overcr.c:458
-msgid "running on the remote server."
+#: plugins/check_overcr.c:461
+msgid ""
+"For the available options, the critical threshold value should always be"
 msgstr ""
 
-#: plugins/check_overcr.c:460
-msgid "This plugin was tested with version 0.99.53 of the Over-CR collector"
+#: plugins/check_overcr.c:462
+msgid ""
+"higher than the warning threshold value, EXCEPT with the uptime variable"
 msgstr ""
 
-#: plugins/check_pgsql.c:173
+#: plugins/check_pgsql.c:174
 #, c-format
 msgid "CRITICAL - no connection to '%s' (%s).\n"
 msgstr ""
 
-#: plugins/check_pgsql.c:188
+#: plugins/check_pgsql.c:189
 #, c-format
 msgid " %s - database %s (%d sec.)|%s\n"
 msgstr ""
 
-#: plugins/check_pgsql.c:243 plugins/check_time.c:281 plugins/check_time.c:293
-#: plugins/check_users.c:168
+#: plugins/check_pgsql.c:244 plugins/check_time.c:281 plugins/check_time.c:293
+#: plugins/check_users.c:170
 msgid "Critical threshold must be a positive integer"
 msgstr ""
 
-#: plugins/check_pgsql.c:249 plugins/check_time.c:262 plugins/check_time.c:286
-#: plugins/check_users.c:174 plugins/check_users.c:184
-#: plugins/check_users.c:191
+#: plugins/check_pgsql.c:250 plugins/check_time.c:262 plugins/check_time.c:286
+#: plugins/check_users.c:176 plugins/check_users.c:186
+#: plugins/check_users.c:193
 msgid "Warning threshold must be a positive integer"
 msgstr ""
 
-#: plugins/check_pgsql.c:267
+#: plugins/check_pgsql.c:268
 msgid "Database name is not valid"
 msgstr ""
 
-#: plugins/check_pgsql.c:273
+#: plugins/check_pgsql.c:274
 msgid "User name is not valid"
 msgstr ""
 
-#: plugins/check_pgsql.c:410
+#: plugins/check_pgsql.c:411
 #, c-format
 msgid "Test whether a PostgreSQL Database is accepting connections."
 msgstr ""
 
-#: plugins/check_pgsql.c:423
+#: plugins/check_pgsql.c:425
 msgid "Database to check "
 msgstr ""
 
-#: plugins/check_pgsql.c:424
+#: plugins/check_pgsql.c:426
 #, c-format
 msgid "(default: %s)"
 msgstr ""
 
-#: plugins/check_pgsql.c:426
+#: plugins/check_pgsql.c:428
 msgid "Login name of user"
 msgstr ""
 
-#: plugins/check_pgsql.c:428
+#: plugins/check_pgsql.c:430
 msgid "Password (BIG SECURITY ISSUE)"
 msgstr ""
 
-#: plugins/check_pgsql.c:437
+#: plugins/check_pgsql.c:439
 msgid "All parameters are optional."
 msgstr ""
 
-#: plugins/check_pgsql.c:438
+#: plugins/check_pgsql.c:440
 msgid ""
 "This plugin tests a PostgreSQL DBMS to determine whether it is active and"
 msgstr ""
 
-#: plugins/check_pgsql.c:439
+#: plugins/check_pgsql.c:441
 msgid "accepting queries. In its current operation, it simply connects to the"
 msgstr ""
 
-#: plugins/check_pgsql.c:440
+#: plugins/check_pgsql.c:442
 msgid ""
 "specified database, and then disconnects. If no database is specified, it"
 msgstr ""
 
-#: plugins/check_pgsql.c:441
+#: plugins/check_pgsql.c:443
 msgid ""
 "connects to the template1 database, which is present in every functioning"
 msgstr ""
 
-#: plugins/check_pgsql.c:442
+#: plugins/check_pgsql.c:444
 msgid "PostgreSQL DBMS."
 msgstr ""
 
-#: plugins/check_pgsql.c:443
+#: plugins/check_pgsql.c:446
 msgid ""
 "The plugin will connect to a local postmaster if no host is specified. To"
 msgstr ""
 
-#: plugins/check_pgsql.c:444
+#: plugins/check_pgsql.c:447
 msgid ""
 "connect to a remote host, be sure that the remote postmaster accepts TCP/IP"
 msgstr ""
 
-#: plugins/check_pgsql.c:445
+#: plugins/check_pgsql.c:448
 msgid "connections (start the postmaster with the -i option)."
 msgstr ""
 
-#: plugins/check_pgsql.c:446
+#: plugins/check_pgsql.c:450
 msgid ""
 "Typically, the nagios user (unless the --logname option is used) should be"
 msgstr ""
 
-#: plugins/check_pgsql.c:447
+#: plugins/check_pgsql.c:451
 msgid ""
 "able to connect to the database without a password. The plugin can also send"
 msgstr ""
 
-#: plugins/check_pgsql.c:448
+#: plugins/check_pgsql.c:452
 msgid "a password, but no effort is made to obsure or encrypt the password."
 msgstr ""
 
@@ -3155,384 +3266,378 @@
 msgid "PING %s - %sPacket loss = %d%%, RTA = %2.2f ms"
 msgstr ""
 
-#: plugins/check_ping.c:252
+#: plugins/check_ping.c:261
 msgid "Could not realloc() addresses\n"
 msgstr ""
 
-#: plugins/check_ping.c:267 plugins/check_ping.c:347
+#: plugins/check_ping.c:276 plugins/check_ping.c:356
 #, c-format
 msgid "<max_packets> (%s) must be a non-negative number\n"
 msgstr ""
 
-#: plugins/check_ping.c:301
+#: plugins/check_ping.c:310
 #, c-format
 msgid "<wpl> (%s) must be an integer percentage\n"
 msgstr ""
 
-#: plugins/check_ping.c:312
+#: plugins/check_ping.c:321
 #, c-format
 msgid "<cpl> (%s) must be an integer percentage\n"
 msgstr ""
 
-#: plugins/check_ping.c:323
+#: plugins/check_ping.c:332
 #, c-format
 msgid "<wrta> (%s) must be a non-negative number\n"
 msgstr ""
 
-#: plugins/check_ping.c:334
+#: plugins/check_ping.c:343
 #, c-format
 msgid "<crta> (%s) must be a non-negative number\n"
 msgstr ""
 
-#: plugins/check_ping.c:367
+#: plugins/check_ping.c:376
 #, c-format
 msgid ""
 "%s: Warning threshold must be integer or percentage!\n"
 "\n"
 msgstr ""
 
-#: plugins/check_ping.c:380
+#: plugins/check_ping.c:389
 #, c-format
 msgid "<wrta> was not set\n"
 msgstr ""
 
-#: plugins/check_ping.c:384
+#: plugins/check_ping.c:393
 #, c-format
 msgid "<crta> was not set\n"
 msgstr ""
 
-#: plugins/check_ping.c:388
+#: plugins/check_ping.c:397
 #, c-format
 msgid "<wpl> was not set\n"
 msgstr ""
 
-#: plugins/check_ping.c:392
+#: plugins/check_ping.c:401
 #, c-format
 msgid "<cpl> was not set\n"
 msgstr ""
 
-#: plugins/check_ping.c:396
+#: plugins/check_ping.c:405
 #, c-format
 msgid "<wrta> (%f) cannot be larger than <crta> (%f)\n"
 msgstr ""
 
-#: plugins/check_ping.c:400
+#: plugins/check_ping.c:409
 #, c-format
 msgid "<wpl> (%d) cannot be larger than <cpl> (%d)\n"
 msgstr ""
 
-#: plugins/check_ping.c:436
+#: plugins/check_ping.c:445
 #, c-format
 msgid "Cannot open stderr for %s\n"
 msgstr ""
 
-#: plugins/check_ping.c:485 plugins/check_ping.c:487
+#: plugins/check_ping.c:494 plugins/check_ping.c:496
 msgid "System call sent warnings to stderr "
 msgstr ""
 
-#: plugins/check_ping.c:514
+#: plugins/check_ping.c:523
 #, c-format
 msgid "CRITICAL - Network Unreachable (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:516
+#: plugins/check_ping.c:525
 #, c-format
 msgid "CRITICAL - Host Unreachable (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:518
+#: plugins/check_ping.c:527
 #, c-format
 msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:520
+#: plugins/check_ping.c:529
 #, c-format
 msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:522
+#: plugins/check_ping.c:531
 #, c-format
 msgid "CRITICAL - Network Prohibited (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:524
+#: plugins/check_ping.c:533
 #, c-format
 msgid "CRITICAL - Host Prohibited (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:526
+#: plugins/check_ping.c:535
 #, c-format
 msgid "CRITICAL - Packet Filtered (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:528
+#: plugins/check_ping.c:537
 #, c-format
 msgid "CRITICAL - Host not found (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:530
+#: plugins/check_ping.c:539
 #, c-format
 msgid "CRITICAL - Time to live exceeded (%s)"
 msgstr ""
 
-#: plugins/check_ping.c:537
+#: plugins/check_ping.c:546
 msgid "Unable to realloc warn_text"
 msgstr ""
 
-#: plugins/check_ping.c:554
+#: plugins/check_ping.c:563
 #, c-format
 msgid "Use ping to check connection statistics for a remote host."
 msgstr ""
 
-#: plugins/check_ping.c:565
+#: plugins/check_ping.c:575
 msgid "host to ping"
 msgstr ""
 
-#: plugins/check_ping.c:571
+#: plugins/check_ping.c:581
 msgid "number of ICMP ECHO packets to send"
 msgstr ""
 
-#: plugins/check_ping.c:572
+#: plugins/check_ping.c:582
 #, c-format
 msgid "(Default: %d)\n"
 msgstr ""
 
-#: plugins/check_ping.c:574
+#: plugins/check_ping.c:584
 msgid "show HTML in the plugin output (obsoleted by urlize)"
 msgstr ""
 
-#: plugins/check_ping.c:578
+#: plugins/check_ping.c:589
 msgid "THRESHOLD is <rta>,<pl>% where <rta> is the round trip average travel"
 msgstr ""
 
-#: plugins/check_ping.c:579
+#: plugins/check_ping.c:590
 msgid "time (ms) which triggers a WARNING or CRITICAL state, and <pl> is the"
 msgstr ""
 
-#: plugins/check_ping.c:580
+#: plugins/check_ping.c:591
 msgid "percentage of packet loss to trigger an alarm state."
 msgstr ""
 
-#: plugins/check_ping.c:584
+#: plugins/check_ping.c:594
 msgid ""
 "This plugin uses the ping command to probe the specified host for packet loss"
 msgstr ""
 
-#: plugins/check_ping.c:585
+#: plugins/check_ping.c:595
 msgid ""
 "(percentage) and round trip average (milliseconds). It can produce HTML "
 "output"
 msgstr ""
 
-#: plugins/check_ping.c:586
+#: plugins/check_ping.c:596
 msgid ""
 "linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in"
 msgstr ""
 
-#: plugins/check_ping.c:587
+#: plugins/check_ping.c:597
 msgid "the contrib area of the downloads section at http://www.nagios.org/"
 msgstr ""
 
-#: plugins/check_procs.c:155
+#: plugins/check_procs.c:162
 #, c-format
 msgid "CMD: %s\n"
 msgstr ""
 
-#: plugins/check_procs.c:261
+#: plugins/check_procs.c:282
 #, c-format
 msgid "Not parseable: %s"
 msgstr ""
 
-#: plugins/check_procs.c:270
+#: plugins/check_procs.c:292
 #, c-format
 msgid "System call sent warnings to stderr\n"
 msgstr ""
 
-#: plugins/check_procs.c:277
+#: plugins/check_procs.c:299
 #, c-format
 msgid "System call returned nonzero status\n"
 msgstr ""
 
-#: plugins/check_procs.c:282
+#: plugins/check_procs.c:305
 #, c-format
 msgid "Unable to read output\n"
 msgstr ""
 
-#: plugins/check_procs.c:299
+#: plugins/check_procs.c:322
 #, c-format
 msgid "%d warn out of "
 msgstr ""
 
-#: plugins/check_procs.c:304
+#: plugins/check_procs.c:327
 #, c-format
 msgid "%d crit, %d warn out of "
 msgstr ""
 
-#: plugins/check_procs.c:310
+#: plugins/check_procs.c:333
 #, c-format
 msgid " with %s"
 msgstr ""
 
-#: plugins/check_procs.c:385
+#: plugins/check_procs.c:413
 msgid "Critical Process Count must be an integer!"
 msgstr ""
 
-#: plugins/check_procs.c:397
+#: plugins/check_procs.c:425
 msgid "Warning Process Count must be an integer!"
 msgstr ""
 
-#: plugins/check_procs.c:405
+#: plugins/check_procs.c:433
 msgid "Parent Process ID must be an integer!"
 msgstr ""
 
-#: plugins/check_procs.c:411 plugins/check_procs.c:513
+#: plugins/check_procs.c:439 plugins/check_procs.c:553
 #, c-format
 msgid "%s%sSTATE = %s"
 msgstr ""
 
-#: plugins/check_procs.c:420
-#, c-format
-msgid "UID %s was not found"
+#: plugins/check_procs.c:448
+msgid "UID was not found"
 msgstr ""
 
-#: plugins/check_procs.c:426
-#, c-format
-msgid "User name %s was not found"
+#: plugins/check_procs.c:454
+msgid "User name was not found"
 msgstr ""
 
-#: plugins/check_procs.c:441
+#: plugins/check_procs.c:469
 #, c-format
 msgid "%s%scommand name '%s'"
 msgstr ""
 
-#: plugins/check_procs.c:460
+#: plugins/check_procs.c:497
 msgid "RSS must be an integer!"
 msgstr ""
 
-#: plugins/check_procs.c:467
+#: plugins/check_procs.c:504
 msgid "VSZ must be an integer!"
 msgstr ""
 
-#: plugins/check_procs.c:475
+#: plugins/check_procs.c:512
 msgid "PCPU must be a float!"
 msgstr ""
 
-#: plugins/check_procs.c:499
+#: plugins/check_procs.c:536
 msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!"
 msgstr ""
 
-#: plugins/check_procs.c:532
+#: plugins/check_procs.c:572
 #, c-format
 msgid "wmax (%d) cannot be greater than cmax (%d)\n"
 msgstr ""
 
-#: plugins/check_procs.c:536
+#: plugins/check_procs.c:576
 #, c-format
 msgid "wmin (%d) cannot be less than cmin (%d)\n"
 msgstr ""
 
-#: plugins/check_procs.c:673
+#: plugins/check_procs.c:713
 msgid ""
 "Checks all processes and generates WARNING or CRITICAL states if the "
 "specified"
 msgstr ""
 
-#: plugins/check_procs.c:674
+#: plugins/check_procs.c:714
 msgid ""
 "metric is outside the required threshold ranges. The metric defaults to "
 "number"
 msgstr ""
 
-#: plugins/check_procs.c:675
+#: plugins/check_procs.c:715
 msgid ""
 "of processes.  Search filters can be applied to limit the processes to check."
 msgstr ""
 
-#: plugins/check_procs.c:681
-msgid "Required Arguments:"
-msgstr ""
-
-#: plugins/check_procs.c:683
+#: plugins/check_procs.c:724
 msgid "Generate warning state if metric is outside this range"
 msgstr ""
 
-#: plugins/check_procs.c:685
+#: plugins/check_procs.c:726
 msgid "Generate critical state if metric is outside this range"
 msgstr ""
 
-#: plugins/check_procs.c:687
-msgid "Optional Arguments:"
-msgstr ""
-
-#: plugins/check_procs.c:689
+#: plugins/check_procs.c:728
 msgid "Check thresholds against metric. Valid types:"
 msgstr ""
 
-#: plugins/check_procs.c:690
+#: plugins/check_procs.c:729
 msgid "PROCS   - number of processes (default)"
 msgstr ""
 
-#: plugins/check_procs.c:691
+#: plugins/check_procs.c:730
 msgid "VSZ     - virtual memory size"
 msgstr ""
 
-#: plugins/check_procs.c:692
+#: plugins/check_procs.c:731
 msgid "RSS     - resident set memory size"
 msgstr ""
 
-#: plugins/check_procs.c:693
+#: plugins/check_procs.c:732
 msgid "CPU     - percentage cpu"
 msgstr ""
 
-#: plugins/check_procs.c:696
+#: plugins/check_procs.c:735
 msgid "ELAPSED - time elapsed in seconds"
 msgstr ""
 
-#: plugins/check_procs.c:701
+#: plugins/check_procs.c:740
 msgid "Extra information. Up to 3 verbosity levels"
 msgstr ""
 
-#: plugins/check_procs.c:705
+#: plugins/check_procs.c:745
 msgid "Only scan for processes that have, in the output of `ps`, one or"
 msgstr ""
 
-#: plugins/check_procs.c:706
+#: plugins/check_procs.c:746
 msgid "more of the status flags you specify (for example R, Z, S, RS,"
 msgstr ""
 
-#: plugins/check_procs.c:707
+#: plugins/check_procs.c:747
 msgid "RSZDT, plus others based on the output of your 'ps' command)."
 msgstr ""
 
-#: plugins/check_procs.c:709
+#: plugins/check_procs.c:749
 msgid "Only scan for children of the parent process ID indicated."
 msgstr ""
 
-#: plugins/check_procs.c:711
+#: plugins/check_procs.c:751
 msgid "Only scan for processes with vsz higher than indicated."
 msgstr ""
 
-#: plugins/check_procs.c:713
+#: plugins/check_procs.c:753
 msgid "Only scan for processes with rss higher than indicated."
 msgstr ""
 
-#: plugins/check_procs.c:715
+#: plugins/check_procs.c:755
 msgid "Only scan for processes with pcpu higher than indicated."
 msgstr ""
 
-#: plugins/check_procs.c:717
+#: plugins/check_procs.c:757
 msgid "Only scan for processes with user name or ID indicated."
 msgstr ""
 
-#: plugins/check_procs.c:719
+#: plugins/check_procs.c:759
 msgid "Only scan for processes with args that contain STRING."
 msgstr ""
 
-#: plugins/check_procs.c:721
+#: plugins/check_procs.c:761
+msgid "Only scan for processes with args that contain the regex STRING."
+msgstr ""
+
+#: plugins/check_procs.c:763
 msgid "Only scan for exact matches of COMMAND (without path)."
 msgstr ""
 
-#: plugins/check_procs.c:723
+#: plugins/check_procs.c:765
 #, c-format
 msgid ""
 "\n"
@@ -3542,7 +3647,7 @@
 "\n"
 msgstr ""
 
-#: plugins/check_procs.c:728
+#: plugins/check_procs.c:770
 #, c-format
 msgid ""
 "This plugin checks the number of currently running processes and\n"
@@ -3553,31 +3658,36 @@
 "\n"
 msgstr ""
 
-#: plugins/check_procs.c:737
+#: plugins/check_procs.c:785
 msgid "Warning if not two processes with command name portsentry."
 msgstr ""
 
-#: plugins/check_procs.c:738
+#: plugins/check_procs.c:786
 msgid "Critical if < 2 or > 1024 processes"
 msgstr ""
 
-#: plugins/check_procs.c:740
+#: plugins/check_procs.c:788
 msgid "Warning alert if > 10 processes with command arguments containing"
 msgstr ""
 
-#: plugins/check_procs.c:741
+#: plugins/check_procs.c:789
 msgid "'/usr/local/bin/perl' and owned by root"
 msgstr ""
 
-#: plugins/check_procs.c:743
+#: plugins/check_procs.c:791
 msgid "Alert if vsz of any processes over 50K or 100K"
 msgstr ""
 
-#: plugins/check_procs.c:745
+#: plugins/check_procs.c:793
 #, c-format
 msgid "Alert if cpu of any processes over 10%% or 20%%"
 msgstr ""
 
+#: plugins/check_procs.c:801
+#, c-format
+msgid "Usage: "
+msgstr ""
+
 #: plugins/check_radius.c:161
 msgid "Config file error"
 msgstr ""
@@ -3602,136 +3712,133 @@
 msgid "Auth OK"
 msgstr ""
 
-#: plugins/check_radius.c:278
+#: plugins/check_radius.c:284
 msgid "Number of retries must be a positive integer"
 msgstr ""
 
-#: plugins/check_radius.c:292
+#: plugins/check_radius.c:298
 msgid "User not specified"
 msgstr ""
 
-#: plugins/check_radius.c:294
+#: plugins/check_radius.c:300
 msgid "Password not specified"
 msgstr ""
 
-#: plugins/check_radius.c:296
+#: plugins/check_radius.c:302
 msgid "Configuration file not specified"
 msgstr ""
 
-#: plugins/check_radius.c:314
+#: plugins/check_radius.c:320
 msgid "Tests to see if a radius server is accepting connections."
 msgstr ""
 
-#: plugins/check_radius.c:325
+#: plugins/check_radius.c:332
 msgid "The user to authenticate"
 msgstr ""
 
-#: plugins/check_radius.c:327
+#: plugins/check_radius.c:334
 msgid "Password for autentication (SECURITY RISK)"
 msgstr ""
 
-#: plugins/check_radius.c:329
+#: plugins/check_radius.c:336
 msgid "NAS identifier"
 msgstr ""
 
-#: plugins/check_radius.c:331
+#: plugins/check_radius.c:338
 msgid "Configuration file"
 msgstr ""
 
-#: plugins/check_radius.c:333
+#: plugins/check_radius.c:340
 msgid "Response string to expect from the server"
 msgstr ""
 
-#: plugins/check_radius.c:335
+#: plugins/check_radius.c:342
 msgid "Number of times to retry a failed connection"
 msgstr ""
 
-#: plugins/check_radius.c:339
+#: plugins/check_radius.c:347
 msgid ""
 "This plugin tests a radius server to see if it is accepting connections."
 msgstr ""
 
-#: plugins/check_radius.c:340
+#: plugins/check_radius.c:348
 msgid ""
 "The server to test must be specified in the invocation, as well as a user"
 msgstr ""
 
-#: plugins/check_radius.c:341
+#: plugins/check_radius.c:349
 msgid ""
 "name and password. A configuration file may also be present. The format of"
 msgstr ""
 
-#: plugins/check_radius.c:342
+#: plugins/check_radius.c:350
 msgid ""
 "the configuration file is described in the radiusclient library sources."
 msgstr ""
 
-#: plugins/check_radius.c:343
+#: plugins/check_radius.c:351
 msgid "The password option presents a substantial security issue because the"
 msgstr ""
 
-#: plugins/check_radius.c:344
-msgid "password can be determined by careful watching of the command line in"
-msgstr ""
-
-#: plugins/check_radius.c:345
-msgid "a process listing.  This risk is exacerbated because nagios will"
+#: plugins/check_radius.c:352
+msgid ""
+"password can possibly be determined by careful watching of the command line"
 msgstr ""
 
-#: plugins/check_radius.c:346
-msgid "run the plugin at regular prdictable intervals.  Please be sure that"
+#: plugins/check_radius.c:353
+msgid "in a process listing. This risk is exacerbated because nagios will"
 msgstr ""
 
-#: plugins/check_radius.c:347
-msgid "the password used does not allow access to sensitive system resources,"
+#: plugins/check_radius.c:354
+msgid "run the plugin at regular predictable intervals. Please be sure that"
 msgstr ""
 
-#: plugins/check_radius.c:348
-msgid "otherwise compormise could occur."
+#: plugins/check_radius.c:355
+msgid "the password used does not allow access to sensitive system resources."
 msgstr ""
 
-#: plugins/check_real.c:96
+#: plugins/check_real.c:95
 #, c-format
 msgid "Unable to connect to %s on port %d\n"
 msgstr ""
 
-#: plugins/check_real.c:118
+#: plugins/check_real.c:117
 #, c-format
 msgid "No data received from %s\n"
 msgstr ""
 
-#: plugins/check_real.c:123 plugins/check_real.c:196
+#: plugins/check_real.c:122 plugins/check_real.c:195
 msgid "Invalid REAL response received from host"
 msgstr ""
 
-#: plugins/check_real.c:125 plugins/check_real.c:198
+#: plugins/check_real.c:124 plugins/check_real.c:197
 #, c-format
 msgid "Invalid REAL response received from host on port %d\n"
 msgstr ""
 
-#: plugins/check_real.c:189 plugins/check_tcp.c:294
+#: plugins/check_real.c:188 plugins/check_tcp.c:295
 #, c-format
 msgid "No data received from host\n"
 msgstr ""
 
-#: plugins/check_real.c:252
+#: plugins/check_real.c:251
 #, c-format
 msgid "REAL %s - %d second response time\n"
 msgstr ""
 
-#: plugins/check_real.c:341 plugins/check_smtp.c:581 plugins/check_ups.c:535
+#: plugins/check_real.c:340 plugins/check_smtp.c:582 plugins/check_ups.c:536
 msgid "Warning time must be a positive integer"
 msgstr ""
 
-#: plugins/check_real.c:350 plugins/check_smtp.c:572 plugins/check_ups.c:526
+#: plugins/check_real.c:349 plugins/check_smtp.c:573 plugins/check_ups.c:527
 msgid "Critical time must be a positive integer"
 msgstr ""
 
-#: plugins/check_real.c:386
+#: plugins/check_real.c:385
 msgid "You must provide a server to check"
 msgstr ""
 
-#: plugins/check_real.c:418
+#: plugins/check_real.c:417
 msgid "This plugin tests the REAL service on the specified host."
 msgstr ""
 
@@ -3744,226 +3851,235 @@
 msgid "String to expect in first line of server response (default: %s)\n"
 msgstr ""
 
-#: plugins/check_real.c:440
+#: plugins/check_real.c:441
 msgid "This plugin will attempt to open an RTSP connection with the host."
 msgstr ""
 
-#: plugins/check_real.c:441 plugins/check_smtp.c:812
+#: plugins/check_real.c:442 plugins/check_smtp.c:814
 msgid "Successul connects return STATE_OK, refusals and timeouts return"
 msgstr ""
 
-#: plugins/check_real.c:442
+#: plugins/check_real.c:443
 msgid ""
 "STATE_CRITICAL, other errors return STATE_UNKNOWN.  Successful connects,"
 msgstr ""
 
-#: plugins/check_real.c:443
+#: plugins/check_real.c:444
 msgid ""
 "but incorrect reponse messages from the host result in STATE_WARNING return"
 msgstr ""
 
-#: plugins/check_real.c:444
+#: plugins/check_real.c:445
 msgid "values."
 msgstr ""
 
-#: plugins/check_smtp.c:151 plugins/check_swap.c:268 plugins/check_swap.c:274
+#: plugins/check_smtp.c:150 plugins/check_swap.c:269 plugins/check_swap.c:275
 #, c-format
 msgid "malloc() failed!\n"
 msgstr ""
 
-#: plugins/check_smtp.c:155
+#: plugins/check_smtp.c:154
 #, c-format
 msgid "gethostname() failed!\n"
 msgstr ""
 
-#: plugins/check_smtp.c:190 plugins/check_smtp.c:214
+#: plugins/check_smtp.c:189 plugins/check_smtp.c:213
 #, c-format
 msgid "recv() failed\n"
 msgstr ""
 
-#: plugins/check_smtp.c:201
+#: plugins/check_smtp.c:200
 #, c-format
-msgid "Invalid SMTP response received from host\n"
+msgid "Invalid SMTP response received from host: %s\n"
 msgstr ""
 
-#: plugins/check_smtp.c:203
+#: plugins/check_smtp.c:202
 #, c-format
-msgid "Invalid SMTP response received from host on port %d\n"
+msgid "Invalid SMTP response received from host on port %d: %s\n"
 msgstr ""
 
-#: plugins/check_smtp.c:224
+#: plugins/check_smtp.c:223
 #, c-format
 msgid "WARNING - TLS not supported by server\n"
 msgstr ""
 
-#: plugins/check_smtp.c:236
+#: plugins/check_smtp.c:235
 #, c-format
 msgid "Server does not support STARTTLS\n"
 msgstr ""
 
-#: plugins/check_smtp.c:242
+#: plugins/check_smtp.c:241
 #, c-format
 msgid "CRITICAL - Cannot create SSL context.\n"
 msgstr ""
 
-#: plugins/check_smtp.c:262
+#: plugins/check_smtp.c:261
 msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS."
 msgstr ""
 
-#: plugins/check_smtp.c:267
+#: plugins/check_smtp.c:266
 #, c-format
 msgid "sent %s"
 msgstr ""
 
-#: plugins/check_smtp.c:269
+#: plugins/check_smtp.c:268
 msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS."
 msgstr ""
 
-#: plugins/check_smtp.c:281
+#: plugins/check_smtp.c:280
 msgid "CRITICAL - Cannot retrieve server certificate."
 msgstr ""
 
-#: plugins/check_smtp.c:317 plugins/check_snmp.c:590
+#: plugins/check_smtp.c:316 plugins/check_snmp.c:590
 #, c-format
 msgid "Could Not Compile Regular Expression"
 msgstr ""
 
-#: plugins/check_smtp.c:326
+#: plugins/check_smtp.c:325
 #, c-format
 msgid "SMTP %s - Invalid response '%s' to command '%s'\n"
 msgstr ""
 
-#: plugins/check_smtp.c:330 plugins/check_snmp.c:335
+#: plugins/check_smtp.c:329 plugins/check_snmp.c:335
 #, c-format
 msgid "Execute Error: %s\n"
 msgstr ""
 
-#: plugins/check_smtp.c:344
+#: plugins/check_smtp.c:343
+#, c-format
 msgid "no authuser specified, "
 msgstr ""
 
-#: plugins/check_smtp.c:349
+#: plugins/check_smtp.c:348
+#, c-format
 msgid "no authpass specified, "
 msgstr ""
 
-#: plugins/check_smtp.c:356 plugins/check_smtp.c:377 plugins/check_smtp.c:397
-#: plugins/check_smtp.c:673
+#: plugins/check_smtp.c:355 plugins/check_smtp.c:377 plugins/check_smtp.c:398
+#: plugins/check_smtp.c:674
 #, c-format
 msgid "sent %s\n"
 msgstr ""
 
-#: plugins/check_smtp.c:359
+#: plugins/check_smtp.c:358
+#, c-format
 msgid "recv() failed after AUTH LOGIN, "
 msgstr ""
 
-#: plugins/check_smtp.c:364 plugins/check_smtp.c:385 plugins/check_smtp.c:405
-#: plugins/check_smtp.c:684
+#: plugins/check_smtp.c:363 plugins/check_smtp.c:385 plugins/check_smtp.c:406
+#: plugins/check_smtp.c:685
 #, c-format
 msgid "received %s\n"
 msgstr ""
 
-#: plugins/check_smtp.c:368
+#: plugins/check_smtp.c:367
+#, c-format
 msgid "invalid response received after AUTH LOGIN, "
 msgstr ""
 
 #: plugins/check_smtp.c:381
+#, c-format
 msgid "recv() failed after sending authuser, "
 msgstr ""
 
 #: plugins/check_smtp.c:389
+#, c-format
 msgid "invalid response received after authuser, "
 msgstr ""
 
-#: plugins/check_smtp.c:401
+#: plugins/check_smtp.c:402
+#, c-format
 msgid "recv() failed after sending authpass, "
 msgstr ""
 
-#: plugins/check_smtp.c:409
+#: plugins/check_smtp.c:410
+#, c-format
 msgid "invalid response received after authpass, "
 msgstr ""
 
-#: plugins/check_smtp.c:416
+#: plugins/check_smtp.c:417
+#, c-format
 msgid "only authtype LOGIN is supported, "
 msgstr ""
 
-#: plugins/check_smtp.c:440
+#: plugins/check_smtp.c:441
 #, c-format
 msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n"
 msgstr ""
 
-#: plugins/check_smtp.c:548 plugins/check_smtp.c:560
+#: plugins/check_smtp.c:549 plugins/check_smtp.c:561
 #, c-format
 msgid "Could not realloc() units [%d]\n"
 msgstr ""
 
-#: plugins/check_smtp.c:608
+#: plugins/check_smtp.c:609
 msgid "SSL support not available - install OpenSSL and recompile"
 msgstr ""
 
-#: plugins/check_smtp.c:679
+#: plugins/check_smtp.c:680
 #, c-format
 msgid "recv() failed after QUIT."
 msgstr ""
 
-#: plugins/check_smtp.c:681
+#: plugins/check_smtp.c:682
 #, c-format
 msgid "Connection reset by peer."
 msgstr ""
 
-#: plugins/check_smtp.c:769
+#: plugins/check_smtp.c:770
 msgid "This plugin will attempt to open an SMTP connection with the host."
 msgstr ""
 
-#: plugins/check_smtp.c:782
+#: plugins/check_smtp.c:784
 #, c-format
 msgid "    String to expect in first line of server response (default: '%s')\n"
 msgstr ""
 
-#: plugins/check_smtp.c:784
+#: plugins/check_smtp.c:786
 msgid "Suppress SMTP command"
 msgstr ""
 
-#: plugins/check_smtp.c:786
+#: plugins/check_smtp.c:788
 msgid "SMTP command (may be used repeatedly)"
 msgstr ""
 
-#: plugins/check_smtp.c:788
+#: plugins/check_smtp.c:790
 msgid "Expected response to command (may be used repeatedly)"
 msgstr ""
 
-#: plugins/check_smtp.c:790
+#: plugins/check_smtp.c:792
 msgid "FROM-address to include in MAIL command, required by Exchange 2000"
 msgstr ""
 
-#: plugins/check_smtp.c:793 plugins/check_tcp.c:636
+#: plugins/check_smtp.c:795 plugins/check_tcp.c:638
 msgid "Minimum number of days a certificate has to be valid."
 msgstr ""
 
-#: plugins/check_smtp.c:795
+#: plugins/check_smtp.c:797
 msgid "Use STARTTLS for the connection."
 msgstr ""
 
-#: plugins/check_smtp.c:799
+#: plugins/check_smtp.c:801
 msgid "SMTP AUTH type to check (default none, only LOGIN supported)"
 msgstr ""
 
-#: plugins/check_smtp.c:801
+#: plugins/check_smtp.c:803
 msgid "SMTP AUTH username"
 msgstr ""
 
-#: plugins/check_smtp.c:803
+#: plugins/check_smtp.c:805
 msgid "SMTP AUTH password"
 msgstr ""
 
-#: plugins/check_smtp.c:813
+#: plugins/check_smtp.c:815
 msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN.  Successful"
 msgstr ""
 
-#: plugins/check_smtp.c:814
+#: plugins/check_smtp.c:816
 msgid "connects, but incorrect reponse messages from the host result in"
 msgstr ""
 
-#: plugins/check_smtp.c:815
+#: plugins/check_smtp.c:817
 msgid "STATE_WARNING return values."
 msgstr ""
 
@@ -4034,200 +4150,200 @@
 msgid "Check status of remote machines and obtain sustem information via SNMP"
 msgstr ""
 
-#: plugins/check_snmp.c:943
+#: plugins/check_snmp.c:944
 msgid "Use SNMP GETNEXT instead of SNMP GET"
 msgstr ""
 
-#: plugins/check_snmp.c:945
+#: plugins/check_snmp.c:946
 msgid "SNMP protocol version"
 msgstr ""
 
-#: plugins/check_snmp.c:947
+#: plugins/check_snmp.c:948
 msgid "SNMPv3 securityLevel"
 msgstr ""
 
-#: plugins/check_snmp.c:949
+#: plugins/check_snmp.c:950
 msgid "SNMPv3 auth proto"
 msgstr ""
 
-#: plugins/check_snmp.c:953
+#: plugins/check_snmp.c:954
 msgid "Optional community string for SNMP communication"
 msgstr ""
 
-#: plugins/check_snmp.c:954
+#: plugins/check_snmp.c:955
 msgid "default is"
 msgstr ""
 
-#: plugins/check_snmp.c:956
+#: plugins/check_snmp.c:957
 msgid "SNMPv3 username"
 msgstr ""
 
-#: plugins/check_snmp.c:958
+#: plugins/check_snmp.c:959
 msgid "SNMPv3 authentication password"
 msgstr ""
 
-#: plugins/check_snmp.c:960
+#: plugins/check_snmp.c:961
 msgid "SNMPv3 privacy password"
 msgstr ""
 
-#: plugins/check_snmp.c:964
+#: plugins/check_snmp.c:965
 msgid "Object identifier(s) or SNMP variables whose value you wish to query"
 msgstr ""
 
-#: plugins/check_snmp.c:966
+#: plugins/check_snmp.c:967
 msgid ""
 "List of MIBS to be loaded (default = none if using numeric oids or 'ALL'"
 msgstr ""
 
-#: plugins/check_snmp.c:967
+#: plugins/check_snmp.c:968
 msgid "for symbolic oids.)"
 msgstr ""
 
-#: plugins/check_snmp.c:969
+#: plugins/check_snmp.c:970
 #, c-format
 msgid "    Delimiter to use when parsing returned data. Default is \"%s\""
 msgstr ""
 
-#: plugins/check_snmp.c:970
+#: plugins/check_snmp.c:971
 msgid "Any data on the right hand side of the delimiter is considered"
 msgstr ""
 
-#: plugins/check_snmp.c:971
+#: plugins/check_snmp.c:972
 msgid "to be the data that should be used in the evaluation."
 msgstr ""
 
-#: plugins/check_snmp.c:975
+#: plugins/check_snmp.c:976
 msgid "Range(s) which will not result in a WARNING status"
 msgstr ""
 
-#: plugins/check_snmp.c:977
+#: plugins/check_snmp.c:978
 msgid "Range(s) which will not result in a CRITICAL status"
 msgstr ""
 
-#: plugins/check_snmp.c:981
+#: plugins/check_snmp.c:982
 msgid "Return OK state (for that OID) if STRING is an exact match"
 msgstr ""
 
-#: plugins/check_snmp.c:983
+#: plugins/check_snmp.c:984
 msgid ""
 "Return OK state (for that OID) if extended regular expression REGEX matches"
 msgstr ""
 
-#: plugins/check_snmp.c:985
+#: plugins/check_snmp.c:986
 msgid ""
 "Return OK state (for that OID) if case-insensitive extended REGEX matches"
 msgstr ""
 
-#: plugins/check_snmp.c:987
+#: plugins/check_snmp.c:988
 msgid "Prefix label for output from plugin (default -s 'SNMP')"
 msgstr ""
 
-#: plugins/check_snmp.c:991
+#: plugins/check_snmp.c:992
 msgid "Units label(s) for output data (e.g., 'sec.')."
 msgstr ""
 
-#: plugins/check_snmp.c:993
+#: plugins/check_snmp.c:994
 msgid "Separates output on multiple OID requests"
 msgstr ""
 
-#: plugins/check_snmp.c:999
+#: plugins/check_snmp.c:1001
 msgid ""
 "This plugin uses the 'snmpget' command included with the NET-SNMP package."
 msgstr ""
 
-#: plugins/check_snmp.c:1000
+#: plugins/check_snmp.c:1002
 msgid ""
 "if you don't have the package installed, you will need to download it from"
 msgstr ""
 
-#: plugins/check_snmp.c:1001
+#: plugins/check_snmp.c:1003
 msgid "http://net-snmp.sourceforge.net before you can use this plugin."
 msgstr ""
 
-#: plugins/check_snmp.c:1003
+#: plugins/check_snmp.c:1007
 msgid ""
 "- Multiple OIDs may be indicated by a comma- or space-delimited list (lists "
 "with"
 msgstr ""
 
-#: plugins/check_snmp.c:1004
-msgid " internal spaces must be quoted) [max 8 OIDs]"
+#: plugins/check_snmp.c:1008
+msgid "internal spaces must be quoted) [max 8 OIDs]"
 msgstr ""
 
-#: plugins/check_snmp.c:1006
+#: plugins/check_snmp.c:1010
 msgid "- Ranges are inclusive and are indicated with colons. When specified as"
 msgstr ""
 
-#: plugins/check_snmp.c:1007
+#: plugins/check_snmp.c:1011
 msgid ""
-" 'min:max' a STATE_OK will be returned if the result is within the indicated"
+"'min:max' a STATE_OK will be returned if the result is within the indicated"
 msgstr ""
 
-#: plugins/check_snmp.c:1008
-msgid " range or is equal to the upper or lower bound. A non-OK state will be"
+#: plugins/check_snmp.c:1012
+msgid "range or is equal to the upper or lower bound. A non-OK state will be"
 msgstr ""
 
-#: plugins/check_snmp.c:1009
-msgid " returned if the result is outside the specified range."
+#: plugins/check_snmp.c:1013
+msgid "returned if the result is outside the specified range."
 msgstr ""
 
-#: plugins/check_snmp.c:1011
+#: plugins/check_snmp.c:1015
 msgid ""
 "- If specified in the order 'max:min' a non-OK state will be returned if the"
 msgstr ""
 
-#: plugins/check_snmp.c:1012
-msgid " result is within the (inclusive) range."
+#: plugins/check_snmp.c:1016
+msgid "result is within the (inclusive) range."
 msgstr ""
 
-#: plugins/check_snmp.c:1014
+#: plugins/check_snmp.c:1018
 msgid ""
 "- Upper or lower bounds may be omitted to skip checking the respective limit."
 msgstr ""
 
-#: plugins/check_snmp.c:1015
+#: plugins/check_snmp.c:1019
 msgid "- Bare integers are interpreted as upper limits."
 msgstr ""
 
-#: plugins/check_snmp.c:1016
+#: plugins/check_snmp.c:1020
 msgid ""
 "- When checking multiple OIDs, separate ranges by commas like '-w "
 "1:10,1:,:20'"
 msgstr ""
 
-#: plugins/check_snmp.c:1017
+#: plugins/check_snmp.c:1021
 msgid "- Note that only one string and one regex may be checked at present"
 msgstr ""
 
-#: plugins/check_snmp.c:1018
+#: plugins/check_snmp.c:1022
 msgid ""
 "- All evaluation methods other than PR, STR, and SUBSTR expect that the value"
 msgstr ""
 
-#: plugins/check_snmp.c:1019
-msgid " returned from the SNMP query is an unsigned integer."
+#: plugins/check_snmp.c:1023
+msgid "returned from the SNMP query is an unsigned integer."
 msgstr ""
 
-#: plugins/check_ssh.c:170
+#: plugins/check_ssh.c:169
 msgid "Port number must be a positive integer"
 msgstr ""
 
-#: plugins/check_ssh.c:235
+#: plugins/check_ssh.c:234
 #, c-format
 msgid "Server answer: %s"
 msgstr ""
 
-#: plugins/check_ssh.c:254
+#: plugins/check_ssh.c:253
 #, c-format
 msgid "SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n"
 msgstr ""
 
-#: plugins/check_ssh.c:261
+#: plugins/check_ssh.c:260
 #, c-format
 msgid "SSH OK - %s (protocol %s)\n"
 msgstr ""
 
-#: plugins/check_ssh.c:281
+#: plugins/check_ssh.c:280
 msgid "Try to connect to an SSH server at specified server and port"
 msgstr ""
 
@@ -4236,193 +4352,193 @@
 "Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1)"
 msgstr ""
 
-#: plugins/check_swap.c:172
+#: plugins/check_swap.c:173
 #, c-format
 msgid "Command: %s\n"
 msgstr ""
 
-#: plugins/check_swap.c:174
+#: plugins/check_swap.c:175
 #, c-format
 msgid "Format: %s\n"
 msgstr ""
 
-#: plugins/check_swap.c:210
+#: plugins/check_swap.c:211
 #, c-format
 msgid "total=%.0f, used=%.0f, free=%.0f\n"
 msgstr ""
 
-#: plugins/check_swap.c:224
+#: plugins/check_swap.c:225
 #, c-format
 msgid "total=%.0f, free=%.0f\n"
 msgstr ""
 
-#: plugins/check_swap.c:256
+#: plugins/check_swap.c:257
 msgid "Error getting swap devices\n"
 msgstr ""
 
-#: plugins/check_swap.c:259
+#: plugins/check_swap.c:260
 msgid "SWAP OK: No swap devices defined\n"
 msgstr ""
 
-#: plugins/check_swap.c:280 plugins/check_swap.c:322
+#: plugins/check_swap.c:281 plugins/check_swap.c:323
 msgid "swapctl failed: "
 msgstr ""
 
-#: plugins/check_swap.c:281 plugins/check_swap.c:323
+#: plugins/check_swap.c:282 plugins/check_swap.c:324
 msgid "Error in swapctl call\n"
 msgstr ""
 
-#: plugins/check_swap.c:360
+#: plugins/check_swap.c:361
 #, c-format
 msgid "SWAP %s - %d%% free (%d MB out of %d MB) %s|"
 msgstr ""
 
-#: plugins/check_swap.c:438
+#: plugins/check_swap.c:439
 msgid "Warning threshold must be integer or percentage!"
 msgstr ""
 
-#: plugins/check_swap.c:456
+#: plugins/check_swap.c:457
 msgid "Critical threshold must be integer or percentage!"
 msgstr ""
 
-#: plugins/check_swap.c:510
+#: plugins/check_swap.c:511
 msgid "Warning percentage should be more than critical percentage"
 msgstr ""
 
-#: plugins/check_swap.c:514
+#: plugins/check_swap.c:515
 msgid "Warning free space should be more than critical free space"
 msgstr ""
 
-#: plugins/check_swap.c:528
+#: plugins/check_swap.c:529
 msgid "Check swap space on local machine."
 msgstr ""
 
-#: plugins/check_swap.c:537
+#: plugins/check_swap.c:539
 msgid ""
 "Exit with WARNING status if less than INTEGER bytes of swap space are free"
 msgstr ""
 
-#: plugins/check_swap.c:539
+#: plugins/check_swap.c:541
 msgid "Exit with WARNING status if less than PERCENT of swap space is free"
 msgstr ""
 
-#: plugins/check_swap.c:541
+#: plugins/check_swap.c:543
 msgid ""
 "Exit with CRITICAL status if less than INTEGER bytes of swap space are free"
 msgstr ""
 
-#: plugins/check_swap.c:543
+#: plugins/check_swap.c:545
 msgid "Exit with CRITCAL status if less than PERCENT of swap space is free"
 msgstr ""
 
-#: plugins/check_swap.c:545
+#: plugins/check_swap.c:547
 msgid "Conduct comparisons for all swap partitions, one by one"
 msgstr ""
 
-#: plugins/check_swap.c:549
-msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.\n"
+#: plugins/check_swap.c:552
+msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s."
 msgstr ""
 
-#: plugins/check_tcp.c:202
+#: plugins/check_tcp.c:200
 msgid "CRITICAL - Generic check_tcp called with unknown service\n"
 msgstr ""
 
-#: plugins/check_tcp.c:223
+#: plugins/check_tcp.c:224
 msgid "With UDP checks, a send/expect string must be specified."
 msgstr ""
 
-#: plugins/check_tcp.c:242
+#: plugins/check_tcp.c:243
 #, c-format
 msgid "CRITICAL - Cannot retrieve server certificate.\n"
 msgstr ""
 
-#: plugins/check_tcp.c:422
+#: plugins/check_tcp.c:423
 msgid "No arguments found"
 msgstr ""
 
-#: plugins/check_tcp.c:523
+#: plugins/check_tcp.c:524
 msgid "Maxbytes must be a positive integer"
 msgstr ""
 
-#: plugins/check_tcp.c:541
+#: plugins/check_tcp.c:542
 msgid "Refuse must be one of ok, warn, crit"
 msgstr ""
 
-#: plugins/check_tcp.c:551
+#: plugins/check_tcp.c:552
 msgid "Mismatch must be one of ok, warn, crit"
 msgstr ""
 
-#: plugins/check_tcp.c:557
+#: plugins/check_tcp.c:558
 msgid "Delay must be a positive integer"
 msgstr ""
 
-#: plugins/check_tcp.c:585
+#: plugins/check_tcp.c:586
 msgid "You must provide a server address"
 msgstr ""
 
-#: plugins/check_tcp.c:587
+#: plugins/check_tcp.c:588
 msgid "Invalid hostname, address or socket"
 msgstr ""
 
-#: plugins/check_tcp.c:601
+#: plugins/check_tcp.c:602
 #, c-format
 msgid ""
 "This plugin tests %s connections with the specified host (or unix socket).\n"
 "\n"
 msgstr ""
 
-#: plugins/check_tcp.c:613
+#: plugins/check_tcp.c:615
 msgid ""
 "Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or "
 "quit option"
 msgstr ""
 
-#: plugins/check_tcp.c:614
+#: plugins/check_tcp.c:616
 msgid "Default: nothing added to send, \\r\\n added to end of quit"
 msgstr ""
 
-#: plugins/check_tcp.c:616
+#: plugins/check_tcp.c:618
 msgid "String to send to the server"
 msgstr ""
 
-#: plugins/check_tcp.c:618
+#: plugins/check_tcp.c:620
 msgid "String to expect in server response"
 msgstr ""
 
-#: plugins/check_tcp.c:618
+#: plugins/check_tcp.c:620
 msgid "(may be repeated)"
 msgstr ""
 
-#: plugins/check_tcp.c:620
+#: plugins/check_tcp.c:622
 msgid "All expect strings need to occur in server response. Default is any"
 msgstr ""
 
-#: plugins/check_tcp.c:622
+#: plugins/check_tcp.c:624
 msgid "String to send server to initiate a clean close of the connection"
 msgstr ""
 
-#: plugins/check_tcp.c:624
+#: plugins/check_tcp.c:626
 msgid "Accept tcp refusals with states ok, warn, crit (default: crit)"
 msgstr ""
 
-#: plugins/check_tcp.c:626
+#: plugins/check_tcp.c:628
 msgid ""
 "Accept expected string mismatches with states ok, warn, crit (default: warn)"
 msgstr ""
 
-#: plugins/check_tcp.c:628
+#: plugins/check_tcp.c:630
 msgid "Hide output from TCP socket"
 msgstr ""
 
-#: plugins/check_tcp.c:630
+#: plugins/check_tcp.c:632
 msgid "Close connection once more than this number of bytes are received"
 msgstr ""
 
-#: plugins/check_tcp.c:632
+#: plugins/check_tcp.c:634
 msgid "Seconds to wait between sending string and polling for response"
 msgstr ""
 
-#: plugins/check_tcp.c:638
+#: plugins/check_tcp.c:640
 msgid "Use SSL for the connection."
 msgstr ""
 
@@ -4463,130 +4579,132 @@
 msgid "This plugin will check the time on the specified host."
 msgstr ""
 
-#: plugins/check_time.c:354
+#: plugins/check_time.c:355
 msgid "Use UDP to connect, not TCP"
 msgstr ""
 
-#: plugins/check_time.c:356
+#: plugins/check_time.c:357
 msgid "Time difference (sec.) necessary to result in a warning status"
 msgstr ""
 
-#: plugins/check_time.c:358
+#: plugins/check_time.c:359
 msgid "Time difference (sec.) necessary to result in a critical status"
 msgstr ""
 
-#: plugins/check_time.c:360
+#: plugins/check_time.c:361
 msgid "Response time (sec.) necessary to result in warning status"
 msgstr ""
 
-#: plugins/check_time.c:362
+#: plugins/check_time.c:363
 msgid "Response time (sec.) necessary to result in critical status"
 msgstr ""
 
-#: plugins/check_ups.c:147
+#: plugins/check_ups.c:148
+#, c-format
 msgid "On Battery, Low Battery"
 msgstr ""
 
-#: plugins/check_ups.c:152
+#: plugins/check_ups.c:153
 msgid "Online"
 msgstr ""
 
-#: plugins/check_ups.c:155
+#: plugins/check_ups.c:156
 msgid "On Battery"
 msgstr ""
 
-#: plugins/check_ups.c:159
+#: plugins/check_ups.c:160
 msgid ", Low Battery"
 msgstr ""
 
-#: plugins/check_ups.c:163
+#: plugins/check_ups.c:164
 msgid ", Calibrating"
 msgstr ""
 
-#: plugins/check_ups.c:166
+#: plugins/check_ups.c:167
 msgid ", Replace Battery"
 msgstr ""
 
-#: plugins/check_ups.c:170
+#: plugins/check_ups.c:171
 msgid ", On Bypass"
 msgstr ""
 
-#: plugins/check_ups.c:173
+#: plugins/check_ups.c:174
 msgid ", Overload"
 msgstr ""
 
-#: plugins/check_ups.c:176
+#: plugins/check_ups.c:177
 msgid ", Trimming"
 msgstr ""
 
-#: plugins/check_ups.c:179
+#: plugins/check_ups.c:180
 msgid ", Boosting"
 msgstr ""
 
-#: plugins/check_ups.c:182
+#: plugins/check_ups.c:183
 msgid ", Charging"
 msgstr ""
 
-#: plugins/check_ups.c:185
+#: plugins/check_ups.c:186
 msgid ", Discharging"
 msgstr ""
 
-#: plugins/check_ups.c:188
+#: plugins/check_ups.c:189
 msgid ", Unknown"
 msgstr ""
 
-#: plugins/check_ups.c:327
+#: plugins/check_ups.c:328
+#, c-format
 msgid "UPS does not support any available options\n"
 msgstr ""
 
-#: plugins/check_ups.c:351 plugins/check_ups.c:411
+#: plugins/check_ups.c:352 plugins/check_ups.c:412
 msgid "Invalid response received from host"
 msgstr ""
 
-#: plugins/check_ups.c:419
+#: plugins/check_ups.c:420
 #, c-format
 msgid "CRITICAL - no such ups '%s' on that host\n"
 msgstr ""
 
-#: plugins/check_ups.c:429
+#: plugins/check_ups.c:430
 msgid "CRITICAL - UPS data is stale"
 msgstr ""
 
-#: plugins/check_ups.c:434
+#: plugins/check_ups.c:435
 #, c-format
 msgid "Unknown error: %s\n"
 msgstr ""
 
-#: plugins/check_ups.c:441
+#: plugins/check_ups.c:442
 msgid "Error: unable to parse variable"
 msgstr ""
 
-#: plugins/check_ups.c:548
+#: plugins/check_ups.c:549
 msgid "Unrecognized UPS variable"
 msgstr ""
 
-#: plugins/check_ups.c:586
+#: plugins/check_ups.c:587
 msgid "Error : no ups indicated"
 msgstr ""
 
-#: plugins/check_ups.c:606
+#: plugins/check_ups.c:607
 msgid ""
-"This plugin tests the UPS service on the specified host.Network UPS Tools "
+"This plugin tests the UPS service on the specified host. Network UPS Tools"
 msgstr ""
 
-#: plugins/check_ups.c:607
+#: plugins/check_ups.c:608
 msgid "from www.networkupstools.org must be running for thisplugin to work."
 msgstr ""
 
-#: plugins/check_ups.c:618
+#: plugins/check_ups.c:620
 msgid "Name of UPS"
 msgstr ""
 
-#: plugins/check_ups.c:620
+#: plugins/check_ups.c:622
 msgid "Output of temperatures in Celsius"
 msgstr ""
 
-#: plugins/check_ups.c:622
+#: plugins/check_ups.c:624
 msgid "Valid values for STRING are"
 msgstr ""
 
@@ -4615,766 +4733,776 @@
 msgid "state."
 msgstr ""
 
-#: plugins/check_ups.c:641
+#: plugins/check_ups.c:643
 msgid ""
-"You may also specify a variable to check [such as temperature, utility "
+"You may also specify a variable to check (such as temperature, utility "
 "voltage,"
 msgstr ""
 
-#: plugins/check_ups.c:642
+#: plugins/check_ups.c:644
 msgid ""
-"battery load, etc.]  as well as warning and critical thresholds for the "
-"value of"
+"battery load, etc.)  as well as warning and critical thresholds for the value"
 msgstr ""
 
-#: plugins/check_ups.c:643
+#: plugins/check_ups.c:645
 msgid ""
-"that variable.  If the remote host has multiple UPS that are being monitored "
-"you"
+"of that variable.  If the remote host has multiple UPS that are being "
+"monitored"
 msgstr ""
 
-#: plugins/check_ups.c:644
-msgid "will have to use the [ups] option to specify which UPS to check."
+#: plugins/check_ups.c:646
+msgid "you will have to use the --ups option to specify which UPS to check."
 msgstr ""
 
-#: plugins/check_ups.c:646
+#: plugins/check_ups.c:648
 msgid ""
 "This plugin requires that the UPSD daemon distributed with Russel Kroll's"
 msgstr ""
 
-#: plugins/check_ups.c:647
-msgid ""
-"Smart UPS Tools be installed on the remote host.  If you do not have the"
+#: plugins/check_ups.c:649
+msgid "Smart UPS Tools be installed on the remote host. If you do not have the"
 msgstr ""
 
-#: plugins/check_ups.c:648
-msgid ""
-"package installed on your system, you can download it from http://www."
-"networkupstools.org"
+#: plugins/check_ups.c:650
+msgid "package installed on your system, you can download it from"
+msgstr ""
+
+#: plugins/check_ups.c:651
+msgid "http://www.networkupstools.org"
 msgstr ""
 
-#: plugins/check_users.c:94
+#: plugins/check_users.c:96
 #, c-format
 msgid "# users=%d"
 msgstr ""
 
-#: plugins/check_users.c:117
+#: plugins/check_users.c:119
 msgid "Unable to read output"
 msgstr ""
 
-#: plugins/check_users.c:124
+#: plugins/check_users.c:126
 #, c-format
 msgid "USERS %s - %d users currently logged in |%s\n"
 msgstr ""
 
-#: plugins/check_users.c:209
+#: plugins/check_users.c:211
 msgid "This plugin checks the number of users currently logged in on the local"
 msgstr ""
 
-#: plugins/check_users.c:210
+#: plugins/check_users.c:212
 msgid ""
 "system and generates an error if the number exceeds the thresholds specified."
 msgstr ""
 
-#: plugins/check_users.c:219
+#: plugins/check_users.c:222
 msgid "Set WARNING status if more than INTEGER users are logged in"
 msgstr ""
 
-#: plugins/check_users.c:221
+#: plugins/check_users.c:224
 msgid "Set CRITICAL status if more than INTEGER users are logged in"
 msgstr ""
 
-#: plugins/check_ide_smart.c:231
+#: plugins/check_ide_smart.c:232
 #, c-format
 msgid "CRITICAL - Couldn't open device %s: %s\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:236
+#: plugins/check_ide_smart.c:237
 #, c-format
 msgid "CRITICAL - SMART_CMD_ENABLE\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:297
+#: plugins/check_ide_smart.c:298
 #, c-format
 msgid "CRITICAL - SMART_READ_VALUES: %s\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:366
+#: plugins/check_ide_smart.c:367
 #, c-format
 msgid "CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:374
+#: plugins/check_ide_smart.c:375
 #, c-format
 msgid "WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:382
+#: plugins/check_ide_smart.c:383
 #, c-format
 msgid "OK - Operational (%d/%d tests passed)\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:386
+#: plugins/check_ide_smart.c:387
 #, c-format
 msgid "ERROR - Status '%d' unkown. %d/%d tests passed\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:419
+#: plugins/check_ide_smart.c:420
 #, c-format
 msgid "OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:425
+#: plugins/check_ide_smart.c:426
 #, c-format
 msgid "OffLineCapability=%d {%s %s %s}\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:431
+#: plugins/check_ide_smart.c:432
 #, c-format
 msgid "SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:452
+#: plugins/check_ide_smart.c:453
 #, c-format
 msgid "CRITICAL - %s: %s\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:471
+#: plugins/check_ide_smart.c:472
 #, c-format
 msgid "CRITICAL - SMART_READ_THRESHOLDS: %s\n"
 msgstr ""
 
-#: plugins/check_ide_smart.c:488
+#: plugins/check_ide_smart.c:489
 #, c-format
 msgid ""
 "This plugin checks a local hard drive with the (Linux specific) SMART "
 "interface [http://smartlinux.sourceforge.net/smart/index.php]."
 msgstr ""
 
-#: plugins/check_ide_smart.c:497
+#: plugins/check_ide_smart.c:499
 msgid "Select device DEVICE"
 msgstr ""
 
-#: plugins/check_ide_smart.c:498
+#: plugins/check_ide_smart.c:500
 msgid ""
 "Note: if the device is selected with this option, _no_ other options are "
 "accepted"
 msgstr ""
 
-#: plugins/check_ide_smart.c:500
+#: plugins/check_ide_smart.c:502
 msgid "Perform immediately offline tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:502
+#: plugins/check_ide_smart.c:504
 msgid "Returns the number of failed tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:504
+#: plugins/check_ide_smart.c:506
 msgid "Turn on automatic offline tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:506
+#: plugins/check_ide_smart.c:508
 msgid "Turn off automatic offline tests"
 msgstr ""
 
-#: plugins/check_ide_smart.c:508
+#: plugins/check_ide_smart.c:510
 msgid "Output suitable for Nagios"
 msgstr ""
 
-#: plugins/negate.c:132
+#: plugins/negate.c:98
 msgid "No data returned from command\n"
 msgstr ""
 
-#: plugins/negate.c:209
+#: plugins/negate.c:168
 msgid ""
 "Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-"
 "3)."
 msgstr ""
 
-#: plugins/negate.c:215
+#: plugins/negate.c:174
 msgid ""
 "Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or "
 "integer (0-3)."
 msgstr ""
 
-#: plugins/negate.c:220
+#: plugins/negate.c:179
 msgid ""
 "Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or "
 "integer (0-3)."
 msgstr ""
 
-#: plugins/negate.c:225
+#: plugins/negate.c:184
 msgid ""
 "Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or "
 "integer (0-3)."
 msgstr ""
 
-#: plugins/negate.c:262
+#: plugins/negate.c:211
 msgid "Require path to command"
 msgstr ""
 
-#: plugins/negate.c:298
+#: plugins/negate.c:240
 msgid ""
 "Negates the status of a plugin (returns OK for CRITICAL and vice-versa)."
 msgstr ""
 
-#: plugins/negate.c:299
+#: plugins/negate.c:241
 msgid "Additional switches can be used to control which state becomes what."
 msgstr ""
 
-#: plugins/negate.c:308
+#: plugins/negate.c:250
 msgid "Keep timeout longer than the plugin timeout to retain CRITICAL status."
 msgstr ""
 
-#: plugins/negate.c:314
+#: plugins/negate.c:256
 #, c-format
 msgid ""
 "    STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n"
 msgstr ""
 
-#: plugins/negate.c:315
+#: plugins/negate.c:257
 #, c-format
 msgid ""
 "    quotes. Numeric values are accepted. If nothing is specified, permutes\n"
 msgstr ""
 
-#: plugins/negate.c:316
+#: plugins/negate.c:258
 #, c-format
 msgid "    OK and CRITICAL.\n"
 msgstr ""
 
-#: plugins/negate.c:321
+#: plugins/negate.c:260
+#, c-format
+msgid ""
+"    Substitute output text as well. Will only substitute text in CAPITALS\n"
+msgstr ""
+
+#: plugins/negate.c:265
 msgid "Run check_ping and invert result. Must use full path to plugin"
 msgstr ""
 
-#: plugins/negate.c:323
+#: plugins/negate.c:267
 msgid "This will return OK instead of WARNING and UNKNOWN instead of CRITICAL"
 msgstr ""
 
-#: plugins/negate.c:326
+#: plugins/negate.c:270
 msgid ""
 "This plugin is a wrapper to take the output of another plugin and invert it."
 msgstr ""
 
-#: plugins/negate.c:327
+#: plugins/negate.c:271
 msgid "The full path of the plugin must be provided."
 msgstr ""
 
-#: plugins/negate.c:328
+#: plugins/negate.c:272
 msgid "If the wrapped plugin returns OK, the wrapper will return CRITICAL."
 msgstr ""
 
-#: plugins/negate.c:329
+#: plugins/negate.c:273
 msgid "If the wrapped plugin returns CRITICAL, the wrapper will return OK."
 msgstr ""
 
-#: plugins/negate.c:330
+#: plugins/negate.c:274
 msgid "Otherwise, the output state of the wrapped plugin is unchanged."
 msgstr ""
 
-#: plugins/netutils.c:53
+#: plugins/netutils.c:52
 #, c-format
 msgid "CRITICAL - Socket timeout after %d seconds\n"
 msgstr ""
 
-#: plugins/netutils.c:55
+#: plugins/netutils.c:54
 #, c-format
 msgid "CRITICAL - Abnormal timeout after %d seconds\n"
 msgstr ""
 
-#: plugins/netutils.c:83 plugins/netutils.c:274
+#: plugins/netutils.c:82 plugins/netutils.c:284
 msgid "Send failed"
 msgstr ""
 
-#: plugins/netutils.c:100 plugins/netutils.c:289
+#: plugins/netutils.c:99 plugins/netutils.c:299
 msgid "No data was received from host!"
 msgstr ""
 
-#: plugins/netutils.c:197 plugins/netutils.c:233
+#: plugins/netutils.c:207 plugins/netutils.c:243
 msgid "Socket creation failed"
 msgstr ""
 
-#: plugins/netutils.c:226
+#: plugins/netutils.c:236
 msgid "Supplied path too long unix domain socket"
 msgstr ""
 
-#: plugins/netutils.c:298
+#: plugins/netutils.c:308
 msgid "Receive failed"
 msgstr ""
 
-#: plugins/netutils.c:324 plugins-root/check_dhcp.c:1348
+#: plugins/netutils.c:334 plugins-root/check_dhcp.c:1346
 #, c-format
 msgid "Invalid hostname/address - %s"
 msgstr ""
 
-#: plugins/popen.c:148
+#: plugins/popen.c:145
 msgid "Could not malloc argv array in popen()"
 msgstr ""
 
-#: plugins/popen.c:158
+#: plugins/popen.c:155
 msgid "CRITICAL - You need more args!!!"
 msgstr ""
 
-#: plugins/popen.c:215
+#: plugins/popen.c:212
 msgid "Cannot catch SIGCHLD"
 msgstr ""
 
-#: plugins/popen.c:310 plugins/utils.c:172
+#: plugins/popen.c:307 plugins/utils.c:186
 #, c-format
 msgid "CRITICAL - Plugin timed out after %d seconds\n"
 msgstr ""
 
-#: plugins/popen.c:313
+#: plugins/popen.c:310
 msgid "CRITICAL - popen timeout received, but no child process"
 msgstr ""
 
-#: plugins/popen.c:329
+#: plugins/popen.c:326
 msgid "sysconf error for _SC_OPEN_MAX"
 msgstr ""
 
-#: plugins/urlize.c:137
+#: plugins/urlize.c:134
 #, c-format
 msgid ""
 "%s UNKNOWN - No data received from host\n"
 "CMD: %s</A>\n"
 msgstr ""
 
-#: plugins/urlize.c:176
+#: plugins/urlize.c:173
 msgid "This plugin wraps the text output of another command (plugin)"
 msgstr ""
 
-#: plugins/urlize.c:177
+#: plugins/urlize.c:174
 msgid ""
 "in HTML <A> tags, thus displaying the plugin output in as a clickable link in"
 msgstr ""
 
-#: plugins/urlize.c:178
+#: plugins/urlize.c:175
 msgid ""
 "the Nagios status screen.  The return status is the same as the invoked "
 "plugin."
 msgstr ""
 
-#: plugins/urlize.c:188
+#: plugins/urlize.c:185
 msgid ""
 "Pay close attention to quoting to ensure that the shell passes the expected"
 msgstr ""
 
-#: plugins/urlize.c:189
+#: plugins/urlize.c:186
 msgid "data to the plugin. For example, in:"
 msgstr ""
 
-#: plugins/urlize.c:190
+#: plugins/urlize.c:187
 msgid "urlize http://example.com/ check_http -H example.com -r 'two words'"
 msgstr ""
 
-#: plugins/urlize.c:191
+#: plugins/urlize.c:188
 msgid "the shell will remove the single quotes and urlize will see:"
 msgstr ""
 
-#: plugins/urlize.c:192
+#: plugins/urlize.c:189
 msgid "urlize http://example.com/ check_http -H example.com -r two words"
 msgstr ""
 
-#: plugins/urlize.c:193
+#: plugins/urlize.c:190
 msgid "You probably want:"
 msgstr ""
 
-#: plugins/urlize.c:194
+#: plugins/urlize.c:191
 msgid "urlize http://example.com/ \"check_http -H example.com -r 'two words'\""
 msgstr ""
 
-#: plugins/utils.c:467
+#: plugins/utils.c:481
 msgid "failed realloc in strpcpy\n"
 msgstr ""
 
-#: plugins/utils.c:509
+#: plugins/utils.c:523
 msgid "failed malloc in strscat\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:327
+#: plugins-root/check_dhcp.c:325
 #, c-format
 msgid "Error: Could not get hardware address of interface '%s'\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:349
+#: plugins-root/check_dhcp.c:347
 #, c-format
 msgid "Error: if_nametoindex error - %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:354
+#: plugins-root/check_dhcp.c:352
 #, c-format
 msgid "Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:359
+#: plugins-root/check_dhcp.c:357
 #, c-format
 msgid ""
 "Error: Couldn't get hardware address from interface %s. malloc error - %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:364
+#: plugins-root/check_dhcp.c:362
 #, c-format
 msgid "Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:390
+#: plugins-root/check_dhcp.c:388
 #, c-format
 msgid ""
 "Error: can't find unit number in interface_name (%s) - expecting TypeNumber "
 "eg lnc0.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:395 plugins-root/check_dhcp.c:407
+#: plugins-root/check_dhcp.c:393 plugins-root/check_dhcp.c:405
 #, c-format
 msgid ""
 "Error: can't read MAC address from DLPI streams interface for device %s unit "
 "%d.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:413
+#: plugins-root/check_dhcp.c:411
 #, c-format
 msgid ""
 "Error: can't get MAC address for this architecture.  Use the --mac option.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:432
+#: plugins-root/check_dhcp.c:430
 #, c-format
 msgid "Error: Cannot determine IP address of interface %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:440
+#: plugins-root/check_dhcp.c:438
 #, c-format
 msgid "Error: Cannot get interface IP address on this platform.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:445
+#: plugins-root/check_dhcp.c:443
 #, c-format
 msgid "Pretending to be relay client %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:530
+#: plugins-root/check_dhcp.c:528
 #, c-format
 msgid "DHCPDISCOVER to %s port %d\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:582
+#: plugins-root/check_dhcp.c:580
 #, c-format
 msgid "Result=ERROR\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:588
+#: plugins-root/check_dhcp.c:586
 #, c-format
 msgid "Result=OK\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:603
+#: plugins-root/check_dhcp.c:601
 #, c-format
 msgid "DHCPOFFER from IP address %s"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:604
+#: plugins-root/check_dhcp.c:602
 #, c-format
 msgid " via %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:611
+#: plugins-root/check_dhcp.c:609
 #, c-format
 msgid ""
 "DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:633
+#: plugins-root/check_dhcp.c:631
 #, c-format
 msgid "DHCPOFFER hardware address did not match our own - ignoring packet\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:651
+#: plugins-root/check_dhcp.c:649
 #, c-format
 msgid "Total responses seen on the wire: %d\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:652
+#: plugins-root/check_dhcp.c:650
 #, c-format
 msgid "Valid responses for this machine: %d\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:667
+#: plugins-root/check_dhcp.c:665
 #, c-format
 msgid "send_dhcp_packet result: %d\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:700
+#: plugins-root/check_dhcp.c:698
 #, c-format
 msgid "No (more) data received (nfound: %d)\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:719
+#: plugins-root/check_dhcp.c:717
 #, c-format
 msgid "recvfrom() failed, "
 msgstr ""
 
-#: plugins-root/check_dhcp.c:726
+#: plugins-root/check_dhcp.c:724
 #, c-format
 msgid "receive_dhcp_packet() result: %d\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:727
+#: plugins-root/check_dhcp.c:725
 #, c-format
 msgid "receive_dhcp_packet() source: %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:757
+#: plugins-root/check_dhcp.c:755
 #, c-format
 msgid "Error: Could not create socket!\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:767
+#: plugins-root/check_dhcp.c:765
 #, c-format
 msgid "Error: Could not set reuse address option on DHCP socket!\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:773
+#: plugins-root/check_dhcp.c:771
 #, c-format
 msgid "Error: Could not set broadcast option on DHCP socket!\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:782
+#: plugins-root/check_dhcp.c:780
 #, c-format
 msgid ""
 "Error: Could not bind socket to interface %s.  Check your privileges...\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:793
+#: plugins-root/check_dhcp.c:791
 #, c-format
 msgid ""
 "Error: Could not bind to DHCP socket (port %d)!  Check your privileges...\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:827
+#: plugins-root/check_dhcp.c:825
 #, c-format
 msgid "Requested server address: %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:888
+#: plugins-root/check_dhcp.c:886
 #, c-format
 msgid "Lease Time: Infinite\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:890
+#: plugins-root/check_dhcp.c:888
 #, c-format
 msgid "Lease Time: %lu seconds\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:892
+#: plugins-root/check_dhcp.c:890
 #, c-format
 msgid "Renewal Time: Infinite\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:894
+#: plugins-root/check_dhcp.c:892
 #, c-format
 msgid "Renewal Time: %lu seconds\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:896
+#: plugins-root/check_dhcp.c:894
 #, c-format
 msgid "Rebinding Time: Infinite\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:897
+#: plugins-root/check_dhcp.c:895
 #, c-format
 msgid "Rebinding Time: %lu seconds\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:925
+#: plugins-root/check_dhcp.c:923
 #, c-format
 msgid "Added offer from server @ %s"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:926
+#: plugins-root/check_dhcp.c:924
 #, c-format
 msgid " of IP address %s\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:993
+#: plugins-root/check_dhcp.c:991
 #, c-format
 msgid "DHCP Server Match: Offerer=%s"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:994
+#: plugins-root/check_dhcp.c:992
 #, c-format
 msgid " Requested=%s"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:996
+#: plugins-root/check_dhcp.c:994
 #, c-format
 msgid " (duplicate)"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:997
+#: plugins-root/check_dhcp.c:995
 #, c-format
 msgid "\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1045
+#: plugins-root/check_dhcp.c:1043
 #, c-format
 msgid "No DHCPOFFERs were received.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1049
+#: plugins-root/check_dhcp.c:1047
 #, c-format
 msgid "Received %d DHCPOFFER(s)"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1052
+#: plugins-root/check_dhcp.c:1050
 #, c-format
 msgid ", %s%d of %d requested servers responded"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1055
+#: plugins-root/check_dhcp.c:1053
 #, c-format
 msgid ", requested address (%s) was %soffered"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1055
+#: plugins-root/check_dhcp.c:1053
 msgid "not "
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1057
+#: plugins-root/check_dhcp.c:1055
 #, c-format
 msgid ", max lease time = "
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1059
+#: plugins-root/check_dhcp.c:1057
 #, c-format
 msgid "Infinity"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1240
+#: plugins-root/check_dhcp.c:1238
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1252
+#: plugins-root/check_dhcp.c:1250
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1265
+#: plugins-root/check_dhcp.c:1263
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in put_both/putmsg().\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1277
+#: plugins-root/check_dhcp.c:1275
 #, c-format
 msgid ""
 "Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1301
+#: plugins-root/check_dhcp.c:1299
 #, c-format
 msgid "Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1380
+#: plugins-root/check_dhcp.c:1378
 #, c-format
 msgid "Hardware address: "
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1396
+#: plugins-root/check_dhcp.c:1394
 msgid "This plugin tests the availability of DHCP servers on a network."
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1407
+#: plugins-root/check_dhcp.c:1406
 msgid "IP address of DHCP server that we must hear from"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1409
+#: plugins-root/check_dhcp.c:1408
 msgid "IP address that should be offered by at least one DHCP server"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1411
+#: plugins-root/check_dhcp.c:1410
 msgid "Seconds to wait for DHCPOFFER before timeout occurs"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1413
+#: plugins-root/check_dhcp.c:1412
 msgid "Interface to to use for listening (i.e. eth0)"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1415
+#: plugins-root/check_dhcp.c:1414
 msgid "MAC address to use in the DHCP request"
 msgstr ""
 
-#: plugins-root/check_dhcp.c:1417
+#: plugins-root/check_dhcp.c:1416
 msgid "Unicast testing: mimic a DHCP relay, requires -s"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1227
+#: plugins-root/check_icmp.c:1271
 msgid "specify a target"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1229
+#: plugins-root/check_icmp.c:1273
 msgid "warning threshold (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1232
+#: plugins-root/check_icmp.c:1276
 msgid "critical threshold (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1235
+#: plugins-root/check_icmp.c:1279
+msgid "specify a source IP address or device name"
+msgstr ""
+
+#: plugins-root/check_icmp.c:1281
 msgid "number of packets to send (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1238
+#: plugins-root/check_icmp.c:1284
 msgid "max packet interval (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1241
+#: plugins-root/check_icmp.c:1287
 msgid "max target interval (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1244
+#: plugins-root/check_icmp.c:1290
 msgid "number of alive hosts required for success"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1247
+#: plugins-root/check_icmp.c:1293
 msgid "TTL on outgoing packets (currently "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1250
+#: plugins-root/check_icmp.c:1296
 msgid "timeout value (seconds, currently  "
 msgstr ""
 
-#: plugins-root/check_icmp.c:1253
+#: plugins-root/check_icmp.c:1299
 msgid "icmp packet size (currenly ignored)"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1255
+#: plugins-root/check_icmp.c:1301
 msgid "verbose"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1258
+#: plugins-root/check_icmp.c:1305
 msgid "The -H switch is optional. Naming a host (or several) to check is not."
 msgstr ""
 
-#: plugins-root/check_icmp.c:1259
+#: plugins-root/check_icmp.c:1307
 msgid ""
 "Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1260
+#: plugins-root/check_icmp.c:1308
 msgid "packet loss.  The default values should work well for most users."
 msgstr ""
 
-#: plugins-root/check_icmp.c:1261
+#: plugins-root/check_icmp.c:1309
 msgid ""
 "You can specify different RTA factors using the standardized abbreviations"
 msgstr ""
 
-#: plugins-root/check_icmp.c:1262
+#: plugins-root/check_icmp.c:1310
 msgid ""
 "us (microseconds), ms (milliseconds, default) or just plain s for seconds."
 msgstr ""
 
-#: plugins-root/check_icmp.c:1267
+#: plugins-root/check_icmp.c:1316
 msgid "The -v switch can be specified several times for increased verbosity."
 msgstr ""
diff -uNr nagios-plugins-1.4.11/REQUIREMENTS nagios-plugins-1.4.12/REQUIREMENTS
--- nagios-plugins-1.4.11/REQUIREMENTS	2007-09-23 13:03:33.000000000 +0200
+++ nagios-plugins-1.4.12/REQUIREMENTS	2008-05-23 11:09:17.000000000 +0200
@@ -7,6 +7,10 @@
 usually not compiled.  Requirements for various plugins are listed
 below...
 
+check_ldaps, check_http --ssl, check_tcp --ssl, check_smtp --starttls
+	- Requires openssl or gnutls libraries for SSL connections
+	  http://www.openssl.org, http://www.gnu.org/software/gnutls
+
 check_fping:
 	- Requires the fping utility distributed with SATAN.  Either
 	  download and install SATAN or grab the fping program from
@@ -43,11 +47,14 @@
 	  http://www.postgresql.org/
 
 check_radius:
-	- Requires the radiusclient library available from
+	- Requires the radiusclient-ng library available from:
+	  http://developer.berlios.de/projects/radiusclient-ng/
+	- This plugin also works with the original radiusclient library from
 	  ftp://ftp.cityline.net/pub/radiusclient/
 		RPM (rpmfind): radiusclient 0.3.2, radiusclient-devel-0.3.2
-	- Alternatively radiusclient-ng can be used:
-	  http://developer.berlios.de/projects/radiusclient-ng/
+	  Unless you're using a distro-maintained version of this library you
+	  probably want to use radiusclient-ng. The original radiusclient library is
+	  unmaintained and has many known issues, particularly with 64bit systems.
 
 check_snmp:
 	- Requires the NET-SNMP package available from
diff -uNr nagios-plugins-1.4.11/THANKS nagios-plugins-1.4.12/THANKS
--- nagios-plugins-1.4.11/THANKS	2007-12-13 23:43:49.000000000 +0100
+++ nagios-plugins-1.4.12/THANKS	2008-05-28 00:06:09.000000000 +0200
@@ -107,6 +107,7 @@
 Bob Ingraham
 Cire Iriarte
 Valdimir Ivaschenko
+Harald Jenny
 Mark Jewiss
 Frank Kannemann
 Roy Sigurd Karlsbakk
@@ -172,6 +173,7 @@
 Phil Randal
 Abid Rasheed
 Jeremy Reed
+Alessandro Ren
 Joe Rhett
 Cliff Rice
 Alain Richard
@@ -190,6 +192,7 @@
 Thomas Schimpke
 Benjamin Schmid
 Henning Schmiedehausen
+Christian Schneemann
 Cove Schneider
 Enrico Scholz
 Sebastian Schubert
@@ -212,6 +215,7 @@
 Julien Touche
 Kyle Tucker
 Jerome Tytgat
+Matthias Urlichs
 Matteo HCE Valsasna
 Jon Vandegrift
 Laurent Vaslin
@@ -220,6 +224,7 @@
 Robert August Vincent
 Dave Viner
 Nathan Vonnahme
+Jan Wagner
 John Warburton
 Christian G Warden
 Stuart Webster
@@ -231,5 +236,6 @@
 Paul Wiggins
 Howard Wilkinson
 Shawn Wills
+Rob Windsor
 Mario Witte
 Jamie Zawinski
diff -uNr nagios-plugins-1.4.11/tools/build_perl_modules nagios-plugins-1.4.12/tools/build_perl_modules
--- nagios-plugins-1.4.11/tools/build_perl_modules	2007-09-13 13:36:57.000000000 +0200
+++ nagios-plugins-1.4.12/tools/build_perl_modules	2008-02-28 13:54:49.000000000 +0100
@@ -74,7 +74,9 @@
 	chdir $dir or die "Can't chdir into $dir";
 
 	# Need to add this so this module is found for subsequent ones
-	$ENV{PERL5LIB}="$topdir/$dir/blib/lib:$ENV{PERL5LIB}";
+	my @dirs = split(":", $ENV{PERL5LIB} || "");
+	unshift @dirs, "$topdir/$dir/blib/lib";
+	$ENV{PERL5LIB}=join(":", @dirs);
 
 	if ($opts->{t}) {
 		system("make test") == 0 or die "Can't run make test failed";
diff -uNr nagios-plugins-1.4.11/tools/tinderbox_build nagios-plugins-1.4.12/tools/tinderbox_build
--- nagios-plugins-1.4.11/tools/tinderbox_build	2007-12-12 02:27:48.000000000 +0100
+++ nagios-plugins-1.4.12/tools/tinderbox_build	2008-01-09 05:27:52.000000000 +0100
@@ -14,7 +14,7 @@
 use Cwd;
 use Time::Local;
 
-my $Version = '$Revision: 1866 $';
+my $Version = '$Revision: 1904 $';
 
 my $myhost = hostname;
 chomp($myhost);
@@ -266,8 +266,8 @@
 
 sub maketest {
         # Tests
-        print LOG "LANG=C make test-debug 2>&1\n";
-        open( MAKE, "LANG=C make test-debug && make install DESTDIR=$TmpDir/tinderbox_build.$$ && make install-strip DESTDIR=$TmpDir/tinderbox_build2.$$ 2>&1 |");
+        print LOG "LANG=C make test 2>&1\n";
+        open( MAKE, "LANG=C make test && make install DESTDIR=$TmpDir/tinderbox_build.$$ && make install-strip DESTDIR=$TmpDir/tinderbox_build2.$$ 2>&1 |");
 	while ( <MAKE> ) {
 		print $_;
 		print LOG $_;
