summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--recipes/gnutls.recipe5
-rw-r--r--recipes/gnutls/0003-Update-to-libopts-41.1.16-for-fixing-the-build.patch3728
-rw-r--r--recipes/libtasn1.recipe4
3 files changed, 3733 insertions, 4 deletions
diff --git a/recipes/gnutls.recipe b/recipes/gnutls.recipe
index 7ae1603e..107a9cfc 100644
--- a/recipes/gnutls.recipe
+++ b/recipes/gnutls.recipe
@@ -4,7 +4,7 @@ from cerbero.utils import shell
class Recipe(recipe.Recipe):
name = 'gnutls'
- version = '3.3.14'
+ version = '3.3.17'
maj_ver = '.'.join(version.split('.')[0:2])
url = 'ftp://ftp.gnutls.org/gcrypt/{0}/v{1}/{0}-{2}.tar.xz'.format(name, maj_ver, version)
stype = SourceType.TARBALL
@@ -22,7 +22,8 @@ class Recipe(recipe.Recipe):
Platform.DARWIN: ['bionic-fixup']
}
patches = [name + "/0001-configure-vasprintf-is-defined-in-stdio.h.patch",
- name + "/0002-configure-Update-gettext-version-to-0.19.patch"]
+ name + "/0002-configure-Update-gettext-version-to-0.19.patch",
+ name + "/0003-Update-to-libopts-41.1.16-for-fixing-the-build.patch"]
autoreconf = True
files_libs = ['libgnutls', 'libgnutlsxx']
diff --git a/recipes/gnutls/0003-Update-to-libopts-41.1.16-for-fixing-the-build.patch b/recipes/gnutls/0003-Update-to-libopts-41.1.16-for-fixing-the-build.patch
new file mode 100644
index 00000000..4e6cb3e9
--- /dev/null
+++ b/recipes/gnutls/0003-Update-to-libopts-41.1.16-for-fixing-the-build.patch
@@ -0,0 +1,3728 @@
+From a23f538e8f045ff5894115910405669137349d59 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
+Date: Sat, 15 Aug 2015 11:22:05 +0200
+Subject: [PATCH] Update to libopts-41.1.16 for fixing the build
+
+The tarball contains autogenerated files that depend on a specific version of
+libopts... but the libopts version contained in the tarball is not that one.
+---
+ src/libopts/COPYING.gplv3 | 2 +-
+ src/libopts/COPYING.lgplv3 | 2 +-
+ src/libopts/COPYING.mbsd | 1 +
+ src/libopts/Makefile.am | 52 +++++++-----
+ src/libopts/Makefile.in | 156 +++++++++++++++++++++++++++---------
+ src/libopts/README | 2 +-
+ src/libopts/ag-char-map.h | 4 +-
+ src/libopts/alias.c | 2 +-
+ src/libopts/ao-strs.c | 2 +-
+ src/libopts/ao-strs.h | 2 +-
+ src/libopts/autoopts.c | 8 +-
+ src/libopts/autoopts.h | 24 +++---
+ src/libopts/autoopts/options.h | 136 ++++++++++++++++---------------
+ src/libopts/autoopts/project.h | 2 +-
+ src/libopts/autoopts/usage-txt.h | 24 +++---
+ src/libopts/boolean.c | 10 +--
+ src/libopts/check.c | 2 +-
+ src/libopts/compat/compat.h | 2 +-
+ src/libopts/compat/pathfind.c | 24 +++---
+ src/libopts/compat/windows-config.h | 2 +-
+ src/libopts/configfile.c | 97 +++++++++++-----------
+ src/libopts/cook.c | 18 ++---
+ src/libopts/enum.c | 28 +++----
+ src/libopts/env.c | 8 +-
+ src/libopts/file.c | 12 +--
+ src/libopts/find.c | 16 ++--
+ src/libopts/genshell.c | 48 +++++------
+ src/libopts/genshell.h | 4 +-
+ src/libopts/gettext.h | 2 +-
+ src/libopts/init.c | 12 +--
+ src/libopts/intprops.h | 2 +-
+ src/libopts/libopts.c | 2 +
+ src/libopts/load.c | 16 ++--
+ src/libopts/m4/libopts.m4 | 30 +++----
+ src/libopts/m4/liboptschk.m4 | 2 +-
+ src/libopts/m4/stdnoreturn.m4 | 2 +-
+ src/libopts/makeshell.c | 33 ++++----
+ src/libopts/nested.c | 66 +++++++--------
+ src/libopts/numeric.c | 18 ++---
+ src/libopts/option-value-type.c | 2 +-
+ src/libopts/option-xat-attribute.c | 2 +-
+ src/libopts/parse-duration.c | 2 +-
+ src/libopts/parse-duration.h | 2 +-
+ src/libopts/pgusage.c | 10 +--
+ src/libopts/proto.h | 4 +-
+ src/libopts/putshell.c | 14 ++--
+ src/libopts/reset.c | 8 +-
+ src/libopts/restore.c | 34 ++++----
+ src/libopts/save.c | 32 ++++----
+ src/libopts/sort.c | 10 +--
+ src/libopts/stack.c | 30 +++----
+ src/libopts/stdnoreturn.in.h | 2 +-
+ src/libopts/streqvcmp.c | 22 ++---
+ src/libopts/text_mmap.c | 20 ++---
+ src/libopts/time.c | 10 +--
+ src/libopts/tokenize.c | 48 +++++------
+ src/libopts/usage.c | 12 +--
+ src/libopts/version.c | 18 ++---
+ 58 files changed, 627 insertions(+), 530 deletions(-)
+
+diff --git a/src/libopts/COPYING.gplv3 b/src/libopts/COPYING.gplv3
+index 065b7a6..26d6fd2 100644
+--- a/src/libopts/COPYING.gplv3
++++ b/src/libopts/COPYING.gplv3
+@@ -1,7 +1,7 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+- Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ Copyright (C) 1992-2015 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.
+
+diff --git a/src/libopts/COPYING.lgplv3 b/src/libopts/COPYING.lgplv3
+index 3deaacb..b6db232 100644
+--- a/src/libopts/COPYING.lgplv3
++++ b/src/libopts/COPYING.lgplv3
+@@ -1,7 +1,7 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+- Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ Copyright (C) 1992-2015 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.
+
+diff --git a/src/libopts/COPYING.mbsd b/src/libopts/COPYING.mbsd
+index 8a70427..74948be 100644
+--- a/src/libopts/COPYING.mbsd
++++ b/src/libopts/COPYING.mbsd
+@@ -1,3 +1,4 @@
++Copyright (C) 1992-2015 by Bruce Korb - all rights reserved
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+diff --git a/src/libopts/Makefile.am b/src/libopts/Makefile.am
+index 413fc4d..63fcffb 100644
+--- a/src/libopts/Makefile.am
++++ b/src/libopts/Makefile.am
+@@ -1,15 +1,23 @@
+ ## LIBOPTS Makefile
+ MAINTAINERCLEANFILES = Makefile.in
+-
++if INSTALL_LIBOPTS
++lib_LTLIBRARIES = libopts.la
++else
+ noinst_LTLIBRARIES = libopts.la
+-
++endif
+ libopts_la_SOURCES = libopts.c
+-libopts_la_CPPFLAGS = -I$(top_srcdir)
+-libopts_la_LIBADD = $(LTLIBINTL)
++libopts_la_CPPFLAGS = -I$(srcdir)
++libopts_la_LDFLAGS = -version-info 41:1:16
+ EXTRA_DIST =
+ BUILT_SOURCES =
+ MOSTLYCLEANFILES =
+
++libopts.c: $(BUILT_SOURCES)
++ @: do-nothing rule to avoid default SCCS get
++
++
++# Makefile fragment from gnulib-s stdnoreturn module:
++#
+ _NORETURN_H=$(srcdir)/compat/_Noreturn.h
+ EXTRA_DIST += $(srcdir)/compat/_Noreturn.h
+ BUILT_SOURCES += $(STDNORETURN_H)
+@@ -27,25 +35,25 @@ stdnoreturn.h: $(top_builddir)/config.status
+ endif
+ MOSTLYCLEANFILES += stdnoreturn.h stdnoreturn.h-t
+ EXTRA_DIST += stdnoreturn.in.h
+-
++
+ EXTRA_DIST += \
+- COPYING.gplv3 COPYING.lgplv3 COPYING.mbsd \
+- MakeDefs.inc README ag-char-map.h \
+- alias.c ao-strs.c ao-strs.h \
+- autoopts/options.h autoopts/project.h autoopts/usage-txt.h \
+- autoopts.c autoopts.h boolean.c \
+- check.c compat/strdup.c compat/snprintf.c \
+- compat/compat.h compat/_Noreturn.h compat/pathfind.c \
+- compat/windows-config.h compat/strchr.c configfile.c \
+- cook.c enum.c env.c \
+- file.c find.c genshell.c \
+- genshell.h gettext.h init.c \
+- intprops.h load.c m4/libopts.m4 \
+- m4/liboptschk.m4 m4/stdnoreturn.m4 makeshell.c \
+- nested.c numeric.c option-value-type.c \
+- option-value-type.h option-xat-attribute.c option-xat-attribute.h \
+- parse-duration.c parse-duration.h pgusage.c \
+- proto.h putshell.c reset.c \
++ ag-char-map.h alias.c ao-strs.c \
++ ao-strs.h autoopts/project.h autoopts/usage-txt.h \
++ autoopts/options.h autoopts.c autoopts.h \
++ boolean.c check.c compat/compat.h \
++ compat/strchr.c compat/pathfind.c compat/_Noreturn.h \
++ compat/snprintf.c compat/windows-config.h compat/strdup.c \
++ configfile.c cook.c COPYING.gplv3 \
++ COPYING.lgplv3 COPYING.mbsd enum.c \
++ env.c file.c find.c \
++ genshell.c genshell.h gettext.h \
++ init.c intprops.h load.c \
++ m4/liboptschk.m4 m4/libopts.m4 m4/stdnoreturn.m4 \
++ MakeDefs.inc makeshell.c nested.c \
++ numeric.c option-value-type.c option-value-type.h \
++ option-xat-attribute.c option-xat-attribute.h parse-duration.c \
++ parse-duration.h pgusage.c proto.h \
++ putshell.c README reset.c \
+ restore.c save.c sort.c \
+ stack.c stdnoreturn.in.h streqvcmp.c \
+ text_mmap.c time.c tokenize.c \
+diff --git a/src/libopts/Makefile.in b/src/libopts/Makefile.in
+index 0671eac..e9b7a9c 100644
+--- a/src/libopts/Makefile.in
++++ b/src/libopts/Makefile.in
+@@ -129,7 +129,6 @@ am__aclocal_m4_deps = $(top_srcdir)/src/gl/m4/arpa_inet_h.m4 \
+ $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/errno_h.m4 \
+ $(top_srcdir)/gl/m4/exponentd.m4 \
+ $(top_srcdir)/gl/m4/extensions.m4 \
+- $(top_srcdir)/gl/m4/extern-inline.m4 \
+ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \
+ $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/fpieee.m4 \
+ $(top_srcdir)/gl/m4/fseeko.m4 $(top_srcdir)/gl/m4/fstat.m4 \
+@@ -182,10 +181,10 @@ am__aclocal_m4_deps = $(top_srcdir)/src/gl/m4/arpa_inet_h.m4 \
+ $(top_srcdir)/gl/m4/vsnprintf.m4 \
+ $(top_srcdir)/gl/m4/warn-on-use.m4 \
+ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \
+- $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/guile.m4 \
+- $(top_srcdir)/m4/hooks.m4 $(top_srcdir)/m4/iconv.m4 \
+- $(top_srcdir)/m4/intlmacosx.m4 \
++ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
++ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
++ $(top_srcdir)/m4/guile.m4 $(top_srcdir)/m4/hooks.m4 \
++ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+ $(top_srcdir)/m4/inttypes-pri.m4 \
+ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+@@ -204,15 +203,47 @@ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ CONFIG_CLEAN_VPATH_FILES =
+-LTLIBRARIES = $(noinst_LTLIBRARIES)
+-am__DEPENDENCIES_1 =
+-libopts_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
++am__vpath_adj = case $$p in \
++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
++ *) f=$$p;; \
++ esac;
++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
++am__install_max = 40
++am__nobase_strip_setup = \
++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
++am__nobase_strip = \
++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
++am__nobase_list = $(am__nobase_strip_setup); \
++ for p in $$list; do echo "$$p $$p"; done | \
++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
++ if (++n[$$2] == $(am__install_max)) \
++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
++ END { for (dir in files) print dir, files[dir] }'
++am__base_list = \
++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
++am__uninstall_files_from_dir = { \
++ test -z "$$files" \
++ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
++ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
++ $(am__cd) "$$dir" && rm -f $$files; }; \
++ }
++am__installdirs = "$(DESTDIR)$(libdir)"
++LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
++libopts_la_LIBADD =
+ am_libopts_la_OBJECTS = libopts_la-libopts.lo
+ libopts_la_OBJECTS = $(am_libopts_la_OBJECTS)
+ AM_V_lt = $(am__v_lt_@AM_V@)
+ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+ am__v_lt_0 = --silent
+ am__v_lt_1 =
++libopts_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
++ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
++ $(libopts_la_LDFLAGS) $(LDFLAGS) -o $@
++@INSTALL_LIBOPTS_FALSE@am_libopts_la_rpath =
++@INSTALL_LIBOPTS_TRUE@am_libopts_la_rpath = -rpath $(libdir)
+ AM_V_P = $(am__v_P_@AM_V@)
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+ am__v_P_0 = false
+@@ -912,6 +943,7 @@ LT_REVISION = @LT_REVISION@
+ LT_SSL_AGE = @LT_SSL_AGE@
+ LT_SSL_CURRENT = @LT_SSL_CURRENT@
+ LT_SSL_REVISION = @LT_SSL_REVISION@
++LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+ MAJOR_VERSION = @MAJOR_VERSION@
+ MAKEINFO = @MAKEINFO@
+ MANIFEST_TOOL = @MANIFEST_TOOL@
+@@ -1241,27 +1273,31 @@ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ MAINTAINERCLEANFILES = Makefile.in
+-noinst_LTLIBRARIES = libopts.la
++@INSTALL_LIBOPTS_TRUE@lib_LTLIBRARIES = libopts.la
++@INSTALL_LIBOPTS_FALSE@noinst_LTLIBRARIES = libopts.la
+ libopts_la_SOURCES = libopts.c
+-libopts_la_CPPFLAGS = -I$(top_srcdir)
+-libopts_la_LIBADD = $(LTLIBINTL)
++libopts_la_CPPFLAGS = -I$(srcdir)
++libopts_la_LDFLAGS = -version-info 41:1:16
+ EXTRA_DIST = $(srcdir)/compat/_Noreturn.h stdnoreturn.in.h \
+- COPYING.gplv3 COPYING.lgplv3 COPYING.mbsd MakeDefs.inc README \
+- ag-char-map.h alias.c ao-strs.c ao-strs.h autoopts/options.h \
+- autoopts/project.h autoopts/usage-txt.h autoopts.c autoopts.h \
+- boolean.c check.c compat/strdup.c compat/snprintf.c \
+- compat/compat.h compat/_Noreturn.h compat/pathfind.c \
+- compat/windows-config.h compat/strchr.c configfile.c cook.c \
+- enum.c env.c file.c find.c genshell.c genshell.h gettext.h \
+- init.c intprops.h load.c m4/libopts.m4 m4/liboptschk.m4 \
+- m4/stdnoreturn.m4 makeshell.c nested.c numeric.c \
++ ag-char-map.h alias.c ao-strs.c ao-strs.h autoopts/project.h \
++ autoopts/usage-txt.h autoopts/options.h autoopts.c autoopts.h \
++ boolean.c check.c compat/compat.h compat/strchr.c \
++ compat/pathfind.c compat/_Noreturn.h compat/snprintf.c \
++ compat/windows-config.h compat/strdup.c configfile.c cook.c \
++ COPYING.gplv3 COPYING.lgplv3 COPYING.mbsd enum.c env.c file.c \
++ find.c genshell.c genshell.h gettext.h init.c intprops.h \
++ load.c m4/liboptschk.m4 m4/libopts.m4 m4/stdnoreturn.m4 \
++ MakeDefs.inc makeshell.c nested.c numeric.c \
+ option-value-type.c option-value-type.h option-xat-attribute.c \
+ option-xat-attribute.h parse-duration.c parse-duration.h \
+- pgusage.c proto.h putshell.c reset.c restore.c save.c sort.c \
+- stack.c stdnoreturn.in.h streqvcmp.c text_mmap.c time.c \
++ pgusage.c proto.h putshell.c README reset.c restore.c save.c \
++ sort.c stack.c stdnoreturn.in.h streqvcmp.c text_mmap.c time.c \
+ tokenize.c usage.c version.c
+ BUILT_SOURCES = $(STDNORETURN_H)
+ MOSTLYCLEANFILES = stdnoreturn.h stdnoreturn.h-t
++
++# Makefile fragment from gnulib-s stdnoreturn module:
++#
+ _NORETURN_H = $(srcdir)/compat/_Noreturn.h
+ all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+@@ -1298,6 +1334,41 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(am__aclocal_m4_deps):
+
++install-libLTLIBRARIES: $(lib_LTLIBRARIES)
++ @$(NORMAL_INSTALL)
++ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
++ list2=; for p in $$list; do \
++ if test -f $$p; then \
++ list2="$$list2 $$p"; \
++ else :; fi; \
++ done; \
++ test -z "$$list2" || { \
++ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
++ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
++ }
++
++uninstall-libLTLIBRARIES:
++ @$(NORMAL_UNINSTALL)
++ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
++ for p in $$list; do \
++ $(am__strip_dir) \
++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
++ done
++
++clean-libLTLIBRARIES:
++ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
++ @list='$(lib_LTLIBRARIES)'; \
++ locs=`for p in $$list; do echo $$p; done | \
++ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
++ sort -u`; \
++ test -z "$$locs" || { \
++ echo rm -f $${locs}; \
++ rm -f $${locs}; \
++ }
++
+ clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+@@ -1310,7 +1381,7 @@ clean-noinstLTLIBRARIES:
+ }
+
+ libopts.la: $(libopts_la_OBJECTS) $(libopts_la_DEPENDENCIES) $(EXTRA_libopts_la_DEPENDENCIES)
+- $(AM_V_CCLD)$(LINK) $(libopts_la_OBJECTS) $(libopts_la_LIBADD) $(LIBS)
++ $(AM_V_CCLD)$(libopts_la_LINK) $(am_libopts_la_rpath) $(libopts_la_OBJECTS) $(libopts_la_LIBADD) $(LIBS)
+
+ mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+@@ -1444,6 +1515,9 @@ check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+ all-am: Makefile $(LTLIBRARIES)
+ installdirs:
++ for dir in "$(DESTDIR)$(libdir)"; do \
++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
++ done
+ install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+ install-exec: install-exec-am
+@@ -1480,8 +1554,8 @@ maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+ clean: clean-am
+
+-clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+- mostlyclean-am
++clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
++ clean-noinstLTLIBRARIES mostlyclean-am
+
+ distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+@@ -1507,7 +1581,7 @@ install-dvi: install-dvi-am
+
+ install-dvi-am:
+
+-install-exec-am:
++install-exec-am: install-libLTLIBRARIES
+
+ install-html: install-html-am
+
+@@ -1547,26 +1621,30 @@ ps: ps-am
+
+ ps-am:
+
+-uninstall-am:
++uninstall-am: uninstall-libLTLIBRARIES
+
+ .MAKE: all check install install-am install-strip
+
+ .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+- clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+- ctags-am distclean distclean-compile distclean-generic \
+- distclean-libtool distclean-tags distdir dvi dvi-am html \
+- html-am info info-am install install-am install-data \
+- install-data-am install-dvi install-dvi-am install-exec \
+- install-exec-am install-html install-html-am install-info \
+- install-info-am install-man install-pdf install-pdf-am \
+- install-ps install-ps-am install-strip installcheck \
+- installcheck-am installdirs maintainer-clean \
+- maintainer-clean-generic mostlyclean mostlyclean-compile \
+- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+- tags tags-am uninstall uninstall-am
++ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \
++ cscopelist-am ctags ctags-am distclean distclean-compile \
++ distclean-generic distclean-libtool distclean-tags distdir dvi \
++ dvi-am html html-am info info-am install install-am \
++ install-data install-data-am install-dvi install-dvi-am \
++ install-exec install-exec-am install-html install-html-am \
++ install-info install-info-am install-libLTLIBRARIES \
++ install-man install-pdf install-pdf-am install-ps \
++ install-ps-am install-strip installcheck installcheck-am \
++ installdirs maintainer-clean maintainer-clean-generic \
++ mostlyclean mostlyclean-compile mostlyclean-generic \
++ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
++ uninstall-am uninstall-libLTLIBRARIES
+
+ .PRECIOUS: Makefile
+
++
++libopts.c: $(BUILT_SOURCES)
++ @: do-nothing rule to avoid default SCCS get
+ @GL_GENERATE_STDNORETURN_H_TRUE@stdnoreturn.h: stdnoreturn.in.h $(top_builddir)/config.status $(_NORETURN_H)
+ @GL_GENERATE_STDNORETURN_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+ @GL_GENERATE_STDNORETURN_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+diff --git a/src/libopts/README b/src/libopts/README
+index 4bf758d..98e4f3c 100644
+--- a/src/libopts/README
++++ b/src/libopts/README
+@@ -115,7 +115,7 @@ These macros work as follows:
+
+ LICENSING:
+
+-This material is Copyright (C) 1992-2014 by Bruce Korb. You are
++This material is Copyright (C) 1992-2015 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 License (see: COPYING.mbsd). Both of
+diff --git a/src/libopts/ag-char-map.h b/src/libopts/ag-char-map.h
+index d50e665..281badd 100644
+--- a/src/libopts/ag-char-map.h
++++ b/src/libopts/ag-char-map.h
+@@ -1,6 +1,6 @@
+ /*
+ * 29 bits for 46 character classifications
+- * generated by char-mapper on 08/30/14 at 10:36:23
++ * generated by char-mapper on 04/30/15 at 19:55:13
+ *
+ * This file contains the character classifications
+ * used by AutoGen and AutoOpts for identifying tokens.
+@@ -8,7 +8,7 @@
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+diff --git a/src/libopts/alias.c b/src/libopts/alias.c
+index be8c6c6..49e1f1f 100644
+--- a/src/libopts/alias.c
++++ b/src/libopts/alias.c
+@@ -12,7 +12,7 @@
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+diff --git a/src/libopts/ao-strs.c b/src/libopts/ao-strs.c
+index c385a4d..857aa73 100644
+--- a/src/libopts/ao-strs.c
++++ b/src/libopts/ao-strs.c
+@@ -6,7 +6,7 @@
+ * From the definitions ao-strs.def
+ * and the template file strings
+ *
+- * Copyright (C) 2011-2014 Bruce Korb, all rights reserved.
++ * Copyright (C) 2011-2015 Bruce Korb, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * Modified (3 clause) Berkeley Software Distribution License
+diff --git a/src/libopts/ao-strs.h b/src/libopts/ao-strs.h
+index 812186a..864fc48 100644
+--- a/src/libopts/ao-strs.h
++++ b/src/libopts/ao-strs.h
+@@ -6,7 +6,7 @@
+ * From the definitions ao-strs.def
+ * and the template file strings
+ *
+- * Copyright (C) 2011-2014 Bruce Korb, all rights reserved.
++ * Copyright (C) 2011-2015 Bruce Korb, all rights reserved.
+ * This is free software. It is licensed for use, modification and
+ * redistribution under the terms of the
+ * Modified (3 clause) Berkeley Software Distribution License
+diff --git a/src/libopts/autoopts.c b/src/libopts/autoopts.c
+index a519318..4b15aca 100644
+--- a/src/libopts/autoopts.c
++++ b/src/libopts/autoopts.c
+@@ -13,7 +13,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -299,9 +299,9 @@ regular_opts(tOptions * opts)
+ *
+ * what: this is the main option processing routine
+ *
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + int + a_ct + program arg count +
+- * arg: + char** + a_v + program arg vector +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + int + a_ct + program arg count +
++ * arg: + char ** + a_v + program arg vector +
+ *
+ * ret_type: int
+ * ret_desc: the count of the arguments processed
+diff --git a/src/libopts/autoopts.h b/src/libopts/autoopts.h
+index 27a907c..6f75f9e 100644
+--- a/src/libopts/autoopts.h
++++ b/src/libopts/autoopts.h
+@@ -11,7 +11,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -41,7 +41,7 @@
+ # ifdef PATH_MAX
+ # define AG_PATH_MAX ((size_t)PATH_MAX)
+ # else
+-# define AG_PATH_MAX 4096
++# define AG_PATH_MAX ((size_t)4096)
+ # endif
+ #else
+ # if defined(PATH_MAX) && (PATH_MAX > MAXPATHLEN)
+@@ -107,7 +107,7 @@
+ * Coercive cast. Compel an address to be interpreted as the type
+ * of the first argument. No complaints, just do it.
+ */
+-#define C(_t,_p) ((_t)(void *)(_p))
++#define C(_t,_p) ((_t)VOIDP(_p))
+ #endif
+
+ /* The __attribute__((__warn_unused_result__)) feature
+@@ -256,10 +256,10 @@ typedef struct {
+ char const * pzTime;
+ } arg_types_t;
+
+-#define AGALOC(c, w) ao_malloc((size_t)c)
+-#define AGREALOC(p, c, w) ao_realloc((void*)p, (size_t)c)
+-#define AGFREE(_p) free((void *)_p)
+-#define AGDUPSTR(p, s, w) (p = ao_strdup(s))
++#define AGALOC(_c, _w) ao_malloc((size_t)_c)
++#define AGREALOC(_p, _c, _w) ao_realloc(VOIDP(_p), (size_t)_c)
++#define AGFREE(_p) free(VOIDP(_p))
++#define AGDUPSTR(_p, _s, _w) (_p = ao_strdup(_s))
+
+ static void *
+ ao_malloc(size_t sz);
+@@ -267,10 +267,10 @@ ao_malloc(size_t sz);
+ static void *
+ ao_realloc(void *p, size_t sz);
+
+-#define ao_free(_p) free((void *)_p)
++#define ao_free(_p) free(VOIDP(_p))
+
+ static char *
+-ao_strdup(char const *str);
++ao_strdup(char const * str);
+
+ /**
+ * DO option handling?
+@@ -369,7 +369,7 @@ ao_strdup(char const *str);
+ #endif
+
+ #ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
++# define MAP_FAILED VOIDP(-1)
+ #endif
+
+ #ifndef _SC_PAGESIZE
+@@ -379,8 +379,8 @@ ao_strdup(char const *str);
+ #endif
+
+ #ifndef HAVE_STRCHR
+-extern char* strchr(char const *s, int c);
+-extern char* strrchr(char const *s, int c);
++extern char * strchr(char const * s, int c);
++extern char * strrchr(char const * s, int c);
+ #endif
+
+ /**
+diff --git a/src/libopts/autoopts/options.h b/src/libopts/autoopts/options.h
+index 6a5c9e5..0601d0f 100644
+--- a/src/libopts/autoopts/options.h
++++ b/src/libopts/autoopts/options.h
+@@ -9,11 +9,11 @@
+ * This file defines all the global structures and special values
+ * used in the automated option processing library.
+ *
+- * Automated Options Copyright (C) 1992-2014 by Bruce Korb
++ * Automated Options Copyright (C) 1992-2015 by Bruce Korb
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -82,6 +82,14 @@
+ */
+ #define AO_EXIT_REQ_USAGE 10064
+
++#undef VOIDP
++/**
++ * Coerce a value into a void pointer with no const or volatile attributes.
++ * Somewhere along the line, the above set of includes need to set up
++ * the "uintptr_t" type.
++ */
++#define VOIDP(_a) ((void *)(uintptr_t)(_a))
++
+ /**
+ * PUBLIC DEFINES
+ *
+@@ -90,7 +98,7 @@
+ * to an option descriptor must be obtained. There are two ways:
+ *
+ * 1. inside an option processing procedure, it is the second argument,
+- * conventionally "tOptDesc* pOD".
++ * conventionally "tOptDesc * pOD".
+ *
+ * 2. Outside of an option procedure (or to reference a different option
+ * descriptor), use either "&DESC( opt_name )" or "&pfx_DESC( opt_name )".
+@@ -101,15 +109,15 @@
+ * @{
+ */
+ /// autoopts structure version
+-#define OPTIONS_STRUCT_VERSION 167936
++#define OPTIONS_STRUCT_VERSION 167937
+ /// autoopts structure version string
+-#define OPTIONS_VERSION_STRING "41:0:16"
++#define OPTIONS_VERSION_STRING "41:1:16"
+ /// minimum version the autoopts library supports
+ #define OPTIONS_MINIMUM_VERSION 102400
+ /// minimum version the autoopts library supports as a string
+ #define OPTIONS_MIN_VER_STRING "25:0:0"
+ /// the display version of the autoopts library, as a string
+-#define OPTIONS_DOTTED_VERSION "41.0"
++#define OPTIONS_DOTTED_VERSION "41.1"
+ /// convert a version/release number pair to an integer value
+ #define OPTIONS_VER_TO_NUM(_v, _r) (((_v) * 4096) + (_r))
+ /// @}
+@@ -147,7 +155,7 @@ typedef struct optionValue {
+ unsigned int boolVal; ///< OPARG_TYPE_BOOLEAN
+ unsigned long setVal; ///< OPARG_TYPE_MEMBERSHIP
+ long longVal; ///< OPARG_TYPE_NUMERIC
+- void* nestVal; ///< OPARG_TYPE_HIERARCHY
++ void * nestVal; ///< OPARG_TYPE_HIERARCHY
+ } v;
+ } tOptionValue;
+
+@@ -445,7 +453,7 @@ typedef tOptProc * tpOptProc;
+ * with the "exitCode" argument passed to it.
+ */
+ // coverity[+kill]
+-typedef void (tUsageProc)(tOptions* pOpts, int exitCode);
++typedef void (tUsageProc)(tOptions * pOpts, int exitCode);
+
+ /**
+ * a pointer to a procedure that prints usage and exits.
+@@ -690,7 +698,7 @@ struct options {
+ */
+ typedef struct {
+ unsigned long tkn_ct; ///< number of tokens found
+- unsigned char* tkn_list[1]; ///< array of pointers to tokens
++ unsigned char * tkn_list[1]; ///< array of pointers to tokens
+ } token_list_t;
+
+ /*
+@@ -728,7 +736,7 @@ typedef struct {
+ /**
+ * mmap result wrapper that yields "true" when mmap has failed.
+ */
+-#define TEXT_MMAP_FAILED_ADDR(a) ((void*)(a) == (void*)MAP_FAILED)
++#define TEXT_MMAP_FAILED_ADDR(a) (VOIDP(a) == VOIDP(MAP_FAILED))
+
+ #ifdef __cplusplus
+ #define CPLUSPLUS_OPENER extern "C" {
+@@ -779,9 +787,9 @@ CPLUSPLUS_OPENER
+ *
+ * @param string string to be tokenized
+ *
+- * @return token_list_t* - pointer to a structure that lists each token
++ * @return token_list_t * - pointer to a structure that lists each token
+ */
+-extern token_list_t* ao_string_tokenize(char const*);
++extern token_list_t * ao_string_tokenize(char const *);
+
+
+ /**
+@@ -797,9 +805,9 @@ extern token_list_t* ao_string_tokenize(char const*);
+ *
+ * @param fname the file to load
+ *
+- * @return const tOptionValue* - An allocated, compound value structure
++ * @return const tOptionValue * - An allocated, compound value structure
+ */
+-extern const tOptionValue* configFileLoad(char const*);
++extern const tOptionValue * configFileLoad(char const *);
+
+
+ /**
+@@ -827,7 +835,7 @@ extern const tOptionValue* configFileLoad(char const*);
+ *
+ * @return int - 0 -> SUCCESS, -1 -> FAILURE
+ */
+-extern int optionFileLoad(tOptions*, char const*);
++extern int optionFileLoad(tOptions *, char const *);
+
+
+ /**
+@@ -842,9 +850,9 @@ extern int optionFileLoad(tOptions*, char const*);
+ * @param name name of value to find
+ * @param value the matching value
+ *
+- * @return const tOptionValue* - a compound value structure
++ * @return const tOptionValue * - a compound value structure
+ */
+-extern const tOptionValue* optionFindNextValue(const tOptDesc*, const tOptionValue*, char const*, char const*);
++extern const tOptionValue * optionFindNextValue(const tOptDesc *, const tOptionValue *, char const *, char const *);
+
+
+ /**
+@@ -857,9 +865,9 @@ extern const tOptionValue* optionFindNextValue(const tOptDesc*, const tOptionVal
+ * @param name name of value to find
+ * @param val the matching value
+ *
+- * @return const tOptionValue* - a compound value structure
++ * @return const tOptionValue * - a compound value structure
+ */
+-extern const tOptionValue* optionFindValue(const tOptDesc*, char const*, char const*);
++extern const tOptionValue * optionFindValue(const tOptDesc *, char const *, char const *);
+
+
+ /**
+@@ -870,7 +878,7 @@ extern const tOptionValue* optionFindValue(const tOptDesc*, char const*, char co
+ *
+ * @param pOpts program options descriptor
+ */
+-extern void optionFree(tOptions*);
++extern void optionFree(tOptions *);
+
+
+ /**
+@@ -886,9 +894,9 @@ extern void optionFree(tOptions*);
+ * @param pOptValue a hierarchcal value
+ * @param valueName name of value to get
+ *
+- * @return const tOptionValue* - a compound value structure
++ * @return const tOptionValue * - a compound value structure
+ */
+-extern const tOptionValue* optionGetValue(const tOptionValue*, char const*);
++extern const tOptionValue * optionGetValue(const tOptionValue *, char const *);
+
+
+ /**
+@@ -911,7 +919,7 @@ extern const tOptionValue* optionGetValue(const tOptionValue*, char const*);
+ * @param opts program options descriptor
+ * @param line NUL-terminated text
+ */
+-extern void optionLoadLine(tOptions*, char const*);
++extern void optionLoadLine(tOptions *, char const *);
+
+
+ /**
+@@ -922,9 +930,9 @@ extern void optionLoadLine(tOptions*, char const*);
+ *
+ * @param od the set membership option description
+ *
+- * @return char* - the names of the set bits
++ * @return char * - the names of the set bits
+ */
+-extern char* optionMemberList(tOptDesc *);
++extern char * optionMemberList(tOptDesc *);
+
+
+ /**
+@@ -939,9 +947,9 @@ extern char* optionMemberList(tOptDesc *);
+ * @param pOptValue a hierarchcal list value
+ * @param pOldValue a value from this list
+ *
+- * @return const tOptionValue* - a compound value structure
++ * @return const tOptionValue * - a compound value structure
+ */
+-extern const tOptionValue* optionNextValue(const tOptionValue*, const tOptionValue*);
++extern const tOptionValue * optionNextValue(const tOptionValue *, const tOptionValue *);
+
+
+ /**
+@@ -954,7 +962,7 @@ extern const tOptionValue* optionNextValue(const tOptionValue*, const tOptionVal
+ * @param pOpts program options descriptor
+ * @param ex_code exit code for calling exit(3)
+ */
+-extern void optionOnlyUsage(tOptions*, int);
++extern void optionOnlyUsage(tOptions *, int);
+
+
+ /**
+@@ -965,7 +973,7 @@ extern void optionOnlyUsage(tOptions*, int);
+ * @param opts program options descriptor
+ * @param od the descriptor for this arg
+ */
+-extern void optionPrintVersion(tOptions*, tOptDesc*);
++extern void optionPrintVersion(tOptions *, tOptDesc *);
+
+
+ /**
+@@ -979,7 +987,7 @@ extern void optionPrintVersion(tOptions*, tOptDesc*);
+ * @param opts program options descriptor
+ * @param od the descriptor for this arg
+ */
+-extern void optionPrintVersionAndReturn(tOptions*, tOptDesc*);
++extern void optionPrintVersionAndReturn(tOptions *, tOptDesc *);
+
+
+ /**
+@@ -1007,7 +1015,7 @@ extern void optionPrintVersionAndReturn(tOptions*, tOptDesc*);
+ *
+ * @return int - the count of the arguments processed
+ */
+-extern int optionProcess(tOptions*, int, char**);
++extern int optionProcess(tOptions *, int, char **);
+
+
+ /**
+@@ -1022,7 +1030,7 @@ extern int optionProcess(tOptions*, int, char**);
+ *
+ * @param pOpts program options descriptor
+ */
+-extern void optionRestore(tOptions*);
++extern void optionRestore(tOptions *);
+
+
+ /**
+@@ -1045,7 +1053,7 @@ extern void optionRestore(tOptions*);
+ *
+ * @param opts program options descriptor
+ */
+-extern void optionSaveFile(tOptions*);
++extern void optionSaveFile(tOptions *);
+
+
+ /**
+@@ -1065,7 +1073,7 @@ extern void optionSaveFile(tOptions*);
+ *
+ * @param pOpts program options descriptor
+ */
+-extern void optionSaveState(tOptions*);
++extern void optionSaveState(tOptions *);
+
+
+ /**
+@@ -1086,9 +1094,9 @@ extern void optionUnloadNested(tOptionValue const *);
+ * Returns the full version string compiled into the library.
+ * The returned string cannot be modified.
+ *
+- * @return char const* - the version string in constant memory
++ * @return char const * - the version string in constant memory
+ */
+-extern char const* optionVersion(void);
++extern char const * optionVersion(void);
+
+
+ /**
+@@ -1101,7 +1109,7 @@ extern char const* optionVersion(void);
+ *
+ * @param ch_list characters to equivalence
+ */
+-extern void strequate(char const*);
++extern void strequate(char const *);
+
+
+ /**
+@@ -1118,7 +1126,7 @@ extern void strequate(char const*);
+ *
+ * @return int - the difference between two differing characters
+ */
+-extern int streqvcmp(char const*, char const*);
++extern int streqvcmp(char const *, char const *);
+
+
+ /**
+@@ -1163,7 +1171,7 @@ extern void streqvmap(char, char, int);
+ *
+ * @return int - the difference between two differing characters
+ */
+-extern int strneqvcmp(char const*, char const*, int);
++extern int strneqvcmp(char const *, char const *, int);
+
+
+ /**
+@@ -1179,68 +1187,68 @@ extern int strneqvcmp(char const*, char const*, int);
+ * @param dest output string
+ * @param src input string
+ */
+-extern void strtransform(char*, char const*);
++extern void strtransform(char *, char const *);
+
+ /* AutoOpts PRIVATE FUNCTIONS: */
+ tOptProc optionStackArg, optionUnstackArg, optionBooleanVal, optionNumericVal;
+
+-extern char* ao_string_cook(char*, int*);
++extern char * ao_string_cook(char *, int *);
+
+-extern unsigned int ao_string_cook_escape_char(char const*, char*, unsigned int);
++extern unsigned int ao_string_cook_escape_char(char const *, char *, unsigned int);
+
+-extern void genshelloptUsage(tOptions*, int);
++extern void genshelloptUsage(tOptions *, int);
+
+ extern int optionAlias(tOptions *, tOptDesc *, unsigned int);
+
+-extern void optionBooleanVal(tOptions*, tOptDesc*);
++extern void optionBooleanVal(tOptions *, tOptDesc *);
+
+-extern uintptr_t optionEnumerationVal(tOptions*, tOptDesc*, char const * const *, unsigned int);
++extern uintptr_t optionEnumerationVal(tOptions *, tOptDesc *, char const * const *, unsigned int);
+
+-extern void optionFileCheck(tOptions*, tOptDesc*, teOptFileType, tuFileMode);
++extern void optionFileCheck(tOptions *, tOptDesc *, teOptFileType, tuFileMode);
+
+-extern char const * optionKeywordName(tOptDesc*, unsigned int);
++extern char const * optionKeywordName(tOptDesc *, unsigned int);
+
+-extern void optionLoadOpt(tOptions*, tOptDesc*);
++extern void optionLoadOpt(tOptions *, tOptDesc *);
+
+-extern bool optionMakePath(char*, int, char const*, char const*);
++extern bool optionMakePath(char *, int, char const *, char const *);
+
+-extern void optionNestedVal(tOptions*, tOptDesc*);
++extern void optionNestedVal(tOptions *, tOptDesc *);
+
+-extern void optionNumericVal(tOptions*, tOptDesc*);
++extern void optionNumericVal(tOptions *, tOptDesc *);
+
+ extern void optionPagedUsage(tOptions *, tOptDesc *);
+
+-extern void optionParseShell(tOptions*);
++extern void optionParseShell(tOptions *);
+
+ extern void optionPrintParagraphs(char const *, bool, FILE *);
+
+-extern void optionPutShell(tOptions*);
++extern void optionPutShell(tOptions *);
+
+ extern char const * optionQuoteString(char const *, char const *);
+
+-extern void optionResetOpt(tOptions*, tOptDesc*);
++extern void optionResetOpt(tOptions *, tOptDesc *);
+
+-extern void optionSetMembers(tOptions*, tOptDesc*, char const * const *, unsigned int);
++extern void optionSetMembers(tOptions *, tOptDesc *, char const * const *, unsigned int);
+
+-extern void optionShowRange(tOptions*, tOptDesc*, void *, int);
++extern void optionShowRange(tOptions *, tOptDesc *, void *, int);
+
+-extern void optionStackArg(tOptions*, tOptDesc*);
++extern void optionStackArg(tOptions *, tOptDesc *);
+
+-extern void optionTimeDate(tOptions*, tOptDesc*);
++extern void optionTimeDate(tOptions *, tOptDesc *);
+
+-extern void optionTimeVal(tOptions*, tOptDesc*);
++extern void optionTimeVal(tOptions *, tOptDesc *);
+
+-extern void optionUnstackArg(tOptions*, tOptDesc*);
++extern void optionUnstackArg(tOptions *, tOptDesc *);
+
+-extern void optionUsage(tOptions*, int);
++extern void optionUsage(tOptions *, int);
+
+ extern void optionVendorOption(tOptions *, tOptDesc *);
+
+-extern void optionVersionStderr(tOptions*, tOptDesc*);
++extern void optionVersionStderr(tOptions *, tOptDesc *);
+
+-extern void* text_mmap(char const*, int, int, tmap_info_t*);
++extern void * text_mmap(char const *, int, int, tmap_info_t *);
+
+-extern int text_munmap(tmap_info_t*);
++extern int text_munmap(tmap_info_t *);
+
+ CPLUSPLUS_CLOSER
+ #endif /* AUTOOPTS_OPTIONS_H_GUARD */
+diff --git a/src/libopts/autoopts/project.h b/src/libopts/autoopts/project.h
+index c61a6ca..1e7f156 100644
+--- a/src/libopts/autoopts/project.h
++++ b/src/libopts/autoopts/project.h
+@@ -4,7 +4,7 @@
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+diff --git a/src/libopts/autoopts/usage-txt.h b/src/libopts/autoopts/usage-txt.h
+index 0307a31..f5831e6 100644
+--- a/src/libopts/autoopts/usage-txt.h
++++ b/src/libopts/autoopts/usage-txt.h
+@@ -8,7 +8,7 @@
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -368,19 +368,19 @@ static void dummy_func(void) {
+ puts(_("allocation of %d bytes failed\n"));
+ #line 53 "../init.c"
+ puts(_("AutoOpts function called without option descriptor\n"));
+-#line 90 "../init.c"
++#line 86 "../init.c"
+ puts(_("\tThis exceeds the compiled library version: "));
+-#line 88 "../init.c"
++#line 84 "../init.c"
+ puts(_("Automated Options Processing Error!\n"
+ "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+ #line 80 "../autoopts.c"
+ puts(_("realloc of %d bytes at 0x%p failed\n"));
+-#line 92 "../init.c"
++#line 88 "../init.c"
+ puts(_("\tThis is less than the minimum library version: "));
+ #line 121 "../version.c"
+ puts(_("Automated Options version %s\n"
+ "\tCopyright (C) 1999-2014 by Bruce Korb - all rights reserved\n"));
+-#line 82 "../makeshell.c"
++#line 87 "../makeshell.c"
+ puts(_("(AutoOpts bug): %s.\n"));
+ #line 90 "../reset.c"
+ puts(_("optionResetOpt() called, but reset-option not configured"));
+@@ -404,9 +404,9 @@ static void dummy_func(void) {
+ puts(_("%s: Command line arguments required\n"));
+ #line 43 "../alias.c"
+ puts(_("%d %s%s options allowed\n"));
+-#line 89 "../makeshell.c"
++#line 94 "../makeshell.c"
+ puts(_("%s error %d (%s) calling %s for '%s'\n"));
+-#line 301 "../makeshell.c"
++#line 306 "../makeshell.c"
+ puts(_("interprocess pipe"));
+ #line 168 "../version.c"
+ puts(_("error: version option argument '%c' invalid. Use:\n"
+@@ -484,9 +484,9 @@ static void dummy_func(void) {
+ puts(_("Try '%s %s' for more information.\n"));
+ #line 45 "../alias.c"
+ puts(_("one %s%s option allowed\n"));
+-#line 203 "../makeshell.c"
++#line 208 "../makeshell.c"
+ puts(_("standard output"));
+-#line 938 "../makeshell.c"
++#line 943 "../makeshell.c"
+ puts(_("standard output"));
+ #line 274 "../usage.c"
+ puts(_("standard output"));
+@@ -504,9 +504,9 @@ static void dummy_func(void) {
+ puts(_("standard error"));
+ #line 175 "../version.c"
+ puts(_("standard error"));
+-#line 203 "../makeshell.c"
++#line 208 "../makeshell.c"
+ puts(_("write"));
+-#line 938 "../makeshell.c"
++#line 943 "../makeshell.c"
+ puts(_("write"));
+ #line 273 "../usage.c"
+ puts(_("write"));
+@@ -558,7 +558,7 @@ static void dummy_func(void) {
+ #line 380 "../usage.c"
+ puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+ "hyphen and the flag character.\n"));
+-#line 916 "../makeshell.c"
++#line 921 "../makeshell.c"
+ puts(_("\n"
+ "= = = = = = = =\n\n"
+ "This incarnation of genshell will produce\n"
+diff --git a/src/libopts/boolean.c b/src/libopts/boolean.c
+index e83e518..2bea8e7 100644
+--- a/src/libopts/boolean.c
++++ b/src/libopts/boolean.c
+@@ -13,7 +13,7 @@
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -36,8 +36,8 @@
+ * private:
+ *
+ * what: Decipher a boolean value
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * Decipher a true or false value for a boolean valued option argument.
+@@ -47,8 +47,8 @@
+ void
+ optionBooleanVal(tOptions * opts, tOptDesc * od)
+ {
+- char* pz;
+- bool res = true;
++ char * pz;
++ bool res = true;
+
+ if (INQUERY_CALL(opts, od))
+ return;
+diff --git a/src/libopts/check.c b/src/libopts/check.c
+index 9b221a1..eff8ec0 100644
+--- a/src/libopts/check.c
++++ b/src/libopts/check.c
+@@ -9,7 +9,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+diff --git a/src/libopts/compat/compat.h b/src/libopts/compat/compat.h
+index 69206a3..561d55d 100644
+--- a/src/libopts/compat/compat.h
++++ b/src/libopts/compat/compat.h
+@@ -3,7 +3,7 @@
+ * compat.h is free software.
+ * This file is part of AutoGen and AutoOpts.
+ *
+- * AutoGen Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoGen Copyright (C) 1992-2015 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
+diff --git a/src/libopts/compat/pathfind.c b/src/libopts/compat/pathfind.c
+index 6554533..5c477ca 100644
+--- a/src/libopts/compat/pathfind.c
++++ b/src/libopts/compat/pathfind.c
+@@ -23,9 +23,9 @@ pathfind( char const * path,
+ }
+ #else
+
+-static char* make_absolute( char const *string, char const *dot_path );
+-static char* canonicalize_pathname( char *path );
+-static char* extract_colon_unit( char* dir, char const *string, int *p_index );
++static char * make_absolute(char const * string, char const * dot_path);
++static char * canonicalize_pathname(char * path);
++static char * extract_colon_unit(char * dir, char const * string, int * p_index);
+
+ /**
+ * local implementation of pathfind.
+@@ -52,8 +52,8 @@ pathfind( char const * path,
+ * FOR each non-null entry in the colon-separated path, DO ...
+ */
+ for (;;) {
+- DIR* dirP;
+- char* colon_unit = extract_colon_unit( zPath, path, &p_index );
++ DIR * dirP;
++ char * colon_unit = extract_colon_unit( zPath, path, &p_index );
+
+ if (colon_unit == NULL)
+ break;
+@@ -69,7 +69,7 @@ pathfind( char const * path,
+ for (;;) {
+ struct dirent *entP = readdir( dirP );
+
+- if (entP == (struct dirent*)NULL)
++ if (entP == (struct dirent *)NULL)
+ break;
+
+ /*
+@@ -107,10 +107,10 @@ pathfind( char const * path,
+ * DOT_PATH contains the symbolic location of `.'. This always returns
+ * a new string, even if STRING was an absolute pathname to begin with.
+ */
+-static char*
+-make_absolute( char const *string, char const *dot_path )
++static char *
++make_absolute( char const * string, char const * dot_path )
+ {
+- char *result;
++ char * result;
+ int result_len;
+
+ if (!dot_path || *string == '/') {
+@@ -147,7 +147,7 @@ make_absolute( char const *string, char const *dot_path )
+ * Non-leading `../'s and trailing `..'s are handled by removing
+ * portions of the path.
+ */
+-static char*
++static char *
+ canonicalize_pathname( char *path )
+ {
+ int i, start;
+@@ -231,8 +231,8 @@ canonicalize_pathname( char *path )
+ * return the next one pointed to by (P_INDEX), or NULL if there are no
+ * more. Advance (P_INDEX) to the character after the colon.
+ */
+-static char*
+-extract_colon_unit( char* pzDir, char const *string, int *p_index )
++static char *
++extract_colon_unit(char * pzDir, char const * string, int * p_index)
+ {
+ char * pzDest = pzDir;
+ int ix = *p_index;
+diff --git a/src/libopts/compat/windows-config.h b/src/libopts/compat/windows-config.h
+index 78f3202..fb4e048 100644
+--- a/src/libopts/compat/windows-config.h
++++ b/src/libopts/compat/windows-config.h
+@@ -9,7 +9,7 @@
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+diff --git a/src/libopts/configfile.c b/src/libopts/configfile.c
+index d4bc4fe..03156ca 100644
+--- a/src/libopts/configfile.c
++++ b/src/libopts/configfile.c
+@@ -9,7 +9,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -33,7 +33,7 @@ static void
+ file_preset(tOptions * opts, char const * fname, int dir);
+
+ static char *
+-handle_comment(char* txt);
++handle_comment(char * txt);
+
+ static char *
+ handle_cfg(tOptions * opts, tOptState * ost, char * txt, int dir);
+@@ -87,9 +87,9 @@ skip_unkn(char const * txt)
+ /*=export_func configFileLoad
+ *
+ * what: parse a configuration file
+- * arg: + char const* + fname + the file to load +
++ * arg: + char const * + fname + the file to load +
+ *
+- * ret_type: const tOptionValue*
++ * ret_type: const tOptionValue *
+ * ret_desc: An allocated, compound value structure
+ *
+ * doc:
+@@ -146,11 +146,11 @@ configFileLoad(char const * fname)
+ /*=export_func optionFindValue
+ *
+ * what: find a hierarcicaly valued option instance
+- * arg: + const tOptDesc* + odesc + an option with a nested arg type +
+- * arg: + char const* + name + name of value to find +
+- * arg: + char const* + val + the matching value +
++ * arg: + const tOptDesc * + odesc + an option with a nested arg type +
++ * arg: + char const * + name + name of value to find +
++ * arg: + char const * + val + the matching value +
+ *
+- * ret_type: const tOptionValue*
++ * ret_type: const tOptionValue *
+ * ret_desc: a compound value structure
+ *
+ * doc:
+@@ -182,9 +182,9 @@ optionFindValue(const tOptDesc * odesc, char const * name, char const * val)
+ }
+
+ else do {
+- tArgList* argl = odesc->optCookie;
+- int argct = argl->useCt;
+- void ** poptv = (void**)(argl->apzArgs);
++ tArgList * argl = odesc->optCookie;
++ int argct = argl->useCt;
++ void ** poptv = (void **)(argl->apzArgs);
+
+ if (argct == 0) {
+ errno = ENOENT;
+@@ -192,7 +192,7 @@ optionFindValue(const tOptDesc * odesc, char const * name, char const * val)
+ }
+
+ if (name == NULL) {
+- res = (tOptionValue*)*poptv;
++ res = (tOptionValue *)*poptv;
+ break;
+ }
+
+@@ -221,12 +221,12 @@ optionFindValue(const tOptDesc * odesc, char const * name, char const * val)
+ * FIXME: the handling of 'pzName' and 'pzVal' is just wrong.
+ *
+ * what: find a hierarcicaly valued option instance
+- * arg: + const tOptDesc* + odesc + an option with a nested arg type +
+- * arg: + const tOptionValue* + pPrevVal + the last entry +
+- * arg: + char const* + name + name of value to find +
+- * arg: + char const* + value + the matching value +
++ * arg: + const tOptDesc * + odesc + an option with a nested arg type +
++ * arg: + const tOptionValue * + pPrevVal + the last entry +
++ * arg: + char const * + name + name of value to find +
++ * arg: + char const * + value + the matching value +
+ *
+- * ret_type: const tOptionValue*
++ * ret_type: const tOptionValue *
+ * ret_desc: a compound value structure
+ *
+ * doc:
+@@ -249,7 +249,7 @@ optionFindNextValue(const tOptDesc * odesc, const tOptionValue * pPrevVal,
+ char const * pzName, char const * pzVal)
+ {
+ bool old_found = false;
+- tOptionValue* res = NULL;
++ tOptionValue * res = NULL;
+
+ (void)pzName;
+ (void)pzVal;
+@@ -264,12 +264,12 @@ optionFindNextValue(const tOptDesc * odesc, const tOptionValue * pPrevVal,
+ }
+
+ else do {
+- tArgList* argl = odesc->optCookie;
+- int ct = argl->useCt;
+- void** poptv = (void**)argl->apzArgs;
++ tArgList * argl = odesc->optCookie;
++ int ct = argl->useCt;
++ void ** poptv = (void **)argl->apzArgs;
+
+ while (--ct >= 0) {
+- tOptionValue* pOV = *(poptv++);
++ tOptionValue * pOV = *(poptv++);
+ if (old_found) {
+ res = pOV;
+ break;
+@@ -288,10 +288,10 @@ optionFindNextValue(const tOptDesc * odesc, const tOptionValue * pPrevVal,
+ /*=export_func optionGetValue
+ *
+ * what: get a specific value from a hierarcical list
+- * arg: + const tOptionValue* + pOptValue + a hierarchcal value +
+- * arg: + char const* + valueName + name of value to get +
++ * arg: + const tOptionValue * + pOptValue + a hierarchcal value +
++ * arg: + char const * + valueName + name of value to get +
+ *
+- * ret_type: const tOptionValue*
++ * ret_type: const tOptionValue *
+ * ret_desc: a compound value structure
+ *
+ * doc:
+@@ -326,10 +326,10 @@ optionGetValue(tOptionValue const * oov, char const * vname)
+
+ if (arg_list->useCt > 0) {
+ int ct = arg_list->useCt;
+- void ** ovlist = (void**)(arg_list->apzArgs);
++ void ** ovlist = (void **)(arg_list->apzArgs);
+
+ if (vname == NULL) {
+- res = (tOptionValue*)*ovlist;
++ res = (tOptionValue *)*ovlist;
+
+ } else do {
+ tOptionValue * opt_val = *(ovlist++);
+@@ -347,10 +347,10 @@ optionGetValue(tOptionValue const * oov, char const * vname)
+ /*=export_func optionNextValue
+ *
+ * what: get the next value from a hierarchical list
+- * arg: + const tOptionValue* + pOptValue + a hierarchcal list value +
+- * arg: + const tOptionValue* + pOldValue + a value from this list +
++ * arg: + const tOptionValue * + pOptValue + a hierarchcal list value +
++ * arg: + const tOptionValue * + pOldValue + a value from this list +
+ *
+- * ret_type: const tOptionValue*
++ * ret_type: const tOptionValue *
+ * ret_desc: a compound value structure
+ *
+ * doc:
+@@ -385,7 +385,7 @@ optionNextValue(tOptionValue const * ov_list,tOptionValue const * oov )
+ arg_list = ov_list->v.nestVal;
+ {
+ int ct = arg_list->useCt;
+- void ** o_list = (void**)(arg_list->apzArgs);
++ void ** o_list = (void **)(arg_list->apzArgs);
+
+ while (ct-- > 0) {
+ tOptionValue * nov = *(o_list++);
+@@ -395,7 +395,7 @@ optionNextValue(tOptionValue const * ov_list,tOptionValue const * oov )
+
+ } else {
+ err = 0;
+- res = (tOptionValue*)*o_list;
++ res = (tOptionValue *)*o_list;
+ }
+ break;
+ }
+@@ -498,9 +498,9 @@ file_preset(tOptions * opts, char const * fname, int dir)
+ * but actually I don't care that much. It ends with "-->".
+ */
+ static char *
+-handle_comment(char* txt)
++handle_comment(char * txt)
+ {
+- char* pz = strstr(txt, "-->");
++ char * pz = strstr(txt, "-->");
+ if (pz != NULL)
+ pz += 3;
+ return pz;
+@@ -515,8 +515,8 @@ handle_comment(char* txt)
+ static char *
+ handle_cfg(tOptions * opts, tOptState * ost, char * txt, int dir)
+ {
+- char* pzName = txt++;
+- char* pzEnd = strchr(txt, NL);
++ char * pzName = txt++;
++ char * pzEnd = strchr(txt, NL);
+
+ if (pzEnd == NULL)
+ return txt + strlen(txt);
+@@ -547,8 +547,8 @@ handle_cfg(tOptions * opts, tOptState * ost, char * txt, int dir)
+ * on to a newline *not* preceded by a backslash.
+ */
+ if (pzEnd[-1] == '\\') {
+- char* pcD = pzEnd-1;
+- char* pcS = pzEnd;
++ char * pcD = pzEnd-1;
++ char * pcS = pzEnd;
+
+ for (;;) {
+ char ch = *(pcS++);
+@@ -920,9 +920,9 @@ handle_struct(tOptions * opts, tOptState * ost, char * txt, int dir)
+ tOptionLoadMode mode = option_load_mode;
+ tOptionValue valu;
+
+- char* pzName = ++txt;
+- char* pzData;
+- char* pcNulPoint;
++ char * pzName = ++txt;
++ char * pzData;
++ char * pcNulPoint;
+
+ txt = SPN_VALUE_NAME_CHARS(txt);
+ pcNulPoint = txt;
+@@ -931,8 +931,8 @@ handle_struct(tOptions * opts, tOptState * ost, char * txt, int dir)
+ switch (*txt) {
+ case ' ':
+ case '\t':
+- txt = (void *)parse_attrs(
+- opts, SPN_WHITESPACE_CHARS(txt), &mode, &valu);
++ txt = VOIDP(parse_attrs(
++ opts, SPN_WHITESPACE_CHARS(txt), &mode, &valu));
+ if (txt == NULL)
+ return txt;
+ if (*txt == '>')
+@@ -1096,8 +1096,8 @@ intern_file_load(tOptions * opts)
+ *
+ * what: Load the locatable config files, in order
+ *
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + char const* + prog + program name +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + char const * + prog + program name +
+ *
+ * ret_type: int
+ * ret_desc: 0 -> SUCCESS, -1 -> FAILURE
+@@ -1137,8 +1137,7 @@ optionFileLoad(tOptions * opts, char const * prog)
+ * of this pointer to point to writable memory.
+ */
+ {
+- char const ** pp =
+- (char const **)(void *)&(opts->pzProgName);
++ char const ** pp = VOIDP(&(opts->pzProgName));
+ *pp = prog;
+ }
+
+@@ -1150,8 +1149,8 @@ optionFileLoad(tOptions * opts, char const * prog)
+ * private:
+ *
+ * what: Load an option rc/ini file
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + odesc + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + odesc + the descriptor for this arg +
+ *
+ * doc:
+ * Processes the options found in the file named with
+diff --git a/src/libopts/cook.c b/src/libopts/cook.c
+index 952aac9..65260a2 100644
+--- a/src/libopts/cook.c
++++ b/src/libopts/cook.c
+@@ -10,7 +10,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -38,8 +38,8 @@ contiguous_quote(char ** pps, char * pq, int * lnct_p);
+ * private:
+ *
+ * what: escape-process a string fragment
+- * arg: + char const* + pzScan + points to character after the escape +
+- * arg: + char* + pRes + Where to put the result byte +
++ * arg: + char const * + pzScan + points to character after the escape +
++ * arg: + char * + pRes + Where to put the result byte +
+ * arg: + unsigned int + nl_ch + replacement char if scanned char is \n +
+ *
+ * ret-type: unsigned int
+@@ -184,7 +184,7 @@ contiguous_quote(char ** pps, char * pq, int * lnct_p)
+
+ case '*':
+ {
+- char* p = strstr( ps+2, "*/" );
++ char * p = strstr( ps+2, "*/" );
+ /*
+ * Skip to terminating star slash
+ */
+@@ -218,10 +218,10 @@ contiguous_quote(char ** pps, char * pq, int * lnct_p)
+ * private:
+ *
+ * what: concatenate and escape-process strings
+- * arg: + char* + pzScan + The *MODIFIABLE* input buffer +
+- * arg: + int* + lnct_p + The (possibly NULL) pointer to a line count +
++ * arg: + char * + pzScan + The *MODIFIABLE* input buffer +
++ * arg: + int * + lnct_p + The (possibly NULL) pointer to a line count +
+ *
+- * ret-type: char*
++ * ret-type: char *
+ * ret-desc: The address of the text following the processed strings.
+ * The return value is NULL if the strings are ill-formed.
+ *
+@@ -245,8 +245,8 @@ ao_string_cook(char * pzScan, int * lnct_p)
+ * It is a quoted string. Process the escape sequence characters
+ * (in the set "abfnrtv") and make sure we find a closing quote.
+ */
+- char* pzD = pzScan++;
+- char* pzS = pzScan;
++ char * pzD = pzScan++;
++ char * pzS = pzScan;
+
+ if (lnct_p == NULL)
+ lnct_p = &l;
+diff --git a/src/libopts/enum.c b/src/libopts/enum.c
+index 299ffb1..3345558 100644
+--- a/src/libopts/enum.c
++++ b/src/libopts/enum.c
+@@ -14,7 +14,7 @@
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -186,14 +186,14 @@ find_name(char const * name, tOptions * pOpts, tOptDesc * pOD,
+ {
+ /*
+ * Return the matching index as a pointer sized integer.
+- * The result gets stashed in a char* pointer.
++ * The result gets stashed in a char * pointer.
+ */
+ uintptr_t res = name_ct;
+- size_t len = strlen((char*)name);
++ size_t len = strlen((char *)name);
+ uintptr_t idx;
+
+ if (IS_DEC_DIGIT_CHAR(*name)) {
+- char * pz = (char *)(void *)name;
++ char * pz = VOIDP(name);
+ unsigned long val = strtoul(pz, &pz, 0);
+ if ((*pz == NUL) && (val < name_ct))
+ return (uintptr_t)val;
+@@ -215,7 +215,7 @@ find_name(char const * name, tOptions * pOpts, tOptDesc * pOD,
+ * Multiple partial matches means we have an ambiguous match.
+ */
+ for (idx = 0; idx < name_ct; idx++) {
+- if (strncmp((char*)paz_names[idx], (char*)name, len) == 0) {
++ if (strncmp((char *)paz_names[idx], (char *)name, len) == 0) {
+ if (paz_names[idx][len] == NUL)
+ return idx; /* full match */
+
+@@ -242,7 +242,7 @@ find_name(char const * name, tOptions * pOpts, tOptDesc * pOD,
+ * what: Convert between enumeration values and strings
+ * private:
+ *
+- * arg: tOptDesc*, pOD, enumeration option description
++ * arg: tOptDesc *, pOD, enumeration option description
+ * arg: unsigned int, enum_val, the enumeration value to map
+ *
+ * ret_type: char const *
+@@ -265,8 +265,8 @@ optionKeywordName(tOptDesc * pOD, unsigned int enum_val)
+ * what: Convert from a string to an enumeration value
+ * private:
+ *
+- * arg: tOptions*, pOpts, the program options descriptor
+- * arg: tOptDesc*, pOD, enumeration option description
++ * arg: tOptions *, pOpts, the program options descriptor
++ * arg: tOptDesc *, pOD, enumeration option description
+ * arg: char const * const *, paz_names, list of enumeration names
+ * arg: unsigned int, name_ct, number of names in list
+ *
+@@ -509,7 +509,7 @@ find_member_bit(tOptions * opts, tOptDesc * od, char const * pz, int len,
+ *
+ * arg: tOptDesc *, od, the set membership option description
+ *
+- * ret_type: char*
++ * ret_type: char *
+ * ret_desc: the names of the set bits
+ *
+ * doc: This converts the OPT_VALUE_name mask value to a allocated string.
+@@ -521,7 +521,7 @@ optionMemberList(tOptDesc * od)
+ uintptr_t sv = od->optArg.argIntptr;
+ char * res;
+ (*(od->pOptProc))(OPTPROC_RETURN_VALNAME, od);
+- res = (void *)od->optArg.argString;
++ res = VOIDP(od->optArg.argString);
+ od->optArg.argIntptr = sv;
+ return res;
+ }
+@@ -530,8 +530,8 @@ optionMemberList(tOptDesc * od)
+ * what: Convert between bit flag values and strings
+ * private:
+ *
+- * arg: tOptions*, opts, the program options descriptor
+- * arg: tOptDesc*, od, the set membership option description
++ * arg: tOptions *, opts, the program options descriptor
++ * arg: tOptDesc *, od, the set membership option description
+ * arg: char const * const *,
+ * nm_list, list of enumeration names
+ * arg: unsigned int, nm_ct, number of names in list
+@@ -634,12 +634,12 @@ optionSetMembers(tOptions * opts, tOptDesc * od,
+ if (nm_ct < (8 * sizeof(uintptr_t)))
+ res &= (1UL << nm_ct) - 1UL;
+
+- od->optCookie = (void *)res;
++ od->optCookie = VOIDP(res);
+ }
+ return;
+
+ fail_return:
+- od->optCookie = (void *)0;
++ od->optCookie = VOIDP(0);
+ }
+
+ /** @}
+diff --git a/src/libopts/env.c b/src/libopts/env.c
+index 7b6615e..36ae2e5 100644
+--- a/src/libopts/env.c
++++ b/src/libopts/env.c
+@@ -13,7 +13,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -48,7 +48,7 @@ LOCAL void
+ doPrognameEnv(tOptions * pOpts, teEnvPresetType type)
+ {
+ char const * env_opts = getenv(pOpts->pzPROGNAME);
+- token_list_t* pTL;
++ token_list_t * pTL;
+ int sv_argc;
+ proc_state_mask_t sv_flag;
+ char ** sv_argv;
+@@ -82,7 +82,7 @@ doPrognameEnv(tOptions * pOpts, teEnvPresetType type)
+ */
+ {
+ uintptr_t v = (uintptr_t)(pTL->tkn_list);
+- pOpts->origArgVect = (void *)(v - sizeof(char *));
++ pOpts->origArgVect = VOIDP(v - sizeof(char *));
+ }
+ pOpts->origArgCt = (unsigned int)pTL->tkn_ct + 1;
+ pOpts->fOptSet &= ~OPTPROC_ERRSTOP;
+@@ -192,7 +192,7 @@ env_presets(tOptions * pOpts, teEnvPresetType type)
+ {
+ int ct;
+ tOptState st;
+- char* pzFlagName;
++ char * pzFlagName;
+ size_t spaceLeft;
+ char zEnvName[ AO_NAME_SIZE ];
+
+diff --git a/src/libopts/file.c b/src/libopts/file.c
+index ec740c5..7d92875 100644
+--- a/src/libopts/file.c
++++ b/src/libopts/file.c
+@@ -10,7 +10,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -107,7 +107,7 @@ open_file_fd(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode)
+ /* NOTREACHED */
+
+ if ((pOD->fOptState & OPTST_ALLOC_ARG) != 0)
+- pOD->optCookie = (void *)pOD->optArg.argString;
++ pOD->optCookie = VOIDP(pOD->optArg.argString);
+ else
+ AGDUPSTR(pOD->optCookie, pOD->optArg.argString, "file name");
+
+@@ -131,7 +131,7 @@ fopen_file_fp(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode)
+ /* NOTREACHED */
+
+ if ((pOD->fOptState & OPTST_ALLOC_ARG) != 0)
+- pOD->optCookie = (void *)pOD->optArg.argString;
++ pOD->optCookie = VOIDP(pOD->optArg.argString);
+ else
+ AGDUPSTR(pOD->optCookie, pOD->optArg.argString, "file name");
+
+@@ -143,8 +143,8 @@ fopen_file_fp(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode)
+ * private:
+ *
+ * what: Decipher a boolean value
+- * arg: + tOptions* + pOpts + program options descriptor +
+- * arg: + tOptDesc* + pOptDesc + the descriptor for this arg +
++ * arg: + tOptions * + pOpts + program options descriptor +
++ * arg: + tOptDesc * + pOptDesc + the descriptor for this arg +
+ * arg: + teOptFileType + ftype + File handling type +
+ * arg: + tuFileMode + mode + file open mode (if needed) +
+ *
+@@ -153,7 +153,7 @@ fopen_file_fp(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode)
+ * The mode specifies if the file must exist, must not exist or may
+ * (or may not) exist. The mode may also specify opening the
+ * file: don't, open just the descriptor (fd), or open as a stream
+- * (FILE* pointer).
++ * (FILE * pointer).
+ =*/
+ void
+ optionFileCheck(tOptions * pOpts, tOptDesc * pOD,
+diff --git a/src/libopts/find.c b/src/libopts/find.c
+index 1ec02e5..90591cc 100644
+--- a/src/libopts/find.c
++++ b/src/libopts/find.c
+@@ -12,7 +12,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -58,7 +58,7 @@ static tSuccess
+ get_opt_arg_may(tOptions * pOpts, tOptState * o_st);
+
+ static tSuccess
+-get_opt_arg_none(tOptions * pOpts, tOptState* o_st);
++get_opt_arg_none(tOptions * pOpts, tOptState * o_st);
+ /* = = = END-STATIC-FORWARD = = = */
+
+ /**
+@@ -409,9 +409,9 @@ opt_find_long(tOptions * opts, char const * opt_name, tOptState * state)
+ * @param pOptState state about current option
+ */
+ LOCAL tSuccess
+-opt_find_short(tOptions* pOpts, uint_t optValue, tOptState* pOptState)
++opt_find_short(tOptions * pOpts, uint_t optValue, tOptState * pOptState)
+ {
+- tOptDesc* pRes = pOpts->pOptDesc;
++ tOptDesc * pRes = pOpts->pOptDesc;
+ int ct = pOpts->optCt;
+
+ /*
+@@ -554,7 +554,7 @@ get_opt_arg_may(tOptions * pOpts, tOptState * o_st)
+ if (*++pOpts->pzCurOpt != NUL)
+ o_st->pzOptArg = pOpts->pzCurOpt;
+ else {
+- char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
++ char * pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
+
+ /*
+ * BECAUSE it is optional, we must make sure
+@@ -577,7 +577,7 @@ get_opt_arg_may(tOptions * pOpts, tOptState * o_st)
+ */
+ if ( (o_st->pzOptArg == NULL)
+ && (! NAMED_OPTS(pOpts))) {
+- char* pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
++ char * pzLA = pOpts->origArgVect[ pOpts->curOptIdx ];
+
+ /*
+ * BECAUSE it is optional, we must make sure
+@@ -616,7 +616,7 @@ get_opt_arg_may(tOptions * pOpts, tOptState * o_st)
+ * @returns SUCCESS or FAILURE
+ */
+ static tSuccess
+-get_opt_arg_none(tOptions * pOpts, tOptState* o_st)
++get_opt_arg_none(tOptions * pOpts, tOptState * o_st)
+ {
+ /*
+ * No option argument. Make sure next time around we find
+@@ -711,7 +711,7 @@ find_opt(tOptions * opts, tOptState * o_st)
+ * strip off the "const" quality of the "default_opt" field.
+ */
+ while (*(++pz) == '-') ;
+- def_opt = (void *)&(opts->specOptIdx.default_opt);
++ def_opt = VOIDP(&(opts->specOptIdx.default_opt));
+ def = *def_opt;
+ *def_opt = NO_EQUIVALENT;
+ res = opt_find_long(opts, pz, o_st);
+diff --git a/src/libopts/genshell.c b/src/libopts/genshell.c
+index 20e6c15..3933572 100644
+--- a/src/libopts/genshell.c
++++ b/src/libopts/genshell.c
+@@ -6,7 +6,7 @@
+ * From the definitions genshell.def
+ * and the template file options
+ *
+- * Generated from AutoOpts 41:0:16 templates.
++ * Generated from AutoOpts 41:1:16 templates.
+ *
+ * AutoOpts is a copyrighted work. This source file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+@@ -294,7 +294,7 @@ doUsageOpt(tOptions * opts, tOptDesc * od)
+ (void)opts;
+ (void)od;
+ }
+-/* extracted from optmain.tlib near line 1245 */
++/* extracted from optmain.tlib near line 1250 */
+
+ /**
+ * The directory containing the data associated with genshellopt.
+@@ -406,11 +406,11 @@ AO_gettext(char const * pz)
+ if (option_xlateable_txt.field_ct != 0) {
+ res = dgettext("libopts", pz);
+ if (res == pz)
+- res = (char *)(void *)_(pz);
++ res = (char *)VOIDP(_(pz));
+ } else
+- res = (char *)(void *)_(pz);
++ res = (char *)VOIDP(_(pz));
+ #else
+- res = (char *)(void *)_(pz);
++ res = (char *)VOIDP(_(pz));
+ #endif
+ if (res == pz)
+ return res;
+@@ -447,7 +447,7 @@ translate_option_strings(void)
+ * Do the translations. The first pointer follows the field count
+ * field. The field count field is the size of a pointer.
+ */
+- char ** ppz = (char**)(void*)&(option_xlateable_txt);
++ char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
+ int ix = option_xlateable_txt.field_ct;
+
+ do {
+@@ -457,16 +457,16 @@ translate_option_strings(void)
+ /* prevent re-translation and disable "libopts" domain lookup */
+ option_xlateable_txt.field_ct = 0;
+
+- coerce_it((void*)&(opts->pzCopyright));
+- coerce_it((void*)&(opts->pzCopyNotice));
+- coerce_it((void*)&(opts->pzFullVersion));
+- coerce_it((void*)&(opts->pzUsageTitle));
+- coerce_it((void*)&(opts->pzExplain));
+- coerce_it((void*)&(opts->pzDetail));
++ coerce_it(VOIDP(&(opts->pzCopyright)));
++ coerce_it(VOIDP(&(opts->pzCopyNotice)));
++ coerce_it(VOIDP(&(opts->pzFullVersion)));
++ coerce_it(VOIDP(&(opts->pzUsageTitle)));
++ coerce_it(VOIDP(&(opts->pzExplain)));
++ coerce_it(VOIDP(&(opts->pzDetail)));
+ {
+ tOptDesc * od = opts->pOptDesc;
+ for (ix = opts->optCt; ix > 0; ix--, od++)
+- coerce_it((void*)&(od->pzText));
++ coerce_it(VOIDP(&(od->pzText)));
+ }
+ }
+ }
+@@ -555,19 +555,19 @@ by the newly generated text. The first '#!' line will be regenerated.\n"));
+ puts(_("allocation of %d bytes failed\n"));
+ #line 53 "../init.c"
+ puts(_("AutoOpts function called without option descriptor\n"));
+-#line 90 "../init.c"
++#line 86 "../init.c"
+ puts(_("\tThis exceeds the compiled library version: "));
+-#line 88 "../init.c"
++#line 84 "../init.c"
+ puts(_("Automated Options Processing Error!\n"
+ "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
+ #line 80 "../autoopts.c"
+ puts(_("realloc of %d bytes at 0x%p failed\n"));
+-#line 92 "../init.c"
++#line 88 "../init.c"
+ puts(_("\tThis is less than the minimum library version: "));
+ #line 121 "../version.c"
+ puts(_("Automated Options version %s\n"
+ "\tCopyright (C) 1999-2014 by Bruce Korb - all rights reserved\n"));
+-#line 82 "../makeshell.c"
++#line 87 "../makeshell.c"
+ puts(_("(AutoOpts bug): %s.\n"));
+ #line 90 "../reset.c"
+ puts(_("optionResetOpt() called, but reset-option not configured"));
+@@ -591,9 +591,9 @@ by the newly generated text. The first '#!' line will be regenerated.\n"));
+ puts(_("%s: Command line arguments required\n"));
+ #line 43 "../alias.c"
+ puts(_("%d %s%s options allowed\n"));
+-#line 89 "../makeshell.c"
++#line 94 "../makeshell.c"
+ puts(_("%s error %d (%s) calling %s for '%s'\n"));
+-#line 301 "../makeshell.c"
++#line 306 "../makeshell.c"
+ puts(_("interprocess pipe"));
+ #line 168 "../version.c"
+ puts(_("error: version option argument '%c' invalid. Use:\n"
+@@ -671,9 +671,9 @@ by the newly generated text. The first '#!' line will be regenerated.\n"));
+ puts(_("Try '%s %s' for more information.\n"));
+ #line 45 "../alias.c"
+ puts(_("one %s%s option allowed\n"));
+-#line 203 "../makeshell.c"
++#line 208 "../makeshell.c"
+ puts(_("standard output"));
+-#line 938 "../makeshell.c"
++#line 943 "../makeshell.c"
+ puts(_("standard output"));
+ #line 274 "../usage.c"
+ puts(_("standard output"));
+@@ -691,9 +691,9 @@ by the newly generated text. The first '#!' line will be regenerated.\n"));
+ puts(_("standard error"));
+ #line 175 "../version.c"
+ puts(_("standard error"));
+-#line 203 "../makeshell.c"
++#line 208 "../makeshell.c"
+ puts(_("write"));
+-#line 938 "../makeshell.c"
++#line 943 "../makeshell.c"
+ puts(_("write"));
+ #line 273 "../usage.c"
+ puts(_("write"));
+@@ -745,7 +745,7 @@ by the newly generated text. The first '#!' line will be regenerated.\n"));
+ #line 380 "../usage.c"
+ puts(_("Options are specified by doubled hyphens and their name or by a single\n"
+ "hyphen and the flag character.\n"));
+-#line 916 "../makeshell.c"
++#line 921 "../makeshell.c"
+ puts(_("\n"
+ "= = = = = = = =\n\n"
+ "This incarnation of genshell will produce\n"
+diff --git a/src/libopts/genshell.h b/src/libopts/genshell.h
+index 1c18735..c371f52 100644
+--- a/src/libopts/genshell.h
++++ b/src/libopts/genshell.h
+@@ -6,7 +6,7 @@
+ * From the definitions genshell.def
+ * and the template file options
+ *
+- * Generated from AutoOpts 41:0:16 templates.
++ * Generated from AutoOpts 41:1:16 templates.
+ *
+ * AutoOpts is a copyrighted work. This header file is not encumbered
+ * by AutoOpts licensing, but is provided under the licensing terms chosen
+@@ -55,7 +55,7 @@
+ * tolerable version is at least as old as what was current when the header
+ * template was released.
+ */
+-#define AO_TEMPLATE_VERSION 167936
++#define AO_TEMPLATE_VERSION 167937
+ #if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
+ || (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
+ # error option template version mismatches autoopts/options.h header
+diff --git a/src/libopts/gettext.h b/src/libopts/gettext.h
+index 9b7416d..7d3ea3c 100644
+--- a/src/libopts/gettext.h
++++ b/src/libopts/gettext.h
+@@ -1,5 +1,5 @@
+ /* Convenience header for conditional use of GNU <libintl.h>.
+- Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2014 Free Software
++ Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2015 Free Software
+ Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+diff --git a/src/libopts/init.c b/src/libopts/init.c
+index e038ed7..e02e1e1 100644
+--- a/src/libopts/init.c
++++ b/src/libopts/init.c
+@@ -9,7 +9,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -69,7 +69,7 @@ validate_struct(tOptions * opts, char const * pname)
+ */
+ if ((opts->fOptSet & OPTPROC_NO_XLAT_MASK) == OPTPROC_NXLAT_OPT)
+ opts->fOptSet |= OPTPROC_NXLAT_OPT_CFG;
+- (*opts->pTransProc)();
++ opts->pTransProc();
+ }
+
+ /*
+@@ -81,10 +81,6 @@ validate_struct(tOptions * opts, char const * pname)
+ && ( (opts->structVersion > OPTIONS_STRUCT_VERSION )
+ || (opts->structVersion < OPTIONS_MINIMUM_VERSION )
+ ) ) {
+-
+- static char const ao_ver_string[] =
+- STR(AO_CURRENT)":"STR(AO_REVISION)":"STR(AO_AGE)"\n";
+-
+ fprintf(stderr, zwrong_ver, pname, NUM_TO_VER(opts->structVersion));
+ if (opts->structVersion > OPTIONS_STRUCT_VERSION )
+ fputs(ztoo_new, stderr);
+@@ -111,9 +107,9 @@ validate_struct(tOptions * opts, char const * pname)
+
+ pz = pathfind(getenv("PATH"), (char *)pname, "rx");
+ if (pz != NULL)
+- pname = (void *)pz;
++ pname = VOIDP(pz);
+
+- pp = (char const **)(void **)&(opts->pzProgPath);
++ pp = (char const **)VOIDP(&(opts->pzProgPath));
+ *pp = pname;
+
+ /*
+diff --git a/src/libopts/intprops.h b/src/libopts/intprops.h
+index 6936ad5..2ae151b 100644
+--- a/src/libopts/intprops.h
++++ b/src/libopts/intprops.h
+@@ -1,6 +1,6 @@
+ /* intprops.h -- properties of integer types
+
+- Copyright (C) 2001-2005, 2009-2014 Free Software Foundation, Inc.
++ Copyright (C) 2001-2005, 2009-2015 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+diff --git a/src/libopts/libopts.c b/src/libopts/libopts.c
+index a0ff362..a26c924 100644
+--- a/src/libopts/libopts.c
++++ b/src/libopts/libopts.c
+@@ -2,6 +2,8 @@
+ #include "autoopts/project.h"
+ #define LOCAL static
+ #include "ao-strs.h"
++static char const ao_ver_string[] =
++ "41:1:16\n";
+ #include "autoopts/options.h"
+ #include "autoopts/usage-txt.h"
+ #include "genshell.h"
+diff --git a/src/libopts/load.c b/src/libopts/load.c
+index 5c29d96..b5230af 100644
+--- a/src/libopts/load.c
++++ b/src/libopts/load.c
+@@ -12,7 +12,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -94,10 +94,10 @@ get_realpath(char * buf, size_t b_sz)
+ * private:
+ *
+ * what: translate and construct a path
+- * arg: + char* + p_buf + The result buffer +
+- * arg: + int + b_sz + The size of this buffer +
+- * arg: + char const* + fname + The input name +
+- * arg: + char const* + prg_path + The full path of the current program +
++ * arg: + char * + p_buf + The result buffer +
++ * arg: + int + b_sz + The size of this buffer +
++ * arg: + char const * + fname + The input name +
++ * arg: + char const * + prg_path + The full path of the current program +
+ *
+ * ret-type: bool
+ * ret-desc: true if the name was handled, otherwise false.
+@@ -225,7 +225,7 @@ add_prog_path(char * buf, int b_sz, char const * fname, char const * prg_path)
+ if (strchr(prg_path, DIRCH) != NULL)
+ path = prg_path;
+ else {
+- path = pathfind(getenv("PATH"), (char*)prg_path, "rx");
++ path = pathfind(getenv("PATH"), (char *)prg_path, "rx");
+
+ if (path == NULL)
+ return false;
+@@ -544,8 +544,8 @@ load_opt_line(tOptions * opts, tOptState * opt_state, char * line,
+ *
+ * what: process a string for an option name and value
+ *
+- * arg: tOptions*, opts, program options descriptor
+- * arg: char const*, line, NUL-terminated text
++ * arg: tOptions *, opts, program options descriptor
++ * arg: char const *, line, NUL-terminated text
+ *
+ * doc:
+ *
+diff --git a/src/libopts/m4/libopts.m4 b/src/libopts/m4/libopts.m4
+index 1f3b3ce..1a896d9 100644
+--- a/src/libopts/m4/libopts.m4
++++ b/src/libopts/m4/libopts.m4
+@@ -97,10 +97,10 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
+ ])
+ AC_CHECK_TYPES([int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
+ intptr_t, uintptr_t, uint_t, pid_t, size_t, ptrdiff_t])
+- AC_CHECK_SIZEOF(char*, 8)
+- AC_CHECK_SIZEOF(int, 4)
+- AC_CHECK_SIZEOF(long, 8)
+- AC_CHECK_SIZEOF(short, 2)
++ AC_CHECK_SIZEOF(char *, 8)
++ AC_CHECK_SIZEOF(int, 4)
++ AC_CHECK_SIZEOF(long, 8)
++ AC_CHECK_SIZEOF(short, 2)
+
+ # ------------
+ # AC_CHECK_LIB
+@@ -189,14 +189,14 @@ AC_DEFUN([LIBOPTS_WITHLIB_REGEX],[
+ Xyes|Xno|X )
+ case "X${libopts_cv_with_libregex_root}" in
+ Xyes|Xno|X ) libopts_cv_with_libregex_cflags=no ;;
+- * ) libopts_cv_with_libregex_cflags=-I${libopts_cv_with_libregex_root}/include ;;
++ * ) libopts_cv_with_libregex_cflags=-I${libopts_cv_with_libregex_root}/include ;;
+ esac
+ esac
+ case "X${libopts_cv_with_libregex_libs}" in
+ Xyes|Xno|X )
+ case "X${libopts_cv_with_libregex_root}" in
+ Xyes|Xno|X ) libopts_cv_with_libregex_libs=no ;;
+- * ) libopts_cv_with_libregex_libs="-L${libopts_cv_with_libregex_root}/lib -lregex";;
++ * ) libopts_cv_with_libregex_libs="-L${libopts_cv_with_libregex_root}/lib -lregex" ;;
+ esac
+ esac
+ libopts_save_CPPFLAGS="${CPPFLAGS}"
+@@ -221,7 +221,7 @@ AC_DEFUN([LIBOPTS_WITHLIB_REGEX],[
+ @%:@include <sys/types.h>
+ @%:@include REGEX_HEADER
+ static regex_t re;
+-void comp_re( char const* pzPat ) {
++void comp_re(char const * pzPat) {
+ int res = regcomp( &re, pzPat, REG_EXTENDED|REG_ICASE|REG_NEWLINE );
+ if (res == 0) return;
+ exit( res ); }
+@@ -262,8 +262,8 @@ AC_DEFUN([LIBOPTS_RUN_PATHFIND],[
+ AC_CACHE_VAL([libopts_cv_run_pathfind],[
+ AC_RUN_IFELSE([@%:@include <string.h>
+ @%:@include <stdlib.h>
+-int main (int argc, char** argv) {
+- char* pz = pathfind( getenv( "PATH" ), "sh", "x" );
++int main (int argc, char ** argv) {
++ char * pz = pathfind( getenv( "PATH" ), "sh", "x" );
+ return (pz == 0) ? 1 : 0;
+ }],
+ [libopts_cv_run_pathfind=yes],[libopts_cv_run_pathfind=no],[libopts_cv_run_pathfind=no]
+@@ -305,7 +305,7 @@ AC_DEFUN([LIBOPTS_RUN_REALPATH],[
+ AC_CACHE_VAL([libopts_cv_run_realpath],[
+ AC_RUN_IFELSE([@%:@include <limits.h>
+ @%:@include <stdlib.h>
+-int main (int argc, char** argv) {
++int main (int argc, char ** argv) {
+ @%:@ifndef PATH_MAX
+ choke me!!
+ @%:@else
+@@ -364,8 +364,8 @@ AC_DEFUN([LIBOPTS_RUN_FOPEN_BINARY],[
+ AC_MSG_CHECKING([whether fopen accepts "b" mode])
+ AC_CACHE_VAL([libopts_cv_run_fopen_binary],[
+ AC_RUN_IFELSE([@%:@include <stdio.h>
+-int main (int argc, char** argv) {
+-FILE* fp = fopen("conftest.@S|@ac_ext", "rb");
++int main (int argc, char ** argv) {
++FILE * fp = fopen("conftest.@S|@ac_ext", "rb");
+ return (fp == NULL) ? 1 : fclose(fp); }],
+ [libopts_cv_run_fopen_binary=yes],[libopts_cv_run_fopen_binary=no],[libopts_cv_run_fopen_binary=no]
+ ) # end of RUN_IFELSE
+@@ -387,8 +387,8 @@ AC_DEFUN([LIBOPTS_RUN_FOPEN_TEXT],[
+ AC_MSG_CHECKING([whether fopen accepts "t" mode])
+ AC_CACHE_VAL([libopts_cv_run_fopen_text],[
+ AC_RUN_IFELSE([@%:@include <stdio.h>
+-int main (int argc, char** argv) {
+-FILE* fp = fopen("conftest.@S|@ac_ext", "rt");
++int main (int argc, char ** argv) {
++FILE * fp = fopen("conftest.@S|@ac_ext", "rt");
+ return (fp == NULL) ? 1 : fclose(fp); }],
+ [libopts_cv_run_fopen_text=yes],[libopts_cv_run_fopen_text=no],[libopts_cv_run_fopen_text=no]
+ ) # end of RUN_IFELSE
+@@ -461,7 +461,7 @@ dnl the config tests that the library needs. Invoke the
+ dnl "INVOKE_LIBOPTS_MACROS" macro iff we are building libopts.
+ dnl
+ dnl This file is part of AutoGen.
+-dnl AutoGen Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++dnl AutoGen Copyright (C) 1992-2015 by Bruce Korb - all rights reserved
+ dnl
+ dnl AutoGen is free software: you can redistribute it and/or modify it
+ dnl under the terms of the GNU General Public License as published by the
+diff --git a/src/libopts/m4/liboptschk.m4 b/src/libopts/m4/liboptschk.m4
+index c71ae10..34d5658 100644
+--- a/src/libopts/m4/liboptschk.m4
++++ b/src/libopts/m4/liboptschk.m4
+@@ -1,5 +1,5 @@
+ # liboptschk.m4 serial 2 (autogen - 5.11.4)
+-dnl Copyright (C) 2005-2014 by Bruce Korb - all rights reserved
++dnl Copyright (C) 2005-2015 by Bruce Korb - all rights reserved
+ dnl
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+diff --git a/src/libopts/m4/stdnoreturn.m4 b/src/libopts/m4/stdnoreturn.m4
+index eea2c1e..0039411 100644
+--- a/src/libopts/m4/stdnoreturn.m4
++++ b/src/libopts/m4/stdnoreturn.m4
+@@ -1,6 +1,6 @@
+ # Check for stdnoreturn.h that conforms to C11.
+
+-dnl Copyright 2012-2014 Free Software Foundation, Inc.
++dnl Copyright 2012-2015 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+diff --git a/src/libopts/makeshell.c b/src/libopts/makeshell.c
+index a0bfcac..a61df42 100644
+--- a/src/libopts/makeshell.c
++++ b/src/libopts/makeshell.c
+@@ -11,7 +11,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -30,6 +30,11 @@
+ * 13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239 COPYING.mbsd
+ */
+
++ static inline unsigned char to_uchar (char ch) { return ch; }
++
++#define UPPER(_c) (toupper(to_uchar(_c)))
++#define LOWER(_c) (tolower(to_uchar(_c)))
++
+ /* = = = START-STATIC-FORWARD = = = */
+ static void
+ emit_var_text(char const * prog, char const * var, int fdin);
+@@ -101,7 +106,7 @@ fserr_exit(char const * prog, char const * op, char const * fname)
+ * private:
+ *
+ * what: Decipher a boolean value
+- * arg: + tOptions* + pOpts + program options descriptor +
++ * arg: + tOptions * + pOpts + program options descriptor +
+ *
+ * doc:
+ * Emit a shell script that will parse the command line options.
+@@ -400,9 +405,9 @@ emit_usage(tOptions * opts)
+ break;
+ }
+
+- pp = (char **)(void *)&(opts->pzProgPath);
++ pp = VOIDP(&(opts->pzProgPath));
+ *pp = tm_nm_buf;
+- pp = (char **)(void *)&(opts->pzProgName);
++ pp = VOIDP(&(opts->pzProgName));
+ *pp = tm_nm_buf;
+ }
+
+@@ -410,8 +415,8 @@ emit_usage(tOptions * opts)
+ text_to_var(opts, TT_USAGE, NULL);
+
+ {
+- tOptDesc* pOptDesc = opts->pOptDesc;
+- int optionCt = opts->optCt;
++ tOptDesc * pOptDesc = opts->pOptDesc;
++ int optionCt = opts->optCt;
+
+ for (;;) {
+ if (pOptDesc->pOptProc == optionPrintVersion) {
+@@ -601,8 +606,8 @@ emit_inaction(tOptions * opts, tOptDesc * od)
+ static void
+ emit_flag(tOptions * opts)
+ {
+- tOptDesc* od = opts->pOptDesc;
+- int opt_ct = opts->optCt;
++ tOptDesc * od = opts->pOptDesc;
++ int opt_ct = opts->optCt;
+
+ fputs(zOptionCase, stdout);
+
+@@ -653,7 +658,7 @@ emit_match_expr(char const * name, tOptDesc * cod, tOptions * opts)
+ * They must not be the same. They cannot be, because it would
+ * not compile correctly if they were.
+ */
+- while (toupper(od->pz_Name[match_ct]) == toupper(name[match_ct]))
++ while (UPPER(od->pz_Name[match_ct]) == UPPER(name[match_ct]))
+ match_ct++;
+
+ if (match_ct > min_match_ct)
+@@ -772,7 +777,7 @@ load_old_output(char const * fname, char const * pname)
+ * Read in all the data as fast as our OS will let us.
+ */
+ for (;;) {
+- size_t inct = fread((void*)scan, 1, (size_t)stbf.st_size, fp);
++ size_t inct = fread(VOIDP(scan), 1, (size_t)stbf.st_size, fp);
+ if (inct == 0)
+ break;
+
+@@ -845,8 +850,8 @@ open_out(char const * fname, char const * pname)
+ * private:
+ * what: The usage function for the genshellopt generated program
+ *
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + int + exit_cd + usage text type to produce +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + int + exit_cd + usage text type to produce +
+ *
+ * doc:
+ * This function is used to create the usage strings for the option
+@@ -901,11 +906,11 @@ genshelloptUsage(tOptions * opts, int exit_cd)
+ */
+ {
+ char * pz;
+- char ** pp = (char **)(void *)&(optionParseShellOptions->pzProgName);
++ char ** pp = VOIDP(&(optionParseShellOptions->pzProgName));
+ AGDUPSTR(pz, optionParseShellOptions->pzPROGNAME, "prog name");
+ *pp = pz;
+ while (*pz != NUL) {
+- *pz = (char)tolower(*pz);
++ *pz = (char)LOWER(*pz);
+ pz++;
+ }
+ }
+diff --git a/src/libopts/nested.c b/src/libopts/nested.c
+index 0ec8f08..f4fb226 100644
+--- a/src/libopts/nested.c
++++ b/src/libopts/nested.c
+@@ -12,7 +12,7 @@
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -53,8 +53,8 @@ static xml_xlate_t const xml_xlate[] = {
+ static void
+ remove_continuation(char * src);
+
+-static char const*
+-scan_q_str(char const* pzTxt);
++static char const *
++scan_q_str(char const * pzTxt);
+
+ static tOptionValue *
+ add_string(void ** pp, char const * name, size_t nm_len,
+@@ -64,11 +64,11 @@ static tOptionValue *
+ add_bool(void ** pp, char const * name, size_t nm_len,
+ char const * val, size_t d_len);
+
+-static tOptionValue*
++static tOptionValue *
+ add_number(void ** pp, char const * name, size_t nm_len,
+ char const * val, size_t d_len);
+
+-static tOptionValue*
++static tOptionValue *
+ add_nested(void ** pp, char const * name, size_t nm_len,
+ char * val, size_t d_len);
+
+@@ -98,7 +98,7 @@ sort_list(tArgList * arg_list);
+ static void
+ remove_continuation(char * src)
+ {
+- char* pzD;
++ char * pzD;
+
+ do {
+ while (*src == NL) src++;
+@@ -133,8 +133,8 @@ remove_continuation(char * src)
+ /**
+ * Find the end of a quoted string, skipping escaped quote characters.
+ */
+-static char const*
+-scan_q_str(char const* pzTxt)
++static char const *
++scan_q_str(char const * pzTxt)
+ {
+ char q = *(pzTxt++); /* remember the type of quote */
+
+@@ -182,7 +182,7 @@ static tOptionValue *
+ add_string(void ** pp, char const * name, size_t nm_len,
+ char const * val, size_t d_len)
+ {
+- tOptionValue* pNV;
++ tOptionValue * pNV;
+ size_t sz = nm_len + d_len + sizeof(*pNV);
+
+ pNV = AGALOC(sz, "option name/str value pair");
+@@ -254,7 +254,7 @@ add_bool(void ** pp, char const * name, size_t nm_len,
+ else new_val->v.boolVal = ! IS_FALSE_TYPE_CHAR(*val);
+
+ new_val->valType = OPARG_TYPE_BOOLEAN;
+- new_val->pzName = (char*)(new_val + 1);
++ new_val->pzName = (char *)(new_val + 1);
+ memcpy(new_val->pzName, name, nm_len);
+ new_val->pzName[ nm_len ] = NUL;
+ addArgListEntry(pp, new_val);
+@@ -272,7 +272,7 @@ add_bool(void ** pp, char const * name, size_t nm_len,
+ *
+ * @returns the new value structure
+ */
+-static tOptionValue*
++static tOptionValue *
+ add_number(void ** pp, char const * name, size_t nm_len,
+ char const * val, size_t d_len)
+ {
+@@ -291,7 +291,7 @@ add_number(void ** pp, char const * name, size_t nm_len,
+ new_val->v.longVal = strtol(val, 0, 0);
+
+ new_val->valType = OPARG_TYPE_NUMERIC;
+- new_val->pzName = (char*)(new_val + 1);
++ new_val->pzName = (char *)(new_val + 1);
+ memcpy(new_val->pzName, name, nm_len);
+ new_val->pzName[ nm_len ] = NUL;
+ addArgListEntry(pp, new_val);
+@@ -309,18 +309,18 @@ add_number(void ** pp, char const * name, size_t nm_len,
+ *
+ * @returns the new value structure
+ */
+-static tOptionValue*
++static tOptionValue *
+ add_nested(void ** pp, char const * name, size_t nm_len,
+ char * val, size_t d_len)
+ {
+- tOptionValue* new_val;
++ tOptionValue * new_val;
+
+ if (d_len == 0) {
+ size_t sz = nm_len + sizeof(*new_val) + 1;
+ new_val = AGALOC(sz, "empty nest");
+ new_val->v.nestVal = NULL;
+ new_val->valType = OPARG_TYPE_HIERARCHY;
+- new_val->pzName = (char*)(new_val + 1);
++ new_val->pzName = (char *)(new_val + 1);
+ memcpy(new_val->pzName, name, nm_len);
+ new_val->pzName[ nm_len ] = NUL;
+
+@@ -341,11 +341,11 @@ add_nested(void ** pp, char const * name, size_t nm_len,
+ static char const *
+ scan_name(char const * name, tOptionValue * res)
+ {
+- tOptionValue* new_val;
+- char const * pzScan = name+1; /* we know first char is a name char */
+- char const * pzVal;
+- size_t nm_len = 1;
+- size_t d_len = 0;
++ tOptionValue * new_val;
++ char const * pzScan = name+1; /* we know first char is a name char */
++ char const * pzVal;
++ size_t nm_len = 1;
++ size_t d_len = 0;
+
+ /*
+ * Scan over characters that name a value. These names may not end
+@@ -645,13 +645,13 @@ unload_arg_list(tArgList * arg_list)
+ char const ** pnew_val = arg_list->apzArgs;
+
+ while (ct-- > 0) {
+- tOptionValue* new_val = (tOptionValue*)(void*)*(pnew_val++);
++ tOptionValue * new_val = (tOptionValue *)VOIDP(*(pnew_val++));
+ if (new_val->valType == OPARG_TYPE_HIERARCHY)
+ unload_arg_list(new_val->v.nestVal);
+ AGFREE(new_val);
+ }
+
+- AGFREE((void*)arg_list);
++ AGFREE(arg_list);
+ }
+
+ /*=export_func optionUnloadNested
+@@ -675,7 +675,7 @@ optionUnloadNested(tOptionValue const * opt_val)
+
+ unload_arg_list(opt_val->v.nestVal);
+
+- AGFREE((void*)opt_val);
++ AGFREE(opt_val);
+ }
+
+ /**
+@@ -703,8 +703,8 @@ sort_list(tArgList * arg_list)
+ * "-1" entry.
+ */
+ while (strcmp(old_v->pzName, new_v->pzName) > 0) {
+- arg_list->apzArgs[iy+1] = (void*)old_v;
+- old_v = (tOptionValue*)(void*)(arg_list->apzArgs[--iy]);
++ arg_list->apzArgs[iy+1] = VOIDP(old_v);
++ old_v = (tOptionValue *)VOIDP(arg_list->apzArgs[--iy]);
+ if (iy < 0)
+ break;
+ }
+@@ -713,7 +713,7 @@ sort_list(tArgList * arg_list)
+ * Always store the pointer. Sometimes it is redundant,
+ * but the redundancy is cheaper than a test and branch sequence.
+ */
+- arg_list->apzArgs[iy+1] = (void*)new_v;
++ arg_list->apzArgs[iy+1] = VOIDP(new_v);
+ }
+ }
+
+@@ -725,7 +725,7 @@ sort_list(tArgList * arg_list)
+ * arg: + char const * + pzName + the name for the text +
+ * arg: + size_t + nm_len + the length of "name" +
+ *
+- * ret_type: tOptionValue*
++ * ret_type: tOptionValue *
+ * ret_desc: An allocated, compound value structure
+ *
+ * doc:
+@@ -746,7 +746,7 @@ sort_list(tArgList * arg_list)
+ LOCAL tOptionValue *
+ optionLoadNested(char const * text, char const * name, size_t nm_len)
+ {
+- tOptionValue* res_val;
++ tOptionValue * res_val;
+
+ /*
+ * Make sure we have some data and we have space to put what we find.
+@@ -762,7 +762,7 @@ optionLoadNested(char const * text, char const * name, size_t nm_len)
+ }
+ res_val = AGALOC(sizeof(*res_val) + nm_len + 1, "nest args");
+ res_val->valType = OPARG_TYPE_HIERARCHY;
+- res_val->pzName = (char*)(res_val + 1);
++ res_val->pzName = (char *)(res_val + 1);
+ memcpy(res_val->pzName, name, nm_len);
+ res_val->pzName[nm_len] = NUL;
+
+@@ -814,8 +814,8 @@ optionLoadNested(char const * text, char const * name, size_t nm_len)
+ * private:
+ *
+ * what: parse a hierarchical option argument
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * Nested value was found on the command line
+@@ -837,7 +837,7 @@ optionNestedVal(tOptions * opts, tOptDesc * od)
+ av = arg_list->apzArgs;
+
+ while (--ct >= 0) {
+- void * p = (void *)*(av++);
++ void * p = VOIDP(*(av++));
+ optionUnloadNested((tOptionValue const *)p);
+ }
+
+@@ -848,7 +848,7 @@ optionNestedVal(tOptions * opts, tOptDesc * od)
+ od->optArg.argString, od->pz_Name, strlen(od->pz_Name));
+
+ if (opt_val != NULL)
+- addArgListEntry(&(od->optCookie), (void*)opt_val);
++ addArgListEntry(&(od->optCookie), VOIDP(opt_val));
+ }
+ }
+
+diff --git a/src/libopts/numeric.c b/src/libopts/numeric.c
+index 9baba65..ab8f3d1 100644
+--- a/src/libopts/numeric.c
++++ b/src/libopts/numeric.c
+@@ -10,7 +10,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -33,10 +33,10 @@
+ * private:
+ *
+ * what: Show info about range constraints
+- * arg: + tOptions* + pOpts + program options descriptor +
+- * arg: + tOptDesc* + pOptDesc + the descriptor for this arg +
+- * arg: + void * + rng_table + the value range tables +
+- * arg: + int + rng_count + the number of entries +
++ * arg: + tOptions * + pOpts + program options descriptor +
++ * arg: + tOptDesc * + pOptDesc + the descriptor for this arg +
++ * arg: + void * + rng_table + the value range tables +
++ * arg: + int + rng_count + the number of entries +
+ *
+ * doc:
+ * Show information about a numeric option with range constraints.
+@@ -97,8 +97,8 @@ optionShowRange(tOptions * pOpts, tOptDesc * pOD, void * rng_table, int rng_ct)
+ * private:
+ *
+ * what: process an option with a numeric value.
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * Decipher a numeric value.
+@@ -106,8 +106,8 @@ optionShowRange(tOptions * pOpts, tOptDesc * pOD, void * rng_table, int rng_ct)
+ void
+ optionNumericVal(tOptions * opts, tOptDesc * od)
+ {
+- char* pz;
+- long val;
++ char * pz;
++ long val;
+
+ /*
+ * Guard against all the different ways this procedure might get invoked
+diff --git a/src/libopts/option-value-type.c b/src/libopts/option-value-type.c
+index e4b4ea1..5f67640 100644
+--- a/src/libopts/option-value-type.c
++++ b/src/libopts/option-value-type.c
+@@ -31,7 +31,7 @@
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ #include "option-value-type.h"
+-/* ANSI-C code produced by gperf version 3.0.3 */
++/* ANSI-C code produced by gperf version 3.0.4 */
+ /* Command-line: gperf option-value-type.gp */
+ /* Computed positions: -k'1' */
+
+diff --git a/src/libopts/option-xat-attribute.c b/src/libopts/option-xat-attribute.c
+index 0fffd30..be86041 100644
+--- a/src/libopts/option-xat-attribute.c
++++ b/src/libopts/option-xat-attribute.c
+@@ -31,7 +31,7 @@
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ #include "option-xat-attribute.h"
+-/* ANSI-C code produced by gperf version 3.0.3 */
++/* ANSI-C code produced by gperf version 3.0.4 */
+ /* Command-line: gperf option-xat-attribute.gp */
+ /* Computed positions: -k'1' */
+
+diff --git a/src/libopts/parse-duration.c b/src/libopts/parse-duration.c
+index ff3fe42..e072b7d 100644
+--- a/src/libopts/parse-duration.c
++++ b/src/libopts/parse-duration.c
+@@ -1,5 +1,5 @@
+ /* Parse a time duration and return a seconds count
+- Copyright (C) 2008-2014 Free Software Foundation, Inc.
++ Copyright (C) 2008-2015 Free Software Foundation, Inc.
+ Written by Bruce Korb <bkorb@gnu.org>, 2008.
+
+ This program is free software: you can redistribute it and/or modify
+diff --git a/src/libopts/parse-duration.h b/src/libopts/parse-duration.h
+index da7301e..33ddc33 100644
+--- a/src/libopts/parse-duration.h
++++ b/src/libopts/parse-duration.h
+@@ -1,5 +1,5 @@
+ /* Parse a time duration and return a seconds count
+- Copyright (C) 2008-2014 Free Software Foundation, Inc.
++ Copyright (C) 2008-2015 Free Software Foundation, Inc.
+ Written by Bruce Korb <bkorb@gnu.org>, 2008.
+
+ This program is free software: you can redistribute it and/or modify
+diff --git a/src/libopts/pgusage.c b/src/libopts/pgusage.c
+index 80a89a7..3d229c1 100644
+--- a/src/libopts/pgusage.c
++++ b/src/libopts/pgusage.c
+@@ -13,7 +13,7 @@
+ *
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -33,7 +33,7 @@
+ */
+
+ #if defined(HAVE_WORKING_FORK)
+-static FILE *
++static inline FILE *
+ open_tmp_usage(char ** buf)
+ {
+ char * bf;
+@@ -64,7 +64,7 @@ open_tmp_usage(char ** buf)
+ }
+ }
+
+-static char *
++static inline char *
+ mk_pager_cmd(char const * fname)
+ {
+ /*
+@@ -85,10 +85,10 @@ mk_pager_cmd(char const * fname)
+ if (pager == NULL)
+ pager = MORE_STR;
+
+- bfsz = strlen(fname) + strlen(pager) + PAGE_USAGE_FMT_LEN;
++ bfsz = 2 * strlen(fname) + strlen(pager) + PAGE_USAGE_FMT_LEN;
+ res = AGALOC(bfsz, "more cmd");
+ snprintf(res, bfsz, PAGE_USAGE_FMT, pager, fname);
+- AGFREE((void*)fname);
++ AGFREE(fname);
+ return res;
+ }
+ }
+diff --git a/src/libopts/proto.h b/src/libopts/proto.h
+index 591999f..8ba6646 100644
+--- a/src/libopts/proto.h
++++ b/src/libopts/proto.h
+@@ -1,7 +1,7 @@
+ /* -*- buffer-read-only: t -*- vi: set ro:
+ *
+ * Prototypes for autoopts
+- * Generated Sat Aug 30 10:36:38 PDT 2014
++ * Generated Thu Apr 30 19:55:28 PDT 2015
+ */
+ #ifndef AUTOOPTS_PROTO_H_GUARD
+ #define AUTOOPTS_PROTO_H_GUARD 1
+@@ -65,7 +65,7 @@ static tSuccess
+ opt_find_long(tOptions * opts, char const * opt_name, tOptState * state);
+
+ static tSuccess
+-opt_find_short(tOptions* pOpts, uint_t optValue, tOptState* pOptState);
++opt_find_short(tOptions * pOpts, uint_t optValue, tOptState * pOptState);
+
+ static tSuccess
+ get_opt_arg(tOptions * opts, tOptState * o_st);
+diff --git a/src/libopts/putshell.c b/src/libopts/putshell.c
+index 4b0fa10..9bfa984 100644
+--- a/src/libopts/putshell.c
++++ b/src/libopts/putshell.c
+@@ -12,7 +12,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -296,7 +296,7 @@ print_membership(tOptions * pOpts, tOptDesc * pOD)
+ uintptr_t val = 1;
+ printf(zOptNumFmt, pOpts->pzPROGNAME, pOD->pz_NAME,
+ (int)(uintptr_t)(pOD->optCookie));
+- pOD->optCookie = (void*)(uintptr_t)~0UL;
++ pOD->optCookie = VOIDP(~0UL);
+ (*(pOD->pOptProc))(OPTPROC_RETURN_VALNAME, pOD);
+
+ pz = pOD->optArg.argString;
+@@ -323,7 +323,7 @@ print_membership(tOptions * pOpts, tOptDesc * pOD)
+ static void
+ print_stacked_arg(tOptions * pOpts, tOptDesc * pOD)
+ {
+- tArgList* pAL = (tArgList*)pOD->optCookie;
++ tArgList * pAL = (tArgList *)pOD->optCookie;
+ char const ** ppz = pAL->apzArgs;
+ int ct = pAL->useCt;
+
+@@ -363,19 +363,19 @@ print_reordering(tOptions * opts)
+ /*=export_func optionPutShell
+ * what: write a portable shell script to parse options
+ * private:
+- * arg: tOptions*, pOpts, the program options descriptor
++ * arg: tOptions *, pOpts, the program options descriptor
+ * doc: This routine will emit portable shell script text for parsing
+ * the options described in the option definitions.
+ =*/
+ void
+-optionPutShell(tOptions* pOpts)
++optionPutShell(tOptions * pOpts)
+ {
+ int optIx = 0;
+
+ printf(zOptCtFmt, pOpts->curOptIdx-1);
+
+ do {
+- tOptDesc* pOD = pOpts->pOptDesc + optIx;
++ tOptDesc * pOD = pOpts->pOptDesc + optIx;
+
+ if ((pOD->fOptState & OPTST_NO_OUTPUT_MASK) != 0)
+ continue;
+@@ -396,7 +396,7 @@ optionPutShell(tOptions* pOpts)
+ * but copy over the set-state bits.
+ */
+ if (pOD->optActualIndex != optIx) {
+- tOptDesc* p = pOpts->pOptDesc + pOD->optActualIndex;
++ tOptDesc * p = pOpts->pOptDesc + pOD->optActualIndex;
+ p->optArg = pOD->optArg;
+ p->fOptState &= OPTST_PERSISTENT_MASK;
+ p->fOptState |= pOD->fOptState & ~OPTST_PERSISTENT_MASK;
+diff --git a/src/libopts/reset.c b/src/libopts/reset.c
+index df81cd7..6ca2c05 100644
+--- a/src/libopts/reset.c
++++ b/src/libopts/reset.c
+@@ -10,7 +10,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -30,7 +30,7 @@
+ */
+
+ static void
+-optionReset( tOptions* pOpts, tOptDesc* pOD )
++optionReset(tOptions * pOpts, tOptDesc * pOD)
+ {
+ pOD->fOptState &= OPTST_PERSISTENT_MASK;
+ pOD->fOptState |= OPTST_RESET;
+@@ -63,8 +63,8 @@ optionResetEverything(tOptions * pOpts)
+ * private:
+ *
+ * what: Reset the value of an option
+- * arg: + tOptions* + pOpts + program options descriptor +
+- * arg: + tOptDesc* + pOptDesc + the descriptor for this arg +
++ * arg: + tOptions * + pOpts + program options descriptor +
++ * arg: + tOptDesc * + pOptDesc + the descriptor for this arg +
+ *
+ * doc:
+ * This code will cause another option to be reset to its initial state.
+diff --git a/src/libopts/restore.c b/src/libopts/restore.c
+index f711cb3..02ef14a 100644
+--- a/src/libopts/restore.c
++++ b/src/libopts/restore.c
+@@ -12,7 +12,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -38,11 +38,11 @@
+ * have been marked as allocated though.
+ */
+ static void
+-fixupSavedOptionArgs(tOptions* pOpts)
++fixupSavedOptionArgs(tOptions * pOpts)
+ {
+- tOptions* p = pOpts->pSavedState;
+- tOptDesc* pOD = pOpts->pOptDesc;
+- int ct = pOpts->optCt;
++ tOptions * p = pOpts->pSavedState;
++ tOptDesc * pOD = pOpts->pOptDesc;
++ int ct = pOpts->optCt;
+
+ /*
+ * Make sure that allocated stuff is only referenced in the
+@@ -52,18 +52,18 @@ fixupSavedOptionArgs(tOptions* pOpts)
+ switch (OPTST_GET_ARGTYPE(pOD->fOptState)) {
+ case OPARG_TYPE_STRING:
+ if (pOD->fOptState & OPTST_STACKED) {
+- tOptDesc* q = p->pOptDesc + (pOD - pOpts->pOptDesc);
++ tOptDesc * q = p->pOptDesc + (pOD - pOpts->pOptDesc);
+ q->optCookie = NULL;
+ }
+ if (pOD->fOptState & OPTST_ALLOC_ARG) {
+- tOptDesc* q = p->pOptDesc + (pOD - pOpts->pOptDesc);
++ tOptDesc * q = p->pOptDesc + (pOD - pOpts->pOptDesc);
+ AGDUPSTR(q->optArg.argString, pOD->optArg.argString, "arg");
+ }
+ break;
+
+ case OPARG_TYPE_HIERARCHY:
+ {
+- tOptDesc* q = p->pOptDesc + (pOD - pOpts->pOptDesc);
++ tOptDesc * q = p->pOptDesc + (pOD - pOpts->pOptDesc);
+ q->optCookie = NULL;
+ }
+ }
+@@ -73,7 +73,7 @@ fixupSavedOptionArgs(tOptions* pOpts)
+ /*=export_func optionSaveState
+ *
+ * what: saves the option state to memory
+- * arg: tOptions*, pOpts, program options descriptor
++ * arg: tOptions *, pOpts, program options descriptor
+ *
+ * doc:
+ *
+@@ -96,7 +96,7 @@ fixupSavedOptionArgs(tOptions* pOpts)
+ void
+ optionSaveState(tOptions * pOpts)
+ {
+- tOptions * p = (tOptions*)pOpts->pSavedState;
++ tOptions * p = (tOptions *)pOpts->pSavedState;
+
+ if (p == NULL) {
+ size_t sz = sizeof(*pOpts)
+@@ -116,7 +116,7 @@ optionSaveState(tOptions * pOpts)
+ /*=export_func optionRestore
+ *
+ * what: restore option state from memory copy
+- * arg: tOptions*, pOpts, program options descriptor
++ * arg: tOptions *, pOpts, program options descriptor
+ *
+ * doc: Copy back the option state from saved memory.
+ * The allocated memory is left intact, so this routine can be
+@@ -129,9 +129,9 @@ optionSaveState(tOptions * pOpts)
+ * printed to @code{stderr} and exit is called.
+ =*/
+ void
+-optionRestore(tOptions* pOpts)
++optionRestore(tOptions * pOpts)
+ {
+- tOptions* p = (tOptions*)pOpts->pSavedState;
++ tOptions * p = (tOptions *)pOpts->pSavedState;
+
+ if (p == NULL) {
+ char const * pzName = pOpts->pzProgName;
+@@ -159,7 +159,7 @@ optionRestore(tOptions* pOpts)
+ /*=export_func optionFree
+ *
+ * what: free allocated option processing memory
+- * arg: tOptions*, pOpts, program options descriptor
++ * arg: tOptions *, pOpts, program options descriptor
+ *
+ * doc: AutoOpts sometimes allocates memory and puts pointers to it in the
+ * option state structures. This routine deallocates all such memory.
+@@ -168,11 +168,11 @@ optionRestore(tOptions* pOpts)
+ * this routine is always successful.
+ =*/
+ void
+-optionFree(tOptions* pOpts)
++optionFree(tOptions * pOpts)
+ {
+ free_saved_state:
+ {
+- tOptDesc* p = pOpts->pOptDesc;
++ tOptDesc * p = pOpts->pOptDesc;
+ int ct = pOpts->optCt;
+ do {
+ if (p->fOptState & OPTST_ALLOC_ARG) {
+@@ -204,7 +204,7 @@ optionFree(tOptions* pOpts)
+ } while (p++, --ct > 0);
+ }
+ if (pOpts->pSavedState != NULL) {
+- tOptions * p = (tOptions*)pOpts->pSavedState;
++ tOptions * p = (tOptions *)pOpts->pSavedState;
+ memcpy(pOpts, p, sizeof(*p));
+ memcpy(pOpts->pOptDesc, p+1, (size_t)p->optCt * sizeof(tOptDesc));
+ AGFREE(pOpts->pSavedState);
+diff --git a/src/libopts/save.c b/src/libopts/save.c
+index 19c4c5b..f462ced 100644
+--- a/src/libopts/save.c
++++ b/src/libopts/save.c
+@@ -12,7 +12,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -92,7 +92,7 @@ find_dir_name(tOptions * opts, int * p_free)
+ * we can stash the RC (INI) file.
+ */
+ {
+- char const * const* papz = opts->papzHomeList;
++ char const * const * papz = opts->papzHomeList;
+ if (papz == NULL)
+ return NULL;
+
+@@ -183,7 +183,7 @@ find_file_name(tOptions * opts, int * p_free_name)
+ fprintf(stderr, zsave_warn, opts->pzProgName);
+ fprintf(stderr, zNoStat, errno, strerror(errno), pzDir);
+ if (free_dir_name)
+- AGFREE((void*)pzDir);
++ AGFREE(pzDir);
+ return NULL;
+ }
+
+@@ -216,14 +216,14 @@ find_file_name(tOptions * opts, int * p_free_name)
+ size_t sz = strlen(pzDir) + strlen(opts->pzRcName) + 2;
+
+ {
+- char * pzPath = (char*)AGALOC(sz, "file name");
++ char * pzPath = (char *)AGALOC(sz, "file name");
+ #ifdef HAVE_SNPRINTF
+ snprintf(pzPath, sz, "%s/%s", pzDir, opts->pzRcName);
+ #else
+ sprintf(pzPath, "%s/%s", pzDir, opts->pzRcName);
+ #endif
+ if (free_dir_name)
+- AGFREE((void*)pzDir);
++ AGFREE(pzDir);
+ pzDir = pzPath;
+ free_dir_name = 1;
+ }
+@@ -237,7 +237,7 @@ find_file_name(tOptions * opts, int * p_free_name)
+ fprintf(stderr, zsave_warn, opts->pzProgName);
+ fprintf(stderr, zNoStat, errno, strerror(errno),
+ pzDir);
+- AGFREE((void*)pzDir);
++ AGFREE(pzDir);
+ return NULL;
+ }
+
+@@ -255,7 +255,7 @@ find_file_name(tOptions * opts, int * p_free_name)
+ if (! S_ISREG(stBuf.st_mode)) {
+ fprintf(stderr, zsave_warn, opts->pzProgName, pzDir);
+ if (free_dir_name)
+- AGFREE((void*)pzDir);
++ AGFREE(pzDir);
+ return NULL;
+ }
+
+@@ -306,7 +306,7 @@ prt_entry(FILE * fp, tOptDesc * od, char const * l_arg)
+ * THEN the char pointer is really the number
+ */
+ if (OPTST_GET_ARGTYPE(od->fOptState) == OPARG_TYPE_NUMERIC)
+- fprintf(fp, "%d", (int)(t_word)l_arg);
++ fprintf(fp, "%d", (int)(intptr_t)l_arg);
+
+ else {
+ for (;;) {
+@@ -377,7 +377,7 @@ prt_value(FILE * fp, int depth, tOptDesc * pOD, tOptionValue const * ovp)
+ /*
+ * set membership strings get allocated
+ */
+- AGFREE((void*)pOD->optArg.argString);
++ AGFREE(pOD->optArg.argString);
+ }
+ }
+
+@@ -534,12 +534,12 @@ open_sv_file(tOptions * opts)
+ fprintf(stderr, zsave_warn, opts->pzProgName);
+ fprintf(stderr, zNoCreat, errno, strerror(errno), pzFName);
+ if (free_name)
+- AGFREE((void*) pzFName );
++ AGFREE(pzFName);
+ return fp;
+ }
+
+ if (free_name)
+- AGFREE((void*)pzFName);
++ AGFREE(pzFName);
+ }
+
+ fputs("# ", fp);
+@@ -560,7 +560,7 @@ open_sv_file(tOptions * opts)
+ * normally point to static data that is overwritten by each call.
+ * The test to detect allocated ctime, so we leak the memory.
+ */
+- AGFREE((void*)time_str);
++ AGFREE(time_str);
+ #endif
+ }
+
+@@ -596,7 +596,7 @@ static void
+ prt_str_arg(FILE * fp, tOptDesc * pOD)
+ {
+ if (pOD->fOptState & OPTST_STACKED) {
+- tArgList * pAL = (tArgList*)pOD->optCookie;
++ tArgList * pAL = (tArgList *)pOD->optCookie;
+ int uct = pAL->useCt;
+ char const ** ppz = pAL->apzArgs;
+
+@@ -629,7 +629,7 @@ prt_enum_arg(FILE * fp, tOptDesc * od)
+ * bit flag values back into a string suitable for printing.
+ */
+ (*(od->pOptProc))(OPTPROC_RETURN_VALNAME, od);
+- prt_entry(fp, od, (void*)(od->optArg.argString));
++ prt_entry(fp, od, VOIDP(od->optArg.argString));
+
+ od->optArg.argEnum = val;
+ }
+@@ -689,7 +689,7 @@ prt_file_arg(FILE * fp, tOptDesc * od, tOptions * opts)
+ *
+ * what: saves the option state to a file
+ *
+- * arg: tOptions*, opts, program options descriptor
++ * arg: tOptions *, opts, program options descriptor
+ *
+ * doc:
+ *
+@@ -765,7 +765,7 @@ optionSaveFile(tOptions * opts)
+ break;
+
+ case OPARG_TYPE_NUMERIC:
+- prt_entry(fp, p, (void*)(p->optArg.argInt));
++ prt_entry(fp, p, VOIDP(p->optArg.argInt));
+ break;
+
+ case OPARG_TYPE_STRING:
+diff --git a/src/libopts/sort.c b/src/libopts/sort.c
+index 894d0ec..da00334 100644
+--- a/src/libopts/sort.c
++++ b/src/libopts/sort.c
+@@ -10,7 +10,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -198,11 +198,11 @@ optionSort(tOptions * opts)
+ /*
+ * Make sure we can allocate two full-sized arg vectors.
+ */
+- opt_txt = malloc(opts->origArgCt * sizeof(char*));
++ opt_txt = malloc(opts->origArgCt * sizeof(char *));
+ if (opt_txt == NULL)
+ goto exit_no_mem;
+
+- ppzOpds = malloc(opts->origArgCt * sizeof(char*));
++ ppzOpds = malloc(opts->origArgCt * sizeof(char *));
+ if (ppzOpds == NULL) {
+ free(opt_txt);
+ goto exit_no_mem;
+@@ -315,10 +315,10 @@ optionSort(tOptions * opts)
+ joinLists:
+ if (optsIdx > 0)
+ memcpy(opts->origArgVect + 1, opt_txt,
+- (size_t)optsIdx * sizeof(char*));
++ (size_t)optsIdx * sizeof(char *));
+ if (opdsIdx > 0)
+ memcpy(opts->origArgVect + 1 + optsIdx, ppzOpds,
+- (size_t)opdsIdx * sizeof(char*));
++ (size_t)opdsIdx * sizeof(char *));
+
+ freeTemps:
+ free(opt_txt);
+diff --git a/src/libopts/stack.c b/src/libopts/stack.c
+index d2ce165..affe6b6 100644
+--- a/src/libopts/stack.c
++++ b/src/libopts/stack.c
+@@ -11,7 +11,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -38,8 +38,8 @@
+ * private:
+ *
+ * what: Remove option args from a stack
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * Invoked for options that are equivalenced to stacked options.
+@@ -52,7 +52,7 @@ optionUnstackArg(tOptions * opts, tOptDesc * od)
+ if (INQUERY_CALL(opts, od))
+ return;
+
+- arg_list = (tArgList*)od->optCookie;
++ arg_list = (tArgList *)od->optCookie;
+
+ /*
+ * IF we don't have any stacked options,
+@@ -165,7 +165,7 @@ optionUnstackArg(tOptions * opts, tOptDesc * od)
+ od->fOptState &= OPTST_PERSISTENT_MASK;
+ if ((od->fOptState & OPTST_INITENABLED) == 0)
+ od->fOptState |= OPTST_DISABLED;
+- AGFREE((void *)arg_list);
++ AGFREE(arg_list);
+ od->optCookie = NULL;
+ }
+ }
+@@ -179,19 +179,19 @@ optionUnstackArg(tOptions * opts, tOptDesc * od)
+ LOCAL void
+ addArgListEntry(void ** ppAL, void * entry)
+ {
+- tArgList* pAL = *(void**)ppAL;
++ tArgList * pAL = *(void **)ppAL;
+
+ /*
+ * IF we have never allocated one of these,
+ * THEN allocate one now
+ */
+ if (pAL == NULL) {
+- pAL = (tArgList*)AGALOC(sizeof(*pAL), "new option arg stack");
++ pAL = (tArgList *)AGALOC(sizeof(*pAL), "new option arg stack");
+ if (pAL == NULL)
+ return;
+ pAL->useCt = 0;
+ pAL->allocCt = MIN_ARG_ALLOC_CT;
+- *ppAL = (void*)pAL;
++ *ppAL = VOIDP(pAL);
+ }
+
+ /*
+@@ -206,11 +206,11 @@ addArgListEntry(void ** ppAL, void * entry)
+ * The base structure contains space for MIN_ARG_ALLOC_CT
+ * pointers. We subtract it off to find our augment size.
+ */
+- sz += sizeof(char*) * ((size_t)pAL->allocCt - MIN_ARG_ALLOC_CT);
+- pAL = (tArgList*)AGREALOC((void*)pAL, sz, "expanded opt arg stack");
++ sz += sizeof(char *) * ((size_t)pAL->allocCt - MIN_ARG_ALLOC_CT);
++ pAL = (tArgList *)AGREALOC(VOIDP(pAL), sz, "expanded opt arg stack");
+ if (pAL == NULL)
+ return;
+- *ppAL = (void*)pAL;
++ *ppAL = VOIDP(pAL);
+ }
+
+ /*
+@@ -224,8 +224,8 @@ addArgListEntry(void ** ppAL, void * entry)
+ * private:
+ *
+ * what: put option args on a stack
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * Keep an entry-ordered list of option arguments.
+@@ -239,7 +239,7 @@ optionStackArg(tOptions * opts, tOptDesc * od)
+ return;
+
+ if ((od->fOptState & OPTST_RESET) != 0) {
+- tArgList * arg_list = (void*)od->optCookie;
++ tArgList * arg_list = od->optCookie;
+ int ix;
+ if (arg_list == NULL)
+ return;
+@@ -254,7 +254,7 @@ optionStackArg(tOptions * opts, tOptDesc * od)
+ return;
+
+ AGDUPSTR(pz, od->optArg.argString, "stack arg");
+- addArgListEntry(&(od->optCookie), (void*)pz);
++ addArgListEntry(&(od->optCookie), VOIDP(pz));
+ }
+ }
+ /** @}
+diff --git a/src/libopts/stdnoreturn.in.h b/src/libopts/stdnoreturn.in.h
+index d4ae183..5b4d11b 100644
+--- a/src/libopts/stdnoreturn.in.h
++++ b/src/libopts/stdnoreturn.in.h
+@@ -1,6 +1,6 @@
+ /* A substitute for ISO C11 <stdnoreturn.h>.
+
+- Copyright 2012-2014 Free Software Foundation, Inc.
++ Copyright 2012-2015 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+diff --git a/src/libopts/streqvcmp.c b/src/libopts/streqvcmp.c
+index 371d7f4..e87a232 100644
+--- a/src/libopts/streqvcmp.c
++++ b/src/libopts/streqvcmp.c
+@@ -15,7 +15,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -81,9 +81,9 @@ static unsigned char charmap[] = {
+ *
+ * what: compare two strings with an equivalence mapping
+ *
+- * arg: + char const* + str1 + first string +
+- * arg: + char const* + str2 + second string +
+- * arg: + int + ct + compare length +
++ * arg: + char const * + str1 + first string +
++ * arg: + char const * + str2 + second string +
++ * arg: + int + ct + compare length +
+ *
+ * ret_type: int
+ * ret_desc: the difference between two differing characters
+@@ -129,8 +129,8 @@ strneqvcmp(char const * s1, char const * s2, int ct)
+ *
+ * what: compare two strings with an equivalence mapping
+ *
+- * arg: + char const* + str1 + first string +
+- * arg: + char const* + str2 + second string +
++ * arg: + char const * + str1 + first string +
++ * arg: + char const * + str2 + second string +
+ *
+ * ret_type: int
+ * ret_desc: the difference between two differing characters
+@@ -226,7 +226,7 @@ streqvmap(char from, char to, int ct)
+ *
+ * what: map a list of characters to the same value
+ *
+- * arg: + char const* + ch_list + characters to equivalence +
++ * arg: + char const * + ch_list + characters to equivalence +
+ *
+ * doc:
+ *
+@@ -238,7 +238,7 @@ streqvmap(char from, char to, int ct)
+ * err: none.
+ =*/
+ void
+-strequate(char const* s)
++strequate(char const * s)
+ {
+ if ((s != NULL) && (*s != NUL)) {
+ unsigned char equiv = (unsigned char)*s;
+@@ -252,8 +252,8 @@ strequate(char const* s)
+ *
+ * what: convert a string into its mapped-to value
+ *
+- * arg: + char* + dest + output string +
+- * arg: + char const* + src + input string +
++ * arg: + char * + dest + output string +
++ * arg: + char const * + src + input string +
+ *
+ * doc:
+ *
+@@ -267,7 +267,7 @@ strequate(char const* s)
+ * err: none.
+ =*/
+ void
+-strtransform(char* d, char const* s)
++strtransform(char * d, char const * s)
+ {
+ do {
+ *(d++) = (char)charmap[(unsigned char)*s];
+diff --git a/src/libopts/text_mmap.c b/src/libopts/text_mmap.c
+index f30e71c..07c0bf1 100644
+--- a/src/libopts/text_mmap.c
++++ b/src/libopts/text_mmap.c
+@@ -9,7 +9,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -61,7 +61,7 @@
+ #define FILE_WRITABLE(_prt,_flg) \
+ ( (_prt & PROT_WRITE) \
+ && ((_flg & (MAP_SHARED|MAP_PRIVATE)) == MAP_SHARED))
+-#define MAP_FAILED_PTR ((void*)MAP_FAILED)
++#define MAP_FAILED_PTR (VOIDP(MAP_FAILED))
+
+ /**
+ * Load the contents of a text file. There are two separate implementations,
+@@ -93,7 +93,7 @@ load_text_file(tmap_info_t * mapinfo, char const * pzFile)
+
+ {
+ size_t sz = mapinfo->txt_size;
+- char* pz = mapinfo->txt_data;
++ char * pz = mapinfo->txt_data;
+
+ while (sz > 0) {
+ ssize_t rdct = read(mapinfo->txt_fd, pz, sz);
+@@ -254,12 +254,12 @@ close_mmap_files(tmap_info_t * mi)
+ *
+ * what: map a text file with terminating NUL
+ *
+- * arg: char const*, pzFile, name of the file to map
+- * arg: int, prot, mmap protections (see mmap(2))
+- * arg: int, flags, mmap flags (see mmap(2))
+- * arg: tmap_info_t*, mapinfo, returned info about the mapping
++ * arg: char const *, pzFile, name of the file to map
++ * arg: int, prot, mmap protections (see mmap(2))
++ * arg: int, flags, mmap flags (see mmap(2))
++ * arg: tmap_info_t *, mapinfo, returned info about the mapping
+ *
+- * ret-type: void*
++ * ret-type: void *
+ * ret-desc: The mmaped data address
+ *
+ * doc:
+@@ -296,7 +296,7 @@ close_mmap_files(tmap_info_t * mi)
+ * #include <mylib.h>
+ * tmap_info_t mi;
+ * int no_nul;
+- * void* data = text_mmap("file", PROT_WRITE, MAP_PRIVATE, &mi);
++ * void * data = text_mmap("file", PROT_WRITE, MAP_PRIVATE, &mi);
+ * if (data == MAP_FAILED) return;
+ * no_nul = (mi.txt_size == mi.txt_full_size);
+ * << use the data >>
+@@ -327,7 +327,7 @@ text_mmap(char const * pzFile, int prot, int flags, tmap_info_t * mi)
+ *
+ * what: unmap the data mapped in by text_mmap
+ *
+- * arg: tmap_info_t*, mapinfo, info about the mapping
++ * arg: tmap_info_t *, mapinfo, info about the mapping
+ *
+ * ret-type: int
+ * ret-desc: -1 or 0. @code{errno} will have the error code.
+diff --git a/src/libopts/time.c b/src/libopts/time.c
+index 517d5b1..62e0754 100644
+--- a/src/libopts/time.c
++++ b/src/libopts/time.c
+@@ -8,7 +8,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -31,8 +31,8 @@
+ * private:
+ *
+ * what: process an option with a time duration.
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * Decipher a time duration value.
+@@ -64,8 +64,8 @@ optionTimeVal(tOptions * opts, tOptDesc * od)
+ * private:
+ *
+ * what: process an option with a time and date.
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * Decipher a time and date value.
+diff --git a/src/libopts/tokenize.c b/src/libopts/tokenize.c
+index 34abf83..cbff7fb 100644
+--- a/src/libopts/tokenize.c
++++ b/src/libopts/tokenize.c
+@@ -9,7 +9,7 @@
+ * This file defines the string_tokenize interface
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -36,20 +36,20 @@
+
+ /* = = = START-STATIC-FORWARD = = = */
+ static void
+-copy_cooked(ch_t** ppDest, char const ** ppSrc);
++copy_cooked(ch_t ** ppDest, char const ** ppSrc);
+
+ static void
+-copy_raw(ch_t** ppDest, char const ** ppSrc);
++copy_raw(ch_t ** ppDest, char const ** ppSrc);
+
+ static token_list_t *
+ alloc_token_list(char const * str);
+ /* = = = END-STATIC-FORWARD = = = */
+
+ static void
+-copy_cooked(ch_t** ppDest, char const ** ppSrc)
++copy_cooked(ch_t ** ppDest, char const ** ppSrc)
+ {
+- ch_t* pDest = (ch_t*)*ppDest;
+- const ch_t* pSrc = (const ch_t*)(*ppSrc + 1);
++ ch_t * pDest = (ch_t *)*ppDest;
++ const ch_t * pSrc = (const ch_t *)(*ppSrc + 1);
+
+ for (;;) {
+ ch_t ch = *(pSrc++);
+@@ -57,7 +57,7 @@ copy_cooked(ch_t** ppDest, char const ** ppSrc)
+ case NUL: *ppSrc = NULL; return;
+ case '"': goto done;
+ case '\\':
+- pSrc += ao_string_cook_escape_char((char*)pSrc, (char*)&ch, 0x7F);
++ pSrc += ao_string_cook_escape_char((char *)pSrc, (char *)&ch, 0x7F);
+ if (ch == 0x7F)
+ break;
+ /* FALLTHROUGH */
+@@ -68,16 +68,16 @@ copy_cooked(ch_t** ppDest, char const ** ppSrc)
+ }
+
+ done:
+- *ppDest = (ch_t*)pDest; /* next spot for storing character */
++ *ppDest = (ch_t *)pDest; /* next spot for storing character */
+ *ppSrc = (char const *)pSrc; /* char following closing quote */
+ }
+
+
+ static void
+-copy_raw(ch_t** ppDest, char const ** ppSrc)
++copy_raw(ch_t ** ppDest, char const ** ppSrc)
+ {
+- ch_t* pDest = *ppDest;
+- cc_t* pSrc = (cc_t*) (*ppSrc + 1);
++ ch_t * pDest = *ppDest;
++ cc_t * pSrc = (cc_t *) (*ppSrc + 1);
+
+ for (;;) {
+ ch_t ch = *(pSrc++);
+@@ -151,12 +151,12 @@ alloc_token_list(char const * str)
+ } while (*pz != NUL);
+
+ res = malloc(sizeof(*res) + (size_t)(pz - str)
+- + ((size_t)max_token_ct * sizeof(ch_t*)));
++ + ((size_t)max_token_ct * sizeof(ch_t *)));
+ }
+
+ if (res == NULL)
+ errno = ENOMEM;
+- else res->tkn_list[0] = (ch_t*)(res->tkn_list + (max_token_ct - 1));
++ else res->tkn_list[0] = (ch_t *)(res->tkn_list + (max_token_ct - 1));
+
+ return res;
+
+@@ -170,9 +170,9 @@ alloc_token_list(char const * str)
+ *
+ * what: tokenize an input string
+ *
+- * arg: + char const* + string + string to be tokenized +
++ * arg: + char const * + string + string to be tokenized +
+ *
+- * ret_type: token_list_t*
++ * ret_type: token_list_t *
+ * ret_desc: pointer to a structure that lists each token
+ *
+ * doc:
+@@ -213,7 +213,7 @@ alloc_token_list(char const * str)
+ * @example
+ * #include <stdlib.h>
+ * int ix;
+- * token_list_t* ptl = ao_string_tokenize(some_string)
++ * token_list_t * ptl = ao_string_tokenize(some_string)
+ * for (ix = 0; ix < ptl->tkn_ct; ix++)
+ * do_something_with_tkn(ptl->tkn_list[ix]);
+ * free(ptl);
+@@ -231,11 +231,11 @@ alloc_token_list(char const * str)
+ * @code{ENOMEM} - There is not enough memory.
+ * @end itemize
+ =*/
+-token_list_t*
+-ao_string_tokenize(char const* str)
++token_list_t *
++ao_string_tokenize(char const * str)
+ {
+- token_list_t* res = alloc_token_list(str);
+- ch_t* pzDest;
++ token_list_t * res = alloc_token_list(str);
++ ch_t * pzDest;
+
+ /*
+ * Now copy each token into the output buffer.
+@@ -243,7 +243,7 @@ ao_string_tokenize(char const* str)
+ if (res == NULL)
+ return res;
+
+- pzDest = (ch_t*)(res->tkn_list[0]);
++ pzDest = (ch_t *)(res->tkn_list[0]);
+ res->tkn_ct = 0;
+
+ do {
+@@ -304,15 +304,15 @@ ao_string_tokenize(char const* str)
+ #include <string.h>
+
+ int
+-main(int argc, char** argv)
++main(int argc, char ** argv)
+ {
+ if (argc == 1) {
+ printf("USAGE: %s arg [ ... ]\n", *argv);
+ return 1;
+ }
+ while (--argc > 0) {
+- char* arg = *(++argv);
+- token_list_t* p = ao_string_tokenize(arg);
++ char * arg = *(++argv);
++ token_list_t * p = ao_string_tokenize(arg);
+ if (p == NULL) {
+ printf("Parsing string ``%s'' failed:\n\terrno %d (%s)\n",
+ arg, errno, strerror(errno));
+diff --git a/src/libopts/usage.c b/src/libopts/usage.c
+index 206235d..c652da7 100644
+--- a/src/libopts/usage.c
++++ b/src/libopts/usage.c
+@@ -18,7 +18,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -240,7 +240,7 @@ skip_misuse_usage(tOptions * pOpts)
+ /*=export_func optionOnlyUsage
+ *
+ * what: Print usage text for just the options
+- * arg: + tOptions* + pOpts + program options descriptor +
++ * arg: + tOptions * + pOpts + program options descriptor +
+ * arg: + int + ex_code + exit code for calling exit(3) +
+ *
+ * doc:
+@@ -435,7 +435,7 @@ print_one_paragraph(char const * text, bool plain, FILE * fp)
+ else {
+ char const * t = optionQuoteString(text, LINE_SPLICE);
+ fprintf(fp, PUTS_FMT, t);
+- AGFREE((void *)t);
++ AGFREE(t);
+ }
+ }
+
+@@ -546,15 +546,15 @@ optionPrintParagraphs(char const * text, bool plain, FILE * fp)
+ buf = scan;
+ }
+ }
+- AGFREE((void *)text);
++ AGFREE(text);
+ }
+
+ /*=export_func optionUsage
+ * private:
+ *
+ * what: Print usage text
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + int + exitCode + exit code for calling exit(3) +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + int + exitCode + exit code for calling exit(3) +
+ *
+ * doc:
+ * This routine will print usage in both GNU-standard and AutoOpts-expanded
+diff --git a/src/libopts/version.c b/src/libopts/version.c
+index 1516c14..8a8de75 100644
+--- a/src/libopts/version.c
++++ b/src/libopts/version.c
+@@ -10,7 +10,7 @@
+ /*
+ * This file is part of AutoOpts, a companion to AutoGen.
+ * AutoOpts is free software.
+- * AutoOpts is Copyright (C) 1992-2014 by Bruce Korb - all rights reserved
++ * AutoOpts is Copyright (C) 1992-2015 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
+@@ -32,13 +32,13 @@
+ /*=export_func optionVersion
+ *
+ * what: return the compiled AutoOpts version number
+- * ret_type: char const*
++ * ret_type: char const *
+ * ret_desc: the version string in constant memory
+ * doc:
+ * Returns the full version string compiled into the library.
+ * The returned string cannot be modified.
+ =*/
+-char const*
++char const *
+ optionVersion(void)
+ {
+ static char const ver[] = OPTIONS_DOTTED_VERSION;
+@@ -181,8 +181,8 @@ print_ver(tOptions * opts, tOptDesc * od, FILE * fp, bool call_exit)
+ /*=export_func optionPrintVersion
+ *
+ * what: Print the program version
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * This routine will print the version to stdout.
+@@ -196,8 +196,8 @@ optionPrintVersion(tOptions * opts, tOptDesc * od)
+ /*=export_func optionPrintVersionAndReturn
+ *
+ * what: Print the program version
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * This routine will print the version to stdout and return
+@@ -215,8 +215,8 @@ optionPrintVersionAndReturn(tOptions * opts, tOptDesc * od)
+ * private:
+ *
+ * what: Print the program version to stderr
+- * arg: + tOptions* + opts + program options descriptor +
+- * arg: + tOptDesc* + od + the descriptor for this arg +
++ * arg: + tOptions * + opts + program options descriptor +
++ * arg: + tOptDesc * + od + the descriptor for this arg +
+ *
+ * doc:
+ * This routine will print the version to stderr.
+--
+2.5.0
+
diff --git a/recipes/libtasn1.recipe b/recipes/libtasn1.recipe
index b2aeb70c..8cd40676 100644
--- a/recipes/libtasn1.recipe
+++ b/recipes/libtasn1.recipe
@@ -2,9 +2,9 @@
class Recipe(recipe.Recipe):
name = 'libtasn1'
- version = '4.4'
+ version = '4.5'
stype = SourceType.TARBALL
- url = 'http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.4.tar.gz'
+ url = 'http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.5.tar.gz'
licenses = [License.LGPLv2_1Plus]
autoreconf = True
patches = ['libtasn1/0001-Rename-gnulib-symbols.patch']