3 # Copyright (C) 2002-2007 Free Software Foundation, Inc.
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2, or (at your option)
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 # Usage: MODULES.html.sh [--cvs-urls|--git-urls] > MODULES.html
22 # Extend the PATH so that gnulib-tool is found.
23 PATH=`dirname "$0"`:$PATH; export PATH
25 POSIX2001_URL='http://www.opengroup.org/susv3'
28 POSIX2001_URL='file:/packages/www/www.opengroup.org/susv3' ;;
36 # Generate URLs to the official gnulib CVS repository.
37 repo_url_prefix='http://cvs.sv.gnu.org/viewcvs/*checkout*/gnulib/'
38 repo_url_suffix='?root=gnulib&content-type=text/plain'
41 # Generate URLs to the official gnulib git repository.
42 repo_url_prefix='http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f='
47 # For sed replacements: Escape the '&'.
48 repo_url_suffix_repl=`echo "$repo_url_suffix" | sed -e 's,[&],\\\&,'`
52 sed_escape_dot='s,\.,\\.,g'
53 sed_escape_slash='s,/,\\/,g'
56 sed_alt2='s,^\\|,\\(,'
57 sed_alt3='s,\\|\\|$,\\),'
143 ' | sed -e "$sed_alt1" | tr -d "$trnl" | sed -e "$sed_alt2" -e "$sed_alt3"`
144 posix_functions=`echo '
740 posix_spawn_file_actions_addclose
741 posix_spawn_file_actions_adddup2
742 posix_spawn_file_actions_addopen
743 posix_spawn_file_actions_destroy
744 posix_spawn_file_actions_init
745 posix_spawnattr_destroy
746 posix_spawnattr_getflags
747 posix_spawnattr_getpgroup
748 posix_spawnattr_getschedparam
749 posix_spawnattr_getschedpolicy
750 posix_spawnattr_getsigdefault
751 posix_spawnattr_getsigmask
753 posix_spawnattr_setflags
754 posix_spawnattr_setpgroup
755 posix_spawnattr_setschedparam
756 posix_spawnattr_setschedpolicy
757 posix_spawnattr_setsigdefault
758 posix_spawnattr_setsigmask
760 posix_trace_attr_destroy
761 posix_trace_attr_getclockres
762 posix_trace_attr_getcreatetime
763 posix_trace_attr_getgenversion
764 posix_trace_attr_getinherited
765 posix_trace_attr_getlogfullpolicy
766 posix_trace_attr_getlogsize
767 posix_trace_attr_getmaxdatasize
768 posix_trace_attr_getmaxsystemeventsize
769 posix_trace_attr_getmaxusereventsize
770 posix_trace_attr_getname
771 posix_trace_attr_getstreamfullpolicy
772 posix_trace_attr_getstreamsize
773 posix_trace_attr_init
774 posix_trace_attr_setinherited
775 posix_trace_attr_setlogfullpolicy
776 posix_trace_attr_setlogsize
777 posix_trace_attr_setmaxdatasize
778 posix_trace_attr_setname
779 posix_trace_attr_setstreamfullpolicy
780 posix_trace_attr_setstreamsize
784 posix_trace_create_withlog
786 posix_trace_eventid_equal
787 posix_trace_eventid_get_name
788 posix_trace_eventid_open
789 posix_trace_eventset_add
790 posix_trace_eventset_del
791 posix_trace_eventset_empty
792 posix_trace_eventset_fill
793 posix_trace_eventset_ismember
794 posix_trace_eventtypelist_getnext_id
795 posix_trace_eventtypelist_rewind
798 posix_trace_get_filter
799 posix_trace_get_status
800 posix_trace_getnext_event
803 posix_trace_set_filter
807 posix_trace_timedgetnext_event
808 posix_trace_trid_eventid_open
809 posix_trace_trygetnext_event
810 posix_typed_mem_get_info
820 pthread_attr_getdetachstate
821 pthread_attr_getguardsize
822 pthread_attr_getinheritsched
823 pthread_attr_getschedparam
824 pthread_attr_getschedpolicy
825 pthread_attr_getscope
826 pthread_attr_getstack
827 pthread_attr_getstackaddr
828 pthread_attr_getstacksize
830 pthread_attr_setdetachstate
831 pthread_attr_setguardsize
832 pthread_attr_setinheritsched
833 pthread_attr_setschedparam
834 pthread_attr_setschedpolicy
835 pthread_attr_setscope
836 pthread_attr_setstack
837 pthread_attr_setstackaddr
838 pthread_attr_setstacksize
839 pthread_barrier_destroy
842 pthread_barrierattr_destroy
843 pthread_barrierattr_getpshared
844 pthread_barrierattr_init
845 pthread_barrierattr_setpshared
849 pthread_cond_broadcast
853 pthread_cond_timedwait
855 pthread_condattr_destroy
856 pthread_condattr_getclock
857 pthread_condattr_getpshared
858 pthread_condattr_init
859 pthread_condattr_setclock
860 pthread_condattr_setpshared
865 pthread_getconcurrency
866 pthread_getcpuclockid
867 pthread_getschedparam
873 pthread_mutex_destroy
874 pthread_mutex_getprioceiling
877 pthread_mutex_setprioceiling
878 pthread_mutex_timedlock
879 pthread_mutex_trylock
881 pthread_mutexattr_destroy
882 pthread_mutexattr_getprioceiling
883 pthread_mutexattr_getprotocol
884 pthread_mutexattr_getpshared
885 pthread_mutexattr_gettype
886 pthread_mutexattr_init
887 pthread_mutexattr_setprioceiling
888 pthread_mutexattr_setprotocol
889 pthread_mutexattr_setpshared
890 pthread_mutexattr_settype
892 pthread_rwlock_destroy
894 pthread_rwlock_rdlock
895 pthread_rwlock_timedrdlock
896 pthread_rwlock_timedwrlock
897 pthread_rwlock_tryrdlock
898 pthread_rwlock_trywrlock
899 pthread_rwlock_unlock
900 pthread_rwlock_wrlock
901 pthread_rwlockattr_destroy
902 pthread_rwlockattr_getpshared
903 pthread_rwlockattr_init
904 pthread_rwlockattr_setpshared
906 pthread_setcancelstate
907 pthread_setcanceltype
908 pthread_setconcurrency
909 pthread_setschedparam
978 sched_get_priority_max
981 sched_rr_get_interval
1259 ' | sed -e "$sed_alt1" | tr -d "$trnl" | sed -e "$sed_alt2" -e "$sed_alt3"`
1273 # creates a temporary directory.
1275 # - tmp pathname of freshly created temporary directory
1278 # Use the environment variable TMPDIR, falling back to /tmp. This allows
1279 # users to specify a different temporary directory, for example, if their
1280 # /tmp is filled up or too small.
1283 # Use the mktemp program if available. If not available, hide the error
1285 tmp=`(umask 077 && mktemp -d "$TMPDIR/MDXXXXXX") 2>/dev/null` &&
1286 test -n "$tmp" && test -d "$tmp"
1289 # Use a simple mkdir command. It is guaranteed to fail if the directory
1290 # already exists. $RANDOM is bash specific and expands to empty in shells
1291 # other than bash, ksh and zsh. Its use does not increase security;
1292 # rather, it minimizes the probability of failure in a very cluttered /tmp
1294 tmp=$TMPDIR/MD$$-$RANDOM
1295 (umask 077 && mkdir "$tmp")
1298 echo "$0: cannot create a temporary directory in $TMPDIR" >&2
1303 # func_append var value
1304 # appends the given value to the shell variable var.
1305 if ( foo=bar; foo+=baz && test "$foo" = barbaz ) >/dev/null 2>&1; then
1306 # Use bash's += operator. It reduces complexity of appending repeatedly to
1307 # a single variable from O(n^2) to O(n).
1315 eval "$1=\"\$$1\$2\""
1320 # outputs line with indentation.
1327 # increases the indentation.
1334 # decreases the indentation.
1337 indent=`echo "$indent" | sed -e 's/ $//'`
1340 # func_begin tag [attribute...]
1349 # closes a HTML tag.
1356 # func_wrap tag [attribute...]
1357 # encloses $element in a HTML tag, without line breaks.
1360 element="<$*>${element}</$1>"
1363 # func_section_wrap sectiontag
1364 # encloses $element in a HTML tag referring to the given tag.
1365 func_section_wrap ()
1367 if test -n "$in_toc"; then
1368 func_wrap A "HREF=\"#$1\""
1370 func_wrap A "NAME=\"$1\""
1378 if test -z "$in_toc"; then
1380 func_echo "<TH ALIGN=LEFT>modules/"
1381 func_echo "<TH ALIGN=LEFT>lib/"
1382 func_echo "<TH ALIGN=LEFT>lib/"
1383 func_echo "<TH ALIGN=LEFT>m4/"
1384 func_echo "<TH ALIGN=LEFT> "
1387 func_echo "<TH ALIGN=LEFT>Module"
1388 func_echo "<TH ALIGN=LEFT>Header"
1389 func_echo "<TH ALIGN=LEFT>Implementation"
1390 func_echo "<TH ALIGN=LEFT>Autoconf macro"
1391 func_echo "<TH ALIGN=LEFT>Depends on"
1396 # func_module module
1399 sed_remove_trailing_empty_line='${
1403 if test -n "$in_toc"; then
1405 func_begin TR "WIDTH=\"100%\""
1407 element='<A HREF="#module='$1'">'$1'</A>'
1408 func_echo "<TD ALIGN=LEFT VALIGN=TOP WIDTH=\"20%\">$element"
1410 element=`gnulib-tool --extract-description $1 \
1411 | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \
1413 -e 's,\([^a-zA-Z]\)'"${posix_functions}"'(),\1<A HREF="'"$POSIX2001_URL"'xsh/\2.html">\2</A>(),g' \
1415 func_echo "<TD ALIGN=LEFT VALIGN=TOP WIDTH=\"80%\">$element"
1423 element='<A NAME="module='$1'"></A><A HREF="'$repo_url_prefix'modules/'$1$repo_url_suffix'">'$1'</A>'
1424 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1426 includes=`gnulib-tool --extract-include-directive $1`
1427 files=`gnulib-tool --extract-filelist $1 \
1428 | grep -v '^m4/gnulib-common\.m4$'`
1429 element=`echo "$includes" \
1430 | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \
1431 -e 's,^#include "\(.*\)"$,#include "<A HREF="'$repo_url_prefix'lib/\1'$repo_url_suffix_repl'">\1</A>",' \
1432 -e 's,^#include <'"${posix_headers}"'\.h>$,#include \<<A HREF="'"$POSIX2001_URL"'xbd/\1.h.html">\1.h</A>\>,' \
1433 -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
1434 test -n "$element" || element='---'
1435 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1437 sed_choose_unconditional_nonstandard_include='s,^#include "\(.*\)"$,\1,p'
1438 includefile=`echo "$includes" \
1439 | sed -n -e "$sed_choose_unconditional_nonstandard_include" \
1440 | sed -e "$sed_escape_dot" | tr -d "$trnl"`
1441 sed_choose_lib_files='s,^lib/\(.*\)$,\1,p'
1442 element=`echo "$files" \
1444 | sed -n -e "$sed_choose_lib_files" \
1445 | sed -e '\|^'"${includefile}"'$|d' \
1446 -e 's,^\(.*\)$,<A HREF="'$repo_url_prefix'lib/\1'$repo_url_suffix_repl'">\1</A>,' \
1447 -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
1448 test -n "$element" || element='---'
1449 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1451 sed_choose_m4_files='s,^m4/\(.*\)$,\1,p'
1452 element=`(echo "$files" \
1453 | sed -e "$sed_remove_trailing_empty_line" \
1454 | sed -n -e "$sed_choose_m4_files" \
1455 | sed -e '/^onceonly/d' \
1456 -e 's,^\(.*\)$,<A HREF="'$repo_url_prefix'm4/\1'$repo_url_suffix_repl'">\1</A>,'; \
1457 gnulib-tool --extract-autoconf-snippet $1 \
1458 | sed -e "$sed_remove_trailing_empty_line") \
1459 | sed -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
1460 test -n "$element" || element='---'
1461 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1463 element=`gnulib-tool --extract-dependencies $1 \
1464 | sed -e "$sed_remove_trailing_empty_line" \
1465 -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
1466 test -n "$element" || element='---'
1467 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1471 func_append seen_modules " $1"
1472 func_append seen_files " $files"
1485 element="Support for systems lacking ANSI C 89"
1486 func_section_wrap ansic_sup
1488 func_echo "$element"
1504 func_module strerror
1508 func_echo 'Most of these modules are not listed among dependencies below, for simplicity.'
1510 element="Enhancements for ANSI C 89 functions"
1511 func_section_wrap ansic_enh
1513 func_echo "$element"
1515 element="Diagnostics <assert.h>"
1516 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1517 func_section_wrap ansic_enh_assert_diagnostics
1519 func_echo "$element"
1526 element="Mathematics <math.h>"
1527 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1528 func_section_wrap ansic_enh_math
1530 func_echo "$element"
1536 element="Input/output <stdio.h>"
1537 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1538 func_section_wrap ansic_enh_stdio
1540 func_echo "$element"
1548 element="Memory management functions <stdlib.h>"
1549 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1550 func_section_wrap ansic_enh_stdlib_memory
1552 func_echo "$element"
1560 func_module pagealign_alloc
1563 element="Sorting functions <stdlib.h>"
1564 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1565 func_section_wrap ansic_enh_stdlib_sorting
1567 func_echo "$element"
1573 element="Date and time <time.h>"
1574 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1575 func_section_wrap ansic_enh_time_datetime
1577 func_echo "$element"
1580 func_module fprintftime
1581 func_module strftime
1584 element="Extra functions based on ANSI C 89"
1585 func_section_wrap ansic_ext
1587 func_echo "$element"
1589 element="Memory management functions <stdlib.h>"
1590 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1591 func_section_wrap ansic_ext_stdlib_memory
1593 func_echo "$element"
1598 func_module xalloc-die
1600 func_module alloca-opt
1602 func_module xmalloca
1605 element="Integer arithmetic functions <stdlib.h>"
1606 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1607 func_section_wrap ansic_ext_stdlib_arith
1609 func_echo "$element"
1612 func_module count-one-bits
1617 element="Environment variables <stdlib.h>"
1618 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1619 func_section_wrap ansic_ext_stdlib_env
1621 func_echo "$element"
1629 element="Character handling <ctype.h>"
1630 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1631 func_section_wrap ansic_ext_ctype
1633 func_echo "$element"
1639 element="String handling <string.h>"
1640 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1641 func_section_wrap ansic_ext_string
1643 func_echo "$element"
1652 func_module c-strcase
1654 func_module c-strcaseeq
1655 func_module c-strcasestr
1656 func_module strcasestr
1657 func_module strchrnul
1661 func_module strnlen1
1664 func_module c-strstr
1666 #func_module fstrcmp
1667 func_module xstrndup
1670 element="Mathematics <math.h>"
1671 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1672 func_section_wrap ansic_ext_math
1674 func_echo "$element"
1677 func_module printf-frexp
1680 element="Numeric conversion functions <stdlib.h>"
1681 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1682 func_section_wrap ansic_ext_stdlib_conv
1684 func_echo "$element"
1687 func_module c-strtod
1688 func_module c-strtold
1691 func_module xstrtold
1694 element="Date and time <time.h>"
1695 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1696 func_section_wrap ansic_ext_time_datetime
1698 func_echo "$element"
1706 element="Input/Output <stdio.h>"
1707 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1708 func_section_wrap ansic_ext_stdio
1710 func_echo "$element"
1713 func_module unlocked-io
1714 func_module fwriteerror
1715 func_module vasnprintf
1716 func_module vasprintf
1717 func_module xvasprintf
1720 element="Signal handling <signal.h>"
1721 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1722 func_section_wrap ansic_ext_signal
1724 func_echo "$element"
1727 func_module fatal-signal
1731 element="Command-line arguments"
1732 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1733 func_section_wrap ansic_ext_argv
1735 func_echo "$element"
1738 func_module argmatch
1739 func_module version-etc
1740 func_module version-etc-fsf
1741 func_module long-options
1744 element="Container data structures"
1745 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1746 func_section_wrap ansic_ext_container
1748 func_echo "$element"
1752 func_module array-list
1753 func_module carray-list
1754 func_module linked-list
1755 func_module avltree-list
1756 func_module rbtree-list
1757 func_module linkedhash-list
1758 func_module avltreehash-list
1759 func_module rbtreehash-list
1762 func_module array-oset
1763 func_module avltree-oset
1764 func_module rbtree-oset
1767 element="Cryptographic computations (low-level)"
1768 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1769 func_section_wrap ansic_ext_crypto
1771 func_echo "$element"
1774 func_module crypto/arcfour
1775 func_module crypto/arctwo
1776 func_module crypto/des
1777 func_module crypto/hmac-md5
1778 func_module crypto/hmac-sha1
1779 func_module crypto/md2
1780 func_module crypto/md4
1781 func_module crypto/md5
1782 func_module crypto/rijndael
1783 func_module crypto/sha1
1786 element="Cryptographic computations (high-level)"
1787 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1788 func_section_wrap ansic_ext_crypto2
1790 func_echo "$element"
1793 func_module crypto/gc
1794 func_module crypto/gc-arcfour
1795 func_module crypto/gc-arctwo
1796 func_module crypto/gc-des
1797 func_module crypto/gc-hmac-md5
1798 func_module crypto/gc-hmac-sha1
1799 func_module crypto/gc-md2
1800 func_module crypto/gc-md4
1801 func_module crypto/gc-md5
1802 func_module crypto/gc-pbkdf2-sha1
1803 func_module crypto/gc-random
1804 func_module crypto/gc-rijndael
1805 func_module crypto/gc-sha1
1809 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1810 func_section_wrap ansic_ext_misc
1812 func_echo "$element"
1816 func_module check-version
1819 func_module getdelim
1820 func_module getnline
1821 func_module getndelim2
1822 func_module linebuffer
1824 func_module hash-pjw
1826 func_module readline
1827 func_module readtokens
1828 func_module readtokens0
1829 func_module strverscmp
1832 element="Support for systems lacking ISO C 99"
1833 func_section_wrap isoc_sup
1835 func_echo "$element"
1837 element="Core language properties"
1838 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1839 func_section_wrap isoc_core_properties
1841 func_echo "$element"
1844 func_module flexmember
1847 func_module vararrays
1850 element="Sizes of integer types <limits.h>"
1851 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1852 func_section_wrap isoc_sup_limits
1854 func_echo "$element"
1857 func_module size_max
1860 element="Variable arguments <stdarg.h>"
1861 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1862 func_section_wrap isoc_sup_stdarg
1864 func_echo "$element"
1870 element="Boolean type and values <stdbool.h>"
1871 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1872 func_section_wrap isoc_sup_stdbool
1874 func_echo "$element"
1880 element="Integer types and values <stdint.h>"
1881 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1882 func_section_wrap isoc_sup_stdint
1884 func_echo "$element"
1890 element="Input/output <stdio.h>"
1891 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1892 func_section_wrap isoc_sup_stdio
1894 func_echo "$element"
1898 func_module snprintf
1899 func_module vsnprintf
1902 element="Numeric conversion functions <stdlib.h>"
1903 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1904 func_section_wrap isoc_sup_stdlib_conv
1906 func_echo "$element"
1910 func_module strtoull
1913 element="Functions for greatest-width integer types <inttypes.h>"
1914 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1915 func_section_wrap isoc_sup_inttypes
1917 func_echo "$element"
1922 func_module inttypes
1923 func_module strtoimax
1924 func_module strtoumax
1927 element="Extended multibyte and wide character utilities <wchar.h>"
1928 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1929 func_section_wrap isoc_sup_wchar
1931 func_echo "$element"
1937 element="Wide character classification and mapping utilities <wctype.h>"
1938 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1939 func_section_wrap isoc_sup_wctype
1941 func_echo "$element"
1947 element="Mathematics <math.h>"
1948 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1949 func_section_wrap isoc_sup_math
1951 func_echo "$element"
1956 func_module isnan-nolibm
1958 func_module isnanl-nolibm
1964 element="Enhancements for ISO C 99 functions"
1965 func_section_wrap isoc_enh
1967 func_echo "$element"
1972 element="Extra functions based on ISO C 99"
1973 func_section_wrap isoc_ext
1975 func_echo "$element"
1977 element="Mathematics <math.h>"
1978 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1979 func_section_wrap isoc_ext_math
1981 func_echo "$element"
1984 func_module printf-frexpl
1987 element="Numeric conversion functions <stdlib.h>"
1988 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1989 func_section_wrap isoc_ext_stdlib_conv
1991 func_echo "$element"
1994 func_module intprops
1995 func_module inttostr
1996 func_module xstrtoimax
1997 func_module xstrtoumax
2000 element="Extended multibyte and wide character utilities <wchar.h>"
2001 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2002 func_section_wrap isoc_ext_wchar_mb
2004 func_echo "$element"
2013 element="Support for systems lacking POSIX:2001"
2014 func_section_wrap posix_sup
2016 func_echo "$element"
2022 func_module fprintf-posix
2023 func_module ftruncate
2024 func_module getaddrinfo
2026 func_module getgroups
2027 func_module gethostname
2028 func_module getlogin_r
2029 func_module getsubopt
2030 func_module gettimeofday
2031 func_module inet_ntop
2032 func_module inet_pton
2039 func_module printf-posix
2040 func_module readlink
2041 func_module snprintf-posix
2042 func_module sprintf-posix
2044 func_module tempname
2047 func_module timespec
2048 func_module nanosleep
2053 func_module sigprocmask
2056 func_module strptime
2057 func_module strtok_r
2058 func_module sys_select
2059 func_module sys_socket
2060 func_module sys_stat
2061 func_module sys_time
2065 func_module vasnprintf-posix
2066 func_module vasprintf-posix
2067 func_module vfprintf-posix
2068 func_module vprintf-posix
2069 func_module vsnprintf-posix
2070 func_module vsprintf-posix
2074 element="Compatibility checks for POSIX:2001 functions"
2075 func_section_wrap posix_compat
2077 func_echo "$element"
2082 func_module link-follow
2083 func_module rename-dest-slash
2084 func_module rmdir-errno
2085 func_module unlink-busy
2086 func_module winsz-ioctl
2087 func_module winsz-termios
2090 element="Enhancements for POSIX:2001 functions"
2091 func_section_wrap posix_enh
2093 func_echo "$element"
2098 func_module unistd-safer
2100 func_module fnmatch-posix
2101 func_module fnmatch-gnu
2106 element="Extra functions based on POSIX:2001"
2107 func_section_wrap posix_ext
2109 func_echo "$element"
2111 element="Numeric conversion functions"
2112 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2113 func_section_wrap posix_ext_conv
2115 func_echo "$element"
2121 element="File system functions"
2122 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2123 func_section_wrap posix_ext_filesys
2125 func_echo "$element"
2129 func_module backupfile
2130 func_module canonicalize
2131 func_module canonicalize-lgpl
2132 func_module clean-temp
2133 func_module copy-file
2134 func_module cycle-check
2137 func_module double-slash-root
2138 func_module euidaccess
2139 func_module file-type
2140 func_module fileblocks
2141 func_module filemode
2142 func_module filename
2143 func_module filenamecat
2145 func_module fts-lgpl
2149 func_module mkancesdirs
2151 func_module modechange
2152 func_module mountlist
2153 func_module mreadlink-with-size
2157 func_module save-cwd
2160 func_module stat-time
2162 func_module unlinkdir
2163 func_module utimecmp
2165 func_module write-any-file
2167 func_module xreadlink
2170 element="File descriptor based Input/Output"
2171 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2172 func_section_wrap posix_ext_filedesc
2174 func_echo "$element"
2177 func_module fcntl-safer
2178 func_module safe-read
2179 func_module safe-write
2180 func_module full-read
2181 func_module full-write
2182 func_module binary-io
2186 element="File stream based Input/Output"
2187 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2188 func_section_wrap posix_ext_filestream
2190 func_echo "$element"
2193 func_module close-stream
2195 func_module closeout
2196 func_module fopen-safer
2197 func_module fpending
2198 func_module freading
2199 func_module fwriting
2201 func_module getpass-gnu
2202 func_module stdlib-safer
2203 func_module tmpfile-safer
2206 element="Users and groups"
2207 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2208 func_section_wrap posix_ext_uidgid
2210 func_echo "$element"
2213 func_module getugroups
2214 func_module group-member
2216 func_module userspec
2219 element="Date and time"
2220 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2221 func_section_wrap posix_ext_datetime
2223 func_echo "$element"
2229 func_module xnanosleep
2232 element="Networking functions"
2233 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2234 func_section_wrap posix_ext_net
2236 func_echo "$element"
2239 func_module xgethostname
2240 func_module canon-host
2243 element="Multithreading"
2244 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2245 func_section_wrap posix_ext_thread
2247 func_echo "$element"
2254 element="Internationalization functions"
2255 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2256 func_section_wrap posix_ext_i18n
2258 func_echo "$element"
2262 func_module gettext-h
2264 func_module striconv
2265 func_module xstriconv
2266 func_module striconveh
2267 func_module striconveha
2268 func_module localcharset
2269 func_module hard-locale
2275 func_module mbscasecmp
2276 func_module mbsncasecmp
2277 func_module mbspcasecmp
2278 func_module mbscasestr
2283 func_module mbstok_r
2284 func_module mbswidth
2285 func_module memcasecmp
2287 func_module xmemcoll
2288 func_module unicodeio
2291 func_module linebreak
2292 func_module bison-i18n
2295 element="Unicode string functions"
2296 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2297 func_section_wrap posix_ext_unicode
2299 func_echo "$element"
2302 func_module unitypes
2303 func_module ucs4-utf8
2304 func_module ucs4-utf16
2305 func_module utf8-ucs4-unsafe
2306 func_module utf16-ucs4-unsafe
2307 func_module utf8-ucs4
2308 func_module utf16-ucs4
2309 func_module unistr/base
2310 func_module unistr/u8-to-u16
2311 func_module unistr/u8-to-u32
2312 func_module unistr/u16-to-u8
2313 func_module unistr/u16-to-u32
2314 func_module unistr/u32-to-u8
2315 func_module unistr/u32-to-u16
2316 func_module unistr/u8-check
2317 func_module unistr/u16-check
2318 func_module unistr/u32-check
2319 func_module unistr/u8-chr
2320 func_module unistr/u16-chr
2321 func_module unistr/u32-chr
2322 func_module unistr/u8-cmp
2323 func_module unistr/u16-cmp
2324 func_module unistr/u32-cmp
2325 func_module unistr/u8-cpy
2326 func_module unistr/u16-cpy
2327 func_module unistr/u32-cpy
2328 func_module unistr/u8-cpy-alloc
2329 func_module unistr/u16-cpy-alloc
2330 func_module unistr/u32-cpy-alloc
2331 func_module unistr/u8-endswith
2332 func_module unistr/u16-endswith
2333 func_module unistr/u32-endswith
2334 func_module unistr/u8-mblen
2335 func_module unistr/u16-mblen
2336 func_module unistr/u32-mblen
2337 func_module unistr/u8-mbtouc-unsafe
2338 func_module unistr/u16-mbtouc-unsafe
2339 func_module unistr/u32-mbtouc-unsafe
2340 func_module unistr/u8-mbtouc
2341 func_module unistr/u16-mbtouc
2342 func_module unistr/u32-mbtouc
2343 func_module unistr/u8-mbtoucr
2344 func_module unistr/u16-mbtoucr
2345 func_module unistr/u32-mbtoucr
2346 func_module unistr/u8-move
2347 func_module unistr/u16-move
2348 func_module unistr/u32-move
2349 func_module unistr/u8-next
2350 func_module unistr/u16-next
2351 func_module unistr/u32-next
2352 func_module unistr/u8-prev
2353 func_module unistr/u16-prev
2354 func_module unistr/u32-prev
2355 func_module unistr/u8-set
2356 func_module unistr/u16-set
2357 func_module unistr/u32-set
2358 func_module unistr/u8-startswith
2359 func_module unistr/u16-startswith
2360 func_module unistr/u32-startswith
2361 func_module unistr/u8-stpcpy
2362 func_module unistr/u16-stpcpy
2363 func_module unistr/u32-stpcpy
2364 func_module unistr/u8-stpncpy
2365 func_module unistr/u16-stpncpy
2366 func_module unistr/u32-stpncpy
2367 func_module unistr/u8-strcat
2368 func_module unistr/u16-strcat
2369 func_module unistr/u32-strcat
2370 func_module unistr/u8-strchr
2371 func_module unistr/u16-strchr
2372 func_module unistr/u32-strchr
2373 func_module unistr/u8-strcmp
2374 func_module unistr/u16-strcmp
2375 func_module unistr/u32-strcmp
2376 func_module unistr/u8-strcpy
2377 func_module unistr/u16-strcpy
2378 func_module unistr/u32-strcpy
2379 func_module unistr/u8-strcspn
2380 func_module unistr/u16-strcspn
2381 func_module unistr/u32-strcspn
2382 func_module unistr/u8-strdup
2383 func_module unistr/u16-strdup
2384 func_module unistr/u32-strdup
2385 func_module unistr/u8-strlen
2386 func_module unistr/u16-strlen
2387 func_module unistr/u32-strlen
2388 func_module unistr/u8-strmblen
2389 func_module unistr/u16-strmblen
2390 func_module unistr/u32-strmblen
2391 func_module unistr/u8-strmbtouc
2392 func_module unistr/u16-strmbtouc
2393 func_module unistr/u32-strmbtouc
2394 func_module unistr/u8-strncat
2395 func_module unistr/u16-strncat
2396 func_module unistr/u32-strncat
2397 func_module unistr/u8-strncmp
2398 func_module unistr/u16-strncmp
2399 func_module unistr/u32-strncmp
2400 func_module unistr/u8-strncpy
2401 func_module unistr/u16-strncpy
2402 func_module unistr/u32-strncpy
2403 func_module unistr/u8-strnlen
2404 func_module unistr/u16-strnlen
2405 func_module unistr/u32-strnlen
2406 func_module unistr/u8-strpbrk
2407 func_module unistr/u16-strpbrk
2408 func_module unistr/u32-strpbrk
2409 func_module unistr/u8-strrchr
2410 func_module unistr/u16-strrchr
2411 func_module unistr/u32-strrchr
2412 func_module unistr/u8-strspn
2413 func_module unistr/u16-strspn
2414 func_module unistr/u32-strspn
2415 func_module unistr/u8-strstr
2416 func_module unistr/u16-strstr
2417 func_module unistr/u32-strstr
2418 func_module unistr/u8-strtok
2419 func_module unistr/u16-strtok
2420 func_module unistr/u32-strtok
2421 func_module unistr/u8-uctomb
2422 func_module unistr/u16-uctomb
2423 func_module unistr/u32-uctomb
2424 func_module uniconv/base
2425 func_module uniconv/u8-conv-from-enc
2426 func_module uniconv/u16-conv-from-enc
2427 func_module uniconv/u32-conv-from-enc
2428 func_module uniconv/u8-conv-to-enc
2429 func_module uniconv/u16-conv-to-enc
2430 func_module uniconv/u32-conv-to-enc
2431 func_module uniconv/u8-strconv-from-enc
2432 func_module uniconv/u16-strconv-from-enc
2433 func_module uniconv/u32-strconv-from-enc
2434 func_module uniconv/u8-strconv-to-enc
2435 func_module uniconv/u16-strconv-to-enc
2436 func_module uniconv/u32-strconv-to-enc
2437 func_module uniconv/u8-strconv-from-locale
2438 func_module uniconv/u16-strconv-from-locale
2439 func_module uniconv/u32-strconv-from-locale
2440 func_module uniconv/u8-strconv-to-locale
2441 func_module uniconv/u16-strconv-to-locale
2442 func_module uniconv/u32-strconv-to-locale
2443 func_module unistdio/base
2444 func_module unistdio/u-printf-args
2445 func_module unistdio/ulc-asnprintf
2446 func_module unistdio/ulc-asprintf
2447 func_module unistdio/ulc-fprintf
2448 func_module unistdio/ulc-printf-parse
2449 func_module unistdio/ulc-snprintf
2450 func_module unistdio/ulc-sprintf
2451 func_module unistdio/ulc-vasnprintf
2452 func_module unistdio/ulc-vasprintf
2453 func_module unistdio/ulc-vfprintf
2454 func_module unistdio/ulc-vsnprintf
2455 func_module unistdio/ulc-vsprintf
2456 func_module unistdio/u8-asnprintf
2457 func_module unistdio/u8-asprintf
2458 func_module unistdio/u8-printf-parse
2459 func_module unistdio/u8-snprintf
2460 func_module unistdio/u8-sprintf
2461 func_module unistdio/u8-vasnprintf
2462 func_module unistdio/u8-vasprintf
2463 func_module unistdio/u8-vsnprintf
2464 func_module unistdio/u8-vsprintf
2465 func_module unistdio/u8-u8-asnprintf
2466 func_module unistdio/u8-u8-asprintf
2467 func_module unistdio/u8-u8-snprintf
2468 func_module unistdio/u8-u8-sprintf
2469 func_module unistdio/u8-u8-vasnprintf
2470 func_module unistdio/u8-u8-vasprintf
2471 func_module unistdio/u8-u8-vsnprintf
2472 func_module unistdio/u8-u8-vsprintf
2473 func_module unistdio/u16-asnprintf
2474 func_module unistdio/u16-asprintf
2475 func_module unistdio/u16-printf-parse
2476 func_module unistdio/u16-snprintf
2477 func_module unistdio/u16-sprintf
2478 func_module unistdio/u16-vasnprintf
2479 func_module unistdio/u16-vasprintf
2480 func_module unistdio/u16-vsnprintf
2481 func_module unistdio/u16-vsprintf
2482 func_module unistdio/u16-u16-asnprintf
2483 func_module unistdio/u16-u16-asprintf
2484 func_module unistdio/u16-u16-snprintf
2485 func_module unistdio/u16-u16-sprintf
2486 func_module unistdio/u16-u16-vasnprintf
2487 func_module unistdio/u16-u16-vasprintf
2488 func_module unistdio/u16-u16-vsnprintf
2489 func_module unistdio/u16-u16-vsprintf
2490 func_module unistdio/u32-asnprintf
2491 func_module unistdio/u32-asprintf
2492 func_module unistdio/u32-printf-parse
2493 func_module unistdio/u32-snprintf
2494 func_module unistdio/u32-sprintf
2495 func_module unistdio/u32-vasnprintf
2496 func_module unistdio/u32-vasprintf
2497 func_module unistdio/u32-vsnprintf
2498 func_module unistdio/u32-vsprintf
2499 func_module unistdio/u32-u32-asnprintf
2500 func_module unistdio/u32-u32-asprintf
2501 func_module unistdio/u32-u32-snprintf
2502 func_module unistdio/u32-u32-sprintf
2503 func_module unistdio/u32-u32-vasnprintf
2504 func_module unistdio/u32-u32-vasprintf
2505 func_module unistdio/u32-u32-vsnprintf
2506 func_module unistdio/u32-u32-vsprintf
2507 func_module uniname/base
2508 func_module uniname/uniname
2509 func_module uniwidth/base
2510 func_module uniwidth/u8-strwidth
2511 func_module uniwidth/u8-width
2512 func_module uniwidth/u16-strwidth
2513 func_module uniwidth/u16-width
2514 func_module uniwidth/u32-strwidth
2515 func_module uniwidth/u32-width
2516 func_module uniwidth/width
2519 element="Executing programs"
2520 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2521 func_section_wrap posix_ext_exec
2523 func_echo "$element"
2527 func_module findprog
2528 func_module wait-process
2531 func_module sh-quote
2535 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2536 func_section_wrap posix_ext_java
2538 func_echo "$element"
2541 func_module classpath
2542 func_module javacomp-script
2543 func_module javacomp
2544 func_module javaexec-script
2545 func_module javaexec
2546 func_module javaversion
2551 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2552 func_section_wrap posix_ext_csharp
2554 func_echo "$element"
2557 func_module csharpcomp-script
2558 func_module csharpcomp
2559 func_module csharpexec-script
2560 func_module csharpexec
2564 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2565 func_section_wrap posix_ext_misc
2567 func_echo "$element"
2572 func_module byteswap
2573 func_module exitfail
2576 func_module extensions
2577 func_module getdomainname
2578 func_module xgetdomainname
2579 func_module getloadavg
2580 func_module getpagesize
2581 func_module getusershell
2583 func_module posixver
2584 func_module progname
2585 func_module quotearg
2587 func_module readutmp
2589 func_module sysexits
2591 func_module visibility
2594 element="Support for building libraries and executables"
2595 func_section_wrap build_lib
2597 func_echo "$element"
2600 func_module absolute-header
2601 func_module config-h
2602 func_module configmake
2604 func_module elisp-comp
2606 func_module include_next
2608 func_module lib-ignore
2609 func_module link-warning
2611 func_module relocatable-lib
2612 func_module relocatable-lib-lgpl
2613 func_module relocatable-prog
2614 func_module relocatable-prog-wrapper
2615 func_module relocatable-script
2618 element="Support for building documentation"
2619 func_section_wrap build_doc
2621 func_echo "$element"
2628 func_module lgpl-2.1
2629 func_module regexprops-generic
2632 element="Support for maintaining and releasing projects"
2633 func_section_wrap maintain
2635 func_echo "$element"
2638 func_module announce-gen
2639 func_module autobuild
2640 func_module gnupload
2641 func_module maintainer-makefile
2645 func_section_wrap misc
2647 func_echo "$element"
2658 trap 'exit_status=$?
2659 if test "$signal" != 0; then
2660 echo "caught signal $signal" >&2
2663 exit $exit_status' 0
2664 for signal in 1 2 3 13 15; do
2665 trap '{ signal='$signal'; func_exit 1; }' $signal
2669 echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">'
2674 element="Gnulib Module List"
2676 func_echo "$element"
2678 modules=`gnulib-tool --list`
2679 modules=`for m in $modules; do printf "%s, " $m; done | sed -e 's/, $//'`
2680 func_echo '<META NAME="keywords" CONTENT="'"${modules}"'">'
2686 element="Gnulib Module List"
2688 func_echo "$element"
2690 func_echo 'This is a list of the modules which make up gnulib, with dependencies.'
2699 gnulib-tool --list > "$tmp/all-modules"
2700 missed_modules=`for module in $seen_modules; do echo $module; done \
2701 | LC_ALL=C sort -u \
2702 | LC_ALL=C join -v 2 - "$tmp/all-modules"`
2704 if test -n "$missed_modules"; then
2706 element="Unclassified modules - please update MODULES.html.sh"
2707 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2709 func_echo "$element"
2712 for module in $missed_modules; do
2719 LC_ALL=C ls -d lib/* m4/* | sed -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"
2720 missed_files=`for file in $seen_files; do echo $file; done \
2721 | LC_ALL=C sort -u \
2722 | LC_ALL=C join -v 2 - "$tmp/all-files"`
2724 if test -n "$missed_files"; then
2726 element="Lone files - please create new modules containing them"
2727 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2729 func_echo "$element"
2732 echo "$missed_files" | sed -e 's,^\(.*\)$,<A HREF="'$repo_url_prefix'\1'$repo_url_suffix_repl'">\1</A>,'
2737 element="Future developments"
2738 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2740 func_echo "$element"
2742 func_echo 'Ideally a module could consist of:'
2744 func_echo '<LI>A header file: lib/<VAR>module</VAR>.h'
2745 func_echo '<LI>One or more implementation files: lib/<VAR>module</VAR>.c et al.'
2746 func_echo '<LI>One or more autoconf macro files: m4/<VAR>module</VAR>.m4 et al.'
2747 func_echo '<LI>A configure.ac fragment, Makefile.am fragment, dependency list: modules/<VAR>module</VAR>'
2748 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'
2749 func_echo '<LI>Some documentation'
2750 func_echo '<LI>A POT file and some PO files'
2754 func_echo 'Generated from <CODE>MODULES.html.sh</CODE> on '`LC_ALL=C date +"%e %B %Y"`.
2761 # Undo the effect of the previous 'trap' command.
2763 trap 'func_exit $?' 1 2 3 13 15
2768 # indent-tabs-mode: nil
2769 # whitespace-check-buffer-indent: nil