gsrc-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gsrc-commit] trunk r9620: move hurd to own dir etc


From: Carl Hansen
Subject: [Gsrc-commit] trunk r9620: move hurd to own dir etc
Date: Wed, 25 Oct 2023 02:58:14 -0400 (EDT)
User-agent: Bazaar (2.7.0dev1)

------------------------------------------------------------
revno: 9620
revision-id: carlhansen@gnu.org-20231025065808-e0lxs9f1ygo1r9vh
parent: carlhansen@gnu.org-20231025064415-fptuedu7000yzfqy
committer: carlhansen@gnu.org
branch nick: trunk
timestamp: Tue 2023-10-24 23:58:08 -0700
message:
  move hurd to own dir etc
removed:
  pkg/gnu/gnumach/               gnumach-20160617014725-uokjfnggs70iry9h-143
  pkg/gnu/gnumach/Makefile       makefile-20160617014725-uokjfnggs70iry9h-833
  pkg/gnu/gnumach/config.mk      config.mk-20160617015823-33qre826esft0xte-1
  pkg/gnu/gnumach/gpg-keyring    gpgkeyring-20160617014725-uokjfnggs70iry9h-834
  pkg/gnu/gnumach/sha256sums     sha256sums-20160617014725-uokjfnggs70iry9h-836
  pkg/gnu/hurd/                  hurd-20160617014725-uokjfnggs70iry9h-204
  pkg/gnu/hurd/Makefile          makefile-20160617014725-uokjfnggs70iry9h-1036
  pkg/gnu/hurd/config.mk         config.mk-20160617020252-49l28bt9hhiipve7-1
  pkg/gnu/hurd/gpg-keyring       gpgkeyring-20160617014725-uokjfnggs70iry9h-1040
  pkg/gnu/hurd/sha256sums        sha256sums-20160617014725-uokjfnggs70iry9h-1041
  pkg/gnu/metahtml/files/        files-20160617014725-uokjfnggs70iry9h-1375
  pkg/gnu/metahtml/files/metahtml-5.091-destdir-install.diff 
metahtml5.091destdir-20160617014725-uokjfnggs70iry9h-2209
  pkg/gnu/metahtml/files/metahtml-5.091-dont-build-docs.diff 
metahtml5.091dontbui-20160617014725-uokjfnggs70iry9h-2210
  pkg/gnu/metahtml/files/metahtml-5.091-dont-build-example.diff 
metahtml5.091dontbui-20160617014725-uokjfnggs70iry9h-2211
  pkg/gnu/metahtml/files/metahtml-5.091-escape-newlines.diff 
metahtml5.091escapen-20160617014725-uokjfnggs70iry9h-2212
  pkg/gnu/metahtml/files/metahtml-5.091-fix-ldflags-typo.diff 
metahtml5.091fixldfl-20160617014725-uokjfnggs70iry9h-2213
  pkg/gnu/metahtml/files/metahtml-5.091-force-sys-readline.diff 
metahtml5.091forcesy-20160617014725-uokjfnggs70iry9h-2214
  pkg/gnu/metahtml/files/metahtml-5.091-gifq_c-add-errno_h.diff 
metahtml5.091gifq_ca-20160617014725-uokjfnggs70iry9h-2215
  pkg/gnu/metahtml/files/metahtml-5.091-make-gd_o-w-fpic.diff 
metahtml5.091makegd_-20160617014725-uokjfnggs70iry9h-2216
  pkg/gnu/mig/                   mig-20160617014725-uokjfnggs70iry9h-260
  pkg/gnu/mig/Makefile           makefile-20160617014725-uokjfnggs70iry9h-1383
  pkg/gnu/mig/config.mk          config.mk-20160617020712-d7ryseoqrnjd65j5-1
  pkg/gnu/mig/gpg-keyring        gpgkeyring-20160617014725-uokjfnggs70iry9h-1387
  pkg/gnu/mig/gpg-keyring.old    
gpgkeyring.old-20160617014725-uokjfnggs70iry9h-1388
  pkg/gnu/mig/sha256sums         sha256sums-20160617014725-uokjfnggs70iry9h-1389
modified:
  pkg/gnu/gprolog/Makefile       makefile-20160617014725-uokjfnggs70iry9h-926
  pkg/gnu/guile-gnome-platform/Makefile 
makefile-20160617014725-uokjfnggs70iry9h-981
  pkg/gnu/metahtml/Makefile      makefile-20160617014725-uokjfnggs70iry9h-1371
=== removed directory 'pkg/gnu/gnumach'
=== removed file 'pkg/gnu/gnumach/Makefile'
--- a/pkg/gnu/gnumach/Makefile  2023-10-02 07:44:09 +0000
+++ b/pkg/gnu/gnumach/Makefile  1970-01-01 00:00:00 +0000
@@ -1,105 +0,0 @@
-# Copyright © 2013, 2014, 2015, 2016 Brandon Invergo <brandon@invergo.net>
-#
-# This file is part of GSRC.
-#
-# GSRC is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# GSRC is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-# License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GSRC.  If not, see <http://www.gnu.org/licenses/>.
-
-NAME = Mach
-GARNAME = gnumach
-GARVERSION = 1.8
-HOME_URL = http://www.gnu.org/software/hurd/
-DESCRIPTION = Microkernel of the GNU system
-define BLURB
-GNU Mach is the microkernel around which GNU Hurd is based.  It
-provides an Inter Process Communication mechanism that the Hurd uses
-to define interfaces for implementing standard kernel services in a
-distributed, multi-server manner.
-endef
-
-######################################################################
-
-MASTER_SITES = $(MASTER_GNU)
-MASTER_SUBDIR = $(GARNAME)/
-DISTFILES = $(DISTNAME).tar.bz2
-SIGFILES = $(DISTNAME).tar.bz2.sig
-
-BUILDDEPS =
-LIBDEPS =
-
-######################################################################
-
-ifneq ($(GARARCH),i386)
-include ../../../gar/gar.lib/wrong_arch.mk
-else
-include ../../../gar/gar.lib/autotools.mk
-include ../../../gar/gar.lib/info.mk
-endif
-include config.mk
-
-
-######################################################################
-######################################################################
-######################################################################
-######################################################################
-######################################################################
-#https://git.savannah.gnu.org/git/.....git
-MASTER_SITES =  https://git.savannah.gnu.org
-MASTER_SUBDIR =  git
-
-GIT_PATH = $(MASTER_SITES)/$(MASTER_SUBDIR)/$(GARNAME).git
-NOCHECKSUM = $(DISTFILES)
-SIGFILES =
-
-GIT_REVISION = master  
-
-CONFIGURE_SCRIPTS = 
-BUILD_SCRIPTS = my
-INSTALL_SCRIPTS = my
-
-WORKSRC = $(DOWNLOADDIRGIT)/$(GARNAME)
-WORKOBJ = $(WORKSRC)
- 
-######################################################################
-
-include ../../../gar/gar.mk
-include config.mk
-
-.PHONY: manpages check gitpull fetch-git build-my pre-install  install-my
-
-fetch: fetch-git
-
-build-my:   fetch-git   
-       @echo             recommended: make check
-       $(MAKECOOKIE)
-
-manpages: build-my
-       $(MAKE) -C $(WORKSRC)  manpages
-       $(MAKECOOKIE)
-
-check:    build-my
-       $(MAKE) -C $(WORKSRC)  check
-
-
-pre-install:  fetch-git
-       mkdir -p $(packagesdir)/$(DISTNAME)
-       @echo prepare-install
-       $(MAKE) prepare-install
-       @echo INSTALL_BIN $(WORKSRC)/config/config.guess  and config.sub
-       $(INSTALL_BIN) $(WORKSRC)/config.guess
-       $(INSTALL_BIN) $(WORKSRC)/config.sub
-       $(INSTALL_MAN) $(WORKSRC)/doc/config.guess.1
-       $(INSTALL_MAN) $(WORKSRC)/doc/config.sub.1
-       $(MAKECOOKIE)
-
-

=== removed file 'pkg/gnu/gnumach/config.mk'
--- a/pkg/gnu/gnumach/config.mk 2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/gnumach/config.mk 1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-## Configuration options for mach ##
-
-CONFIGURE_OPTS ?= 
-BUILD_OPTS ?=

=== removed file 'pkg/gnu/gnumach/gpg-keyring'
Binary files a/pkg/gnu/gnumach/gpg-keyring      2016-06-17 19:08:15 +0000 and 
b/pkg/gnu/gnumach/gpg-keyring     1970-01-01 00:00:00 +0000 differ
=== removed file 'pkg/gnu/gnumach/sha256sums'
--- a/pkg/gnu/gnumach/sha256sums        2016-12-19 04:56:05 +0000
+++ b/pkg/gnu/gnumach/sha256sums        1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-cda2efc325ebc936e25aafda12532930374c30a01589974ae8c9fa679e373ba0  
download/gnumach-1.8.tar.bz2
-0f546d533677a1c4401ee21cc481c45863f5eb4c6bf7036fbf6169eac1ebe30a  
download/gnumach-1.8.tar.bz2.sig

=== modified file 'pkg/gnu/gprolog/Makefile'
--- a/pkg/gnu/gprolog/Makefile  2022-11-21 05:20:51 +0000
+++ b/pkg/gnu/gprolog/Makefile  2023-10-25 06:58:08 +0000
@@ -48,7 +48,7 @@
 
 ######################################################################
 
-include ../../../gar/gar.lib/auto.mk
+include ../../../gar/gar.lib/autotools.mk
 #include ../../../gar/gar.lib/info.mk
 include ../../../gar/varb.mk
 include config.mk
@@ -57,29 +57,30 @@
 
 # --with-install-dir=$(packagedir) 
 # --with-install-dir=$(packagedir) 
-     #--with-doc-dir=share/doc/$(GARNAME)   
+# --with-doc-dir=share/doc/$(GARNAME)   
 
 #CONFIGURE_ARGS = --prefix=$(packagepredix) --exec-prefix=$(packagepredix)
 # --with-install-dir=$(prefix)/$(packages) 
 #    --with-html-dir=share/doc/html \
 # --with-examples-dir=share/doc/examples
 
-       # @echo $(packageexamples) 
-       #@echo $(packagedocs) 
-#packageexamples := $(packagedocs)/examples
+# @echo $(packageexamples) 
+# @echo $(packagedocs) 
+# packageexamples := $(packagedocs)/examples
 
 # HINT: need latexmk for reproducing pdf docs
 # dnf install latexmk
 #
+.PHONY: pre-install
 
 #pre-configure:  
 #      mkdir -p $(packagedir)
 
 pre-install: 
+       @echo pre-installing
        $(INSTALL_DOCS) $(WORKSRC)/../doc/gprolog.html
        $(INSTALL_DOCS) $(WORKSRC)/../doc/gprolog.pdf
        $(INSTALL_DOCS) $(WORKSRC)/../doc/gprolog.chm
-       $(MAKECOOKIE)
 
 check:
        cd $(WORKSRC)   &&  $(MAKE) check

=== modified file 'pkg/gnu/guile-gnome-platform/Makefile'
--- a/pkg/gnu/guile-gnome-platform/Makefile     2017-06-05 06:18:15 +0000
+++ b/pkg/gnu/guile-gnome-platform/Makefile     2023-10-25 06:58:08 +0000
@@ -21,7 +21,6 @@
 HOME_URL = http://www.gnu.org/software/guile-gnome/
 DESCRIPTION = A Guile interface to GNOME development libraries
 define BLURB
-
 endef
 
 ######################################################################
@@ -44,6 +43,7 @@
 
 ######################################################################
 
-include ../../../gar/gar.lib/auto.mk
+include ../../../gar/gar.lib/autotools.mk
 include ../../../gar/gar.lib/info.mk
 include config.mk
+

=== removed directory 'pkg/gnu/hurd'
=== removed file 'pkg/gnu/hurd/Makefile'
--- a/pkg/gnu/hurd/Makefile     2017-03-19 07:44:25 +0000
+++ b/pkg/gnu/hurd/Makefile     1970-01-01 00:00:00 +0000
@@ -1,51 +0,0 @@
-# Copyright ©  2015  Carl Hansen
-#
-# This file is part of GSRC.
-#
-# GSRC is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# GSRC is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-# License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GSRC.  If not, see <http://www.gnu.org/licenses/>.
-
-NAME = hurd
-GARNAME = hurd
-GARVERSION = 0.9
-HOME_URL = http://www.gnu.org/software/hurd/
-DESCRIPTION = The kernel servers for the GNU operating system
-define BLURB
-The Hurd is the kernel for the GNU system, a replacement and
-augmentation of standard Unix kernels.  It is a collection of
-protocols for system interaction (file systems, networks,
-authentication), and servers implementing them.  Subprojects include Mach,
-the microkernel on which the Hurd is based, which provides a basic
-inter-process communication mechanism, and MIG, an interface generator
-for Mach.
-endef
-
-######################################################################
-
-MASTER_SITES = $(MASTER_GNU)
-MASTER_SUBDIR = $(GARNAME)/
-DISTFILES = $(DISTNAME).tar.bz2
-SIGFILES = $(DISTNAME).tar.bz2.sig
-
-BUILDDEPS =
-LIBDEPS =
-
-######################################################################
-
-ifneq ($(GARARCH),i386)
-include ../../../gar/gar.lib/wrong_arch.mk
-else
-include ../../../gar/gar.lib/auto.mk
-include ../../../gar/gar.lib/info.mk
-endif
-include config.mk

=== removed file 'pkg/gnu/hurd/config.mk'
--- a/pkg/gnu/hurd/config.mk    2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/hurd/config.mk    1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-## Configuration options for hurd ##
-
-CONFIGURE_OPTS ?= 
-BUILD_OPTS ?=

=== removed file 'pkg/gnu/hurd/gpg-keyring'
Binary files a/pkg/gnu/hurd/gpg-keyring 2016-06-17 19:08:15 +0000 and 
b/pkg/gnu/hurd/gpg-keyring        1970-01-01 00:00:00 +0000 differ
=== removed file 'pkg/gnu/hurd/sha256sums'
--- a/pkg/gnu/hurd/sha256sums   2016-12-19 04:58:31 +0000
+++ b/pkg/gnu/hurd/sha256sums   1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-d5eb814d1e4ceb11f6618e56352a6e72f85aa50da8e9639d8813e69d70570d94  
download/hurd-0.9.tar.bz2
-10432a7665c63ed148701a0789214e69be4d95639603cda2523c1f26ce2b5b53  
download/hurd-0.9.tar.bz2.sig

=== modified file 'pkg/gnu/metahtml/Makefile'
--- a/pkg/gnu/metahtml/Makefile 2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/metahtml/Makefile 2023-10-25 06:58:08 +0000
@@ -33,13 +33,14 @@
 MASTER_SUBDIR = $(GARNAME)/
 DISTFILES = $(DISTNAME).tar.gz
 SIGFILES = 
-PATCHFILES = $(DISTNAME)-escape-newlines.diff \
-             $(DISTNAME)-force-sys-readline.diff \
-             $(DISTNAME)-gifq_c-add-errno_h.diff \
-             $(DISTNAME)-fix-ldflags-typo.diff \
-             $(DISTNAME)-make-gd_o-w-fpic.diff \
-             $(DISTNAME)-dont-build-docs.diff \
-             $(DISTNAME)-destdir-install.diff
+
+##PATCHFILES = $(DISTNAME)-escape-newlines.diff \
+#             $(DISTNAME)-force-sys-readline.diff \
+#             $(DISTNAME)-gifq_c-add-errno_h.diff \
+#             $(DISTNAME)-fix-ldflags-typo.diff \
+#             $(DISTNAME)-make-gd_o-w-fpic.diff \
+#             $(DISTNAME)-dont-build-docs.diff \
+#             $(DISTNAME)-destdir-install.diff
 BUILDDEPS = 
 LIBDEPS = gdbm
 
@@ -47,13 +48,14 @@
 
 ######################################################################
 
-include ../../../gar/gar.lib/auto.mk
+include ../../../gar/gar.lib/autotools.mk
 include config.mk
 
 CONFIGURE_ARGS += WEBBASEDIR=$(packageprefix)/www/
 
-pre-build:
-       sed -i -e 's|LIBS=-L./|LIBS=-L$(prefix)/lib -L/usr/lib -L./|' 
$(WORKSRC)/libgd/Makefile
-       sed -i -e 's|bindir=/www/bin|bindir=$(packageprefix)/bin|' 
$(WORKSRC)/libgd/Makefile
-       sed -i -e 's|DASH_SHARED = @DASH_SHARED@|DASH_SHARED = -shared|' 
$(WORKSRC)/modules/Makefile.in
-       sed -i -e 's|GCC_FPIC = @GCC_FPIC@|GCC_FPIC = -fPIC|' 
$(WORKSRC)/modules/Makefile.in
+#pre-build:
+#      sed -i -e 's|LIBS=-L./|LIBS=-L$(prefix)/lib -L/usr/lib -L./|' 
$(WORKSRC)/libgd/Makefile
+#      sed -i -e 's|bindir=/www/bin|bindir=$(packageprefix)/bin|' 
$(WORKSRC)/libgd/Makefile
+#      sed -i -e 's|DASH_SHARED = @DASH_SHARED@|DASH_SHARED = -shared|' 
$(WORKSRC)/modules/Makefile.in
+#      sed -i -e 's|GCC_FPIC = @GCC_FPIC@|GCC_FPIC = -fPIC|' 
$(WORKSRC)/modules/Makefile.in
+#

=== removed directory 'pkg/gnu/metahtml/files'
=== removed file 'pkg/gnu/metahtml/files/metahtml-5.091-destdir-install.diff'
--- a/pkg/gnu/metahtml/files/metahtml-5.091-destdir-install.diff        
2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/metahtml/files/metahtml-5.091-destdir-install.diff        
1970-01-01 00:00:00 +0000
@@ -1,47 +0,0 @@
-diff -x config.log -x config.status -ru work/metahtml-5.091/Makefile.in 
work/metahtml-5.091/Makefile.in
---- work/metahtml-5.091/Makefile.in    1999-06-19 03:00:25.000000000 +0200
-+++ work/metahtml-5.091/Makefile.in    2013-04-03 00:43:09.980940440 +0200
-@@ -131,7 +131,7 @@
-       DEBUG_FLAGS=-g OPTIMIZE_FLAGS=
- 
- install++: FORCE
--      $(MAKE) CC=g++ bindir=$(prefix)/bin++ libdir=$(prefix)/lib++ install
-+      $(MAKE) CC=g++ bindir=$(DESTDIR)$(prefix)/bin++ 
libdir=$(DESTDIR)$(prefix)/lib++ install
- 
- $(TARGETS): $(ALLMAKEFILES)
- 
-@@ -170,23 +170,23 @@
- install: $(TARGETS) install_force
- 
- install_force: FORCE
--      if [ ! -d $(bindir) ]; then mkdir $(bindir); fi
--      if [ ! -d $(libdir) ]; then mkdir $(libdir); fi
--      (cd mhc; $(MAKE) install bindir=$(bindir) libdir=$(libdir))
--      (cd engine; $(MAKE) install bindir=$(bindir) libdir=$(libdir))
--      (cd server; $(MAKE) install bindir=$(bindir) libdir=$(libdir))
--      (cd mdb; $(MAKE) install bindir=$(bindir) libdir=$(libdir))
--      (cd sessions; $(MAKE) install bindir=$(bindir) libdir=$(libdir))
--      (cd dbutils; $(MAKE) install bindir=$(bindir) libdir=$(libdir))
--      (cd utilities; $(MAKE) install bindir=$(bindir) libdir=$(libdir))
-+      if [ ! -d $(DESTDIR)$(bindir) ]; then mkdir $(DESTDIR)$(bindir); fi
-+      if [ ! -d $(DESTDIR)$(libdir) ]; then mkdir $(DESTDIR)$(libdir); fi
-+      (cd mhc; $(MAKE) install bindir=$(DESTDIR)$(bindir) 
libdir=$(DESTDIR)$(libdir))
-+      (cd engine; $(MAKE) install bindir=$(DESTDIR)$(bindir) 
libdir=$(DESTDIR)$(libdir))
-+      (cd server; $(MAKE) install bindir=$(DESTDIR)$(bindir) 
libdir=$(DESTDIR)$(libdir))
-+      (cd mdb; $(MAKE) install bindir=$(DESTDIR)$(bindir) 
libdir=$(DESTDIR)$(libdir))
-+      (cd sessions; $(MAKE) install bindir=$(DESTDIR)$(bindir) 
libdir=$(DESTDIR)$(libdir))
-+      (cd dbutils; $(MAKE) install bindir=$(DESTDIR)$(bindir) 
libdir=$(DESTDIR)$(libdir))
-+      (cd utilities; $(MAKE) install bindir=$(DESTDIR)$(bindir) 
libdir=$(DESTDIR)$(libdir))
-       if [ "$(MODULES_DIR)" ]; then \
-         (cd $(MODULES_DIR); \
--        $(MAKE) install bindir=$(bindir) libdir=$(libdir)); \
-+        $(MAKE) install bindir=$(DESTDIR)$(bindir) 
libdir=$(DESTDIR)$(libdir)); \
-       fi
-       @echo "To install the server or the engine, type \`./install-site'"
- 
- install-docs:
--      (cd doc; $(MAKE) install docdir=$(docdir))
-+      (cd doc; $(MAKE) install docdir=$(DESTDIR)$(docdir))
- 
- clean:  FORCE
-       for dir in $(SUBDIRS); do \

=== removed file 'pkg/gnu/metahtml/files/metahtml-5.091-dont-build-docs.diff'
--- a/pkg/gnu/metahtml/files/metahtml-5.091-dont-build-docs.diff        
2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/metahtml/files/metahtml-5.091-dont-build-docs.diff        
1970-01-01 00:00:00 +0000
@@ -1,21 +0,0 @@
-diff -x config.log -x config.status -ru work/metahtml-5.091/Makefile.in 
work/metahtml-5.091/Makefile.in
---- work/metahtml-5.091/Makefile.in    1999-06-19 03:00:25.000000000 +0200
-+++ work/metahtml-5.091/Makefile.in    2013-04-03 00:36:35.820918598 +0200
-@@ -89,14 +89,14 @@
- LIBSERVER     = libserver/libserver.a
- 
- SUBDIRS               = libutils libmhtml libserver engine mhc server mdb \
--                dbutils libgd $(MODULES_DIR) doc sessions utilities
-+                dbutils libgd $(MODULES_DIR) sessions utilities
- 
- SUBDIR_TARGETS  = engine mhc server mdb sessions dbutils utilities \
--                libgd $(MODULES_DIR) doc
-+                libgd $(MODULES_DIR)
- 
- TARGETS               = $(LIBUTILS) $(LIBMHTML) $(LIBSERVER) engine mhc \
-                 server mdb sessions dbutils utilities \
--                libgd $(MODULES_DIR) doc build-download
-+                libgd $(MODULES_DIR) build-download
- 
- ALLMAKEFILES = Makefile mhc/Makefile server/Makefile engine/Makefile \
-              mdb/Makefile mdb/readline/Makefile sessions/Makefile \

=== removed file 'pkg/gnu/metahtml/files/metahtml-5.091-dont-build-example.diff'
--- a/pkg/gnu/metahtml/files/metahtml-5.091-dont-build-example.diff     
2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/metahtml/files/metahtml-5.091-dont-build-example.diff     
1970-01-01 00:00:00 +0000
@@ -1,12 +0,0 @@
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/Makefile.in 
work/metahtml-5.091/modules/Makefile.in
---- work/metahtml-5.091/modules/Makefile.in    1999-04-09 04:43:32.000000000 
+0200
-+++ work/metahtml-5.091/modules/Makefile.in    2013-04-02 23:42:01.107403794 
+0200
-@@ -90,7 +90,7 @@
- CXXFLAGS      = $(CFLAGS)
- 
- DB_MODULES    = $(MODMYSQL) $(MODMSQL) $(MODPGSQL)
--MODULES               = example$(SHARED_EXT) directory$(SHARED_EXT) \
-+MODULES               = directory$(SHARED_EXT) \
-                 logs$(SHARED_EXT) parser$(SHARED_EXT) timer$(SHARED_EXT) \
-                 profiler$(SHARED_EXT) elsewhen$(SHARED_EXT) $(MODPERL_SO) \
-                 serverfuncs$(SHARED_EXT) csv$(SHARED_EXT) lisp$(SHARED_EXT) \

=== removed file 'pkg/gnu/metahtml/files/metahtml-5.091-escape-newlines.diff'
--- a/pkg/gnu/metahtml/files/metahtml-5.091-escape-newlines.diff        
2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/metahtml/files/metahtml-5.091-escape-newlines.diff        
1970-01-01 00:00:00 +0000
@@ -1,8046 +0,0 @@
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/arrayfuncs.c 
work/metahtml-5.091/libmhtml/arrayfuncs.c
---- work/metahtml-5.091/libmhtml/arrayfuncs.c  1999-06-15 05:53:51.000000000 
+0200
-+++ work/metahtml-5.091/libmhtml/arrayfuncs.c  2013-04-02 22:27:13.180488455 
+0200
-@@ -62,67 +62,67 @@
- 
- PACKAGE_INITIALIZER (initialize_array_functions)
- DEFINE_SECTION (ARRAYS, variables; arrays; multiple values, 
--"<meta-html> allows the use of <i>array</i> variables as well as single
--element variables.  In fact, all string variables in <meta-html> can be
--treated as array variables -- there is no special command for creating
-+"<meta-html> allows the use of <i>array</i> variables as well as single\
-+element variables.  In fact, all string variables in <meta-html> can be\
-+treated as array variables -- there is no special command for creating\
- such variables.",
- 
--"Array variable values are referenced by placing the array index directly
--after the variable name, enclosed in square brackets (<b>[</b> and <b>]</b>).
--Array references use a zero-base index, so that the first accessible element
--in the array is at index <b>0</b> and a reference to the 4th accessible
--element of the array <var foo> looks like:
--
--<example>
--   foo[3]
--</example>
--
--When an array reference is made without any containing index, the
--reference refers to the entire array.  So, to get the value of the
--entire array stored in <var foo>, you would write:
--
--<example>
--   <get-var foo[]>
--</example>
--
--In order to ease the writing of array references which rely on a
--variable index, a variable name seen as an array reference index is
--automatically looked up as if you had written <example code><get-var
--VAR></example>.  Finally, multiple values may be given in a <funref
--variables set-var> command by separating those values with newline
--characters.  The following sequence of commands illustrates the
--typical use of array variables.
--
--<complete-example>
--<set-var array[] =
--       \"value-zero
--        value-one
--        value-two
--        value-three\">
--    <set-var i=0>
--    <while <get-var array[i]>>
--      The value of array[<get-var i>] is `<get-var array[i]>'.<br>
--      <increment i>
--    </while>
--</complete-example>
-+"Array variable values are referenced by placing the array index directly\
-+after the variable name, enclosed in square brackets (<b>[</b> and <b>]</b>).\
-+Array references use a zero-base index, so that the first accessible element\
-+in the array is at index <b>0</b> and a reference to the 4th accessible\
-+element of the array <var foo> looks like:\
-+\
-+<example>\
-+   foo[3]\
-+</example>\
-+\
-+When an array reference is made without any containing index, the\
-+reference refers to the entire array.  So, to get the value of the\
-+entire array stored in <var foo>, you would write:\
-+\
-+<example>\
-+   <get-var foo[]>\
-+</example>\
-+\
-+In order to ease the writing of array references which rely on a\
-+variable index, a variable name seen as an array reference index is\
-+automatically looked up as if you had written <example code><get-var\
-+VAR></example>.  Finally, multiple values may be given in a <funref\
-+variables set-var> command by separating those values with newline\
-+characters.  The following sequence of commands illustrates the\
-+typical use of array variables.\
-+\
-+<complete-example>\
-+<set-var array[] =\
-+       \"value-zero\
-+        value-one\
-+        value-two\
-+        value-three\">\
-+    <set-var i=0>\
-+    <while <get-var array[i]>>\
-+      The value of array[<get-var i>] is `<get-var array[i]>'.<br>\
-+      <increment i>\
-+    </while>\
-+</complete-example>\
- ")
- 
- DEFUN (pf_array_size, arrayvar,
--"Returns the number of elements in the array referenced by the
--variable <var arrayvar>.
--
--Examples:
--
--<complete-example>
--<set-var array[]=\"this\">
--<array-size array>
--</complete-example>
--
--and,
--
--<complete-example>
--<array-shift 4 array>
--<array-size array>
-+"Returns the number of elements in the array referenced by the\
-+variable <var arrayvar>.\
-+\
-+Examples:\
-+\
-+<complete-example>\
-+<set-var array[]=\"this\">\
-+<array-size array>\
-+</complete-example>\
-+\
-+and,\
-+\
-+<complete-example>\
-+<array-shift 4 array>\
-+<array-size array>\
- </complete-example>")
- {
-   char *array_name = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -141,33 +141,33 @@
- }
- 
- DEFUN (pf_array_member, item arrayvar &key caseless=true compare=func,
--"Look up (and return) the index of <var item> in the contents of the
--array referenced by <var arrayvar>.
--
--If <var item> is not found, then <code>array-member</code> returns the
--empty string.
--
--If <var caseless> is non-empty, then the comparison is done without
--regard to character case.  Otherwise, character case is significant in
--the location of the item.
--
--If a function name is passed, as in <var compare=func>, it should be
--the name of a function which receives two required arguments -- the
--item that is to be looked for, and an element of the array that this
--item is to be compared against, and an optional keyword argument of
--\"caseless\".  If the function returns a non-empty string, then this
--item is considered a match.
--
--By default, string comparison is done on the elements.
--
--<complete-example>
--<set-var array[] =
--  <prog
--     this
--     another
--     multi word
--     thing>>
--<array-member \"multi word\" array>
-+"Look up (and return) the index of <var item> in the contents of the\
-+array referenced by <var arrayvar>.\
-+\
-+If <var item> is not found, then <code>array-member</code> returns the\
-+empty string.\
-+\
-+If <var caseless> is non-empty, then the comparison is done without\
-+regard to character case.  Otherwise, character case is significant in\
-+the location of the item.\
-+\
-+If a function name is passed, as in <var compare=func>, it should be\
-+the name of a function which receives two required arguments -- the\
-+item that is to be looked for, and an element of the array that this\
-+item is to be compared against, and an optional keyword argument of\
-+\"caseless\".  If the function returns a non-empty string, then this\
-+item is considered a match.\
-+\
-+By default, string comparison is done on the elements.\
-+\
-+<complete-example>\
-+<set-var array[] =\
-+  <prog\
-+     this\
-+     another\
-+     multi word\
-+     thing>>\
-+<array-member \"multi word\" array>\
- </complete-example>")
- {
-   char *item = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -245,17 +245,17 @@
- }
- 
- DEFUN (pf_array_append, item arrayvar,
--"Add <var item> as the last array element of the contents
--of <var arrayvar>.  This is especially useful in conjunction with
--<funref arrays foreach> as a <i>collector</i>:
--
--<example>
--<foreach name allnames>
--  <if <satifies-criteria <get-var name>>
--     <array-append <get-var name> useful-names>>
--</foreach>
--</example>
--
-+"Add <var item> as the last array element of the contents\
-+of <var arrayvar>.  This is especially useful in conjunction with\
-+<funref arrays foreach> as a <i>collector</i>:\
-+\
-+<example>\
-+<foreach name allnames>\
-+  <if <satifies-criteria <get-var name>>\
-+     <array-append <get-var name> useful-names>>\
-+</foreach>\
-+</example>\
-+\
- See also <funref arrays array-add-unique>.")
- {
-   char *item = mhtml_evaluate_string (get_positional_arg (vars, 0)); 
-@@ -274,13 +274,13 @@
- }
- 
- DEFUN (pf_array_add_unique, item arrayvar &key caseless=true,
--"Add <var item> as the last array element of the contents
--of <var arrayvar> if, and only if, <var item> is not already
--a member of that array.
--
--The comparison is a direct string-wise compare.  If <var CASELESS> is
--non-empty, then a caseless string compare is done.
--
-+"Add <var item> as the last array element of the contents\
-+of <var arrayvar> if, and only if, <var item> is not already\
-+a member of that array.\
-+\
-+The comparison is a direct string-wise compare.  If <var CASELESS> is\
-+non-empty, then a caseless string compare is done.\
-+\
- See also <funref arrays array-append>.")
- {
-   char *item = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -324,47 +324,47 @@
- }
- 
- DEFUN (pf_array_shift, amount arrayvar &key start,
--"Shift the elements of <var arrayvar> the indicated amount.
--
--If <var amount> is negative, the elements are shifted down
--(i.e. towards zero), with the lowest number elements being lost.
--
--If <var amount> is positive, the elements are shifted up, with
--no loss at all -- instead empty elements are used to fill the
--created space.
--
--If the keyword argument <var start> is present, it indicates the
--zero-based offset from which to start shifting.
--
--Given the array:
--<example>
--<set-var array[] =
--   <prog
--       0
--       1
--       2>>
--</example>
--
--<set-var array[] =
--   <prog
--       0
--       1
--       2>>
--
--then after executing <example code><array-shift 2 array></example>, 
--the array looks like:
--<example>
--   \"\"
--   \"\"
--   \"0\"
--   \"1\"
--   \"2\"
--</example>
--and, a subsequent execution of
--<example code><array-shift -3 array></example> leaves <var array>:
--<example>
--   \"1\"
--   \"2\"
-+"Shift the elements of <var arrayvar> the indicated amount.\
-+\
-+If <var amount> is negative, the elements are shifted down\
-+(i.e. towards zero), with the lowest number elements being lost.\
-+\
-+If <var amount> is positive, the elements are shifted up, with\
-+no loss at all -- instead empty elements are used to fill the\
-+created space.\
-+\
-+If the keyword argument <var start> is present, it indicates the\
-+zero-based offset from which to start shifting.\
-+\
-+Given the array:\
-+<example>\
-+<set-var array[] =\
-+   <prog\
-+       0\
-+       1\
-+       2>>\
-+</example>\
-+\
-+<set-var array[] =\
-+   <prog\
-+       0\
-+       1\
-+       2>>\
-+\
-+then after executing <example code><array-shift 2 array></example>, \
-+the array looks like:\
-+<example>\
-+   \"\"\
-+   \"\"\
-+   \"0\"\
-+   \"1\"\
-+   \"2\"\
-+</example>\
-+and, a subsequent execution of\
-+<example code><array-shift -3 array></example> leaves <var array>:\
-+<example>\
-+   \"1\"\
-+   \"2\"\
- </example>")
- {
-   char *amount_txt =  mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -443,12 +443,12 @@
- }
- 
- DEFUN (pf_array_reverse, arrayvar,
--"Directly modify the values of <var arrayvar> making the first element be
--the last, and the last be the first.
--<complete-example>
--<set-var array[]=\"0\n1\n2\n3\">
--<array-reverse array>
--<get-var-once array[]>
-+"Directly modify the values of <var arrayvar> making the first element be\
-+the last, and the last be the first.\
-+<complete-example>\
-+<set-var array[]=\"0\n1\n2\n3\">\
-+<array-reverse array>\
-+<get-var-once array[]>\
- </complete-example>")
- {
-   char *array_var = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -476,36 +476,36 @@
- 
- DEFMACRO (pf_foreach, elementvar arrayvar
-         &key start=x end=x step=x iter=var no-copy=true,
--"Perform <var body> with <var elementvar> bound to successive memebers
--of <var arrayvar>, starting with the element at <var start> (default
--0), and ending at <var end> (default <example code><array-size
--ARRAYVAR></example>), advancing by <var step> (default 1).
--
--The <code>foreach</code> command is the basic array looping device in
--<Meta-HTML>.  It is guaranteed to iterate over each element that you
--specify, whether that element is the empty string or not.
--
--If <var no-copy=true> is specified, the array is not copied before
--iteration, so that changes that you make to the array take place
--immediately, during the execution of the surrounding <tag foreach>.
--
--Starting with the simple array:
--<set-var array[]=\"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9\">
--<example>
--<set-var array[]=\"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9\">
--</example>
--
--we can print out the odd numbers of this array by using values for
--both <var start> and <var step>:
--
--<complete-example>
--<foreach x array start=1 step=2> <get-var x>, </foreach>
--</complete-example>
--
--or, we can produce a \"countdown\" with a negative value for <var step>:
--
--<complete-example>
--<foreach x array step=-1> <get-var x>, </foreach> BOOM!
-+"Perform <var body> with <var elementvar> bound to successive memebers\
-+of <var arrayvar>, starting with the element at <var start> (default\
-+0), and ending at <var end> (default <example code><array-size\
-+ARRAYVAR></example>), advancing by <var step> (default 1).\
-+\
-+The <code>foreach</code> command is the basic array looping device in\
-+<Meta-HTML>.  It is guaranteed to iterate over each element that you\
-+specify, whether that element is the empty string or not.\
-+\
-+If <var no-copy=true> is specified, the array is not copied before\
-+iteration, so that changes that you make to the array take place\
-+immediately, during the execution of the surrounding <tag foreach>.\
-+\
-+Starting with the simple array:\
-+<set-var array[]=\"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9\">\
-+<example>\
-+<set-var array[]=\"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9\">\
-+</example>\
-+\
-+we can print out the odd numbers of this array by using values for\
-+both <var start> and <var step>:\
-+\
-+<complete-example>\
-+<foreach x array start=1 step=2> <get-var x>, </foreach>\
-+</complete-example>\
-+\
-+or, we can produce a \"countdown\" with a negative value for <var step>:\
-+\
-+<complete-example>\
-+<foreach x array step=-1> <get-var x>, </foreach> BOOM!\
- </complete-example>")
- {
-   char *element_var = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -645,21 +645,21 @@
- }
- 
- DEFUN (pf_array_concat, receiver &optional contributor...,
--"Appends the contents of each <var contributor> array to the 
--end of <var receiver>.
--
--Both <var receiver> and each <var contributor> are variable names whose
--values are treated as arrays.
--
--For a single <var contributor>, <code>array-concat</code>
--could have been defined as:
--
--<example>
--<defsubst array-concat>
--  <foreach item %1>
--     <array-append <get-var item> %0>
--  </foreach>
--</defsubst>
-+"Appends the contents of each <var contributor> array to the \
-+end of <var receiver>.\
-+\
-+Both <var receiver> and each <var contributor> are variable names whose\
-+values are treated as arrays.\
-+\
-+For a single <var contributor>, <code>array-concat</code>\
-+could have been defined as:\
-+\
-+<example>\
-+<defsubst array-concat>\
-+  <foreach item %1>\
-+     <array-append <get-var item> %0>\
-+  </foreach>\
-+</defsubst>\
- </example>")
- {
-   char *arrayname = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -779,98 +779,98 @@
- 
- DEFUN (pf_sort, arrayvar &optional sort-fun &key caseless=true
-        sortorder=[ascending|descending] number=true,
--"Sort the contents of the array <var arrayvar>.
--
--The elements are sorted in place -- this function has no return value.
--
--If <var caseless=true> is given, then the comparison of the elements of
--the array is done without regards to case.
--
--If <var sortorder=reverse> is given, then the results are returned in
--descending order, instead of ascending order.  The default is to order
--the elements in ascending order.
--
--If <var numeric=true> is given, then the elements of <var arrayvar>
--are treated as numeric entities, whether they are or not.  The default
--is to treat the elements as character strings, which can have
--unexpected results when sorting numeric quantities (\"11\" is less
--then \"2\" when sorting alphabetically!)
--
--Finally, you may supply a sorting function, whose name is passed as
--<var sort-fun>.  This function will be called on each element just
--before comparison, and the results of that function will be used for
--the comparison instead of the element itself.  This allows you to
--create a collating sort, or to sort on complex weighting features, or
--anything else that you can conceive of.
--
--Examples:
--
--Given the array:
--<unset-var array>
--<set-var array[0] = 1
--         array[1] = 2
--         array[3] = 3
--         array[4] = 4
--         array[5] = 20>
--<example>
--<set-var array[0] = 1
--         array[1] = 2
--         array[3] = 3
--         array[4] = 4
--         array[5] = 20>
--</example>
--then,
--
--<complete-example>
--<sort array>
--<foreach x array> <get-var x> </foreach>
--</complete-example>
--while
--<complete-example>
--<sort array numeric=true>
--<foreach x array> <get-var x> </foreach>
--</complete-example>
--
--Sorting strings:
--<complete-example>
--<set-var array[]=\"a\\nb\\nc\\nd\\ne\\nf\\nA\\nB\\nC\\nD\\nE\\nF\">
--<sort array sortorder=descending>
--<foreach x array> <get-var x> </foreach>
--</complete-example>
--
--Without regards to case:
--<complete-example>
--<sort array caseless=true>
--<foreach x array> <get-var x> </foreach>
--</complete-example>
--
--Finally, here is an example which sorts a list
--of words based upon the percentage of vowels
--present in each word, using a sort function
--which calculates that value for each string:
--
--<complete-example>
--<defun vowel-percentage string>
--  <set-var x =
--    <subst-in-string <downcase <get-var string>> \"([^aeiou])\" \"\">>
--  <percent <string-length <get-var x>>
--           <string-length <get-var string>>>
--</defun>
--.blank
--<set-var words[]=
--  <prog
--    Brian
--    Fox
--    sorts
--    elegant
--    strings
--    beautifully>>
--.blank
--<sort words vowel-percentage numeric=true sortorder=descending>
--.blank
--<foreach word words>
--  <get-var word> (<vowel-percentage <get-var word>>)<br>
--</foreach>
-+"Sort the contents of the array <var arrayvar>.\
-+\
-+The elements are sorted in place -- this function has no return value.\
-+\
-+If <var caseless=true> is given, then the comparison of the elements of\
-+the array is done without regards to case.\
-+\
-+If <var sortorder=reverse> is given, then the results are returned in\
-+descending order, instead of ascending order.  The default is to order\
-+the elements in ascending order.\
-+\
-+If <var numeric=true> is given, then the elements of <var arrayvar>\
-+are treated as numeric entities, whether they are or not.  The default\
-+is to treat the elements as character strings, which can have\
-+unexpected results when sorting numeric quantities (\"11\" is less\
-+then \"2\" when sorting alphabetically!)\
-+\
-+Finally, you may supply a sorting function, whose name is passed as\
-+<var sort-fun>.  This function will be called on each element just\
-+before comparison, and the results of that function will be used for\
-+the comparison instead of the element itself.  This allows you to\
-+create a collating sort, or to sort on complex weighting features, or\
-+anything else that you can conceive of.\
-+\
-+Examples:\
-+\
-+Given the array:\
-+<unset-var array>\
-+<set-var array[0] = 1\
-+         array[1] = 2\
-+         array[3] = 3\
-+         array[4] = 4\
-+         array[5] = 20>\
-+<example>\
-+<set-var array[0] = 1\
-+         array[1] = 2\
-+         array[3] = 3\
-+         array[4] = 4\
-+         array[5] = 20>\
-+</example>\
-+then,\
-+\
-+<complete-example>\
-+<sort array>\
-+<foreach x array> <get-var x> </foreach>\
-+</complete-example>\
-+while\
-+<complete-example>\
-+<sort array numeric=true>\
-+<foreach x array> <get-var x> </foreach>\
-+</complete-example>\
-+\
-+Sorting strings:\
-+<complete-example>\
-+<set-var array[]=\"a\\nb\\nc\\nd\\ne\\nf\\nA\\nB\\nC\\nD\\nE\\nF\">\
-+<sort array sortorder=descending>\
-+<foreach x array> <get-var x> </foreach>\
-+</complete-example>\
-+\
-+Without regards to case:\
-+<complete-example>\
-+<sort array caseless=true>\
-+<foreach x array> <get-var x> </foreach>\
-+</complete-example>\
-+\
-+Finally, here is an example which sorts a list\
-+of words based upon the percentage of vowels\
-+present in each word, using a sort function\
-+which calculates that value for each string:\
-+\
-+<complete-example>\
-+<defun vowel-percentage string>\
-+  <set-var x =\
-+    <subst-in-string <downcase <get-var string>> \"([^aeiou])\" \"\">>\
-+  <percent <string-length <get-var x>>\
-+           <string-length <get-var string>>>\
-+</defun>\
-+.blank\
-+<set-var words[]=\
-+  <prog\
-+    Brian\
-+    Fox\
-+    sorts\
-+    elegant\
-+    strings\
-+    beautifully>>\
-+.blank\
-+<sort words vowel-percentage numeric=true sortorder=descending>\
-+.blank\
-+<foreach word words>\
-+  <get-var word> (<vowel-percentage <get-var word>>)<br>\
-+</foreach>\
- </complete-example>")
- {
-   char *sortvar = mhtml_evaluate_string (get_positional_arg (vars, 0));
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/cgi-exec.c work/metahtml-5.091/libmhtml/cgi-exec.c
---- work/metahtml-5.091/libmhtml/cgi-exec.c    1998-11-11 21:19:38.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/cgi-exec.c    2013-04-02 22:21:29.143802697 
+0200
-@@ -59,16 +59,16 @@
- DOC_SECTION (FILE-OPERATORS)
- 
- DEFVAR (mhtml::exec-path,
--"A colon-seperated list of directories in which <Meta-HTML> searches
--for executables when executing the <funref FILE-OPERATORS cgi-exec> tag.
--Each component is a path to a directory, without the final trailing
--slash, separated from its neighbors by a colon character
--(<code>:</code>).
--
--For example:
--
--<example>
--   <set-var mhtml::exec-path=\"/www/bin:/www/docs/cgi-bin\">
-+"A colon-seperated list of directories in which <Meta-HTML> searches\
-+for executables when executing the <funref FILE-OPERATORS cgi-exec> tag.\
-+Each component is a path to a directory, without the final trailing\
-+slash, separated from its neighbors by a colon character\
-+(<code>:</code>).\
-+\
-+For example:\
-+\
-+<example>\
-+   <set-var mhtml::exec-path=\"/www/bin:/www/docs/cgi-bin\">\
- </example>")
- 
- #if defined (NEW_CGI_EXEC)
-@@ -374,15 +374,15 @@
- DEFUN (pf_cgi_exec,
-        pathname &optional arg... &key output=varname errors=varname
-        timeout=seconds nowait=true,
--"Execute the system function named by <var pathname>, perhaps passing
--it arguments <var arg ... argn>.
--
--If <var output=varname> is supplied, then the variable referenced by
--<var varname> receives the output of the command.  Otherwise, the
--resultant output is placed in the page.
--
--If <var errors=varname> is supplied, then <var varname> receives the
--error output of the command. Otherwise, the resultant output is placed
-+"Execute the system function named by <var pathname>, perhaps passing\
-+it arguments <var arg ... argn>.\
-+\
-+If <var output=varname> is supplied, then the variable referenced by\
-+<var varname> receives the output of the command.  Otherwise, the\
-+resultant output is placed in the page.\
-+\
-+If <var errors=varname> is supplied, then <var varname> receives the\
-+error output of the command. Otherwise, the resultant output is placed\
- in <funref language-operators SYSTEM-ERROR-OUTPUT>.")
- {
-   if (vars != (Package *)NULL)
-diff -x config.log -x config.status -ru work/metahtml-5.091/libmhtml/cleaner.c 
work/metahtml-5.091/libmhtml/cleaner.c
---- work/metahtml-5.091/libmhtml/cleaner.c     1998-11-11 21:19:38.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/cleaner.c     2013-04-02 22:25:29.377149346 
+0200
-@@ -200,16 +200,16 @@
- }
- 
- DEFUN (pf_cleanup_whitespace, &optional varname &key beautify,
--"Reduces the amount of whitespace in the output page to the minimum
--required.  This function carefully avoids the contents of <example
--code><pre> ... </pre></example> constructs, as well as any material
--appearing in a <example code><textarea ...> ... </textarea></example>
--construct.
--
--Given <var varname>, operates on the contents of that variable.
--
--Placed as the last instruction on a page, it is an effective way to
--reduce the amount of data sent back over the network to the connecting
-+"Reduces the amount of whitespace in the output page to the minimum\
-+required.  This function carefully avoids the contents of <example\
-+code><pre> ... </pre></example> constructs, as well as any material\
-+appearing in a <example code><textarea ...> ... </textarea></example>\
-+construct.\
-+\
-+Given <var varname>, operates on the contents of that variable.\
-+\
-+Placed as the last instruction on a page, it is an effective way to\
-+reduce the amount of data sent back over the network to the connecting\
- browser.")
- {
-   char *varname = mhtml_evaluate_string (get_positional_arg (vars, 0));
-diff -x config.log -x config.status -ru work/metahtml-5.091/libmhtml/dbfuncs.c 
work/metahtml-5.091/libmhtml/dbfuncs.c
---- work/metahtml-5.091/libmhtml/dbfuncs.c     1998-11-11 21:19:38.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/dbfuncs.c     2013-04-02 22:19:07.607128183 
+0200
-@@ -61,23 +61,23 @@
- 
- PACKAGE_INITIALIZER (initialize_db_functions)
- DEFINE_SECTION (DATABASE-COMMANDS, database; long-term storage, 
--"<meta-html> contains commands for performing operations on a
--database. A database created by <meta-html> contains <i>records</i>
--stored by <i>key</i>, where each record consists of a set of
--<i>name/value</i> pairs.
--
--There is a single command for specifying which database you will be
--operating on: <funref database-commands with-open-database>.  All of
--the remaining database commands only have an effect when executed
--within the scope of this function.
--
--<funref \"database commands\" database-query> is the command used to
--perform queries on a database, or to simply select a range of records
--to operate on.
--
--Functions which load, store, or delete a record as a single atomic
--operation, return the string <code>\"true\"</code> when they succeed,
--and store an error message in <funref Language-Operators
-+"<meta-html> contains commands for performing operations on a\
-+database. A database created by <meta-html> contains <i>records</i>\
-+stored by <i>key</i>, where each record consists of a set of\
-+<i>name/value</i> pairs.\
-+\
-+There is a single command for specifying which database you will be\
-+operating on: <funref database-commands with-open-database>.  All of\
-+the remaining database commands only have an effect when executed\
-+within the scope of this function.\
-+\
-+<funref \"database commands\" database-query> is the command used to\
-+perform queries on a database, or to simply select a range of records\
-+to operate on.\
-+\
-+Functions which load, store, or delete a record as a single atomic\
-+operation, return the string <code>\"true\"</code> when they succeed,\
-+and store an error message in <funref Language-Operators\
- SYSTEM-ERROR-OUTPUT> when they do not.", "")
- 
- static long
-@@ -216,29 +216,29 @@
- }
- 
- DEFMACRO (pf_with_open_database, dbvar dbname &key mode=open-mode,
--"Create an environment in which other database commands can be given.
--First, the database referenced by <var dbname> is locked and opened in
--the mode specified by <var open-mode>, and the resultant database
--handle is bound to the variable named by <var dbvar>.  Then, the <var
--body> code is executed.  Finally, the database is closed, and further
--references to <var dbvar> are meaningless.
--
--Please note that the file name specified by <var dbname> should be a
--full pathname; it is not relative to Web space in any way.
--
--<var open-mode> should evaluate to one of the following:
--
--<ul>
--  <li> <var reader><br>
--The caller wishes only to have read access to the specified database.
--
--<li> <var writer><br>
--The caller wishes to have both read and write access to the specified
--database.
--
--<li> <var write-create><br>
--The caller wishes both read and write access to the specified
--database.  If the database does not exist, it is created.
-+"Create an environment in which other database commands can be given.\
-+First, the database referenced by <var dbname> is locked and opened in\
-+the mode specified by <var open-mode>, and the resultant database\
-+handle is bound to the variable named by <var dbvar>.  Then, the <var\
-+body> code is executed.  Finally, the database is closed, and further\
-+references to <var dbvar> are meaningless.\
-+\
-+Please note that the file name specified by <var dbname> should be a\
-+full pathname; it is not relative to Web space in any way.\
-+\
-+<var open-mode> should evaluate to one of the following:\
-+\
-+<ul>\
-+  <li> <var reader><br>\
-+The caller wishes only to have read access to the specified database.\
-+\
-+<li> <var writer><br>\
-+The caller wishes to have both read and write access to the specified\
-+database.\
-+\
-+<li> <var write-create><br>\
-+The caller wishes both read and write access to the specified\
-+database.  If the database does not exist, it is created.\
- </ul>")
- {
-   char *varname;
-@@ -363,22 +363,22 @@
- static int varname_size = 0;
- 
- DEFUN (pf_database_load_record, dbvar key &key package=package-name,
--"Load the variables from the record specified by <var key> in the
--database referenced by <var dbvar>.  If <var package=package-name> is
--given, the record variables are stored into the specified package,
--instead of the current package.
--
--Upon success, this function returns the string <code>\"true\"</code>.
--
--<example>
--<with-open-database db /tmp/file.db mode=read>
--  <set-var loaded? = <database-load-record db <get-var name> package=foo>>
--</with-open-database>
--
--<when <get-var loaded?>>
--  The record was loaded successfully, and the
--  value of NAME is <get-var foo::name>.
--</when>
-+"Load the variables from the record specified by <var key> in the\
-+database referenced by <var dbvar>.  If <var package=package-name> is\
-+given, the record variables are stored into the specified package,\
-+instead of the current package.\
-+\
-+Upon success, this function returns the string <code>\"true\"</code>.\
-+\
-+<example>\
-+<with-open-database db /tmp/file.db mode=read>\
-+  <set-var loaded? = <database-load-record db <get-var name> package=foo>>\
-+</with-open-database>\
-+\
-+<when <get-var loaded?>>\
-+  The record was loaded successfully, and the\
-+  value of NAME is <get-var foo::name>.\
-+</when>\
- </example>")
- {
-   char *prefix;
-@@ -478,14 +478,14 @@
- }
- 
- DEFUN (pf_database_delete_record, dbvar key,
--"Remove the record associated with <var key> from the database
--referenced by <var dbvar>.  This functions returns the string
--<code>true</code> upon success.
--
--<example>
--<with-open-database db /tmp/file.db mode=write>
--  <set-var deleted? = <database-delete-record db <get-var key>>>
--</with-open-database>
-+"Remove the record associated with <var key> from the database\
-+referenced by <var dbvar>.  This functions returns the string\
-+<code>true</code> upon success.\
-+\
-+<example>\
-+<with-open-database db /tmp/file.db mode=write>\
-+  <set-var deleted? = <database-delete-record db <get-var key>>>\
-+</with-open-database>\
- </example>")
- {
-   DBFILE db;
-@@ -513,25 +513,25 @@
- 
- DEFUN (pf_database_save_record, dbvar key &optional var... &key
-        package=package-name,
--"Save the variables <var var1...varn> in the database referenced by
--<var dbvar> in the record specified by the key <var key>.  If <var
--package-name> is supplied, then the names of the variables written to
--the database are written as if they belonged to that package.
--
--Upon success, this function returns the string <code>true</code>.
--
--Also see <funref database-commands database-save-package>, and
--<funref database-commands database-load-record>.
--
--<example>
--<with-open-database db /tmp/file.db mode=write-create>
--  <set-var saved? =
--     <database-save-record db <get-var name> name age size>>
--</with-open-database>
--
--<when <get-var saved?>>
--  The record was stored successfully.
--</when>
-+"Save the variables <var var1...varn> in the database referenced by\
-+<var dbvar> in the record specified by the key <var key>.  If <var\
-+package-name> is supplied, then the names of the variables written to\
-+the database are written as if they belonged to that package.\
-+\
-+Upon success, this function returns the string <code>true</code>.\
-+\
-+Also see <funref database-commands database-save-package>, and\
-+<funref database-commands database-load-record>.\
-+\
-+<example>\
-+<with-open-database db /tmp/file.db mode=write-create>\
-+  <set-var saved? =\
-+     <database-save-record db <get-var name> name age size>>\
-+</with-open-database>\
-+\
-+<when <get-var saved?>>\
-+  The record was stored successfully.\
-+</when>\
- </example>")
- {
-   DBFILE db;
-@@ -598,25 +598,25 @@
- }
- 
- DEFUN (pf_database_save_package, dbvar key package &key strip=true,
--"Save the variables from the package <var package> in the database
--referenced by <var dbvar> in the record specified by <var key>.
--
--If <var strip=true> is supplied, then the names of the variables
--written to the database have their package prefix removed as they are
--written.
--
--Upon success, this function returns the string <code>true</code>.
--
--<example>
--<set-var mykey=\"The Key\" foo::x=x foo::array[0]=val0 foo::array[1]=val1>
--<with-open-database db /tmp/file.db mode=write-create>
--  <database-save-package db <get-var mykey> foo strip=true>
--</with-open-database>
--</example>
--
--produces
--<example>
--true
-+"Save the variables from the package <var package> in the database\
-+referenced by <var dbvar> in the record specified by <var key>.\
-+\
-+If <var strip=true> is supplied, then the names of the variables\
-+written to the database have their package prefix removed as they are\
-+written.\
-+\
-+Upon success, this function returns the string <code>true</code>.\
-+\
-+<example>\
-+<set-var mykey=\"The Key\" foo::x=x foo::array[0]=val0 foo::array[1]=val1>\
-+<with-open-database db /tmp/file.db mode=write-create>\
-+  <database-save-package db <get-var mykey> foo strip=true>\
-+</with-open-database>\
-+</example>\
-+\
-+produces\
-+<example>\
-+true\
- </example>")
- {
-   DBFILE db;
-@@ -710,10 +710,10 @@
- }
- 
- DEFUN (pf_database_first_key, dbvar,
--"Return a string representing the \"first\" key found in the database
--referenced by <var dbvar>.  The key is suitable for input to any of
--the database functions which takes a key as input.  The order in which
--keys are returned appears random, but the return value is always a
-+"Return a string representing the \"first\" key found in the database\
-+referenced by <var dbvar>.  The key is suitable for input to any of\
-+the database functions which takes a key as input.  The order in which\
-+keys are returned appears random, but the return value is always a\
- suitable argument to <funref database-commands database-next-key>.")
- {
-   DBFILE db = (DBFILE)0;
-@@ -736,22 +736,22 @@
- }
- 
- DEFUN (pf_database_next_key, dbvar after-key,
--"Return the \"next\" key in the database.  The key is found by looking
--at <var after-key>, which makes this function suitable for calling in
--a loop.  For example, the following code iterates over an entire
--database.
--
--<example>
--<with-open-database db /file.db mode=read>
--  <set-var key=<database-first-key db>>
--  <while <get-var key>>
--    <package-delete record>
--    <set-var loaded? =
--      <database-load-record db <get-var key> package=record>>
--    Key: <get-var key>, Name: <get-var record::name>
--    <set-var key = <database-next-key db <get-var key>>>
--  </while>
--</with-open-database>
-+"Return the \"next\" key in the database.  The key is found by looking\
-+at <var after-key>, which makes this function suitable for calling in\
-+a loop.  For example, the following code iterates over an entire\
-+database.\
-+\
-+<example>\
-+<with-open-database db /file.db mode=read>\
-+  <set-var key=<database-first-key db>>\
-+  <while <get-var key>>\
-+    <package-delete record>\
-+    <set-var loaded? =\
-+      <database-load-record db <get-var key> package=record>>\
-+    Key: <get-var key>, Name: <get-var record::name>\
-+    <set-var key = <database-next-key db <get-var key>>>\
-+  </while>\
-+</with-open-database>\
- </example>")
- {
-   DBFILE db;
-@@ -774,9 +774,9 @@
- }
- 
- DEFUN (pf_database_unique_key, dbvar &optional suggestion,
--"Return a key which is guaranteed to not already exist in the the
--database referenced by <var db>.  If <var suggestion> is supplied,
--that key is tried first, and then subsequent attempts are various
-+"Return a key which is guaranteed to not already exist in the the\
-+database referenced by <var db>.  If <var suggestion> is supplied,\
-+that key is tried first, and then subsequent attempts are various\
- modifications to the suggestion.")
- {
-   DBFILE db;
-@@ -1023,66 +1023,66 @@
- 
- DEFUN (pf_database_query, dbvar expr &key format=fexpr keys=varname
-        sort=field... sortorder=reverse,
--"Select records from the database referenced by <var dbvar>, based on
--<var expr>, perhaps sorting them based on the data in <var FIELD>s,
--and optionally formatting them with the <Meta-HTML> expression in <var
--fexpr>.
--
--Both <var expr> and <var fexpr> are evaluated with the fields of the
--database as the current package, so references to variables which are
--not part of the record structure must be fully qualified (i.e., by
--prefixing them with a package name. See <secref Packages> for more
--information.) If the result of evaluating <var expr> is not the empty
--string, then the record is selected for further processing by either
--<var format>, <var keys>, or to be returned in a  plain text list of
--keys. 
--
--The order of evaluation is as follows:
--
--First, the database is queried, and an internal list of selected
--records is created.  Then, if <var sort=field1,field2...> is present,
--the records are sorted using the values of the specified fields.  The
--order of the sort can be reversed by passed <var sortorder=reverse>. 
--
--Next, if <var format=fexpr> is present, <var fexpr> is executed for
--each record, in an environment where the current package consists of
--bindings for each field's name to each field's value, and the special
--binding of <code>key</code> to the key of that record.  Finally, if
--<var keys=varname> is present, <var varname> is the name of a variable
--into which the matched keys are stored as an array.
--
--The <var sort> parameters indicates which fields to sort the resultant
--keys on; the field names <var field1,field2...> are separated by
--commas.
--
--Examples:
--
--This simple query stores the key of every record in the database whose
--<b>name</b> field contains \"Fox\" into the variable named
--<b>dbkeys</b>:
--
--<example>
--<with-open-database db \"/www/data/employee.db\" mode=read>
--  <database-query db <match <get-var name> \"Fox\"> keys=dbkeys>
--</with-open-database>
--</example>
--
--This more complex query formats an alphabetical list of all the
--members of the database who are employed as carpenters, and are
--between the ages of 20 and 45, by creating links to a page which will
--(presumably) get a more detailed listing of the individual record:
--
--<example>
--<with-open-database db \"employee.db\" mode=read>
--  <database-query db sort=LastName
--    <and <match <get-var job> \"carpent\">
--         <gt age 20>
--         <lt age 45>>
--    format = <prog
--               <a href=\"detail-display.mhtml?<cgi-encode key>\">
--               <get-var LastName>, <get-var FirstName>
--               </a>: <get-var Job>, <get-var Age>>>
--</with-open-database>
-+"Select records from the database referenced by <var dbvar>, based on\
-+<var expr>, perhaps sorting them based on the data in <var FIELD>s,\
-+and optionally formatting them with the <Meta-HTML> expression in <var\
-+fexpr>.\
-+\
-+Both <var expr> and <var fexpr> are evaluated with the fields of the\
-+database as the current package, so references to variables which are\
-+not part of the record structure must be fully qualified (i.e., by\
-+prefixing them with a package name. See <secref Packages> for more\
-+information.) If the result of evaluating <var expr> is not the empty\
-+string, then the record is selected for further processing by either\
-+<var format>, <var keys>, or to be returned in a  plain text list of\
-+keys. \
-+\
-+The order of evaluation is as follows:\
-+\
-+First, the database is queried, and an internal list of selected\
-+records is created.  Then, if <var sort=field1,field2...> is present,\
-+the records are sorted using the values of the specified fields.  The\
-+order of the sort can be reversed by passed <var sortorder=reverse>. \
-+\
-+Next, if <var format=fexpr> is present, <var fexpr> is executed for\
-+each record, in an environment where the current package consists of\
-+bindings for each field's name to each field's value, and the special\
-+binding of <code>key</code> to the key of that record.  Finally, if\
-+<var keys=varname> is present, <var varname> is the name of a variable\
-+into which the matched keys are stored as an array.\
-+\
-+The <var sort> parameters indicates which fields to sort the resultant\
-+keys on; the field names <var field1,field2...> are separated by\
-+commas.\
-+\
-+Examples:\
-+\
-+This simple query stores the key of every record in the database whose\
-+<b>name</b> field contains \"Fox\" into the variable named\
-+<b>dbkeys</b>:\
-+\
-+<example>\
-+<with-open-database db \"/www/data/employee.db\" mode=read>\
-+  <database-query db <match <get-var name> \"Fox\"> keys=dbkeys>\
-+</with-open-database>\
-+</example>\
-+\
-+This more complex query formats an alphabetical list of all the\
-+members of the database who are employed as carpenters, and are\
-+between the ages of 20 and 45, by creating links to a page which will\
-+(presumably) get a more detailed listing of the individual record:\
-+\
-+<example>\
-+<with-open-database db \"employee.db\" mode=read>\
-+  <database-query db sort=LastName\
-+    <and <match <get-var job> \"carpent\">\
-+         <gt age 20>\
-+         <lt age 45>>\
-+    format = <prog\
-+               <a href=\"detail-display.mhtml?<cgi-encode key>\">\
-+               <get-var LastName>, <get-var FirstName>\
-+               </a>: <get-var Job>, <get-var Age>>>\
-+</with-open-database>\
- </example>")
- {
-   DBFILE db = (DBFILE)0;
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/dbmfuncs.c work/metahtml-5.091/libmhtml/dbmfuncs.c
---- work/metahtml-5.091/libmhtml/dbmfuncs.c    1998-11-11 21:19:38.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/dbmfuncs.c    2013-04-02 22:25:16.533815294 
+0200
-@@ -63,12 +63,12 @@
- 
- PACKAGE_INITIALIZER (initialize_dbm_functions)
- DEFINE_SECTION (DIRECT-DBM-ACCESS, database; perl, 
--"There are times when it is desirable to directly access DBM, NDBM, or
--GDBM databases, for example, when reading or writing values to a
--database created with a different tool, such as Perl or TCL.
--
--<Meta-HTML> provides low-level access primitives for such databases in
--addition to a higher-level, more generally useful abstraction
-+"There are times when it is desirable to directly access DBM, NDBM, or\
-+GDBM databases, for example, when reading or writing values to a\
-+database created with a different tool, such as Perl or TCL.\
-+\
-+<Meta-HTML> provides low-level access primitives for such databases in\
-+addition to a higher-level, more generally useful abstraction\
- (which is detailed in <secref DATABASE-COMMANDS>).", "")
- 
- /************************************************************/
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/debugfuncs.c 
work/metahtml-5.091/libmhtml/debugfuncs.c
---- work/metahtml-5.091/libmhtml/debugfuncs.c  1998-11-11 21:19:38.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/debugfuncs.c  2013-04-02 22:35:40.740516542 
+0200
-@@ -58,28 +58,28 @@
- 
- PACKAGE_INITIALIZER (initialize_debugger_functions)
- DEFINE_SECTION (DEBUGGING-COMMANDS, debug; variables; trouble-shooting,
--"Debugging a CGI application executing under a running Web server can be
--quite problematic.  <Meta-HTML> provides the following functions, macros,
--and variables in an effort to alleviate the problems associated with this
--situation.",
--"In addition to the functions and variables above, <Meta-HTML> has a complete
--source language debugger called <code>mdb</code>, which can be used to
--interactively execute expressions, to place breakpoints in files and then
--run them examining local and global variables, and to single-step through
--source code that you have written in <Meta-HTML>.  Instructions on the
--use of the debugger is beyong the scope of <i>this</i> manual -- please see
--<b>MDB: A User's Guide to Debugging <Meta-HTML> Programs</b> for more
-+"Debugging a CGI application executing under a running Web server can be\
-+quite problematic.  <Meta-HTML> provides the following functions, macros,\
-+and variables in an effort to alleviate the problems associated with this\
-+situation.",\
-+"In addition to the functions and variables above, <Meta-HTML> has a complete\
-+source language debugger called <code>mdb</code>, which can be used to\
-+interactively execute expressions, to place breakpoints in files and then\
-+run them examining local and global variables, and to single-step through\
-+source code that you have written in <Meta-HTML>.  Instructions on the\
-+use of the debugger is beyong the scope of <i>this</i> manual -- please see\
-+<b>MDB: A User's Guide to Debugging <Meta-HTML> Programs</b> for more\
- information specific to the debugger.")
- 
- DEFUN (pf_debugging_on, &optional function-name=level...,
--"Turns on debugging for the <var function-name>s mentioned, setting
--the level of output to <var level>.  <var level> is a number between
--<code>0</code> (the least amount of debugging info) and
--<code>10</code> (the maximum amount of debugging info).
--
--The output is placed into the <Meta-HTML> internal debugger buffer, and
--can be placed into an output page by simply placing the tag
--<tag DEBUGGING-OUTPUT> somewhere in the page, or can be explicity
-+"Turns on debugging for the <var function-name>s mentioned, setting\
-+the level of output to <var level>.  <var level> is a number between\
-+<code>0</code> (the least amount of debugging info) and\
-+<code>10</code> (the maximum amount of debugging info).\
-+\
-+The output is placed into the <Meta-HTML> internal debugger buffer, and\
-+can be placed into an output page by simply placing the tag\
-+<tag DEBUGGING-OUTPUT> somewhere in the page, or can be explicity\
- retrieved using <example code><debugging-output retrieve></example>.")
- {
-   if (vars)
-@@ -96,11 +96,11 @@
- }
- 
- DEFUN (pf_page_debug, &rest body,
--"Cause <var body> to be inserted into the debugger output.
--
--The output is placed into the <Meta-HTML> internal debugger buffer, and
--can be placed into an output page by simply placing the tag
--<tag DEBUGGING-OUTPUT> somewhere in the page, or can be explicity
-+"Cause <var body> to be inserted into the debugger output.\
-+\
-+The output is placed into the <Meta-HTML> internal debugger buffer, and\
-+can be placed into an output page by simply placing the tag\
-+<tag DEBUGGING-OUTPUT> somewhere in the page, or can be explicity\
- retrieved using <example code><debugging-output retrieve></example>.")
- {
-   char *value;
-@@ -112,28 +112,28 @@
- }
- 
- DEFUN (pf_debugging_output, &optional action...,
--"<Meta-HTML> stores debugging information in an internal buffer.  You
--may directly place information into this buffer using the <funref
--language-operators page-debug> command, and you may retrieve or clear
--this buffer using <example code><debugging-output></example>.
--
--Possible values for <var action> are:
--<ul>
--<li> <b>retrieve</b><br>
--Inserts the current contents of the debugging buffer into the page at
--the current location.
--<li> <b>clear</b><br>
--Empties the debugging buffer of all stored information.
--</ul>
--
--If you place  <example code><debugging-output></example> into your
--page without passing any arguments, <Meta-HTML> treats this invocation
--specially; it marks the location at which any debugging statements
--which have been collected during the processing of the entire page
--should be placed.
--
--We recommend that you always place this tag somewhere in the output
--page, whenever that output is an HTML document, as opposed to a
-+"<Meta-HTML> stores debugging information in an internal buffer.  You\
-+may directly place information into this buffer using the <funref\
-+language-operators page-debug> command, and you may retrieve or clear\
-+this buffer using <example code><debugging-output></example>.\
-+\
-+Possible values for <var action> are:\
-+<ul>\
-+<li> <b>retrieve</b><br>\
-+Inserts the current contents of the debugging buffer into the page at\
-+the current location.\
-+<li> <b>clear</b><br>\
-+Empties the debugging buffer of all stored information.\
-+</ul>\
-+\
-+If you place  <example code><debugging-output></example> into your\
-+page without passing any arguments, <Meta-HTML> treats this invocation\
-+specially; it marks the location at which any debugging statements\
-+which have been collected during the processing of the entire page\
-+should be placed.\
-+\
-+We recommend that you always place this tag somewhere in the output\
-+page, whenever that output is an HTML document, as opposed to a\
- standalone script.")
- {
-   register int i = 0;
-@@ -173,33 +173,33 @@
- }
- 
- DEFUN (pf_system_error_output, &optional action...,
--"<Meta-HTML> stores system error information in an internal buffer.
--Such information may be the results of an error which occurred during
--the execution of an external command (such as with <funref
--file-operators cgi-exec>), or other information which is generated by
--the inability of <Meta-HTML> to access a particular file (such as with
--the <funref file-operators require> command).
--
--You may retrieve or clear this buffer using <example
--code><system-error-output></example>.
--
--Possible values for <var action> are:
--<ul>
--<li> <b>retrieve</b><br>
--Inserts the current contents of the system error buffer into the page at
--the current location.
--<li> <b>clear</b><br>
--Empties the system error buffer of all stored information.
--</ul>
--
--If you place  <example code><system-error-output></example> into your
--page without passing any arguments, <Meta-HTML> treats this invocation
--specially; it marks the location at which any system errors
--which have been collected during the processing of the entire page
--should be placed.
--
--We recommend that you always place this tag somewhere in the output
--page, whenever that output is an HTML document, as opposed to a
-+"<Meta-HTML> stores system error information in an internal buffer.\
-+Such information may be the results of an error which occurred during\
-+the execution of an external command (such as with <funref\
-+file-operators cgi-exec>), or other information which is generated by\
-+the inability of <Meta-HTML> to access a particular file (such as with\
-+the <funref file-operators require> command).\
-+\
-+You may retrieve or clear this buffer using <example\
-+code><system-error-output></example>.\
-+\
-+Possible values for <var action> are:\
-+<ul>\
-+<li> <b>retrieve</b><br>\
-+Inserts the current contents of the system error buffer into the page at\
-+the current location.\
-+<li> <b>clear</b><br>\
-+Empties the system error buffer of all stored information.\
-+</ul>\
-+\
-+If you place  <example code><system-error-output></example> into your\
-+page without passing any arguments, <Meta-HTML> treats this invocation\
-+specially; it marks the location at which any system errors\
-+which have been collected during the processing of the entire page\
-+should be placed.\
-+\
-+We recommend that you always place this tag somewhere in the output\
-+page, whenever that output is an HTML document, as opposed to a\
- standalone script.")
- {
-   register int i = 0;
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/filefuncs.c 
work/metahtml-5.091/libmhtml/filefuncs.c
---- work/metahtml-5.091/libmhtml/filefuncs.c   1998-11-11 21:19:38.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/filefuncs.c   2013-04-02 22:19:07.610461516 
+0200
-@@ -67,18 +67,18 @@
- 
- PACKAGE_INITIALIZER (initialize_file_functions)
- DEFINE_SECTION (FILE-OPERATORS, files; disk; system, 
--"There are several types of commands in <meta-html> for dealing with files.
--
--Some of these commands operate directly on an open files, while others
--operate on <i>streams</i> (see <secref stream-operators>), which may be
--connected to files or network data.
--
--The functions allow you to <funref FILE-OPERATORS include> the
--contents of, open (<funref STREAM-OPERATORS with-open-stream>), create,
--read, or write various data sources, or to replace the contents of a page
-+"There are several types of commands in <meta-html> for dealing with files.\
-+\
-+Some of these commands operate directly on an open files, while others\
-+operate on <i>streams</i> (see <secref stream-operators>), which may be\
-+connected to files or network data.\
-+\
-+The functions allow you to <funref FILE-OPERATORS include> the\
-+contents of, open (<funref STREAM-OPERATORS with-open-stream>), create,\
-+read, or write various data sources, or to replace the contents of a page\
- (<funref PAGE-OPERATORS replace-page>) with another file.",
--"Commands such as <funref FILE-OPERATORS get-file-properties> may
--return additional information on some systems; this is documented with
-+"Commands such as <funref FILE-OPERATORS get-file-properties> may\
-+return additional information on some systems; this is documented with\
- each function where that is the case.")
- 
- /* <get-file-properties /www/nirvana/docs/welcome.mhtml>
-@@ -230,58 +230,58 @@
-    are *not* relative to web space in any way.  This is probably a huge
-    security hole, but it can't be any worse than CGI-EXEC.  Yeeesh. */
- DEFUN (pf_get_file_properties, pathname,
--"Return an association-list containing operating system information
--about the file or directory named by <var path>. <var pathname> must be
--given fully; it is <i>not</i> relative to Web space in any way.
--
--If the file exists and is accessible, the members of the returned
--association-list which are guaranteed to be present are:
--
--<ul>
--<li> <b>NAME</b>: <i>welcome.mhtml</i><br>
--The name of the file or directory, without any of the path information.
--
--<li> <b>FULL-NAME</b>: <i>/www/site/docs/welcome.mhtml</i><br>
--The name of the file or directory, with full path
--information.  This should be identical to <var PATH> as
--received by <tag get-file-properties>.
--
--<li> <b>SIZE</b>: <i> 2188 </i> <br>
--The size of the file in bytes.
--
--<li> <b>TYPE</b>: <i>FILE</i><br>
--The <i>type</i> of the file.  This will either be
--<code>FILE</code> or <code>DIRECTORY</code>.
--</ul>
--
--In addition to the above fields, the following fields appear on Unix
--based systems:
--
--<ul>
--<li> <b>CREATED</b>: <i>6 29 96 10 3 24 897595648</i><br>
--The date on which this file was created.  The value is an
--array, with ordered values being: month, day, year, hours,
--minutes, and seconds, and then the number of seconds since
--Jan 1st, 1970.
--
--<li> <b>WRITTEN</b>: <i>6 29 96 10 3 24 897595648</i><br>
--The date on which this file was last written.  The value is an
--array, with ordered values being: month, day, year, hours,
--minutes, and seconds, and then the number of seconds since
--Jan 1st, 1970.
--
--<li> <b>READ</b>: <i>6 30 96 19 27 51 897595648</i><br>
--The date on which this file was last read.  The value is an
--array, with ordered values being: month, day, year, hours,
--minutes, and seconds, and then the number of seconds since
--Jan 1st, 1970.
--
--<li> <b>CREATOR</b>: <i>bfox</i> <br>
--The system identifier of the user who created this file.
--</ul>
--
--<html-complete-example>
--<dump-alist <get-file-properties />>
-+"Return an association-list containing operating system information\
-+about the file or directory named by <var path>. <var pathname> must be\
-+given fully; it is <i>not</i> relative to Web space in any way.\
-+\
-+If the file exists and is accessible, the members of the returned\
-+association-list which are guaranteed to be present are:\
-+\
-+<ul>\
-+<li> <b>NAME</b>: <i>welcome.mhtml</i><br>\
-+The name of the file or directory, without any of the path information.\
-+\
-+<li> <b>FULL-NAME</b>: <i>/www/site/docs/welcome.mhtml</i><br>\
-+The name of the file or directory, with full path\
-+information.  This should be identical to <var PATH> as\
-+received by <tag get-file-properties>.\
-+\
-+<li> <b>SIZE</b>: <i> 2188 </i> <br>\
-+The size of the file in bytes.\
-+\
-+<li> <b>TYPE</b>: <i>FILE</i><br>\
-+The <i>type</i> of the file.  This will either be\
-+<code>FILE</code> or <code>DIRECTORY</code>.\
-+</ul>\
-+\
-+In addition to the above fields, the following fields appear on Unix\
-+based systems:\
-+\
-+<ul>\
-+<li> <b>CREATED</b>: <i>6 29 96 10 3 24 897595648</i><br>\
-+The date on which this file was created.  The value is an\
-+array, with ordered values being: month, day, year, hours,\
-+minutes, and seconds, and then the number of seconds since\
-+Jan 1st, 1970.\
-+\
-+<li> <b>WRITTEN</b>: <i>6 29 96 10 3 24 897595648</i><br>\
-+The date on which this file was last written.  The value is an\
-+array, with ordered values being: month, day, year, hours,\
-+minutes, and seconds, and then the number of seconds since\
-+Jan 1st, 1970.\
-+\
-+<li> <b>READ</b>: <i>6 30 96 19 27 51 897595648</i><br>\
-+The date on which this file was last read.  The value is an\
-+array, with ordered values being: month, day, year, hours,\
-+minutes, and seconds, and then the number of seconds since\
-+Jan 1st, 1970.\
-+\
-+<li> <b>CREATOR</b>: <i>bfox</i> <br>\
-+The system identifier of the user who created this file.\
-+</ul>\
-+\
-+<html-complete-example>\
-+<dump-alist <get-file-properties />>\
- </html-complete-example>")
- {
-   char *filename = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -299,13 +299,13 @@
- }
- 
- DEFUN (pf_file_exists, pathname,
--"Returns \"true\" if <var pathname> is an existing file or directory.
--
--<var pathname> is absolute, that is to say that it is looked up in
--absolute file system space, not in Web space.  To find out if a file
--<code>foo</code> in the current directory exists, use:
--<example>
--<file-exists <thisdir>/foo>
-+"Returns \"true\" if <var pathname> is an existing file or directory.\
-+\
-+<var pathname> is absolute, that is to say that it is looked up in\
-+absolute file system space, not in Web space.  To find out if a file\
-+<code>foo</code> in the current directory exists, use:\
-+<example>\
-+<file-exists <thisdir>/foo>\
- </example>")
- {
-   char *filename = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -334,12 +334,12 @@
- 
- DEFUN (pf_directory_contents,
-        pathname &optional package-name &key matching=pattern,
--"Returns a newline separated list of association lists for
--the files matching <var pattern>.
--
--When <var package-name> is supplied, each variable in
--<var package-name> is the name of a file in <var pathname>, and
--the value of each variable is the association list for that
-+"Returns a newline separated list of association lists for\
-+the files matching <var pattern>.\
-+\
-+When <var package-name> is supplied, each variable in\
-+<var package-name> is the name of a file in <var pathname>, and\
-+the value of each variable is the association list for that\
- file.")
- {
-   char *dirname = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -428,18 +428,18 @@
- 
- #if defined (HAVE_MKFIFO)
- DEFUNX (pf_unix::mkfifo, filename &optional mode-bits,
--"Create a named pipe on unix systems that support named pipes.
--
--The pipe is named <var filename> and is created with the access mode
--specified by <var mode-bits>, an octal permissions mask.
--
--<var mode-bits> defaults to 0666 if not specified.
--
--After a named pipe is created, it can be written to and read from
--in the normal manner for writing and reading file streams.
--
--UNIX::MKFIFO returns \"true\" if the named pipe could be created, or
--the empty string if not.  In the case of an error, the human readable
-+"Create a named pipe on unix systems that support named pipes.\
-+\
-+The pipe is named <var filename> and is created with the access mode\
-+specified by <var mode-bits>, an octal permissions mask.\
-+\
-+<var mode-bits> defaults to 0666 if not specified.\
-+\
-+After a named pipe is created, it can be written to and read from\
-+in the normal manner for writing and reading file streams.\
-+\
-+UNIX::MKFIFO returns \"true\" if the named pipe could be created, or\
-+the empty string if not.  In the case of an error, the human readable\
- text of the error message appears in SYSTEM-ERROR-OUTPUT.")
- 
- static void
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/flowfuncs.c 
work/metahtml-5.091/libmhtml/flowfuncs.c
---- work/metahtml-5.091/libmhtml/flowfuncs.c   1999-04-10 19:06:18.000000000 
+0200
-+++ work/metahtml-5.091/libmhtml/flowfuncs.c   2013-04-02 22:29:06.903828122 
+0200
-@@ -83,42 +83,42 @@
- 
- PACKAGE_INITIALIZER (initialize_flowfunc_functions)
- DEFINE_SECTION (FLOW-CONTROL, flow control;if statements; while; until,
--"<Meta-HTML> contains commands for controlling which of a set
--of statements will be executed, and for repetitive execution of a set
--of statements.
--
--Such commands constitute what is called <i>flow control</i>, since
--they tell the <meta-html> interpreter where or what the next statement
--to interpret resides.
--
--All of the flow control operators in <meta-html> take a test and some
--additional statements; the closest thing to a <b>goto</b> statement in
-+"<Meta-HTML> contains commands for controlling which of a set\
-+of statements will be executed, and for repetitive execution of a set\
-+of statements.\
-+\
-+Such commands constitute what is called <i>flow control</i>, since\
-+they tell the <meta-html> interpreter where or what the next statement\
-+to interpret resides.\
-+\
-+All of the flow control operators in <meta-html> take a test and some\
-+additional statements; the closest thing to a <b>goto</b> statement in\
- <meta-html> is the <funref page-operators redirect> command.", "")
- 
- DEFUN (pf_group, &rest args,
--"Combine all of the material passed into a single Meta-HTML statement.
--This is the primitive for grouping multiple statements where only a
--single statement is expected.  Whitespace within the group is preserved,
--making this command useful for assigning to array variables.
--
--Some examples:
--<example>
--<set-var array[] =
--  <group this is element 0
--         this is element 1
--         this is element 2>>
--</example>
--
--<example>
--<if <eq this that>
--    <group <h2> This is equal to That </h2>>
--   <group <h2> This is NOT equal to That </h2>>>
--</example>
--
--Although <code>group</code> is a primitive in Meta-HTML, it could
--have been defined as:
--<example>
--  <defsubst group>%body</defsubst>
-+"Combine all of the material passed into a single Meta-HTML statement.\
-+This is the primitive for grouping multiple statements where only a\
-+single statement is expected.  Whitespace within the group is preserved,\
-+making this command useful for assigning to array variables.\
-+\
-+Some examples:\
-+<example>\
-+<set-var array[] =\
-+  <group this is element 0\
-+         this is element 1\
-+         this is element 2>>\
-+</example>\
-+\
-+<example>\
-+<if <eq this that>\
-+    <group <h2> This is equal to That </h2>>\
-+   <group <h2> This is NOT equal to That </h2>>>\
-+</example>\
-+\
-+Although <code>group</code> is a primitive in Meta-HTML, it could\
-+have been defined as:\
-+<example>\
-+  <defsubst group>%body</defsubst>\
- </example>")
- {
-   if ((body != (PAGE *)NULL) && (!empty_string_p (body->buffer)))
-@@ -128,16 +128,16 @@
- DEFUNX (pf_prog, &rest args, "Synonym for <funref FLOW-CONTROL group>.")
- 
- DEFUN (pf_concat, &rest args,
--"Concatenate all of the arguments given, creating a single token with no
--intervening whitespace. This is quite useful for those situations where
--intervening whitespace would look bad in the output, but the input source
--would be unreadable without any.
--
--For example:
--<example>
--<concat <textarea name=label rows=10 cols=40>
--        <get-var-once label>
--        </textarea>>
-+"Concatenate all of the arguments given, creating a single token with no\
-+intervening whitespace. This is quite useful for those situations where\
-+intervening whitespace would look bad in the output, but the input source\
-+would be unreadable without any.\
-+\
-+For example:\
-+<example>\
-+<concat <textarea name=label rows=10 cols=40>\
-+        <get-var-once label>\
-+        </textarea>>\
- </example>")
- {
-   register int i = 0;
-@@ -164,16 +164,16 @@
- }
- 
- DEFUN (pf_if, test &optional then else,
--"First <var test> is evaluated. If the result does not contain only
--whitespace characters the <var then> clause is evaluated, otherwise,
--the <var else> clause is evaluated. Although <Meta-HTML> has the
--relational operator <funref relational-operators or>, you can
--efficiently test for the presence of any of a group of variables
--with code similar to the following:
--<example>
--<if <get-var foo bar>
--   \"Either FOO or BAR is present\"
--  \"Neither FOO nor BAR is present\">
-+"First <var test> is evaluated. If the result does not contain only\
-+whitespace characters the <var then> clause is evaluated, otherwise,\
-+the <var else> clause is evaluated. Although <Meta-HTML> has the\
-+relational operator <funref relational-operators or>, you can\
-+efficiently test for the presence of any of a group of variables\
-+with code similar to the following:\
-+<example>\
-+<if <get-var foo bar>\
-+   \"Either FOO or BAR is present\"\
-+  \"Neither FOO nor BAR is present\">\
- </example>")
- {
-   char *test_clause = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -199,11 +199,11 @@
- }
- 
- DEFUN (pf_ifeq, this that &optional then else &key caseless=true,
--"The <var this> and <var that> clauses are evaluated.
--If the results are text-wise identical, then the <var then>
--clause is evaluated, otherwise, the <var else> clause is
--evaluated.  If <var caseless=true> is given, the text-wise
--comparison of the values is done with no regard to upper and lower
-+"The <var this> and <var that> clauses are evaluated.\
-+If the results are text-wise identical, then the <var then>\
-+clause is evaluated, otherwise, the <var else> clause is\
-+evaluated.  If <var caseless=true> is given, the text-wise\
-+comparison of the values is done with no regard to upper and lower\
- case distinctions.")
- {
-   char *left_clause = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -235,11 +235,11 @@
- }
- 
- DEFUN (pf_ifneq, this that &optional then else &key caseless=true,
--"The <var this> and <var that> clauses are evaluated.
--If the results are not text-wise identical, then the <var then>
--clause is evaluated, otherwise, the <var else> clause is
--evaluated.  If <var caseless=true> is given, the text-wise
--comparison of the values is done with no regard to upper and lower
-+"The <var this> and <var that> clauses are evaluated.\
-+If the results are not text-wise identical, then the <var then>\
-+clause is evaluated, otherwise, the <var else> clause is\
-+evaluated.  If <var caseless=true> is given, the text-wise\
-+comparison of the values is done with no regard to upper and lower\
- case distinctions.")
- {
-   char *left_clause = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -271,9 +271,9 @@
- }
- 
- DEFMACRO (pf_when, test,
--"Evaluate <var test>.  If the result is a non-empty string,
--then execute the <var body> statements.  This is a cleaner way to
--handle optional multiple statement execution rather than dealing with
-+"Evaluate <var test>.  If the result is a non-empty string,\
-+then execute the <var body> statements.  This is a cleaner way to\
-+handle optional multiple statement execution rather than dealing with\
- quoting everything inside of an <funref FLOW-CONTROL if> form.")
- {
-   char *test = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -285,20 +285,20 @@
- }
- 
- DEFUN (pf_break, ,
--"Unconditionally and immediately stop the execution of the nearest
--surrounding <funref FLOW-CONTROL while> or <funref ARRAYS foreach>.
--
--Example usage:
--<example>
--<while true>
--  ;;; Check to see if the user has changed the file.
--  <if <file-newer? <get-var foo.c> <get-var foo.o>>
--    <break>>
--
--  ;;; Not changed yet, so do some more in the background.
--  <process-chunk <get-var chunk-num>>
--  <increment chunk-num>
--</while>
-+"Unconditionally and immediately stop the execution of the nearest\
-+surrounding <funref FLOW-CONTROL while> or <funref ARRAYS foreach>.\
-+\
-+Example usage:\
-+<example>\
-+<while true>\
-+  ;;; Check to see if the user has changed the file.\
-+  <if <file-newer? <get-var foo.c> <get-var foo.o>>\
-+    <break>>\
-+\
-+  ;;; Not changed yet, so do some more in the background.\
-+  <process-chunk <get-var chunk-num>>\
-+  <increment chunk-num>\
-+</while>\
- </example>")
- {
-   page->attachment = (void *)bprintf_create_buffer ();
-@@ -308,19 +308,19 @@
- }
- 
- DEFUN (pf_return, &rest args,
--"Unconditionally and immediately stop the execution of the current
--function, macro, <funref FLOW-CONTROL while> or <funref ARRAYS
--foreach> statement, and return the evaluated <var args>.
--
--Example usage:
--<complete-example>
--<define-function countdown start stop>
--  <if <eq start stop>
--      <return BlastOff!>>
--  <get-var start>, 
--  <countdown <sub start 1> <get-var stop>>
--</define-function>
--<countdown 10 4>
-+"Unconditionally and immediately stop the execution of the current\
-+function, macro, <funref FLOW-CONTROL while> or <funref ARRAYS\
-+foreach> statement, and return the evaluated <var args>.\
-+\
-+Example usage:\
-+<complete-example>\
-+<define-function countdown start stop>\
-+  <if <eq start stop>\
-+      <return BlastOff!>>\
-+  <get-var start>, \
-+  <countdown <sub start 1> <get-var stop>>\
-+</define-function>\
-+<countdown 10 4>\
- </complete-example>")
- {
-   register int i = 0;
-@@ -344,12 +344,12 @@
- }
- 
- DEFVAR (mhtml::iteration-limit,
--"The use of this variable has been deprecated.  <funref flow-control while>
--loops last until either the <var test-clause> is met, or a
-+"The use of this variable has been deprecated.  <funref flow-control while>\
-+loops last until either the <var test-clause> is met, or a\
- <funref flow-control break> statement is seen.")
- 
- DEFMACRO (pf_while, test,
--"<var test> is evaluated.  If the result is a non-empty string, then
-+"<var test> is evaluated.  If the result is a non-empty string, then\
- the <var body> statements are evaluated, and the process is repeated.")
- {
-   char *test = get_positional_arg (vars, 0);
-@@ -490,28 +490,28 @@
- 
- DEFUN (pf_var_case, &optional name=value consequent... default
-        default-consequent,
--"For each <var name=value> pair, the value of <var name> is
--string-wise compared with <var value>.  If they are identical, then
--the corresponding <var consequent> code is performed, and its value is
--the return value of the <example code><var-case></example> form.
--
--If none of the clauses match, and there is a <code>default</code>
--clause, then the <var default-consequent> is evaluated, and its return
--value is the return value of the <example code><var-case></example>
--form.
--
--<code>var-case</code> is especially useful as a `traffic
--switch' to select one of several actions based on a user button
--press.
--
--For example:
--
--<example>
--<var-case
--   action=\"Save Files\"      <save-files <get-var posted::files[]>>
--   action=\"Delete Files\"    <delete-files <get-var posted::files[]>>
--   action=\"Rename Files\"    <redirect
--                                 rename-files.mhtml?<cgi-encode files>>>
-+"For each <var name=value> pair, the value of <var name> is\
-+string-wise compared with <var value>.  If they are identical, then\
-+the corresponding <var consequent> code is performed, and its value is\
-+the return value of the <example code><var-case></example> form.\
-+\
-+If none of the clauses match, and there is a <code>default</code>\
-+clause, then the <var default-consequent> is evaluated, and its return\
-+value is the return value of the <example code><var-case></example>\
-+form.\
-+\
-+<code>var-case</code> is especially useful as a `traffic\
-+switch' to select one of several actions based on a user button\
-+press.\
-+\
-+For example:\
-+\
-+<example>\
-+<var-case\
-+   action=\"Save Files\"      <save-files <get-var posted::files[]>>\
-+   action=\"Delete Files\"    <delete-files <get-var posted::files[]>>\
-+   action=\"Rename Files\"    <redirect\
-+                                 rename-files.mhtml?<cgi-encode files>>>\
- </example>")
- {
-   pf_var_case_internal (PassPFunArgs, 0);
-@@ -519,33 +519,33 @@
- 
- DEFUN (pf_match_case, &optional name=regexp consequent... default
-        default-consequent,
--"For each <var name=value> pair, the value of <var name> is
--compared with the regular expression <var regexp>.  If the expression matches,
--then the corresponding <var consequent> code is performed, and its value is
--the return value of the <example code><match-case></example> form.
--
--If none of the clauses match, and there is a <code>default</code>
--clause, then the <var default-consequent> is evaluated, and its return
--value is the return value of the <example code><match-case></example>
--form.
--
--<code>match-case</code> is especially useful as a `traffic
--switch' to select one of several actions based on a user button
-+"For each <var name=value> pair, the value of <var name> is\
-+compared with the regular expression <var regexp>.  If the expression 
matches,\
-+then the corresponding <var consequent> code is performed, and its value is\
-+the return value of the <example code><match-case></example> form.\
-+\
-+If none of the clauses match, and there is a <code>default</code>\
-+clause, then the <var default-consequent> is evaluated, and its return\
-+value is the return value of the <example code><match-case></example>\
-+form.\
-+\
-+<code>match-case</code> is especially useful as a `traffic\
-+switch' to select one of several actions based on a user button\
- press.")
- {
-   pf_var_case_internal (PassPFunArgs, 1);
- }
- 
- DEFMACRO (pf_with, &optional var=val...,
--"Execute <var body> in an environment where <var var> has the value
--<var val>.  Execution takes place in the current package.  After
--execution, the value of <var var> is restored to the value that it
--had before encountering the <code>with</code> macro.
--
--<complete-example>
--<set-var x=hello>
--<with x=1 z=<get-var foo>> <get-var x> </with>
--<get-var x>
-+"Execute <var body> in an environment where <var var> has the value\
-+<var val>.  Execution takes place in the current package.  After\
-+execution, the value of <var var> is restored to the value that it\
-+had before encountering the <code>with</code> macro.\
-+\
-+<complete-example>\
-+<set-var x=hello>\
-+<with x=1 z=<get-var foo>> <get-var x> </with>\
-+<get-var x>\
- </complete-example>")
- {
-   register int i;
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/macrofuncs.c 
work/metahtml-5.091/libmhtml/macrofuncs.c
---- work/metahtml-5.091/libmhtml/macrofuncs.c  1998-11-11 21:19:38.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/macrofuncs.c  2013-04-02 22:37:09.227188118 
+0200
-@@ -65,151 +65,151 @@
- 
- PACKAGE_INITIALIZER (initialize_macro_functions)
- DEFINE_SECTION (MACRO-COMMANDS, macros; functions; new operators, 
--"<meta-html> contains a powerful <i>macro</i> facility, which allows
--you to define your own commands.  Such commands are first-class
--objects in <meta-html>; they may even supersede the compiled in
--definitions.
--
--There are two types of macros that you can define.  One type is a
--<i>complex-tag</i>; it consists of an opening tag, a body, and a
--closing tag.  The other type is a <i>simple-tag</i>; it only has an
--opening tag.
--
--You create a macro by using one of the macro-defining commands.  In
--the body of the definition, special keywords can be placed, which
--affect what is produced when the macro is invoked.  As a macro writer,
--you have logical access to the arguments passed to the macro in the
--opening tag, and for complex-tags, you have access to the body which
-+"<meta-html> contains a powerful <i>macro</i> facility, which allows\
-+you to define your own commands.  Such commands are first-class\
-+objects in <meta-html>; they may even supersede the compiled in\
-+definitions.\
-+\
-+There are two types of macros that you can define.  One type is a\
-+<i>complex-tag</i>; it consists of an opening tag, a body, and a\
-+closing tag.  The other type is a <i>simple-tag</i>; it only has an\
-+opening tag.\
-+\
-+You create a macro by using one of the macro-defining commands.  In\
-+the body of the definition, special keywords can be placed, which\
-+affect what is produced when the macro is invoked.  As a macro writer,\
-+you have logical access to the arguments passed to the macro in the\
-+opening tag, and for complex-tags, you have access to the body which\
- appears between the opening and closing tags.  ",
- 
--"In the opening tag of the macro defining command, several special
--<i>meta-arguments</i> may be used to affect the binding method used at
--invocation time to bind the passed parameters to the formal arguments.
--
--<ul> <li> <b>&optional</b><br> Indicates that the following named
--parameter is optional, and does not have to be supplied.  While at
--this time Meta-HTML does not complain if there are missing arguments
--at invocation time, it is likely that the byte-compiler will require
--function calls to match the formal parameters of the defined function.
--
--<example>
--<defun func x &optional y> <get-var x>, <get-var y> </defun>
--</example>
--
--<li> <b>&key</b><br> Indicates that the following named parameters
--will be bound by the caller placing the name of the parameter followed
--by an equals sign, and the value of that parameter in the opening tag
--of the function call.  Thus, keyword arguments may appear in any order
--in the calling function.  Here is an example of defining a tag called
--<tag image> which will add the width and hieght if they are not
--already present:
--
--<example>
--<defun image &key src width height>
--  <if <or <not <get-var width>>
--        <not <get-var height>>>
--      <find-image-xy <get-var src> width height>>
--  <img src=\"<get-var src>\" width=<get-var width> height=<get-var height>>
--</defun>
--</example>
--
--<li> <b>&rest</b><br> Gobbles up any remaining arguments to the
--function, collecting them in the named parameter which follows the
--<i>&rest</i>.  The arguments may be gathered into a single string, or
--into an array, with one argument per slot.  This is controlled by
--writing the formal parameter name either with or without sqaure
--braces: (i.e., <code>foo[]</code> or <code>foo</code>).
--
--<example>
--<defun func req-arg &rest rest-args[]>
--  <ol>
--    <foreach x rest-args>
--      <li> <get-var x> </li>
--    </foreach>
--  </ol>
--</defun>
--</example>
--
--<li> <b>&body</b><br> Causes the following named parameter to be bound
--to the body of the invoked function or macro.  For <tag defun> and
--<tag defsubst>, this is all of the material which appeared in the
--opening tag, while for <tag defmacro> and <tag defweakmacro>, this is
--all of the material that appeared between the opening and closing
--tags.
--
--<example>
--<defmacro with-debugging-output &body body>
--  <with-open-stream debug-stream /tmp/debug-output mode=append>
--    <stream-put debug-stream <get-var body>>
--  </with-open-stream>
--</defmacro>
--</example>
--
--<li> <b>&unevalled</b><br> Modifies the binding rule of a formal
--parameter such that the material which is bound is not evaluated
--before the binding takes place.  This is almost equivalent to using
--the <b>%0</b> ... <b>%9</b>, or <b>%body</b> textual substitutions,
--but the arguments are bound to variables instead of pure textual
--substitution.  Here is how one might write a function which takes an
--expression, and produces the expression and the evaluation of the
--expression as output:
--
--<example>
--<defun debug-expr &body &unevalled qbody &body body>
--  <get-var-once qbody> EVALS TO: <get-var-once body>
--</defun>
--</example>
--
--Such an invocation might look like:
--<example>
--  <set-var x=4 y=5>
--  <debug-expr <add x y>>
--</example>
--
--which would produce:
--<example>
--  <add x y> EVALS TO: 9
--</example>
--</ul>
--
--Here is a ridiculous function, which uses all of the special
--meta-parameters:
--<example>
--<defsubst func req &optional opt &key k1 &unevalled k2 &body b &rest args[]>
--   REQ: <get-var-once req>,
--   OPT: <get-var-once opt>
--    K1: <get-var-once k1>
--    K2: <get-var-once k2>
--  BODY: <get-var-once b>
--  REST: <foreach arg args><get-var-once arg> </foreach>
--</defsubst>
--</example>
--
--And, here are examples of calling that function:
--
--Example 1:
--<example>
--<set-var key-1-arg=key-1>
--<func required k2=\"Unevalled\" opt-arg k1=<get-var key-1-arg> rest0 rest1>
--   REQ: required,
--   OPT: opt-arg
--    K1: key-1
--    K2: Unevalled
--  BODY: required k2=\"Unevalled\" opt-arg k1=key-1 rest0 rest1
--  REST: rest0 rest1
--</example>
--Example 2:
--<example>
--<func k2=<get-var k1> required rest0 rest1>
--   REQ: required,
--   OPT: rest0
--    K1: 
--    K2: <get-var k1>
--  BODY: k2= required rest0 rest1
--  REST: rest1
--</example>
--
--Notice how in the second example, our optional parameter <b>opt</b>
-+"In the opening tag of the macro defining command, several special\
-+<i>meta-arguments</i> may be used to affect the binding method used at\
-+invocation time to bind the passed parameters to the formal arguments.\
-+\
-+<ul> <li> <b>&optional</b><br> Indicates that the following named\
-+parameter is optional, and does not have to be supplied.  While at\
-+this time Meta-HTML does not complain if there are missing arguments\
-+at invocation time, it is likely that the byte-compiler will require\
-+function calls to match the formal parameters of the defined function.\
-+\
-+<example>\
-+<defun func x &optional y> <get-var x>, <get-var y> </defun>\
-+</example>\
-+\
-+<li> <b>&key</b><br> Indicates that the following named parameters\
-+will be bound by the caller placing the name of the parameter followed\
-+by an equals sign, and the value of that parameter in the opening tag\
-+of the function call.  Thus, keyword arguments may appear in any order\
-+in the calling function.  Here is an example of defining a tag called\
-+<tag image> which will add the width and hieght if they are not\
-+already present:\
-+\
-+<example>\
-+<defun image &key src width height>\
-+  <if <or <not <get-var width>>\
-+        <not <get-var height>>>\
-+      <find-image-xy <get-var src> width height>>\
-+  <img src=\"<get-var src>\" width=<get-var width> height=<get-var height>>\
-+</defun>\
-+</example>\
-+\
-+<li> <b>&rest</b><br> Gobbles up any remaining arguments to the\
-+function, collecting them in the named parameter which follows the\
-+<i>&rest</i>.  The arguments may be gathered into a single string, or\
-+into an array, with one argument per slot.  This is controlled by\
-+writing the formal parameter name either with or without sqaure\
-+braces: (i.e., <code>foo[]</code> or <code>foo</code>).\
-+\
-+<example>\
-+<defun func req-arg &rest rest-args[]>\
-+  <ol>\
-+    <foreach x rest-args>\
-+      <li> <get-var x> </li>\
-+    </foreach>\
-+  </ol>\
-+</defun>\
-+</example>\
-+\
-+<li> <b>&body</b><br> Causes the following named parameter to be bound\
-+to the body of the invoked function or macro.  For <tag defun> and\
-+<tag defsubst>, this is all of the material which appeared in the\
-+opening tag, while for <tag defmacro> and <tag defweakmacro>, this is\
-+all of the material that appeared between the opening and closing\
-+tags.\
-+\
-+<example>\
-+<defmacro with-debugging-output &body body>\
-+  <with-open-stream debug-stream /tmp/debug-output mode=append>\
-+    <stream-put debug-stream <get-var body>>\
-+  </with-open-stream>\
-+</defmacro>\
-+</example>\
-+\
-+<li> <b>&unevalled</b><br> Modifies the binding rule of a formal\
-+parameter such that the material which is bound is not evaluated\
-+before the binding takes place.  This is almost equivalent to using\
-+the <b>%0</b> ... <b>%9</b>, or <b>%body</b> textual substitutions,\
-+but the arguments are bound to variables instead of pure textual\
-+substitution.  Here is how one might write a function which takes an\
-+expression, and produces the expression and the evaluation of the\
-+expression as output:\
-+\
-+<example>\
-+<defun debug-expr &body &unevalled qbody &body body>\
-+  <get-var-once qbody> EVALS TO: <get-var-once body>\
-+</defun>\
-+</example>\
-+\
-+Such an invocation might look like:\
-+<example>\
-+  <set-var x=4 y=5>\
-+  <debug-expr <add x y>>\
-+</example>\
-+\
-+which would produce:\
-+<example>\
-+  <add x y> EVALS TO: 9\
-+</example>\
-+</ul>\
-+\
-+Here is a ridiculous function, which uses all of the special\
-+meta-parameters:\
-+<example>\
-+<defsubst func req &optional opt &key k1 &unevalled k2 &body b &rest args[]>\
-+   REQ: <get-var-once req>,\
-+   OPT: <get-var-once opt>\
-+    K1: <get-var-once k1>\
-+    K2: <get-var-once k2>\
-+  BODY: <get-var-once b>\
-+  REST: <foreach arg args><get-var-once arg> </foreach>\
-+</defsubst>\
-+</example>\
-+\
-+And, here are examples of calling that function:\
-+\
-+Example 1:\
-+<example>\
-+<set-var key-1-arg=key-1>\
-+<func required k2=\"Unevalled\" opt-arg k1=<get-var key-1-arg> rest0 rest1>\
-+   REQ: required,\
-+   OPT: opt-arg\
-+    K1: key-1\
-+    K2: Unevalled\
-+  BODY: required k2=\"Unevalled\" opt-arg k1=key-1 rest0 rest1\
-+  REST: rest0 rest1\
-+</example>\
-+Example 2:\
-+<example>\
-+<func k2=<get-var k1> required rest0 rest1>\
-+   REQ: required,\
-+   OPT: rest0\
-+    K1: \
-+    K2: <get-var k1>\
-+  BODY: k2= required rest0 rest1\
-+  REST: rest1\
-+</example>\
-+\
-+Notice how in the second example, our optional parameter <b>opt</b>\
- got bound to the second non-keyword argument <code>rest0</code>!")
- 
- DEFMACROX (pf_defsubst, name &optional named-parameters &key
-@@ -218,25 +218,25 @@
- 
- DEFMACRO (pf_define_tag, name &optional named-parameters &key
-         package=packname whitespace=delete,
--"Define <var name> as a simple tag.  Within <var body>, the values of
--<code>%0...%9</code> are defined to be the positional arguments that
--were found in the opening tag of the invocation, and
--<code>%body</code> is all of that material in a single string.
--
--If any <var named-parameter>s are supplied, the values that were
--passed in the opening tag are evaluated and bound to the named
--parameters.
--
--A keyword argument of <var package-name> wraps the entire body of the
--macro in an <funref packages in-package> statement.
--
--The keyword argument <var whitespace> can be set to the string
--<code>delete</code> to remove whitespace from the starts and ends of
--lines in the subst definition before it is stored.  This effectively
--concatenates all of the lines of the subst definition into a single
--long line.
--
--Also see <funref macro-commands define-function> and <funref
-+"Define <var name> as a simple tag.  Within <var body>, the values of\
-+<code>%0...%9</code> are defined to be the positional arguments that\
-+were found in the opening tag of the invocation, and\
-+<code>%body</code> is all of that material in a single string.\
-+\
-+If any <var named-parameter>s are supplied, the values that were\
-+passed in the opening tag are evaluated and bound to the named\
-+parameters.\
-+\
-+A keyword argument of <var package-name> wraps the entire body of the\
-+macro in an <funref packages in-package> statement.\
-+\
-+The keyword argument <var whitespace> can be set to the string\
-+<code>delete</code> to remove whitespace from the starts and ends of\
-+lines in the subst definition before it is stored.  This effectively\
-+concatenates all of the lines of the subst definition into a single\
-+long line.\
-+\
-+Also see <funref macro-commands define-function> and <funref\
- macro-commands define-container>.")
- {
-   char *temp = get_positional_arg (vars, 0);
-@@ -256,40 +256,40 @@
- 
- DEFMACRO (pf_define_container, name &optional named-parameters
-         &key package=packname whitespace=delete,
-- "Define <var name> as a complex tag. At invocation time, various
--substitutions are made within <var body>.  Specifically, if the text
--string is:
--
--<ul>
--<li><b>%0</b>,<b>%1</b>, and so on, upto <b>%9</b> are replaced
--with the exact text of the positional arguments that were found in
--the opening tag of the invocation
--
--<li><b>%attributes</b> is replaced by all of the arguments which
--appeared in the opening tag.
--
--<li><b>%body</b> is replaced with the exact text of the material
--that appeared between the opening and closing tags
--
--<li><b>%qbody</b> is similar to <b>%body</b>, but the string is
--first surrounded by double quotes, and double quote characters which
--appear in the string are escaped.
--
--<li><b>%xbody</b> is replaced with the evaluation of the material
--that appeared between the opening and closing tags
--</ul>
--
--If any <var named-parameter>s are supplied, the values that were
--passed in the opening tag are evaluated and bound to the named
--parameters.
--
--A keyword argument of <var package-name> wraps the entire body of the
--macro in an <funref packages in-package> statement.
--
--The keyword argument <var whitespace> can be set to the string
--<code>delete</code> to remove whitespace from the starts and ends of
--lines in the macro definition before it is stored.  This effectively
--concatenates all of the lines of the macro definition into a single
-+ "Define <var name> as a complex tag. At invocation time, various\
-+substitutions are made within <var body>.  Specifically, if the text\
-+string is:\
-+\
-+<ul>\
-+<li><b>%0</b>,<b>%1</b>, and so on, upto <b>%9</b> are replaced\
-+with the exact text of the positional arguments that were found in\
-+the opening tag of the invocation\
-+\
-+<li><b>%attributes</b> is replaced by all of the arguments which\
-+appeared in the opening tag.\
-+\
-+<li><b>%body</b> is replaced with the exact text of the material\
-+that appeared between the opening and closing tags\
-+\
-+<li><b>%qbody</b> is similar to <b>%body</b>, but the string is\
-+first surrounded by double quotes, and double quote characters which\
-+appear in the string are escaped.\
-+\
-+<li><b>%xbody</b> is replaced with the evaluation of the material\
-+that appeared between the opening and closing tags\
-+</ul>\
-+\
-+If any <var named-parameter>s are supplied, the values that were\
-+passed in the opening tag are evaluated and bound to the named\
-+parameters.\
-+\
-+A keyword argument of <var package-name> wraps the entire body of the\
-+macro in an <funref packages in-package> statement.\
-+\
-+The keyword argument <var whitespace> can be set to the string\
-+<code>delete</code> to remove whitespace from the starts and ends of\
-+lines in the macro definition before it is stored.  This effectively\
-+concatenates all of the lines of the macro definition into a single\
- long line.")
- {
-   char *temp = get_positional_arg (vars, 0);
-@@ -305,37 +305,37 @@
- 
- DEFMACRO (pf_defweakmacro, name  &optional named-parameters
-         &key package=packname whitespace=delete,
--"<code>defweakmacro</code> is exactly like <funref macro-commands
--define-container>, with one exception: at invocation time, the closing
--tag does not have to be present -- in that case, the invocation is
--treated as if the definition were a <funref macro-commands defsubst>.
--
--This facility exists primarily to allow the redefinition of standard
--HTML constructs which allow the closing tag to be missing, and yet,
--still inexplicably operate correctly.
--
--For example, the <example code><p></example> tag is often used without
--its closing counterpart of <example code></p></example>.  If you
--wished to redefine <example code><p></example> to do something special
--when a closing tag was found, you might write the following
--definition:
--
--<example>
--<defweakmacro p>
--  <verbatim><P></verbatim>
--  <when %qbody> Look ma! %body See? </when>
--  <verbatim></P></verbatim>
--</defweakmacro>
--</example>
--
--then, a simple <example code><P></example> would produce
--<example code><P></P></example code>, while a complex invocation, such as:
--<example>
--<P> this is a list </P>
--</example>
--produces
--<example>
--  <P> Look ma!  this is a list See? </P>
-+"<code>defweakmacro</code> is exactly like <funref macro-commands\
-+define-container>, with one exception: at invocation time, the closing\
-+tag does not have to be present -- in that case, the invocation is\
-+treated as if the definition were a <funref macro-commands defsubst>.\
-+\
-+This facility exists primarily to allow the redefinition of standard\
-+HTML constructs which allow the closing tag to be missing, and yet,\
-+still inexplicably operate correctly.\
-+\
-+For example, the <example code><p></example> tag is often used without\
-+its closing counterpart of <example code></p></example>.  If you\
-+wished to redefine <example code><p></example> to do something special\
-+when a closing tag was found, you might write the following\
-+definition:\
-+\
-+<example>\
-+<defweakmacro p>\
-+  <verbatim><P></verbatim>\
-+  <when %qbody> Look ma! %body See? </when>\
-+  <verbatim></P></verbatim>\
-+</defweakmacro>\
-+</example>\
-+\
-+then, a simple <example code><P></example> would produce\
-+<example code><P></P></example code>, while a complex invocation, such as:\
-+<example>\
-+<P> this is a list </P>\
-+</example>\
-+produces\
-+<example>\
-+  <P> Look ma!  this is a list See? </P>\
- </example>")
- {
-   char *temp = get_positional_arg (vars, 0);
-@@ -360,26 +360,26 @@
- 
- DEFMACRO (pf_define_function, name  &optional named-parameters
-         &key package=packname whitespace=delete,
--"Define <var name> as a simple tag.
--
--The only differences between <funref macro-commands define-function>
--and <funref macro-commands define-tag> are:
--<ol>
--<li> The <i>whitespace=delete</i> option is assumed.
--<li> The <var named-parameter>s are evaluated in the context of the
--caller, not of the definition of the defun.
--<li> By default, a local package is wrapped around the invocation of
--the defined function.  This can be changed by the use of the <var
--package=packname> keyword.
--</ol>
--
--<example>
--<define-function factorial num>
--   <if <lt num 2> 1
--      <mul num <factorial <sub num 1>>>>
--</define-function>
--.blank
--<factorial 5> --> 120
-+"Define <var name> as a simple tag.\
-+\
-+The only differences between <funref macro-commands define-function>\
-+and <funref macro-commands define-tag> are:\
-+<ol>\
-+<li> The <i>whitespace=delete</i> option is assumed.\
-+<li> The <var named-parameter>s are evaluated in the context of the\
-+caller, not of the definition of the defun.\
-+<li> By default, a local package is wrapped around the invocation of\
-+the defined function.  This can be changed by the use of the <var\
-+package=packname> keyword.\
-+</ol>\
-+\
-+<example>\
-+<define-function factorial num>\
-+   <if <lt num 2> 1\
-+      <mul num <factorial <sub num 1>>>>\
-+</define-function>\
-+.blank\
-+<factorial 5> --> 120\
- </example>")
- {
-   char *temp = get_positional_arg (vars, 0);
-@@ -394,8 +394,8 @@
- }
- 
- DEFUN (pf_undef, &optional name...,
--"Remove the definition of a user-defined <funref macros defun>,
--<funref macros defmacro> or <funref macros defsubst>.  For every <var
-+"Remove the definition of a user-defined <funref macros defun>,\
-+<funref macros defmacro> or <funref macros defsubst>.  For every <var\
- name> that has been defined in this way, the definition is removed.")
- {
-   register int i;
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/mathfuncs.c 
work/metahtml-5.091/libmhtml/mathfuncs.c
---- work/metahtml-5.091/libmhtml/mathfuncs.c   1999-04-12 10:40:24.000000000 
+0200
-+++ work/metahtml-5.091/libmhtml/mathfuncs.c   2013-04-02 22:31:28.527169241 
+0200
-@@ -78,50 +78,50 @@
- PACKAGE_INITIALIZER (initialize_arithmetic_functions)
- DEFINE_SECTION (ARITHMETIC-OPERATORS,
-               math; addition; subtraction; artithmetic, 
--"<Meta-HTML> contains a small set of commands for operating on
--numerical quantities.
--
--All of the arithmetic operators described in this section can accept a
--number, or simply the name of a variable, which is then looked up as
--if it had been written with <example code><get-var ...></example>.
--
--That is to say:
--
--<example>
--   <set-var total = <add <get-var subtotals[0]>
--                         <get-var subtotals[current]>>>
--</example>
--
--can be written as:
--
--<example>
--   <set-var total = <add subtotals[0] subtotals[current]>>
--</example>
--
-+"<Meta-HTML> contains a small set of commands for operating on\
-+numerical quantities.\
-+\
-+All of the arithmetic operators described in this section can accept a\
-+number, or simply the name of a variable, which is then looked up as\
-+if it had been written with <example code><get-var ...></example>.\
-+\
-+That is to say:\
-+\
-+<example>\
-+   <set-var total = <add <get-var subtotals[0]>\
-+                         <get-var subtotals[current]>>>\
-+</example>\
-+\
-+can be written as:\
-+\
-+<example>\
-+   <set-var total = <add subtotals[0] subtotals[current]>>\
-+</example>\
-+\
- ",
--"The binary arithmetic operators always expect two arguments, and will
--produce a warning message in <funref DEBUGGING-COMMANDS DEBUGGING-OUTPUT>
--when given too few arguments.
--
--You can perform floating point arithmetic if one or both of the
--arguments is already a floating point number:
--
--<example>
--  <div 10 3>    --> 3
--  <div 10.0 3>  --> 3.33
--</example>
-+"The binary arithmetic operators always expect two arguments, and will\
-+produce a warning message in <funref DEBUGGING-COMMANDS DEBUGGING-OUTPUT>\
-+when given too few arguments.\
-+\
-+You can perform floating point arithmetic if one or both of the\
-+arguments is already a floating point number:\
-+\
-+<example>\
-+  <div 10 3>    --> 3\
-+  <div 10.0 3>  --> 3.33\
-+</example>\
- ")
- 
- DEFVAR (mhtml::decimal-places,
--"Controls the number of decimal places which arithmetic functions
--produce.  The default value of this variable is <code>2</code>, but
--for times when you need greater resolution in your calculations, you
--may wish to set it higher.
--<complete-example>
--<set-var mhtml::decimal-places = 10>
--To 10 places: <div 1 .34567>
--<unset-var mhtml::decimal-places>
--To  2 places: <div 1 .34567>
-+"Controls the number of decimal places which arithmetic functions\
-+produce.  The default value of this variable is <code>2</code>, but\
-+for times when you need greater resolution in your calculations, you\
-+may wish to set it higher.\
-+<complete-example>\
-+<set-var mhtml::decimal-places = 10>\
-+To 10 places: <div 1 .34567>\
-+<unset-var mhtml::decimal-places>\
-+To  2 places: <div 1 .34567>\
- </complete-example>")
- 
- 
-@@ -203,25 +203,25 @@
- void mhtml_set_output_radix (int radix) { mhtml_output_radix = radix; }
- 
- DEFUN (pf_set_output_radix, new-radix,
--"Set the output radix for numbers produced by arithmetic operations to
--<var new-radix>, which is specified in decimal.  Returns the value of
--the previous output radix.  Note that there is no corresponding function
--for setting the input radix.  If the value of <var new-radix> is a number
--between  2 and 32 decimal, inclusive, then the output radix is set to that
--value.  <var new-radix> can also be the name of a function of one argument,
--which should be called to produce the appropriate output.
--
--If the argument to <tag set-output-radix> does not fall between 2 and 32
--inclusive, and is not the name of a defined function, then the output radix
--remains unchanged, and <tag set-output-radix> produces no output.
--
--Examples:
--<example>
--<set-output-radix 16>                --> 10
--<add 0x3e 1>                         --> 0x3f
--<set-output-radix 10>                --> 16
--<set-output-radix number-to-english> --> 10
--<add 23.4 32.32>                     --> Fifty-Five point Seven Two
-+"Set the output radix for numbers produced by arithmetic operations to\
-+<var new-radix>, which is specified in decimal.  Returns the value of\
-+the previous output radix.  Note that there is no corresponding function\
-+for setting the input radix.  If the value of <var new-radix> is a number\
-+between  2 and 32 decimal, inclusive, then the output radix is set to that\
-+value.  <var new-radix> can also be the name of a function of one argument,\
-+which should be called to produce the appropriate output.\
-+\
-+If the argument to <tag set-output-radix> does not fall between 2 and 32\
-+inclusive, and is not the name of a defined function, then the output radix\
-+remains unchanged, and <tag set-output-radix> produces no output.\
-+\
-+Examples:\
-+<example>\
-+<set-output-radix 16>                --> 10\
-+<add 0x3e 1>                         --> 0x3f\
-+<set-output-radix 10>                --> 16\
-+<set-output-radix number-to-english> --> 10\
-+<add 23.4 32.32>                     --> Fifty-Five point Seven Two\
- </example>")
- {
-   char *new_radix = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -630,117 +630,117 @@
- }
- 
- DEFUN (pf_gt, arg1 arg2 &rest more-args...,
--"Returns \"true\" if the numeric value of <var arg1> is greater than
--the numeric value of <var arg2> (which is greater than <var
--more-args>.  Just as with the arithmetic functions (<secref
--Arithmetic-Operators>), the arguments may be the names of
--variables containing numeric values, and not just the values
--themselves.  In that case, <code>gt</code> performs an implicit call
--to <example code><get-var ...></example> in order to get the value to
--operate on.
--
--Examples:
--<example>
--<gt 4 3>            --> true
--<set-var x=3.4 y=3.5>
--<gt x y>            -->
--<gt y x>            --> true
--<gt <get-var y> x>  --> true
--
--<defun between? item high low>
--  <gt high item low>
--</defun>
--
--<between? 7 8 6>    --> true
-+"Returns \"true\" if the numeric value of <var arg1> is greater than\
-+the numeric value of <var arg2> (which is greater than <var\
-+more-args>.  Just as with the arithmetic functions (<secref\
-+Arithmetic-Operators>), the arguments may be the names of\
-+variables containing numeric values, and not just the values\
-+themselves.  In that case, <code>gt</code> performs an implicit call\
-+to <example code><get-var ...></example> in order to get the value to\
-+operate on.\
-+\
-+Examples:\
-+<example>\
-+<gt 4 3>            --> true\
-+<set-var x=3.4 y=3.5>\
-+<gt x y>            -->\
-+<gt y x>            --> true\
-+<gt <get-var y> x>  --> true\
-+\
-+<defun between? item high low>\
-+  <gt high item low>\
-+</defun>\
-+\
-+<between? 7 8 6>    --> true\
- </example>")
- {
-   arithmetic_process (pf_GT, PassPFunArgs);
- }
- 
- DEFUN (pf_lt, arg1 arg2 &rest more-args,
--"Returns \"true\" if the numeric value of <var arg1> is less than
--the numeric value of <var arg2> (which is less than <var more-args>.
--Just as with the arithmetic functions (<secref Arithmetic-Operators>),
--<var arg1> and <var arg2> may be the names of variables containing
--numeric values, and not just the values themselves.  In that case,
--<code>lt</code> performs an implicit call to <example code><get-var 
...></example> in order to get the value to operate on.
--
--Examples:
--<example>
--<lt 3 4>            --> true
--<lt 4 3>            --> 
--<set-var x=3.4 y=3.5>
--<lt x y>            --> true
--<lt y x>            --> 
--<lt x <get-var y>>  --> true
--<lt 4 5 6>          --> true
-+"Returns \"true\" if the numeric value of <var arg1> is less than\
-+the numeric value of <var arg2> (which is less than <var more-args>.\
-+Just as with the arithmetic functions (<secref Arithmetic-Operators>),\
-+<var arg1> and <var arg2> may be the names of variables containing\
-+numeric values, and not just the values themselves.  In that case,\
-+<code>lt</code> performs an implicit call to <example code><get-var 
...></example> in order to get the value to operate on.\
-+\
-+Examples:\
-+<example>\
-+<lt 3 4>            --> true\
-+<lt 4 3>            --> \
-+<set-var x=3.4 y=3.5>\
-+<lt x y>            --> true\
-+<lt y x>            --> \
-+<lt x <get-var y>>  --> true\
-+<lt 4 5 6>          --> true\
- </example>")
- {
-   arithmetic_process (pf_LT, PassPFunArgs);
- }
- 
- DEFUN (pf_eq, arg1 arg2,
--"Returns \"true\" if the numeric value of <var arg1> is exactly equal to
--the numeric value of <var arg2>.  Just as with the arithmetic
--functions (<secref Arithmetic-Operators>), the arguments
--may be the names of variables containing numeric values, and not just
--the values themselves.  In that case, <code>eq</code> performs an
--implicit call to <example code><get-var ...></example> in order to get
--the value to operate on.
--
--Examples:
--<example>
--<eq 3 4>              --> 
--<eq 3 3>              --> true
--<eq 3.0 3>            --> true
--<set-var x=3.01>
--<eq <get-var x> 3.01> --> true
-+"Returns \"true\" if the numeric value of <var arg1> is exactly equal to\
-+the numeric value of <var arg2>.  Just as with the arithmetic\
-+functions (<secref Arithmetic-Operators>), the arguments\
-+may be the names of variables containing numeric values, and not just\
-+the values themselves.  In that case, <code>eq</code> performs an\
-+implicit call to <example code><get-var ...></example> in order to get\
-+the value to operate on.\
-+\
-+Examples:\
-+<example>\
-+<eq 3 4>              --> \
-+<eq 3 3>              --> true\
-+<eq 3.0 3>            --> true\
-+<set-var x=3.01>\
-+<eq <get-var x> 3.01> --> true\
- </example>")
- {
-   arithmetic_process (pf_EQ, PassPFunArgs);
- }
- 
- DEFUN (pf_neq, arg1 arg2,
--"Returns \"true\" if the numeric value of <var arg1> is NOT equal to
--the numeric value of <var arg2>.  Just as with the arithmetic
--functions (<secref Arithmetic-Operators>), the arguments
--may be the names of variables containing numeric values, and not just
--the values themselves.  In that case, <code>eq</code> performs an
--implicit call to <example code><get-var ...></example> in order to get
--the value to operate on.
--
--Examples:
--<example>
--<neq 3 4>              --> true
--<neq 3 3>              --> 
--<neq 3.0 3>            --> 
--<set-var x=3.01>
--<neq <get-var x> 3.00> --> true
-+"Returns \"true\" if the numeric value of <var arg1> is NOT equal to\
-+the numeric value of <var arg2>.  Just as with the arithmetic\
-+functions (<secref Arithmetic-Operators>), the arguments\
-+may be the names of variables containing numeric values, and not just\
-+the values themselves.  In that case, <code>eq</code> performs an\
-+implicit call to <example code><get-var ...></example> in order to get\
-+the value to operate on.\
-+\
-+Examples:\
-+<example>\
-+<neq 3 4>              --> true\
-+<neq 3 3>              --> \
-+<neq 3.0 3>            --> \
-+<set-var x=3.01>\
-+<neq <get-var x> 3.00> --> true\
- </example>")
- {
-   arithmetic_process (pf_NEQ, PassPFunArgs);
- }
- 
- DEFUN (pf_add, arg1 arg2 &rest more-args,
--"Returns the summation of all of the arguments passed.
--
--Examples:
--<example>
--<add 1 2>        --> 3
--<add -1 2 2 1>   --> 4
-+"Returns the summation of all of the arguments passed.\
-+\
-+Examples:\
-+<example>\
-+<add 1 2>        --> 3\
-+<add -1 2 2 1>   --> 4\
- </example>")
- {
-   arithmetic_process (pf_ADD, PassPFunArgs);
- }
- 
- DEFUN (pf_sub, arg1 arg2 &rest more-args,
--"Returns the difference of all of the arguments passed.
--
--Examples:
--<example>
--<sub 2 1>        --> 1
--<sub 6 2 1>      --> 3
--<sub -1 -2>      --> 1
-+"Returns the difference of all of the arguments passed.\
-+\
-+Examples:\
-+<example>\
-+<sub 2 1>        --> 1\
-+<sub 6 2 1>      --> 3\
-+<sub -1 -2>      --> 1\
- </example>")
- {
-   if ((body == (PAGE *)NULL) || (empty_string_p (body->buffer)))
-@@ -755,53 +755,53 @@
- }
- 
- DEFUN (pf_max, arg1 arg2 &rest more-args,
--"Returns the largets of all of the arguments passed.
--
--Examples:
--<example>
--<max 2 2>        --> 2
--<max 2.3 8 7>    --> 8.00
--<max 4 10 -4>    --> 10
-+"Returns the largets of all of the arguments passed.\
-+\
-+Examples:\
-+<example>\
-+<max 2 2>        --> 2\
-+<max 2.3 8 7>    --> 8.00\
-+<max 4 10 -4>    --> 10\
- </example>")
- {
-   arithmetic_process (pf_MAX, PassPFunArgs);
- }
- 
- DEFUN (pf_min, arg1 arg2 &rest more-args,
--"Returns the smallest of all of the arguments passed.
--
--Examples:
--<example>
--<min 2 2>        --> 2
--<min 2.3 8 3>    --> 2.30
--<min 3 -4 10>    --> -4
-+"Returns the smallest of all of the arguments passed.\
-+\
-+Examples:\
-+<example>\
-+<min 2 2>        --> 2\
-+<min 2.3 8 3>    --> 2.30\
-+<min 3 -4 10>    --> -4\
- </example>")
- {
-   arithmetic_process (pf_MIN, PassPFunArgs);
- }
- 
- DEFUN (pf_mul, arg1 arg2 &rest more-args,
--"Returns the product of all of the arguments passed.
--
--Examples:
--<example>
--<mul 2 2>        --> 4
--<mul 2.3 8 3>    --> 55.20
--<mul -4 10>      --> -40
-+"Returns the product of all of the arguments passed.\
-+\
-+Examples:\
-+<example>\
-+<mul 2 2>        --> 4\
-+<mul 2.3 8 3>    --> 55.20\
-+<mul -4 10>      --> -40\
- </example>")
- {
-   arithmetic_process (pf_MUL, PassPFunArgs);
- }
- 
- DEFUN (pf_div, arg1 arg2 &rest more-args,
--"Returns the quotient of all of the arguments passed.
--
--Examples:
--<example>
--<div 100 5>      --> 20
--<div 5 100>      --> 0
--<div 5.0 100.0>  --> 0.05
--<div 100 5 2>    --> 10
-+"Returns the quotient of all of the arguments passed.\
-+\
-+Examples:\
-+<example>\
-+<div 100 5>      --> 20\
-+<div 5 100>      --> 0\
-+<div 5.0 100.0>  --> 0.05\
-+<div 100 5 2>    --> 10\
- </example>")
- {
-   /* If it only contains assigned attributes, it is meant for the browser,
-@@ -818,34 +818,34 @@
- }
- 
- DEFUN (pf_mod, arg1 arg2 &rest more-args,
--"Returns the remainder of all of the arguments passed.
--
--Examples:
--<example>
--<mod 100 10>    --> 0
--<mod 101 10>    --> 1
--<mod 89 9 3>    --> 2
-+"Returns the remainder of all of the arguments passed.\
-+\
-+Examples:\
-+<example>\
-+<mod 100 10>    --> 0\
-+<mod 101 10>    --> 1\
-+<mod 89 9 3>    --> 2\
- </example>")
- {
-   arithmetic_process (pf_MOD, PassPFunArgs);
- }
- 
- DEFUNX (pf_integer?, string &key base[=10],
--"Returns \"true\" if <var string> is the string representation of an integer
--value in base <var base> (default <code>10</code>).  This function is useful
--for checking the validity of user input to a form.
--
--You call this function with the actual value -- you may not pass the name
--of a variable instead.
--
--Some examples:
--<example>
--<set-var x=123>
--<integer? -90>          --> true
--<integer? <get-var x>>  --> true
--<integer? 2.3>          -->
--<integer? FEFE base=16> --> true
--<integer? 874 base=8>   -->
-+"Returns \"true\" if <var string> is the string representation of an integer\
-+value in base <var base> (default <code>10</code>).  This function is useful\
-+for checking the validity of user input to a form.\
-+\
-+You call this function with the actual value -- you may not pass the name\
-+of a variable instead.\
-+\
-+Some examples:\
-+<example>\
-+<set-var x=123>\
-+<integer? -90>          --> true\
-+<integer? <get-var x>>  --> true\
-+<integer? 2.3>          -->\
-+<integer? FEFE base=16> --> true\
-+<integer? 874 base=8>   -->\
- </example>")
- 
- static void
-@@ -874,9 +874,9 @@
- }
- 
- DEFUN (pf_integer, num,
--"Returns the integer representation of <var num>.
--<complete-example>
--<integer 3.45> is less than <integer 3.54>
-+"Returns the integer representation of <var num>.\
-+<complete-example>\
-+<integer 3.45> is less than <integer 3.54>\
- </complete-example>")
- {
-   char *arg = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -890,20 +890,20 @@
- }
- 
- DEFUNX (pf_real?, string,
--"Returns \"true\" if <var string> is the string representation of
--a real number.Useful for checking the validity of user input to a form.
--
--You call this function with the actual value -- you may not pass the name
--of a variable instead.
--
--Some examples:
--<example>
--<set-var pi=3.141569>
--<real? <get-var pi>>    --> true
--<real? 45>              --> 
--<real? 2.3>             --> true
--<real? \"This\">          -->
--<real? -.087e4>         --> true
-+"Returns \"true\" if <var string> is the string representation of\
-+a real number.Useful for checking the validity of user input to a form.\
-+\
-+You call this function with the actual value -- you may not pass the name\
-+of a variable instead.\
-+\
-+Some examples:\
-+<example>\
-+<set-var pi=3.141569>\
-+<real? <get-var pi>>    --> true\
-+<real? 45>              --> \
-+<real? 2.3>             --> true\
-+<real? \"This\">          -->\
-+<real? -.087e4>         --> true\
- </example>")
- 
- static void
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/modfuncs.c work/metahtml-5.091/libmhtml/modfuncs.c
---- work/metahtml-5.091/libmhtml/modfuncs.c    1998-12-15 00:38:57.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/modfuncs.c    2013-04-02 22:24:54.630480745 
+0200
-@@ -75,46 +75,46 @@
- 
- PACKAGE_INITIALIZER (initialize_module_functions)
- DEFINE_SECTION (DYNAMIC-MODULES, dynamic; load-module, 
--"You can now write C language code to implement your own built-in
--<Meta-HTML> functions!  Such functions are first-class objects, and
--can manipulate the <Meta-HTML> environment directly, easily reset the
--parser pointer, manage hardware devices or talk on proprietery
--networks, or anything else that you can do in C. 
--
--It works by supplying you with the necessary <Meta-HTML> header files
--and a Makefile for building modules on your system.  Using our
--supplied Makefile provides you with a resultant <i>dynamically
--loadable</i> module, which can be loaded into the Server, Engine, or a
--single page with the <funref dynamic-modules load-module> function.
--
--See the <code>modules</code> directory of the distribution for more
-+"You can now write C language code to implement your own built-in\
-+<Meta-HTML> functions!  Such functions are first-class objects, and\
-+can manipulate the <Meta-HTML> environment directly, easily reset the\
-+parser pointer, manage hardware devices or talk on proprietery\
-+networks, or anything else that you can do in C. \
-+\
-+It works by supplying you with the necessary <Meta-HTML> header files\
-+and a Makefile for building modules on your system.  Using our\
-+supplied Makefile provides you with a resultant <i>dynamically\
-+loadable</i> module, which can be loaded into the Server, Engine, or a\
-+single page with the <funref dynamic-modules load-module> function.\
-+\
-+See the <code>modules</code> directory of the distribution for more\
- details.", "")
- 
- DEFVAR (mhtml::module-directories,
--"An array of pathnames used to locate dynamic modules.
--
--When <funref dynamic-modules load-module> is called with a non-fully qualified
--pathname as an argument, the location of the file containing the module code
--is searched for throughout the list of directories in
--<var mhtml::module-directories>.  The default list of directories includes at
--least the following, and may have more dependent on your system type:
--<example>
--/www/lib, /www/bin, /www/metahtml/lib, /www/metahtml/bin,
--/opt/lib, /opt/bin, /opt/metahtml/lib, /opt/metahtml/bin,
--/usr/lib/mhtml, /home/mhttpd/lib, /usr/local/mhtml/lib,
--and /www/src/metahtml/modules
-+"An array of pathnames used to locate dynamic modules.\
-+\
-+When <funref dynamic-modules load-module> is called with a non-fully 
qualified\
-+pathname as an argument, the location of the file containing the module code\
-+is searched for throughout the list of directories in\
-+<var mhtml::module-directories>.  The default list of directories includes at\
-+least the following, and may have more dependent on your system type:\
-+<example>\
-+/www/lib, /www/bin, /www/metahtml/lib, /www/metahtml/bin,\
-+/opt/lib, /opt/bin, /opt/metahtml/lib, /opt/metahtml/bin,\
-+/usr/lib/mhtml, /home/mhttpd/lib, /usr/local/mhtml/lib,\
-+and /www/src/metahtml/modules\
- </example>")
- 
- #define MODULE_SYM_NAME "mhtml::loaded-modules"
- 
- DEFVAR (mhtml::loaded-modules,
--"An array of fully qualified pathnames to the modules which have been loaded
--via the function <funref dynamic-modules load-module>.  Used internally
-+"An array of fully qualified pathnames to the modules which have been loaded\
-+via the function <funref dynamic-modules load-module>.  Used internally\
- during the module search process.")
- 
- DEFVAR (mhtml::module-capable,
--"This value of this symbol is \"true\" when the system on which <Meta-HTML>
--is running is capable of loading dynamic modules.  The value is determined
-+"This value of this symbol is \"true\" when the system on which <Meta-HTML>\
-+is running is capable of loading dynamic modules.  The value is determined\
- at the time <Meta-HTML> is compiled.")
- 
- static char *static_dirs[] =
-@@ -291,44 +291,44 @@
- typedef void HVFUN (char *,char *,char *,char *,char *,char *,char *,char 
*,char *,char *);
- 
- DEFUN (pf_load_module, module-name &key noinitialize initfunc,
--"Loads a module dynamically at runtime, adding the function
--definitions found therein to the global package of <Meta-HTML>
--functions.
--
--<code>load-module</code> returns a non-empty string if the module is
--loaded successfully, or places an error in <funref language-operators
--system-error-output> if not.  The string returned is the fully
--qualified pathname of the module just loaded.
--
--<var module-name> is searched for by looking in each directory
--specified in the array <varref mhtml::module-directories>, or by
--loading the module as if the name specified is the full pathname to
--that file.
--
--Once a module is loaded, the functions within it can be invoked just
--as with any standard <Meta-HTML> command.
--
--See the <code>examples.c</code> file in the <code>modules</code>
--directory of your distribution for more information on writing
--<Meta-HTML> modules.
--
--The keyword argument <var noinitialize> when set to \"true\" says
--not to call the default initialization function of the module
--(<i>module_initialize</i>).  This function is typically used to install
--the function names of the Meta-HTML callable functions present within the
--module.  When such initialization is not required (perhaps you are planning
--to do this from within a different module), the use of this argument
--prevents the attempted call.
--
--The keyword argument <var initfunc> may be set to the name of the
--initialization function to call immediately after the module is
--loaded.  If it is not set, or it is empty, the function
--<b>module_initialize</b> is called.
--
--Example:
--
--<example>
--<set-var loaded? = <load-module /www/lib/example.so>>
-+"Loads a module dynamically at runtime, adding the function\
-+definitions found therein to the global package of <Meta-HTML>\
-+functions.\
-+\
-+<code>load-module</code> returns a non-empty string if the module is\
-+loaded successfully, or places an error in <funref language-operators\
-+system-error-output> if not.  The string returned is the fully\
-+qualified pathname of the module just loaded.\
-+\
-+<var module-name> is searched for by looking in each directory\
-+specified in the array <varref mhtml::module-directories>, or by\
-+loading the module as if the name specified is the full pathname to\
-+that file.\
-+\
-+Once a module is loaded, the functions within it can be invoked just\
-+as with any standard <Meta-HTML> command.\
-+\
-+See the <code>examples.c</code> file in the <code>modules</code>\
-+directory of your distribution for more information on writing\
-+<Meta-HTML> modules.\
-+\
-+The keyword argument <var noinitialize> when set to \"true\" says\
-+not to call the default initialization function of the module\
-+(<i>module_initialize</i>).  This function is typically used to install\
-+the function names of the Meta-HTML callable functions present within the\
-+module.  When such initialization is not required (perhaps you are planning\
-+to do this from within a different module), the use of this argument\
-+prevents the attempted call.\
-+\
-+The keyword argument <var initfunc> may be set to the name of the\
-+initialization function to call immediately after the module is\
-+loaded.  If it is not set, or it is empty, the function\
-+<b>module_initialize</b> is called.\
-+\
-+Example:\
-+\
-+<example>\
-+<set-var loaded? = <load-module /www/lib/example.so>>\
- </example>")
- {
-   char *module_name = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -468,10 +468,10 @@
- }
- 
- DEFUN (pf_unload_module, module-name,
--"Unloads a previously loaded dynamic module.  You might want this if you
--are running Meta-HTML as a FastCGI, and the module was temporarily needed
--for some service, and was inordinately large.
--
-+"Unloads a previously loaded dynamic module.  You might want this if you\
-+are running Meta-HTML as a FastCGI, and the module was temporarily needed\
-+for some service, and was inordinately large.\
-+\
- Returns \"true\" if the module was successfully unloaded.")
- {
-   char *module_name = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -496,14 +496,14 @@
- }
- 
- DEFUN (pf_module_function, module-name function-name,
--"Returns the address of <var function-name> in <var module-name> if
--<var module-name> is an already loaded dynamic module, and <var function-name>
--is a function defined within that module.
--
--Otherwise, it returns the empty string.
--<example>
--<load-module example>                 --> /www/lib/example.so
--<module-function example pf_apropos>  --> 0X0EF8C437C
-+"Returns the address of <var function-name> in <var module-name> if\
-+<var module-name> is an already loaded dynamic module, and <var 
function-name>\
-+is a function defined within that module.\
-+\
-+Otherwise, it returns the empty string.\
-+<example>\
-+<load-module example>                 --> /www/lib/example.so\
-+<module-function example pf_apropos>  --> 0X0EF8C437C\
- </example>")
- {
-   char *module_name = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -543,19 +543,19 @@
- }
- 
- DEFUN (pf_module_call_function, module-name function-name &rest args,
--"Call the function <var function-name> in the dynamically loaded module
--<var module_name> with character arguments of <var args>.
--It returns \"true\" if the function invocation took place.  More likely,
--you will be crashing Meta-HTML without a way to debug it.
--
--Up to ten arguments can be passed to the function.
--
--It is so unlikely that you need this, that you will have to write me E-mail
--or read the source to see exactly how this works.  If you are calling this
--function, the called function should not produce any output at all, and,
--in fact, there isn't a way for you to get output back from the function,
--since you can't pass the address of a variable, etc.  This might be used to
--re-initialize some internals of your module, but you should really just
-+"Call the function <var function-name> in the dynamically loaded module\
-+<var module_name> with character arguments of <var args>.\
-+It returns \"true\" if the function invocation took place.  More likely,\
-+you will be crashing Meta-HTML without a way to debug it.\
-+\
-+Up to ten arguments can be passed to the function.\
-+\
-+It is so unlikely that you need this, that you will have to write me E-mail\
-+or read the source to see exactly how this works.  If you are calling this\
-+function, the called function should not produce any output at all, and,\
-+in fact, there isn't a way for you to get output back from the function,\
-+since you can't pass the address of a variable, etc.  This might be used to\
-+re-initialize some internals of your module, but you should really just\
- provide an interface for that instead.")
- {
-   char *module_name = mhtml_evaluate_string (get_positional_arg (vars, 0));
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/packfuncs.c 
work/metahtml-5.091/libmhtml/packfuncs.c
---- work/metahtml-5.091/libmhtml/packfuncs.c   1999-04-17 10:01:50.000000000 
+0200
-+++ work/metahtml-5.091/libmhtml/packfuncs.c   2013-04-02 22:41:23.620535553 
+0200
-@@ -84,46 +84,46 @@
- 
- PACKAGE_INITIALIZER (initialize_package_functions)
- DEFINE_SECTION (PACKAGES, variables; module; package; group, 
--"<i>Packages</i> are repositories which contain symbols and their values.
--
--Each time a symbol is referenced, a package must first be found, and
--then the symbol may be found within that package. You indicate which
--package to look the symbol up in by supplying a package <i>prefix</i>.
--When the prefix is not supplied, the symbol is looked up in the
-+"<i>Packages</i> are repositories which contain symbols and their values.\
-+\
-+Each time a symbol is referenced, a package must first be found, and\
-+then the symbol may be found within that package. You indicate which\
-+package to look the symbol up in by supplying a package <i>prefix</i>.\
-+When the prefix is not supplied, the symbol is looked up in the\
- current package.",
--"For example, a full reference to the symbol <var bar> stored in the
--<var foo> package looks like: 
--
--<example>
--   FOO::BAR
--</example>
--
--There are very few commands specifically for dealing with packages,
--because most of the operations are performed implicitly, rather than
--explicitly.  To create a package, simply give the package name as part
--of the symbol, in the place where the symbol is normally used.
--
--<example>
--   <set-var foo::bar = \"Hello\">
--</example>
--
--This has the effect of creating the package <var foo> if it didn't
--already exist.
--
--The majority of the functions documented here perform package maintenance, as
--opposed to variable manipulation.  There are functions for querying a package
--about its contens, for deleting an entire package, for exporting and importing
--packages to and from sessions, for copying the contents of packages, and for
--converting packages from an internal representation to a printable
-+"For example, a full reference to the symbol <var bar> stored in the\
-+<var foo> package looks like: \
-+\
-+<example>\
-+   FOO::BAR\
-+</example>\
-+\
-+There are very few commands specifically for dealing with packages,\
-+because most of the operations are performed implicitly, rather than\
-+explicitly.  To create a package, simply give the package name as part\
-+of the symbol, in the place where the symbol is normally used.\
-+\
-+<example>\
-+   <set-var foo::bar = \"Hello\">\
-+</example>\
-+\
-+This has the effect of creating the package <var foo> if it didn't\
-+already exist.\
-+\
-+The majority of the functions documented here perform package maintenance, as\
-+opposed to variable manipulation.  There are functions for querying a package\
-+about its contens, for deleting an entire package, for exporting and 
importing\
-+packages to and from sessions, for copying the contents of packages, and for\
-+converting packages from an internal representation to a printable\
- representation, called an <i>alist</i>.")
- 
- DEFUN (pf_package_names, ,
--"Return a newline separated list of all of the named packages
--which are currently defined.  Because the list is newline separated,
--the result can easily be assigned to an array variable:
--
--<example>
--<set-var all-packages[]=<package-names>>
-+"Return a newline separated list of all of the named packages\
-+which are currently defined.  Because the list is newline separated,\
-+the result can easily be assigned to an array variable:\
-+\
-+<example>\
-+<set-var all-packages[]=<package-names>>\
- </example>")
- {
-   if (AllPackages)
-@@ -143,20 +143,20 @@
- }
- 
- DEFUN (pf_package_vars, &optional package-name &key strip=true,
--"Returns a newline separated list of the fully qualified variable
--names found in the package named by <var package-name>, or in the
--current package if <var package-name> is not given.  When <var
--strip=true> is supplied, the returned variable names have the package
--prefix stripped off, making them <i>not</i> fully qualified.  The
--names are not returned in any significant order.  Because the list is
--newline separated, the results can easily be assigned to an array
--variable:
--
--<complete-example>
--<set-var foo::bar=baz>
--<set-var foo::baz=bar>
--<set-var names[]=<package-vars foo>>
--<get-var names[1]>
-+"Returns a newline separated list of the fully qualified variable\
-+names found in the package named by <var package-name>, or in the\
-+current package if <var package-name> is not given.  When <var\
-+strip=true> is supplied, the returned variable names have the package\
-+prefix stripped off, making them <i>not</i> fully qualified.  The\
-+names are not returned in any significant order.  Because the list is\
-+newline separated, the results can easily be assigned to an array\
-+variable:\
-+\
-+<complete-example>\
-+<set-var foo::bar=baz>\
-+<set-var foo::baz=bar>\
-+<set-var names[]=<package-vars foo>>\
-+<get-var names[1]>\
- </complete-example>")
- {
-   register int pos = 0;
-@@ -234,7 +234,7 @@
- }
- 
- DEFUN (pf_package_delete, package-name...,
--"Remove the definition of the packages named by <var package-name>s,
-+"Remove the definition of the packages named by <var package-name>s,\
- and all of the variables defined within them.")
- {
-   char **names = get_vars_names (vars);
-@@ -259,13 +259,13 @@
- }
- 
- DEFMACRO (pf_in_package, package-name,
--"Evaluate <var body> in an environment where variables which are not
--specifically prefixed with a package name are looked up and stored
--within <var package-name>.
--
--The special package name <code>\"local\"</code> creates an anonymous
--package within which to work.  The contents of local packages are only
--accessible within the expressions surrounded by the
-+"Evaluate <var body> in an environment where variables which are not\
-+specifically prefixed with a package name are looked up and stored\
-+within <var package-name>.\
-+\
-+The special package name <code>\"local\"</code> creates an anonymous\
-+package within which to work.  The contents of local packages are only\
-+accessible within the expressions surrounded by the\
- <code>in-package</code> operator.")
- {
-   int jump_again = 0;
-@@ -309,7 +309,7 @@
- }
- 
- DEFMACRO (pf_with_local_package, ,
--"Shorthand for <example code><in-package local> <i>body</i>
-+"Shorthand for <example code><in-package local> <i>body</i>\
- </in-package></example>")
- {
-   int jump_again = 0;
-@@ -337,16 +337,16 @@
- }
- 
- DEFUN (pf_package_to_alist, &optional package,
--"Returns a Lisp readable string containing the names and values of the 
variables in <var package>.  If <var strip=true> is supplied, the package name 
is removed from the variables before placing them in the list.  See the 
following code sequence:
--
--<complete-example>
--<set-var
--  foo::bar=baz
--  foo::array[0]=Elt-0
--  foo::array[1]=Elt-1>
--
--  The contents of Foo: <package-to-alist foo>
--The stripped contents: <package-to-alist foo strip=true>
-+"Returns a Lisp readable string containing the names and values of the 
variables in <var package>.  If <var strip=true> is supplied, the package name 
is removed from the variables before placing them in the list.  See the 
following code sequence:\
-+\
-+<complete-example>\
-+<set-var\
-+  foo::bar=baz\
-+  foo::array[0]=Elt-0\
-+  foo::array[1]=Elt-1>\
-+\
-+  The contents of Foo: <package-to-alist foo>\
-+The stripped contents: <package-to-alist foo strip=true>\
- </complete-example>")
- {
-   char *packname = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -373,17 +373,17 @@
- }
- 
- DEFUN (pf_alist_to_package, alist &optional package,
--"Takes the textual list representation of a package, and creates (or
--modifies) the package named by <var package-name>.
--
--<code>alist-to-package</code> is the inverse of the <funref packages
--package-to-alist> function -- given an \"alist\" (short for
--`association list') you can create a package, and vice-versa.  The
--following expression is one way to copy all of the variables from the
--package <code>FOO</code> into the package <code>BAR</code>:
--
--<example>
--<alist-to-package <package-to-alist foo> bar>
-+"Takes the textual list representation of a package, and creates (or\
-+modifies) the package named by <var package-name>.\
-+\
-+<code>alist-to-package</code> is the inverse of the <funref packages\
-+package-to-alist> function -- given an \"alist\" (short for\
-+`association list') you can create a package, and vice-versa.  The\
-+following expression is one way to copy all of the variables from the\
-+package <code>FOO</code> into the package <code>BAR</code>:\
-+\
-+<example>\
-+<alist-to-package <package-to-alist foo> bar>\
- </example>")
- {
-   char *alist = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -480,10 +480,10 @@
- }
- 
- DEFUN (pf_alist_defvar, alistvar name value,
--"<b>DEF</b>ault the value of the <b>VAR</b>iable named by <var name>
--to <var value>, in the association list referenced by <var alistvar>.
--
--<code>alist-defvar</code> assigns <var value> to <var name> if, and only if,
-+"<b>DEF</b>ault the value of the <b>VAR</b>iable named by <var name>\
-+to <var value>, in the association list referenced by <var alistvar>.\
-+\
-+<code>alist-defvar</code> assigns <var value> to <var name> if, and only if,\
- <var name> has a non-empty value.")
- {
-   Package *alist = get_alist_var (vars);
-@@ -511,7 +511,7 @@
- }
- 
- DEFUN (pf_alist_unset_var, alistvar &rest names...,
--"Make <var name>s be non-existent in the association list specified
-+"Make <var name>s be non-existent in the association list specified\
- by <var alistvar>.")
- {
-   Package *alist = get_alist_var (vars);
-@@ -538,13 +538,13 @@
- }
- 
- DEFUN (pf_alist_var_exists, alistvar name,
--"<code>var-exists</code> checks for the <i>existence</i> of
--the variable named by <var varname>, in the association list specified by
--<var alistvar>, and returns <code>true</code> if that variable does in
--fact exist.
--
--The existence of a variable has nothing to do with its value -- a
--variable exists if it is present within the list, whether or not it
-+"<code>var-exists</code> checks for the <i>existence</i> of\
-+the variable named by <var varname>, in the association list specified by\
-+<var alistvar>, and returns <code>true</code> if that variable does in\
-+fact exist.\
-+\
-+The existence of a variable has nothing to do with its value -- a\
-+variable exists if it is present within the list, whether or not it\
- has a value.")
- {
-   Package *alist = get_alist_var (vars);
-@@ -568,16 +568,16 @@
- }
- 
- DEFUN (pf_alist_set_var, alistvar &optional name=value...,
--"Gives the variable <var name> the value of <var value> in the association
--list specified by <var alistvar>. Any number of name/value pairs may be given,
--and whitespace is not significant.  Where <var =value> is omitted, the
--value is the empty string.
--
--<example>
--<alist-set-var myalist foo=bar bar=baz>
--<alist-get-var myalist foo>    --> bar
--<alist-get-var myalist bar>    --> baz
--<alist-get-var myalist <alist-get-var myalist foo>>    --> baz
-+"Gives the variable <var name> the value of <var value> in the association\
-+list specified by <var alistvar>. Any number of name/value pairs may be 
given,\
-+and whitespace is not significant.  Where <var =value> is omitted, the\
-+value is the empty string.\
-+\
-+<example>\
-+<alist-set-var myalist foo=bar bar=baz>\
-+<alist-get-var myalist foo>    --> bar\
-+<alist-get-var myalist bar>    --> baz\
-+<alist-get-var myalist <alist-get-var myalist foo>>    --> baz\
- </example>")
- {
-   Package *alist = get_alist_var (vars);
-@@ -635,12 +635,12 @@
- }
- 
- DEFUN (pf_alist_get_var, alistvar &optional name...,
--"Return the value of the <var name>s given from the association list
--specified by <var alistvar>.  Each <var name> is a
--variable name which has had a value assigned to it with <funref
--variables alist-set-var>, or was created implicity via
--<funref packages alist-to-package>.
--
-+"Return the value of the <var name>s given from the association list\
-+specified by <var alistvar>.  Each <var name> is a\
-+variable name which has had a value assigned to it with <funref\
-+variables alist-set-var>, or was created implicity via\
-+<funref packages alist-to-package>.\
-+\
- The values are returned in the order in which the <var name>s appear.")
- {
-   Package *alist = get_alist_var (vars);
-@@ -683,9 +683,9 @@
- }
- 
- DEFUN (pf_alist_package_names, alistvar,
--"Return a newline separated list of all of the packages which are
--defined within the association list stored within <var alistvar>.
--Because the list is newline separated, the result can easily be
-+"Return a newline separated list of all of the packages which are\
-+defined within the association list stored within <var alistvar>.\
-+Because the list is newline separated, the result can easily be\
- assigned to an array variable:")
- {
-   Package *alist = get_alist_var (vars);
-@@ -750,19 +750,19 @@
- }
- 
- DEFUN (pf_alist_package_vars, alistvar &key strip=true,
--"Returns a newline separated list of the fully qualified variable
--names found in the alist named by <var alistvar>
--
--When <var strip=true> is supplied, the returned variable names have
--the package prefix stripped off, making them <i>not</i> fully qualified.
--The names are not returned in any significant order.  Because the list is
--newline separated, the results can easily be assigned to an array
--variable:
--
--<complete-example>
--<set-var alist=<make-alist this::foo=bar that::foo=baz>>
--<set-var names[]=<alist-package-vars alist>>
--<get-var-once names[1]> is <alist-get-var alist <get-var-once names[1]>>
-+"Returns a newline separated list of the fully qualified variable\
-+names found in the alist named by <var alistvar>\
-+\
-+When <var strip=true> is supplied, the returned variable names have\
-+the package prefix stripped off, making them <i>not</i> fully qualified.\
-+The names are not returned in any significant order.  Because the list is\
-+newline separated, the results can easily be assigned to an array\
-+variable:\
-+\
-+<complete-example>\
-+<set-var alist=<make-alist this::foo=bar that::foo=baz>>\
-+<set-var names[]=<alist-package-vars alist>>\
-+<get-var-once names[1]> is <alist-get-var alist <get-var-once names[1]>>\
- </complete-example>")
- {
-   Package *alist = get_alist_var (vars);
-@@ -792,26 +792,26 @@
- }
- 
- DEFUN (pf_alist_package_delete, alistvar &rest packages[],
--"For each variable in the association list within <var alistvar>, remove
--the variable from the association list if it is prefixed with one of the
--specifed package names.  For example, given that the variable <var alist>
--contained the alist:
--
--<example>
--((\"FOO::BAR\" . \"bar\") (\"FOO::BAZ\" . \"baz\") (\"BAR::X\" . \"val\"))
--</example>
--
--then calling:
--
--<example>
--<alist-package-delete alist foo>
--<get-var-once alist>
--</example>
--
--produces:
--
--<example>
--((\"BAR::X\" . \"val\"))
-+"For each variable in the association list within <var alistvar>, remove\
-+the variable from the association list if it is prefixed with one of the\
-+specifed package names.  For example, given that the variable <var alist>\
-+contained the alist:\
-+\
-+<example>\
-+((\"FOO::BAR\" . \"bar\") (\"FOO::BAZ\" . \"baz\") (\"BAR::X\" . \"val\"))\
-+</example>\
-+\
-+then calling:\
-+\
-+<example>\
-+<alist-package-delete alist foo>\
-+<get-var-once alist>\
-+</example>\
-+\
-+produces:\
-+\
-+<example>\
-+((\"BAR::X\" . \"val\"))\
- </example>")
- {
-   Package *alist = get_alist_var (vars);
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/pagefuncs.c 
work/metahtml-5.091/libmhtml/pagefuncs.c
---- work/metahtml-5.091/libmhtml/pagefuncs.c   1999-02-17 04:03:55.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/pagefuncs.c   2013-04-02 22:19:07.610461516 
+0200
-@@ -132,40 +132,40 @@
- 
- PACKAGE_INITIALIZER (initialize_pagefunc_functions)
- 
--DEFINE_SECTION (PAGE-VARIABLES, , "Several variables are predefined by
--<meta-html>, and made available to the page writer.  In addition to
--the contents of the Unix environment (which includes the server-side
--variables <varref ENV::SERVER_NAME>, <varref ENV::PATH_INFO>, etc.)
--variables describing the location of the current document in various
--ways are also defined.  ", "The following short list is a quick look
--at typical values of the most commonly referenced page variables.
--
--When the URL is ``<i><get-var mhtml::full-url></i>'', the following
--variables are set to:
--
--<defun showvar var>
--  <tr>
--    <td align=right> <varref <upcase <get-var var>>>: </td>
--    <td align=left>
--      <i><get-var <get-var var>></i><br>
--    </td>
--  </tr>
--</defun>
--
--<table>
--  <showvar mhtml::path-info>
--  <showvar mhtml::http-to-host>
--  <showvar mhtml::current-doc>
--  <showvar mhtml::include-prefix>
--  <showvar mhtml::relative-prefix>
--  <showvar mhtml::location>
--  <showvar mhtml::location-sans-sid>
--  <showvar mhtml::full-url>
--  <showvar mhtml::full-url-sans-sid>
--  <showvar mhtml::url-to-dir>
--  <showvar mhtml::url-to-dir-sans-sid>
--  <showvar mhtml::http-prefix>
--  <showvar mhtml::http-prefix-sans-sid>
-+DEFINE_SECTION (PAGE-VARIABLES, , "Several variables are predefined by\
-+<meta-html>, and made available to the page writer.  In addition to\
-+the contents of the Unix environment (which includes the server-side\
-+variables <varref ENV::SERVER_NAME>, <varref ENV::PATH_INFO>, etc.)\
-+variables describing the location of the current document in various\
-+ways are also defined.  ", "The following short list is a quick look\
-+at typical values of the most commonly referenced page variables.\
-+\
-+When the URL is ``<i><get-var mhtml::full-url></i>'', the following\
-+variables are set to:\
-+\
-+<defun showvar var>\
-+  <tr>\
-+    <td align=right> <varref <upcase <get-var var>>>: </td>\
-+    <td align=left>\
-+      <i><get-var <get-var var>></i><br>\
-+    </td>\
-+  </tr>\
-+</defun>\
-+\
-+<table>\
-+  <showvar mhtml::path-info>\
-+  <showvar mhtml::http-to-host>\
-+  <showvar mhtml::current-doc>\
-+  <showvar mhtml::include-prefix>\
-+  <showvar mhtml::relative-prefix>\
-+  <showvar mhtml::location>\
-+  <showvar mhtml::location-sans-sid>\
-+  <showvar mhtml::full-url>\
-+  <showvar mhtml::full-url-sans-sid>\
-+  <showvar mhtml::url-to-dir>\
-+  <showvar mhtml::url-to-dir-sans-sid>\
-+  <showvar mhtml::http-prefix>\
-+  <showvar mhtml::http-prefix-sans-sid>\
- </table>")
- 
- DOC_SECTION (ARITHMETIC-OPERATORS)
-@@ -182,17 +182,17 @@
- }
- 
- DEFUN (pf_randomize, &optional seed,
--"Sets the pseudo-random number generator seed to <var seed>.  The next
--call to <funref arithmetic-operators random> uses this seed value to
--find the next pseudo-random number.  There is no return value.
--
--Examples:
--<example>
--  <randomize 10>
--  <random 100> --> 28
--  <random 100> --> 15
--  <randomize 10>
--  <random 100> --> 28
-+"Sets the pseudo-random number generator seed to <var seed>.  The next\
-+call to <funref arithmetic-operators random> uses this seed value to\
-+find the next pseudo-random number.  There is no return value.\
-+\
-+Examples:\
-+<example>\
-+  <randomize 10>\
-+  <random 100> --> 28\
-+  <random 100> --> 15\
-+  <randomize 10>\
-+  <random 100> --> 28\
- </example>")
- {
-   unsigned int seed = random_seed ();
-@@ -210,19 +210,19 @@
- }
- 
- DEFUN (pf_random, arg,
--"Returns a pseudo-random number between 0 and <var arg> -1.  The
--distribution is pretty good; calling <example code><random
--2></example> returns 0 50% of the time, and 1 the other 50%.
--
--Examples:
--<example>
--  <random 100> --> 87
--  <random 100> --> 44
--
--  <b>I'm thinking of a number between 1 and 10:</b>
--  <set-var guess = <add 1 <random 10>>>
--</example>
--
-+"Returns a pseudo-random number between 0 and <var arg> -1.  The\
-+distribution is pretty good; calling <example code><random\
-+2></example> returns 0 50% of the time, and 1 the other 50%.\
-+\
-+Examples:\
-+<example>\
-+  <random 100> --> 87\
-+  <random 100> --> 44\
-+\
-+  <b>I'm thinking of a number between 1 and 10:</b>\
-+  <set-var guess = <add 1 <random 10>>>\
-+</example>\
-+\
- Also see <funref arithmetic-operators randomize>.")
- {
-   char *max_arg = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -246,33 +246,33 @@
- }
- 
- DEFINE_SECTION (LANGUAGE-OPERATORS, self-modif; language;
--self-referential, "<Meta-HTML> provides various functions and
--variables which are used to operate on or within the language
--environment itself, rather than within the application environment.
--
--Such constructs make it possible to create self-modifying code, to
--change the way in which a builtin function operates, and other such
-+self-referential, "<Meta-HTML> provides various functions and\
-+variables which are used to operate on or within the language\
-+environment itself, rather than within the application environment.\
-+\
-+Such constructs make it possible to create self-modifying code, to\
-+change the way in which a builtin function operates, and other such\
- language dependent features.", "")
- 
--DEFVAR (MHTML::INHIBIT-COMMENT-PARSING, "When this variable is set to
--a non-empty value, the triple semi-colon comment feature is disabled.
--
--You may need this for complex applications where you are deliberately
-+DEFVAR (MHTML::INHIBIT-COMMENT-PARSING, "When this variable is set to\
-+a non-empty value, the triple semi-colon comment feature is disabled.\
-+\
-+You may need this for complex applications where you are deliberately\
- shipping the source of a <meta-html> document to the client.")
- 
--DEFVAR (MHTML::VERSION, "Contains the version identification of the
--currently running interpreter.  This variable is available whereever
--the interpreter is running, including the <meta-html> server, Engine,
--and in <code>mdb</code>.
--
--<complete-example>
--<get-var mhtml::version>
-+DEFVAR (MHTML::VERSION, "Contains the version identification of the\
-+currently running interpreter.  This variable is available whereever\
-+the interpreter is running, including the <meta-html> server, Engine,\
-+and in <code>mdb</code>.\
-+\
-+<complete-example>\
-+<get-var mhtml::version>\
- </complete-example>")
- 
- DEFUN (pf_make_identifier, limit,
--"Create an identifier that is <var limit> characters in length.
--The identifier characters are taken from the string MI::ALPHABET.
--MI::ALPHABET defaults to uppercase letters and numbers excluding
-+"Create an identifier that is <var limit> characters in length.\
-+The identifier characters are taken from the string MI::ALPHABET.\
-+MI::ALPHABET defaults to uppercase letters and numbers excluding\
- \"I\", \"O\", zero, and one.")
- {
-   register int i;
-@@ -316,23 +316,23 @@
- }
- 
- DEFMACRO (pf_comment, ,
--"Simply discard the <var body>.  No processing is done, and no output
--is produced.
--
--A shorthand for commenting source on a single line exists; when the
--sequence of 3 semicolon character is seen
--(<code>;</code><code>;;</code>), then the text from this sequence to 
--the end of the line inclusive is discarded.
--
--Example:<set-var mhtml::inhibit-comment-parsing=1>
--<example>
--<comment>
--  This text is simply ignored.
--
--  All of it.
--</comment>
--;;; So is this text, up to the end of the line.
--;; But NOT this line -- it only has two semi-colons on it.
-+"Simply discard the <var body>.  No processing is done, and no output\
-+is produced.\
-+\
-+A shorthand for commenting source on a single line exists; when the\
-+sequence of 3 semicolon character is seen\
-+(<code>;</code><code>;;</code>), then the text from this sequence to \
-+the end of the line inclusive is discarded.\
-+\
-+Example:<set-var mhtml::inhibit-comment-parsing=1>\
-+<example>\
-+<comment>\
-+  This text is simply ignored.\
-+\
-+  All of it.\
-+</comment>\
-+;;; So is this text, up to the end of the line.\
-+;; But NOT this line -- it only has two semi-colons on it.\
- </example><unset-var mhtml::inhibit-comment-parsing>")
- {
-   /* Contents already deleted by caller. */
-@@ -340,33 +340,33 @@
- 
- DEFINE_SECTION (PAGE-OPERATORS, page commands; page search; search;
- insert; modify page,
--"<meta-html> contains a few commands which
--operate on the entire <i>page</i> as it currently exists.
--
--You may find, modify, or delete text which has already been looked at by the 
interpreter, as well as text which hasn't yet been looked at.
--
--Most of the time, you won't need to use such commands.  They can make
--it hard for other people to understand the sequence of code in your
--page, and they can sometimes produce unexpected results which are
--difficult to debug because much of the information has been modified.
-+"<meta-html> contains a few commands which\
-+operate on the entire <i>page</i> as it currently exists.\
-+\
-+You may find, modify, or delete text which has already been looked at by the 
interpreter, as well as text which hasn't yet been looked at.\
-+\
-+Most of the time, you won't need to use such commands.  They can make\
-+it hard for other people to understand the sequence of code in your\
-+page, and they can sometimes produce unexpected results which are\
-+difficult to debug because much of the information has been modified.\
- ", "")
- 
- static int include_recursive_calls = 0;
- 
- DEFUN (pf_include, webpath &key alt=altcode verbatim=true,
--"Insert the contents of the file named by <var webpath> into the
--document at the point where the <code>include</code> form was read.
--If the keyword argument <var verbatim=true> is given, then the contents
--of the file are not executed, only inserted.  Otherwise, execution
--resumes at the point where the file was inserted.
--
--<var webpath> can be given as an absolute pathname, or a relative
--pathname.  If the path is relative, it is considered to be relative to
--the location of the document which contains the <code>include</code>
--form.  If the path given is not relative, it is appended to the
--directory found in <b>MHTML::INCLUDE-PREFIX</b>.
--
--If the named file could not be found on the server, and an <var alt=altcode>
-+"Insert the contents of the file named by <var webpath> into the\
-+document at the point where the <code>include</code> form was read.\
-+If the keyword argument <var verbatim=true> is given, then the contents\
-+of the file are not executed, only inserted.  Otherwise, execution\
-+resumes at the point where the file was inserted.\
-+\
-+<var webpath> can be given as an absolute pathname, or a relative\
-+pathname.  If the path is relative, it is considered to be relative to\
-+the location of the document which contains the <code>include</code>\
-+form.  If the path given is not relative, it is appended to the\
-+directory found in <b>MHTML::INCLUDE-PREFIX</b>.\
-+\
-+If the named file could not be found on the server, and an <var alt=altcode>\
- value is given, then that value is placed into the page instead.")
- {
-   int verbatim_p = var_present_p (vars, "VERBATIM");
-@@ -449,11 +449,11 @@
- }
- 
- DEFUN (pf_replace_page, webpath &key alt=altcode contents,
--"Replace the entire contents of the current page with the contents of
--the page named by <var webpath>.  You probably don't want to use this
--command, use <funref page-operator redirect> instead.  In that way, the
--URLs give a consistent view to the user.  The rules for which <var
--webpath> is chosen are identical to those for <funref page-operators
-+"Replace the entire contents of the current page with the contents of\
-+the page named by <var webpath>.  You probably don't want to use this\
-+command, use <funref page-operator redirect> instead.  In that way, the\
-+URLs give a consistent view to the user.  The rules for which <var\
-+webpath> is chosen are identical to those for <funref page-operators\
- include>.")
- {
-   PAGE *newpage = page_create_page ();
-@@ -587,18 +587,18 @@
- }
- 
- DEFINE_SECTION (HTML-HELPERS, HTML; helper; convenience, 
--"The following functions all produce HTML as output and are defined in
-+"The following functions all produce HTML as output and are defined in\
- order to help with the creation of forms and tables.", "")
- 
- DEFMACRO (pf_small_caps, &key upper=size lower=size other=size,
--"Modify the characters in <var body> raising lower-case
--characters to upper-case, and changing the size of fonts as directed.
--
--For example, this is how ``<small-caps lower=-1>Hello
--There</small-caps>'' can be produced:
--
--<complete-example>
--  <small-caps lower=-1>Hello There</small-caps>
-+"Modify the characters in <var body> raising lower-case\
-+characters to upper-case, and changing the size of fonts as directed.\
-+\
-+For example, this is how ``<small-caps lower=-1>Hello\
-+There</small-caps>'' can be produced:\
-+\
-+<complete-example>\
-+  <small-caps lower=-1>Hello There</small-caps>\
- </complete-example>")
- {
-   char *string = mhtml_evaluate_string (body->buffer);
-@@ -658,17 +658,17 @@
- DOC_SECTION (PAGE-OPERATORS)
- 
- DEFUN (pf_subst_in_page, this-string with-that,
--"Replaces all occurrences of <var this-string> with <var with-that> in the
--current page.  Both <var this-string> and <var with-that> are evaluated
--before the replacement is done.  <var this-string> can be any regular
--expression allowed by the POSIX extended regular expression matching.
--
--This command can be useful when included as part of a footer
--<code>include</code> file.  For example, you could replace all
--occurrences of <code>%name%</code> with a the value of the variable
--<code>FirstName</code> by writing:
--<example>
--  <subst-in-page %name% <get-var forms::FirstName>>
-+"Replaces all occurrences of <var this-string> with <var with-that> in the\
-+current page.  Both <var this-string> and <var with-that> are evaluated\
-+before the replacement is done.  <var this-string> can be any regular\
-+expression allowed by the POSIX extended regular expression matching.\
-+\
-+This command can be useful when included as part of a footer\
-+<code>include</code> file.  For example, you could replace all\
-+occurrences of <code>%name%</code> with a the value of the variable\
-+<code>FirstName</code> by writing:\
-+<example>\
-+  <subst-in-page %name% <get-var forms::FirstName>>\
- </example>")
- {
-   int arg = 0, done = 0;
-@@ -752,28 +752,28 @@
- #endif /* NOT_AT_THIS_TIME */
- 
- DEFUN (pf_redirect, url &key target,
--"Immediately return the HTTP <b>Location</b> directive with <var url>.
--This command is extremely useful in conjunction with <funref variables
--var-case>; in effect, that usage creates a dispatch table.
--
--When a <code>redirect</code> tag is seen, the current page is
--discarded, and the appropriate HTTP code is returned to the browser to
--cause an immediate redirection to the specified page.
--
--<var url> may be expressed in relative terms, in absolute terms, or as
--a complete URI specification.  For example, assume the current
--document is located at
--<example code>http://www.metahtml.com/subdir/doc.mhtml</example>, and
--the following redirections are seen:
--<example>
--  <redirect ../foo.mhtml>     --> http://www.metahtml.com/foo.mhtml
--  <redirect /bar/foo.mhtml>   --> http://www.metahtml.com/bar/foo.mhtml
--  <redirect http://www.bsdi.com> --> http://www.bsdi.com
--</example>
--
--If the keyword argument <var target=XXX> is supplied, it is the name of
--the browser window in which to display the new page.  If one is working
--with frames, this can be very useful: a target of \"_top\" removes all
-+"Immediately return the HTTP <b>Location</b> directive with <var url>.\
-+This command is extremely useful in conjunction with <funref variables\
-+var-case>; in effect, that usage creates a dispatch table.\
-+\
-+When a <code>redirect</code> tag is seen, the current page is\
-+discarded, and the appropriate HTTP code is returned to the browser to\
-+cause an immediate redirection to the specified page.\
-+\
-+<var url> may be expressed in relative terms, in absolute terms, or as\
-+a complete URI specification.  For example, assume the current\
-+document is located at\
-+<example code>http://www.metahtml.com/subdir/doc.mhtml</example>, and\
-+the following redirections are seen:\
-+<example>\
-+  <redirect ../foo.mhtml>     --> http://www.metahtml.com/foo.mhtml\
-+  <redirect /bar/foo.mhtml>   --> http://www.metahtml.com/bar/foo.mhtml\
-+  <redirect http://www.bsdi.com> --> http://www.bsdi.com\
-+</example>\
-+\
-+If the keyword argument <var target=XXX> is supplied, it is the name of\
-+the browser window in which to display the new page.  If one is working\
-+with frames, this can be very useful: a target of \"_top\" removes all\
- frames, a target of \"_new\" creates a new window, etc.")
- {
-   PAGE *new_page;
-@@ -887,22 +887,22 @@
-    Immediately sends this stuff down the line, but doesn't affect
-    processesing or the current page. */
- DEFMACRO (pf_server_push, &key type=mime-type,
--"Writes the appropriate headers and HTTP information to the connected
--browser, along with the data that you specify.
--
--The functionality provided by this convenience function is available
--other ways, specifically through the use of <funref stream-operators
--with-open-stream> and the variable <varref *standard-output*>.
--
--<example>
--<server-push>
--  <html>
--  <head><title>Just a Moment, please</title></head>
--  <body>
--  <h3>Please wait a moment, we are searching the entire Web...</h3>
--  </body>
--  </html>
--</server-push>
-+"Writes the appropriate headers and HTTP information to the connected\
-+browser, along with the data that you specify.\
-+\
-+The functionality provided by this convenience function is available\
-+other ways, specifically through the use of <funref stream-operators\
-+with-open-stream> and the variable <varref *standard-output*>.\
-+\
-+<example>\
-+<server-push>\
-+  <html>\
-+  <head><title>Just a Moment, please</title></head>\
-+  <body>\
-+  <h3>Please wait a moment, we are searching the entire Web...</h3>\
-+  </body>\
-+  </html>\
-+</server-push>\
- </example>")
- {
-   PAGE *text = (PAGE *)NULL;
-@@ -960,12 +960,12 @@
- 
- DOC_SECTION (HTML-HELPERS)
- DEFUN (pf_verbatim, &key quote,
--"Insert <var body> verbatim, avoiding doing any processing on
--the contents.  If the keyword argument <var quote> is given,
--occurrences of characters with special meaning to <b>HTML</b> are
--replaced with the <b>HTML</b> code to produce that character in the
--output page.
--
-+"Insert <var body> verbatim, avoiding doing any processing on\
-+the contents.  If the keyword argument <var quote> is given,\
-+occurrences of characters with special meaning to <b>HTML</b> are\
-+replaced with the <b>HTML</b> code to produce that character in the\
-+output page.\
-+\
- Contrast this with <funref page-operators comment>.")
- {
-   int quote_p = var_present_p (vars, "quote");
-@@ -991,25 +991,25 @@
- 
- DEFINE_SECTION (DATES-AND-TIMES,
-               canonical date; time functions; clock; zone,
--"<Meta-HTML> provides a number of pre-defined functions for manipulating
--date and time objects.  Along with the primitive builtins of <tag date>
--and <tag time>, there are several functions defined with the prefix of
--<code>date</code> which can be used to parse dates, convert between time
--and date formats, format time strings in a variety of ways, and even
-+"<Meta-HTML> provides a number of pre-defined functions for manipulating\
-+date and time objects.  Along with the primitive builtins of <tag date>\
-+and <tag time>, there are several functions defined with the prefix of\
-+<code>date</code> which can be used to parse dates, convert between time\
-+and date formats, format time strings in a variety of ways, and even\
- produce HTML-based calendars and the like.", "")
- 
- DEFUN (pf_time, ,
--"Returns the current local time, as measured in seconds since the
--epoch (12 midnight, December 31, 1969).
--
--This is often useful as input to the <funref dates-and-times date>
--operator.  Here is how one might find out the printable date for the
--time 10 hours from now.
--
--<example>
--   <date> --> Wed Jul  3 17:14:53 1996
--   <date <add <time> <mul 60 60 10>>>
--          --> Thu Jul  4 03:14:57 1996
-+"Returns the current local time, as measured in seconds since the\
-+epoch (12 midnight, December 31, 1969).\
-+\
-+This is often useful as input to the <funref dates-and-times date>\
-+operator.  Here is how one might find out the printable date for the\
-+time 10 hours from now.\
-+\
-+<example>\
-+   <date> --> Wed Jul  3 17:14:53 1996\
-+   <date <add <time> <mul 60 60 10>>>\
-+          --> Thu Jul  4 03:14:57 1996\
- </example>")
- {
-   unsigned long ticks = (unsigned long)time ((time_t *)0);
-@@ -1018,25 +1018,25 @@
- }
- 
- DEFUN (pf_date, &optional seconds-since-epoch &key gmt=true,
--"Returns the local date as a string of 24 characters.
--
--The output looks like <code><date></code>.
--
--Given the optional argument <var epoch-seconds>, this number is
--treated as the number of seconds since 12 midnight, December 31st,
--1969, and is converted into the current date.
--
--When the keyword argument <var gmt=true> is supplied, returns the date at
--the meridian (Greenwich Mean Time) in the same format as used by HTTP headers,
--such as the <b>Expires</b> header.
--
--Examples:
--<example>
--<date>                  --> Thu Nov 13 10:52:07 1997
--<date gmt=true>         --> Thu, 13 Nov 1997 18:52:07 GMT
--<date <add <time> 60>>  --> Thu Nov 13 10:53:07 1997
--</example>
--
-+"Returns the local date as a string of 24 characters.\
-+\
-+The output looks like <code><date></code>.\
-+\
-+Given the optional argument <var epoch-seconds>, this number is\
-+treated as the number of seconds since 12 midnight, December 31st,\
-+1969, and is converted into the current date.\
-+\
-+When the keyword argument <var gmt=true> is supplied, returns the date at\
-+the meridian (Greenwich Mean Time) in the same format as used by HTTP 
headers,\
-+such as the <b>Expires</b> header.\
-+\
-+Examples:\
-+<example>\
-+<date>                  --> Thu Nov 13 10:52:07 1997\
-+<date gmt=true>         --> Thu, 13 Nov 1997 18:52:07 GMT\
-+<date <add <time> 60>>  --> Thu Nov 13 10:53:07 1997\
-+</example>\
-+\
- Also see the <funref dates-and-times time> function.")
- {
-   char *tstring = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -1057,7 +1057,7 @@
- 
- DOC_SECTION (LANGUAGE-OPERATORS)
- DEFUN (pf_pid, ,
--"Returns the process ID of the currently executing Meta-HTML
-+"Returns the process ID of the currently executing Meta-HTML\
- interpreter, on those systems which have process IDs.")
- {
-   pid_t pid = getpid ();
-diff -x config.log -x config.status -ru work/metahtml-5.091/libmhtml/prims.c 
work/metahtml-5.091/libmhtml/prims.c
---- work/metahtml-5.091/libmhtml/prims.c       1999-04-08 03:36:40.000000000 
+0200
-+++ work/metahtml-5.091/libmhtml/prims.c       2013-04-02 22:21:03.653801283 
+0200
-@@ -73,32 +73,32 @@
- 
- PACKAGE_INITIALIZER (initialize_primitive_functions)
- DEFINE_SECTION (PRIMITIVE-OPERATORS, builtins; primitives; low-level,
--"While most functions in <Meta-HTML> are used to create or manipulate Web
--pages, there may be times when you will wish to manipulate the <Meta-HTML>
--language itself, the low-level operation of the server, or have direct
--access to the current page that is executing, and information pertaining
--to the <Meta-HTML> parser itself.
--
--The functions described in this section allow just this type of low-level
--access.  Programming wizards may find these functions useful -- many of
--them are here to allow the implementation of core functionality in <Meta-HTML>
--in the <Meta-HTML> language itself.
--
--All of the primitive language operators begin with the two-character sequence
--of double percent signs (\"%%\") in order to distinguish them from the
-+"While most functions in <Meta-HTML> are used to create or manipulate Web\
-+pages, there may be times when you will wish to manipulate the <Meta-HTML>\
-+language itself, the low-level operation of the server, or have direct\
-+access to the current page that is executing, and information pertaining\
-+to the <Meta-HTML> parser itself.\
-+\
-+The functions described in this section allow just this type of low-level\
-+access.  Programming wizards may find these functions useful -- many of\
-+them are here to allow the implementation of core functionality in 
<Meta-HTML>\
-+in the <Meta-HTML> language itself.\
-+\
-+All of the primitive language operators begin with the two-character sequence\
-+of double percent signs (\"%%\") in order to distinguish them from the\
- other, higher-level functions in <Meta-HTML>.", "")
- 
- DEFUNX (pf_%%eval, &rest body,
--"Evaluate the result of evaluating <var body> and return that value.
--
--You may use this function to call another function on some arguments,
--where the other function is determined dynamically.  For example:
--<example>
--<if <set-in-session>
--    <set-var func=set-session-var>
--  <set-var func=set-var>>
--.blank
--<%%eval <<get-var func> <get-var name> = <get-var value>>>
-+"Evaluate the result of evaluating <var body> and return that value.\
-+\
-+You may use this function to call another function on some arguments,\
-+where the other function is determined dynamically.  For example:\
-+<example>\
-+<if <set-in-session>\
-+    <set-var func=set-session-var>\
-+  <set-var func=set-var>>\
-+.blank\
-+<%%eval <<get-var func> <get-var name> = <get-var value>>>\
- </example>")
- static void
- pf_eval (PFunArgs)
-@@ -122,10 +122,10 @@
- }
- 
- DEFUNX (pf_%%read_sexp, string-var &optional index-var,
--"Reads one symbolic expression from <var string-var> and returns it.
--Sets <var index-var> to the first unread character in <var string-var>.
--If <var index-var> is empty, it defaults to zero.
--There isn't the slightest possibility that you need this in your
-+"Reads one symbolic expression from <var string-var> and returns it.\
-+Sets <var index-var> to the first unread character in <var string-var>.\
-+If <var index-var> is empty, it defaults to zero.\
-+There isn't the slightest possibility that you need this in your\
- programs.")
- static void
- pf_read_sexp (PFunArgs)
-@@ -184,9 +184,9 @@
- }
- 
- DEFUNX (pf_%%write_package_file, filename &rest packages,
--"Writes the contents of <var packages> to the file specified by <var 
filename>.
--This function is used internally when creating libraries.  There isn't the
--slightest possibility that you need this in your programs -- if you think
-+"Writes the contents of <var packages> to the file specified by <var 
filename>.\
-+This function is used internally when creating libraries.  There isn't the\
-+slightest possibility that you need this in your programs -- if you think\
- you do, you probably simply want to use <b>mklib</b>.")
- static void
- pf_write_package_file (PFunArgs)
-@@ -232,10 +232,10 @@
- }
- 
- DEFUNX (pf_%%read_package_file, filename,
--"Reads package contents from the file specified by <var filename>, which
--had best be created using <funref primitive-operators %%write-package-file>.
--This function is used internally when loading libraries.  There isn't the
--slightest possibility that you need this in your programs -- if you think
-+"Reads package contents from the file specified by <var filename>, which\
-+had best be created using <funref primitive-operators %%write-package-file>.\
-+This function is used internally when loading libraries.  There isn't the\
-+slightest possibility that you need this in your programs -- if you think\
- you do, you probably simply want to use <funref file-operators require>.")
- static void
- pf_read_package_file (PFunArgs)
-@@ -291,10 +291,10 @@
- }
- 
- DEFUNX (pf_%%switch_user, newuser,
--"Changes the current user to <var newuser>, and returns \"true\" if the
--switch was successful.  This can only take place if <Meta-HTML> is
--running under the user ID of the superuser (root).  After calling this
--function, it is impossible to switch back to another user, so it really
-+"Changes the current user to <var newuser>, and returns \"true\" if the\
-+switch was successful.  This can only take place if <Meta-HTML> is\
-+running under the user ID of the superuser (root).  After calling this\
-+function, it is impossible to switch back to another user, so it really\
- isn't of much use in Meta-HTML programs.")
- static void
- pf_switch_user (PFunArgs)
-@@ -327,7 +327,7 @@
- }
- 
- DEFUNX (pf_%%the_page,  &optional varname,
--"Places the current page into <var varname> as a binary variable, or,
-+"Places the current page into <var varname> as a binary variable, or,\
- returns the current page as text if <var varname> is not supplied.")
- static void
- pf_the_page (PFunArgs)
-@@ -358,7 +358,7 @@
- }
- 
- DEFUNX (pf_%%point, ,
--"Returns the current parser marker in the page.
-+"Returns the current parser marker in the page.\
- <b>CAVEAT</b>!  Currently, can only be called at top level.")
- static void
- pf_point (PFunArgs)
-@@ -367,8 +367,8 @@
- }
- 
- DEFUNX (pf_%%function_documentation,  user-function,
--"Returns the documentation for <var user-function>.  Only works if the
--variable <var mhtml::gather-documentation> was set at the time the
-+"Returns the documentation for <var user-function>.  Only works if the\
-+variable <var mhtml::gather-documentation> was set at the time the\
- <var user-function> was defined.")
- static void
- pf_function_documentation (PFunArgs)
-@@ -397,8 +397,8 @@
- }
- 
- DEFUNX (pf_%%function_arguments, user-function,
--"Returns an array of the formal parameters for <var user-function>.
--Essentially, this returns exactly what was entered at the time the
-+"Returns an array of the formal parameters for <var user-function>.\
-+Essentially, this returns exactly what was entered at the time the\
- function definition was defined.")
- static void
- pf_function_arguments (PFunArgs)
-@@ -428,10 +428,10 @@
- }
- 
- DEFUNX (pf_%%function_alist, user-function,
--"Returns all information that we store about the user-defined function
--<var user-function>, in the form of an alist.  This function is used
--internally by the <Meta-HTML> grinder and beautifier -- it is unlikely
--in the extreme that one would use this in application programs -- it is
-+"Returns all information that we store about the user-defined function\
-+<var user-function>, in the form of an alist.  This function is used\
-+internally by the <Meta-HTML> grinder and beautifier -- it is unlikely\
-+in the extreme that one would use this in application programs -- it is\
- meant for use in programs that manipulate the <Meta-HTML> language itself.")
- 
- static void
-@@ -562,8 +562,8 @@
- }
- 
- DEFUNX (pf_%%quote_for_set_var, &rest body,
--"After evaluating <var body>, the results are quoted in such a way that
--Meta-HTML will treat it as one argument.  Used internally by the function
-+"After evaluating <var body>, the results are quoted in such a way that\
-+Meta-HTML will treat it as one argument.  Used internally by the function\
- invoker.")
- static void
- pf_quote_for_setvar (PFunArgs)
-@@ -585,13 +585,13 @@
- }
- 
- DEFMACROX (pf_%%after_page_return, ,
--"Store <var body> for execution at a later time, specifically, after the top
--level process is completed.  For the <Meta-HTML> server or engine, this is
--after the requested page has been successfully delivered; for 
<code>mhc</code>,
--this is after the main document has finished processing, and the results have
--been returned.
--
--I would be interested if anybody actually needs this function -- if you do,
-+"Store <var body> for execution at a later time, specifically, after the top\
-+level process is completed.  For the <Meta-HTML> server or engine, this is\
-+after the requested page has been successfully delivered; for 
<code>mhc</code>,\
-+this is after the main document has finished processing, and the results have\
-+been returned.\
-+\
-+I would be interested if anybody actually needs this function -- if you do,\
- please drop me a line showing how it made your life easier.")
- 
- static PAGE *after_page_return_buffer = (PAGE *)NULL;
-@@ -614,29 +614,29 @@
- }
-       
- DEFUN (pf_apply, func &rest args,
--"Apply <var func> to <var args>.
--
--This <i>weak</i>macro can either be used as a simple tag or as a
--complex tag -- its usage is dependent on the function being called.
--
--Using <tag apply> as a simple tag:
--<example>
--<apply add 3 4 5>         --> 12
--<defun foo &key bar baz>
--  <get-var bar>, <get-var baz>
--</defun>
--<apply foo \"bar=this baz=2\"> --> this,2
--</example>
--
--Using <tag apply> as a complex tag:
--<example>
--<defmacro upcase-text &key bold? &rest body>
--   <if <get-var-once bold?> <b>>
--   <upcase %qbody>
--   <if <get-var-once bold?> </b>>
--</defmacro>
--<apply upcase-text> This is a list of things to \"change case of\" </apply>
--<apply upcase-text bold?=true> And this is upcased <i>and</i> bold </apply>
-+"Apply <var func> to <var args>.\
-+\
-+This <i>weak</i>macro can either be used as a simple tag or as a\
-+complex tag -- its usage is dependent on the function being called.\
-+\
-+Using <tag apply> as a simple tag:\
-+<example>\
-+<apply add 3 4 5>         --> 12\
-+<defun foo &key bar baz>\
-+  <get-var bar>, <get-var baz>\
-+</defun>\
-+<apply foo \"bar=this baz=2\"> --> this,2\
-+</example>\
-+\
-+Using <tag apply> as a complex tag:\
-+<example>\
-+<defmacro upcase-text &key bold? &rest body>\
-+   <if <get-var-once bold?> <b>>\
-+   <upcase %qbody>\
-+   <if <get-var-once bold?> </b>>\
-+</defmacro>\
-+<apply upcase-text> This is a list of things to \"change case of\" </apply>\
-+<apply upcase-text bold?=true> And this is upcased <i>and</i> bold </apply>\
- </example>")
- {
-   char *func = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -728,18 +728,18 @@
- }
- 
- DEFUNX (pf_%%bootstrap_metahtml, &optional call-initializer?,
--"Bootstrap the user defined functions which are compiled into <Meta-HTML>.
--This loads the definitions into the inpterpreter, and then calls
--<tag bootstrapper::system-initialize>.
--
--When <var call-initializer?> is non-zero, this function also calls
--<tag bootstrapper::initialize>.
--
--The one obvious use for this function is in <b>mhc</b> programs which
--are run with the `-z' flag (which prevents bootstrapping from taking place).
--Such programs may read some files in order to define a set of functions,
--remember those functions (by calling
--<example code><package-vars *user-functions*></example>), and then instantiate
-+"Bootstrap the user defined functions which are compiled into <Meta-HTML>.\
-+This loads the definitions into the inpterpreter, and then calls\
-+<tag bootstrapper::system-initialize>.\
-+\
-+When <var call-initializer?> is non-zero, this function also calls\
-+<tag bootstrapper::initialize>.\
-+\
-+The one obvious use for this function is in <b>mhc</b> programs which\
-+are run with the `-z' flag (which prevents bootstrapping from taking place).\
-+Such programs may read some files in order to define a set of functions,\
-+remember those functions (by calling\
-+<example code><package-vars *user-functions*></example>), and then 
instantiate\
- the standard set of Meta-HTML functions for further processing.")
- 
- static void
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/relfuncs.c work/metahtml-5.091/libmhtml/relfuncs.c
---- work/metahtml-5.091/libmhtml/relfuncs.c    1998-11-11 21:19:38.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/relfuncs.c    2013-04-02 22:41:55.733870695 
+0200
-@@ -57,23 +57,23 @@
- 
- PACKAGE_INITIALIZER (initialize_relational_functions)
- DEFINE_SECTION (RELATIONAL-OPERATORS, boolean; relational; logical, 
--"<i>Relational operators</i> in <Meta-HTML> return information about the
--relationship between two items.  There are three logical operators,
--<funref RELATIONAL-OPERATORS and>, <funref RELATIONAL-OPERATORS
--or>,  and <funref RELATIONAL-OPERATORS not>.
--
--There are several other operators which compare numeric values; the
-+"<i>Relational operators</i> in <Meta-HTML> return information about the\
-+relationship between two items.  There are three logical operators,\
-+<funref RELATIONAL-OPERATORS and>, <funref RELATIONAL-OPERATORS\
-+or>,  and <funref RELATIONAL-OPERATORS not>.\
-+\
-+There are several other operators which compare numeric values; the\
- section <secref ARITHMETIC-OPERATORS> cover those in detail.", "")
- 
- DEFUN (pf_not, &optional body,
--"<var body> is evaluated.  If the result is the empty string, then the
--string \"true\" is returned, otherwise nothing is returned.  <var body>
--is simply the entire contents of the simple tag, with the word \"not\"
--in it.  Thus, in typical usage one might write:
--<example>
--<when <not <get-var foo>>>
--  Hey!  You didn't set the variable FOO.
--</when>
-+"<var body> is evaluated.  If the result is the empty string, then the\
-+string \"true\" is returned, otherwise nothing is returned.  <var body>\
-+is simply the entire contents of the simple tag, with the word \"not\"\
-+in it.  Thus, in typical usage one might write:\
-+<example>\
-+<when <not <get-var foo>>>\
-+  Hey!  You didn't set the variable FOO.\
-+</when>\
- </example>")
- {
-   int offset = 0;
-@@ -88,33 +88,33 @@
- }
- 
- DEFUN (pf_and, &unevalled &rest expr...,
--"<code>and</code> evaluates each <var expr> given until one of them
--evaluates to the empty string, or until they are all exhausted.  The
--result is the result of the last evaluation.  Evaluating just <example
--code><and></example> returns <code>\"true\"</code>.
--
--Examples:
--<example>
--<and>                    --> true
--<and this that>          --> that
--<unset-var foo>
--<and <get-var foo> this> -->
--<and this <get-var foo>> -->
--<set-var foo=bar>
--<and this long list <get-var foo>> --> bar
--</example>
--
--<tag and> could have been defined in <Meta-HTML> as follows:
--<example>
--<define-tag and &unevalled &rest expressions[] whitespace=delete>
--  <set-var result=true>
--  <foreach :expr expressions>
--    <set-var result = <get-var :expr>>
--    <if <not <get-var-once result>>
--      <break>>
--  </foreach>
--  <get-var-once result>
--</define-tag>
-+"<code>and</code> evaluates each <var expr> given until one of them\
-+evaluates to the empty string, or until they are all exhausted.  The\
-+result is the result of the last evaluation.  Evaluating just <example\
-+code><and></example> returns <code>\"true\"</code>.\
-+\
-+Examples:\
-+<example>\
-+<and>                    --> true\
-+<and this that>          --> that\
-+<unset-var foo>\
-+<and <get-var foo> this> -->\
-+<and this <get-var foo>> -->\
-+<set-var foo=bar>\
-+<and this long list <get-var foo>> --> bar\
-+</example>\
-+\
-+<tag and> could have been defined in <Meta-HTML> as follows:\
-+<example>\
-+<define-tag and &unevalled &rest expressions[] whitespace=delete>\
-+  <set-var result=true>\
-+  <foreach :expr expressions>\
-+    <set-var result = <get-var :expr>>\
-+    <if <not <get-var-once result>>\
-+      <break>>\
-+  </foreach>\
-+  <get-var-once result>\
-+</define-tag>\
- </example>")
- {
-   register int i = 0;
-@@ -147,32 +147,32 @@
- }
- 
- DEFUN (pf_or, &unevalled &rest expr...,
--"<code>or</code> evaluates each <var expr> given until one of them
--evaluates to a non-empty string, or until they are all exhausted.  The
--result is the result of the last evaluation.  Evaluating just <example
--code><or></example> returns the empty string.
--
--Examples:
--<example>
--<or>                    --> 
--<or this that>          --> this
--<unset-var foo>
--<or <get-var foo> this> --> this
--<or this <get-var foo>> --> this
--<set-var foo=bar>
--<or <get-var foo> this> --> bar
--</example>
--
--<tag or> could have been defined in <Meta-HTML> as follows:
--<example>
--<define-tag or &unevalled &rest expressions[] whitespace=delete>
--  <foreach :expr expressions>
--    <set-var result = <get-var :expr>>
--    <if <get-var-once result>
--        <break>>
--  </foreach>
--  <get-var-once result>
--</define-tag>
-+"<code>or</code> evaluates each <var expr> given until one of them\
-+evaluates to a non-empty string, or until they are all exhausted.  The\
-+result is the result of the last evaluation.  Evaluating just <example\
-+code><or></example> returns the empty string.\
-+\
-+Examples:\
-+<example>\
-+<or>                    --> \
-+<or this that>          --> this\
-+<unset-var foo>\
-+<or <get-var foo> this> --> this\
-+<or this <get-var foo>> --> this\
-+<set-var foo=bar>\
-+<or <get-var foo> this> --> bar\
-+</example>\
-+\
-+<tag or> could have been defined in <Meta-HTML> as follows:\
-+<example>\
-+<define-tag or &unevalled &rest expressions[] whitespace=delete>\
-+  <foreach :expr expressions>\
-+    <set-var result = <get-var :expr>>\
-+    <if <get-var-once result>\
-+        <break>>\
-+  </foreach>\
-+  <get-var-once result>\
-+</define-tag>\
- </example>")
- {
-   register int i = 0;
-diff -x config.log -x config.status -ru work/metahtml-5.091/libmhtml/require.c 
work/metahtml-5.091/libmhtml/require.c
---- work/metahtml-5.091/libmhtml/require.c     1999-04-08 10:14:56.000000000 
+0200
-+++ work/metahtml-5.091/libmhtml/require.c     2013-04-02 22:21:46.340470314 
+0200
-@@ -209,25 +209,25 @@
- }
- 
- DEFUN (pf_require, stem,
--"<code>require</code> tries hard to locate the source or library file
--specified by <var stem>, and then loads that file if it hasn't already
--been loaded.
--
--If the variable <varref mhtml::require-directories> is present, then
--it is an array of directory names (without trailing slashes) relative
--to Web space that should be searched through, in the order that they
--appear in the array.
--
--<code>require</code> understands the following extensions:
--
--<ul>
--<li> <b>.mhtml</b>, or <b>.src</b>: A <meta-html> source file.
--
--<li> <b>.lib</b>: A <meta-html> library file.
--</ul>
--
--<code>require</code> loads the newest version of the file that it
--finds, and records the complete pathname of the loaded file in the
-+"<code>require</code> tries hard to locate the source or library file\
-+specified by <var stem>, and then loads that file if it hasn't already\
-+been loaded.\
-+\
-+If the variable <varref mhtml::require-directories> is present, then\
-+it is an array of directory names (without trailing slashes) relative\
-+to Web space that should be searched through, in the order that they\
-+appear in the array.\
-+\
-+<code>require</code> understands the following extensions:\
-+\
-+<ul>\
-+<li> <b>.mhtml</b>, or <b>.src</b>: A <meta-html> source file.\
-+\
-+<li> <b>.lib</b>: A <meta-html> library file.\
-+</ul>\
-+\
-+<code>require</code> loads the newest version of the file that it\
-+finds, and records the complete pathname of the loaded file in the\
- array variable <varref mhtml::require-loaded>.")
- {
-   register int i;
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/sessionfuncs.c 
work/metahtml-5.091/libmhtml/sessionfuncs.c
---- work/metahtml-5.091/libmhtml/sessionfuncs.c        1998-11-11 
21:19:39.000000000 +0100
-+++ work/metahtml-5.091/libmhtml/sessionfuncs.c        2013-04-02 
22:23:59.373811019 +0200
-@@ -92,94 +92,94 @@
- 
- PACKAGE_INITIALIZER (initialize_session_functions)
- DEFINE_SECTION (SESSION-OPERATORS, ,
--"<Meta-HTML> solves the problem of keeping state for a particular
--session, and it does it in a server and browser independent
--manner. Our method requires no additional CGI programs to be written,
--and you don't have to be a programmer to take advantage of it.
--
--The basic essence of sessions is the <i>session database</i>.  An
--entry in the session database can have exactly one of three possible
-+"<Meta-HTML> solves the problem of keeping state for a particular\
-+session, and it does it in a server and browser independent\
-+manner. Our method requires no additional CGI programs to be written,\
-+and you don't have to be a programmer to take advantage of it.\
-+\
-+The basic essence of sessions is the <i>session database</i>.  An\
-+entry in the session database can have exactly one of three possible\
- states: <i>present</i>, <i>missing</i>, or <i>timed out</i>.",
- 
--"Using the session commands, you can:
--
--<ul>
--<li>
--<b>Create a session.</b><br> This generates a unique entry
--in the session database, and returns that information as a session
--identifier (<strong>SID</strong>).  You can associate a special
--<i>key</i> with the session at creation time, and you can decide
--whether the key must be unique or not.  Session information can be
--located by either the SID or the key.
--
--<p><li> <b>Delete a session.</b><br>
--This removes the entry in the database associated with a specific SID,
--thus placing the session in the \"missing\" state.
--
--<p><li> <b>Change a session's timeout value.</b><br>
--With each session there is an associated <i>timeout</i> value, which
--is the number of minutes the session can live without any activity on
--the part of the user.  When the session is created, a default timeout
--is installed; currently this is five minutes.  Using
--<funref SESSION-OPERATORS >set-session-timeout>, you can change this
--value. A special signal value of \"<code>0</code>\" causes the session
--to live forever (or until it is deleted with <funref SESSION-OPERATORS
--delete-session>).
--
--<p><li> <b>Require a session to be present.</b><br>
--Using the <funref session-operators require-session> form allows you
--to check the state of the session, and optionally execute code for the
--cases where it is missing or timed out.
--
--<p><li> <b>Manipulate persistent variables.</b><br>
--Commands exist to associate a name with a value in the session
--database, to retrieve the value associated with a name in the session
--database, and to store and retrieve a group of associations at once
--from the session database.
-+"Using the session commands, you can:\
-+\
-+<ul>\
-+<li>\
-+<b>Create a session.</b><br> This generates a unique entry\
-+in the session database, and returns that information as a session\
-+identifier (<strong>SID</strong>).  You can associate a special\
-+<i>key</i> with the session at creation time, and you can decide\
-+whether the key must be unique or not.  Session information can be\
-+located by either the SID or the key.\
-+\
-+<p><li> <b>Delete a session.</b><br>\
-+This removes the entry in the database associated with a specific SID,\
-+thus placing the session in the \"missing\" state.\
-+\
-+<p><li> <b>Change a session's timeout value.</b><br>\
-+With each session there is an associated <i>timeout</i> value, which\
-+is the number of minutes the session can live without any activity on\
-+the part of the user.  When the session is created, a default timeout\
-+is installed; currently this is five minutes.  Using\
-+<funref SESSION-OPERATORS >set-session-timeout>, you can change this\
-+value. A special signal value of \"<code>0</code>\" causes the session\
-+to live forever (or until it is deleted with <funref SESSION-OPERATORS\
-+delete-session>).\
-+\
-+<p><li> <b>Require a session to be present.</b><br>\
-+Using the <funref session-operators require-session> form allows you\
-+to check the state of the session, and optionally execute code for the\
-+cases where it is missing or timed out.\
-+\
-+<p><li> <b>Manipulate persistent variables.</b><br>\
-+Commands exist to associate a name with a value in the session\
-+database, to retrieve the value associated with a name in the session\
-+database, and to store and retrieve a group of associations at once\
-+from the session database.\
- </ul>")
- 
--DEFVAR (SID, "The current session ID, as set by the function
--<funref session-operators session::initialize>.
--
--The session ID is passed to and from the browser by either the use of
--HTTP Cookies, or in the URL, as the first element of the path.
--
--Normally, you never need to reference this variable directly, since
--the various internal functions which deal with sessions know how to
--set, get, and/or modify it without your help.
--
--Related functions: <funref Session-Operators create-session>,
--<funref Session-Operators delete-session>, <funref Session-Operators
-+DEFVAR (SID, "The current session ID, as set by the function\
-+<funref session-operators session::initialize>.\
-+\
-+The session ID is passed to and from the browser by either the use of\
-+HTTP Cookies, or in the URL, as the first element of the path.\
-+\
-+Normally, you never need to reference this variable directly, since\
-+the various internal functions which deal with sessions know how to\
-+set, get, and/or modify it without your help.\
-+\
-+Related functions: <funref Session-Operators create-session>,\
-+<funref Session-Operators delete-session>, <funref Session-Operators\
- set-session-var>.")
- 
--DEFVAR (mhttpd::session-database-file, "The fully qualified pathname to the
--current session database.  Setting this variable only has meaning in the
--<code>mhttpd.conf</code> or <code>engine.conf</code> files.
--
--If this variable is not set, then the default value of
--<code>\"/tmp/sessions.db\"</code> is used.
--
--If the server or engine cannot access this file, no session state
-+DEFVAR (mhttpd::session-database-file, "The fully qualified pathname to the\
-+current session database.  Setting this variable only has meaning in the\
-+<code>mhttpd.conf</code> or <code>engine.conf</code> files.\
-+\
-+If this variable is not set, then the default value of\
-+<code>\"/tmp/sessions.db\"</code> is used.\
-+\
-+If the server or engine cannot access this file, no session state\
- information may be saved or retrieved.")
- 
--DEFVAR (MHTML::SID-PREFIX, "When this variable is present, the
--<code>PATH</code> component of a returned <code>Set-Cookie</code> MIME
--header is set to its value.  Normally, the value of <varref
--MHTML::RELATIVE-PREFIX> is used.
--
--If you need to use <code>MHTML::SID-PREFIX</code>, you probably have a
--very complex directory structure, and the need for every page access
--to have a cookie associated with it.  In this case, setting
--<code>MHTML::SID-PREFIX</code> will have the effect of flattening your
--directory structure in the browser's view.
--
--Generally, correctly written <meta-html> applications do not need to
--use this variable, and it might be used in only the most complicated
--of Web sites, with multiple sessions per connectee, etc.
--
--The explanation of HTTP Cookies is beyond the scope of this document.
--Reference information on Cookies can be found through <a
--href=\"http://home.netscape.com/newsref/std/cookie_spec.html\";> this
-+DEFVAR (MHTML::SID-PREFIX, "When this variable is present, the\
-+<code>PATH</code> component of a returned <code>Set-Cookie</code> MIME\
-+header is set to its value.  Normally, the value of <varref\
-+MHTML::RELATIVE-PREFIX> is used.\
-+\
-+If you need to use <code>MHTML::SID-PREFIX</code>, you probably have a\
-+very complex directory structure, and the need for every page access\
-+to have a cookie associated with it.  In this case, setting\
-+<code>MHTML::SID-PREFIX</code> will have the effect of flattening your\
-+directory structure in the browser's view.\
-+\
-+Generally, correctly written <meta-html> applications do not need to\
-+use this variable, and it might be used in only the most complicated\
-+of Web sites, with multiple sessions per connectee, etc.\
-+\
-+The explanation of HTTP Cookies is beyond the scope of this document.\
-+Reference information on Cookies can be found through <a\
-+href=\"http://home.netscape.com/newsref/std/cookie_spec.html\";> this\
- link.</a>")
- 
- /* Get the values of VAR1 .. VARn and concatenate them to make a key.
-@@ -198,29 +198,29 @@
-    >  */
- DEFUN (pf_create_session,
-        &optional var=missing-code... &key alt=altcode allow-multiple,
--"Create a session, and place the session identifier in the variable
--<var default::sid>. The key for the session is created by
--concatenating the values of the <var VAR>s together, separated by
--hyphens (-). If a <var VAR> doesn't have a value currently assigned in
--the default package, but does have an optional <var MISSING-CODE>
--assignment, then the session is not created, and the <var
--MISSING-CODE> for that variable is evaluated. If all of the variables
--have values (or have no missing action), and the session could not be
--created, then <var ALTCODE> is evaluated if it is present.
--
--Finally, if the keyword <var ALLOW-MULTIPLE> is present, it indicates
--that the key does not have to be unique; it is enough that the session
--is created and a session ID returned.
--
--Example:
--<example>
--<create-session
-- USERNAME=<group <set-var ERROR-MESSAGE=\"You must supply a Username\">
--                 <include registration.html>>
-- PASSWORD=<group <set-var ERROR-MESSAGE=\"You must supply a Password\">
--                 <include registration.html>>
--      ALT=<group <set-var ERROR-MESSAGE=\"You are already signed on!\">
--                 <include begin.html>>>
-+"Create a session, and place the session identifier in the variable\
-+<var default::sid>. The key for the session is created by\
-+concatenating the values of the <var VAR>s together, separated by\
-+hyphens (-). If a <var VAR> doesn't have a value currently assigned in\
-+the default package, but does have an optional <var MISSING-CODE>\
-+assignment, then the session is not created, and the <var\
-+MISSING-CODE> for that variable is evaluated. If all of the variables\
-+have values (or have no missing action), and the session could not be\
-+created, then <var ALTCODE> is evaluated if it is present.\
-+\
-+Finally, if the keyword <var ALLOW-MULTIPLE> is present, it indicates\
-+that the key does not have to be unique; it is enough that the session\
-+is created and a session ID returned.\
-+\
-+Example:\
-+<example>\
-+<create-session\
-+ USERNAME=<group <set-var ERROR-MESSAGE=\"You must supply a Username\">\
-+                 <include registration.html>>\
-+ PASSWORD=<group <set-var ERROR-MESSAGE=\"You must supply a Password\">\
-+                 <include registration.html>>\
-+      ALT=<group <set-var ERROR-MESSAGE=\"You are already signed on!\">\
-+                 <include begin.html>>>\
- </example>")
- {
-   register int i;
-@@ -294,9 +294,9 @@
- }
- 
- DEFUN (pf_delete_session, ,
--"Immediately end the current session. This never returns anything. The
--current session is indicated by the value of the variable <var
--default::sid>, so you can delete sessions other than your own by
-+"Immediately end the current session. This never returns anything. The\
-+current session is indicated by the value of the variable <var\
-+default::sid>, so you can delete sessions other than your own by\
- setting that variable. Also see <funref SESSION-OPERATORS sessions-of-key>.")
- {
-   session_id_t sid =
-@@ -345,10 +345,10 @@
- }
- 
- DEFMACRO (pf_with_locked_session, ,
--"Executes <var body> in an environment where access to the current
--session is blocked. This allows concurrency (such as might be required
--when multiple <code>GET</code>s are being processed for a single user)
--to take place without introducing any race conditions for access to
-+"Executes <var body> in an environment where access to the current\
-+session is blocked. This allows concurrency (such as might be required\
-+when multiple <code>GET</code>s are being processed for a single user)\
-+to take place without introducing any race conditions for access to\
- the current session record of the session database.")
- {
-   session_id_t sid =
-@@ -383,15 +383,15 @@
- }
- 
- DEFUN (pf_sessions_of_key, key,
--"Returns a newline separated list of the session ID's whose key
--matches <var key>.
--
--If <var key> is not specified, or if it contains only whitespace, all
--session ID's in the session database are returned. Since the list is
--newline separated, it is suitable for assignment to an array, as in:
--
--<example>
--<set-var sids[]=<sessions-of-key \"On-Line Shopping\">>
-+"Returns a newline separated list of the session ID's whose key\
-+matches <var key>.\
-+\
-+If <var key> is not specified, or if it contains only whitespace, all\
-+session ID's in the session database are returned. Since the list is\
-+newline separated, it is suitable for assignment to an array, as in:\
-+\
-+<example>\
-+<set-var sids[]=<sessions-of-key \"On-Line Shopping\">>\
- </example>")
- {
-   register int i;
-@@ -421,7 +421,7 @@
- }
-       
- DEFUN (pf_set_session_var, name=value...,
--"Give the <var name>s the associated <var value>s in the session
-+"Give the <var name>s the associated <var value>s in the session\
- database record associated with the current session.")
- {
-   session_id_t sid =
-@@ -464,32 +464,32 @@
- }
- 
- DEFUN (pf_get_session_var, &optional name...,
--"Return the value of the <var name>s given from the session data
--associated with the current session.  Each <var name> is a
--variable name which has had a value assigned to it with <funref
--SESSION-OPERATORS set-session-var>, or was created implicity via
--<funref SESSION-OPERATORS session-export>.
--
--The values are returned in the order in which the <var name>s appear.
--
--Examples:
--<example>
--<set-session-var foo=Var-1 bar=Var-2>
--<get-session-var foo>, <get-session-var bar>
--</example>
--produces
--<pre>
--<set-var foo=Var-1 bar=Var-2>
--<get-var foo>, <get-var bar>
--</pre>
--
--Example of retrieving a single session variable from a session
--package:
--<example>
--<set-var record::name=\"Brian Fox\">
--<set-var record::job=\"Programmer\">
--<session-export record record>
--<get-session-var record::name> --> Brian Fox
-+"Return the value of the <var name>s given from the session data\
-+associated with the current session.  Each <var name> is a\
-+variable name which has had a value assigned to it with <funref\
-+SESSION-OPERATORS set-session-var>, or was created implicity via\
-+<funref SESSION-OPERATORS session-export>.\
-+\
-+The values are returned in the order in which the <var name>s appear.\
-+\
-+Examples:\
-+<example>\
-+<set-session-var foo=Var-1 bar=Var-2>\
-+<get-session-var foo>, <get-session-var bar>\
-+</example>\
-+produces\
-+<pre>\
-+<set-var foo=Var-1 bar=Var-2>\
-+<get-var foo>, <get-var bar>\
-+</pre>\
-+\
-+Example of retrieving a single session variable from a session\
-+package:\
-+<example>\
-+<set-var record::name=\"Brian Fox\">\
-+<set-var record::job=\"Programmer\">\
-+<session-export record record>\
-+<get-session-var record::name> --> Brian Fox\
- </example>")
- {
-   session_id_t sid =
-@@ -532,10 +532,10 @@
- 
- /* <get-session-data [sid]> --> Alist of the session data for SID. */
- DEFUN (pf_get_session_data, &optional sid,
--"Returns an association list representing all of the data in the
--session database associated with <var sid>.
--
--If <var sid> is not supplied, it defaults to the value of <var
-+"Returns an association list representing all of the data in the\
-+session database associated with <var sid>.\
-+\
-+If <var sid> is not supplied, it defaults to the value of <var\
- default::sid> (i.e., the current session ID).")
- {
-   char *passed = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -568,14 +568,14 @@
-   
- /* <set-session-data [alist] [sid]> --> Set session info from ALIST. */
- DEFUN (pf_set_session_data, alist &optional sid,
--"Sets all of the session data associated with the session ID <var sid>
--to the contents of the association list <var alist>.  If <var sid> is
--not supplied, it defaults to the value of <var default::sid>.
--
--This construct is really of use only for those programs which deal
--directly with the session database, such as a backend tool for viewing
--and manipulating session data.  For all other applications, the use of
--<funref SESSION-OPERATORS set-session-var> and <funref
-+"Sets all of the session data associated with the session ID <var sid>\
-+to the contents of the association list <var alist>.  If <var sid> is\
-+not supplied, it defaults to the value of <var default::sid>.\
-+\
-+This construct is really of use only for those programs which deal\
-+directly with the session database, such as a backend tool for viewing\
-+and manipulating session data.  For all other applications, the use of\
-+<funref SESSION-OPERATORS set-session-var> and <funref\
- SESSION-OPERATORS session-export> should be more than sufficient.")
- {
-   char *alist = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -617,14 +617,14 @@
- }
- 
- DEFUN (pf_unset_session_var, &optional name...,
--"Analogous to <funref VARIABLES unset-var>, <code>unset-session-var</code>
--removes the variables named by the given <var name>s from the session
--data associated with the current session.
--<example>
--<set-session-var foo=bar>
--<get-session-var foo>     --> bar
--<unset-session-var foo>
--<get-session-var foo>     -->
-+"Analogous to <funref VARIABLES unset-var>, <code>unset-session-var</code>\
-+removes the variables named by the given <var name>s from the session\
-+data associated with the current session.\
-+<example>\
-+<set-session-var foo=bar>\
-+<get-session-var foo>     --> bar\
-+<unset-session-var foo>\
-+<get-session-var foo>     -->\
- </example>")
- {
-   session_id_t sid =
-@@ -663,22 +663,22 @@
- }
- 
- DEFUN (pf_session_export, package &optional to-package,
--"Save the package variables of <var package> in the current session.
--If <var to-package> is supplied, it indicates a new  package name to
--assign to each variable from <var package> that is saved.
--
--This function is quite useful when you wish to save all of the
--variables that were <b>posted</b> from the previous  URL (presumably,
--that URL contained a form whose <b>action</b> pointed to the current
--URL) in the session database record for the current session.  For
--example, if the previous URL posted the variables <code>FOO</code> and
--<code>BAR</code>, then executing:
--
--<example code><session-export posted blue></example>
--
--results in the session database containing values for
--<code>blue::FOO</code> and <code>blue::BAR</code>.  These values can
--either be looked up directly, or retrieved as a group 
-+"Save the package variables of <var package> in the current session.\
-+If <var to-package> is supplied, it indicates a new  package name to\
-+assign to each variable from <var package> that is saved.\
-+\
-+This function is quite useful when you wish to save all of the\
-+variables that were <b>posted</b> from the previous  URL (presumably,\
-+that URL contained a form whose <b>action</b> pointed to the current\
-+URL) in the session database record for the current session.  For\
-+example, if the previous URL posted the variables <code>FOO</code> and\
-+<code>BAR</code>, then executing:\
-+\
-+<example code><session-export posted blue></example>\
-+\
-+results in the session database containing values for\
-+<code>blue::FOO</code> and <code>blue::BAR</code>.  These values can\
-+either be looked up directly, or retrieved as a group \
- (see <funref session-operators session-import> for more information.)")
- {
-   session_id_t sid =
-@@ -753,21 +753,21 @@
- }
- 
- DEFUN (pf_session_import, package &optional to-package,
--"Get the values of the session variables which belong to <var package>
--and set their values in the current package. If <var to-package> is
--supplied, it is the name of the package which will receive the
--variable values. Thus, if the session data for the current session
--contains:
--
--<example code>((BLUE::FOO . bar))</example>
--
--and then at a later time in the same session the command:
--
--<example code><session-import blue></example>
--
--is given, then the variable <code>FOO</code> in the current package
--will be set to <code>bar</code>.  This is extremely useful when
--bouncing back and forth between forms, see <funref sessions
-+"Get the values of the session variables which belong to <var package>\
-+and set their values in the current package. If <var to-package> is\
-+supplied, it is the name of the package which will receive the\
-+variable values. Thus, if the session data for the current session\
-+contains:\
-+\
-+<example code>((BLUE::FOO . bar))</example>\
-+\
-+and then at a later time in the same session the command:\
-+\
-+<example code><session-import blue></example>\
-+\
-+is given, then the variable <code>FOO</code> in the current package\
-+will be set to <code>bar</code>.  This is extremely useful when\
-+bouncing back and forth between forms, see <funref sessions\
- session-export>.")
- {
-   SESSION_INFO *info = (SESSION_INFO *)NULL;
-@@ -879,10 +879,10 @@
- 
- 
- DEFUN (pf_set_session_timeout, minutes,
--"Make the current session time out after <var minutes> minutes have
--transpired since the last access to that session.
--
--You cannot supply the value of (<code>0</code>); that is accomplished
-+"Make the current session time out after <var minutes> minutes have\
-+transpired since the last access to that session.\
-+\
-+You cannot supply the value of (<code>0</code>); that is accomplished\
- with <funref sessions delete-session>.")
- {
-   char *timeout_ascii = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -908,52 +908,52 @@
- }
- 
- DEFUN (pf_require_session, &key missing=missing-code timeout=timeout-code,
--"Check that the current session is valid and not timed out.  If either
--of those things are true, the respective code is evaluated.  Usually,
--the targets of <var TIMEOUT> and <var MISSING> are a <funref
--FILE-OPERATORS redirect> command which points to a page explaining the
--problem.
--
--You could force an anonymous session with the following code:
--
--<example>
--  <set-var anonymous=\"Anonymous Session\">
--  <require-session
--    missing=\"<create-session anonymous allow-multiple>
--             <redirect <get-var SID>/<get-var mhtml::current-doc>\"
--    timeout=<redirect /timed-out.mhtml>>
--</example>
--
--In the real world, additional care should be taken when returning new
--URLs.  The variable <var mhtml::cookie-compatible> is
--<code>true</code> when the attached browser/server combination is
--capable of handling HTTP Cookies.  In this case, it is preferable to
--use the HTTP Cookie handling facilities instead of returning the
--session ID in the URL.  Here is how one might write the above example
--to handle both cases:
--
--<example>
--<set-var anonymous=\"Anonymous Session\" session-timeout=60>
--<require-session
-- missing = <prog
--             <create-session anonymous allow-multiple>
--             <set-session-timeout <get-var session-timeout>>
--             <when <not <get-var mhtml::cookie-compatible>>>
--             <redirect <concat
--                        <get-var mhtml::http-to-host>/
--                        <get-var SID><get-var mhtml::relative-prefix>/
--                        <get-var mhtml::current-doc>>>
--             </when>>
-- timeout = <prog
--             <set-var SID=\"\">
--             <if <get-var mhtml::cookie-compatible>
--                 <replace-page
--                  <get-var mhtml::relative-prefix>/timedout.mhtml>
--               <redirect
--                <get-var mhtml::url-to-dir-sans-sid>/timedout.mhtml>>>>
--</example>
--
--For more detail on the built-in variables provided by the <meta-html>
-+"Check that the current session is valid and not timed out.  If either\
-+of those things are true, the respective code is evaluated.  Usually,\
-+the targets of <var TIMEOUT> and <var MISSING> are a <funref\
-+FILE-OPERATORS redirect> command which points to a page explaining the\
-+problem.\
-+\
-+You could force an anonymous session with the following code:\
-+\
-+<example>\
-+  <set-var anonymous=\"Anonymous Session\">\
-+  <require-session\
-+    missing=\"<create-session anonymous allow-multiple>\
-+             <redirect <get-var SID>/<get-var mhtml::current-doc>\"\
-+    timeout=<redirect /timed-out.mhtml>>\
-+</example>\
-+\
-+In the real world, additional care should be taken when returning new\
-+URLs.  The variable <var mhtml::cookie-compatible> is\
-+<code>true</code> when the attached browser/server combination is\
-+capable of handling HTTP Cookies.  In this case, it is preferable to\
-+use the HTTP Cookie handling facilities instead of returning the\
-+session ID in the URL.  Here is how one might write the above example\
-+to handle both cases:\
-+\
-+<example>\
-+<set-var anonymous=\"Anonymous Session\" session-timeout=60>\
-+<require-session\
-+ missing = <prog\
-+             <create-session anonymous allow-multiple>\
-+             <set-session-timeout <get-var session-timeout>>\
-+             <when <not <get-var mhtml::cookie-compatible>>>\
-+             <redirect <concat\
-+                        <get-var mhtml::http-to-host>/\
-+                        <get-var SID><get-var mhtml::relative-prefix>/\
-+                        <get-var mhtml::current-doc>>>\
-+             </when>>\
-+ timeout = <prog\
-+             <set-var SID=\"\">\
-+             <if <get-var mhtml::cookie-compatible>\
-+                 <replace-page\
-+                  <get-var mhtml::relative-prefix>/timedout.mhtml>\
-+               <redirect\
-+                <get-var mhtml::url-to-dir-sans-sid>/timedout.mhtml>>>>\
-+</example>\
-+\
-+For more detail on the built-in variables provided by the <meta-html>\
- Server and CGI Engine, see the section <secref server-variables>.")
- {
-   char *missing_code = get_one_of (vars, "MISSING", "ALT", (char *)0);
-@@ -978,9 +978,9 @@
- }
- 
- DEFUN (pf_set_session_db, pathname,
--"Dynamically change the location of the file used to store session 
information.
--You probably don't need this in your programs -- it is used within the server
--and engine configuration files to specify the location of your session
-+"Dynamically change the location of the file used to store session 
information.\
-+You probably don't need this in your programs -- it is used within the server\
-+and engine configuration files to specify the location of your session\
- database.")
- {
-   char *session_db_file = mhtml_evaluate_string (get_positional_arg (vars, 
0));
-@@ -1001,21 +1001,21 @@
- extern char *session_encryption_key;
- 
- DEFUN (pf_set_session_encryption_key, keystring,
--"With non-empty argument <var keystring>, turns on the triple-DES
--encryption of data saved to the session database.  The data is
--encrypted and decrypted using <var key>.
--
--This could usefully be placed in the \"mhttpd.conf\" or \"engine.conf\"
--file with a statement similar to the following:
--
--<example>
--  <set-session-encryption-key <make-identifier 128>>
--</example>
--
--Don't turn this on unless you really have to, as it (obviously) affects
--the performance of the session database.  (Each access to the database
--results in a full call to triple ECB DES encryption, using the entire
--contents of the session, and encrypting/decryption with a random 128-bit
-+"With non-empty argument <var keystring>, turns on the triple-DES\
-+encryption of data saved to the session database.  The data is\
-+encrypted and decrypted using <var key>.\
-+\
-+This could usefully be placed in the \"mhttpd.conf\" or \"engine.conf\"\
-+file with a statement similar to the following:\
-+\
-+<example>\
-+  <set-session-encryption-key <make-identifier 128>>\
-+</example>\
-+\
-+Don't turn this on unless you really have to, as it (obviously) affects\
-+the performance of the session database.  (Each access to the database\
-+results in a full call to triple ECB DES encryption, using the entire\
-+contents of the session, and encrypting/decryption with a random 128-bit\
- key.)")
- {
-   char *key = mhtml_evaluate_string (get_positional_arg (vars, 0));
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/streamfuncs.c 
work/metahtml-5.091/libmhtml/streamfuncs.c
---- work/metahtml-5.091/libmhtml/streamfuncs.c 1999-03-07 18:55:04.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/streamfuncs.c 2013-04-02 22:19:07.613794850 
+0200
-@@ -62,25 +62,25 @@
- PACKAGE_INITIALIZER (initialize_stream_functions)
- 
- DEFINE_SECTION (STREAM-OPERATORS, files; streams; reading; writing;
--creating, "A <i>stream</i> is a data object upon which various input
--and output operations may be performed.
--
--<meta-html> provides commands for creating, opening, reading from, and
--writing to, stream objects.  The referenced underlying object may
--either be a file or a network connection.", "There are three special
--names which can be used with <funref stream-operators
--with-open-stream>, these are <code>*standard-input*</code>,
--<code>*standard-output*</code>, and <code>*standard-error*</code>.
--
--<code>*standard-input*</code> always names the stream that from which
--input was being read at the time the engine, server, or
--<code>mhc</code> invoked.  <code>*standard-output*</code> always names
--the stream to which output is being written by the engine, server or
--<code>mhc</code>.
--
--<code>*standard-error*</code> always names the stream where error
--output will appear -- this stream could be the same as the one named
--by <code>*standard-output*</code>, but this does not have to be the
-+creating, "A <i>stream</i> is a data object upon which various input\
-+and output operations may be performed.\
-+\
-+<meta-html> provides commands for creating, opening, reading from, and\
-+writing to, stream objects.  The referenced underlying object may\
-+either be a file or a network connection.", "There are three special\
-+names which can be used with <funref stream-operators\
-+with-open-stream>, these are <code>*standard-input*</code>,\
-+<code>*standard-output*</code>, and <code>*standard-error*</code>.\
-+\
-+<code>*standard-input*</code> always names the stream that from which\
-+input was being read at the time the engine, server, or\
-+<code>mhc</code> invoked.  <code>*standard-output*</code> always names\
-+the stream to which output is being written by the engine, server or\
-+<code>mhc</code>.\
-+\
-+<code>*standard-error*</code> always names the stream where error\
-+output will appear -- this stream could be the same as the one named\
-+by <code>*standard-output*</code>, but this does not have to be the\
- case.")
- 
- #if defined (mhtml_stream_MUST_SEEK)
-@@ -317,61 +317,61 @@
- 
- DEFMACRO (pf_with_open_stream, var name
-         &key type=(FILE|TCP|PROG) mode=OPEN-MODE timeout=(value|NEVER),
--"Create an environment in which <var var> is bound to the
--<i>indicator</i> of an open stream, named by <var name>.
--
--The stream is either of type <code>FILE</code>, in which case it is a simple
--file in the file system, of type <code>TCP</code>,
--in which case it is an open network connection, or of type <code>PROG</code>,
--in which case it is an open connection to a running process.
--
--When <var type> is <code>TCP</code>, <var name> specifies the host and
--port to connect to, in the form <code>Hostname:Port-Number</code>.
--<var port-number> can either be a symbolic name which is widely
--recognized (e.g., <code>SMTP</code>), or the digits which make up the
--port number, (e.g., <code>25</code>). Finally, the keyword argument
--<var notimeout=true> may be given, which indicates that the amount of
--time that <Meta-HTML> should wait during IO operations on this stream
--is infinite -- all processing will block until the stream is
--successfully read from or written to.  The default timeout is
--dependent on which specific operation is being performed, and the
--amount of data which is being read or written, but is generally
--suitable for writing data at about 14.4kbps.
--
--The possible values for <var mode> are:
--
--<ul>
--  <li> <code>READ</code>:<br>
--  The stream is opened for reading only.  The underlying object must
--already exist.
--
--  <li> <code>WRITE</code>:<br>
--  The stream is opened for writing only.  The underlying object must
--already exist.
--
--  <li> <code>READ-WRITE</code>:<br>
--  The stream is opened for both reading and writing.  The underlying
--object must already exist.
--
--  <li> <code>APPEND</code>:<br>
--  The stream is opened for writing only.  If the underlying object did
--not already exist, it is created.  Information written to this stream
--appears after any information that was already present in the
--underlying object.
--
--  <li> <code>WRITE-CREATE</code>:<br>
--  The stream is opened for writing only.  The underlying object is
--created fresh, even if it had already existed.
--</ul>
--
--When one is opening, reading to, or writing from a network stream, the 
--amount of time it can take to finish the operation is indeterminate.  So,
--the keyword argument <var timeout=value> can be used to specify the maximum
--amount of time (in seconds) that these operations may take.  If the value
--is specified as \"never\", then these operations can take \"forever\".
--If the value isn't specified, then the operations calculate the maximum
--wait time dynamically, based upon the amount of information to be read
--or written.  Any other value specifies an absolute maximum number of
-+"Create an environment in which <var var> is bound to the\
-+<i>indicator</i> of an open stream, named by <var name>.\
-+\
-+The stream is either of type <code>FILE</code>, in which case it is a simple\
-+file in the file system, of type <code>TCP</code>,\
-+in which case it is an open network connection, or of type <code>PROG</code>,\
-+in which case it is an open connection to a running process.\
-+\
-+When <var type> is <code>TCP</code>, <var name> specifies the host and\
-+port to connect to, in the form <code>Hostname:Port-Number</code>.\
-+<var port-number> can either be a symbolic name which is widely\
-+recognized (e.g., <code>SMTP</code>), or the digits which make up the\
-+port number, (e.g., <code>25</code>). Finally, the keyword argument\
-+<var notimeout=true> may be given, which indicates that the amount of\
-+time that <Meta-HTML> should wait during IO operations on this stream\
-+is infinite -- all processing will block until the stream is\
-+successfully read from or written to.  The default timeout is\
-+dependent on which specific operation is being performed, and the\
-+amount of data which is being read or written, but is generally\
-+suitable for writing data at about 14.4kbps.\
-+\
-+The possible values for <var mode> are:\
-+\
-+<ul>\
-+  <li> <code>READ</code>:<br>\
-+  The stream is opened for reading only.  The underlying object must\
-+already exist.\
-+\
-+  <li> <code>WRITE</code>:<br>\
-+  The stream is opened for writing only.  The underlying object must\
-+already exist.\
-+\
-+  <li> <code>READ-WRITE</code>:<br>\
-+  The stream is opened for both reading and writing.  The underlying\
-+object must already exist.\
-+\
-+  <li> <code>APPEND</code>:<br>\
-+  The stream is opened for writing only.  If the underlying object did\
-+not already exist, it is created.  Information written to this stream\
-+appears after any information that was already present in the\
-+underlying object.\
-+\
-+  <li> <code>WRITE-CREATE</code>:<br>\
-+  The stream is opened for writing only.  The underlying object is\
-+created fresh, even if it had already existed.\
-+</ul>\
-+\
-+When one is opening, reading to, or writing from a network stream, the \
-+amount of time it can take to finish the operation is indeterminate.  So,\
-+the keyword argument <var timeout=value> can be used to specify the maximum\
-+amount of time (in seconds) that these operations may take.  If the value\
-+is specified as \"never\", then these operations can take \"forever\".\
-+If the value isn't specified, then the operations calculate the maximum\
-+wait time dynamically, based upon the amount of information to be read\
-+or written.  Any other value specifies an absolute maximum number of\
- seconds.")
- {
-   char *varname = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -1027,10 +1027,10 @@
- }
- 
- DEFUN (pf_stream_put_contents, stream var,
--"Writes the contents of the variable <var var> to the open <var
--stream>.  This is the only way to get the contents of a binary variable
--written to a stream.  Binary variables are generally created with <funref
--stream-operators stream-get-contents>, or when uploading a file from
-+"Writes the contents of the variable <var var> to the open <var\
-+stream>.  This is the only way to get the contents of a binary variable\
-+written to a stream.  Binary variables are generally created with <funref\
-+stream-operators stream-get-contents>, or when uploading a file from\
- a Web browser.")
- {
-   Stream *stream = mhtml_get_stream_reference (vars);
-@@ -1076,17 +1076,17 @@
- }
- 
- DEFUN (pf_stream_get, stream &key stop-at=character,
--"Reads a chunk of data from <var stream> and returns it. <var stream>
--is read until the character value specified by <var character>
--(defaulting to a newline) is reached, and that data upto and including
--the final <var character> is returned. One way to read all of the
--available data is to supply the empty string as the value of <var stop-at>: 
--
--<example>
--<with-open-stream stream www.ua.com:80 type=tcp mode=read-write>
--  <stream-put stream \"GET /welcome.mhtml HTTP/1.0\\n\\n\">
--  <set-var the-page = <stream-get stream stop-at=\"\">>
--</with-open-stream>
-+"Reads a chunk of data from <var stream> and returns it. <var stream>\
-+is read until the character value specified by <var character>\
-+(defaulting to a newline) is reached, and that data upto and including\
-+the final <var character> is returned. One way to read all of the\
-+available data is to supply the empty string as the value of <var stop-at>: \
-+\
-+<example>\
-+<with-open-stream stream www.ua.com:80 type=tcp mode=read-write>\
-+  <stream-put stream \"GET /welcome.mhtml HTTP/1.0\\n\\n\">\
-+  <set-var the-page = <stream-get stream stop-at=\"\">>\
-+</with-open-stream>\
- </example>")
- {
-   Stream *stream = mhtml_get_stream_reference (vars);
-@@ -1114,33 +1114,33 @@
- 
- DEFUN (pf_stream_get_contents,
-        stream var &key chunk-size=size stop-at=character,
--"Reads the contents of the stream <var stream> into the binary
--variable <var var>.  You can easily use this in conjunction with
--<funref stream-operators stream-put-contents> and <funref variables
--coerce-var>.
--
--If <var stop-at> is supplied, it is a character at which the function
--should stop reading data from the stream.  Unlike
--<code>stream-get</code>, <var stop-at> defaults to the empty
--character, thus causing the entire stream to be read.
--
--If <var chunk-size> is supplied, it is the amount to read at one
--time.  This is useful for when you have an unbounded amount of data to
--read, and you would like to process it in manageable chunks.
--
--For example, the following code copies data from an open network
--stream to a file on the local disk, without using more than 32k of
--memory:
--
--<example>
--<with-open-stream src data-server.ua.com:2345 type=tcp mode=read>
--  <with-open-stream dst /tmp/datafile type=file mode=write-create>
--    <while <stream-readable s>>
--      <stream-get-contents src chunk chunk-size=32768>
--      <stream-put-contents dst chunk>
--    </while>
--  </with-open-stream>
--</with-open-stream>
-+"Reads the contents of the stream <var stream> into the binary\
-+variable <var var>.  You can easily use this in conjunction with\
-+<funref stream-operators stream-put-contents> and <funref variables\
-+coerce-var>.\
-+\
-+If <var stop-at> is supplied, it is a character at which the function\
-+should stop reading data from the stream.  Unlike\
-+<code>stream-get</code>, <var stop-at> defaults to the empty\
-+character, thus causing the entire stream to be read.\
-+\
-+If <var chunk-size> is supplied, it is the amount to read at one\
-+time.  This is useful for when you have an unbounded amount of data to\
-+read, and you would like to process it in manageable chunks.\
-+\
-+For example, the following code copies data from an open network\
-+stream to a file on the local disk, without using more than 32k of\
-+memory:\
-+\
-+<example>\
-+<with-open-stream src data-server.ua.com:2345 type=tcp mode=read>\
-+  <with-open-stream dst /tmp/datafile type=file mode=write-create>\
-+    <while <stream-readable s>>\
-+      <stream-get-contents src chunk chunk-size=32768>\
-+      <stream-put-contents dst chunk>\
-+    </while>\
-+  </with-open-stream>\
-+</with-open-stream>\
- </example>")
- {
-   Stream *stream = mhtml_get_stream_reference (vars);
-@@ -1197,12 +1197,12 @@
- }
- 
- DEFUN (pf_stream_readable, stream &key delay=seconds,
--"Returns \"true\" if <var stream> is an open stream which was opened
--with a mode of read, or read-write, and which still has data pending.
--
--The optional keyword <var delay> is used to specify the amount of time
--in seconds that <code>stream-readable</code> should wait for the
--stream to become ready for reading.  The default value is zero seconds;
-+"Returns \"true\" if <var stream> is an open stream which was opened\
-+with a mode of read, or read-write, and which still has data pending.\
-+\
-+The optional keyword <var delay> is used to specify the amount of time\
-+in seconds that <code>stream-readable</code> should wait for the\
-+stream to become ready for reading.  The default value is zero seconds;\
- no waiting period is used.")
- {
-   Stream *stream = mhtml_get_stream_reference (vars);
-@@ -1251,13 +1251,13 @@
- 
- 
- DEFUN (pf_stream_writable, stream &key delay=seconds,
--"Returns \"true\" if <var stream> is an open stream which was opened
--with a mode of write, append, read-write, or write-create, and which
--is available to have data written to it.
--
--The optional keyword <var delay> is used to specify the amount of time
--in seconds that <code>stream-writable</code> should wait for the
--stream to become ready for writing.  The default value is zero seconds;
-+"Returns \"true\" if <var stream> is an open stream which was opened\
-+with a mode of write, append, read-write, or write-create, and which\
-+is available to have data written to it.\
-+\
-+The optional keyword <var delay> is used to specify the amount of time\
-+in seconds that <code>stream-writable</code> should wait for the\
-+stream to become ready for writing.  The default value is zero seconds;\
- no waiting period is used.")
- {
-   Stream *stream = mhtml_get_stream_reference (vars);
-@@ -1301,14 +1301,14 @@
- }
- 
- DEFUN (pf_stream_shutdown, stream,
--"Only for use with network streams, this tells the underlying
--operating system (and the other end of the network connection) that no
--additional input or output will be done using this object. In effect,
--it immediately closes the stream.
--
--When used in conjunction with a network stream opened on
--<code>*standard-output*</code>, this can be used to close the
--<code>HTTP</code> connection to the client, and yet continue
-+"Only for use with network streams, this tells the underlying\
-+operating system (and the other end of the network connection) that no\
-+additional input or output will be done using this object. In effect,\
-+it immediately closes the stream.\
-+\
-+When used in conjunction with a network stream opened on\
-+<code>*standard-output*</code>, this can be used to close the\
-+<code>HTTP</code> connection to the client, and yet continue\
- processing data.")
- {
-   Stream *stream = mhtml_get_stream_reference (vars);
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/stringfuncs.c 
work/metahtml-5.091/libmhtml/stringfuncs.c
---- work/metahtml-5.091/libmhtml/stringfuncs.c 1999-01-22 03:59:36.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/stringfuncs.c 2013-04-02 22:34:53.457180599 
+0200
-@@ -96,18 +96,18 @@
- 
- PACKAGE_INITIALIZER (initialize_string_functions)
- DEFINE_SECTION (STRING-OPERATORS, strings; characters; changing case,
--"There is a single function in <meta-html> which performs pattern
--matching, substring extraction, and substring deletion.  For
--convenience, a blind substring extraction function is supplied as
--well.  Three functions perform the three most common case changes.
--Finally, the <funref \"string operators\" pad> function allows
-+"There is a single function in <meta-html> which performs pattern\
-+matching, substring extraction, and substring deletion.  For\
-+convenience, a blind substring extraction function is supplied as\
-+well.  Three functions perform the three most common case changes.\
-+Finally, the <funref \"string operators\" pad> function allows\
- alignment of fixed-width text.  ", "")
- 
- DEFUN (pf_string_length, string,
--"Returns the number of characters present in <var string>.
--
--<complete-example>
--<string-length \"This is an interesting string\">
-+"Returns the number of characters present in <var string>.\
-+\
-+<complete-example>\
-+<string-length \"This is an interesting string\">\
- </complete-example>")
- {
-   char *string = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -124,49 +124,49 @@
- #define MAX_SUBEXPS 10
- DEFUN (pf_match, string regex
-        &key action=[delete|extract|report|startpos|endpos|length],
--"Matches <var regexp> against <var string>, and then performs the
--indicated <var action>.  The default for <var action> is \"report\".
--
--When action is \"report\" (the default), returns \"true\" if <var
--regex> matched.<br>
--When action is \"extract\", returns the substring of <var string>
--matching <var regex>.<br>
--When action is \"delete\", returns <var string> with the matched
--substring removed.<br>
--When action is \"startpos\", returns the numeric offset of the start of
--the matched substring.<br>
--When action is \"endpos\", returns the numeric offset of the end of the
--matched substring.
--
--<var regexp> is an extended Unix regular expression, the complete syntax of
--which is beyond the scope of this document.  However, the essential
--basics are:
--<ul>
--<li> A period (<code>.</code>) matches any one character.
--<li> An asterisk (<code>*</code>) matches any number of occurrences of
--the preceding expression, including none.
--<li> A plus-sign matches one or more occurrences of the preceding expression.
--<li> Square brackets are used to enclose lists of characters which may
--match.  For example, \"[a-zA-Z]+\" matches one or more occurrences of
--alphabetic characters.
--<li> The vertical bar is used to separate alternate expressions to
--match against.  For example, \"foo|bar\" says to match either \"foo\"
--<i>or</i> \"bar\".
--<li> A dollar-sign (<code>$</code>) matches the end of <var STRING>.
--<li> Parenthesis are used to group subexpressions.
--</ul>
--
--Here are a few examples:
--
--<example>
--  <match \"foobar\" \".*\">                 --> \"true\"
--  <match \"foobar\" \"foo\">                --> \"true\"
--  <match \"foobar\" \"foo\" action=extract> --> \"foo\"
--  <match \"foobar\" \"oob\" action=delete>  --> \"far\"
--  <match \"foobar\" \"oob\" action=startpos>--> \"1\"
--  <match \"foobar\" \"oob\" action=endpos>  --> \"4\"
--  <match \"foobar\" \"oob\" action=length>  --> \"3\"
--  <match \"foobar\" \"[0-9]+\">             --> \"\"
-+"Matches <var regexp> against <var string>, and then performs the\
-+indicated <var action>.  The default for <var action> is \"report\".\
-+\
-+When action is \"report\" (the default), returns \"true\" if <var\
-+regex> matched.<br>\
-+When action is \"extract\", returns the substring of <var string>\
-+matching <var regex>.<br>\
-+When action is \"delete\", returns <var string> with the matched\
-+substring removed.<br>\
-+When action is \"startpos\", returns the numeric offset of the start of\
-+the matched substring.<br>\
-+When action is \"endpos\", returns the numeric offset of the end of the\
-+matched substring.\
-+\
-+<var regexp> is an extended Unix regular expression, the complete syntax of\
-+which is beyond the scope of this document.  However, the essential\
-+basics are:\
-+<ul>\
-+<li> A period (<code>.</code>) matches any one character.\
-+<li> An asterisk (<code>*</code>) matches any number of occurrences of\
-+the preceding expression, including none.\
-+<li> A plus-sign matches one or more occurrences of the preceding expression.\
-+<li> Square brackets are used to enclose lists of characters which may\
-+match.  For example, \"[a-zA-Z]+\" matches one or more occurrences of\
-+alphabetic characters.\
-+<li> The vertical bar is used to separate alternate expressions to\
-+match against.  For example, \"foo|bar\" says to match either \"foo\"\
-+<i>or</i> \"bar\".\
-+<li> A dollar-sign (<code>$</code>) matches the end of <var STRING>.\
-+<li> Parenthesis are used to group subexpressions.\
-+</ul>\
-+\
-+Here are a few examples:\
-+\
-+<example>\
-+  <match \"foobar\" \".*\">                 --> \"true\"\
-+  <match \"foobar\" \"foo\">                --> \"true\"\
-+  <match \"foobar\" \"foo\" action=extract> --> \"foo\"\
-+  <match \"foobar\" \"oob\" action=delete>  --> \"far\"\
-+  <match \"foobar\" \"oob\" action=startpos>--> \"1\"\
-+  <match \"foobar\" \"oob\" action=endpos>  --> \"4\"\
-+  <match \"foobar\" \"oob\" action=length>  --> \"3\"\
-+  <match \"foobar\" \"[0-9]+\">             --> \"\"\
- </example>")
- {
-   char *_string = get_positional_arg (vars, 0);
-@@ -308,26 +308,26 @@
- }
- 
- DEFUN (pf_substring, string &key start end,
--"Extracts the substring of <var string> whose first character starts
--at offset <var start>, and whose last character ends at offset
--<var end>. The indexing is zero-based, so that:
--
--<example>
--  <substring \"Hello\" 1 2> --> \"e\"
--</example>
--
--This function is useful when you know in advance which part of the
--string you would like to extract, and do not need the pattern matching
--facilities of <funref string-operators match>.
--
--If you wish to index through each character of a string, the most direct
--way is to convert it to an array first using
--<funref string-operators string-to-array>, and then use the
--<funref array-operators foreach> function to iterate over the members.
--<complete-example>
--<set-var s=\"This is a string.\">
--<string-to-array <get-var-once s> chars>
--<foreach character chars><get-var character>-</foreach>
-+"Extracts the substring of <var string> whose first character starts\
-+at offset <var start>, and whose last character ends at offset\
-+<var end>. The indexing is zero-based, so that:\
-+\
-+<example>\
-+  <substring \"Hello\" 1 2> --> \"e\"\
-+</example>\
-+\
-+This function is useful when you know in advance which part of the\
-+string you would like to extract, and do not need the pattern matching\
-+facilities of <funref string-operators match>.\
-+\
-+If you wish to index through each character of a string, the most direct\
-+way is to convert it to an array first using\
-+<funref string-operators string-to-array>, and then use the\
-+<funref array-operators foreach> function to iterate over the members.\
-+<complete-example>\
-+<set-var s=\"This is a string.\">\
-+<string-to-array <get-var-once s> chars>\
-+<foreach character chars><get-var character>-</foreach>\
- </complete-example>")
- {
-   char *str_arg = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -450,11 +450,11 @@
- }
- 
- DEFUN (pf_subst_in_var, varname &optional this-string with-that,
--"Replaces all occurrences of <var this-string> with <var with-that> in the
--contents of the variable named <var varname>.  Both <var this-string> and
--<var with-that> are evaluated before the replacement is done. <var
--this-string> can be any regular expression allowed by the POSIX extended
--regular expression matching.  This command can be useful when parsing
-+"Replaces all occurrences of <var this-string> with <var with-that> in the\
-+contents of the variable named <var varname>.  Both <var this-string> and\
-+<var with-that> are evaluated before the replacement is done. <var\
-+this-string> can be any regular expression allowed by the POSIX extended\
-+regular expression matching.  This command can be useful when parsing\
- the output of <funref osfuncs cgi-exec>.")
- {
-   char *varname = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -476,22 +476,22 @@
- }
- 
- DEFUN (pf_subst_in_string, string &rest regexp replacement,
--"Replaces all occurrences of <var regexp> with <var replacement> in
--<var string>.
--
--<var regexp> can be any regular expression allowed by POSIX extended
--regular expression matching.
--
--In the replacement string, a backslash followed by a number <var n> is
--replaced with the contents of the <var n>th subexpression from <var
--regexp>.
--
--<example>
--<set-var foo=\"This is a list\">
--<subst-in-string <get-var foo> \"is\" \"HELLO\">
--     --> \"ThHELLO HELLO a lHELLOt\"
--.blank
--<subst-in-string \"abc\" \"([a-z])\" \"\\\\1 \"> --> \"a b c \"
-+"Replaces all occurrences of <var regexp> with <var replacement> in\
-+<var string>.\
-+\
-+<var regexp> can be any regular expression allowed by POSIX extended\
-+regular expression matching.\
-+\
-+In the replacement string, a backslash followed by a number <var n> is\
-+replaced with the contents of the <var n>th subexpression from <var\
-+regexp>.\
-+\
-+<example>\
-+<set-var foo=\"This is a list\">\
-+<subst-in-string <get-var foo> \"is\" \"HELLO\">\
-+     --> \"ThHELLO HELLO a lHELLOt\"\
-+.blank\
-+<subst-in-string \"abc\" \"([a-z])\" \"\\\\1 \"> --> \"a b c \"\
- </example>")
- {
-   char *contents = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -512,11 +512,11 @@
- }
- 
- DEFUN (pf_downcase, string,
--"Converts all of the uppercase characters in <var string> to
--lowercase.
--
--<complete-example>
--<downcase \"This is Written in Meta-HTML\">
-+"Converts all of the uppercase characters in <var string> to\
-+lowercase.\
-+\
-+<complete-example>\
-+<downcase \"This is Written in Meta-HTML\">\
- </complete-example>")
- {
-   unsigned char *value = (unsigned char *)
-@@ -537,11 +537,11 @@
- }
- 
- DEFUN (pf_upcase, string,
--"Converts all of the lowercase characters in <var string> to
--uppercase.
--
--<complete-example>
--<upcase \"This is Written in Meta-HTML\">
-+"Converts all of the lowercase characters in <var string> to\
-+uppercase.\
-+\
-+<complete-example>\
-+<upcase \"This is Written in Meta-HTML\">\
- </complete-example>")
- {
-   unsigned char *value = (unsigned char *)
-@@ -562,14 +562,14 @@
- }
- 
- DEFUN (pf_capitalize, string,
--"Changes the case of each character in <var string> to uppercase or
--lowercase depending on the surrounding characters.
--
--<complete-example>
--<capitalize \"This is a list\">
--</complete-example>
--
--Also see <funref string-operators downcase>, and
-+"Changes the case of each character in <var string> to uppercase or\
-+lowercase depending on the surrounding characters.\
-+\
-+<complete-example>\
-+<capitalize \"This is a list\">\
-+</complete-example>\
-+\
-+Also see <funref string-operators downcase>, and\
- <funref string-operators upcase>.")
- {
-   unsigned char *value = (unsigned char *)
-@@ -611,28 +611,28 @@
- }
- 
- DEFUN (pf_string_compare, string1 string2 &key caseless,
--"Compare the two strings <var string1> and <var string2>, and return
--a string which specifies the relationship between them.  The
--comparison is normall case-sensitive, unless the keyword argument <var
--caseless=true> is given.
--
--The possible return values are:
--<ol>
--<li> equal<br>
--The two strings are exactly alike.
--<li> greater<br>
--<var string1> is lexically greater than <var string2>.
--<li> less<br>
--<var string1> is lexically less than <var string2>.
--</ol>
--
--Examples:
--
--<example>
--<string-compare \"aaa\" \"aab\">               --> less
--<string-compare \"zzz\" \"aab\">               --> greater
--<string-compare \"zzz\" \"ZZZ\">               --> greater
--<string-compare \"zzz\" \"ZZZ\" caseless=true> --> equal
-+"Compare the two strings <var string1> and <var string2>, and return\
-+a string which specifies the relationship between them.  The\
-+comparison is normall case-sensitive, unless the keyword argument <var\
-+caseless=true> is given.\
-+\
-+The possible return values are:\
-+<ol>\
-+<li> equal<br>\
-+The two strings are exactly alike.\
-+<li> greater<br>\
-+<var string1> is lexically greater than <var string2>.\
-+<li> less<br>\
-+<var string1> is lexically less than <var string2>.\
-+</ol>\
-+\
-+Examples:\
-+\
-+<example>\
-+<string-compare \"aaa\" \"aab\">               --> less\
-+<string-compare \"zzz\" \"aab\">               --> greater\
-+<string-compare \"zzz\" \"ZZZ\">               --> greater\
-+<string-compare \"zzz\" \"ZZZ\" caseless=true> --> equal\
- </example>")
- {
-   char *string_1 = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -676,27 +676,27 @@
- 
- DEFUN (pf_word_wrap,
-        string &key width=charwidth indent=indentation skip-first=true,
--"Produce paragraphs of text from the string <var string> with the text
--filled to a width of <var charwidth>.
--
--This is provided for convenience only, and is of use when you need to
--present some free form text in pre-formatted fashion, such as when
--sending an E-mail message, or the like.
--
--If the keyword <var indent=indentation> is supplied, it says to indent
--each line in the output by <var indentation>, using space characters.
--
--If the keyword <var skip-first=true> is given, it says not to indent
--the first line of the output -- just each successive line.  For
--example:
--<complete-example>
--<set-var text =
--   <concat \"This is provided for convenience only, and is of use \"
--           \"when you need to present some free form text in \"
--           \"pre-formatted fashion, as in this example.\">>
--<pre>
--Title Topic: <word-wrap <get-var text> 40 indent=13 skip-first=true>
--</pre>
-+"Produce paragraphs of text from the string <var string> with the text\
-+filled to a width of <var charwidth>.\
-+\
-+This is provided for convenience only, and is of use when you need to\
-+present some free form text in pre-formatted fashion, such as when\
-+sending an E-mail message, or the like.\
-+\
-+If the keyword <var indent=indentation> is supplied, it says to indent\
-+each line in the output by <var indentation>, using space characters.\
-+\
-+If the keyword <var skip-first=true> is given, it says not to indent\
-+the first line of the output -- just each successive line.  For\
-+example:\
-+<complete-example>\
-+<set-var text =\
-+   <concat \"This is provided for convenience only, and is of use \"\
-+           \"when you need to present some free form text in \"\
-+           \"pre-formatted fashion, as in this example.\">>\
-+<pre>\
-+Title Topic: <word-wrap <get-var text> 40 indent=13 skip-first=true>\
-+</pre>\
- </complete-example>")
- {
-   char *width_spec = mhtml_evaluate_string (get_value (vars, "width"));
-@@ -771,28 +771,28 @@
- 
- DEFUN (pf_pad,
-        string width &key align=[left|right|middle] truncate=true pad-char=x,
--"Pads <var string> to a length of <var total-size>.  <var align> can
--be one of <code>LEFT</code>, <code>MIDDLE</code>, or
--<code>RIGHT</code> (the default).
--
--<code>PAD</code> inserts the correct number of <var pad-char>acters to
--make the input argument take the desired number of spaces (presumably
--for use in a <example code><pre> ... </pre></example> statement).  The
--default value for <var pad-char> is a space character.
--
--If keyword argument <var truncate=true> is given, it  says to force
--the string to be the specified length.
--
--Before any padding is done, leading and trailing whitespace is removed
--from <var string>.
--
--Examples:
--
--<example>
--  <pad \"Hello\" 10>              --> \"     Hello\"
--  <pad \"Hello\" 10 align=left>   --> \"Hello     \"
--  <pad \"Hello\" 10 align=middle> --> \"  Hello   \"
--  <pad \"  Heckle  \" 4 truncate> --> \"Heck\"
-+"Pads <var string> to a length of <var total-size>.  <var align> can\
-+be one of <code>LEFT</code>, <code>MIDDLE</code>, or\
-+<code>RIGHT</code> (the default).\
-+\
-+<code>PAD</code> inserts the correct number of <var pad-char>acters to\
-+make the input argument take the desired number of spaces (presumably\
-+for use in a <example code><pre> ... </pre></example> statement).  The\
-+default value for <var pad-char> is a space character.\
-+\
-+If keyword argument <var truncate=true> is given, it  says to force\
-+the string to be the specified length.\
-+\
-+Before any padding is done, leading and trailing whitespace is removed\
-+from <var string>.\
-+\
-+Examples:\
-+\
-+<example>\
-+  <pad \"Hello\" 10>              --> \"     Hello\"\
-+  <pad \"Hello\" 10 align=left>   --> \"Hello     \"\
-+  <pad \"Hello\" 10 align=middle> --> \"  Hello   \"\
-+  <pad \"  Heckle  \" 4 truncate> --> \"Heck\"\
- </example>")
- {
-   register int i;
-@@ -899,18 +899,18 @@
- }
- 
- DEFUN (pf_string_eq, string-1 string-2 &key caseless=true,
-- "Compare <var string1> to <var string2> and return the string
--<code>\"true\"</code> if they are character-wise identical.
--
--The optional keyword argument <var caseless=true> indicates that no
--consideration should be given to the case of the characters during
--comparison.
--
--<example>
--<string-eq \"foo\" \"FOO\">               -->
--<string-eq \"foo\" \"foo\">               -->true
--<string-eq <upcase \"foo\"> \"FOO\">      -->true
--<string-eq \"foo\" \"FOO\" caseless=true> -->true
-+ "Compare <var string1> to <var string2> and return the string\
-+<code>\"true\"</code> if they are character-wise identical.\
-+\
-+The optional keyword argument <var caseless=true> indicates that no\
-+consideration should be given to the case of the characters during\
-+comparison.\
-+\
-+<example>\
-+<string-eq \"foo\" \"FOO\">               -->\
-+<string-eq \"foo\" \"foo\">               -->true\
-+<string-eq <upcase \"foo\"> \"FOO\">      -->true\
-+<string-eq \"foo\" \"FOO\" caseless=true> -->true\
- </example>")
- {
-   char *arg1 = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -944,18 +944,18 @@
- }
- 
- DEFUN (pf_string_neq, string-1 string-2 &key caseless=true,
-- "Compare <var string1> to <var string2> and return the string
--<code>\"true\"</code> if they are NOT character-wise identical.
--
--The optional keyword argument <var caseless=true> indicates that no
--consideration should be given to the case of the characters during
--comparison.
--
--<example>
--<string-neq \"foo\" \"FOO\">               -->true
--<string-neq \"foo\" \"foo\">               -->
--<string-neq <upcase \"foo\"> \"FOO\">      -->
--<string-neq \"foo\" \"FOO\" caseless=true> -->
-+ "Compare <var string1> to <var string2> and return the string\
-+<code>\"true\"</code> if they are NOT character-wise identical.\
-+\
-+The optional keyword argument <var caseless=true> indicates that no\
-+consideration should be given to the case of the characters during\
-+comparison.\
-+\
-+<example>\
-+<string-neq \"foo\" \"FOO\">               -->true\
-+<string-neq \"foo\" \"foo\">               -->\
-+<string-neq <upcase \"foo\"> \"FOO\">      -->\
-+<string-neq \"foo\" \"FOO\" caseless=true> -->\
- </example>")
- {
-   char *arg1 = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -987,25 +987,25 @@
-    on the first character of paragraphs.  The text starts with a <P>,
-    unless the variable NOBR is set.*/
- DEFMACRO (pf_plain_text, &key first-char=expr nobr=true,
--"Performs the following steps:
--
--<ol>
--  <li> Replace occurrences of pairs of newline characters with a
--  single <example code><P></example> tag.
--
--  <li> Applies the function <var expr> to the first character of every
--  paragraph, and inserts the closing tag after that character.
--</ol>
--
--The output will start with a <example code><P></example> tag, unless the
--optional argument <var nobr=true> is given.
--
--<complete-example>
--<plain-text first-char=<font size=\"+1\"> nobr=true>
--This is line 1.
--.blank
--This is line 2.
--</plain-text>
-+"Performs the following steps:\
-+\
-+<ol>\
-+  <li> Replace occurrences of pairs of newline characters with a\
-+  single <example code><P></example> tag.\
-+\
-+  <li> Applies the function <var expr> to the first character of every\
-+  paragraph, and inserts the closing tag after that character.\
-+</ol>\
-+\
-+The output will start with a <example code><P></example> tag, unless the\
-+optional argument <var nobr=true> is given.\
-+\
-+<complete-example>\
-+<plain-text first-char=<font size=\"+1\"> nobr=true>\
-+This is line 1.\
-+.blank\
-+This is line 2.\
-+</plain-text>\
- </complete-example>")
- {
-   register int i;
-@@ -1118,28 +1118,28 @@
- }
- 
- DEFUN (pf_base64encode, varname &key shortlines=[true|value],
--"Performs the translation operation commonly known as <i>Base64
--Encoding</i> on the contents of the binary variable referenced by <var
--varname>, and returns the results of that encoding.
--
--Base64 encoding is a common transfer encoding for binary data and for
--Basic Authorization values -- this function can be used to turn data
--from its original pre-encoded state to an encoded one.
--
--If the keyword argument <var shortlines=value> is supplied, then the result
--of encoding is broken up into lines containing <var value> characters
--each, rounded up to the nearest multiple of 4.  This format is
--commonly implemented by many base 64 encoding programs.  A value of
--<code>true</code> uses the Meta-HTML default value of 64.  If the
--argument is not supplied, the data is returned in a single line of data.
--
--The following code reads a GIF image into a binary variable, and then
--displays the base64 encoded version:
--<example>
--<with-open-stream s /tmp/image.gif mode=read>
--  <stream-get-contents s gif>
--</with-open-stream>
--<base64encode gif>
-+"Performs the translation operation commonly known as <i>Base64\
-+Encoding</i> on the contents of the binary variable referenced by <var\
-+varname>, and returns the results of that encoding.\
-+\
-+Base64 encoding is a common transfer encoding for binary data and for\
-+Basic Authorization values -- this function can be used to turn data\
-+from its original pre-encoded state to an encoded one.\
-+\
-+If the keyword argument <var shortlines=value> is supplied, then the result\
-+of encoding is broken up into lines containing <var value> characters\
-+each, rounded up to the nearest multiple of 4.  This format is\
-+commonly implemented by many base 64 encoding programs.  A value of\
-+<code>true</code> uses the Meta-HTML default value of 64.  If the\
-+argument is not supplied, the data is returned in a single line of data.\
-+\
-+The following code reads a GIF image into a binary variable, and then\
-+displays the base64 encoded version:\
-+<example>\
-+<with-open-stream s /tmp/image.gif mode=read>\
-+  <stream-get-contents s gif>\
-+</with-open-stream>\
-+<base64encode gif>\
- </example>")
- {
-   char *varname = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -1200,23 +1200,23 @@
- }
- 
- DEFUN (pf_base64decode, string &optional varname,
--"Performs the translation operation commonly known as <i>Base64
--Decoding</i> on <var STRING>, and returns the results of that
--decoding.
--
--If the optional <var varname> is supplied, the results of decoding are
--placed into the binary variable named <var varname> instead of being
--returned in the page.  This allows random binary data to be decoded,
--and perhaps written to the output stream using <funref
--stream-operators stream-put-contents>.
--
--Base64 encoding is a common transfer encoding for binary data and for
--Basic Authorization values -- this function can be used to turn such
--strings into their original, pre-encoded state.
--
--<complete-example>
--<set-var the-data = \"YmZveDpmcm9ibml0eg==\">
--<base64decode <get-var the-data>>
-+"Performs the translation operation commonly known as <i>Base64\
-+Decoding</i> on <var STRING>, and returns the results of that\
-+decoding.\
-+\
-+If the optional <var varname> is supplied, the results of decoding are\
-+placed into the binary variable named <var varname> instead of being\
-+returned in the page.  This allows random binary data to be decoded,\
-+and perhaps written to the output stream using <funref\
-+stream-operators stream-put-contents>.\
-+\
-+Base64 encoding is a common transfer encoding for binary data and for\
-+Basic Authorization values -- this function can be used to turn such\
-+strings into their original, pre-encoded state.\
-+\
-+<complete-example>\
-+<set-var the-data = \"YmZveDpmcm9ibml0eg==\">\
-+<base64decode <get-var the-data>>\
- </complete-example>")
- {
-   char *string = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -1265,12 +1265,12 @@
- }
- 
- DEFUN (pf_char_offsets, string ch &key caseless,
--"Return an array of numbers,  each one representing the offset from the
--start of <var string> of <var ch>.  This function is useful for finding
--candidate locations for word-wrapping, for example.
--Here is a complete example:
--<complete-example>
--<char-offsets \"This is a list\" \" \">
-+"Return an array of numbers,  each one representing the offset from the\
-+start of <var string> of <var ch>.  This function is useful for finding\
-+candidate locations for word-wrapping, for example.\
-+Here is a complete example:\
-+<complete-example>\
-+<char-offsets \"This is a list\" \" \">\
- </complete-example>")
- {
-   char *string = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -1331,33 +1331,33 @@
- }
- 
- DEFUNX (pf_unix::crypt, string &optional salt,
--"Return <var string> encrypted using the local system's <code>crypt()</code>
--function with the salt <var salt>.
--
--<var salt> is a two character string -- if you wish to compare the
--cleartext value that a user has entered against a Unix-style encrypted
--password, such as one from <code>/etc/passwd</code>, or from a
--<code>.htaccess</code> file, use the first two characters of the
--existing encrypted password as the salt, and then compare the
--resulting strings.
--
--For example, if the variable <var existing-pass> contains a previously
--encypted password, and the variable <var entered-pass> contains the
--cleartext that the user has just entered, you may encrypt the user's
--password and compare it with the existing one with the following code:
--
--<example>
--<set-var encrypted-pass =
--   <unix::crypt <get-var entered-pass>
--                <substring <get-var existing-pass> 0 2>>>
--.blank
--<when <string-eq <get-var encrypted-pass>
--                 <get-var existing-pass>>>
--   <set-session-var logged-in=true>
--   <redirect members-only.mhtml>
--</when>
--.blank
--<h3>Please enter your password again.  It didn't match.</h3>
-+"Return <var string> encrypted using the local system's <code>crypt()</code>\
-+function with the salt <var salt>.\
-+\
-+<var salt> is a two character string -- if you wish to compare the\
-+cleartext value that a user has entered against a Unix-style encrypted\
-+password, such as one from <code>/etc/passwd</code>, or from a\
-+<code>.htaccess</code> file, use the first two characters of the\
-+existing encrypted password as the salt, and then compare the\
-+resulting strings.\
-+\
-+For example, if the variable <var existing-pass> contains a previously\
-+encypted password, and the variable <var entered-pass> contains the\
-+cleartext that the user has just entered, you may encrypt the user's\
-+password and compare it with the existing one with the following code:\
-+\
-+<example>\
-+<set-var encrypted-pass =\
-+   <unix::crypt <get-var entered-pass>\
-+                <substring <get-var existing-pass> 0 2>>>\
-+.blank\
-+<when <string-eq <get-var encrypted-pass>\
-+                 <get-var existing-pass>>>\
-+   <set-session-var logged-in=true>\
-+   <redirect members-only.mhtml>\
-+</when>\
-+.blank\
-+<h3>Please enter your password again.  It didn't match.</h3>\
- </example>")
- 
- static void
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/varfuncs.c work/metahtml-5.091/libmhtml/varfuncs.c
---- work/metahtml-5.091/libmhtml/varfuncs.c    1999-04-29 02:37:22.000000000 
+0200
-+++ work/metahtml-5.091/libmhtml/varfuncs.c    2013-04-02 22:39:17.580528574 
+0200
-@@ -88,27 +88,27 @@
- 
- PACKAGE_INITIALIZER (initialize_variable_functions)
- DEFINE_SECTION (VARIABLES, variables; symbols; lookup,
--"<Meta-HTML> provides a simple mechanism for the storage and retrieval
--of variables during a single (possibly recursive) processing pass.  In
--addition to this, functions are provided which test the value of a
--variable, and conditionally execute other code based upon the result.
--
--There is also a mechanism to group a set of variables using <secref
-+"<Meta-HTML> provides a simple mechanism for the storage and retrieval\
-+of variables during a single (possibly recursive) processing pass.  In\
-+addition to this, functions are provided which test the value of a\
-+variable, and conditionally execute other code based upon the result.\
-+\
-+There is also a mechanism to group a set of variables using <secref\
- packages>.",
- 
--"<h3>Variable Types and Information</h3>
--
--There are internal functions in <meta-html> which create <i>binary</i>
--variables.  Such variables cannot be used in the ordinary way, since
--the data contained within them may not retain integrity once printed
--out and read back in.  You can check to see what the type of a
--particular variable is with the <funref variables symbol-info>
--function.
--
--Many variables are predefined by <Meta-HTML>, and made available to
--the page writer.  The <secref Page-Variables> section of this manual
--documents those variables fully, while the <secref server-variables>
--section contains more information on variables which control, or were
-+"<h3>Variable Types and Information</h3>\
-+\
-+There are internal functions in <meta-html> which create <i>binary</i>\
-+variables.  Such variables cannot be used in the ordinary way, since\
-+the data contained within them may not retain integrity once printed\
-+out and read back in.  You can check to see what the type of a\
-+particular variable is with the <funref variables symbol-info>\
-+function.\
-+\
-+Many variables are predefined by <Meta-HTML>, and made available to\
-+the page writer.  The <secref Page-Variables> section of this manual\
-+documents those variables fully, while the <secref server-variables>\
-+section contains more information on variables which control, or were\
- specifically created by, the web server.")
- 
- static void
-@@ -185,53 +185,53 @@
- 
- 
- DEFUN (pf_set_var, &optional name=value...,
--"Gives the variable <var name> the value of <var value> for the
--current processing run.  Any number of name/value pairs may be given,
--and whitespace is not significant.  Where <var =value> is omitted, the
--value is the empty string.
--
--<example>
--<set-var foo=bar bar=baz>
--<get-var foo>              --> bar
--<get-var bar>              --> baz
--<get-var <get-var foo>>    --> baz
-+"Gives the variable <var name> the value of <var value> for the\
-+current processing run.  Any number of name/value pairs may be given,\
-+and whitespace is not significant.  Where <var =value> is omitted, the\
-+value is the empty string.\
-+\
-+<example>\
-+<set-var foo=bar bar=baz>\
-+<get-var foo>              --> bar\
-+<get-var bar>              --> baz\
-+<get-var <get-var foo>>    --> baz\
- </example>")
- {
-   generic_set_variable (vars, debug_level, 1, 0);
- }
- 
- DEFUN (pf_set_var_verbatim, &optional name=value...,
--"Gives the variable <var name> the value of <var value> for the
--current processing run.  The difference between
--<code>set-var-verbatim</code> and <funref variables set-var> is that
--in <code>set-var-verbatim</code> the right-hand side of assignments
--are not evaluated.
--
--Example:
--<complete-example>
--<set-var-verbatim foo=<get-var bar>>
--<get-var-once foo>
-+"Gives the variable <var name> the value of <var value> for the\
-+current processing run.  The difference between\
-+<code>set-var-verbatim</code> and <funref variables set-var> is that\
-+in <code>set-var-verbatim</code> the right-hand side of assignments\
-+are not evaluated.\
-+\
-+Example:\
-+<complete-example>\
-+<set-var-verbatim foo=<get-var bar>>\
-+<get-var-once foo>\
- </complete-example>")
- {
-   generic_set_variable (vars, debug_level, 0, 0);
- }
- 
- DEFUN (pf_set_var_readonly, &optional name=value...,
--"For each <var name> specified, if that name is not already assigned a
--value with <code>set-var-readonly</code>, assigns the associated <var
--value> to it, exactly in the way that <funref variables set-var> would.
--
--Once <var name> has had a value assigned to it with
--<code>set-var-readonly</code>, then that variable is <i>immutable</i>,
--i.e., its value cannot be changed using any Meta-HTML commands.
--
--A useful construct for setting various site specific variables in your
--<code>engine.conf</code> or <code>mhttpd.conf</code> file, this allows
--one to create globally defined variables which cannot be changed by
--the execution of Meta-HTML statements in a page.
--
--Variables which can usefully benefit from this type of setting
--include <varref mhtml::include-prefix> and <varref
-+"For each <var name> specified, if that name is not already assigned a\
-+value with <code>set-var-readonly</code>, assigns the associated <var\
-+value> to it, exactly in the way that <funref variables set-var> would.\
-+\
-+Once <var name> has had a value assigned to it with\
-+<code>set-var-readonly</code>, then that variable is <i>immutable</i>,\
-+i.e., its value cannot be changed using any Meta-HTML commands.\
-+\
-+A useful construct for setting various site specific variables in your\
-+<code>engine.conf</code> or <code>mhttpd.conf</code> file, this allows\
-+one to create globally defined variables which cannot be changed by\
-+the execution of Meta-HTML statements in a page.\
-+\
-+Variables which can usefully benefit from this type of setting\
-+include <varref mhtml::include-prefix> and <varref\
- mhtml::relative-prefix> among others.")
- {
-   generic_set_variable (vars, debug_level, 1, 1);
-@@ -275,61 +275,61 @@
- }
- 
- DEFUN (pf_get_var, &optional name...,
--"Return the value of the <var name>s given.  Each <var name> is a
--variable name which has had a value assigned to it with <funref
--variables set-var>, <funref variables set-var-readonly>, or was
--created implicity via <funref packages alist-to-package> or <funref
--variables coerce-var>.
--
--The values are returned in the order in which the <var name>s appear.
--
--Examples:
--<complete-example>
--<set-var foo=Var-1 bar=Var-2>
--<get-var foo>, <get-var bar>
--</complete-example>
--
--When multiple <var name>s are given:
--<complete-example>
--<get-var foo bar foo>
-+"Return the value of the <var name>s given.  Each <var name> is a\
-+variable name which has had a value assigned to it with <funref\
-+variables set-var>, <funref variables set-var-readonly>, or was\
-+created implicity via <funref packages alist-to-package> or <funref\
-+variables coerce-var>.\
-+\
-+The values are returned in the order in which the <var name>s appear.\
-+\
-+Examples:\
-+<complete-example>\
-+<set-var foo=Var-1 bar=Var-2>\
-+<get-var foo>, <get-var bar>\
-+</complete-example>\
-+\
-+When multiple <var name>s are given:\
-+<complete-example>\
-+<get-var foo bar foo>\
- </complete-example>")
- {
-   get_var_internal (PassPFunArgs, 0);
- }
- 
- DEFUN (pf_get_var_once, &optional name...,
--"Returns the current value of the variables named by the <var name>s
--given.  The interpreter pointer is then moved to after the returned
--data, thus preventing further interpretation of the data.
--
--Example:
--<example>
--<set-var bar=HELLO>
--<set-var-verbatim foo=<get-var bar>>
--<get-var-once foo>   --> &lt;get-var bar&gt;
--</example>
--but...
--<example>
--<get-var foo>        --> HELLO
-+"Returns the current value of the variables named by the <var name>s\
-+given.  The interpreter pointer is then moved to after the returned\
-+data, thus preventing further interpretation of the data.\
-+\
-+Example:\
-+<example>\
-+<set-var bar=HELLO>\
-+<set-var-verbatim foo=<get-var bar>>\
-+<get-var-once foo>   --> &lt;get-var bar&gt;\
-+</example>\
-+but...\
-+<example>\
-+<get-var foo>        --> HELLO\
- </example>")
- {
-   get_var_internal (PassPFunArgs, 1);
- }
- 
- DEFUN (pf_unset_var, &optional name...,
--"Make <var name>s be non-existent in the page environment.
--
--This is different than <example code><set-var foo=\"\"></example>
--because the variable actually ceases to exist, rather than is given no
--value.
--
--Example:
--<example>
--<set-var foo=\"\">
--<var-exists foo>      --> true
--<get-var foo>         -->
--<unset-var foo>
--<var-exists foo>      -->
-+"Make <var name>s be non-existent in the page environment.\
-+\
-+This is different than <example code><set-var foo=\"\"></example>\
-+because the variable actually ceases to exist, rather than is given no\
-+value.\
-+\
-+Example:\
-+<example>\
-+<set-var foo=\"\">\
-+<var-exists foo>      --> true\
-+<get-var foo>         -->\
-+<unset-var foo>\
-+<var-exists foo>      -->\
- </example>")
- {
-   register int i;
-@@ -370,21 +370,21 @@
- }
- 
- DEFUN (pf_var_exists, name,
--"<code>var-exists</code> checks for the <i>existence</i> of
--the variable named by <var varname>, and returns <code>true</code> if that
--variable exists.
--
--The existence of a variable has nothing to do with its value -- a variable
--exists if it has been created with <funref variables set-var>, and doesn't
--exist after it has been unset with <funref variables unset-var>.
--
--<example>
--  <set-var foo=1 bar>
--  <var-exists foo>       --> true
--  <var-exists bar>       --> true
--  <get-var bar>          -->
--  <unset-var foo>
--  <var-exists foo>       -->
-+"<code>var-exists</code> checks for the <i>existence</i> of\
-+the variable named by <var varname>, and returns <code>true</code> if that\
-+variable exists.\
-+\
-+The existence of a variable has nothing to do with its value -- a variable\
-+exists if it has been created with <funref variables set-var>, and doesn't\
-+exist after it has been unset with <funref variables unset-var>.\
-+\
-+<example>\
-+  <set-var foo=1 bar>\
-+  <var-exists foo>       --> true\
-+  <var-exists bar>       --> true\
-+  <get-var bar>          -->\
-+  <unset-var foo>\
-+  <var-exists foo>       -->\
- </example>")
- {
-   char *arg = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -403,7 +403,7 @@
- }
- 
- DEFUN (pf_binary_concat, collector &rest binary-vars,
--"Concatenate the contents of <var collector> and the supplied <var 
binary-var>s
-+"Concatenate the contents of <var collector> and the supplied <var 
binary-var>s\
- into a single binary variable, and store the results back in <var 
collector>.")
- {
-   register int i = 0;
-@@ -494,62 +494,62 @@
- }
- 
- DEFUN (pf_increment, name &key by=amount,
--"Add <var amount> (default 1) to the contents of the variable named by
--<var varname>.
--
--<example>
--<set-var foo=1>
--<get-var foo> --> 1
--<increment foo>
--<get-var foo> --> 2
--</example>
--
-+"Add <var amount> (default 1) to the contents of the variable named by\
-+<var varname>.\
-+\
-+<example>\
-+<set-var foo=1>\
-+<get-var foo> --> 1\
-+<increment foo>\
-+<get-var foo> --> 2\
-+</example>\
-+\
- Also see <funref variables decrement>.")
- {
-   change_increment (PassPFunArgs, 1);
- }
- 
- DEFUN (pf_decrement, name &key by=amount,
--"Subtract <var amount> (default 1) from the contents of the variable named
--by <var varname>.
--
--<example>
--   <set-var foo=1>
--   <get-var foo> --> 1
--   <decrement foo>
--   <get-var foo> --> 0
--</example>
--
-+"Subtract <var amount> (default 1) from the contents of the variable named\
-+by <var varname>.\
-+\
-+<example>\
-+   <set-var foo=1>\
-+   <get-var foo> --> 1\
-+   <decrement foo>\
-+   <get-var foo> --> 0\
-+</example>\
-+\
- Also see <funref variables increment>.")
- {
-   change_increment (PassPFunArgs, -1);
- }
- 
- DEFUN (pf_cgi_encode, &rest vars &key preserve-case=true strip=true,
--"A CGI readable string is created from the names of the <var var>s given,
--and the associated values of those variables.  For example, if the
--variable <code>FOO-VAR</code> has the value <code>\"Foo &
--Value\"</code>, then the invocation
--<set-var foo-var=\"Foo & Value\">
--<complete-example>
--<cgi-encode FOO-VAR>
--</complete-example>
--
--Given the optional keyword argument of <var preserve-case=true>,
--<code>cgi-encode</code> encodes the variables preserving the case of
--them as they were input.
--
--<complete-example>
--<cgi-encode Foo-Var preserve-case=true>
--</complete-example>
--
--Finally, the keyword flag <var strip=true>, when present, says to
--strip off the package name of each variable before placing it in an
--assignment statement (also see <funref packages package-vars>).
--
--<complete-example>
--<set-var FOO::BAR=value>
--<cgi-encode Foo::Bar preserve-case=true strip=true>
-+"A CGI readable string is created from the names of the <var var>s given,\
-+and the associated values of those variables.  For example, if the\
-+variable <code>FOO-VAR</code> has the value <code>\"Foo &\
-+Value\"</code>, then the invocation\
-+<set-var foo-var=\"Foo & Value\">\
-+<complete-example>\
-+<cgi-encode FOO-VAR>\
-+</complete-example>\
-+\
-+Given the optional keyword argument of <var preserve-case=true>,\
-+<code>cgi-encode</code> encodes the variables preserving the case of\
-+them as they were input.\
-+\
-+<complete-example>\
-+<cgi-encode Foo-Var preserve-case=true>\
-+</complete-example>\
-+\
-+Finally, the keyword flag <var strip=true>, when present, says to\
-+strip off the package name of each variable before placing it in an\
-+assignment statement (also see <funref packages package-vars>).\
-+\
-+<complete-example>\
-+<set-var FOO::BAR=value>\
-+<cgi-encode Foo::Bar preserve-case=true strip=true>\
- </complete-example>")
- {
-   char **names = get_vars_names (vars);
-@@ -623,28 +623,28 @@
- }
- 
- DEFUN (pf_cgi_decode, string &optional package,
--"Decode <var string> into <var package>.
--
--If <var package> is not specified the current package is used.
--
--<var string> is a string that might have appeared in
--<code>QUERY_STRING</code> or the contents of the data that was posted
--to a document, such that it consists of name value pairs:
--
--<example>
--FOO=bar&STRING=this+is+a+string%2C+other+chars
--</example>
--
--<var package> is the name of a package to bind the variables in.  So,
--given the above example as the text in a variable called <var string>,
--here is what you get:
--
--<complete-example>
--<set-var string=\"FOO=bar&STRING=a+string%2C+other+chars\">
--<cgi-decode <get-var string> mypack>
--<get-var mypack::string>
--</complete-example>
--
-+"Decode <var string> into <var package>.\
-+\
-+If <var package> is not specified the current package is used.\
-+\
-+<var string> is a string that might have appeared in\
-+<code>QUERY_STRING</code> or the contents of the data that was posted\
-+to a document, such that it consists of name value pairs:\
-+\
-+<example>\
-+FOO=bar&STRING=this+is+a+string%2C+other+chars\
-+</example>\
-+\
-+<var package> is the name of a package to bind the variables in.  So,\
-+given the above example as the text in a variable called <var string>,\
-+here is what you get:\
-+\
-+<complete-example>\
-+<set-var string=\"FOO=bar&STRING=a+string%2C+other+chars\">\
-+<cgi-decode <get-var string> mypack>\
-+<get-var mypack::string>\
-+</complete-example>\
-+\
- Also see <funref variables cgi-encode>.")
- {
-   char *string, *packname = (char *)NULL;
-@@ -685,29 +685,29 @@
- }
- 
- DEFUN (pf_symbol_info, symbol,
--"Returns information about the symbol <var symbol>.
--
--The information is two lines:
--
--<ul>
--<li> The type of the symbol, which is one of:
--<ol>
--<li><code>STRING</code>,
--<li><code>BINARY</code>,
--<li><code>USER DEFUN</code>,
--<li><code>USER SUBST</code>,
--<li><code>USER MACRO</code>,
--<li><code>PRIM DEFUN</code>, or
--<li><code>PRIM MACRO</code>.
--</ol>
--<li> The \"size\" of the symbol.
--</ul>
--
--For <code>STRING</code>. variables, the size value is the number of
--elements in the array.<br>
--For BINARY variables, the size value is the number of bytes of binary
--data stored within.
--
-+"Returns information about the symbol <var symbol>.\
-+\
-+The information is two lines:\
-+\
-+<ul>\
-+<li> The type of the symbol, which is one of:\
-+<ol>\
-+<li><code>STRING</code>,\
-+<li><code>BINARY</code>,\
-+<li><code>USER DEFUN</code>,\
-+<li><code>USER SUBST</code>,\
-+<li><code>USER MACRO</code>,\
-+<li><code>PRIM DEFUN</code>, or\
-+<li><code>PRIM MACRO</code>.\
-+</ol>\
-+<li> The \"size\" of the symbol.\
-+</ul>\
-+\
-+For <code>STRING</code>. variables, the size value is the number of\
-+elements in the array.<br>\
-+For BINARY variables, the size value is the number of bytes of binary\
-+data stored within.\
-+\
- The size value is zero for all other variable types.")
- {
-   char *name = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -762,21 +762,21 @@
- }
- 
- DEFUN (pf_copy_var, from-var &optional to-var...,
--"Copies the variable <var from-var> to each of the named <var to-var>s.
--
--Each <var to-var> becomes the repository of a copy of the information
--already stored under <var from-var>.  This is a <i>true</i> copy; not
--an alias to the original variable.
--
--<example>
--<set-var foo=bar>
--<get-var foo>      --> bar
--<get-var new>      --> 
--<copy-var foo new> -->
--<get-var new>      --> bar
--
--<copy-var *meta-html*::get-var *meta-html*::foo>
--<foo new>          --> bar
-+"Copies the variable <var from-var> to each of the named <var to-var>s.\
-+\
-+Each <var to-var> becomes the repository of a copy of the information\
-+already stored under <var from-var>.  This is a <i>true</i> copy; not\
-+an alias to the original variable.\
-+\
-+<example>\
-+<set-var foo=bar>\
-+<get-var foo>      --> bar\
-+<get-var new>      --> \
-+<copy-var foo new> -->\
-+<get-var new>      --> bar\
-+\
-+<copy-var *meta-html*::get-var *meta-html*::foo>\
-+<foo new>          --> bar\
- </example>")
- {
-   char *source_name = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -831,24 +831,24 @@
- #define symtype_ARRAY 78
- #endif
- DEFUN (pf_coerce_var, varname &key type=(STRING|BINARY|ARRAY),
--"Coerces <var varname>'s data to have the type specified by the
--argument to <var type>.  You can convert a binary object to a string
--object, and vice-versa.
--
--A binary variable might be created as the result of a call to <funref
--stream-commands stream-get-contents>, for example.  Once the data is
--read, you might wish to perform some substitutions on it, or otherwise
--get its value.  To do so, you call <code>coerce-var</code> on the
--value:
--
--<example>
--<with-open-stream s /tmp/file mode=read>
--  <stream-get-contents s foo>
--</with-open-stream>
--
--<coerce-var foo type=string>
--<subst-in-string <get-var foo> \"Hello\" \"Goodbye\">
--<get-var foo>
-+"Coerces <var varname>'s data to have the type specified by the\
-+argument to <var type>.  You can convert a binary object to a string\
-+object, and vice-versa.\
-+\
-+A binary variable might be created as the result of a call to <funref\
-+stream-commands stream-get-contents>, for example.  Once the data is\
-+read, you might wish to perform some substitutions on it, or otherwise\
-+get its value.  To do so, you call <code>coerce-var</code> on the\
-+value:\
-+\
-+<example>\
-+<with-open-stream s /tmp/file mode=read>\
-+  <stream-get-contents s foo>\
-+</with-open-stream>\
-+\
-+<coerce-var foo type=string>\
-+<subst-in-string <get-var foo> \"Hello\" \"Goodbye\">\
-+<get-var foo>\
- </example>")
- {
-   char *source_name = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -1018,19 +1018,19 @@
- }
- 
- DEFUN (pf_defvar, name value,
--"<b>DEF</b>ault the value of the <b>VAR</b>iable named by <var name>
--to <var value>.
--
--<code>defvar</code> assigns <var value> to <var name> if, and only if,
--<var name> has a non-empty value.
--
--<code>defvar</code> could have been defined in <Meta-HTML> using
--<funref macro-commands define-tag>:
--
--<example>
--<define-tag defvar var val>
--  <if <not <get-var var>> <set-var <get-var var>=<get-var val>>>
--</define-tag>
-+"<b>DEF</b>ault the value of the <b>VAR</b>iable named by <var name>\
-+to <var value>.\
-+\
-+<code>defvar</code> assigns <var value> to <var name> if, and only if,\
-+<var name> has a non-empty value.\
-+\
-+<code>defvar</code> could have been defined in <Meta-HTML> using\
-+<funref macro-commands define-tag>:\
-+\
-+<example>\
-+<define-tag defvar var val>\
-+  <if <not <get-var var>> <set-var <get-var var>=<get-var val>>>\
-+</define-tag>\
- </example>")
- {
-   char *name = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -1081,21 +1081,21 @@
- }
- 
- DEFUN (pf_alist_merge, &rest alist-vars &key strip append,
--"Merge the alists stored in the passed variable names into a single alist,
--and return that new alist.
--
--By default, each <var alist-var> encountered overrides values set in
--previous alists that were encountered -- the values do not \"pile up\" --
--they instead replace each other.
--
--Passing the keyword argument <var append=true> changes this behavior; in
--this case values seen in subsequent alists are appended to the values in
--previous alists, creating array variables in the output.
--<complete-example>
--<set-var a1=<make-alist foo=foo1 bar=bar1>
--         a2=<make-alist foo=foo2 newvar=newval>>
--<alist-merge a1 a2>
--<alist-merge a1 a2 append=true>
-+"Merge the alists stored in the passed variable names into a single alist,\
-+and return that new alist.\
-+\
-+By default, each <var alist-var> encountered overrides values set in\
-+previous alists that were encountered -- the values do not \"pile up\" --\
-+they instead replace each other.\
-+\
-+Passing the keyword argument <var append=true> changes this behavior; in\
-+this case values seen in subsequent alists are appended to the values in\
-+previous alists, creating array variables in the output.\
-+<complete-example>\
-+<set-var a1=<make-alist foo=foo1 bar=bar1>\
-+         a2=<make-alist foo=foo2 newvar=newval>>\
-+<alist-merge a1 a2>\
-+<alist-merge a1 a2 append=true>\
- </complete-example>")
- {
-   register int i;
-@@ -1169,9 +1169,9 @@
- }
- 
- DEFUN (pf_make_alist, &rest name-value-pairs,
--"Return an alist from the <var name-value> pairs passed.
--<complete-example>
-- <make-alist foo=bar baz=this>
-+"Return an alist from the <var name-value> pairs passed.\
-+<complete-example>\
-+ <make-alist foo=bar baz=this>\
- </complete-example>")
- {
-   BPRINTF_BUFFER *expr = bprintf_create_buffer ();
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/directory.c 
work/metahtml-5.091/modules/directory.c
---- work/metahtml-5.091/modules/directory.c    1999-01-09 01:14:41.000000000 
+0100
-+++ work/metahtml-5.091/modules/directory.c    2013-04-02 23:44:18.137411386 
+0200
-@@ -222,45 +222,45 @@
-       &key show-icons=true icon-dir=pathname
-       sort=sort-op
-       link=URL,
--"Synopsis:
--<example>
--  <set-var loaded? = <load-module directory>>
--  <dir::dir-table>
--</example>
--
--Produces a clickable listing of the files in <var webpath> limited to
--those which match <var regexp>, displaying icons found in <var icon-dir>.
--
--<var webpath> defaults to the directory containing this page.
--
--<var regexp>  defaults to <code>\"(^[^.].*[^~]$)|(^\\.\\.$)|(^\\.$)\"</code>,
--i.e., files which do not begin with a dot, and files which do not end with
--a tilde, and the two special directories, <code>`.'</code> and 
<code>`..'</code>.
--
--<var icon-dir> defaults to /images/icons -- each file is associated with an
--icon file named by file extension (e.g, mhtml.gif, html.gif, etc.)
--Icons are only shown if <var show-icons> is set.
--
--Possible values for <var sort-op> are:
--<ul>
--<li> <code>size</code>: Order by size of file,
--<li> <code>name</code>: Order alphabetically by name,
--<li> <code>type</code>: Order by directory .vs. file, and filename extension,
--<li> <code>created</code>: Order by creation date,
--<li> <code>accessed</code>: Order by last access time, and
--<li> <code>modified</code>: Order by last modification time.
--</ul>
--
--<var sort-op> defaults to <code>name</code>.
--
--Note that this function is only available from the <b>directory</b>
--module -- it is not a builtin part of <Meta-HTML>.
--
--<example>
--<set-var library-loaded? = <load-module directory>>
--<when <get-var library-loaded?>>
--   <dir::dir-table>
--</when>
-+"Synopsis:\
-+<example>\
-+  <set-var loaded? = <load-module directory>>\
-+  <dir::dir-table>\
-+</example>\
-+\
-+Produces a clickable listing of the files in <var webpath> limited to\
-+those which match <var regexp>, displaying icons found in <var icon-dir>.\
-+\
-+<var webpath> defaults to the directory containing this page.\
-+\
-+<var regexp>  defaults to <code>\"(^[^.].*[^~]$)|(^\\.\\.$)|(^\\.$)\"</code>,\
-+i.e., files which do not begin with a dot, and files which do not end with\
-+a tilde, and the two special directories, <code>`.'</code> and 
<code>`..'</code>.\
-+\
-+<var icon-dir> defaults to /images/icons -- each file is associated with an\
-+icon file named by file extension (e.g, mhtml.gif, html.gif, etc.)\
-+Icons are only shown if <var show-icons> is set.\
-+\
-+Possible values for <var sort-op> are:\
-+<ul>\
-+<li> <code>size</code>: Order by size of file,\
-+<li> <code>name</code>: Order alphabetically by name,\
-+<li> <code>type</code>: Order by directory .vs. file, and filename extension,\
-+<li> <code>created</code>: Order by creation date,\
-+<li> <code>accessed</code>: Order by last access time, and\
-+<li> <code>modified</code>: Order by last modification time.\
-+</ul>\
-+\
-+<var sort-op> defaults to <code>name</code>.\
-+\
-+Note that this function is only available from the <b>directory</b>\
-+module -- it is not a builtin part of <Meta-HTML>.\
-+\
-+<example>\
-+<set-var library-loaded? = <load-module directory>>\
-+<when <get-var library-loaded?>>\
-+   <dir::dir-table>\
-+</when>\
- </example>")
- 
- static void
-diff -x config.log -x config.status -ru work/metahtml-5.091/modules/example.c 
work/metahtml-5.091/modules/example.c
---- work/metahtml-5.091/modules/example.c      1998-11-11 21:19:46.000000000 
+0100
-+++ work/metahtml-5.091/modules/example.c      2013-04-03 00:10:30.224165171 
+0200
-@@ -60,12 +60,12 @@
-    functions that you declare with DEFUN, DEFMACRO, etc., will be documented
-    in that section. */
- DEFINE_SECTION (EXAMPLE-MODULE, example-keywords; more keywords,
--"The functions in this module are simply here to demonstrate how to write
--new dynamically loadable modules for <Meta-HTML> for your own application
--needs, and don't really perform any services that couldn't be better 
--performed in other ways.  However, the <tag apropos> function in this
--module might be of use in an interactive Web page -- see <secref html-helpers>
--for more information, as well as reading the source code in
-+"The functions in this module are simply here to demonstrate how to write\
-+new dynamically loadable modules for <Meta-HTML> for your own application\
-+needs, and don't really perform any services that couldn't be better \
-+performed in other ways.  However, the <tag apropos> function in this\
-+module might be of use in an interactive Web page -- see <secref 
html-helpers>\
-+for more information, as well as reading the source code in\
- <code>modules/example.c</code>.", "")
- 
- /* 5) Write the actual code which implements your functionality. */
-@@ -73,13 +73,13 @@
- /* <apropos regexp> --> array of symbol names containing regexp. */
- 
- DEFUN (pf_apropos, regexp,
--"Search through all <Meta-HTML> symbols for <var regexp>, and return a
--newline separated list of those symbols which match.
--
--Generally meant for interactive use.
--
--Note that this is simply a long documentation comment in the source, to
--demonstrate how to document new commands that you might write in a
-+"Search through all <Meta-HTML> symbols for <var regexp>, and return a\
-+newline separated list of those symbols which match.\
-+\
-+Generally meant for interactive use.\
-+\
-+Note that this is simply a long documentation comment in the source, to\
-+demonstrate how to document new commands that you might write in a\
- <Meta-HTML> dynamically loadable module.")
- {
-   char *regexp = mhtml_evaluate_string (get_positional_arg (vars, 0));
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/csv.c 
work/metahtml-5.091/modules/csv.c
---- tmp/metahtml-5.091/modules/csv.c   1998-11-11 21:19:46.000000000 +0100
-+++ work/metahtml-5.091/modules/csv.c  2013-04-03 00:14:12.574177493 +0200
-@@ -47,9 +47,9 @@
- MODULE_INITIALIZE ("csv", ftab)
- 
- DEFINE_SECTION (CSV-MODULE, , 
--"The CSV module is useful for importing <b>C</b>omma <b>S</b>eperated
--<b>V</b>alues from external programs which are capable of producing them.
--Such programs include word processors, legacy database systems, spreadsheets,
-+"The CSV module is useful for importing <b>C</b>omma <b>S</b>eperated\
-+<b>V</b>alues from external programs which are capable of producing them.\
-+Such programs include word processors, legacy database systems, spreadsheets,\
- and the like.", "")
- 
- /* Return an array of strings, each one representing data taken from the
-@@ -119,8 +119,8 @@
- }
- 
- DEFUNX (pf_csv::csv_to_array, cvs-text array-name &key sep=SEPARATOR,
--"Returns an array of the values specified in the comma separated values
--represented by <var csv-text>.  The values are placed in <var array-name>
-+"Returns an array of the values specified in the comma separated values\
-+represented by <var csv-text>.  The values are placed in <var array-name>\
- in the order in which they are found.")
- static void
- pf_csv_to_array (PFunArgs)
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/elsewhen.c 
work/metahtml-5.091/modules/elsewhen.c
---- tmp/metahtml-5.091/modules/elsewhen.c      1998-11-11 21:19:46.000000000 
+0100
-+++ work/metahtml-5.091/modules/elsewhen.c     2013-04-03 00:13:19.957507912 
+0200
-@@ -58,22 +58,22 @@
- MODULE_INITIALIZE ("elsewhen", ftab)
- 
- DEFINE_SECTION (ELSEWHEN-MODULE, ,
--"This module is provided for those programmers who feel more comfortable with
--a balanced tag syntax for flow control over a balanced brace syntax.
--Using the tags in this package will greatly reduce the number of
--<funref flow-control group>, or <funref flow-control concat> tags, at the
--slight cost of interpreter speed.  In many cases, the clarity of the code
--is more important, so if you are one of those programmers that feel more
--comfortable with the tag-based syntax, you might consider the use of this
-+"This module is provided for those programmers who feel more comfortable with\
-+a balanced tag syntax for flow control over a balanced brace syntax.\
-+Using the tags in this package will greatly reduce the number of\
-+<funref flow-control group>, or <funref flow-control concat> tags, at the\
-+slight cost of interpreter speed.  In many cases, the clarity of the code\
-+is more important, so if you are one of those programmers that feel more\
-+comfortable with the tag-based syntax, you might consider the use of this\
- module.", "")
- 
- DEFMACRO (pf_whenelse, test,
--"Evaluate <var test>.  If the result is a non-empty string,
--then execute the <var body> statements.  If the tag &lt;elsewhen&gt;
--appears in the body, then the commands between that tag and the closing
--&lt;/whenelse&gt; will be executed if, and only if, the <var test> evaluates
--to the empty string.  This is a cleaner way to handle optional multiple
--statement execution rather than dealing with quoting everything inside
-+"Evaluate <var test>.  If the result is a non-empty string,\
-+then execute the <var body> statements.  If the tag &lt;elsewhen&gt;\
-+appears in the body, then the commands between that tag and the closing\
-+&lt;/whenelse&gt; will be executed if, and only if, the <var test> evaluates\
-+to the empty string.  This is a cleaner way to handle optional multiple\
-+statement execution rather than dealing with quoting everything inside\
- of an <funref FLOW-CONTROL if> form.")
- {
-   char *test = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -120,18 +120,18 @@
- }
- 
- DEFMACROX (pf_cif, test &optional then-clause <else> else-clause,
--"First <var test> is evaluated. If the result is a non-whitespace only string,
--the statements between the <var then-clause> and the <var else-clause> are
--evaluated.  Otherwise, if the the <var else-clause> is present, it is
--evaluated. Although Meta-HTML has an <code>or</code> function, you can
--efficiently test for the presence of any of a group of variables with code
--similar to the following:
--<example>
--<if <get-var foo bar>>
--  \"Either FOO or BAR is present\"
--<else>
--  \"Neither FOO nor BAR is present\"
--</if>
-+"First <var test> is evaluated. If the result is a non-whitespace only 
string,\
-+the statements between the <var then-clause> and the <var else-clause> are\
-+evaluated.  Otherwise, if the the <var else-clause> is present, it is\
-+evaluated. Although Meta-HTML has an <code>or</code> function, you can\
-+efficiently test for the presence of any of a group of variables with code\
-+similar to the following:\
-+<example>\
-+<if <get-var foo bar>>\
-+  \"Either FOO or BAR is present\"\
-+<else>\
-+  \"Neither FOO nor BAR is present\"\
-+</if>\
- </example>")
- 
- /* A non-lisp friendly <if> <else> </if> tag. */
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/lisp.c 
work/metahtml-5.091/modules/lisp.c
---- tmp/metahtml-5.091/modules/lisp.c  1998-11-11 21:19:46.000000000 +0100
-+++ work/metahtml-5.091/modules/lisp.c 2013-04-03 00:15:07.327513864 +0200
-@@ -132,34 +132,34 @@
- }
- 
- DEFINE_SECTION (LISP-MODULE, lisp;scheme;lists,
--"The functions in this module treat their arguments substantially
--differently than in the rest of Meta-HTML.  It is important to read
--and understand the following paragraphs if you are to use this module.
--
--If an argument begins with an open angle bracket (\"<\"), then it is
--evaluated, and that is the argument that is passed to the lisp
--function.  If an argument begins with a single quote (\"'\"), then the
--value which immediately follows it is read using the lisp reader, and
--the resultant value is passed to the lisp function.  Otherwise, the
--argument is looked up as a variable name, and if it exists, the value
--of that variable (either standard or binary) is what is passed to the
--lisp function.  If the variable doesn't exist, then the variable name
--is passed.
--
--This is not optimal behavior (it allows for too much ambiguity), but
--it can make writing programs which rely heavily on lisp-like syntax
-+"The functions in this module treat their arguments substantially\
-+differently than in the rest of Meta-HTML.  It is important to read\
-+and understand the following paragraphs if you are to use this module.\
-+\
-+If an argument begins with an open angle bracket (\"<\"), then it is\
-+evaluated, and that is the argument that is passed to the lisp\
-+function.  If an argument begins with a single quote (\"'\"), then the\
-+value which immediately follows it is read using the lisp reader, and\
-+the resultant value is passed to the lisp function.  Otherwise, the\
-+argument is looked up as a variable name, and if it exists, the value\
-+of that variable (either standard or binary) is what is passed to the\
-+lisp function.  If the variable doesn't exist, then the variable name\
-+is passed.\
-+\
-+This is not optimal behavior (it allows for too much ambiguity), but\
-+it can make writing programs which rely heavily on lisp-like syntax\
- much easier to read.", "")
- 
- DEFUN (pf_cons, &optional car cdr,
--"Create a two element list with first element <var car> and second element
--<var cdr>.  <var car> and <var cdr> default to the empty list \"()\" if not
--specified.
--
--Please see <funref lisp-module lisp-module-synopsis> for details of how
--the arguments to this function are parsed.
--<example>
--<cons 'this 'that>            --> (\"this\" . \"that\")
--<cons 'this <cons 'that '()>> --> (\"this\" \"that\")
-+"Create a two element list with first element <var car> and second element\
-+<var cdr>.  <var car> and <var cdr> default to the empty list \"()\" if not\
-+specified.\
-+\
-+Please see <funref lisp-module lisp-module-synopsis> for details of how\
-+the arguments to this function are parsed.\
-+<example>\
-+<cons 'this 'that>            --> (\"this\" . \"that\")\
-+<cons 'this <cons 'that '()>> --> (\"this\" \"that\")\
- </example>")
- {
-   char *arg1 = get_lisp_positional_arg (vars, 0);
-@@ -188,13 +188,13 @@
- }
- 
- DEFUN (pf_list, &rest objects,
--"Return a lisp list consisting of the objects passed.
--
--Please see <funref lisp-module lisp-module-synopsis> for details of how
--the arguments to this function are parsed.
--
--<example>
--<list 'this 'that '(the other thing)>  --> (this that (the other thing))
-+"Return a lisp list consisting of the objects passed.\
-+\
-+Please see <funref lisp-module lisp-module-synopsis> for details of how\
-+the arguments to this function are parsed.\
-+\
-+<example>\
-+<list 'this 'that '(the other thing)>  --> (this that (the other thing))\
- </example>")
- {
-   register int i = 0;
-@@ -239,10 +239,10 @@
- }
- 
- DEFUN (pf_car, list,
--"Returns the first element of <var list>.
--<example>
--<car \"(this that and the other thing)\"> --> \"this\"
--<car \"((this that) and more stuff)\">    --> (\"this\" \"that\")
-+"Returns the first element of <var list>.\
-+<example>\
-+<car \"(this that and the other thing)\"> --> \"this\"\
-+<car \"((this that) and more stuff)\">    --> (\"this\" \"that\")\
- </example>")
- {
-   char *string = get_lisp_positional_arg (vars, 0);
-@@ -265,10 +265,10 @@
- }
- 
- DEFUN (pf_cdr, list,
--"Returns everything bu the first element of <var list>.
--<example>
--<cdr \"(this that stuff)\">     --> (\"that\" \"stuff\")
--<cdr \"((this that) stuff)\">   --> (\"stuff\")
-+"Returns everything bu the first element of <var list>.\
-+<example>\
-+<cdr \"(this that stuff)\">     --> (\"that\" \"stuff\")\
-+<cdr \"((this that) stuff)\">   --> (\"stuff\")\
- </example>")
- {
-   char *string = get_lisp_positional_arg (vars, 0);
-@@ -291,11 +291,11 @@
- }
- 
- DEFUN (pf_cadr, list,
--"Returns the <funref lisp-module car> of the <funref lisp-module cdr> of
--<var list>.
--<example>
--<cadr \"(this that stuff)\">     --> \"that\"
--<cadr \"((this that) stuff)\">   --> \"stuff\"
-+"Returns the <funref lisp-module car> of the <funref lisp-module cdr> of\
-+<var list>.\
-+<example>\
-+<cadr \"(this that stuff)\">     --> \"that\"\
-+<cadr \"((this that) stuff)\">   --> \"stuff\"\
- </example>")
- {
-   char *string = get_lisp_positional_arg (vars, 0);
-@@ -319,11 +319,11 @@
- }
- 
- DEFUN (pf_cdar, list,
--"Returns the <funref lisp-module cdr> of the <funref lisp-module car> of
--<var list>.
--<example>
--<cdar \"(this that stuff)\">     -->
--<cdar \"((this that) stuff)\">   --> (\"that\")
-+"Returns the <funref lisp-module cdr> of the <funref lisp-module car> of\
-+<var list>.\
-+<example>\
-+<cdar \"(this that stuff)\">     -->\
-+<cdar \"((this that) stuff)\">   --> (\"that\")\
- </example>")
- {
-   char *string = get_lisp_positional_arg (vars, 0);
-@@ -347,11 +347,11 @@
- }
- 
- DEFUN (pf_cddr, list,
--"Returns the <funref lisp-module cdr> of the <funref lisp-module cdr> of
--<var list>.
--<example>
--<cddr \"(this that stuff)\">     --> (\"stuff\")
--<cddr \"((this that) stuff)\">   --> ()
-+"Returns the <funref lisp-module cdr> of the <funref lisp-module cdr> of\
-+<var list>.\
-+<example>\
-+<cddr \"(this that stuff)\">     --> (\"stuff\")\
-+<cddr \"((this that) stuff)\">   --> ()\
- </example>")
- {
-   char *string = get_lisp_positional_arg (vars, 0);
-@@ -375,11 +375,11 @@
- }
- 
- DEFUN (pf_caar, list,
--"Returns the <funref lisp-module car> of the <funref lisp-module car> of
--<var list>.
--<example>
--<caar \"(this that stuff)\">     --> 
--<caar \"((this that) stuff)\">   --> \"this\"
-+"Returns the <funref lisp-module car> of the <funref lisp-module car> of\
-+<var list>.\
-+<example>\
-+<caar \"(this that stuff)\">     --> \
-+<caar \"((this that) stuff)\">   --> \"this\"\
- </example>")
- {
-   char *string = get_lisp_positional_arg (vars, 0);
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/modimage.c 
work/metahtml-5.091/modules/modimage.c
---- tmp/metahtml-5.091/modules/modimage.c      1999-04-07 11:04:51.000000000 
+0200
-+++ work/metahtml-5.091/modules/modimage.c     2013-04-03 00:17:19.174187834 
+0200
-@@ -93,12 +93,12 @@
-    functions that you declare with DEFUN, DEFMACRO, etc., will be documented
-    in that section. */
- DEFINE_SECTION (IMAGE-MODULE, image-keywords; more keywords,
--"Functions which allow the creation of GIF images.
--You create an image with <var IMAGE::CREATE>, and you can then draw lines,
--arcs, and points into the image.  When you are done creating the image,
--you call <var IMAGE::RETRIEVE> to get the GIF image in a binary variable.
--
--Finally, when you are totally done with the image, you call <var 
IMAGE::DELETE>
-+"Functions which allow the creation of GIF images.\
-+You create an image with <var IMAGE::CREATE>, and you can then draw lines,\
-+arcs, and points into the image.  When you are done creating the image,\
-+you call <var IMAGE::RETRIEVE> to get the GIF image in a binary variable.\
-+\
-+Finally, when you are totally done with the image, you call <var 
IMAGE::DELETE>\
- to make the image go away.", "")
- 
- /* An IMAGE object in Meta-HTML under this GD-based library is a variable
-@@ -192,10 +192,10 @@
- }
- 
- DEFUNX(image::create, imagevar &key width height src,
--"Creates a new image with the specified width and height, and makes
--<var imagevar> be a receptacle for that image.
--
--If you pass <var src=/www/docs/images/foo.gif>, then <var foo.gif> will
-+"Creates a new image with the specified width and height, and makes\
-+<var imagevar> be a receptacle for that image.\
-+\
-+If you pass <var src=/www/docs/images/foo.gif>, then <var foo.gif> will\
- be loaded into the image variable instead of an empty image.")
- 
- static void
-@@ -265,9 +265,9 @@
- }
- 
- DEFUNX (image::info, imagevar,
--"Returns an alist representing information about the image in <var imagevar>.
--The alist contains <var width>, <var height>, <var total-colors>, and
--<var colors>.  <var colors> is an array of the color values which appear in
-+"Returns an alist representing information about the image in <var imagevar>.\
-+The alist contains <var width>, <var height>, <var total-colors>, and\
-+<var colors>.  <var colors> is an array of the color values which appear in\
- the image.")
- 
- #define alist_set(name, num)                                  \
-@@ -418,7 +418,7 @@
- }
-   
- DEFUNX (image::set-pixel, imagevar &key x y color,
--"Set the pixel in <var imagevar> at location <var x>, <var y> to the color
-+"Set the pixel in <var imagevar> at location <var x>, <var y> to the color\
- <var color>.")
- static void
- pf_image_set_pixel (PFunArgs)
-@@ -499,10 +499,10 @@
- }
- 
- DEFUNX (image::text, imagevar text &key x y color size align,
--"Write text on the image in <var imagevar> at position <var x>, <var y>,
--in the color <var color>.
--<var align> can be one of \"right\", \"center\", or \"left\", and defaults
--to \"center\".
-+"Write text on the image in <var imagevar> at position <var x>, <var y>,\
-+in the color <var color>.\
-+<var align> can be one of \"right\", \"center\", or \"left\", and defaults\
-+to \"center\".\
- <var size> ranges frome 1 to 6 and defaults to 3.")
- 
- static void
-@@ -611,7 +611,7 @@
- }
- 
- DEFUNX (image::line, imagevar &key x1 y1 x2 y2 color,
--"Draw a line in <var imagevar> from (<var x1>, <var y1>) to
-+"Draw a line in <var imagevar> from (<var x1>, <var y1>) to\
- (<var x2>, <var y2>) in the color <var color>.")
- static void
- pf_image_line (PFunArgs)
-@@ -658,10 +658,10 @@
- }
- 
- DEFUNX (image::fill, imagevar &key x y color border,
--"Fill an area of the image in <var imagevar> with the color specified by
--<var color>.  The filling starts at the point specified by (<var x>, <var y>),
--and continues in all directions bounded by pixels which are not the same
--color as the color at (<var x>, <var y>), or, optionally, which are not the
-+"Fill an area of the image in <var imagevar> with the color specified by\
-+<var color>.  The filling starts at the point specified by (<var x>, <var 
y>),\
-+and continues in all directions bounded by pixels which are not the same\
-+color as the color at (<var x>, <var y>), or, optionally, which are not the\
- same color as the color specified by <var border>.")
- 
- static void
-@@ -711,9 +711,9 @@
- }
- 
- DEFUNX (image::rect, imagevar &key x1 y1 x2 y2 color fill,
--"Draw a rectangle with the border lines in the color <var color> and perhaps
--filled with the color <var fill>.  The rectangle is drawn with the upper-left
--corner specified by (<var x1> <var y1>) and the bottom-right corner specified
-+"Draw a rectangle with the border lines in the color <var color> and perhaps\
-+filled with the color <var fill>.  The rectangle is drawn with the upper-left\
-+corner specified by (<var x1> <var y1>) and the bottom-right corner specified\
- by (<var x2>, <var y2>).")
- 
- static void
-@@ -774,16 +774,16 @@
- }
- 
- DEFUNX (image::arc, imagevar &key x y width height start end color fill,
--"Draws a partial ellipse centered at the point specified by <var x> and
--<var y>, with a width of <var width> and height of <var height>.
--
--The arguments of <var start> and <var end> are given in degrees, and specify
--the starting and ending points on the curve.
--
--The following code draws a red circle with a radius of 50 pixels where
--the exact center of the circle appears at 100,100:
--<example>
--<image::arc image x=100 y=100 width=50 height=50 start=0 end=360 color=FF0000>
-+"Draws a partial ellipse centered at the point specified by <var x> and\
-+<var y>, with a width of <var width> and height of <var height>.\
-+\
-+The arguments of <var start> and <var end> are given in degrees, and specify\
-+the starting and ending points on the curve.\
-+\
-+The following code draws a red circle with a radius of 50 pixels where\
-+the exact center of the circle appears at 100,100:\
-+<example>\
-+<image::arc image x=100 y=100 width=50 height=50 start=0 end=360 
color=FF0000>\
- </example>")
- 
- static void
-@@ -879,7 +879,7 @@
- }
- 
- DEFUNX (image::write, imagevar filename,
--"Writes the contents of the image in <var imagevar> to the file specified
-+"Writes the contents of the image in <var imagevar> to the file specified\
- by <var filename>.  Returns \"true\" if the image was successfully written.")
- static void
- pf_image_write (PFunArgs)
-@@ -947,9 +947,9 @@
- }
- 
- DEFUNX (image::copy, src-image dst-image &key src-x src-y dst-x dst-y 
src-width src-height dst-width dst-height,
--"Copies bits from <var src-image> to <var dst-image>.
--Both images must exist.
--If a different width or height is specified for the destination, the image is
-+"Copies bits from <var src-image> to <var dst-image>.\
-+Both images must exist.\
-+If a different width or height is specified for the destination, the image is\
- resized to fit the specified values.")
- static void
- pf_image_copy (PFunArgs)
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/modmath.c 
work/metahtml-5.091/modules/modmath.c
---- tmp/metahtml-5.091/modules/modmath.c       1998-11-11 21:19:47.000000000 
+0100
-+++ work/metahtml-5.091/modules/modmath.c      2013-04-03 00:15:47.204182746 
+0200
-@@ -243,8 +243,8 @@
- }
- 
- DEFUN (pf_atan, x &optional y,
--"Return the arc tangent of <var x>.
--If <var y> is supplied, then this returns the arg tangent of <var y/x>,
-+"Return the arc tangent of <var x>.\
-+If <var y> is supplied, then this returns the arg tangent of <var y/x>,\
- using the signs of both arguments to determine the quadrant of the result.")
- {
-   double x, y;
-@@ -298,7 +298,7 @@
- }
- 
- DEFUN (pf_cosh, x,
--"Return the hyperbolic cosine of <var x>,
-+"Return the hyperbolic cosine of <var x>,\
- i.e., (exp (<var x>) + exp (<var -x>)) / 2.")
- {
-   double x;
-@@ -310,7 +310,7 @@
-     }
- }
- 
--DEFUN (pf_sinh, x, "Return the hyperbolic sine of <var x>,
-+DEFUN (pf_sinh, x, "Return the hyperbolic sine of <var x>,\
- i.e. (exp(<var x>) - exp(<var -x>) / 2.")
- {
-   double x;
-@@ -322,7 +322,7 @@
-     }
- }
- 
--DEFUN (pf_tanh, x, "Return the hyperbolic tangent of <var x>,
-+DEFUN (pf_tanh, x, "Return the hyperbolic tangent of <var x>,\
- i.e. sinh(<var x>) / cosh(<var x>).")
- {
-   double x;
-@@ -368,7 +368,7 @@
- }
- 
- DEFUN (pf_exp, x,
--"Return the value of <i>e</i> (the base of natural logarithms), raised 
-+"Return the value of <i>e</i> (the base of natural logarithms), raised \
- to the power of <var x>.")
- {
-   double x;
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/modstat.c 
work/metahtml-5.091/modules/modstat.c
---- tmp/metahtml-5.091/modules/modstat.c       1998-11-16 06:18:36.000000000 
+0100
-+++ work/metahtml-5.091/modules/modstat.c      2013-04-03 00:16:10.690850698 
+0200
-@@ -200,7 +200,7 @@
- }
- 
- DEFUN (pf_next_combination, combination,
--"Return the next combination of <var combination>, or the empty array if there
-+"Return the next combination of <var combination>, or the empty array if 
there\
- are no more combinations to process.")
- {
-   char *address_string = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -231,7 +231,7 @@
- }
- 
- DEFUN (pf_free_combination, combination,
--"Free any memory associated with <var combination>, which must be a value
-+"Free any memory associated with <var combination>, which must be a value\
- returned from <tag stat::create-combination>.")
- {
-   char *address_string = mhtml_evaluate_string (get_positional_arg (vars, 0));
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/parser.c 
work/metahtml-5.091/modules/parser.c
---- tmp/metahtml-5.091/modules/parser.c        1998-11-11 21:19:47.000000000 
+0100
-+++ work/metahtml-5.091/modules/parser.c       2013-04-03 00:12:09.380837334 
+0200
-@@ -56,21 +56,21 @@
- /* <parser::change-brackets "{}"> --> Allow new opener and closer. */
- DOC_SECTION (LANGUAGE-OPERATORS)
- DEFUNX (pf_parser::change-brackets, bracket-pair,
--"Add the matched open and close bracket characters to the special
--characters that are understood by the Meta-HTML parser.  For example,
--calling this function like this:
--<example>
--<parser::change-brackets \"{}\">
--</example>
--causes the character \"{\" to be in the same syntax class as \"<\", such
--that an expression {get-var foo} would return the value of <var foo>.
--
--This function is only available after loading the <b>parser</b> module:
--<example>
--<load-module parser> --> /www/lib/parser.so
--</example>
--
--For more information on loading dynamic modules in Meta-HTML, please see
-+"Add the matched open and close bracket characters to the special\
-+characters that are understood by the Meta-HTML parser.  For example,\
-+calling this function like this:\
-+<example>\
-+<parser::change-brackets \"{}\">\
-+</example>\
-+causes the character \"{\" to be in the same syntax class as \"<\", such\
-+that an expression {get-var foo} would return the value of <var foo>.\
-+\
-+This function is only available after loading the <b>parser</b> module:\
-+<example>\
-+<load-module parser> --> /www/lib/parser.so\
-+</example>\
-+\
-+For more information on loading dynamic modules in Meta-HTML, please see\
- the documentation for <funref dynamic-modules load-module>.")
- 
- static void
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/profiler.c 
work/metahtml-5.091/modules/profiler.c
---- tmp/metahtml-5.091/modules/profiler.c      1998-11-11 21:19:47.000000000 
+0100
-+++ work/metahtml-5.091/modules/profiler.c     2013-04-03 00:12:54.394173161 
+0200
-@@ -250,35 +250,35 @@
- }
- 
- DEFINE_SECTION (CODE-PROFILING, ,
--"The <b>profiler</b> module allows you to get a detailed listing of the
--number of times a particular function has executed, the amount of time
--spent within each function, and other information which can help you to
--tune your Meta-HTML application, and get it running as fast as possible.
--
--The use of this module is trivial.  First, place
--<example>
--<set-var x=<load-module profiler>>
--<set-var mhtml::profile-functions = true>
--</example>
--at the top of the page that you would like to profile.
--
--At the bottom of the page, after the last normal instruction, place
--<example>
--<profiler::dump /tmp/meta.prof>
--</example>
--
--After visiting the page in a browser, the file <i>/tmp/meta.prog</i> will
--contain a human readable dump of the profile information.  Your page won't
--perceptibly slow down during loading -- the only indication that profiling
-+"The <b>profiler</b> module allows you to get a detailed listing of the\
-+number of times a particular function has executed, the amount of time\
-+spent within each function, and other information which can help you to\
-+tune your Meta-HTML application, and get it running as fast as possible.\
-+\
-+The use of this module is trivial.  First, place\
-+<example>\
-+<set-var x=<load-module profiler>>\
-+<set-var mhtml::profile-functions = true>\
-+</example>\
-+at the top of the page that you would like to profile.\
-+\
-+At the bottom of the page, after the last normal instruction, place\
-+<example>\
-+<profiler::dump /tmp/meta.prof>\
-+</example>\
-+\
-+After visiting the page in a browser, the file <i>/tmp/meta.prog</i> will\
-+contain a human readable dump of the profile information.  Your page won't\
-+perceptibly slow down during loading -- the only indication that profiling\
- is on is the creation of the output file that you specify.", "")
- 
- DEFUNX (pf_profiler::dump, filename &key sort=[names|times|calls],
--"Write profiling information to <var filename>.  Unlike C profilers,
--the output is quite self-explanatory.
--
--Known bugs:  The total time doesn't really correctly reflect the amount
--of time spent processing the entire page -- the time displayed is additive,
--so it is always orders of magnitude larger than it should be.  However, the
-+"Write profiling information to <var filename>.  Unlike C profilers,\
-+the output is quite self-explanatory.\
-+\
-+Known bugs:  The total time doesn't really correctly reflect the amount\
-+of time spent processing the entire page -- the time displayed is additive,\
-+so it is always orders of magnitude larger than it should be.  However, the\
- time displayed for each function call is correct.")
- static void
- pf_profiler_dump (PFunArgs)
-diff -x config.log -x config.status -ru 
tmp/metahtml-5.091/modules/serverfuncs.c 
work/metahtml-5.091/modules/serverfuncs.c
---- tmp/metahtml-5.091/modules/serverfuncs.c   1998-11-11 21:19:47.000000000 
+0100
-+++ work/metahtml-5.091/modules/serverfuncs.c  2013-04-03 00:13:55.410843209 
+0200
-@@ -20,60 +20,60 @@
- MODULE_INITIALIZE ("serverfuncs", ftab)
- 
- DEFINE_SECTION (META-HTML-TCP/IP-SERVERS, tcp/ip;port;telnet,
--"<Meta-HTML> provides an extremely convenient path for creating a TCP/IP
--server which will listen on a particular port, and handle line-based
--commands.
--
--Typically, a <b>mhc</b> script is used to start the server process -- it
--loads the <code>serverfuncs</code> module, creates a server process, binds
--<code>*standard-input*</code> and <code>*standard-output</code> to the
--specified port, and waits for connections.
--
--When a connection is received, the server process forks and executes the
--function that you have specified to run.  Upon exit from that function,
--the connection is closed.
--
--The libraries that are provided in the 
<code>modules/serverfunc-examples</code>
--tagsets directory do most of the work for implementing a complete server --
--you need only to write the commands which implement the specific functionality
-+"<Meta-HTML> provides an extremely convenient path for creating a TCP/IP\
-+server which will listen on a particular port, and handle line-based\
-+commands.\
-+\
-+Typically, a <b>mhc</b> script is used to start the server process -- it\
-+loads the <code>serverfuncs</code> module, creates a server process, binds\
-+<code>*standard-input*</code> and <code>*standard-output</code> to the\
-+specified port, and waits for connections.\
-+\
-+When a connection is received, the server process forks and executes the\
-+function that you have specified to run.  Upon exit from that function,\
-+the connection is closed.\
-+\
-+The libraries that are provided in the 
<code>modules/serverfunc-examples</code>\
-+tagsets directory do most of the work for implementing a complete server --\
-+you need only to write the commands which implement the specific 
functionality\
- that you require.",
--"The type of server that is implemented by the 
<code>tagsets/server.mhtml</code>
--code expect to interact in an ASCII based conversation mode; each request
--from the client is a single line of ASCII text, and your server is expected
--to produce a response (which can be multiple lines, or a single line, or
--anything that your protocol implements).
--
--The code in <code>tagsets/server.mhtml</code> implement a few commands for you
--already, including <code>quit</code>, <code>help</code>, and 
<code>login</code>.
--
--You implement new commands by simply writing a function whose name is
--<code>COMMAND::</code><i>function-name</i></code>, where <i>function-name</i>
--is the exact string that the client should send to invoke the command.
--
--The convenience functions <tag server::put-line> and <tag server::get-line>
--write and read newline terminated lines of text to and from the client
--respectively.
--
--If you are interested in writing a TCP/IP based server, we would suggest that
--you read the source code to the <code>tagsets/server.mhtml</code> library,
-+"The type of server that is implemented by the 
<code>tagsets/server.mhtml</code>\
-+code expect to interact in an ASCII based conversation mode; each request\
-+from the client is a single line of ASCII text, and your server is expected\
-+to produce a response (which can be multiple lines, or a single line, or\
-+anything that your protocol implements).\
-+\
-+The code in <code>tagsets/server.mhtml</code> implement a few commands for 
you\
-+already, including <code>quit</code>, <code>help</code>, and 
<code>login</code>.\
-+\
-+You implement new commands by simply writing a function whose name is\
-+<code>COMMAND::</code><i>function-name</i></code>, where <i>function-name</i>\
-+is the exact string that the client should send to invoke the command.\
-+\
-+The convenience functions <tag server::put-line> and <tag server::get-line>\
-+write and read newline terminated lines of text to and from the client\
-+respectively.\
-+\
-+If you are interested in writing a TCP/IP based server, we would suggest that\
-+you read the source code to the <code>tagsets/server.mhtml</code> library,\
- and peruse the examples.")
- 
- DEFUNX (pf_server::make_server, &key hostname &rest start-fun port,
--"Create a server process which will listen on <var port> for incoming
--TCP/IP connections, and return a <i>server indentifier</i> which can
--be used to crudely control that process.
--
--When a connection is received on that port, the standard streams are
--bound to the <Meta-HTML> variables <code>*standard-input*</code> and
--<code>*standard-output*</code>, and <var start-fun> is invoked.  Only the
--functions which have been defined before the invocation of
--<code>server::make-server</code> are available to the server process.
--
--A number of variables are bound at connection time.  These are:
--
--<ul>
--<li> <b>SERVER::REMOTE-ADDR</b><br>The IP address of the connecting machine.
--<li> <b>SERVER::REMOTE-PORT</b><br>The port number which the remote machine 
connected to.
-+"Create a server process which will listen on <var port> for incoming\
-+TCP/IP connections, and return a <i>server indentifier</i> which can\
-+be used to crudely control that process.\
-+\
-+When a connection is received on that port, the standard streams are\
-+bound to the <Meta-HTML> variables <code>*standard-input*</code> and\
-+<code>*standard-output*</code>, and <var start-fun> is invoked.  Only the\
-+functions which have been defined before the invocation of\
-+<code>server::make-server</code> are available to the server process.\
-+\
-+A number of variables are bound at connection time.  These are:\
-+\
-+<ul>\
-+<li> <b>SERVER::REMOTE-ADDR</b><br>The IP address of the connecting machine.\
-+<li> <b>SERVER::REMOTE-PORT</b><br>The port number which the remote machine 
connected to.\
- </ul>")
- 
- /* Release a child that has died in the normal way. */
-diff -x config.log -x config.status -ru tmp/metahtml-5.091/modules/timer.c 
work/metahtml-5.091/modules/timer.c
---- tmp/metahtml-5.091/modules/timer.c 1998-11-11 21:19:47.000000000 +0100
-+++ work/metahtml-5.091/modules/timer.c        2013-04-03 00:12:31.720838570 
+0200
-@@ -59,17 +59,17 @@
- DOC_SECTION (CODE-PROFILING)
- DEFMACRO (pf_measuring_elapsed_time,
-         varname &key units=milliseconds|microseconds|seconds,
--"Place the amount of time it takes to execute <var code> into <var varname>.
--The value appears as a floating point number which represents the
--elapsed time in milliseconds (by default -- use the <var units> keyword
--argument to change this).
--
--For example:
--<complete-example>
--<measuring-elapsed-time timer>
--  <set-var sample-code=<get-var x>>
--</measuring-elapsed-time>
--It took <get-var timer> milliseconds to execute the sample code.
-+"Place the amount of time it takes to execute <var code> into <var varname>.\
-+The value appears as a floating point number which represents the\
-+elapsed time in milliseconds (by default -- use the <var units> keyword\
-+argument to change this).\
-+\
-+For example:\
-+<complete-example>\
-+<measuring-elapsed-time timer>\
-+  <set-var sample-code=<get-var x>>\
-+</measuring-elapsed-time>\
-+It took <get-var timer> milliseconds to execute the sample code.\
- </complete-example>")
- {
-   char *varname = mhtml_evaluate_string (get_positional_arg (vars, 0));
-@@ -123,18 +123,18 @@
- }
- 
- DEFUN (pf_mtime, ,
--"Returns the number of milliseconds that have elapsed since Jan 1st, 1970,
--as a large floating point value.
--
--This can be more convenient to use than <tag measuring-elapsed-time> since
--the use of it can be broken up across many include files.  It isn't as
--accurate to use this over <tag measuring-elapsed-time> since the overhead
--of setting a variable and getting its value is included in your timing:
--<complete-example>
--<set-var start=<mtime>>
--<set-var sample-code=<get-var x>>
--<set-var end=<mtime>>
--It took <sub end start> milliseconds to execute the sample code.
-+"Returns the number of milliseconds that have elapsed since Jan 1st, 1970,\
-+as a large floating point value.\
-+\
-+This can be more convenient to use than <tag measuring-elapsed-time> since\
-+the use of it can be broken up across many include files.  It isn't as\
-+accurate to use this over <tag measuring-elapsed-time> since the overhead\
-+of setting a variable and getting its value is included in your timing:\
-+<complete-example>\
-+<set-var start=<mtime>>\
-+<set-var sample-code=<get-var x>>\
-+<set-var end=<mtime>>\
-+It took <sub end start> milliseconds to execute the sample code.\
- </complete-example>")
- {
-   struct timeval now;
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/libmhtml/mysqlfuncs.c 
work/metahtml-5.091/libmhtml/mysqlfuncs.c
---- work/metahtml-5.091/libmhtml/mysqlfuncs.c  1999-01-28 22:04:29.000000000 
+0100
-+++ work/metahtml-5.091/libmhtml/mysqlfuncs.c  2013-04-03 00:31:03.640900191 
+0200
-@@ -67,20 +67,20 @@
- 
- PACKAGE_INITIALIZER (initialize_mysql_functions)
- DEFINE_SECTION (MYSQL-DATABASE-EXTENSIONS, database; SQL; Minerva,
--"<Meta-HTML> can use the <b>MySQL</b> database engine (residing in the
--dynamic module <code>modmysql.so</code>) when requested to by the
--<funref generic-sql-interface sql::set-database-type> command.
--The MySQL extensions allow true SQL database interaction at many levels,
-+"<Meta-HTML> can use the <b>MySQL</b> database engine (residing in the\
-+dynamic module <code>modmysql.so</code>) when requested to by the\
-+<funref generic-sql-interface sql::set-database-type> command.\
-+The MySQL extensions allow true SQL database interaction at many levels,\
- providing a clean and flexible abstraction to a MySQL database.", "")
- 
- DEFVAR (mysql::mysql-error-message,
--"An array of strings containing any error messages generated by the
--last call to the MySQL database.  Don't use this variable, use
-+"An array of strings containing any error messages generated by the\
-+last call to the MySQL database.  Don't use this variable, use\
- the function <funref generic-sql-interface sql::sql-error-message> instead.")
- 
- DEFVAR (mysql::recent-query,
--"The last query sent to the MySQL database for execution.  Don't use this
--variable, use the function <funref generic-sql-interface sql::recent-query>
-+"The last query sent to the MySQL database for execution.  Don't use this\
-+variable, use the function <funref generic-sql-interface sql::recent-query>\
- instead.")
- 
- DEFMACROX (pf_mysql::with_open_database, ,

=== removed file 'pkg/gnu/metahtml/files/metahtml-5.091-fix-ldflags-typo.diff'
--- a/pkg/gnu/metahtml/files/metahtml-5.091-fix-ldflags-typo.diff       
2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/metahtml/files/metahtml-5.091-fix-ldflags-typo.diff       
1970-01-01 00:00:00 +0000
@@ -1,71 +0,0 @@
-diff -x config.log -x config.status -ru 
work/metahtml-5.091/modules/Makefile.in work/metahtml-5.091/modules/Makefile.in
---- work/metahtml-5.091/modules/Makefile.in    1999-04-09 04:43:32.000000000 
+0200
-+++ work/metahtml-5.091/modules/Makefile.in    2013-04-02 23:53:03.477440481 
+0200
-@@ -107,27 +107,27 @@
- .c.so:
-       @echo Building module $@ from $<
-       @$(CC) $(GCC_FPIC) -c -o $*.o $(CFLAGS) $(IFLAGS) $(DEFS) $(VERSDEF) $<
--      @$(SHARED_LD) $(LD_FLAGS) $(DASH_SHARED) -o $@ $*.o
-+      @$(SHARED_LD) $(LDFLAGS) $(DASH_SHARED) -o $@ $*.o
- 
- .cc.so:
-       @echo Building module $@ from $<
-       @$(CXX) $(GCC_FPIC) -c -o $*.o $(CXXFLAGS) $(IFLAGS) $(DEFS) $(VERSDEF) 
$<
--      @$(SHARED_LDXX) $(LD_FLAGS) $(DASH_SHARED) -o $@ $*.o
-+      @$(SHARED_LDXX) $(LDFLAGS) $(DASH_SHARED) -o $@ $*.o
- 
- .cc.O:
-       @echo Building module $@ from $<
-       @$(CXX) $(GCC_FPIC) -c -o $*.o $(CXXFLAGS) $(IFLAGS) $(DEFS) $(VERSDEF) 
$<
--      @$(SHARED_LDXX) $(LD_FLAGS) $(DASH_SHARED) -o $@ $*.o
-+      @$(SHARED_LDXX) $(LDFLAGS) $(DASH_SHARED) -o $@ $*.o
- 
- .c.O:
-       @echo Building module $@ from $<
-       @$(CC) $(GCC_FPIC) -c -o $*.o $(CFLAGS) $(IFLAGS) $(DEFS) $(VERSDEF)  $<
--      @$(SHARED_LD) $(LD_FLAGS) $(DASH_SHARED) -o $@ $*.o
-+      @$(SHARED_LD) $(LDFLAGS) $(DASH_SHARED) -o $@ $*.o
- 
- .c.dll:
-       @echo Building module $@ from $<
-       @$(CC) $(GCC_FPIC) -c -o $*.o $(CFLAGS) $(IFLAGS) $(DEFS) $(VERSDEF)  $<
--      @$(SHARED_LD) $(LD_FLAGS) $(DASH_SHARED) -o $@ $*.o
-+      @$(SHARED_LD) $(LDFLAGS) $(DASH_SHARED) -o $@ $*.o
- 
- all:  $(TARGETS) $(DOCUMENTATION)
- 
-@@ -135,29 +135,29 @@
-       $(CC) $(GCC_FPIC) -c -o modmysql.o \
-         $(CFLAGS) $(IFLAGS) $(MYSQL_IN) -Imysql \
-         $(DEFS) $(VERSDEF) $(INCLUDE_FLAGS) modmysql.c
--      $(SHARED_LD) $(LD_FLAGS) $(DASH_SHARED) -o $(MODMYSQL) modmysql.o 
$(MYSQLLIB)
-+      $(SHARED_LD) $(LDFLAGS) $(DASH_SHARED) -o $(MODMYSQL) modmysql.o 
$(MYSQLLIB)
- 
- $(MODPGSQL): modpgsql.c gsqlbase.c ../libmhtml/pgsqlfuncs.c ../libmhtml/gsql.c
-       $(CC) $(GCC_FPIC) -c -o modpgsql.o \
-         $(CFLAGS) $(IFLAGS) $(PGSQL_IN) -Ipgsql \
-         $(DEFS) $(VERSDEF) $(INCLUDE_FLAGS) modpgsql.c
--      $(SHARED_LD) $(LD_FLAGS) $(DASH_SHARED) -o $(MODPGSQL) modpgsql.o 
$(PGSQLLIB)
-+      $(SHARED_LD) $(LDFLAGS) $(DASH_SHARED) -o $(MODPGSQL) modpgsql.o 
$(PGSQLLIB)
- 
- $(MODMSQL): modmsql.c gsqlbase.c ../libmhtml/msqlfuncs.c ../libmhtml/gsql.c
-       $(CC) $(GCC_FPIC) -c -o modmsql.o \
-         $(CFLAGS) $(IFLAGS) $(MSQL_IN) -Imsql \
-         $(DEFS) $(VERSDEF) $(INCLUDE_FLAGS) modmsql.c
--      $(SHARED_LD) $(LD_FLAGS) $(DASH_SHARED) -o $(MODMSQL) modmsql.o 
$(MSQLLIB)
-+      $(SHARED_LD) $(LDFLAGS) $(DASH_SHARED) -o $(MODMSQL) modmsql.o 
$(MSQLLIB)
- 
- modperl.so: modperl.c
-       $(CC) -c -o modperl.o $(CFLAGS) $(IFLAGS) $(DEFS) $(VERSDEF) \
-          $(INCLUDE_FLAGS) $(PERL_INC) $<
--      $(SHARED_LD) $(LD_FLAGS) modperl.o $(PERL_LIB) $(DASH_SHARED) -o 
modperl.so
-+      $(SHARED_LD) $(LDFLAGS) modperl.o $(PERL_LIB) $(DASH_SHARED) -o 
modperl.so
- 
- modimage$(SHARED_EXT): modimage.c
-       $(CC) $(GCC_FPIC) -c -o modimage.o $(CFLAGS) $(IFLAGS) \
-        -I../libgd $(DEFS) $(VERSDEF) $(INCLUDE_FLAGS) modimage.c
--      $(SHARED_LD) $(LD_FLAGS) modimage.o $(DASH_SHARED) \
-+      $(SHARED_LD) $(LDFLAGS) modimage.o $(DASH_SHARED) \
-               -o modimage$(SHARED_EXT) -L../libgd -lgd
- 
- $(DOCUMENTATION): $(MODULES) $(DB_MODULES) ../libmhtml/createdoc

=== removed file 'pkg/gnu/metahtml/files/metahtml-5.091-force-sys-readline.diff'
--- a/pkg/gnu/metahtml/files/metahtml-5.091-force-sys-readline.diff     
2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/metahtml/files/metahtml-5.091-force-sys-readline.diff     
1970-01-01 00:00:00 +0000
@@ -1,19 +0,0 @@
-diff -x config.log -x config.status -ru work/metahtml-5.091/configure 
work/metahtml-5.091/configure
---- work/metahtml-5.091/configure      1998-11-27 06:24:25.000000000 +0100
-+++ work/metahtml-5.091/configure      2013-04-02 23:06:25.410618776 +0200
-@@ -3930,15 +3930,6 @@
-   echo "$ac_t""no" 1>&6
- fi
- 
--   if test -f /usr/lib/libreadline.a ; then
--     echo ""
--     echo "You have the GNU Readline library already installed in your"
--     echo "system.  However, since it was found in the standard location,"
--     echo "we assume that it has some known broken behavior, and we aren't"
--     echo "going to use it.  We are building with the local version instead."
--     echo ""
--     unset LIBREADLINE
--   fi
-    if test "$LIBREADLINE" = ""; then
-       LIBREADLINE=readline/libreadline.a
-       LIBHISTORY=readline/libhistory.a

=== removed file 'pkg/gnu/metahtml/files/metahtml-5.091-gifq_c-add-errno_h.diff'
--- a/pkg/gnu/metahtml/files/metahtml-5.091-gifq_c-add-errno_h.diff     
2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/metahtml/files/metahtml-5.091-gifq_c-add-errno_h.diff     
1970-01-01 00:00:00 +0000
@@ -1,11 +0,0 @@
-diff -x config.log -x config.status -ru work/metahtml-5.091/libgd/gifq.c 
work/metahtml-5.091/libgd/gifq.c
---- work/metahtml-5.091/libgd/gifq.c   1999-04-08 20:40:15.000000000 +0200
-+++ work/metahtml-5.091/libgd/gifq.c   2013-04-02 23:24:54.150680218 +0200
-@@ -10,6 +10,7 @@
- #include <string.h>
- #include <sys/types.h>
- #include <ctype.h>
-+#include <errno.h>
- 
- #include "gd.h"
- 

=== removed file 'pkg/gnu/metahtml/files/metahtml-5.091-make-gd_o-w-fpic.diff'
--- a/pkg/gnu/metahtml/files/metahtml-5.091-make-gd_o-w-fpic.diff       
2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/metahtml/files/metahtml-5.091-make-gd_o-w-fpic.diff       
1970-01-01 00:00:00 +0000
@@ -1,13 +0,0 @@
-diff -x config.log -x config.status -ru work/metahtml-5.091/libgd/Makefile 
work/metahtml-5.091/libgd/Makefile
---- work/metahtml-5.091/libgd/Makefile 1999-06-01 16:03:58.000000000 +0200
-+++ work/metahtml-5.091/libgd/Makefile 2013-04-03 00:28:10.107557239 +0200
-@@ -58,6 +58,9 @@
- giftogd: giftogd.o libgd.a gd.h
-       $(CC) giftogd.o -o giftogd      $(LIBS) 
- 
-+gd.o: gd.c
-+      $(CC) -fPIC -c -o $@ $(CFLAGS) $<
-+
- libgd.a: gd.o gdfontt.o gdfonts.o gdfontmb.o gdfontl.o gdfontg.o \
-       gd.h gdfontt.h gdfonts.h gdfontmb.h gdfontl.h gdfontg.h
-       rm -f libgd.a

=== removed directory 'pkg/gnu/mig'
=== removed file 'pkg/gnu/mig/Makefile'
--- a/pkg/gnu/mig/Makefile      2016-12-19 04:38:11 +0000
+++ b/pkg/gnu/mig/Makefile      1970-01-01 00:00:00 +0000
@@ -1,43 +0,0 @@
-# Copyright © 2013, 2015 Brandon Invergo <brandon@invergo.net>
-#
-# This file is part of GSRC.
-#
-# GSRC is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# GSRC is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-# License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GSRC.  If not, see <http://www.gnu.org/licenses/>.
-
-NAME = MIG
-GARNAME = mig
-GARVERSION = 1.8
-HOME_URL = https://gnu.org/software/mig
-DESCRIPTION = Mach 3.0 interface generator for the Hurd
-define BLURB
-MIG is an interface generator for the Mach microkernel.  It is used
-to support inter-process communication in the Hurd.  It generates C
-code, which is then to be compiled and linked to the client and
-server programs.
-endef
-
-######################################################################
-
-MASTER_SITES = $(MASTER_GNU)
-MASTER_SUBDIR = $(GARNAME)/
-DISTFILES = $(DISTNAME).tar.bz2
-SIGFILES = $(DISTNAME).tar.bz2.sig
-
-BUILDDEPS = gnumach
-LIBDEPS =
-
-######################################################################
-
-include ../../../gar/gar.lib/auto.mk
-include config.mk

=== removed file 'pkg/gnu/mig/config.mk'
--- a/pkg/gnu/mig/config.mk     2016-06-17 19:08:15 +0000
+++ b/pkg/gnu/mig/config.mk     1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-## Configuration options for mig ##
-
-CONFIGURE_OPTS ?= 
-BUILD_OPTS ?=

=== removed file 'pkg/gnu/mig/gpg-keyring'
Binary files a/pkg/gnu/mig/gpg-keyring  2016-06-17 19:08:15 +0000 and 
b/pkg/gnu/mig/gpg-keyring 1970-01-01 00:00:00 +0000 differ
=== removed file 'pkg/gnu/mig/gpg-keyring.old'
Binary files a/pkg/gnu/mig/gpg-keyring.old      2016-06-17 19:08:15 +0000 and 
b/pkg/gnu/mig/gpg-keyring.old     1970-01-01 00:00:00 +0000 differ
=== removed file 'pkg/gnu/mig/sha256sums'
--- a/pkg/gnu/mig/sha256sums    2016-12-19 04:38:11 +0000
+++ b/pkg/gnu/mig/sha256sums    1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-9ca8bcae0c30a60900cfa56d960d1befead050cae6912db2958d673c9eb1b5e7  
download/mig-1.8.tar.bz2
-35e416a0c472366164188a5ce2193f91fc4c8e5fde682b5ca19c0722af0e35f8  
download/mig-1.8.tar.bz2.sig


reply via email to

[Prev in Thread] Current Thread [Next in Thread]