fix test-poll compilation failure on Cygwin
[gnulib.git] / MODULES.html.sh
index 42c8122..486b451 100755 (executable)
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-# Copyright (C) 2002-2005 Free Software Foundation, Inc.
+# Copyright (C) 2002-2008 Free Software Foundation, Inc.
 #
-# This program is free software; you can redistribute it and/or modify
+# This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-# Usage: MODULES.html.sh > MODULES.html
+# Usage: MODULES.html.sh [--git-urls] > MODULES.html
 
 # Extend the PATH so that gnulib-tool is found.
 PATH=`dirname "$0"`:$PATH; export PATH
 
-POSIX2001_URL='http://www.opengroup.org/onlinepubs/007904975/'
+POSIX2001_URL='http://www.opengroup.org/susv3'
 case $USER in
   bruno )
-    POSIX2001_URL='file:/packages/www/www.opengroup.org/susv3/' ;;
+    POSIX2001_URL='file:/packages/www/www.opengroup.org/susv3' ;;
 esac
 
+repo_url_prefix=
+repo_url_suffix=
+if test $# != 0; then
+  case "$1" in
+    --git-urls)
+      # Generate URLs to the official gnulib git repository.
+      repo_url_prefix='http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f='
+      repo_url_suffix=''
+      ;;
+  esac
+fi
+# For sed replacements: Escape the '&'.
+repo_url_suffix_repl=`echo "$repo_url_suffix" | sed -e 's,[&],\\\&,'`
+
 sed_lt='s,<,\&lt;,g'
 sed_gt='s,>,\&gt;,g'
 sed_escape_dot='s,\.,\\.,g'
@@ -254,7 +267,6 @@ conj
 conjf
 conjl
 connect
-contents
 copysign
 copysignf
 copysignl
@@ -331,7 +343,6 @@ erfcl
 erff
 erfl
 errno
-exec
 execl
 execle
 execlp
@@ -1141,7 +1152,6 @@ timezone
 tmpfile
 tmpnam
 toascii
-toc
 tolower
 toupper
 towctrans
@@ -1243,8 +1253,62 @@ yn
 ' | sed -e "$sed_alt1" | tr -d "$trnl" | sed -e "$sed_alt2" -e "$sed_alt3"`
 
 indent=""
-missed_modules=`gnulib-tool --list`
-missed_files=`ls -d lib/* m4/* | sed -e /CVS/d -e /README/d -e /ChangeLog/d -e /Makefile/d -e /TODO/d -e '/~$/d'`
+seen_modules=
+seen_files=
+
+# func_exit STATUS
+# exit with status
+func_exit ()
+{
+  (exit $1); exit $1
+}
+
+# func_tmpdir
+# creates a temporary directory.
+# Sets variable
+# - tmp             pathname of freshly created temporary directory
+func_tmpdir ()
+{
+  # Use the environment variable TMPDIR, falling back to /tmp. This allows
+  # users to specify a different temporary directory, for example, if their
+  # /tmp is filled up or too small.
+  : ${TMPDIR=/tmp}
+  {
+    # Use the mktemp program if available. If not available, hide the error
+    # message.
+    tmp=`(umask 077 && mktemp -d "$TMPDIR/MDXXXXXX") 2>/dev/null` &&
+    test -n "$tmp" && test -d "$tmp"
+  } ||
+  {
+    # Use a simple mkdir command. It is guaranteed to fail if the directory
+    # already exists.  $RANDOM is bash specific and expands to empty in shells
+    # other than bash, ksh and zsh.  Its use does not increase security;
+    # rather, it minimizes the probability of failure in a very cluttered /tmp
+    # directory.
+    tmp=$TMPDIR/MD$$-$RANDOM
+    (umask 077 && mkdir "$tmp")
+  } ||
+  {
+    echo "$0: cannot create a temporary directory in $TMPDIR" >&2
+    func_exit 1
+  }
+}
+
+# func_append var value
+# appends the given value to the shell variable var.
+if ( foo=bar; foo+=baz && test "$foo" = barbaz ) >/dev/null 2>&1; then
+  # Use bash's += operator. It reduces complexity of appending repeatedly to
+  # a single variable from O(n^2) to O(n).
+  func_append ()
+  {
+    eval "$1+=\"\$2\""
+  }
+else
+  func_append ()
+  {
+    eval "$1=\"\$$1\$2\""
+  }
+fi
 
 # func_echo line
 # outputs line with indentation.
@@ -1337,7 +1401,21 @@ func_module ()
     element='<A HREF="#module='$1'">'$1'</A>'
     func_echo "<TD ALIGN=LEFT VALIGN=TOP WIDTH=\"20%\">$element"
 
-    element=`gnulib-tool --extract-description $1 | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" | sed -e 's,^, ,' | sed -e 's,\([^a-zA-Z]\)'"${posix_functions}"'(),\1<A HREF="'"$POSIX2001_URL"'functions/\2.html">\2</A>(),g' | sed -e 's,^ ,,'`
+    # Rendering the description:
+    # - Change the symbol() syntax as suitable for documentation, removing the
+    #   parentheses (as per GNU standards, section "GNU Manuals").
+    # - Flag the remaining symbol() constructs as errors.
+    # - Change 'xxx' to <CODE>xxx</CODE>.
+    element=`gnulib-tool --extract-description $1 \
+             | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \
+                   -e 's,^, ,' -e 's,$, ,' \
+                   -e 's,\([^a-zA-Z_]\)'"${posix_functions}"'() \(function\|macro\),\1<A HREF="'"$POSIX2001_URL"'xsh/\2.html">\2</A> \3,g' \
+                   -e 's,\([^a-zA-Z_]\)'"${posix_functions}"' \(function\|macro\),\1<A HREF="'"$POSIX2001_URL"'xsh/\2.html">\2</A> \3,g' \
+                   -e 's,\([^a-zA-Z_]\)'"${posix_functions}"'(),\1<A HREF="'"$POSIX2001_URL"'xsh/\2.html">\2</A> <SPAN STYLE="color:#FF0000;">what?? If you mean a function\, please say so.</SPAN>,g' \
+                   -e 's,\([^a-zA-Z_]\)\([a-zA-Z_][a-zA-Z0-9_]*\)() \(function\|macro\),\1\2 \3,g' \
+                   -e 's,\([^a-zA-Z_]\)\([a-zA-Z_][a-zA-Z0-9_]*\)(),\1\2 <SPAN STYLE="color:#FF0000;">what?? If you mean a function\, please say so.</SPAN>,g' \
+                   -e 's, '"'"'\([a-zA-Z0-9_ -]*\)'"'"'\([^a-zA-Z0-9_]\), <CODE>\1</CODE>\2,g' \
+                   -e 's,^ ,,' -e 's, $,,'`
     func_echo "<TD ALIGN=LEFT VALIGN=TOP WIDTH=\"80%\">$element"
 
     func_end TR
@@ -1346,39 +1424,56 @@ func_module ()
 
     func_begin TR
 
-    element='<A NAME="module='$1'"></A><A HREF="modules/'$1'">'$1'</A>'
+    element='<A NAME="module='$1'"></A><A HREF="'$repo_url_prefix'modules/'$1$repo_url_suffix'">'$1'</A>'
     func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
 
-    element=`gnulib-tool --extract-include-directive $1 | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" | sed -e 's,^#include "\(.*\)"$,#include "<A HREF="lib/\1">\1</A>",' -e 's,^#include &lt;'"${posix_headers}"'\.h&gt;$,#include \&lt;<A HREF="'"$POSIX2001_URL"'basedefs/\1.h.html">\1.h</A>\&gt;,' | sed -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
+    includes=`gnulib-tool --extract-include-directive $1`
+    files=`gnulib-tool --extract-filelist $1 \
+           | grep -v '^m4/gnulib-common\.m4$'`
+    element=`echo "$includes" \
+             | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \
+                   -e 's,^#include "\(.*\)"$,#include "<A HREF="'$repo_url_prefix'lib/\1'$repo_url_suffix_repl'">\1</A>",' \
+                   -e 's,^#include &lt;'"${posix_headers}"'\.h&gt;$,#include \&lt;<A HREF="'"$POSIX2001_URL"'xbd/\1.h.html">\1.h</A>\&gt;,' \
+                   -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
     test -n "$element" || element='---'
     func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
 
     sed_choose_unconditional_nonstandard_include='s,^#include "\(.*\)"$,\1,p'
-    includefile=`gnulib-tool --extract-include-directive $1 | sed -n -e "$sed_choose_unconditional_nonstandard_include" | sed -e "$sed_escape_dot" | tr -d "$trnl"`
+    includefile=`echo "$includes" \
+                 | sed -n -e "$sed_choose_unconditional_nonstandard_include" \
+                 | sed -e "$sed_escape_dot" | tr -d "$trnl"`
     sed_choose_lib_files='s,^lib/\(.*\)$,\1,p'
-    element=`gnulib-tool --extract-filelist $1 | sed -e '/^$/d' | sed -n -e "$sed_choose_lib_files" | sed -e '/^'"${includefile}"'$/d' | sed -e 's,^\(.*\)$,<A HREF="lib/\1">\1</A>,' | sed -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
+    element=`echo "$files" \
+             | sed -e '/^$/d' \
+             | sed -n -e "$sed_choose_lib_files" \
+             | sed -e '\|^'"${includefile}"'$|d' \
+                   -e 's,^\(.*\)$,<A HREF="'$repo_url_prefix'lib/\1'$repo_url_suffix_repl'">\1</A>,' \
+                   -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
     test -n "$element" || element='---'
     func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
 
     sed_choose_m4_files='s,^m4/\(.*\)$,\1,p'
-    element=`(gnulib-tool --extract-filelist $1 | sed -e "$sed_remove_trailing_empty_line" | sed -n -e "$sed_choose_m4_files" | sed -e '/^onceonly/d' | sed -e 's,^\(.*\)$,<A HREF="m4/\1">\1</A>,'; gnulib-tool --extract-autoconf-snippet $1 | sed -e "$sed_remove_trailing_empty_line") | sed -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
+    element=`(echo "$files" \
+              | sed -e "$sed_remove_trailing_empty_line" \
+              | sed -n -e "$sed_choose_m4_files" \
+              | sed -e '/^onceonly/d' \
+                    -e 's,^\(.*\)$,<A HREF="'$repo_url_prefix'm4/\1'$repo_url_suffix_repl'">\1</A>,'; \
+              gnulib-tool --extract-autoconf-snippet $1 \
+              | sed -e "$sed_remove_trailing_empty_line") \
+              | sed -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
     test -n "$element" || element='---'
     func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
 
-    element=`gnulib-tool --extract-dependencies $1 | sed -e "$sed_remove_trailing_empty_line" | sed -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
+    element=`gnulib-tool --extract-dependencies $1 \
+             | sed -e "$sed_remove_trailing_empty_line" \
+                   -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
     test -n "$element" || element='---'
     func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
 
     func_end TR
 
-    missed_modules=`echo "$missed_modules" | sed -e '/^'"$1"'$/d'`
-
-    files=`gnulib-tool --extract-filelist $1`
-    sed_removal_prefix='s,^,/^,'
-    sed_removal_suffix='s,$,\$/d,'
-    sed_remove_files=`echo '{'; for file in $files; do echo $file | sed -e "$sed_escape_dot" -e "$sed_escape_slash" | sed -e "$sed_removal_prefix" -e "$sed_removal_suffix"; done; echo '}'`
-    missed_files=`echo "$missed_files" | sed -e "$sed_remove_files"`
-
+    func_append seen_modules " $1"
+    func_append seen_files " $files"
   fi
 }
 
@@ -1397,9 +1492,7 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
-  func_module c-bs-a
-  func_module assert
-  func_module dummy
+  func_module stdlib
   func_module exit
   func_module atexit
   func_module strtod
@@ -1412,7 +1505,6 @@ func_all_modules ()
   func_module memset
   func_module strcspn
   func_module strpbrk
-  func_module strstr
   func_module strerror
   func_module mktime
   func_end_table
@@ -1424,6 +1516,39 @@ func_all_modules ()
   func_wrap H2
   func_echo "$element"
 
+  element="Diagnostics <assert.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap ansic_enh_assert_diagnostics
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module assert
+  func_module verify
+  func_end_table
+
+  element="Mathematics <math.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap ansic_enh_math
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module fpieee
+  func_end_table
+
+  element="Input/output <stdio.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap ansic_enh_stdio
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module fflush
+  func_module fseterr
+  func_module tmpfile
+  func_end_table
+
   element="Memory management functions <stdlib.h>"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
   func_section_wrap ansic_enh_stdlib_memory
@@ -1439,6 +1564,16 @@ func_all_modules ()
   func_module pagealign_alloc
   func_end_table
 
+  element="Sorting functions <stdlib.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap ansic_enh_stdlib_sorting
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module mpsort
+  func_end_table
+
   element="Date and time <time.h>"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
   func_section_wrap ansic_enh_time_datetime
@@ -1446,6 +1581,7 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
+  func_module fprintftime
   func_module strftime
   func_end_table
 
@@ -1466,8 +1602,9 @@ func_all_modules ()
   func_module xalloc-die
   func_module alloca
   func_module alloca-opt
-  func_module allocsa
-  func_module xallocsa
+  func_module malloca
+  func_module xmalloca
+  func_module xmemdup0
   func_end_table
 
   element="Integer arithmetic functions <stdlib.h>"
@@ -1477,6 +1614,7 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
+  func_module count-one-bits
   func_module gcd
   func_module minmax
   func_end_table
@@ -1490,6 +1628,7 @@ func_all_modules ()
   func_begin_table
   func_module putenv
   func_module setenv
+  func_module unsetenv
   func_module xsetenv
   func_end_table
 
@@ -1511,21 +1650,44 @@ func_all_modules ()
 
   func_begin_table
   func_module bcopy
+  func_module memchr2
   func_module memmem
+  func_module memmem-simple
   func_module mempcpy
   func_module memrchr
+  func_module rawmemchr
   func_module stpcpy
   func_module stpncpy
+  func_module c-strcase
   func_module strcase
+  func_module c-strcaseeq
+  func_module c-strcasestr
+  func_module strcasestr
+  func_module strcasestr-simple
   func_module strchrnul
   func_module strdup
+  func_module streq
   func_module strnlen
+  func_module strnlen1
   func_module strndup
   func_module strsep
-  #func_module fstrcmp
+  func_module strstr
+  func_module c-strstr
+  func_module trim
+  func_module fstrcmp
   func_module xstrndup
   func_end_table
 
+  element="Mathematics <math.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap ansic_ext_math
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module printf-frexp
+  func_end_table
+
   element="Numeric conversion functions <stdlib.h>"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
   func_section_wrap ansic_ext_stdlib_conv
@@ -1537,6 +1699,7 @@ func_all_modules ()
   func_module c-strtold
   func_module xstrtod
   func_module xstrtol
+  func_module xstrtold
   func_end_table
 
   element="Date and time <time.h>"
@@ -1562,6 +1725,7 @@ func_all_modules ()
   func_module fwriteerror
   func_module vasnprintf
   func_module vasprintf
+  func_module xprintf
   func_module xvasprintf
   func_end_table
 
@@ -1574,6 +1738,7 @@ func_all_modules ()
   func_begin_table
   func_module fatal-signal
   func_module raise
+  func_module strsignal
   func_end_table
 
   element="Command-line arguments"
@@ -1589,15 +1754,71 @@ func_all_modules ()
   func_module long-options
   func_end_table
 
-  element="Cryptographic computations"
+  element="Container data structures"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap ansic_ext_container
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module list
+  func_module array-list
+  func_module carray-list
+  func_module linked-list
+  func_module avltree-list
+  func_module rbtree-list
+  func_module linkedhash-list
+  func_module avltreehash-list
+  func_module rbtreehash-list
+  func_module sublist
+  func_module oset
+  func_module array-oset
+  func_module avltree-oset
+  func_module rbtree-oset
+  func_end_table
+
+  element="Cryptographic computations (low-level)"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
   func_section_wrap ansic_ext_crypto
   func_wrap H3
   func_echo "$element"
 
   func_begin_table
-  func_module md5
-  func_module sha1
+  func_module crypto/arcfour
+  func_module crypto/arctwo
+  func_module crypto/des
+  func_module crypto/hmac-md5
+  func_module crypto/hmac-sha1
+  func_module crypto/md2
+  func_module crypto/md4
+  func_module crypto/md5
+  func_module crypto/rijndael
+  func_module crypto/sha1
+  func_module crypto/sha256
+  func_module crypto/sha512
+  func_end_table
+
+  element="Cryptographic computations (high-level)"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap ansic_ext_crypto2
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module crypto/gc
+  func_module crypto/gc-arcfour
+  func_module crypto/gc-arctwo
+  func_module crypto/gc-camellia
+  func_module crypto/gc-des
+  func_module crypto/gc-hmac-md5
+  func_module crypto/gc-hmac-sha1
+  func_module crypto/gc-md2
+  func_module crypto/gc-md4
+  func_module crypto/gc-md5
+  func_module crypto/gc-pbkdf2-sha1
+  func_module crypto/gc-random
+  func_module crypto/gc-rijndael
+  func_module crypto/gc-sha1
   func_end_table
 
   element="Misc"
@@ -1608,14 +1829,22 @@ func_all_modules ()
 
   func_begin_table
   func_module base64
+  func_module check-version
+  func_module crc
   func_module diacrit
+  func_module diffseq
   func_module getline
+  func_module getdelim
   func_module getnline
   func_module getndelim2
   func_module linebuffer
+  func_module memxor
   func_module obstack
+  func_module obstack-printf
+  func_module obstack-printf-posix
   func_module hash-pjw
   func_module hash
+  func_module readline
   func_module readtokens
   func_module readtokens0
   func_module strverscmp
@@ -1626,14 +1855,19 @@ func_all_modules ()
   func_wrap H2
   func_echo "$element"
 
-  element="Keywords"
+  element="Core language properties"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
-  func_section_wrap isoc_sup_keywords
+  func_section_wrap isoc_core_properties
   func_wrap H3
   func_echo "$element"
 
   func_begin_table
-  func_module restrict
+  func_module flexmember
+  func_module fpucw
+  func_module func
+  func_module inline
+  func_module longlong
+  func_module vararrays
   func_end_table
 
   element="Sizes of integer types <limits.h>"
@@ -1643,7 +1877,17 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
-  func_module ullong_max
+  func_module size_max
+  func_end_table
+
+  element="Variable arguments <stdarg.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap isoc_sup_stdarg
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module stdarg
   func_end_table
 
   element="Boolean type and values <stdbool.h>"
@@ -1673,6 +1917,7 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
+  func_module stdio
   func_module snprintf
   func_module vsnprintf
   func_end_table
@@ -1695,10 +1940,43 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
+  func_module imaxabs
+  func_module imaxdiv
+  func_module inttypes
   func_module strtoimax
   func_module strtoumax
   func_end_table
 
+  element="Extended multibyte and wide character utilities <wchar.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap isoc_sup_wchar
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module wchar
+  func_end_table
+
+  element="Wide character classification and mapping utilities <wctype.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap isoc_sup_wctype
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module wctype
+  func_end_table
+
+  element="Characteristics of floating types <float.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap isoc_sup_float
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module float
+  func_end_table
+
   element="Mathematics <math.h>"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
   func_section_wrap isoc_sup_math
@@ -1706,7 +1984,35 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
+  func_module ceil
+  func_module ceilf
+  func_module ceill
+  func_module floor
+  func_module floorf
+  func_module floorl
+  func_module frexp
+  func_module frexp-nolibm
+  func_module frexpl
+  func_module frexpl-nolibm
+  func_module isfinite
+  func_module isinf
+  func_module isnan
+  func_module isnanf
+  func_module isnanf-nolibm
+  func_module isnand
+  func_module isnand-nolibm
+  func_module isnanl
+  func_module isnanl-nolibm
+  func_module ldexpl
+  func_module math
   func_module mathl
+  func_module round
+  func_module roundf
+  func_module roundl
+  func_module signbit
+  func_module trunc
+  func_module truncf
+  func_module truncl
   func_end_table
 
   element="Enhancements for ISO C 99 functions"
@@ -1714,7 +2020,14 @@ func_all_modules ()
   func_wrap H2
   func_echo "$element"
 
+  element="Input/output <stdio.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap isoc_enh_stdio
+  func_wrap H3
+  func_echo "$element"
+
   func_begin_table
+  func_module printf-safe
   func_end_table
 
   element="Extra functions based on ISO C 99"
@@ -1722,6 +2035,16 @@ func_all_modules ()
   func_wrap H2
   func_echo "$element"
 
+  element="Mathematics <math.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap isoc_ext_math
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module printf-frexpl
+  func_end_table
+
   element="Numeric conversion functions <stdlib.h>"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
   func_section_wrap isoc_ext_stdlib_conv
@@ -1729,19 +2052,46 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
+  func_module intprops
   func_module inttostr
   func_module xstrtoimax
   func_module xstrtoumax
   func_end_table
 
+  element="Extended multibyte and wide character utilities <wchar.h>"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap isoc_ext_wchar_mb
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module mbchar
+  func_module mbiter
+  func_module mbuiter
+  func_module mbfile
+  func_end_table
+
   element="Support for systems lacking POSIX:2001"
   func_section_wrap posix_sup
   func_wrap H2
   func_echo "$element"
 
   func_begin_table
+  func_module arpa_inet
+  func_module calloc-posix
   func_module chown
   func_module dup2
+  func_module environ
+  func_module EOVERFLOW
+  func_module fchdir
+  func_module fcntl
+  func_module fopen
+  func_module fprintf-posix
+  func_module freopen
+  func_module fseek
+  func_module fseeko
+  func_module ftell
+  func_module ftello
   func_module ftruncate
   func_module getaddrinfo
   func_module getcwd
@@ -1750,22 +2100,74 @@ func_all_modules ()
   func_module getlogin_r
   func_module getsubopt
   func_module gettimeofday
+  func_module iconv_open
   func_module inet_ntop
+  func_module inet_pton
+  func_module locale
+  func_module lseek
+  func_module lstat
+  func_module malloc-posix
   func_module mkdir
-  func_module mkstemp
   func_module mkdtemp
+  func_module mkstemp
+  func_module netinet_in
+  func_module open
   func_module poll
+  func_module printf-posix
   func_module readlink
-  func_module stat
-  func_module lstat
+  func_module realloc-posix
+  func_module signal
+  func_module sleep
+  func_module snprintf-posix
+  func_module sprintf-posix
+  func_module string
+  func_module strings
+  func_module tempname
+  func_module time
   func_module time_r
   func_module timespec
   func_module nanosleep
   func_module regex
   func_module rename
   func_module rmdir
+  func_module search
+  func_module sigaction
+  func_module sigprocmask
+  func_module socklen
+  func_module ssize_t
+  func_module strptime
   func_module strtok_r
+  func_module sys_select
+  func_module sys_socket
+  func_module sys_stat
+  func_module sys_time
+  func_module tsearch
+  func_module unistd
   func_module utime
+  func_module vasnprintf-posix
+  func_module vasprintf-posix
+  func_module vfprintf-posix
+  func_module vprintf-posix
+  func_module vsnprintf-posix
+  func_module vsprintf-posix
+  func_module wcwidth
+  func_end_table
+
+  element="Compatibility checks for POSIX:2001 functions"
+  func_section_wrap posix_compat
+  func_wrap H2
+  func_echo "$element"
+
+  func_begin_table
+  func_module clock-time
+  func_module d-ino
+  func_module d-type
+  func_module link-follow
+  func_module rename-dest-slash
+  func_module rmdir-errno
+  func_module unlink-busy
+  func_module winsz-ioctl
+  func_module winsz-termios
   func_end_table
 
   element="Enhancements for POSIX:2001 functions"
@@ -1774,12 +2176,15 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
+  func_module chdir-long
   func_module dirname
   func_module getopt
+  func_module iconv_open-utf
   func_module unistd-safer
   func_module fnmatch
   func_module fnmatch-posix
   func_module fnmatch-gnu
+  func_module glob
   func_module exclude
   func_end_table
 
@@ -1788,6 +2193,17 @@ func_all_modules ()
   func_wrap H2
   func_echo "$element"
 
+  element="Input/output"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap posix_ext_stdio
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module xprintf-posix
+  func_module xvasprintf-posix
+  func_end_table
+
   element="Numeric conversion functions"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
   func_section_wrap posix_ext_conv
@@ -1806,36 +2222,66 @@ func_all_modules ()
 
   func_begin_table
   func_module acl
+  func_module areadlink
+  func_module areadlink-with-size
   func_module backupfile
   func_module canonicalize
+  func_module canonicalize-lgpl
+  func_module chdir-safer
+  func_module clean-temp
   func_module copy-file
-  func_module cycle-check
   func_module fsusage
   func_module dirfd
+  func_module double-slash-root
   func_module euidaccess
   func_module file-type
   func_module fileblocks
   func_module filemode
+  func_module filename
+  func_module filenamecat
   func_module fts
   func_module fts-lgpl
   func_module isdir
+  func_module lchmod
   func_module lchown
-  func_module makepath
+  func_module mkancesdirs
+  func_module mkdir-p
   func_module modechange
   func_module mountlist
-  func_module path-concat
-  func_module pathname
+  func_module openat
+  func_module openat-die
   func_module pathmax
+  func_module read-file
   func_module same
   func_module save-cwd
   func_module savedir
+  func_module savewd
+  func_module stat-macros
+  func_module stat-time
+  func_module tmpdir
   func_module unlinkdir
   func_module utimecmp
   func_module utimens
+  func_module write-any-file
   func_module xgetcwd
   func_module xreadlink
   func_end_table
 
+  element="File system as inode set"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap posix_ext_inodeset
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module cycle-check
+  func_module dev-ino
+  func_module file-set
+  func_module hash-triple
+  func_module i-ring
+  func_module same-inode
+  func_end_table
+
   element="File descriptor based Input/Output"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
   func_section_wrap posix_ext_filedesc
@@ -1843,11 +2289,13 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
+  func_module fcntl-safer
   func_module safe-read
   func_module safe-write
   func_module full-read
   func_module full-write
   func_module binary-io
+  func_module isapipe
   func_end_table
 
   element="File stream based Input/Output"
@@ -1857,11 +2305,24 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
-  func_module fpending
+  func_module close-stream
+  func_module closein
   func_module closeout
-  func_module stdio-safer
+  func_module fbufmode
+  func_module fopen-safer
+  func_module fpending
+  func_module fpurge
+  func_module freadable
+  func_module freadahead
+  func_module freading
+  func_module freadptr
+  func_module freadseek
+  func_module fwritable
+  func_module fwriting
   func_module getpass
   func_module getpass-gnu
+  func_module stdlib-safer
+  func_module tmpfile-safer
   func_end_table
 
   element="Users and groups"
@@ -1884,6 +2345,7 @@ func_all_modules ()
   func_echo "$element"
 
   func_begin_table
+  func_module gethrxtime
   func_module gettime
   func_module settime
   func_module posixtm
@@ -1899,6 +2361,36 @@ func_all_modules ()
   func_begin_table
   func_module xgethostname
   func_module canon-host
+  func_module sockets
+  func_end_table
+
+  element="Multithreading"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap posix_ext_thread
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module threadlib
+  func_module lock
+  func_module tls
+  func_module thread
+  func_module yield
+  func_module cond
+  func_module openmp
+  func_end_table
+
+  element="Signal handling"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap posix_ext_signal
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module c-stack
+  func_module libsigsegv
+  func_module sig2str
+  func_module sigpipe-die
   func_end_table
 
   element="Internationalization functions"
@@ -1909,10 +2401,30 @@ func_all_modules ()
 
   func_begin_table
   func_module gettext
+  func_module gettext-h
+  func_module propername
   func_module iconv
-  func_module iconvme
+  func_module striconv
+  func_module xstriconv
+  func_module striconveh
+  func_module striconveha
   func_module localcharset
   func_module hard-locale
+  func_module localename
+  func_module mbslen
+  func_module mbsnlen
+  func_module mbschr
+  func_module mbsrchr
+  func_module mbsstr
+  func_module mbscasecmp
+  func_module mbsncasecmp
+  func_module mbspcasecmp
+  func_module mbscasestr
+  func_module mbscspn
+  func_module mbspbrk
+  func_module mbsspn
+  func_module mbssep
+  func_module mbstok_r
   func_module mbswidth
   func_module memcasecmp
   func_module memcoll
@@ -1920,11 +2432,407 @@ func_all_modules ()
   func_module unicodeio
   func_module rpmatch
   func_module yesno
+  func_module bison-i18n
+  func_end_table
+
+  element="Unicode string functions"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap posix_ext_unicode
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module unitypes
   func_module ucs4-utf8
   func_module ucs4-utf16
+  func_module utf8-ucs4-unsafe
+  func_module utf16-ucs4-unsafe
   func_module utf8-ucs4
   func_module utf16-ucs4
-  func_module linebreak
+  func_module unistr/base
+  func_module unistr/u8-to-u16
+  func_module unistr/u8-to-u32
+  func_module unistr/u16-to-u8
+  func_module unistr/u16-to-u32
+  func_module unistr/u32-to-u8
+  func_module unistr/u32-to-u16
+  func_module unistr/u8-check
+  func_module unistr/u16-check
+  func_module unistr/u32-check
+  func_module unistr/u8-chr
+  func_module unistr/u16-chr
+  func_module unistr/u32-chr
+  func_module unistr/u8-cmp
+  func_module unistr/u16-cmp
+  func_module unistr/u32-cmp
+  func_module unistr/u8-cpy
+  func_module unistr/u16-cpy
+  func_module unistr/u32-cpy
+  func_module unistr/u8-cpy-alloc
+  func_module unistr/u16-cpy-alloc
+  func_module unistr/u32-cpy-alloc
+  func_module unistr/u8-endswith
+  func_module unistr/u16-endswith
+  func_module unistr/u32-endswith
+  func_module unistr/u8-mblen
+  func_module unistr/u16-mblen
+  func_module unistr/u32-mblen
+  func_module unistr/u8-mbsnlen
+  func_module unistr/u16-mbsnlen
+  func_module unistr/u32-mbsnlen
+  func_module unistr/u8-mbtouc-unsafe
+  func_module unistr/u16-mbtouc-unsafe
+  func_module unistr/u32-mbtouc-unsafe
+  func_module unistr/u8-mbtouc
+  func_module unistr/u16-mbtouc
+  func_module unistr/u32-mbtouc
+  func_module unistr/u8-mbtoucr
+  func_module unistr/u16-mbtoucr
+  func_module unistr/u32-mbtoucr
+  func_module unistr/u8-move
+  func_module unistr/u16-move
+  func_module unistr/u32-move
+  func_module unistr/u8-next
+  func_module unistr/u16-next
+  func_module unistr/u32-next
+  func_module unistr/u8-prev
+  func_module unistr/u16-prev
+  func_module unistr/u32-prev
+  func_module unistr/u8-set
+  func_module unistr/u16-set
+  func_module unistr/u32-set
+  func_module unistr/u8-startswith
+  func_module unistr/u16-startswith
+  func_module unistr/u32-startswith
+  func_module unistr/u8-stpcpy
+  func_module unistr/u16-stpcpy
+  func_module unistr/u32-stpcpy
+  func_module unistr/u8-stpncpy
+  func_module unistr/u16-stpncpy
+  func_module unistr/u32-stpncpy
+  func_module unistr/u8-strcat
+  func_module unistr/u16-strcat
+  func_module unistr/u32-strcat
+  func_module unistr/u8-strchr
+  func_module unistr/u16-strchr
+  func_module unistr/u32-strchr
+  func_module unistr/u8-strcmp
+  func_module unistr/u16-strcmp
+  func_module unistr/u32-strcmp
+  func_module unistr/u8-strcpy
+  func_module unistr/u16-strcpy
+  func_module unistr/u32-strcpy
+  func_module unistr/u8-strcspn
+  func_module unistr/u16-strcspn
+  func_module unistr/u32-strcspn
+  func_module unistr/u8-strdup
+  func_module unistr/u16-strdup
+  func_module unistr/u32-strdup
+  func_module unistr/u8-strlen
+  func_module unistr/u16-strlen
+  func_module unistr/u32-strlen
+  func_module unistr/u8-strmblen
+  func_module unistr/u16-strmblen
+  func_module unistr/u32-strmblen
+  func_module unistr/u8-strmbtouc
+  func_module unistr/u16-strmbtouc
+  func_module unistr/u32-strmbtouc
+  func_module unistr/u8-strncat
+  func_module unistr/u16-strncat
+  func_module unistr/u32-strncat
+  func_module unistr/u8-strncmp
+  func_module unistr/u16-strncmp
+  func_module unistr/u32-strncmp
+  func_module unistr/u8-strncpy
+  func_module unistr/u16-strncpy
+  func_module unistr/u32-strncpy
+  func_module unistr/u8-strnlen
+  func_module unistr/u16-strnlen
+  func_module unistr/u32-strnlen
+  func_module unistr/u8-strpbrk
+  func_module unistr/u16-strpbrk
+  func_module unistr/u32-strpbrk
+  func_module unistr/u8-strrchr
+  func_module unistr/u16-strrchr
+  func_module unistr/u32-strrchr
+  func_module unistr/u8-strspn
+  func_module unistr/u16-strspn
+  func_module unistr/u32-strspn
+  func_module unistr/u8-strstr
+  func_module unistr/u16-strstr
+  func_module unistr/u32-strstr
+  func_module unistr/u8-strtok
+  func_module unistr/u16-strtok
+  func_module unistr/u32-strtok
+  func_module unistr/u8-uctomb
+  func_module unistr/u16-uctomb
+  func_module unistr/u32-uctomb
+  func_module uniconv/base
+  func_module uniconv/u8-conv-from-enc
+  func_module uniconv/u16-conv-from-enc
+  func_module uniconv/u32-conv-from-enc
+  func_module uniconv/u8-conv-to-enc
+  func_module uniconv/u16-conv-to-enc
+  func_module uniconv/u32-conv-to-enc
+  func_module uniconv/u8-strconv-from-enc
+  func_module uniconv/u16-strconv-from-enc
+  func_module uniconv/u32-strconv-from-enc
+  func_module uniconv/u8-strconv-to-enc
+  func_module uniconv/u16-strconv-to-enc
+  func_module uniconv/u32-strconv-to-enc
+  func_module uniconv/u8-strconv-from-locale
+  func_module uniconv/u16-strconv-from-locale
+  func_module uniconv/u32-strconv-from-locale
+  func_module uniconv/u8-strconv-to-locale
+  func_module uniconv/u16-strconv-to-locale
+  func_module uniconv/u32-strconv-to-locale
+  func_module unistdio/base
+  func_module unistdio/u-printf-args
+  func_module unistdio/ulc-asnprintf
+  func_module unistdio/ulc-asprintf
+  func_module unistdio/ulc-fprintf
+  func_module unistdio/ulc-printf-parse
+  func_module unistdio/ulc-snprintf
+  func_module unistdio/ulc-sprintf
+  func_module unistdio/ulc-vasnprintf
+  func_module unistdio/ulc-vasprintf
+  func_module unistdio/ulc-vfprintf
+  func_module unistdio/ulc-vsnprintf
+  func_module unistdio/ulc-vsprintf
+  func_module unistdio/u8-asnprintf
+  func_module unistdio/u8-asprintf
+  func_module unistdio/u8-printf-parse
+  func_module unistdio/u8-snprintf
+  func_module unistdio/u8-sprintf
+  func_module unistdio/u8-vasnprintf
+  func_module unistdio/u8-vasprintf
+  func_module unistdio/u8-vsnprintf
+  func_module unistdio/u8-vsprintf
+  func_module unistdio/u8-u8-asnprintf
+  func_module unistdio/u8-u8-asprintf
+  func_module unistdio/u8-u8-snprintf
+  func_module unistdio/u8-u8-sprintf
+  func_module unistdio/u8-u8-vasnprintf
+  func_module unistdio/u8-u8-vasprintf
+  func_module unistdio/u8-u8-vsnprintf
+  func_module unistdio/u8-u8-vsprintf
+  func_module unistdio/u16-asnprintf
+  func_module unistdio/u16-asprintf
+  func_module unistdio/u16-printf-parse
+  func_module unistdio/u16-snprintf
+  func_module unistdio/u16-sprintf
+  func_module unistdio/u16-vasnprintf
+  func_module unistdio/u16-vasprintf
+  func_module unistdio/u16-vsnprintf
+  func_module unistdio/u16-vsprintf
+  func_module unistdio/u16-u16-asnprintf
+  func_module unistdio/u16-u16-asprintf
+  func_module unistdio/u16-u16-snprintf
+  func_module unistdio/u16-u16-sprintf
+  func_module unistdio/u16-u16-vasnprintf
+  func_module unistdio/u16-u16-vasprintf
+  func_module unistdio/u16-u16-vsnprintf
+  func_module unistdio/u16-u16-vsprintf
+  func_module unistdio/u32-asnprintf
+  func_module unistdio/u32-asprintf
+  func_module unistdio/u32-printf-parse
+  func_module unistdio/u32-snprintf
+  func_module unistdio/u32-sprintf
+  func_module unistdio/u32-vasnprintf
+  func_module unistdio/u32-vasprintf
+  func_module unistdio/u32-vsnprintf
+  func_module unistdio/u32-vsprintf
+  func_module unistdio/u32-u32-asnprintf
+  func_module unistdio/u32-u32-asprintf
+  func_module unistdio/u32-u32-snprintf
+  func_module unistdio/u32-u32-sprintf
+  func_module unistdio/u32-u32-vasnprintf
+  func_module unistdio/u32-u32-vasprintf
+  func_module unistdio/u32-u32-vsnprintf
+  func_module unistdio/u32-u32-vsprintf
+  func_module uniname/base
+  func_module uniname/uniname
+  func_module unictype/base
+  func_module unictype/bidicategory-byname
+  func_module unictype/bidicategory-name
+  func_module unictype/bidicategory-of
+  func_module unictype/bidicategory-test
+  func_module unictype/bidicategory-all
+  func_module unictype/block-list
+  func_module unictype/block-of
+  func_module unictype/block-test
+  func_module unictype/block-all
+  func_module unictype/category-C
+  func_module unictype/category-Cc
+  func_module unictype/category-Cf
+  func_module unictype/category-Cn
+  func_module unictype/category-Co
+  func_module unictype/category-Cs
+  func_module unictype/category-L
+  func_module unictype/category-Ll
+  func_module unictype/category-Lm
+  func_module unictype/category-Lo
+  func_module unictype/category-Lt
+  func_module unictype/category-Lu
+  func_module unictype/category-M
+  func_module unictype/category-Mc
+  func_module unictype/category-Me
+  func_module unictype/category-Mn
+  func_module unictype/category-N
+  func_module unictype/category-Nd
+  func_module unictype/category-Nl
+  func_module unictype/category-No
+  func_module unictype/category-P
+  func_module unictype/category-Pc
+  func_module unictype/category-Pd
+  func_module unictype/category-Pe
+  func_module unictype/category-Pf
+  func_module unictype/category-Pi
+  func_module unictype/category-Po
+  func_module unictype/category-Ps
+  func_module unictype/category-S
+  func_module unictype/category-Sc
+  func_module unictype/category-Sk
+  func_module unictype/category-Sm
+  func_module unictype/category-So
+  func_module unictype/category-Z
+  func_module unictype/category-Zl
+  func_module unictype/category-Zp
+  func_module unictype/category-Zs
+  func_module unictype/category-and
+  func_module unictype/category-and-not
+  func_module unictype/category-byname
+  func_module unictype/category-name
+  func_module unictype/category-none
+  func_module unictype/category-of
+  func_module unictype/category-or
+  func_module unictype/category-test
+  func_module unictype/category-test-withtable
+  func_module unictype/category-all
+  func_module unictype/combining-class
+  func_module unictype/ctype-alnum
+  func_module unictype/ctype-alpha
+  func_module unictype/ctype-blank
+  func_module unictype/ctype-cntrl
+  func_module unictype/ctype-digit
+  func_module unictype/ctype-graph
+  func_module unictype/ctype-lower
+  func_module unictype/ctype-print
+  func_module unictype/ctype-punct
+  func_module unictype/ctype-space
+  func_module unictype/ctype-upper
+  func_module unictype/ctype-xdigit
+  func_module unictype/decimal-digit
+  func_module unictype/digit
+  func_module unictype/mirror
+  func_module unictype/numeric
+  func_module unictype/property-alphabetic
+  func_module unictype/property-ascii-hex-digit
+  func_module unictype/property-bidi-arabic-digit
+  func_module unictype/property-bidi-arabic-right-to-left
+  func_module unictype/property-bidi-block-separator
+  func_module unictype/property-bidi-boundary-neutral
+  func_module unictype/property-bidi-common-separator
+  func_module unictype/property-bidi-control
+  func_module unictype/property-bidi-embedding-or-override
+  func_module unictype/property-bidi-eur-num-separator
+  func_module unictype/property-bidi-eur-num-terminator
+  func_module unictype/property-bidi-european-digit
+  func_module unictype/property-bidi-hebrew-right-to-left
+  func_module unictype/property-bidi-left-to-right
+  func_module unictype/property-bidi-non-spacing-mark
+  func_module unictype/property-bidi-other-neutral
+  func_module unictype/property-bidi-pdf
+  func_module unictype/property-bidi-segment-separator
+  func_module unictype/property-bidi-whitespace
+  func_module unictype/property-byname
+  func_module unictype/property-combining
+  func_module unictype/property-composite
+  func_module unictype/property-currency-symbol
+  func_module unictype/property-dash
+  func_module unictype/property-decimal-digit
+  func_module unictype/property-default-ignorable-code-point
+  func_module unictype/property-deprecated
+  func_module unictype/property-diacritic
+  func_module unictype/property-extender
+  func_module unictype/property-format-control
+  func_module unictype/property-grapheme-base
+  func_module unictype/property-grapheme-extend
+  func_module unictype/property-grapheme-link
+  func_module unictype/property-hex-digit
+  func_module unictype/property-hyphen
+  func_module unictype/property-id-continue
+  func_module unictype/property-id-start
+  func_module unictype/property-ideographic
+  func_module unictype/property-ids-binary-operator
+  func_module unictype/property-ids-trinary-operator
+  func_module unictype/property-ignorable-control
+  func_module unictype/property-iso-control
+  func_module unictype/property-join-control
+  func_module unictype/property-left-of-pair
+  func_module unictype/property-line-separator
+  func_module unictype/property-logical-order-exception
+  func_module unictype/property-lowercase
+  func_module unictype/property-math
+  func_module unictype/property-non-break
+  func_module unictype/property-not-a-character
+  func_module unictype/property-numeric
+  func_module unictype/property-other-alphabetic
+  func_module unictype/property-other-default-ignorable-code-point
+  func_module unictype/property-other-grapheme-extend
+  func_module unictype/property-other-id-continue
+  func_module unictype/property-other-id-start
+  func_module unictype/property-other-lowercase
+  func_module unictype/property-other-math
+  func_module unictype/property-other-uppercase
+  func_module unictype/property-paired-punctuation
+  func_module unictype/property-paragraph-separator
+  func_module unictype/property-pattern-syntax
+  func_module unictype/property-pattern-white-space
+  func_module unictype/property-private-use
+  func_module unictype/property-punctuation
+  func_module unictype/property-quotation-mark
+  func_module unictype/property-radical
+  func_module unictype/property-sentence-terminal
+  func_module unictype/property-soft-dotted
+  func_module unictype/property-space
+  func_module unictype/property-terminal-punctuation
+  func_module unictype/property-test
+  func_module unictype/property-titlecase
+  func_module unictype/property-unassigned-code-value
+  func_module unictype/property-unified-ideograph
+  func_module unictype/property-uppercase
+  func_module unictype/property-variation-selector
+  func_module unictype/property-white-space
+  func_module unictype/property-xid-continue
+  func_module unictype/property-xid-start
+  func_module unictype/property-zero-width
+  func_module unictype/property-all
+  func_module unictype/scripts
+  func_module unictype/scripts-all
+  func_module unictype/syntax-c-ident
+  func_module unictype/syntax-c-whitespace
+  func_module unictype/syntax-java-ident
+  func_module unictype/syntax-java-whitespace
+  func_module uniwidth/base
+  func_module uniwidth/u8-strwidth
+  func_module uniwidth/u8-width
+  func_module uniwidth/u16-strwidth
+  func_module uniwidth/u16-width
+  func_module uniwidth/u32-strwidth
+  func_module uniwidth/u32-width
+  func_module uniwidth/width
+  func_module unilbrk/base
+  func_module unilbrk/tables
+  func_module unilbrk/ulc-common
+  func_module unilbrk/u8-possible-linebreaks
+  func_module unilbrk/u16-possible-linebreaks
+  func_module unilbrk/u32-possible-linebreaks
+  func_module unilbrk/ulc-possible-linebreaks
+  func_module unilbrk/u8-width-linebreaks
+  func_module unilbrk/u16-width-linebreaks
+  func_module unilbrk/u32-width-linebreaks
+  func_module unilbrk/ulc-width-linebreaks
   func_end_table
 
   element="Executing programs"
@@ -1950,11 +2858,27 @@ func_all_modules ()
 
   func_begin_table
   func_module classpath
+  func_module javacomp-script
   func_module javacomp
+  func_module javaexec-script
   func_module javaexec
+  func_module javaversion
   #func_module gcj
   func_end_table
 
+  element="C#"
+  element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+  func_section_wrap posix_ext_csharp
+  func_wrap H3
+  func_echo "$element"
+
+  func_begin_table
+  func_module csharpcomp-script
+  func_module csharpcomp
+  func_module csharpexec-script
+  func_module csharpexec
+  func_end_table
+
   element="Misc"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
   func_section_wrap posix_ext_misc
@@ -1964,9 +2888,9 @@ func_all_modules ()
   func_begin_table
   func_module argp
   func_module argz
+  func_module bitrotate
   func_module byteswap
   func_module exitfail
-  func_module c-stack
   func_module error
   func_module extensions
   func_module getdomainname
@@ -1980,12 +2904,97 @@ func_all_modules ()
   func_module quotearg
   func_module quote
   func_module readutmp
-  func_module sig2str
   func_module sysexits
+  func_module verror
+  func_module visibility
+  func_end_table
+
+  element="Support for building libraries and executables"
+  func_section_wrap build_lib
+  func_wrap H2
+  func_echo "$element"
+
+  func_begin_table
+  func_module absolute-header
+  func_module config-h
+  func_module configmake
+  func_module dummy
+  func_module elisp-comp
+  func_module gperf
+  func_module havelib
+  func_module include_next
+  func_module ldd
+  func_module lib-ignore
+  func_module link-warning
+  func_module no-c++
+  func_module relocatable-lib
+  func_module relocatable-lib-lgpl
+  func_module relocatable-prog
+  func_module relocatable-prog-wrapper
+  func_module relocatable-script
+  func_end_table
+
+  element="Support for building documentation"
+  func_section_wrap build_doc
+  func_wrap H2
+  func_echo "$element"
+
+  func_begin_table
+  func_module fdl
+  func_module gendocs
+  func_module gpl-2.0
+  func_module gpl-3.0
+  func_module lgpl-2.1
+  func_module agpl-3.0
+  func_module regexprops-generic
+  func_end_table
+
+  element="Support for maintaining and releasing projects"
+  func_section_wrap maintain
+  func_wrap H2
+  func_echo "$element"
+
+  func_begin_table
+  func_module announce-gen
+  func_module autobuild
+  func_module git-version-gen
+  func_module gitlog-to-changelog
+  func_module gnumakefile
+  func_module gnupload
+  func_module maintainer-makefile
+  func_module mktempd
+  func_module useless-if-before-free
+  func_module vc-list-files
+  func_end_table
+
+  element="Misc"
+  func_section_wrap misc
+  func_wrap H2
+  func_echo "$element"
+
+  func_begin_table
+  func_module gnu-make
+  func_module host-os
+  func_module nocrash
+  func_module perl
+  func_module posix-shell
+  func_module uptime
   func_end_table
 }
 
 
+func_tmpdir
+trap 'exit_status=$?
+      if test "$signal" != 0; then
+        echo "caught signal $signal" >&2
+      fi
+      rm -rf "$tmp"
+      exit $exit_status' 0
+for signal in 1 2 3 13 15; do
+  trap '{ signal='$signal'; func_exit 1; }' $signal
+done
+signal=0
+
 echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">'
 func_begin HTML
 
@@ -2015,6 +3024,12 @@ func_all_modules
 in_toc=
 func_all_modules
 
+
+gnulib-tool --list > "$tmp/all-modules"
+missed_modules=`for module in $seen_modules; do echo $module; done \
+                 | LC_ALL=C sort -u \
+                 | LC_ALL=C join -v 2 - "$tmp/all-modules"`
+
 if test -n "$missed_modules"; then
 
   element="Unclassified modules - please update MODULES.html.sh"
@@ -2030,6 +3045,11 @@ if test -n "$missed_modules"; then
 
 fi
 
+{ find lib -type f -print; find m4 -type f -print; } | LC_ALL=C sort | sed -e '/\/\./d' -e /CVS/d -e /README/d -e /ChangeLog/d -e /Makefile/d -e /TODO/d -e '/tags$/d' -e '/TAGS$/d' -e '/~$/d' > "$tmp/all-files"
+missed_files=`for file in $seen_files; do echo $file; done \
+               | LC_ALL=C sort -u \
+               | LC_ALL=C join -v 2 - "$tmp/all-files"`
+
 if test -n "$missed_files"; then
 
   element="Lone files - please create new modules containing them"
@@ -2038,7 +3058,7 @@ if test -n "$missed_files"; then
   func_echo "$element"
 
   func_echo '<PRE>'
-  echo "$missed_files" | sed -e 's,^\(.*\)$,<A HREF="\1">\1</A>,'
+  echo "$missed_files" | sed -e 's,^\(.*\)$,<A HREF="'$repo_url_prefix'\1'$repo_url_suffix_repl'">\1</A>,'
   echo '</PRE>'
 
 fi
@@ -2054,9 +3074,9 @@ func_echo '<LI>A header file: lib/<VAR>module</VAR>.h'
 func_echo '<LI>One or more implementation files: lib/<VAR>module</VAR>.c et al.'
 func_echo '<LI>One or more autoconf macro files: m4/<VAR>module</VAR>.m4 et al.'
 func_echo '<LI>A configure.ac fragment, Makefile.am fragment, dependency list: modules/<VAR>module</VAR>'
+func_echo '<LI>A testsuite: source files in tests/ and metainformation (a configure.ac fragment, Makefile.am fragment, dependency list) in modules/<VAR>module</VAR>-tests'
 func_echo '<LI>Some documentation'
 func_echo '<LI>A POT file and some PO files'
-func_echo '<LI>A testsuite'
 func_end UL
 
 func_echo '<HR>'
@@ -2065,3 +3085,15 @@ func_echo 'Generated from <CODE>MODULES.html.sh</CODE> on '`LC_ALL=C date +"%e %
 func_end BODY
 
 func_end HTML
+
+rm -rf "$tmp"
+# Undo the effect of the previous 'trap' command.
+trap '' 0
+trap 'func_exit $?' 1 2 3 13 15
+
+exit 0
+
+# Local Variables:
+# indent-tabs-mode: nil
+# whitespace-check-buffer-indent: nil
+# End: