INN commit: trunk (14 files)

INN Commit rra at isc.org
Tue Oct 18 20:19:57 UTC 2016


    Date: Tuesday, October 18, 2016 @ 13:19:56
  Author: iulius
Revision: 10087

Update concat library to its latest version in rra-c-util

Added:
  trunk/include/inn/concat.h
Modified:
  trunk/MANIFEST
  trunk/authprogs/Makefile
  trunk/backends/Makefile
  trunk/expire/Makefile
  trunk/frontends/Makefile
  trunk/history/Makefile
  trunk/include/inn/libinn.h
  trunk/innd/Makefile
  trunk/innfeed/Makefile
  trunk/lib/Makefile
  trunk/lib/concat.c
  trunk/nnrpd/Makefile
  trunk/storage/Makefile

----------------------+
 MANIFEST             |    1 
 authprogs/Makefile   |   25 +++++----
 backends/Makefile    |   54 ++++++++++----------
 expire/Makefile      |   44 ++++++++--------
 frontends/Makefile   |   50 +++++++++---------
 history/Makefile     |    4 -
 include/inn/concat.h |   42 +++++++++++++++
 include/inn/libinn.h |    3 -
 innd/Makefile        |  111 ++++++++++++++++++++++-------------------
 innfeed/Makefile     |   51 ++++++++++--------
 lib/Makefile         |  132 ++++++++++++++++++++++++++-----------------------
 lib/concat.c         |   90 ++++++++++++++++++++-------------
 nnrpd/Makefile       |  128 ++++++++++++++++++++++++-----------------------
 storage/Makefile     |  125 +++++++++++++++++++++++-----------------------
 14 files changed, 483 insertions(+), 377 deletions(-)

Modified: MANIFEST
===================================================================
--- MANIFEST	2016-10-18 19:50:56 UTC (rev 10086)
+++ MANIFEST	2016-10-18 20:19:56 UTC (rev 10087)
@@ -381,6 +381,7 @@
 include/config.h.in                   Template configuration data 
 include/inn                           Installed header files (Directory)
 include/inn/buffer.h                  Header file for reusable counted buffers
+include/inn/concat.h                  Header file for string concatenation
 include/inn/confparse.h               Header file for configuration parser
 include/inn/dbz.h                     Header file for DBZ
 include/inn/defines.h                 Portable defs for installed headers

Modified: authprogs/Makefile
===================================================================
--- authprogs/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ authprogs/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -83,7 +83,8 @@
   ../include/portable/stdbool.h libauth.h ../include/portable/socket.h \
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 ckpasswd.o: ckpasswd.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -91,8 +92,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
   ../include/inn/qio.h ../include/inn/vector.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h libauth.h \
-  ../include/portable/socket.h ../include/portable/macros.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  libauth.h ../include/portable/socket.h ../include/portable/macros.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h
 domain.o: domain.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
@@ -100,9 +101,10 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  libauth.h ../include/portable/socket.h ../include/portable/macros.h \
-  ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h libauth.h ../include/portable/socket.h \
+  ../include/portable/macros.h ../include/portable/getaddrinfo.h \
+  ../include/portable/getnameinfo.h
 ident.o: ident.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -112,8 +114,8 @@
   ../include/inn/network.h ../include/inn/portable-socket.h \
   ../include/inn/portable-getaddrinfo.h \
   ../include/inn/portable-getnameinfo.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h libauth.h \
-  ../include/portable/socket.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  libauth.h ../include/portable/socket.h
 libauth.o: libauth.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -122,7 +124,8 @@
   ../include/portable/stdbool.h ../include/portable/socket.h \
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/messages.h libauth.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 radius.o: radius.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -130,8 +133,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/md5.h ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/conffile.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/conffile.h \
   ../include/portable/macros.h libauth.h ../include/portable/socket.h \
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h

Modified: backends/Makefile
===================================================================
--- backends/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ backends/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -129,8 +129,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/hashtab.h ../include/inn/qio.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h
 archive.o: archive.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -139,8 +139,8 @@
   ../include/portable/stdbool.h ../include/inn/buffer.h \
   ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/qio.h \
   ../include/inn/vector.h ../include/inn/wire.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
 batcher.o: batcher.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -148,8 +148,9 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/wire.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h
 buffchan.o: buffchan.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -157,8 +158,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/qio.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h \
-  map.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/paths.h map.h
 cvtbatch.o: cvtbatch.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -166,8 +167,9 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/qio.h ../include/inn/wire.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h
 filechan.o: filechan.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -175,8 +177,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h \
-  map.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/paths.h map.h
 innbind.o: innbind.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -185,7 +187,7 @@
   ../include/portable/stdbool.h ../include/portable/socket.h \
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/messages.h ../include/inn/newsuser.h \
   ../include/inn/vector.h
 inndf.o: inndf.c ../include/config.h ../include/inn/defines.h \
@@ -196,8 +198,8 @@
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/overview.h \
   ../include/inn/storage.h ../include/inn/options.h ../include/inn/qio.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h
 innxbatch.o: innxbatch.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -207,7 +209,8 @@
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h
 innxmit.o: innxmit.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -218,8 +221,9 @@
   ../include/portable/getnameinfo.h ../include/inn/history.h \
   ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/qio.h \
   ../include/inn/timer.h ../include/inn/wire.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h
 map.o: map.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -226,8 +230,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h \
-  map.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/paths.h map.h
 ninpaths.o: ninpaths.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -243,8 +247,8 @@
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/history.h \
   ../include/inn/innconf.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h
 overchan.o: overchan.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -253,8 +257,8 @@
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/overview.h \
   ../include/inn/storage.h ../include/inn/options.h ../include/inn/qio.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h
 shlock.o: shlock.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -268,4 +272,4 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h

Modified: expire/Makefile
===================================================================
--- expire/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ expire/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -88,7 +88,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 expire.o: expire.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -97,7 +98,7 @@
   ../include/portable/stdbool.h ../include/inn/history.h \
   ../include/inn/innconf.h ../include/inn/messages.h \
   ../include/inn/inndcomm.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/newsuser.h ../include/inn/paths.h \
   ../include/inn/storage.h ../include/inn/options.h
 expireover.o: expireover.c ../include/config.h ../include/inn/defines.h \
@@ -106,11 +107,11 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/messages.h ../include/inn/newsuser.h ../include/inn/ov.h \
-  ../include/inn/history.h ../include/inn/storage.h \
-  ../include/inn/options.h ../include/inn/paths.h ../include/inn/qio.h \
-  ../include/inn/storage.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/messages.h \
+  ../include/inn/newsuser.h ../include/inn/ov.h ../include/inn/history.h \
+  ../include/inn/storage.h ../include/inn/options.h ../include/inn/paths.h \
+  ../include/inn/qio.h ../include/inn/storage.h
 fastrm.o: fastrm.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -118,7 +119,7 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/qio.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/storage.h ../include/inn/options.h
 grephistory.o: grephistory.c ../include/clibrary.h ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
@@ -127,8 +128,8 @@
   ../include/inn/macros.h ../include/portable/stdbool.h \
   ../include/inn/history.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
 makedbz.o: makedbz.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -135,10 +136,11 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/dbz.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/innconf.h ../include/inn/messages.h \
-  ../include/inn/newsuser.h ../include/inn/paths.h ../include/inn/qio.h \
-  ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/innconf.h \
+  ../include/inn/messages.h ../include/inn/newsuser.h \
+  ../include/inn/paths.h ../include/inn/qio.h ../include/inn/storage.h \
+  ../include/inn/options.h
 makehistory.o: makehistory.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -146,11 +148,11 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/buffer.h \
   ../include/inn/history.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/messages.h ../include/inn/newsuser.h ../include/inn/ov.h \
-  ../include/inn/storage.h ../include/inn/options.h ../include/inn/paths.h \
-  ../include/inn/qio.h ../include/inn/storage.h ../include/inn/vector.h \
-  ../include/inn/wire.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/messages.h \
+  ../include/inn/newsuser.h ../include/inn/ov.h ../include/inn/storage.h \
+  ../include/inn/options.h ../include/inn/paths.h ../include/inn/qio.h \
+  ../include/inn/storage.h ../include/inn/vector.h ../include/inn/wire.h
 prunehistory.o: prunehistory.c ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -158,5 +160,5 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/history.h \
   ../include/inn/innconf.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h

Modified: frontends/Makefile
===================================================================
--- frontends/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ frontends/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -140,8 +140,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/inndcomm.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h
 decode.o: decode.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -161,8 +161,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/nntp.h ../include/inn/qio.h \
-  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/paths.h
+  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h
 inews.o: inews.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -169,9 +169,9 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/messages.h ../include/inn/newsuser.h \
-  ../include/inn/nntp.h ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/messages.h \
+  ../include/inn/newsuser.h ../include/inn/nntp.h ../include/inn/paths.h
 innconfval.o: innconfval.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -179,7 +179,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/version.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 ovdb_init.o: ovdb_init.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -186,7 +187,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/ov.h \
   ../include/inn/history.h ../include/inn/storage.h \
   ../include/inn/options.h ../storage/ovdb/ovdb.h \
@@ -199,8 +200,8 @@
   ../include/portable/stdbool.h ../include/portable/setproctitle.h \
   ../include/portable/macros.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/ov.h \
-  ../include/inn/history.h ../include/inn/storage.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
   ../include/inn/options.h ../storage/ovdb/ovdb.h \
   ../storage/ovdb/ovdb-private.h
 ovdb_server.o: ovdb_server.c ../include/config.h ../include/inn/defines.h \
@@ -214,10 +215,11 @@
   ../include/portable/getnameinfo.h ../include/portable/socket-unix.h \
   ../include/inn/fdflag.h ../include/inn/portable-socket.h \
   ../include/inn/innconf.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
-  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
-  ../storage/ovdb/ovdb.h ../storage/ovdb/ovdb-private.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h ../include/inn/ov.h ../include/inn/history.h \
+  ../include/inn/storage.h ../storage/ovdb/ovdb.h \
+  ../storage/ovdb/ovdb-private.h
 ovdb_stat.o: ovdb_stat.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -225,8 +227,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/ov.h \
-  ../include/inn/history.h ../include/inn/storage.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
   ../include/inn/options.h ../include/inn/paths.h ../include/inn/storage.h \
   ../storage/ovdb/ovdb.h ../storage/ovdb/ovdb-private.h
 rnews.o: rnews.c ../include/config.h ../include/inn/defines.h \
@@ -237,10 +239,10 @@
   ../include/portable/stdbool.h ../include/inn/fdflag.h \
   ../include/inn/portable-socket.h ../include/inn/portable-getaddrinfo.h \
   ../include/inn/portable-getnameinfo.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/messages.h ../include/inn/newsuser.h \
-  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
-  ../include/inn/options.h ../include/inn/wire.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/messages.h \
+  ../include/inn/newsuser.h ../include/inn/nntp.h ../include/inn/paths.h \
+  ../include/inn/storage.h ../include/inn/options.h ../include/inn/wire.h
 sm.o: sm.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -248,6 +250,6 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/buffer.h \
   ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/qio.h \
-  ../include/inn/wire.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/storage.h \
-  ../include/inn/options.h
+  ../include/inn/wire.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/storage.h ../include/inn/options.h

Modified: history/Makefile
===================================================================
--- history/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ history/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -105,7 +105,7 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/history.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/storage.h ../include/inn/options.h hisinterface.h \
   hismethods.h
 hismethods.o: hismethods.c hisinterface.h ../include/config.h \
@@ -120,7 +120,7 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h hisinterface.h hisv6/hisv6.h \
   hisv6/hisv6-private.h ../include/inn/history.h ../include/inn/storage.h \
-  ../include/inn/options.h ../include/inn/libinn.h \
+  ../include/inn/options.h ../include/inn/libinn.h ../include/inn/concat.h \
   ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/dbz.h \
   ../include/inn/fdflag.h ../include/inn/portable-socket.h \
   ../include/inn/portable-getaddrinfo.h \

Added: include/inn/concat.h
===================================================================
--- include/inn/concat.h	                        (rev 0)
+++ include/inn/concat.h	2016-10-18 20:19:56 UTC (rev 10087)
@@ -0,0 +1,42 @@
+/* $Id$
+ *
+ * Prototypes for string concatenation with dynamic memory allocation.
+ *
+ * The canonical version of this file *used to be* maintained in the
+ * rra-c-util package, which can be found at
+ * <https://www.eyrie.org/~eagle/software/rra-c-util/>.
+ *
+ * Written by Russ Allbery <eagle at eyrie.org>
+ *
+ * The authors hereby relinquish any claim to any copyright that they may have
+ * in this work, whether granted under contract or by operation of law or
+ * international treaty, and hereby commit to the public, at large, that they
+ * shall not, at any time in the future, seek to enforce any copyright in this
+ * work against any person or entity, or prevent any person or entity from
+ * copying, publishing, distributing or creating derivative works of this
+ * work.
+ */
+
+#ifndef INN_CONCAT_H
+#define INN_CONCAT_H 1
+
+#include <inn/defines.h>
+#include "inn/portable-macros.h"
+
+BEGIN_DECLS
+
+/* Concatenate NULL-terminated strings into a newly allocated string. */
+char *concat(const char *first, ...)
+    __attribute__((__malloc__, __nonnull__(1)));
+
+/*
+ * Given a base path and a file name, create a newly allocated path string.
+ * The name will be appended to base with a / between them.  Exceptionally, if
+ * name begins with a slash, it will be strdup'd and returned as-is.
+ */
+char *concatpath(const char *base, const char *name)
+    __attribute__((__malloc__, __nonnull__(2)));
+
+END_DECLS
+
+#endif /* INN_CONCAT_H */


Property changes on: trunk/include/inn/concat.h
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Revision
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: include/inn/libinn.h
===================================================================
--- include/inn/libinn.h	2016-10-18 19:50:56 UTC (rev 10086)
+++ include/inn/libinn.h	2016-10-18 20:19:56 UTC (rev 10087)
@@ -7,6 +7,7 @@
 #define INN_LIBINN_H 1
 
 #include <inn/defines.h>
+#include "inn/concat.h"
 #include "inn/xmalloc.h"
 #include "inn/xwrite.h"
 
@@ -75,8 +76,6 @@
 /*
 **  MISCELLANEOUS UTILITY FUNCTIONS
 */
-extern char *   concat(const char *first, ...);
-extern char *   concatpath(const char *base, const char *name);
 extern void     daemonize(const char *path);
 extern int      getfdlimit(void);
 extern int      setfdlimit(unsigned int limit);

Modified: innd/Makefile
===================================================================
--- innd/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ innd/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -82,8 +82,8 @@
   ../include/portable/socket.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/buffer.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h
 cc.o: cc.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -95,9 +95,9 @@
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
   ../include/inn/buffer.h ../include/inn/history.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
-  ../include/inn/inndcomm.h ../include/innperl.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h ../include/inn/inndcomm.h ../include/innperl.h
 chan.o: chan.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -109,9 +109,9 @@
   ../include/inn/network.h innd.h ../include/portable/macros.h \
   ../include/portable/socket.h ../include/inn/buffer.h \
   ../include/inn/history.h ../include/inn/messages.h \
-  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
 icd.o: icd.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -124,10 +124,10 @@
   ../include/inn/mmap.h innd.h ../include/portable/macros.h \
   ../include/portable/socket.h ../include/inn/buffer.h \
   ../include/inn/history.h ../include/inn/messages.h \
-  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h ../include/inn/ov.h \
-  ../include/inn/storage.h
+  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/ov.h ../include/inn/storage.h
 innd.o: innd.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -138,9 +138,10 @@
   innd.h ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
   ../include/inn/buffer.h ../include/inn/history.h ../include/inn/timer.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
-  ../include/inn/options.h ../include/inn/ov.h ../include/inn/storage.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
+  ../include/inn/storage.h ../include/inn/options.h ../include/inn/ov.h \
+  ../include/inn/storage.h
 keywords.o: keywords.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -147,7 +148,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/innconf.h innd.h ../include/portable/macros.h \
   ../include/portable/socket.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/buffer.h \
@@ -164,9 +165,9 @@
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
   ../include/inn/buffer.h ../include/inn/history.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
-  ../include/portable/socket-unix.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h ../include/portable/socket-unix.h
 nc.o: nc.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -178,8 +179,9 @@
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
   ../include/inn/buffer.h ../include/inn/history.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h
 newsfeeds.o: newsfeeds.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -190,8 +192,9 @@
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
   ../include/inn/buffer.h ../include/inn/history.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h
 ng.o: ng.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -202,9 +205,9 @@
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
   ../include/inn/buffer.h ../include/inn/history.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
-  ../include/inn/ov.h ../include/inn/storage.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h ../include/inn/ov.h ../include/inn/storage.h
 perl.o: perl.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -215,9 +218,11 @@
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
   ../include/inn/buffer.h ../include/inn/history.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
-  ../include/ppport.h ../include/innperl.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h \
+  ../include/ppport.h \
+  ../include/innperl.h
 proc.o: proc.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -227,9 +232,9 @@
   ../include/portable/socket.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/buffer.h \
   ../include/inn/history.h ../include/inn/messages.h \
-  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
 python.o: python.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -240,9 +245,9 @@
   ../include/portable/socket.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/buffer.h \
   ../include/inn/history.h ../include/inn/messages.h \
-  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
 rc.o: rc.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -255,9 +260,9 @@
   ../include/inn/network.h ../include/inn/network-innbind.h \
   ../include/inn/vector.h innd.h ../include/inn/buffer.h \
   ../include/inn/history.h ../include/inn/messages.h \
-  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
 site.o: site.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -269,8 +274,9 @@
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/inn/buffer.h ../include/inn/history.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h
 status.o: status.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -282,9 +288,10 @@
   ../include/inn/portable-socket.h ../include/inn/innconf.h \
   ../include/inn/version.h innd.h ../include/inn/buffer.h \
   ../include/inn/history.h ../include/inn/messages.h \
-  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h ../include/innperl.h
+  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
+  ../include/innperl.h
 util.o: util.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -293,11 +300,12 @@
   ../include/portable/stdbool.h ../include/inn/fdflag.h \
   ../include/inn/portable-socket.h ../include/inn/portable-getaddrinfo.h \
   ../include/inn/portable-getnameinfo.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  innd.h ../include/portable/macros.h ../include/portable/socket.h \
-  ../include/inn/buffer.h ../include/inn/history.h \
-  ../include/inn/messages.h ../include/inn/timer.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h innd.h ../include/portable/macros.h \
+  ../include/portable/socket.h ../include/inn/buffer.h \
+  ../include/inn/history.h ../include/inn/messages.h \
+  ../include/inn/timer.h ../include/inn/nntp.h ../include/inn/paths.h \
+  ../include/inn/storage.h ../include/inn/options.h
 wip.o: wip.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -308,8 +316,9 @@
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
   ../include/inn/buffer.h ../include/inn/history.h \
   ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
+  ../include/inn/options.h
 tinyleaf.o: tinyleaf.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -318,5 +327,5 @@
   ../include/portable/stdbool.h ../include/inn/dispatch.h \
   ../include/inn/messages.h ../include/inn/md5.h ../include/inn/nntp.h \
   ../include/inn/utility.h ../include/inn/vector.h \
-  ../include/inn/version.h ../include/inn/libinn.h \
+  ../include/inn/version.h ../include/inn/libinn.h ../include/inn/concat.h \
   ../include/inn/xmalloc.h ../include/inn/xwrite.h

Modified: innfeed/Makefile
===================================================================
--- innfeed/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ innfeed/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -105,7 +105,7 @@
   ../include/clibrary.h ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/portable/mmap.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/storage.h ../include/inn/options.h article.h misc.h \
   ../include/portable/macros.h buffer.h endpoint.h
 buffer.o: buffer.c innfeed.h ../include/inn/timer.h \
@@ -114,14 +114,14 @@
   ../include/config.h ../include/inn/defines.h ../include/inn/options.h \
   ../include/clibrary.h ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  buffer.h misc.h ../include/portable/macros.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h buffer.h misc.h ../include/portable/macros.h
 config_l.o: config_l.c innfeed.h ../include/inn/timer.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  configfile.h config_y.h misc.h ../include/config.h \
-  ../include/inn/defines.h ../include/inn/options.h \
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h configfile.h config_y.h misc.h \
+  ../include/config.h ../include/inn/defines.h ../include/inn/options.h \
   ../include/portable/macros.h
 config_y.o: config_y.c innfeed.h ../include/inn/timer.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
@@ -129,8 +129,8 @@
   ../include/config.h ../include/inn/defines.h ../include/inn/options.h \
   ../include/clibrary.h ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  configfile.h misc.h ../include/portable/macros.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h configfile.h misc.h ../include/portable/macros.h
 connection.o: connection.c innfeed.h ../include/inn/timer.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -141,8 +141,9 @@
   ../include/portable/getnameinfo.h ../include/inn/fdflag.h \
   ../include/inn/portable-socket.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/network.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  article.h misc.h buffer.h configfile.h connection.h endpoint.h host.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h article.h misc.h buffer.h configfile.h \
+  connection.h endpoint.h host.h
 endpoint.o: endpoint.c innfeed.h ../include/inn/timer.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -152,8 +153,8 @@
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h buffer.h misc.h \
-  configfile.h endpoint.h host.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  buffer.h misc.h configfile.h endpoint.h host.h
 host.o: host.c innfeed.h ../include/inn/timer.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -164,9 +165,9 @@
   ../include/portable/getnameinfo.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/network.h \
   ../include/inn/portable-socket.h ../include/inn/version.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  article.h misc.h buffer.h configfile.h connection.h endpoint.h host.h \
-  innlistener.h tape.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h article.h misc.h buffer.h configfile.h \
+  connection.h endpoint.h host.h innlistener.h tape.h
 imap_connection.o: imap_connection.c ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -175,9 +176,9 @@
   ../include/portable/stdbool.h ../include/portable/socket.h \
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  buffer.h misc.h connection.h endpoint.h host.h innfeed.h \
-  ../include/inn/timer.h article.h configfile.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h buffer.h misc.h connection.h endpoint.h host.h \
+  innfeed.h ../include/inn/timer.h article.h configfile.h
 innlistener.o: innlistener.c innfeed.h ../include/inn/timer.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -184,7 +185,7 @@
   ../include/config.h ../include/inn/defines.h ../include/inn/options.h \
   ../include/clibrary.h ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/messages.h ../include/inn/nntp.h article.h misc.h \
   ../include/portable/macros.h buffer.h configfile.h endpoint.h host.h \
   innlistener.h tape.h
@@ -197,7 +198,7 @@
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/portable/socket-unix.h \
   ../include/inn/innconf.h ../include/inn/messages.h \
-  ../include/inn/version.h ../include/inn/libinn.h \
+  ../include/inn/version.h ../include/inn/libinn.h ../include/inn/concat.h \
   ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/storage.h ../include/inn/options.h article.h misc.h \
   buffer.h configfile.h connection.h endpoint.h host.h innlistener.h \
@@ -208,8 +209,9 @@
   ../include/config.h ../include/inn/defines.h ../include/inn/options.h \
   ../include/clibrary.h ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  endpoint.h misc.h ../include/portable/macros.h tape.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h endpoint.h misc.h ../include/portable/macros.h \
+  tape.h
 tape.o: tape.c innfeed.h ../include/inn/timer.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -217,5 +219,6 @@
   ../include/clibrary.h ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h article.h misc.h \
-  ../include/portable/macros.h configfile.h endpoint.h tape.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  article.h misc.h ../include/portable/macros.h configfile.h endpoint.h \
+  tape.h

Modified: lib/Makefile
===================================================================
--- lib/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ lib/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -101,7 +101,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 buffer.o: buffer.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -115,7 +116,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 clientactive.o: clientactive.c ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -122,8 +123,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h
 clientlib.o: clientlib.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -130,8 +131,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h
 commands.o: commands.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -138,12 +139,14 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 concat.o: concat.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
-  ../include/inn/defines.h ../include/inn/options.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
+  ../include/config.h ../include/inn/macros.h \
+  ../include/portable/stdbool.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h
 conffile.o: conffile.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -151,7 +154,7 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/conffile.h \
   ../include/portable/macros.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 confparse.o: confparse.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -159,8 +162,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/confparse.h \
   ../include/inn/hashtab.h ../include/inn/messages.h \
-  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h
+  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h
 daemonize.o: daemonize.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -167,7 +170,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 date.o: date.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -174,7 +178,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 dbz.o: dbz.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -181,8 +185,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/portable/mmap.h \
-  ../include/inn/dbz.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/fdflag.h \
+  ../include/inn/dbz.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/fdflag.h \
   ../include/inn/portable-socket.h ../include/inn/portable-getaddrinfo.h \
   ../include/inn/portable-getnameinfo.h ../include/inn/messages.h \
   ../include/inn/innconf.h ../include/inn/mmap.h
@@ -192,8 +196,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h
 dispatch.o: dispatch.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -215,7 +219,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 getfqdn.o: getfqdn.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -222,7 +226,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/paths.h
 getmodaddr.o: getmodaddr.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -229,8 +234,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h
 hash.o: hash.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -237,7 +242,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/md5.h \
-  ../include/inn/utility.h ../include/inn/libinn.h \
+  ../include/inn/utility.h ../include/inn/libinn.h ../include/inn/concat.h \
   ../include/inn/xmalloc.h ../include/inn/xwrite.h
 hashtab.o: hashtab.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
@@ -245,7 +250,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/hashtab.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 headers.o: headers.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -252,7 +258,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 hex.o: hex.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -266,8 +272,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/confparse.h \
   ../include/inn/innconf.h ../include/inn/messages.h \
-  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/paths.h
+  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h
 inndcomm.o: inndcomm.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -277,8 +283,8 @@
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/portable/socket-unix.h \
   ../include/inn/innconf.h ../include/inn/inndcomm.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/paths.h
 list.o: list.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -291,8 +297,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h \
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
   ../include/portable/socket-unix.h
 lockfile.o: lockfile.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
@@ -300,7 +306,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 makedir.o: makedir.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -307,7 +313,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 md5.o: md5.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -320,8 +326,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h
 messages.o: messages.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -355,9 +361,10 @@
   ../include/portable/stdbool.h ../include/portable/socket.h \
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/messages.h ../include/inn/network.h \
-  ../include/inn/portable-socket.h ../include/inn/network-innbind.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/messages.h \
+  ../include/inn/network.h ../include/inn/portable-socket.h \
+  ../include/inn/network-innbind.h
 newsuser.o: newsuser.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -375,8 +382,8 @@
   ../include/portable/getnameinfo.h ../include/inn/buffer.h \
   ../include/inn/innconf.h ../include/inn/network.h \
   ../include/inn/portable-socket.h ../include/inn/nntp.h \
-  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h
+  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h
 numbers.o: numbers.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -383,7 +390,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 qio.o: qio.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -390,7 +397,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/qio.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 radix32.o: radix32.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -397,7 +405,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 readin.o: readin.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -404,7 +412,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 remopen.o: remopen.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -413,9 +421,9 @@
   ../include/portable/stdbool.h ../include/portable/socket.h \
   ../include/portable/macros.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/network.h ../include/inn/portable-socket.h \
-  ../include/inn/nntp.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/network.h \
+  ../include/inn/portable-socket.h ../include/inn/nntp.h
 reservedfd.o: reservedfd.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -422,7 +430,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 resource.o: resource.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -429,7 +437,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 sendarticle.o: sendarticle.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -436,7 +444,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/nntp.h
 sendpass.o: sendpass.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -443,8 +452,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h
 sequence.o: sequence.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -457,8 +466,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
-  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h
+  ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h
 tst.o: tst.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -465,7 +474,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/tst.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 uwildmat.o: uwildmat.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -472,7 +482,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 vector.o: vector.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -486,7 +496,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/wire.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 xfopena.o: xfopena.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -493,7 +504,7 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
 xmalloc.o: xmalloc.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -505,7 +516,8 @@
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
   ../include/inn/defines.h ../include/inn/options.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h
 xwrite.o: xwrite.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -672,5 +684,5 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/ppport.h ../include/innperl.h

Modified: lib/concat.c
===================================================================
--- lib/concat.c	2016-10-18 19:50:56 UTC (rev 10086)
+++ lib/concat.c	2016-10-18 20:19:56 UTC (rev 10087)
@@ -1,40 +1,54 @@
-/*  $Id$
-**
-**  Concatenate strings with dynamic memory allocation.
-**
-**  Written by Russ Allbery <eagle at eyrie.org>
-**  This work is hereby placed in the public domain by its author.
-**
-**  Usage:
-** 
-**       string = concat(string1, string2, ..., (char *) 0);
-**       path = concatpath(base, name);
-**
-**  Dynamically allocates (using xmalloc) sufficient memory to hold all of
-**  the strings given and then concatenates them together into that
-**  allocated memory, returning a pointer to it.  Caller is responsible for
-**  freeing.  Assumes xmalloc is available.  The last argument must be a
-**  null pointer (to a char *, if you actually find a platform where it
-**  matters).
-**
-**  concatpath is similar, except that it only takes two arguments.  If the
-**  second argument begins with / or ./, a copy of it is returned;
-**  otherwise, the first argument, a slash, and the second argument are
-**  concatenated together and returned.  This is useful for building file
-**  names where names that aren't fully qualified are qualified with some
-**  particular directory.
-*/
+/* $Id$
+ *
+ * Concatenate strings with dynamic memory allocation.
+ *
+ * Usage:
+ *
+ *      string = concat(string1, string2, ..., (char *) 0);
+ *      path = concatpath(base, name);
+ *
+ * Dynamically allocates (using xmalloc) sufficient memory to hold all of the
+ * strings given and then concatenates them together into that allocated
+ * memory, returning a pointer to it.  Caller is responsible for freeing.
+ * Assumes xmalloc is available.  The last argument must be a null pointer (to
+ * a char *, if you actually find a platform where it matters).
+ *
+ * concatpath is similar, except that it only takes two arguments.  If the
+ * second argument begins with / or ./, a copy of it is returned; otherwise,
+ * the first argument, a slash, and the second argument are concatenated
+ * together and returned.  This is useful for building file names where names
+ * that aren't fully qualified are qualified with some particular directory.
+ *
+ * The canonical version of this file *used to be* maintained in the
+ * rra-c-util package, which can be found at
+ * <http://www.eyrie.org/~eagle/software/rra-c-util/>.
+ *
+ * Written by Russ Allbery <eagle at eyrie.org>
+ *
+ * The authors hereby relinquish any claim to any copyright that they may have
+ * in this work, whether granted under contract or by operation of law or
+ * international treaty, and hereby commit to the public, at large, that they
+ * shall not, at any time in the future, seek to enforce any copyright in this
+ * work against any person or entity, or prevent any person or entity from
+ * copying, publishing, distributing or creating derivative works of this
+ * work.
+ */
 
 #include "config.h"
-#include "inn/libinn.h"
+#include "clibrary.h"
 
-#include <stdarg.h>
-#include <string.h>
+#include "inn/concat.h"
+#include "inn/xmalloc.h"
 
 /* Abbreviation for cleaner code. */
-#define VA_NEXT(var, type)      ((var) = (type) va_arg(args, type))
+#define VA_NEXT(var, type) ((var) = (type) va_arg(args, type))
 
-/* ANSI C requires at least one named parameter. */
+
+/*
+ * Concatenate all of the arguments into a newly allocated string.  ANSI C
+ * requires at least one named parameter, but it's not treated any different
+ * than the rest.
+ */
 char *
 concat(const char *first, ...)
 {
@@ -50,10 +64,12 @@
     va_end(args);
     length++;
 
-    /* Create the string.  Doing the copy ourselves avoids useless string
-       traversals of result, if using strcat, or string, if using strlen to
-       increment a pointer into result, at the cost of losing the native
-       optimization of strcat if any. */
+    /*
+     * Create the string.  Doing the copy ourselves avoids useless string
+     * traversals of result, if using strcat, or string, if using strlen to
+     * increment a pointer into result, at the cost of losing the native
+     * optimization of strcat if any.
+     */
     result = xmalloc(length);
     p = result;
     va_start(args, first);
@@ -67,6 +83,10 @@
 }
 
 
+/*
+ * Concatenate name with base, unless name begins with / or ./.  Return the
+ * new string in newly allocated memory.
+ */
 char *
 concatpath(const char *base, const char *name)
 {

Modified: nnrpd/Makefile
===================================================================
--- nnrpd/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ nnrpd/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -79,9 +79,9 @@
   ../include/inn/messages.h ../include/inn/wire.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \
   ../include/inn/history.h ../include/inn/storage.h tls.h cache.h
 auth-ext.o: auth-ext.c ../include/config.h ../include/inn/defines.h \
@@ -93,9 +93,10 @@
   ../include/inn/messages.h ../include/inn/vector.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h ../include/inn/timer.h
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/timer.h
 cache.o: cache.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -103,7 +104,7 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/tst.h ../include/inn/list.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/storage.h ../include/inn/options.h cache.h
 commands.o: commands.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
@@ -113,11 +114,12 @@
   ../include/portable/stdbool.h nnrpd.h ../include/portable/macros.h \
   ../include/portable/socket.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/qio.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
-  ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \
-  ../include/inn/fdflag.h ../include/inn/portable-socket.h \
-  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
+  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/vector.h ../include/inn/timer.h ../include/inn/fdflag.h \
+  ../include/inn/portable-socket.h ../include/inn/ov.h \
+  ../include/inn/history.h ../include/inn/storage.h \
   ../include/inn/innconf.h ../include/inn/messages.h \
   ../include/inn/version.h tls.h
 group.o: group.c ../include/config.h ../include/inn/defines.h \
@@ -128,9 +130,9 @@
   ../include/portable/stdbool.h ../include/inn/innconf.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \
   ../include/inn/history.h ../include/inn/storage.h
 line.o: line.c ../include/config.h ../include/inn/defines.h \
@@ -141,9 +143,9 @@
   ../include/portable/stdbool.h ../include/inn/messages.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h tls.h
 list.o: list.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
@@ -153,10 +155,11 @@
   ../include/portable/stdbool.h nnrpd.h ../include/portable/macros.h \
   ../include/portable/socket.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/qio.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
-  ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \
-  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
+  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \
+  ../include/inn/history.h ../include/inn/storage.h \
   ../include/inn/innconf.h ../include/inn/messages.h
 misc.o: misc.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
@@ -166,9 +169,9 @@
   ../include/portable/stdbool.h ../include/inn/innconf.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h tls.h ../include/inn/ov.h \
   ../include/inn/history.h ../include/inn/storage.h
 newnews.o: newnews.c ../include/config.h ../include/inn/defines.h \
@@ -180,9 +183,9 @@
   ../include/inn/messages.h ../include/inn/wire.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \
   ../include/inn/history.h ../include/inn/storage.h cache.h
 nnrpd.o: nnrpd.c ../include/config.h ../include/inn/defines.h \
@@ -194,14 +197,15 @@
   ../include/portable/setproctitle.h ../include/portable/macros.h \
   ../include/portable/socket.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/messages.h ../include/inn/network.h \
-  ../include/inn/portable-socket.h ../include/inn/network-innbind.h \
-  ../include/inn/newsuser.h ../include/inn/ov.h ../include/inn/history.h \
-  ../include/inn/storage.h ../include/inn/options.h \
-  ../include/inn/version.h nnrpd.h ../include/inn/qio.h \
-  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
-  ../include/inn/vector.h ../include/inn/timer.h tls.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/messages.h \
+  ../include/inn/network.h ../include/inn/portable-socket.h \
+  ../include/inn/network-innbind.h ../include/inn/newsuser.h \
+  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
+  ../include/inn/options.h ../include/inn/version.h nnrpd.h \
+  ../include/inn/qio.h ../include/inn/nntp.h ../include/inn/paths.h \
+  ../include/inn/storage.h ../include/inn/vector.h ../include/inn/timer.h \
+  tls.h
 perl.o: perl.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -210,9 +214,9 @@
   ../include/portable/stdbool.h ../include/inn/innconf.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h post.h \
   ../include/ppport.h ../include/innperl.h
 perm.o: perm.c ../include/config.h ../include/inn/defines.h \
@@ -226,9 +230,10 @@
   ../include/inn/portable-getnameinfo.h ../include/inn/innconf.h \
   ../include/innperl.h nnrpd.h ../include/portable/macros.h \
   ../include/portable/socket.h ../include/inn/qio.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
-  ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
+  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/vector.h ../include/inn/timer.h
 post.o: post.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -237,9 +242,9 @@
   ../include/portable/stdbool.h ../include/inn/innconf.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \
   ../include/inn/history.h ../include/inn/storage.h post.h
 python.o: python.c ../include/config.h ../include/inn/defines.h \
@@ -250,9 +255,9 @@
   ../include/portable/stdbool.h ../include/inn/innconf.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h ../include/inn/hashtab.h
 sasl.o: sasl.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
@@ -262,9 +267,9 @@
   ../include/portable/stdbool.h ../include/inn/messages.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \
   ../include/inn/history.h ../include/inn/storage.h
 tls.o: tls.c ../include/config.h ../include/inn/defines.h \
@@ -275,10 +280,11 @@
   ../include/portable/stdbool.h nnrpd.h ../include/portable/macros.h \
   ../include/portable/socket.h ../include/portable/getaddrinfo.h \
   ../include/portable/getnameinfo.h ../include/inn/qio.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \
-  ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \
-  ../include/inn/innconf.h tls.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
+  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/vector.h ../include/inn/timer.h ../include/inn/innconf.h \
+  tls.h
 track.o: track.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -287,9 +293,9 @@
   ../include/portable/stdbool.h ../include/inn/innconf.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h
 zlib.o: zlib.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
@@ -299,7 +305,7 @@
   ../include/portable/stdbool.h ../include/inn/messages.h nnrpd.h \
   ../include/portable/macros.h ../include/portable/socket.h \
   ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \
-  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/nntp.h ../include/inn/paths.h \
-  ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/nntp.h \
+  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
   ../include/inn/vector.h ../include/inn/timer.h

Modified: storage/Makefile
===================================================================
--- storage/Makefile	2016-10-18 19:50:56 UTC (rev 10086)
+++ storage/Makefile	2016-10-18 20:19:56 UTC (rev 10087)
@@ -110,10 +110,10 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
-  ../include/inn/options.h ovinterface.h ../include/inn/storage.h \
-  ../include/inn/paths.h ../include/inn/vector.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/ov.h ../include/inn/history.h \
+  ../include/inn/storage.h ../include/inn/options.h ovinterface.h \
+  ../include/inn/storage.h ../include/inn/paths.h ../include/inn/vector.h
 interface.o: interface.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -123,8 +123,8 @@
   ../include/portable/macros.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/wire.h interface.h \
   ../include/inn/storage.h ../include/inn/options.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  methods.h ../include/inn/paths.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h methods.h ../include/inn/paths.h
 methods.o: methods.c interface.h ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -139,10 +139,10 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/wire.h ../include/inn/vector.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
-  ../include/inn/options.h ovinterface.h ../include/inn/storage.h \
-  ovmethods.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/ov.h ../include/inn/history.h \
+  ../include/inn/storage.h ../include/inn/options.h ovinterface.h \
+  ../include/inn/storage.h ovmethods.h
 overdata.o: overdata.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -150,10 +150,10 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/buffer.h \
   ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/wire.h \
-  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ovinterface.h ../include/inn/history.h \
-  ../include/inn/ov.h ../include/inn/storage.h ../include/inn/options.h \
-  ../include/inn/storage.h
+  ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ovinterface.h \
+  ../include/inn/history.h ../include/inn/ov.h ../include/inn/storage.h \
+  ../include/inn/options.h ../include/inn/storage.h
 overview.o: overview.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -163,9 +163,9 @@
   ../include/inn/innconf.h ../include/inn/messages.h \
   ../include/inn/overview.h ../include/inn/storage.h \
   ../include/inn/options.h ../include/inn/wire.h ../include/inn/vector.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
-  ovinterface.h ovmethods.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/ov.h ../include/inn/history.h \
+  ../include/inn/storage.h ovinterface.h ovmethods.h
 ovmethods.o: ovmethods.c ovinterface.h ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -180,10 +180,10 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/portable/mmap.h \
   ../include/inn/innconf.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
-  ../include/inn/options.h ../include/inn/paths.h ovinterface.h \
-  ../include/inn/storage.h ../include/inn/fdflag.h \
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/ov.h ../include/inn/history.h \
+  ../include/inn/storage.h ../include/inn/options.h ../include/inn/paths.h \
+  ovinterface.h ../include/inn/storage.h ../include/inn/fdflag.h \
   ../include/inn/portable-socket.h ../include/inn/portable-getaddrinfo.h \
   ../include/inn/portable-getnameinfo.h buffindexed/shmem.h \
   buffindexed/buffindexed.h
@@ -193,8 +193,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  buffindexed/shmem.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h buffindexed/shmem.h
 cnfs/cnfs.o: cnfs/cnfs.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -206,9 +206,9 @@
   ../include/inn/portable-getnameinfo.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/mmap.h ../include/inn/wire.h \
   interface.h ../include/inn/storage.h ../include/inn/options.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  methods.h interface.h ../include/inn/paths.h cnfs/cnfs.h \
-  cnfs/cnfs-private.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h methods.h interface.h ../include/inn/paths.h \
+  cnfs/cnfs.h cnfs/cnfs-private.h
 ovdb/ovdb.o: ovdb/ovdb.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -219,9 +219,10 @@
   ../include/portable/getnameinfo.h ../include/conffile.h \
   ../include/portable/macros.h ../include/inn/fdflag.h \
   ../include/inn/portable-socket.h ../include/inn/innconf.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/messages.h ../include/inn/newsuser.h \
-  ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/messages.h \
+  ../include/inn/newsuser.h ../include/inn/paths.h \
+  ../include/inn/storage.h ../include/inn/options.h \
   ../include/portable/socket-unix.h ../include/inn/ov.h \
   ../include/inn/history.h ../include/inn/storage.h ovinterface.h \
   ovdb/ovdb.h ovdb/ovdb-private.h
@@ -231,8 +232,8 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/messages.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  timecaf/caf.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h timecaf/caf.h
 timecaf/timecaf.o: timecaf/timecaf.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -243,9 +244,9 @@
   ../include/inn/portable-getaddrinfo.h \
   ../include/inn/portable-getnameinfo.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/wire.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h methods.h interface.h \
-  ../include/inn/storage.h ../include/inn/options.h timecaf/timecaf.h \
-  interface.h ../include/inn/paths.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  methods.h interface.h ../include/inn/storage.h ../include/inn/options.h \
+  timecaf/timecaf.h interface.h ../include/inn/paths.h
 timehash/timehash.o: timehash/timehash.c ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -253,9 +254,10 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/portable/mmap.h \
   ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/wire.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  methods.h interface.h ../include/inn/storage.h ../include/inn/options.h \
-  ../include/inn/paths.h timehash/timehash.h interface.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h methods.h interface.h ../include/inn/storage.h \
+  ../include/inn/options.h ../include/inn/paths.h timehash/timehash.h \
+  interface.h
 tradindexed/tdx-cache.o: tradindexed/tdx-cache.c ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -263,7 +265,7 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/hashtab.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
   ../include/inn/storage.h ../include/inn/options.h \
   tradindexed/tdx-private.h
 tradindexed/tdx-data.o: tradindexed/tdx-data.c ../include/config.h \
@@ -276,10 +278,10 @@
   ../include/inn/portable-getaddrinfo.h \
   ../include/inn/portable-getnameinfo.h ../include/inn/history.h \
   ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/mmap.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/ov.h ../include/inn/storage.h ../include/inn/options.h \
-  ovinterface.h ../include/inn/storage.h tradindexed/tdx-private.h \
-  tradindexed/tdx-structure.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/ov.h ../include/inn/storage.h \
+  ../include/inn/options.h ovinterface.h ../include/inn/storage.h \
+  tradindexed/tdx-private.h tradindexed/tdx-structure.h
 tradindexed/tdx-group.o: tradindexed/tdx-group.c ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -291,9 +293,10 @@
   ../include/inn/portable-getnameinfo.h ../include/inn/hashtab.h \
   ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/mmap.h \
   ../include/inn/qio.h ../include/inn/vector.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h \
-  tradindexed/tdx-private.h ../include/inn/storage.h \
-  ../include/inn/options.h tradindexed/tdx-structure.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/paths.h tradindexed/tdx-private.h \
+  ../include/inn/storage.h ../include/inn/options.h \
+  tradindexed/tdx-structure.h
 tradindexed/tradindexed.o: tradindexed/tradindexed.c ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -301,8 +304,8 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/innconf.h \
   ../include/inn/messages.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/ov.h \
-  ../include/inn/history.h ../include/inn/storage.h \
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  ../include/inn/ov.h ../include/inn/history.h ../include/inn/storage.h \
   ../include/inn/options.h ../include/inn/storage.h \
   tradindexed/tdx-private.h tradindexed/tdx-structure.h \
   tradindexed/tradindexed.h
@@ -313,10 +316,10 @@
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/portable/mmap.h \
   ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/qio.h \
-  ../include/inn/wire.h ../include/inn/libinn.h ../include/inn/xmalloc.h \
-  ../include/inn/xwrite.h ../include/inn/paths.h methods.h interface.h \
-  ../include/inn/storage.h ../include/inn/options.h tradspool/tradspool.h \
-  interface.h
+  ../include/inn/wire.h ../include/inn/libinn.h ../include/inn/concat.h \
+  ../include/inn/xmalloc.h ../include/inn/xwrite.h ../include/inn/paths.h \
+  methods.h interface.h ../include/inn/storage.h ../include/inn/options.h \
+  tradspool/tradspool.h interface.h
 trash/trash.o: trash/trash.c ../include/config.h ../include/inn/defines.h \
   ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -323,9 +326,9 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/libinn.h \
-  ../include/inn/xmalloc.h ../include/inn/xwrite.h methods.h interface.h \
-  ../include/inn/storage.h ../include/inn/options.h trash/trash.h \
-  interface.h
+  ../include/inn/concat.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
+  methods.h interface.h ../include/inn/storage.h ../include/inn/options.h \
+  trash/trash.h interface.h
 tradindexed/tdx-util.o: tradindexed/tdx-util.c ../include/config.h \
   ../include/inn/defines.h ../include/inn/system.h ../include/inn/macros.h \
   ../include/inn/portable-macros.h ../include/inn/portable-stdbool.h \
@@ -332,10 +335,10 @@
   ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \
   ../include/config.h ../include/inn/macros.h \
   ../include/portable/stdbool.h ../include/inn/buffer.h \
-  ../include/inn/libinn.h ../include/inn/xmalloc.h ../include/inn/xwrite.h \
-  ../include/inn/history.h ../include/inn/innconf.h \
-  ../include/inn/messages.h ../include/inn/newsuser.h ../include/inn/ov.h \
-  ../include/inn/storage.h ../include/inn/options.h ../include/inn/paths.h \
-  ../include/inn/vector.h ../include/inn/wire.h ovinterface.h \
-  ../include/inn/storage.h tradindexed/tdx-private.h \
-  tradindexed/tdx-structure.h
+  ../include/inn/libinn.h ../include/inn/concat.h ../include/inn/xmalloc.h \
+  ../include/inn/xwrite.h ../include/inn/history.h \
+  ../include/inn/innconf.h ../include/inn/messages.h \
+  ../include/inn/newsuser.h ../include/inn/ov.h ../include/inn/storage.h \
+  ../include/inn/options.h ../include/inn/paths.h ../include/inn/vector.h \
+  ../include/inn/wire.h ovinterface.h ../include/inn/storage.h \
+  tradindexed/tdx-private.h tradindexed/tdx-structure.h



More information about the inn-committers mailing list