Browse Source

Import upstream version 3.4.4

Aaron Turner 11 years ago
parent
commit
59f71d26a3
100 changed files with 9630 additions and 21379 deletions
  1. 10 8
      Makefile.in
  2. 10 10
      aclocal.m4
  3. 68 128
      config/config.guess
  4. 31 12
      config/config.sub
  5. 8 8
      config/ltmain.sh
  6. 8544 20503
      configure
  7. 30 2
      configure.ac
  8. 16 2
      docs/CHANGELOG
  9. 4 4
      docs/LICENSE
  10. 1 1
      docs/Makefile.am
  11. 3 2
      docs/Makefile.in
  12. 106 0
      docs/Win32Readme.txt
  13. 2 1
      lib/Makefile.in
  14. 2 2
      libopts/COPYING.gplv3
  15. 1 1
      libopts/COPYING.lgplv3
  16. 1 1
      libopts/Makefile.am
  17. 3 2
      libopts/Makefile.in
  18. 1 1
      libopts/README
  19. 37 6
      libopts/ag-char-map.h
  20. 190 155
      libopts/autoopts.c
  21. 4 5
      libopts/autoopts.h
  22. 65 64
      libopts/autoopts/options.h
  23. 156 152
      libopts/autoopts/usage-txt.h
  24. 4 5
      libopts/boolean.c
  25. 2 3
      libopts/compat/compat.h
  26. 2 2
      libopts/compat/pathfind.c
  27. 3 3
      libopts/compat/windows-config.h
  28. 24 10
      libopts/configfile.c
  29. 4 5
      libopts/cook.c
  30. 4 5
      libopts/enumeration.c
  31. 15 31
      libopts/environment.c
  32. 7 7
      libopts/file.c
  33. 7 6
      libopts/genshell.c
  34. 10 10
      libopts/genshell.h
  35. 4 5
      libopts/load.c
  36. 31 34
      libopts/m4/libopts.m4
  37. 4 3
      libopts/m4/liboptschk.m4
  38. 4 5
      libopts/makeshell.c
  39. 4 5
      libopts/nested.c
  40. 26 15
      libopts/numeric.c
  41. 4 5
      libopts/pgusage.c
  42. 1 1
      libopts/proto.h
  43. 4 5
      libopts/putshell.c
  44. 4 4
      libopts/reset.c
  45. 4 5
      libopts/restore.c
  46. 7 7
      libopts/save.c
  47. 4 5
      libopts/sort.c
  48. 4 5
      libopts/stack.c
  49. 4 5
      libopts/streqvcmp.c
  50. 4 5
      libopts/text_mmap.c
  51. 4 5
      libopts/time.c
  52. 3 4
      libopts/tokenize.c
  53. 6 7
      libopts/usage.c
  54. 1 4
      libopts/value-type.c
  55. 1 1
      libopts/value-type.h
  56. 4 5
      libopts/version.c
  57. 1 4
      libopts/xat-attribute.c
  58. 1 1
      libopts/xat-attribute.h
  59. 5 5
      m4/ltversion.m4
  60. 2 1
      scripts/Makefile.in
  61. 4 3
      src/Makefile.in
  62. 2 2
      src/bridge.c
  63. 2 2
      src/bridge.h
  64. 2 1
      src/common/Makefile.in
  65. 2 2
      src/common/abort.c
  66. 2 2
      src/common/abort.h
  67. 3 3
      src/common/cache.c
  68. 2 2
      src/common/cache.h
  69. 6 2
      src/common/cidr.c
  70. 2 2
      src/common/cidr.h
  71. 3 1
      src/common/dlt_names.c
  72. 2 1
      src/common/dlt_names.h
  73. 3 3
      src/common/err.c
  74. 2 2
      src/common/err.h
  75. 2 2
      src/common/fakepcap.c
  76. 2 2
      src/common/fakepcap.h
  77. 2 2
      src/common/fakepcapnav.c
  78. 2 2
      src/common/fakepcapnav.h
  79. 1 0
      src/common/fakepoll.c
  80. 1 0
      src/common/fakepoll.h
  81. 2 2
      src/common/get.c
  82. 2 2
      src/common/get.h
  83. 2 2
      src/common/interface.c
  84. 31 1
      src/common/interface.h
  85. 2 2
      src/common/list.c
  86. 2 2
      src/common/list.h
  87. 3 2
      src/common/mac.c
  88. 3 2
      src/common/mac.h
  89. 2 2
      src/common/pcap_dlt.h
  90. 2 2
      src/common/rdtsc.c
  91. 1 1
      src/common/rdtsc.h
  92. 2 2
      src/common/sendpacket.c
  93. 2 2
      src/common/sendpacket.h
  94. 2 2
      src/common/services.c
  95. 2 2
      src/common/services.h
  96. 1 1
      src/common/svn_version.c
  97. 2 2
      src/common/tcpdump.c
  98. 2 2
      src/common/tcpdump.h
  99. 2 2
      src/common/timer.c
  100. 0 0
      src/common/timer.h

+ 10 - 8
Makefile.in

@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -173,6 +173,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PCAP_BPF_H_FILE = @PCAP_BPF_H_FILE@
@@ -319,7 +320,7 @@ distclean-libtool:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -344,7 +345,7 @@ $(RECURSIVE_TARGETS):
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -511,7 +512,8 @@ distdir: $(DISTFILES)
 	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
 	  dist-hook
 	-test -n "$(am__skip_mode_fix)" \
-	|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
@@ -555,17 +557,17 @@ dist dist-all: distdir
 distcheck: dist
 	case '$(DIST_ARCHIVES)' in \
 	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
-	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lzma*) \
-	  unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
 	*.tar.xz*) \
 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac

+ 10 - 10
aclocal.m4

@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
@@ -13,8 +13,8 @@
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
+[m4_warning([this file was generated for autoconf 2.65.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
@@ -7859,15 +7859,15 @@ m4_define([lt_dict_filter],
 
 # Generated from ltversion.in.
 
-# serial 3012 ltversion.m4
+# serial 3017 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.2.6])
-m4_define([LT_PACKAGE_REVISION], [1.3012])
+m4_define([LT_PACKAGE_VERSION], [2.2.6b])
+m4_define([LT_PACKAGE_REVISION], [1.3017])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.6'
-macro_revision='1.3012'
+[macro_version='2.2.6b'
+macro_revision='1.3017'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
@@ -7980,7 +7980,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -7996,7 +7996,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])

+ 68 - 128
config/config.guess

@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2009-04-27'
+timestamp='2009-11-20'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@ timestamp='2009-04-27'
 # the same distribution terms that you use for the rest of that program.
 
 
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -170,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 		eval $set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
+			| grep -q __ELF__
 		then
 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
 		    # Return netbsd for either.  FIX?
@@ -333,6 +333,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 	eval $set_cc_for_build
 	SUN_ARCH="i386"
@@ -656,7 +659,7 @@ EOF
 	    # => hppa64-hp-hpux11.23
 
 	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep __LP64__ >/dev/null
+		grep -q __LP64__
 	    then
 		HP_ARCH="hppa2.0w"
 	    else
@@ -807,12 +810,12 @@ EOF
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    *:Interix*:[3456]*)
+    *:Interix*:*)
     	case ${UNAME_MACHINE} in
 	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
-	    EM64T | authenticamd | genuineintel)
+	    authenticamd | genuineintel | EM64T)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
 	    IA64)
@@ -822,6 +825,9 @@ EOF
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
 	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -851,6 +857,20 @@ EOF
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -873,6 +893,17 @@ EOF
     frv:Linux:*:*)
     	echo frv-unknown-linux-gnu
 	exit ;;
+    i*86:Linux:*:*)
+	LIBC=gnu
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	exit ;;
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
@@ -882,78 +913,34 @@ EOF
     m68*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips
-	#undef mipsel
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-	;;
-    mips64:Linux:*:*)
+    mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
 	#undef CPU
-	#undef mips64
-	#undef mips64el
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
+	CPU=${UNAME_MACHINE}el
 	#else
 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
+	CPU=${UNAME_MACHINE}
 	#else
 	CPU=
 	#endif
 	#endif
 EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
 	echo or32-unknown-linux-gnu
 	exit ;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit ;;
     padre:Linux:*:*)
 	echo sparc-unknown-linux-gnu
 	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -962,8 +949,11 @@ EOF
 	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
 	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
@@ -986,66 +976,6 @@ EOF
     xtensa*:Linux:*:*)
     	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^LIBC/{
-		s: ::g
-		p
-	    }'`"
-	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-		exit
-	}
-	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
-	;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
@@ -1074,7 +1004,7 @@ EOF
     i*86:syllable:*:*)
 	echo ${UNAME_MACHINE}-pc-syllable
 	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
 	echo i386-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     i*86:*DOS:*:*)
@@ -1182,7 +1112,7 @@ EOF
     rs6000:LynxOS:2.*:*)
 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     SM[BE]S:UNIX_SV:*:*)
@@ -1275,6 +1205,16 @@ EOF
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
+	    i386)
+		eval $set_cc_for_build
+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		      grep IS_64BIT_ARCH >/dev/null
+		  then
+		      UNAME_PROCESSOR="x86_64"
+		  fi
+		fi ;;
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}

+ 31 - 12
config/config.sub

@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2009-04-17'
+timestamp='2009-11-20'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@ timestamp='2009-04-17'
 
 
 # Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# diff and a properly formatted GNU ChangeLog entry.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
 # If it is invalid, we print an error message on stderr and exit with code 1.
 # Otherwise, we print the canonical config type on stdout and succeed.
 
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
 # that are meaningful with *any* GNU software.
@@ -149,10 +152,13 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray)
+	-apple | -axis | -knuth | -cray | -microblaze)
 		os=
 		basic_machine=$1
 		;;
+        -bluegene*)
+	        os=-cnk
+		;;
 	-sim | -cisco | -oki | -wec | -winbond)
 		os=
 		basic_machine=$1
@@ -281,6 +287,7 @@ case $basic_machine in
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
+	| rx \
 	| score \
 	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
@@ -288,13 +295,14 @@ case $basic_machine in
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
 	| spu | strongarm \
 	| tahoe | thumb | tic4x | tic80 | tron \
+	| ubicom32 \
 	| v850 | v850e \
 	| we32k \
 	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
 	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
+	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
 		os=-none
@@ -337,7 +345,7 @@ case $basic_machine in
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -365,7 +373,7 @@ case $basic_machine in
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
-	| romp-* | rs6000-* \
+	| romp-* | rs6000-* | rx-* \
 	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
@@ -374,6 +382,7 @@ case $basic_machine in
 	| tahoe-* | thumb-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 	| tron-* \
+	| ubicom32-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
@@ -467,6 +476,10 @@ case $basic_machine in
 		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
 		os=-linux
 		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
@@ -719,6 +732,9 @@ case $basic_machine in
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
+        microblaze)
+		basic_machine=microblaze-xilinx
+		;;
 	mingw32)
 		basic_machine=i386-pc
 		os=-mingw32
@@ -1240,6 +1256,9 @@ case $os in
         # First match some system type aliases
         # that might get confused with valid system types.
 	# -solaris* is a basic system type, with this one exception.
+        -auroraux)
+	        os=-auroraux
+		;;
 	-solaris1 | -solaris1.*)
 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
 		;;
@@ -1260,9 +1279,9 @@ case $os in
 	# Each alternative MUST END IN A *, to match a version number.
 	# -sysv* is not here because it comes later, after sysvr4.
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -kopensolaris* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
 	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1283,7 +1302,7 @@ case $os in
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1613,7 +1632,7 @@ case $basic_machine in
 			-sunos*)
 				vendor=sun
 				;;
-			-aix*)
+			-cnk*|-aix*)
 				vendor=ibm
 				;;
 			-beos*)

+ 8 - 8
config/ltmain.sh

@@ -1,6 +1,6 @@
 # Generated from ltmain.m4sh.
 
-# ltmain.sh (GNU libtool) 2.2.6
+# ltmain.sh (GNU libtool) 2.2.6b
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
@@ -65,7 +65,7 @@
 #       compiler:		$LTCC
 #       compiler flags:		$LTCFLAGS
 #       linker:		$LD (gnu? $with_gnu_ld)
-#       $progname:		(GNU libtool) 2.2.6
+#       $progname:		(GNU libtool) 2.2.6b
 #       automake:		$automake_version
 #       autoconf:		$autoconf_version
 #
@@ -73,9 +73,9 @@
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=2.2.6
+VERSION=2.2.6b
 TIMESTAMP=""
-package_revision=1.3012
+package_revision=1.3017
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -116,15 +116,15 @@ $lt_unset CDPATH
 
 : ${CP="cp -f"}
 : ${ECHO="echo"}
-: ${EGREP="/usr/bin/grep -E"}
-: ${FGREP="/usr/bin/grep -F"}
-: ${GREP="/usr/bin/grep"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
 : ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/opt/local/bin/gsed"}
+: ${SED="/bin/sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 

File diff suppressed because it is too large
+ 8544 - 20503
configure


+ 30 - 2
configure.ac

@@ -1,5 +1,5 @@
 
-dnl $Id: configure.ac 2371 2009-06-23 15:54:04Z aturner $
+dnl $Id: configure.ac 2446 2010-03-30 04:58:36Z aturner $
 
 AC_INIT(tcpreplay)
 AC_CONFIG_SRCDIR(src/tcpreplay.c)
@@ -17,8 +17,9 @@ AC_CONFIG_MACRO_DIR([m4])
 dnl Set version info here!
 MAJOR_VERSION=3
 MINOR_VERSION=4
-MICRO_VERSION=3
+MICRO_VERSION=4
 TCPREPLAY_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
+PACKAGE_URL=http://tcpreplay.synfin.net/
 
 dnl Release is only used for the RPM spec file
 TCPREPLAY_RELEASE=1
@@ -687,6 +688,33 @@ extern char pcap_version[];
     AC_MSG_RESULT(no)
 ])
 
+have_pcap_snapshot=no
+dnl Check for pcap_snapshot()
+AC_MSG_CHECKING(for pcap_snapshot)
+AC_LINK_IFELSE(AC_LANG_PROGRAM([[
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "$LPCAPINC"
+]],[[
+    pcap_t *p;
+    int len;
+
+    len = pcap_snapshot(p);
+    exit(0);
+]]), [
+    have_pcap_snapshot=yes
+    AC_MSG_RESULT(yes)
+], [
+    have_pcap_snapshot=no
+    AC_MSG_RESULT(no)
+])
+
+if test $have_pcap_snapshot = yes ; then
+    AC_DEFINE([HAVE_PCAP_SNAPSHOT], [1], 
+              [Does libpcap have pcap_snapshot?])
+fi
+
 
 # Tcpbridge requires libpcap and pcap_sendpacket()
 enable_tcpbridge=no

+ 16 - 2
docs/CHANGELOG

@@ -1,6 +1,20 @@
-$Id: CHANGELOG 2374 2009-06-25 18:41:18Z aturner $
+$Id: CHANGELOG 2449 2010-04-04 06:39:38Z aturner $
 
-06/25/09: Version 3.4.3
+04/04/2010 Version 3.4.4
+    - Set default timing method to either gtod or abstime (#404)
+    - Fix IPv6 parsing of CIDR's (#405)
+    - Add support for preloading the memory cache (#410)
+    - Generate more useful error when packets are too small (#411)
+    - Update to libopts/Autogen 5.9.9 (#412)
+    - Ship Win32Readme.txt file (#413)
+    - Update copyright notice to 2010 (#416)
+    - Dramatically enhance --portmap option (#417)
+    - Update autotools (#423)
+    - Add support for printing statistics periodically during the run (#424)
+    - Warn user when pcap snaplen < 65535 (#425)
+    - Add 802.1q processing support tcpprep (#428)
+
+06/25/2009: Version 3.4.3
     - Link libnl when newer versions of libpcap require it (#397)
     - Ship m4 directory (#398)
     - Upgrade to latest autotools scripts (#400)

+ 4 - 4
docs/LICENSE

@@ -1,5 +1,5 @@
-$Id: LICENSE 1997 2008-04-27 05:35:10Z aturner $
-Copyright (c) 2001-2008 Aaron Turner.  aturner at synfin dot net
+$Id: LICENSE 2441 2010-03-30 03:21:52Z aturner $
+Copyright (c) 2001-2010 Aaron Turner.  aturner at synfin dot net
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -27,5 +27,5 @@ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-This product includes software developed by the University of California, 
-Berkeley, Lawrence Berkeley Laboratory and its contributors. 
+This product includes software developed by the University of California,
+Berkeley, Lawrence Berkeley Laboratory and its contributors.

+ 1 - 1
docs/Makefile.am

@@ -29,7 +29,7 @@ postweb: manpages
 	scp CHANGELOG TODO aturner@malbec.synfin.net:/var/vhosts/tcpreplay/
 
 
-EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE 
+EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE Win32Readme.txt
 
 clean-docs: clean
 	-rm -f web/*.html

+ 3 - 2
docs/Makefile.in

@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -117,6 +117,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PCAP_BPF_H_FILE = @PCAP_BPF_H_FILE@
@@ -192,7 +193,7 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 MAKEFLAGS = -s
-EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE 
+EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE Win32Readme.txt
 MAINTAINERCLEANFILES = Makefile.in 
 all: all-am
 

+ 106 - 0
docs/Win32Readme.txt

@@ -0,0 +1,106 @@
+$Id: Win32Readme.txt 2102 2009-01-04 22:52:51Z aturner $
+This document attempts to explain how to get tcpreplay compiled and running
+under Windows.  Please note that this document is a work in progress and
+Windows support in general considered EXPERIMENTAL right now.
+
+
+Background:
+
+Tcpreplay is not a native Win32 application right now.  Hence it requires
+Cygwin. (http://www.cygwin.com).  Cygwin creates a Linux-like environment
+on your Windows system which allows Linux/UNIX programs to run after a
+recompile.
+
+Tcpreplay supports numerous API's for sending packets depending on the 
+operating system.  Under Windows, the only supported method of sending
+packets is with WinPcap 4.0.  (http://www.winpcap.org)  Please be sure to
+install both the WinPcap driver AND the developer pack.
+
+Right now, I've only done testing under Windows XP.  My guess is that 2000
+and 2003 should have no problems.  Since WinPcap and Cygwin are EOL'ing 
+support for Win98/ME, I doubt that they'll ever be supported.  Not sure
+the story on Vista, but I assume WinPcap & Cygwin will support them sooner
+or later if not already.  Would love to hear if anyone has any luck one
+way or another.
+
+What you will need:
+
+- Cygwin environment
+- GCC compiler and system header files
+- WinPcap 4.0 DLL
+- WinPcap 4.0 Developer Pack aka WpdPack (headers, etc)
+
+Additional requirements if building from SVN:
+- GNU build chain tools (Autoconf, Automake, Autoheader)
+- GNU Autogen  (*)
+
+* NOTE: The guile package which comes with Cygwin is broken and breaks
+Autogen, so you'll need to compile guile from scratch to fix.  Hence, I
+strongly suggest you build Tcpreplay from the tarball and not SVN.  See 
+below for how to "fix" this issue if you want to compile from SVN.
+
+
+
+******************************* IMPORTANT ******************************
+Note 1: 
+People have reported problems with WpdPack (the developer pack for
+Winpcap) being installed outside of the Cygwin root directory.  Hence, I
+strongly recommend you install it under the Cygwin root as /WpdPack.
+
+Note 2:
+There's a big problem with the Cygwin Guile package which breaks
+GNU Autogen which Tcpreplay depends on when building from Subversion. 
+
+What this means is that to build from Subversion you must do the following:
+- Download GNU Guile from http://www.gnu.org/software/guile/guile.html
+
+- Extract the tarball and do the following:
+libtoolize --copy --force
+./configure
+make
+make install
+
+This will install guile in /usr/local.
+
+The other problem is that guile-config returns the linker flags in the wrong 
+order.  To fix this, rename /usr/local/bin/guile-config to 
+/usr/local/bin/guile-config.original and create a new shell script in it's
+place:
+
+---- BEGIN SHELL SCRIPT ----
+#!/bin/bash
+# Replacement /usr/local/bin/guile-config script
+if test -z "$1" ; then
+       guile-config.original
+elif test "$1" == "link"; then
+       echo "-L/usr/local/lib -lguile -lltdl -lgmp -lcrypt -lm -lltdl"
+else
+       guile-config.original $1
+fi
+---- END SHELL SCRIPT ----
+
+******************************* IMPORTANT ******************************
+
+Directions:
+- Install all the requirements
+
+- Enter into the Cygwin environment by clicking on the Cygwin icon
+
+- If you checked out the code from SVN, see Note 2 above and then run 
+  the autogen.sh bootstrapper:
+	./autogen.sh
+
+- Configure tcpreplay:
+	./configure --enable-debug
+
+- Build tcpreplay:	
+	make
+	
+- Install:
+	make install
+	
+- Try it out!
+
+
+
+

+ 2 - 1
lib/Makefile.in

@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -142,6 +142,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PCAP_BPF_H_FILE = @PCAP_BPF_H_FILE@

+ 2 - 2
libopts/COPYING.gplv3

@@ -1,7 +1,7 @@
                     GNU GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
- copyright (c) 2007 by Bruce Korb - all rights reserved
+ copyright (c) 2009 by Bruce Korb - all rights reserved
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
-    copyright (c)  by Bruce Korb - all rights reserved
+    copyright (c) by Bruce Korb - all rights reserved
 
     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

+ 1 - 1
libopts/COPYING.lgplv3

@@ -1,7 +1,7 @@
 		   GNU LESSER GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
- copyright (c) 2007 by Bruce Korb - all rights reserved
+ copyright (c) 2009 by Bruce Korb - all rights reserved
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 

+ 1 - 1
libopts/Makefile.am

@@ -7,7 +7,7 @@ noinst_LTLIBRARIES      = libopts.la
 endif
 libopts_la_SOURCES      = libopts.c
 libopts_la_CPPFLAGS     = -I$(top_srcdir)
-libopts_la_LDFLAGS      = -version-info  32:0:7
+libopts_la_LDFLAGS      = -version-info  32:2:7
 EXTRA_DIST              = \
     COPYING.gplv3           COPYING.lgplv3          COPYING.mbsd  \
     MakeDefs.inc            README                  ag-char-map.h  \

+ 3 - 2
libopts/Makefile.in

@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -164,6 +164,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PCAP_BPF_H_FILE = @PCAP_BPF_H_FILE@
@@ -243,7 +244,7 @@ MAINTAINERCLEANFILES = Makefile.in
 @INSTALL_LIBOPTS_FALSE@noinst_LTLIBRARIES = libopts.la
 libopts_la_SOURCES = libopts.c
 libopts_la_CPPFLAGS = -I$(top_srcdir)
-libopts_la_LDFLAGS = -version-info  32:0:7
+libopts_la_LDFLAGS = -version-info  32:2:7
 EXTRA_DIST = \
     COPYING.gplv3           COPYING.lgplv3          COPYING.mbsd  \
     MakeDefs.inc            README                  ag-char-map.h  \

+ 1 - 1
libopts/README

@@ -85,7 +85,7 @@ will need to hand craft the rules for building the library.
 
 LICENSING:
 
-This material is copyright 1993-2007 by Bruce Korb.
+This material is copyright (c) 1993-2009 by Bruce Korb.
 You are licensed to use this under the terms of either
 the GNU Lesser General Public License (see: COPYING.lgpl), or,
 at your option, the modified Berkeley Software Distribution

+ 37 - 6
libopts/ag-char-map.h

@@ -1,5 +1,5 @@
 /*
- *   Character mapping generated 12/31/08 19:07:31
+ *   Character mapping generated 08/08/09 10:14:55
  *
  *  This file contains the character classifications
  *  used by AutoGen and AutoOpts for identifying tokens.
@@ -12,17 +12,48 @@
 #  include <inttypes.h>
 # elif defined(HAVE_STDINT_H)
 #  include <stdint.h>
+
 # else
-#  error "no int-types header."
-#  choke-me-now.
-# endif
-#else
+#   ifndef HAVE_INT8_T
+        typedef signed char     int8_t;
+#   endif
+#   ifndef HAVE_UINT8_T
+        typedef unsigned char   uint8_t;
+#   endif
+#   ifndef HAVE_INT16_T
+        typedef signed short    int16_t;
+#   endif
+#   ifndef HAVE_UINT16_T
+        typedef unsigned short  uint16_t;
+#   endif
+#   ifndef HAVE_UINT_T
+        typedef unsigned int    uint_t;
+#   endif
+
+#   ifndef HAVE_INT32_T
+#    if SIZEOF_INT == 4
+        typedef signed int      int32_t;
+#    elif SIZEOF_LONG == 4
+        typedef signed long     int32_t;
+#    endif
+#   endif
+
+#   ifndef HAVE_UINT32_T
+#    if SIZEOF_INT == 4
+        typedef unsigned int    uint32_t;
+#    elif SIZEOF_LONG == 4
+        typedef unsigned long   uint32_t;
+#    endif
+#   endif
+# endif /* HAVE_*INT*_H header */
+
+#else /* not HAVE_CONFIG_H -- */
 # ifdef __sun
 #  include <inttypes.h>
 # else
 #  include <stdint.h>
 # endif
-#endif
+#endif /* HAVE_CONFIG_H */
 
 #if 0 /* mapping specification source (from autogen.map) */
 // 

+ 190 - 155
libopts/autoopts.c

@@ -1,7 +1,7 @@
 
 /*
- *  $Id: autoopts.c,v 4.36 2008/12/20 18:35:26 bkorb Exp $
- *  Time-stamp:      "2008-12-16 14:52:28 bkorb"
+ *  $Id: autoopts.c,v 4.45 2009/08/01 17:43:05 bkorb Exp $
+ *  Time-stamp:      "2009-01-12 02:49:49 bkorb"
  *
  *  This file contains all of the routines that must be linked into
  *  an executable to use the generated option processing.  The optional
@@ -10,8 +10,7 @@
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
+ *  AutoOpts is copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
@@ -25,8 +24,8 @@
  *
  *  These files have the following md5sums:
  *
- *  239588c55c22c60ffe159946a760a33e pkg/libopts/COPYING.gplv3
- *  fa82ca978890795162346e661b47161a pkg/libopts/COPYING.lgplv3
+ *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
+ *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
  *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
  */
 
@@ -38,7 +37,16 @@ static tSuccess
 findOptDesc( tOptions* pOpts, tOptState* pOptState );
 
 static tSuccess
-nextOption( tOptions* pOpts, tOptState* pOptState );
+next_opt_arg_must(tOptions* pOpts, tOptState* pOptState);
+
+static tSuccess
+next_opt_arg_may(tOptions* pOpts, tOptState* pOptState);
+
+static tSuccess
+next_opt_arg_none(tOptions* pOpts, tOptState* pOptState);
+
+static tSuccess
+nextOption(tOptions* pOpts, tOptState* pOptState);
 
 static tSuccess
 doPresets( tOptions* pOpts );
@@ -546,186 +554,213 @@ findOptDesc( tOptions* pOpts, tOptState* pOptState )
 }
 
 
-/*
- *  nextOption
- *
- *  Find the option descriptor and option argument (if any) for the
- *  next command line argument.  DO NOT modify the descriptor.  Put
- *  all the state in the state argument so that the option can be skipped
- *  without consequence (side effect).
- */
 static tSuccess
-nextOption( tOptions* pOpts, tOptState* pOptState )
+next_opt_arg_must(tOptions* pOpts, tOptState* pOptState)
 {
-    tSuccess res;
-    enum { ARG_NONE, ARG_MAY, ARG_MUST } arg_type = ARG_NONE;
-    teOptArgType at;
-
-    res = findOptDesc( pOpts, pOptState );
-    if (! SUCCESSFUL( res ))
-        return res;
-    pOptState->flags |= (pOptState->pOD->fOptState & OPTST_PERSISTENT_MASK);
-    at = OPTST_GET_ARGTYPE(pOptState->flags);
-
     /*
-     *  Figure out what to do about option arguments.  An argument may be
-     *  required, not associated with the option, or be optional.  We detect the
-     *  latter by examining for an option marker on the next possible argument.
-     *  Disabled mode option selection also disables option arguments.
+     *  An option argument is required.  Long options can either have
+     *  a separate command line argument, or an argument attached by
+     *  the '=' character.  Figure out which.
      */
-    if ((pOptState->flags & OPTST_DISABLED) != 0)
-        arg_type = ARG_NONE;
-    else if (at == OPARG_TYPE_NONE)
-        arg_type = ARG_NONE;
-    else if (pOptState->flags & OPTST_ARG_OPTIONAL)
-        arg_type = ARG_MAY;
-    else
-        arg_type = ARG_MUST;
-
-    switch (arg_type) {
-    case ARG_MUST:
+    switch (pOptState->optType) {
+    case TOPT_SHORT:
         /*
-         *  An option argument is required.  Long options can either have
-         *  a separate command line argument, or an argument attached by
-         *  the '=' character.  Figure out which.
+         *  See if an arg string follows the flag character
          */
-        switch (pOptState->optType) {
-        case TOPT_SHORT:
-            /*
-             *  See if an arg string follows the flag character
-             */
-            if (*++(pOpts->pzCurOpt) == NUL)
-                pOpts->pzCurOpt = pOpts->origArgVect[ pOpts->curOptIdx++ ];
-            pOptState->pzOptArg = pOpts->pzCurOpt;
-            break;
+        if (*++(pOpts->pzCurOpt) == NUL)
+            pOpts->pzCurOpt = pOpts->origArgVect[ pOpts->curOptIdx++ ];
+        pOptState->pzOptArg = pOpts->pzCurOpt;
+        break;
 
-        case TOPT_LONG:
-            /*
-             *  See if an arg string has already been assigned (glued on
-             *  with an `=' character)
-             */
-            if (pOptState->pzOptArg == NULL)
-                pOptState->pzOptArg = pOpts->origArgVect[ pOpts->curOptIdx++ ];
-            break;
+    case TOPT_LONG:
+        /*
+         *  See if an arg string has already been assigned (glued on
+         *  with an `=' character)
+         */
+        if (pOptState->pzOptArg == NULL)
+            pOptState->pzOptArg = pOpts->origArgVect[ pOpts->curOptIdx++ ];
+        break;
 
-        default:
+    default:
 #ifdef DEBUG
-            fputs( "AutoOpts lib error: option type not selected\n",
-                   stderr );
-            exit( EXIT_FAILURE );
+        fputs( "AutoOpts lib error: option type not selected\n",
+               stderr );
+        exit( EXIT_FAILURE );
 #endif
 
-        case TOPT_DEFAULT:
-            /*
-             *  The option was selected by default.  The current token is
-             *  the option argument.
-             */
-            break;
-        }
-
+    case TOPT_DEFAULT:
         /*
-         *  Make sure we did not overflow the argument list.
+         *  The option was selected by default.  The current token is
+         *  the option argument.
          */
-        if (pOpts->curOptIdx > pOpts->origArgCt) {
-            fprintf( stderr, zMisArg, pOpts->pzProgPath,
-                     pOptState->pOD->pz_Name );
-            return FAILURE;
-        }
-
-        pOpts->pzCurOpt = NULL;  /* next time advance to next arg */
         break;
+    }
 
-    case ARG_MAY:
-        /*
-         *  An option argument is optional.
-         */
-        switch (pOptState->optType) {
-        case TOPT_SHORT:
-            if (*++pOpts->pzCurOpt != NUL)
-                pOptState->pzOptArg = pOpts->pzCurOpt;
-            else {
-                char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
-
-                /*
-                 *  BECAUSE it is optional, we must make sure
-                 *  we did not find another flag and that there
-                 *  is such an argument.
-                 */
-                if ((pzLA == NULL) || (*pzLA == '-'))
-                    pOptState->pzOptArg = NULL;
-                else {
-                    pOpts->curOptIdx++; /* argument found */
-                    pOptState->pzOptArg = pzLA;
-                }
-            }
-            break;
+    /*
+     *  Make sure we did not overflow the argument list.
+     */
+    if (pOpts->curOptIdx > pOpts->origArgCt) {
+        fprintf( stderr, zMisArg, pOpts->pzProgPath,
+                 pOptState->pOD->pz_Name );
+        return FAILURE;
+    }
+
+    pOpts->pzCurOpt = NULL;  /* next time advance to next arg */
+    return SUCCESS;
+}
+
+
+static tSuccess
+next_opt_arg_may(tOptions* pOpts, tOptState* pOptState)
+{
+    /*
+     *  An option argument is optional.
+     */
+    switch (pOptState->optType) {
+    case TOPT_SHORT:
+        if (*++pOpts->pzCurOpt != NUL)
+            pOptState->pzOptArg = pOpts->pzCurOpt;
+        else {
+            char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
 
-        case TOPT_LONG:
             /*
-             *  Look for an argument if we don't already have one (glued on
-             *  with a `=' character) *AND* we are not in named argument mode
+             *  BECAUSE it is optional, we must make sure
+             *  we did not find another flag and that there
+             *  is such an argument.
              */
-            if (  (pOptState->pzOptArg == NULL)
-               && (! NAMED_OPTS(pOpts))) {
-                char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
-
-                /*
-                 *  BECAUSE it is optional, we must make sure
-                 *  we did not find another flag and that there
-                 *  is such an argument.
-                 */
-                if ((pzLA == NULL) || (*pzLA == '-'))
-                    pOptState->pzOptArg = NULL;
-                else {
-                    pOpts->curOptIdx++; /* argument found */
-                    pOptState->pzOptArg = pzLA;
-                }
+            if ((pzLA == NULL) || (*pzLA == '-'))
+                pOptState->pzOptArg = NULL;
+            else {
+                pOpts->curOptIdx++; /* argument found */
+                pOptState->pzOptArg = pzLA;
             }
-            break;
-
-        default:
-        case TOPT_DEFAULT:
-            fputs("AutoOpts lib error: defaulted to option with optional arg\n",
-                  stderr );
-            exit( EX_SOFTWARE );
         }
-
-        /*
-         *  After an option with an optional argument, we will
-         *  *always* start with the next option because if there
-         *  were any characters following the option name/flag,
-         *  they would be interpreted as the argument.
-         */
-        pOpts->pzCurOpt = NULL;
         break;
 
-    default: /* CANNOT */
+    case TOPT_LONG:
         /*
-         *  No option argument.  Make sure next time around we find
-         *  the correct option flag character for short options
+         *  Look for an argument if we don't already have one (glued on
+         *  with a `=' character) *AND* we are not in named argument mode
          */
-        if (pOptState->optType == TOPT_SHORT)
-            (pOpts->pzCurOpt)++;
+        if (  (pOptState->pzOptArg == NULL)
+              && (! NAMED_OPTS(pOpts))) {
+            char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
 
-        /*
-         *  It is a long option.  Make sure there was no ``=xxx'' argument
-         */
-        else if (pOptState->pzOptArg != NULL) {
-            fprintf( stderr, zNoArg, pOpts->pzProgPath,
-                     pOptState->pOD->pz_Name );
-            return FAILURE;
+            /*
+             *  BECAUSE it is optional, we must make sure
+             *  we did not find another flag and that there
+             *  is such an argument.
+             */
+            if ((pzLA == NULL) || (*pzLA == '-'))
+                pOptState->pzOptArg = NULL;
+            else {
+                pOpts->curOptIdx++; /* argument found */
+                pOptState->pzOptArg = pzLA;
+            }
         }
+        break;
 
-        /*
-         *  It is a long option.  Advance to next command line argument.
-         */
-        else
-            pOpts->pzCurOpt = NULL;
+    default:
+    case TOPT_DEFAULT:
+        fputs(zAO_Woops, stderr );
+        exit( EX_SOFTWARE );
     }
 
+    /*
+     *  After an option with an optional argument, we will
+     *  *always* start with the next option because if there
+     *  were any characters following the option name/flag,
+     *  they would be interpreted as the argument.
+     */
+    pOpts->pzCurOpt = NULL;
+    return SUCCESS;
+}
+
+
+static tSuccess
+next_opt_arg_none(tOptions* pOpts, tOptState* pOptState)
+{
+    /*
+     *  No option argument.  Make sure next time around we find
+     *  the correct option flag character for short options
+     */
+    if (pOptState->optType == TOPT_SHORT)
+        (pOpts->pzCurOpt)++;
+
+    /*
+     *  It is a long option.  Make sure there was no ``=xxx'' argument
+     */
+    else if (pOptState->pzOptArg != NULL) {
+        fprintf(stderr, zNoArg, pOpts->pzProgPath, pOptState->pOD->pz_Name);
+        return FAILURE;
+    }
+
+    /*
+     *  It is a long option.  Advance to next command line argument.
+     */
+    else
+        pOpts->pzCurOpt = NULL;
     return SUCCESS;
 }
 
+/*
+ *  nextOption
+ *
+ *  Find the option descriptor and option argument (if any) for the
+ *  next command line argument.  DO NOT modify the descriptor.  Put
+ *  all the state in the state argument so that the option can be skipped
+ *  without consequence (side effect).
+ */
+static tSuccess
+nextOption(tOptions* pOpts, tOptState* pOptState)
+{
+    {
+        tSuccess res;
+        res = findOptDesc( pOpts, pOptState );
+        if (! SUCCESSFUL( res ))
+            return res;
+    }
+
+    if (  ((pOptState->flags & OPTST_DEFINED) != 0)
+       && ((pOptState->pOD->fOptState & OPTST_NO_COMMAND) != 0)) {
+        fprintf(stderr, zNotCmdOpt, pOptState->pOD->pz_Name);
+        return FAILURE;
+    }
+
+    pOptState->flags |= (pOptState->pOD->fOptState & OPTST_PERSISTENT_MASK);
+
+    /*
+     *  Figure out what to do about option arguments.  An argument may be
+     *  required, not associated with the option, or be optional.  We detect the
+     *  latter by examining for an option marker on the next possible argument.
+     *  Disabled mode option selection also disables option arguments.
+     */
+    {
+        enum { ARG_NONE, ARG_MAY, ARG_MUST } arg_type = ARG_NONE;
+        tSuccess res;
+
+        if ((pOptState->flags & OPTST_DISABLED) != 0)
+            arg_type = ARG_NONE;
+
+        else if (OPTST_GET_ARGTYPE(pOptState->flags) == OPARG_TYPE_NONE)
+            arg_type = ARG_NONE;
+
+        else if (pOptState->flags & OPTST_ARG_OPTIONAL)
+            arg_type = ARG_MAY;
+
+        else
+            arg_type = ARG_MUST;
+
+        switch (arg_type) {
+        case ARG_MUST: res = next_opt_arg_must(pOpts, pOptState); break;
+        case ARG_MAY:  res = next_opt_arg_may( pOpts, pOptState); break;
+        case ARG_NONE: res = next_opt_arg_none(pOpts, pOptState); break;
+        }
+
+        return res;
+    }
+}
+
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  *

+ 4 - 5
libopts/autoopts.h

@@ -2,15 +2,14 @@
 /*
  *  Time-stamp:      "2008-11-01 20:08:06 bkorb"
  *
- *  autoopts.h  $Id: autoopts.h,v 4.29 2008/11/02 18:51:26 bkorb Exp $
+ *  autoopts.h  $Id: autoopts.h,v 4.42 2009/08/01 17:43:05 bkorb Exp $
  *
  *  This file defines all the global structures and special values
  *  used in the automated option processing library.
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
+ *  AutoOpts is copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
@@ -24,8 +23,8 @@
  *
  *  These files have the following md5sums:
  *
- *  239588c55c22c60ffe159946a760a33e pkg/libopts/COPYING.gplv3
- *  fa82ca978890795162346e661b47161a pkg/libopts/COPYING.lgplv3
+ *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
+ *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
  *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
  */
 

+ 65 - 64
libopts/autoopts/options.h

@@ -2,14 +2,14 @@
  *  
  *  DO NOT EDIT THIS FILE   (options.h)
  *  
- *  It has been AutoGen-ed  Wednesday December 31, 2008 at 07:07:15 PM PST
+ *  It has been AutoGen-ed  August  8, 2009 at 10:14:44 AM by AutoGen 5.9.9
  *  From the definitions    funcs.def
  *  and the template file   options_h
  *
  *  This file defines all the global structures and special values
  *  used in the automated option processing library.
  *
- *  Automated Options copyright 1992-Y Bruce Korb
+ *  Automated Options copyright (c) 1992-Y by Bruce Korb
  *
  *  AutoOpts is free software: you can redistribute it and/or modify it
  *  under the terms of the GNU Lesser General Public License as published
@@ -66,8 +66,8 @@
  *  values for "opt_name" are available.
  */
 
-#define  OPTIONS_STRUCT_VERSION  131072
-#define  OPTIONS_VERSION_STRING  "32:0:7"
+#define  OPTIONS_STRUCT_VERSION  131074
+#define  OPTIONS_VERSION_STRING  "32:2:7"
 #define  OPTIONS_MINIMUM_VERSION 102400
 #define  OPTIONS_MIN_VER_STRING  "25:0:0"
 
@@ -139,10 +139,12 @@ typedef enum {
     OPTST_DOCUMENT_ID        =  21, /* opt is for doc only           */
     OPTST_TWICE_ID           =  22, /* process opt twice - imm + reg */
     OPTST_DISABLE_TWICE_ID   =  23, /* process disabled option twice */
-    OPTST_SCALED_NUM_ID      =  24  /* scaled integer value          */
+    OPTST_SCALED_NUM_ID      =  24, /* scaled integer value          */
+    OPTST_NO_COMMAND_ID      =  25, /* disable from cmd line         */
+    OPTST_DEPRECATED_ID      =  26  /* support is being removed      */
 } opt_state_enum_t;
 
-#define OPTST_INIT           0U
+#define OPTST_INIT               0U
 #define OPTST_SET            (1U << OPTST_SET_ID)
 #define OPTST_PRESET         (1U << OPTST_PRESET_ID)
 #define OPTST_DEFINED        (1U << OPTST_DEFINED_ID)
@@ -167,37 +169,38 @@ typedef enum {
 #define OPTST_TWICE          (1U << OPTST_TWICE_ID)
 #define OPTST_DISABLE_TWICE  (1U << OPTST_DISABLE_TWICE_ID)
 #define OPTST_SCALED_NUM     (1U << OPTST_SCALED_NUM_ID)
-#define OPT_STATE_MASK       0x01FFFF7FU
-
-#define OPTST_SET_MASK       (  \
-        OPTST_SET | \
-        OPTST_PRESET | \
-        OPTST_RESET | \
-        OPTST_DEFINED )
-
-#define OPTST_MUTABLE_MASK   (  \
-        OPTST_SET | \
-        OPTST_PRESET | \
-        OPTST_RESET | \
-        OPTST_DEFINED | \
-        OPTST_EQUIVALENCE | \
-        OPTST_DISABLED | \
-        OPTST_ALLOC_ARG )
-
-#define OPTST_SELECTED_MASK  (  \
-        OPTST_SET | \
-        OPTST_DEFINED )
-
-#define OPTST_ARG_TYPE_MASK  (  \
-        OPTST_ARG_TYPE_1 | \
-        OPTST_ARG_TYPE_2 | \
-        OPTST_ARG_TYPE_3 | \
-        OPTST_ARG_TYPE_4 )
-
-#define OPTST_DO_NOT_SAVE_MASK   (  \
-        OPTST_NO_INIT | \
-        OPTST_DOCUMENT | \
-        OPTST_OMITTED )
+#define OPTST_NO_COMMAND     (1U << OPTST_NO_COMMAND_ID)
+#define OPTST_DEPRECATED     (1U << OPTST_DEPRECATED_ID)
+#define OPT_STATE_MASK       0x07FFFF7FU
+
+#define OPTST_SET_MASK       ( \
+        OPTST_DEFINED | OPTST_PRESET |  OPTST_RESET | \
+        OPTST_SET \
+        /* 0x0000000FU */ )
+
+#define OPTST_MUTABLE_MASK   ( \
+        OPTST_ALLOC_ARG |   OPTST_DEFINED | \
+        OPTST_DISABLED |    OPTST_EQUIVALENCE | \
+        OPTST_PRESET |      OPTST_RESET | \
+        OPTST_SET \
+        /* 0x0000007FU */ )
+
+#define OPTST_SELECTED_MASK  ( \
+        OPTST_DEFINED | OPTST_SET \
+        /* 0x00000005U */ )
+
+#define OPTST_ARG_TYPE_MASK  ( \
+        OPTST_ARG_TYPE_1 | OPTST_ARG_TYPE_2 | OPTST_ARG_TYPE_3 | \
+        OPTST_ARG_TYPE_4 \
+        /* 0x0000F000U */ )
+
+#define OPTST_DO_NOT_SAVE_MASK   ( \
+        OPTST_DOCUMENT | OPTST_NO_INIT |  OPTST_OMITTED \
+        /* 0x00280100U */ )
+
+#define OPTST_NO_USAGE_MASK  ( \
+        OPTST_DEPRECATED | OPTST_NO_COMMAND | OPTST_OMITTED \
+        /* 0x06080000U */ )
 
 #ifdef NO_OPTIONAL_OPT_ARGS
 # undef  OPTST_ARG_OPTIONAL
@@ -239,13 +242,12 @@ typedef enum {
     OPTPROC_REORDER_ID         =  11, /* reorder operands after opts    */
     OPTPROC_GNUUSAGE_ID        =  12, /* emit usage in GNU style        */
     OPTPROC_TRANSLATE_ID       =  13, /* Translate strings in tOptions  */
-    OPTPROC_HAS_IMMED_ID       =  14, /* program defines immed options  */
     OPTPROC_NXLAT_OPT_CFG_ID   =  16, /* suppress for config only       */
     OPTPROC_NXLAT_OPT_ID       =  17, /* suppress xlation always        */
     OPTPROC_PRESETTING_ID      =  19  /* opt processing in preset state */
 } optproc_state_enum_t;
 
-#define OPTPROC_NONE           0U
+#define OPTPROC_NONE               0U
 #define OPTPROC_LONGOPT        (1U << OPTPROC_LONGOPT_ID)
 #define OPTPROC_SHORTOPT       (1U << OPTPROC_SHORTOPT_ID)
 #define OPTPROC_ERRSTOP        (1U << OPTPROC_ERRSTOP_ID)
@@ -260,15 +262,14 @@ typedef enum {
 #define OPTPROC_REORDER        (1U << OPTPROC_REORDER_ID)
 #define OPTPROC_GNUUSAGE       (1U << OPTPROC_GNUUSAGE_ID)
 #define OPTPROC_TRANSLATE      (1U << OPTPROC_TRANSLATE_ID)
-#define OPTPROC_HAS_IMMED      (1U << OPTPROC_HAS_IMMED_ID)
 #define OPTPROC_NXLAT_OPT_CFG  (1U << OPTPROC_NXLAT_OPT_CFG_ID)
 #define OPTPROC_NXLAT_OPT      (1U << OPTPROC_NXLAT_OPT_ID)
 #define OPTPROC_PRESETTING     (1U << OPTPROC_PRESETTING_ID)
-#define OPTPROC_STATE_MASK     0x000B7FFFU
+#define OPTPROC_STATE_MASK     0x000B3FFFU
 
-#define OPTPROC_NO_XLAT_MASK   (  \
-        OPTPROC_NXLAT_OPT_CFG | \
-        OPTPROC_NXLAT_OPT )
+#define OPTPROC_NO_XLAT_MASK   ( \
+        OPTPROC_NXLAT_OPT |     OPTPROC_NXLAT_OPT_CFG \
+        /* 0x00030000U */ )
 
 #define STMTS(s)  do { s; } while (0)
 
@@ -500,7 +501,7 @@ extern "C" {
  *  The following routines may be coded into AutoOpts client code:
  */
 
-/* From: tokenize.c line 118
+/* From: tokenize.c line 117
  *
  * ao_string_tokenize - tokenize an input string
  *
@@ -544,7 +545,7 @@ extern "C" {
 extern token_list_t* ao_string_tokenize(char const*);
 
 
-/* From: configfile.c line 86
+/* From: configfile.c line 85
  *
  * configFileLoad - parse a configuration file
  *
@@ -564,7 +565,7 @@ extern token_list_t* ao_string_tokenize(char const*);
 extern const tOptionValue* configFileLoad(char const*);
 
 
-/* From: configfile.c line 883
+/* From: configfile.c line 897
  *
  * optionFileLoad - Load the locatable config files, in order
  *
@@ -594,7 +595,7 @@ extern const tOptionValue* configFileLoad(char const*);
 extern int optionFileLoad(tOptions*, char const*);
 
 
-/* From: configfile.c line 218
+/* From: configfile.c line 217
  *
  * optionFindNextValue - find a hierarcicaly valued option instance
  *
@@ -613,7 +614,7 @@ extern int optionFileLoad(tOptions*, char const*);
 extern const tOptionValue* optionFindNextValue(const tOptDesc*, const tOptionValue*, char const*, char const*);
 
 
-/* From: configfile.c line 144
+/* From: configfile.c line 143
  *
  * optionFindValue - find a hierarcicaly valued option instance
  *
@@ -630,7 +631,7 @@ extern const tOptionValue* optionFindNextValue(const tOptDesc*, const tOptionVal
 extern const tOptionValue* optionFindValue(const tOptDesc*, char const*, char const*);
 
 
-/* From: restore.c line 166
+/* From: restore.c line 165
  *
  * optionFree - free allocated option processing memory
  *
@@ -643,7 +644,7 @@ extern const tOptionValue* optionFindValue(const tOptDesc*, char const*, char co
 extern void optionFree(tOptions*);
 
 
-/* From: configfile.c line 287
+/* From: configfile.c line 286
  *
  * optionGetValue - get a specific value from a hierarcical list
  *
@@ -661,7 +662,7 @@ extern void optionFree(tOptions*);
 extern const tOptionValue* optionGetValue(const tOptionValue*, char const*);
 
 
-/* From: load.c line 499
+/* From: load.c line 498
  *
  * optionLoadLine - process a string for an option name and value
  *
@@ -685,7 +686,7 @@ extern const tOptionValue* optionGetValue(const tOptionValue*, char const*);
 extern void optionLoadLine(tOptions*, char const*);
 
 
-/* From: configfile.c line 346
+/* From: configfile.c line 345
  *
  * optionNextValue - get the next value from a hierarchical list
  *
@@ -704,7 +705,7 @@ extern void optionLoadLine(tOptions*, char const*);
 extern const tOptionValue* optionNextValue(const tOptionValue*, const tOptionValue*);
 
 
-/* From: usage.c line 108
+/* From: usage.c line 107
  *
  * optionOnlyUsage - Print usage text for just the options
  *
@@ -719,7 +720,7 @@ extern const tOptionValue* optionNextValue(const tOptionValue*, const tOptionVal
 extern void optionOnlyUsage(tOptions*, int);
 
 
-/* From: autoopts.c line 1006
+/* From: autoopts.c line 1041
  *
  * optionProcess - this is the main option processing routine
  *
@@ -749,7 +750,7 @@ extern void optionOnlyUsage(tOptions*, int);
 extern int optionProcess(tOptions*, int, char**);
 
 
-/* From: restore.c line 123
+/* From: restore.c line 122
  *
  * optionRestore - restore option state from memory copy
  *
@@ -791,7 +792,7 @@ extern void optionRestore(tOptions*);
 extern void optionSaveFile(tOptions*);
 
 
-/* From: restore.c line 71
+/* From: restore.c line 70
  *
  * optionSaveState - saves the option state to memory
  *
@@ -813,7 +814,7 @@ extern void optionSaveFile(tOptions*);
 extern void optionSaveState(tOptions*);
 
 
-/* From: nested.c line 570
+/* From: nested.c line 569
  *
  * optionUnloadNested - Deallocate the memory for a nested value
  *
@@ -827,7 +828,7 @@ extern void optionSaveState(tOptions*);
 extern void optionUnloadNested(tOptionValue const *);
 
 
-/* From: version.c line 38
+/* From: version.c line 37
  *
  * optionVersion - return the compiled AutoOpts version number
  *
@@ -883,7 +884,7 @@ extern char* pathfind(char const*, char const*, char const*);
 #endif /* HAVE_PATHFIND */
 
 
-/* From: streqvcmp.c line 209
+/* From: streqvcmp.c line 208
  *
  * strequate - map a list of characters to the same value
  *
@@ -898,7 +899,7 @@ extern char* pathfind(char const*, char const*, char const*);
 extern void strequate(char const*);
 
 
-/* From: streqvcmp.c line 119
+/* From: streqvcmp.c line 118
  *
  * streqvcmp - compare two strings with an equivalence mapping
  *
@@ -917,7 +918,7 @@ extern void strequate(char const*);
 extern int streqvcmp(char const*, char const*);
 
 
-/* From: streqvcmp.c line 156
+/* From: streqvcmp.c line 155
  *
  * streqvmap - Set the character mappings for the streqv functions
  *
@@ -945,7 +946,7 @@ extern int streqvcmp(char const*, char const*);
 extern void streqvmap(char, char, int);
 
 
-/* From: streqvcmp.c line 78
+/* From: streqvcmp.c line 77
  *
  * strneqvcmp - compare two strings with an equivalence mapping
  *
@@ -966,7 +967,7 @@ extern void streqvmap(char, char, int);
 extern int strneqvcmp(char const*, char const*, int);
 
 
-/* From: streqvcmp.c line 235
+/* From: streqvcmp.c line 234
  *
  * strtransform - convert a string into its mapped-to value
  *

+ 156 - 152
libopts/autoopts/usage-txt.h

@@ -2,12 +2,12 @@
  *  
  *  DO NOT EDIT THIS FILE   (usage-txt.h)
  *  
- *  It has been AutoGen-ed  Wednesday December 31, 2008 at 07:07:15 PM PST
+ *  It has been AutoGen-ed  August  8, 2009 at 10:14:43 AM by AutoGen 5.9.9
  *  From the definitions    usage-txt.def
  *  and the template file   usage-txt.tpl
  *
  *  This file handles all the bookkeeping required for tracking all the little
- *  tiny strings used by the AutoOpts library.  There are 128
+ *  tiny strings used by the AutoOpts library.  There are 130
  *  of them.  This is not versioned because it is entirely internal to the
  *  library and accessed by client code only in a very well-controlled way:
  *  they may substitute translated strings using a procedure that steps through
@@ -44,7 +44,7 @@ typedef struct {
   char*     utpz_GnuTimeArg;
   char*     utpz_GnuNumArg;
   char*     utpz_GnuStrArg;
-  cch_t*    apz_str[ 121 ];
+  cch_t*    apz_str[ 123 ];
 } usage_text_t;
 
 /*
@@ -62,129 +62,131 @@ extern usage_text_t option_usage_text;
 #define zAO_Err               (option_usage_text.apz_str[  2])
 #define zAO_Sml               (option_usage_text.apz_str[  3])
 #define zAO_Ver               (option_usage_text.apz_str[  4])
-#define zAll                  (option_usage_text.apz_str[  5])
-#define zAlt                  (option_usage_text.apz_str[  6])
-#define zAmbigKey             (option_usage_text.apz_str[  7])
-#define zAmbigOptStr          (option_usage_text.apz_str[  8])
-#define zArgsMust             (option_usage_text.apz_str[  9])
-#define zAtMost               (option_usage_text.apz_str[ 10])
-#define zAuto                 (option_usage_text.apz_str[ 11])
-#define zBadPipe              (option_usage_text.apz_str[ 12])
-#define zBadVerArg            (option_usage_text.apz_str[ 13])
-#define zCantFmt              (option_usage_text.apz_str[ 14])
-#define zCantSave             (option_usage_text.apz_str[ 15])
-#define zDefaultOpt           (option_usage_text.apz_str[ 16])
-#define zDis                  (option_usage_text.apz_str[ 17])
-#define zEnab                 (option_usage_text.apz_str[ 18])
-#define zEquiv                (option_usage_text.apz_str[ 19])
-#define zErrOnly              (option_usage_text.apz_str[ 20])
-#define zExamineFmt           (option_usage_text.apz_str[ 21])
-#define zFiveSpaces           (option_usage_text.apz_str[ 22])
-#define zFlagOkay             (option_usage_text.apz_str[ 23])
-#define zFmtFmt               (option_usage_text.apz_str[ 24])
-#define zForkFail             (option_usage_text.apz_str[ 25])
-#define zFSErrOptLoad         (option_usage_text.apz_str[ 26])
-#define zFSErrReadFile        (option_usage_text.apz_str[ 27])
-#define zFSOptError           (option_usage_text.apz_str[ 28])
-#define zFSOptErrMayExist     (option_usage_text.apz_str[ 29])
-#define zFSOptErrMustExist    (option_usage_text.apz_str[ 30])
-#define zFSOptErrNoExist      (option_usage_text.apz_str[ 31])
-#define zFSOptErrOpen         (option_usage_text.apz_str[ 32])
-#define zFSOptErrFopen        (option_usage_text.apz_str[ 33])
-#define zFileCannotExist      (option_usage_text.apz_str[ 34])
-#define zFileMustExist        (option_usage_text.apz_str[ 35])
-#define zGenshell             (option_usage_text.apz_str[ 36])
+#define zAO_Woops             (option_usage_text.apz_str[  5])
+#define zAll                  (option_usage_text.apz_str[  6])
+#define zAlt                  (option_usage_text.apz_str[  7])
+#define zAmbigKey             (option_usage_text.apz_str[  8])
+#define zAmbigOptStr          (option_usage_text.apz_str[  9])
+#define zArgsMust             (option_usage_text.apz_str[ 10])
+#define zAtMost               (option_usage_text.apz_str[ 11])
+#define zAuto                 (option_usage_text.apz_str[ 12])
+#define zBadPipe              (option_usage_text.apz_str[ 13])
+#define zBadVerArg            (option_usage_text.apz_str[ 14])
+#define zCantFmt              (option_usage_text.apz_str[ 15])
+#define zCantSave             (option_usage_text.apz_str[ 16])
+#define zDefaultOpt           (option_usage_text.apz_str[ 17])
+#define zDis                  (option_usage_text.apz_str[ 18])
+#define zEnab                 (option_usage_text.apz_str[ 19])
+#define zEquiv                (option_usage_text.apz_str[ 20])
+#define zErrOnly              (option_usage_text.apz_str[ 21])
+#define zExamineFmt           (option_usage_text.apz_str[ 22])
+#define zFiveSpaces           (option_usage_text.apz_str[ 23])
+#define zFlagOkay             (option_usage_text.apz_str[ 24])
+#define zFmtFmt               (option_usage_text.apz_str[ 25])
+#define zForkFail             (option_usage_text.apz_str[ 26])
+#define zFSErrOptLoad         (option_usage_text.apz_str[ 27])
+#define zFSErrReadFile        (option_usage_text.apz_str[ 28])
+#define zFSOptError           (option_usage_text.apz_str[ 29])
+#define zFSOptErrMayExist     (option_usage_text.apz_str[ 30])
+#define zFSOptErrMustExist    (option_usage_text.apz_str[ 31])
+#define zFSOptErrNoExist      (option_usage_text.apz_str[ 32])
+#define zFSOptErrOpen         (option_usage_text.apz_str[ 33])
+#define zFSOptErrFopen        (option_usage_text.apz_str[ 34])
+#define zFileCannotExist      (option_usage_text.apz_str[ 35])
+#define zFileMustExist        (option_usage_text.apz_str[ 36])
+#define zGenshell             (option_usage_text.apz_str[ 37])
 #define zGnuBoolArg           (option_usage_text.utpz_GnuBoolArg)
-#define zGnuBreak             (option_usage_text.apz_str[ 37])
+#define zGnuBreak             (option_usage_text.apz_str[ 38])
 #define zGnuKeyArg            (option_usage_text.utpz_GnuKeyArg)
 #define zGnuFileArg           (option_usage_text.utpz_GnuFileArg)
 #define zGnuKeyLArg           (option_usage_text.utpz_GnuKeyLArg)
 #define zGnuTimeArg           (option_usage_text.utpz_GnuTimeArg)
-#define zGnuNestArg           (option_usage_text.apz_str[ 38])
+#define zGnuNestArg           (option_usage_text.apz_str[ 39])
 #define zGnuNumArg            (option_usage_text.utpz_GnuNumArg)
-#define zGnuOptArg            (option_usage_text.apz_str[ 39])
-#define zGnuOptFmt            (option_usage_text.apz_str[ 40])
+#define zGnuOptArg            (option_usage_text.apz_str[ 40])
+#define zGnuOptFmt            (option_usage_text.apz_str[ 41])
 #define zGnuStrArg            (option_usage_text.utpz_GnuStrArg)
-#define zIllOptChr            (option_usage_text.apz_str[ 41])
-#define zIllOptStr            (option_usage_text.apz_str[ 42])
-#define zIllegal              (option_usage_text.apz_str[ 43])
-#define zIntRange             (option_usage_text.apz_str[ 44])
-#define zInvalOptDesc         (option_usage_text.apz_str[ 45])
-#define zLowerBits            (option_usage_text.apz_str[ 46])
-#define zMembers              (option_usage_text.apz_str[ 47])
-#define zMisArg               (option_usage_text.apz_str[ 48])
-#define zMultiEquiv           (option_usage_text.apz_str[ 49])
-#define zMust                 (option_usage_text.apz_str[ 50])
-#define zNeedOne              (option_usage_text.apz_str[ 51])
-#define zNoArg                (option_usage_text.apz_str[ 52])
-#define zNoArgs               (option_usage_text.apz_str[ 53])
-#define zNoCreat              (option_usage_text.apz_str[ 54])
-#define zNoFlags              (option_usage_text.apz_str[ 55])
-#define zNoKey                (option_usage_text.apz_str[ 56])
-#define zNoLim                (option_usage_text.apz_str[ 57])
-#define zNoPreset             (option_usage_text.apz_str[ 58])
-#define zNoResetArg           (option_usage_text.apz_str[ 59])
-#define zNoRq_NoShrtTtl       (option_usage_text.apz_str[ 60])
-#define zNoRq_ShrtTtl         (option_usage_text.apz_str[ 61])
-#define zNoStat               (option_usage_text.apz_str[ 62])
-#define zNoState              (option_usage_text.apz_str[ 63])
-#define zNone                 (option_usage_text.apz_str[ 64])
-#define zNotDef               (option_usage_text.apz_str[ 65])
-#define zNotEnough            (option_usage_text.apz_str[ 66])
-#define zNotFile              (option_usage_text.apz_str[ 67])
-#define zNotNumber            (option_usage_text.apz_str[ 68])
-#define zNrmOptFmt            (option_usage_text.apz_str[ 69])
-#define zNumberOpt            (option_usage_text.apz_str[ 70])
-#define zOneSpace             (option_usage_text.apz_str[ 71])
-#define zOnlyOne              (option_usage_text.apz_str[ 72])
-#define zOptsOnly             (option_usage_text.apz_str[ 73])
-#define zPathFmt              (option_usage_text.apz_str[ 74])
-#define zPlsSendBugs          (option_usage_text.apz_str[ 75])
-#define zPreset               (option_usage_text.apz_str[ 76])
-#define zPresetFile           (option_usage_text.apz_str[ 77])
-#define zPresetIntro          (option_usage_text.apz_str[ 78])
-#define zProg                 (option_usage_text.apz_str[ 79])
-#define zProhib               (option_usage_text.apz_str[ 80])
-#define zReorder              (option_usage_text.apz_str[ 81])
-#define zRange                (option_usage_text.apz_str[ 82])
-#define zRangeAbove           (option_usage_text.apz_str[ 83])
-#define zRangeLie             (option_usage_text.apz_str[ 84])
-#define zRangeBadLie          (option_usage_text.apz_str[ 85])
-#define zRangeOnly            (option_usage_text.apz_str[ 86])
-#define zRangeOr              (option_usage_text.apz_str[ 87])
-#define zRangeErr             (option_usage_text.apz_str[ 88])
-#define zRangeExact           (option_usage_text.apz_str[ 89])
-#define zRangeScaled          (option_usage_text.apz_str[ 90])
-#define zRangeUpto            (option_usage_text.apz_str[ 91])
-#define zResetNotConfig       (option_usage_text.apz_str[ 92])
-#define zReqFmt               (option_usage_text.apz_str[ 93])
-#define zReqOptFmt            (option_usage_text.apz_str[ 94])
-#define zReqThese             (option_usage_text.apz_str[ 95])
-#define zReq_NoShrtTtl        (option_usage_text.apz_str[ 96])
-#define zReq_ShrtTtl          (option_usage_text.apz_str[ 97])
-#define zSepChars             (option_usage_text.apz_str[ 98])
-#define zSetMemberSettings    (option_usage_text.apz_str[ 99])
-#define zShrtGnuOptFmt        (option_usage_text.apz_str[100])
-#define zSixSpaces            (option_usage_text.apz_str[101])
-#define zStdBoolArg           (option_usage_text.apz_str[102])
-#define zStdBreak             (option_usage_text.apz_str[103])
-#define zStdFileArg           (option_usage_text.apz_str[104])
-#define zStdKeyArg            (option_usage_text.apz_str[105])
-#define zStdKeyLArg           (option_usage_text.apz_str[106])
-#define zStdTimeArg           (option_usage_text.apz_str[107])
-#define zStdNestArg           (option_usage_text.apz_str[108])
-#define zStdNoArg             (option_usage_text.apz_str[109])
-#define zStdNumArg            (option_usage_text.apz_str[110])
-#define zStdOptArg            (option_usage_text.apz_str[111])
-#define zStdReqArg            (option_usage_text.apz_str[112])
-#define zStdStrArg            (option_usage_text.apz_str[113])
-#define zTabHyp               (option_usage_text.apz_str[114])
-#define zTabHypAnd            (option_usage_text.apz_str[115])
-#define zTabout               (option_usage_text.apz_str[116])
-#define zThreeSpaces          (option_usage_text.apz_str[117])
-#define zTwoSpaces            (option_usage_text.apz_str[118])
-#define zUpTo                 (option_usage_text.apz_str[119])
-#define zValidKeys            (option_usage_text.apz_str[120])
+#define zIllOptChr            (option_usage_text.apz_str[ 42])
+#define zIllOptStr            (option_usage_text.apz_str[ 43])
+#define zIllegal              (option_usage_text.apz_str[ 44])
+#define zIntRange             (option_usage_text.apz_str[ 45])
+#define zInvalOptDesc         (option_usage_text.apz_str[ 46])
+#define zLowerBits            (option_usage_text.apz_str[ 47])
+#define zMembers              (option_usage_text.apz_str[ 48])
+#define zMisArg               (option_usage_text.apz_str[ 49])
+#define zMultiEquiv           (option_usage_text.apz_str[ 50])
+#define zMust                 (option_usage_text.apz_str[ 51])
+#define zNeedOne              (option_usage_text.apz_str[ 52])
+#define zNoArg                (option_usage_text.apz_str[ 53])
+#define zNoArgs               (option_usage_text.apz_str[ 54])
+#define zNoCreat              (option_usage_text.apz_str[ 55])
+#define zNoFlags              (option_usage_text.apz_str[ 56])
+#define zNoKey                (option_usage_text.apz_str[ 57])
+#define zNoLim                (option_usage_text.apz_str[ 58])
+#define zNoPreset             (option_usage_text.apz_str[ 59])
+#define zNoResetArg           (option_usage_text.apz_str[ 60])
+#define zNoRq_NoShrtTtl       (option_usage_text.apz_str[ 61])
+#define zNoRq_ShrtTtl         (option_usage_text.apz_str[ 62])
+#define zNoStat               (option_usage_text.apz_str[ 63])
+#define zNoState              (option_usage_text.apz_str[ 64])
+#define zNone                 (option_usage_text.apz_str[ 65])
+#define zNotDef               (option_usage_text.apz_str[ 66])
+#define zNotCmdOpt            (option_usage_text.apz_str[ 67])
+#define zNotEnough            (option_usage_text.apz_str[ 68])
+#define zNotFile              (option_usage_text.apz_str[ 69])
+#define zNotNumber            (option_usage_text.apz_str[ 70])
+#define zNrmOptFmt            (option_usage_text.apz_str[ 71])
+#define zNumberOpt            (option_usage_text.apz_str[ 72])
+#define zOneSpace             (option_usage_text.apz_str[ 73])
+#define zOnlyOne              (option_usage_text.apz_str[ 74])
+#define zOptsOnly             (option_usage_text.apz_str[ 75])
+#define zPathFmt              (option_usage_text.apz_str[ 76])
+#define zPlsSendBugs          (option_usage_text.apz_str[ 77])
+#define zPreset               (option_usage_text.apz_str[ 78])
+#define zPresetFile           (option_usage_text.apz_str[ 79])
+#define zPresetIntro          (option_usage_text.apz_str[ 80])
+#define zProg                 (option_usage_text.apz_str[ 81])
+#define zProhib               (option_usage_text.apz_str[ 82])
+#define zReorder              (option_usage_text.apz_str[ 83])
+#define zRange                (option_usage_text.apz_str[ 84])
+#define zRangeAbove           (option_usage_text.apz_str[ 85])
+#define zRangeLie             (option_usage_text.apz_str[ 86])
+#define zRangeBadLie          (option_usage_text.apz_str[ 87])
+#define zRangeOnly            (option_usage_text.apz_str[ 88])
+#define zRangeOr              (option_usage_text.apz_str[ 89])
+#define zRangeErr             (option_usage_text.apz_str[ 90])
+#define zRangeExact           (option_usage_text.apz_str[ 91])
+#define zRangeScaled          (option_usage_text.apz_str[ 92])
+#define zRangeUpto            (option_usage_text.apz_str[ 93])
+#define zResetNotConfig       (option_usage_text.apz_str[ 94])
+#define zReqFmt               (option_usage_text.apz_str[ 95])
+#define zReqOptFmt            (option_usage_text.apz_str[ 96])
+#define zReqThese             (option_usage_text.apz_str[ 97])
+#define zReq_NoShrtTtl        (option_usage_text.apz_str[ 98])
+#define zReq_ShrtTtl          (option_usage_text.apz_str[ 99])
+#define zSepChars             (option_usage_text.apz_str[100])
+#define zSetMemberSettings    (option_usage_text.apz_str[101])
+#define zShrtGnuOptFmt        (option_usage_text.apz_str[102])
+#define zSixSpaces            (option_usage_text.apz_str[103])
+#define zStdBoolArg           (option_usage_text.apz_str[104])
+#define zStdBreak             (option_usage_text.apz_str[105])
+#define zStdFileArg           (option_usage_text.apz_str[106])
+#define zStdKeyArg            (option_usage_text.apz_str[107])
+#define zStdKeyLArg           (option_usage_text.apz_str[108])
+#define zStdTimeArg           (option_usage_text.apz_str[109])
+#define zStdNestArg           (option_usage_text.apz_str[110])
+#define zStdNoArg             (option_usage_text.apz_str[111])
+#define zStdNumArg            (option_usage_text.apz_str[112])
+#define zStdOptArg            (option_usage_text.apz_str[113])
+#define zStdReqArg            (option_usage_text.apz_str[114])
+#define zStdStrArg            (option_usage_text.apz_str[115])
+#define zTabHyp               (option_usage_text.apz_str[116])
+#define zTabHypAnd            (option_usage_text.apz_str[117])
+#define zTabout               (option_usage_text.apz_str[118])
+#define zThreeSpaces          (option_usage_text.apz_str[119])
+#define zTwoSpaces            (option_usage_text.apz_str[120])
+#define zUpTo                 (option_usage_text.apz_str[121])
+#define zValidKeys            (option_usage_text.apz_str[122])
 
   /*
    *  First, set up the strings.  Some of these are writable.  These are all in
@@ -199,14 +201,15 @@ extern usage_text_t option_usage_text;
   static char    eng_zGnuTimeArg[] = "=Tim";
   static char    eng_zGnuNumArg[] = "=num";
   static char    eng_zGnuStrArg[] = "=str";
-static char const usage_txt[3927] =
+static char const usage_txt[4024] =
     "AutoOpts function called without option descriptor\n\0"
     "\tThis exceeds the compiled library version:  \0"
     "Automated Options Processing Error!\n"
     "\t%s called AutoOpts function with structure version %d:%d:%d.\n\0"
     "\tThis is less than the minimum library version:  \0"
     "Automated Options version %s\n"
-    "\tcopyright (c) 1999-2008 Bruce Korb - all rights reserved\n\0"
+    "\tcopyright (c) 1999-2009 by Bruce Korb - all rights reserved\n\0"
+    "AutoOpts lib error: defaulted to option with optional arg\n\0"
     "all\0"
     "\t\t\t\t- an alternate for %s\n\0"
     "%s error:  the keyword `%s' is ambiguous for %s\n\0"
@@ -277,6 +280,7 @@ static char const usage_txt[3927] =
     "%s(optionRestore): error: no saved option state\n\0"
     "none\0"
     "'%s' not defined\n\0"
+    "'%s' is not a command line option\n\0"
     "ERROR:  The %s option must appear %d times\n\0"
     "error:  cannot load options from non-regular file %s\n\0"
     "%s error:  `%s' is not a recognizable number\n\0"
@@ -347,41 +351,41 @@ static char const usage_txt[3927] =
    *  Aren't you glad you don't maintain this by hand?
    */
   usage_text_t option_usage_text = {
-    128,
+    130,
     eng_zGnuBoolArg, eng_zGnuKeyArg,  eng_zGnuFileArg, eng_zGnuKeyLArg,
     eng_zGnuTimeArg, eng_zGnuNumArg,  eng_zGnuStrArg,
     {
       usage_txt +   0, usage_txt +  52, usage_txt +  98, usage_txt + 197,
-      usage_txt + 247, usage_txt + 335, usage_txt + 339, usage_txt + 366,
-      usage_txt + 415, usage_txt + 443, usage_txt + 480, usage_txt + 505,
-      usage_txt + 531, usage_txt + 571, usage_txt + 708, usage_txt + 756,
-      usage_txt + 810, usage_txt + 852, usage_txt + 876, usage_txt + 902,
-      usage_txt + 915, usage_txt + 929, usage_txt + 976, usage_txt + 982,
-      usage_txt +1085, usage_txt +1097, usage_txt +1148, usage_txt +1199,
-      usage_txt +1233, usage_txt +1274, usage_txt +1297, usage_txt +1323,
-      usage_txt +1354, usage_txt +1368, usage_txt +1383, usage_txt +1414,
-      usage_txt +1441, usage_txt +1547, usage_txt +1553, usage_txt +1559,
-      usage_txt +1566, usage_txt +1577, usage_txt +1603, usage_txt +1629,
-      usage_txt +1637, usage_txt +1673, usage_txt +1724, usage_txt +1780,
-      usage_txt +1814, usage_txt +1852, usage_txt +1917, usage_txt +1960,
-      usage_txt +1995, usage_txt +2036, usage_txt +2076, usage_txt +2103,
-      usage_txt +2170, usage_txt +2218, usage_txt +2251, usage_txt +2276,
-      usage_txt +2324, usage_txt +2359, usage_txt +2397, usage_txt +2424,
-      usage_txt +2473, usage_txt +2478, usage_txt +2496, usage_txt +2540,
-      usage_txt +2594, usage_txt +2640, usage_txt +2648, usage_txt +2696,
-      usage_txt +2698, usage_txt +2723, usage_txt +2757, usage_txt +2776,
-      usage_txt +2810, usage_txt +2846, usage_txt +2884, usage_txt +2940,
-      usage_txt +2948, usage_txt +2974, usage_txt +3040, usage_txt +3053,
-      usage_txt +3084, usage_txt +3121, usage_txt +3167, usage_txt +3183,
-      usage_txt +3189, usage_txt +3241, usage_txt +3255, usage_txt +3301,
-      usage_txt +3329, usage_txt +3374, usage_txt +3416, usage_txt +3430,
-      usage_txt +3455, usage_txt +3495, usage_txt +3538, usage_txt +3542,
-      usage_txt +3761, usage_txt +3764, usage_txt +3771, usage_txt +3775,
-      usage_txt +3783, usage_txt +3787, usage_txt +3791, usage_txt +3795,
-      usage_txt +3799, usage_txt +3803, usage_txt +3807, usage_txt +3811,
-      usage_txt +3815, usage_txt +3819, usage_txt +3823, usage_txt +3830,
-      usage_txt +3842, usage_txt +3850, usage_txt +3854, usage_txt +3857,
-      usage_txt +3890
+      usage_txt + 247, usage_txt + 338, usage_txt + 397, usage_txt + 401,
+      usage_txt + 428, usage_txt + 477, usage_txt + 505, usage_txt + 542,
+      usage_txt + 567, usage_txt + 593, usage_txt + 633, usage_txt + 770,
+      usage_txt + 818, usage_txt + 872, usage_txt + 914, usage_txt + 938,
+      usage_txt + 964, usage_txt + 977, usage_txt + 991, usage_txt +1038,
+      usage_txt +1044, usage_txt +1147, usage_txt +1159, usage_txt +1210,
+      usage_txt +1261, usage_txt +1295, usage_txt +1336, usage_txt +1359,
+      usage_txt +1385, usage_txt +1416, usage_txt +1430, usage_txt +1445,
+      usage_txt +1476, usage_txt +1503, usage_txt +1609, usage_txt +1615,
+      usage_txt +1621, usage_txt +1628, usage_txt +1639, usage_txt +1665,
+      usage_txt +1691, usage_txt +1699, usage_txt +1735, usage_txt +1786,
+      usage_txt +1842, usage_txt +1876, usage_txt +1914, usage_txt +1979,
+      usage_txt +2022, usage_txt +2057, usage_txt +2098, usage_txt +2138,
+      usage_txt +2165, usage_txt +2232, usage_txt +2280, usage_txt +2313,
+      usage_txt +2338, usage_txt +2386, usage_txt +2421, usage_txt +2459,
+      usage_txt +2486, usage_txt +2535, usage_txt +2540, usage_txt +2558,
+      usage_txt +2593, usage_txt +2637, usage_txt +2691, usage_txt +2737,
+      usage_txt +2745, usage_txt +2793, usage_txt +2795, usage_txt +2820,
+      usage_txt +2854, usage_txt +2873, usage_txt +2907, usage_txt +2943,
+      usage_txt +2981, usage_txt +3037, usage_txt +3045, usage_txt +3071,
+      usage_txt +3137, usage_txt +3150, usage_txt +3181, usage_txt +3218,
+      usage_txt +3264, usage_txt +3280, usage_txt +3286, usage_txt +3338,
+      usage_txt +3352, usage_txt +3398, usage_txt +3426, usage_txt +3471,
+      usage_txt +3513, usage_txt +3527, usage_txt +3552, usage_txt +3592,
+      usage_txt +3635, usage_txt +3639, usage_txt +3858, usage_txt +3861,
+      usage_txt +3868, usage_txt +3872, usage_txt +3880, usage_txt +3884,
+      usage_txt +3888, usage_txt +3892, usage_txt +3896, usage_txt +3900,
+      usage_txt +3904, usage_txt +3908, usage_txt +3912, usage_txt +3916,
+      usage_txt +3920, usage_txt +3927, usage_txt +3939, usage_txt +3947,
+      usage_txt +3951, usage_txt +3954, usage_txt +3987
     }
   };
 

+ 4 - 5
libopts/boolean.c

@@ -1,6 +1,6 @@
 
 /*
- *  $Id: boolean.c,v 4.15 2008/08/04 01:01:52 bkorb Exp $
+ *  $Id: boolean.c,v 4.16 2009/08/01 17:43:05 bkorb Exp $
  * Time-stamp:      "2008-08-03 13:06:02 bkorb"
  *
  *   Automated Options Paged Usage module.
@@ -10,8 +10,7 @@
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
+ *  AutoOpts is copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
@@ -25,8 +24,8 @@
  *
  *  These files have the following md5sums:
  *
- *  239588c55c22c60ffe159946a760a33e pkg/libopts/COPYING.gplv3
- *  fa82ca978890795162346e661b47161a pkg/libopts/COPYING.lgplv3
+ *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
+ *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
  *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
  */
 

+ 2 - 3
libopts/compat/compat.h

@@ -4,13 +4,12 @@
  *
  *  Time-stamp:      "2008-06-14 09:36:25 bkorb"
  *
- * $Id: compat.h,v 4.20 2008/06/14 22:24:22 bkorb Exp $
+ * $Id: compat.h,v 4.22 2009/01/01 16:49:26 bkorb Exp $
  *
  *  compat.h is free software.
  *  This file is part of AutoGen.
  *
- *  AutoGen copyright (c) 1992-2008 Bruce Korb - all rights reserved
- *  AutoGen copyright (c) 1992-2008 Bruce Korb - all rights reserved
+ *  AutoGen copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoGen is free software: you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the

+ 2 - 2
libopts/compat/pathfind.c

@@ -5,10 +5,10 @@
 /*
  * Author:           Gary V Vaughan <gvaughan@oranda.demon.co.uk>
  * Time-stamp:       "2006-09-23 19:46:16 bkorb"
- * Last Modified:    $Date: 2007/07/04 20:51:18 $
+ * Last Modified:    $Date: 2007/10/07 16:54:54 $
  *            by: bkorb
  *
- * $Id: pathfind.c,v 4.11 2007/07/04 20:51:18 bkorb Exp $
+ * $Id: pathfind.c,v 4.12 2007/10/07 16:54:54 bkorb Exp $
  */
 
 /* Code: */

+ 3 - 3
libopts/compat/windows-config.h

@@ -1,12 +1,12 @@
 
 /*
- * Time-stamp:        "2007-07-04 09:45:44 bkorb"
+ * Time-stamp:        "2009-07-22 18:53:59 bkorb"
  *             by: bkorb
- * Last Committed:    $Date: 2007/07/04 20:51:18 $
+ * Last Committed:    $Date: 2009/07/23 02:05:55 $
  *
  *  This file is part of AutoGen.
  *
- *  AutoGen copyright (c) 1992-2007 Bruce Korb - all rights reserved
+ *  AutoGen copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoGen is free software: you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the

+ 24 - 10
libopts/configfile.c

@@ -1,13 +1,12 @@
 /*
- *  $Id: configfile.c,v 1.32 2008/08/04 01:01:52 bkorb Exp $
- *  Time-stamp:      "2008-08-03 11:00:30 bkorb"
+ *  $Id: configfile.c,v 4.47 2009/08/01 17:43:05 bkorb Exp $
+ *  Time-stamp:      "2009-01-18 10:21:58 bkorb"
  *
  *  configuration/rc/ini file handling.
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
+ *  AutoOpts is copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
@@ -21,8 +20,8 @@
  *
  *  These files have the following md5sums:
  *
- *  239588c55c22c60ffe159946a760a33e pkg/libopts/COPYING.gplv3
- *  fa82ca978890795162346e661b47161a pkg/libopts/COPYING.lgplv3
+ *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
+ *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
  *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
  */
 
@@ -753,7 +752,11 @@ handleStructure(
      */
     memset(pcNulPoint, ' ', pzData - pcNulPoint);
 
-    if ((pOS->pOD->fOptState & OPTST_ARG_TYPE_MASK) == OPARG_TYPE_STRING) {
+    /*
+     *  If we are getting a "string" value, the process the XML-ish
+     *  %XX hex characters.
+     */
+    if (valu.valType == OPARG_TYPE_STRING) {
         char * pzSrc = pzData;
         char * pzDst = pzData;
         char bf[4];
@@ -798,13 +801,22 @@ handleStructure(
 LOCAL void
 internalFileLoad( tOptions* pOpts )
 {
-    int     idx;
-    int     inc = DIRECTION_PRESET;
-    char    zFileName[ AG_PATH_MAX+1 ];
+    uint32_t  svfl;
+    int       idx;
+    int       inc;
+    char      zFileName[ AG_PATH_MAX+1 ];
 
     if (pOpts->papzHomeList == NULL)
         return;
 
+    svfl = pOpts->fOptSet;
+    inc  = DIRECTION_PRESET;
+
+    /*
+     *  Never stop on errors in config files.
+     */
+    pOpts->fOptSet &= ~OPTPROC_ERRSTOP;
+
     /*
      *  Find the last RC entry (highest priority entry)
      */
@@ -877,6 +889,8 @@ internalFileLoad( tOptions* pOpts )
             }
         }
     } /* twice for every path in the home list, ... */
+
+    pOpts->fOptSet = svfl;
 }
 
 

+ 4 - 5
libopts/cook.c

@@ -1,5 +1,5 @@
 /*
- *  $Id: cook.c,v 4.16 2008/01/23 00:36:04 bkorb Exp $
+ *  $Id: cook.c,v 4.17 2009/08/01 17:43:06 bkorb Exp $
  *  Time-stamp:      "2007-11-16 22:49:11 bkorb"
  *
  *  This file contains the routines that deal with processing quoted strings
@@ -7,8 +7,7 @@
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
+ *  AutoOpts is copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
@@ -22,8 +21,8 @@
  *
  *  These files have the following md5sums:
  *
- *  239588c55c22c60ffe159946a760a33e pkg/libopts/COPYING.gplv3
- *  fa82ca978890795162346e661b47161a pkg/libopts/COPYING.lgplv3
+ *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
+ *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
  *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
  */
 

+ 4 - 5
libopts/enumeration.c

@@ -1,6 +1,6 @@
 
 /*
- *  $Id: enumeration.c,v 4.24 2008/07/28 04:51:29 bkorb Exp $
+ *  $Id: enumeration.c,v 4.26 2009/08/01 17:43:06 bkorb Exp $
  * Time-stamp:      "2008-07-27 12:28:01 bkorb"
  *
  *   Automated Options Paged Usage module.
@@ -10,8 +10,7 @@
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
+ *  AutoOpts is copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
@@ -25,8 +24,8 @@
  *
  *  These files have the following md5sums:
  *
- *  239588c55c22c60ffe159946a760a33e pkg/libopts/COPYING.gplv3
- *  fa82ca978890795162346e661b47161a pkg/libopts/COPYING.lgplv3
+ *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
+ *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
  *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
  */
 

+ 15 - 31
libopts/environment.c

@@ -1,7 +1,7 @@
 
 /*
- *  $Id: environment.c,v 4.17 2008/06/14 22:24:22 bkorb Exp $
- * Time-stamp:      "2007-07-04 11:33:50 bkorb"
+ *  $Id: environment.c,v 4.21 2009/08/01 17:43:06 bkorb Exp $
+ * Time-stamp:      "2009-07-20 20:12:24 bkorb"
  *
  *  This file contains all of the routines that must be linked into
  *  an executable to use the generated option processing.  The optional
@@ -10,8 +10,7 @@
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
+ *  AutoOpts is copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
@@ -25,8 +24,8 @@
  *
  *  These files have the following md5sums:
  *
- *  239588c55c22c60ffe159946a760a33e pkg/libopts/COPYING.gplv3
- *  fa82ca978890795162346e661b47161a pkg/libopts/COPYING.lgplv3
+ *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
+ *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
  *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
  */
 
@@ -53,15 +52,9 @@ doPrognameEnv( tOptions* pOpts, teEnvPresetType type )
     char**        sv_argv;
 
     /*
-     *  IF there is no such environment variable
-     *   *or* there is, but we are doing immediate opts and there are
-     *        no immediate opts to do (--help inside $PROGNAME is silly,
-     *        but --no-load-defs is not, so that is marked)
-     *  THEN bail out now.  (
+     *  No such beast?  Then bail now.
      */
-    if (  (pczOptStr == NULL)
-       || (  (type == ENV_IMM)
-          && ((pOpts->fOptSet & OPTPROC_HAS_IMMED) == 0)  )  )
+    if (pczOptStr == NULL)
         return;
 
     /*
@@ -94,27 +87,17 @@ doPrognameEnv( tOptions* pOpts, teEnvPresetType type )
 
     switch (type) {
     case ENV_IMM:
-        /*
-         *  We know the OPTPROC_HAS_IMMED bit is set.
-         */
         (void)doImmediateOpts( pOpts );
         break;
 
-    case ENV_NON_IMM:
-        (void)doRegularOpts( pOpts );
-        break;
+    case ENV_ALL:
+        (void)doImmediateOpts( pOpts );
+        pOpts->curOptIdx = 1;
+        pOpts->pzCurOpt  = NULL;
+        /* FALLTHROUGH */
 
-    default:
-        /*
-         *  Only to immediate opts if the OPTPROC_HAS_IMMED bit is set.
-         */
-        if (pOpts->fOptSet & OPTPROC_HAS_IMMED) {
-            (void)doImmediateOpts( pOpts );
-            pOpts->curOptIdx = 1;
-            pOpts->pzCurOpt  = NULL;
-        }
+    case ENV_NON_IMM:
         (void)doRegularOpts( pOpts );
-        break;
     }
 
     /*
@@ -241,7 +224,8 @@ doEnvPresets( tOptions* pOpts, teEnvPresetType type )
     /*
      *  Special handling for ${PROGNAME_LOAD_OPTS}
      */
-    if (pOpts->specOptIdx.save_opts != 0) {
+    if (  (pOpts->specOptIdx.save_opts != NO_EQUIVALENT)
+       && (pOpts->specOptIdx.save_opts != 0)) {
         st.pOD = pOpts->pOptDesc + pOpts->specOptIdx.save_opts + 1;
         strcpy( pzFlagName, st.pOD->pz_NAME );
         checkEnvOpt(&st, zEnvName, pOpts, type);

+ 7 - 7
libopts/file.c

@@ -1,12 +1,11 @@
 
 /*
- *  $Id: file.c,v 1.6 2008/12/20 18:35:27 bkorb Exp $
- *  Time-stamp:      "2008-12-06 10:15:33 bkorb"
+ *  $Id: file.c,v 4.9 2009/08/01 17:43:06 bkorb Exp $
+ *  Time-stamp:      "2009-07-23 17:23:46 bkorb"
  *
  *  This file is part of AutoOpts, a companion to AutoGen.
  *  AutoOpts is free software.
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
- *  AutoOpts is copyright (c) 1992-2008 by Bruce Korb - all rights reserved
+ *  AutoOpts is copyright (c) 1992-2009 by Bruce Korb - all rights reserved
  *
  *  AutoOpts is available under any one of two licenses.  The license
  *  in use must be one of these two and the choice is under the control
@@ -20,8 +19,8 @@
  *
  *  These files have the following md5sums:
  *
- *  239588c55c22c60ffe159946a760a33e pkg/libopts/COPYING.gplv3
- *  fa82ca978890795162346e661b47161a pkg/libopts/COPYING.lgplv3
+ *  43b91e8ca915626ed3818ffb1b71248b pkg/libopts/COPYING.gplv3
+ *  06a1a2e4760c90ea5e1dad8dfaac4d39 pkg/libopts/COPYING.lgplv3
  *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
  */
 
@@ -98,7 +97,8 @@ optionFileCheck(tOptions* pOpts, tOptDesc* pOD,
                 pOpts->pUsageProc(pOpts, EXIT_FAILURE);
                 /* NOTREACHED */
             }
-            *p = '/';
+            if (p != NULL)
+                *p = DIRCH;
             break;
         }
 

+ 7 - 6
libopts/genshell.c

@@ -2,11 +2,11 @@
  *  
  *  DO NOT EDIT THIS FILE   (genshell.c)
  *  
- *  It has been AutoGen-ed  Wednesday December 31, 2008 at 07:07:16 PM PST
+ *  It has been AutoGen-ed  August  8, 2009 at 10:14:45 AM by AutoGen 5.9.9
  *  From the definitions    genshell.def
  *  and the template file   options
  *
- * Generated from AutoOpts 32:0:7 templates.
+ * Generated from AutoOpts @AO_CURRENT@:@AO_REVISION@:@AO_AGE@ templates.
  */
 
 /*
@@ -20,7 +20,7 @@
  *
  * This source file is copyrighted and licensed under the following terms:
  *
- * genshellopt copyright 1999-2007 Bruce Korb - all rights reserved
+ * genshellopt copyright (c) 1999-2009 Bruce Korb - all rights reserved
  *
  * genshellopt is free software: you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
@@ -51,7 +51,7 @@ extern "C" {
 /* TRANSLATORS: choose the translation for option names wisely because you
                 cannot ever change your mind. */
 tSCC zCopyright[] =
-       "genshellopt copyright (c) 1999-2007 Bruce Korb, all rights reserved";
+       "genshellopt copyright (c) 1999-2009 Bruce Korb, all rights reserved";
 tSCC zCopyrightNotice[610] =
 "genshellopt is free software: you can redistribute it and/or modify it under\n\
 the terms of the GNU General Public License as published by the Free Software\n\
@@ -210,7 +210,7 @@ If the script file already exists and contains Automated Option Processing\n\
 text, the second line of the file through the ending tag will be replaced\n\
 by the newly generated text.  The first `#!' line will be regenerated.\n";
 tSCC    zFullVersion[] = GENSHELLOPT_FULL_VERSION;
-/* extracted from optcode.tpl near line 496 */