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 '
742 posix_spawn_file_actions_addclose
743 posix_spawn_file_actions_adddup2
744 posix_spawn_file_actions_addopen
745 posix_spawn_file_actions_destroy
746 posix_spawn_file_actions_init
747 posix_spawnattr_destroy
748 posix_spawnattr_getflags
749 posix_spawnattr_getpgroup
750 posix_spawnattr_getschedparam
751 posix_spawnattr_getschedpolicy
752 posix_spawnattr_getsigdefault
753 posix_spawnattr_getsigmask
755 posix_spawnattr_setflags
756 posix_spawnattr_setpgroup
757 posix_spawnattr_setschedparam
758 posix_spawnattr_setschedpolicy
759 posix_spawnattr_setsigdefault
760 posix_spawnattr_setsigmask
762 posix_trace_attr_destroy
763 posix_trace_attr_getclockres
764 posix_trace_attr_getcreatetime
765 posix_trace_attr_getgenversion
766 posix_trace_attr_getinherited
767 posix_trace_attr_getlogfullpolicy
768 posix_trace_attr_getlogsize
769 posix_trace_attr_getmaxdatasize
770 posix_trace_attr_getmaxsystemeventsize
771 posix_trace_attr_getmaxusereventsize
772 posix_trace_attr_getname
773 posix_trace_attr_getstreamfullpolicy
774 posix_trace_attr_getstreamsize
775 posix_trace_attr_init
776 posix_trace_attr_setinherited
777 posix_trace_attr_setlogfullpolicy
778 posix_trace_attr_setlogsize
779 posix_trace_attr_setmaxdatasize
780 posix_trace_attr_setname
781 posix_trace_attr_setstreamfullpolicy
782 posix_trace_attr_setstreamsize
786 posix_trace_create_withlog
788 posix_trace_eventid_equal
789 posix_trace_eventid_get_name
790 posix_trace_eventid_open
791 posix_trace_eventset_add
792 posix_trace_eventset_del
793 posix_trace_eventset_empty
794 posix_trace_eventset_fill
795 posix_trace_eventset_ismember
796 posix_trace_eventtypelist_getnext_id
797 posix_trace_eventtypelist_rewind
800 posix_trace_get_filter
801 posix_trace_get_status
802 posix_trace_getnext_event
805 posix_trace_set_filter
809 posix_trace_timedgetnext_event
810 posix_trace_trid_eventid_open
811 posix_trace_trygetnext_event
812 posix_typed_mem_get_info
822 pthread_attr_getdetachstate
823 pthread_attr_getguardsize
824 pthread_attr_getinheritsched
825 pthread_attr_getschedparam
826 pthread_attr_getschedpolicy
827 pthread_attr_getscope
828 pthread_attr_getstack
829 pthread_attr_getstackaddr
830 pthread_attr_getstacksize
832 pthread_attr_setdetachstate
833 pthread_attr_setguardsize
834 pthread_attr_setinheritsched
835 pthread_attr_setschedparam
836 pthread_attr_setschedpolicy
837 pthread_attr_setscope
838 pthread_attr_setstack
839 pthread_attr_setstackaddr
840 pthread_attr_setstacksize
841 pthread_barrier_destroy
844 pthread_barrierattr_destroy
845 pthread_barrierattr_getpshared
846 pthread_barrierattr_init
847 pthread_barrierattr_setpshared
851 pthread_cond_broadcast
855 pthread_cond_timedwait
857 pthread_condattr_destroy
858 pthread_condattr_getclock
859 pthread_condattr_getpshared
860 pthread_condattr_init
861 pthread_condattr_setclock
862 pthread_condattr_setpshared
867 pthread_getconcurrency
868 pthread_getcpuclockid
869 pthread_getschedparam
875 pthread_mutex_destroy
876 pthread_mutex_getprioceiling
879 pthread_mutex_setprioceiling
880 pthread_mutex_timedlock
881 pthread_mutex_trylock
883 pthread_mutexattr_destroy
884 pthread_mutexattr_getprioceiling
885 pthread_mutexattr_getprotocol
886 pthread_mutexattr_getpshared
887 pthread_mutexattr_gettype
888 pthread_mutexattr_init
889 pthread_mutexattr_setprioceiling
890 pthread_mutexattr_setprotocol
891 pthread_mutexattr_setpshared
892 pthread_mutexattr_settype
894 pthread_rwlock_destroy
896 pthread_rwlock_rdlock
897 pthread_rwlock_timedrdlock
898 pthread_rwlock_timedwrlock
899 pthread_rwlock_tryrdlock
900 pthread_rwlock_trywrlock
901 pthread_rwlock_unlock
902 pthread_rwlock_wrlock
903 pthread_rwlockattr_destroy
904 pthread_rwlockattr_getpshared
905 pthread_rwlockattr_init
906 pthread_rwlockattr_setpshared
908 pthread_setcancelstate
909 pthread_setcanceltype
910 pthread_setconcurrency
911 pthread_setschedparam
980 sched_get_priority_max
983 sched_rr_get_interval
1262 ' | sed -e "$sed_alt1" | tr -d "$trnl" | sed -e "$sed_alt2" -e "$sed_alt3"`
1276 # creates a temporary directory.
1278 # - tmp pathname of freshly created temporary directory
1281 # Use the environment variable TMPDIR, falling back to /tmp. This allows
1282 # users to specify a different temporary directory, for example, if their
1283 # /tmp is filled up or too small.
1286 # Use the mktemp program if available. If not available, hide the error
1288 tmp=`(umask 077 && mktemp -d "$TMPDIR/MDXXXXXX") 2>/dev/null` &&
1289 test -n "$tmp" && test -d "$tmp"
1292 # Use a simple mkdir command. It is guaranteed to fail if the directory
1293 # already exists. $RANDOM is bash specific and expands to empty in shells
1294 # other than bash, ksh and zsh. Its use does not increase security;
1295 # rather, it minimizes the probability of failure in a very cluttered /tmp
1297 tmp=$TMPDIR/MD$$-$RANDOM
1298 (umask 077 && mkdir "$tmp")
1301 echo "$0: cannot create a temporary directory in $TMPDIR" >&2
1306 # func_append var value
1307 # appends the given value to the shell variable var.
1308 if ( foo=bar; foo+=baz && test "$foo" = barbaz ) >/dev/null 2>&1; then
1309 # Use bash's += operator. It reduces complexity of appending repeatedly to
1310 # a single variable from O(n^2) to O(n).
1318 eval "$1=\"\$$1\$2\""
1323 # outputs line with indentation.
1330 # increases the indentation.
1337 # decreases the indentation.
1340 indent=`echo "$indent" | sed -e 's/ $//'`
1343 # func_begin tag [attribute...]
1352 # closes a HTML tag.
1359 # func_wrap tag [attribute...]
1360 # encloses $element in a HTML tag, without line breaks.
1363 element="<$*>${element}</$1>"
1366 # func_section_wrap sectiontag
1367 # encloses $element in a HTML tag referring to the given tag.
1368 func_section_wrap ()
1370 if test -n "$in_toc"; then
1371 func_wrap A "HREF=\"#$1\""
1373 func_wrap A "NAME=\"$1\""
1381 if test -z "$in_toc"; then
1383 func_echo "<TH ALIGN=LEFT>modules/"
1384 func_echo "<TH ALIGN=LEFT>lib/"
1385 func_echo "<TH ALIGN=LEFT>lib/"
1386 func_echo "<TH ALIGN=LEFT>m4/"
1387 func_echo "<TH ALIGN=LEFT> "
1390 func_echo "<TH ALIGN=LEFT>Module"
1391 func_echo "<TH ALIGN=LEFT>Header"
1392 func_echo "<TH ALIGN=LEFT>Implementation"
1393 func_echo "<TH ALIGN=LEFT>Autoconf macro"
1394 func_echo "<TH ALIGN=LEFT>Depends on"
1399 # func_module module
1402 sed_remove_trailing_empty_line='${
1406 if test -n "$in_toc"; then
1408 func_begin TR "WIDTH=\"100%\""
1410 element='<A HREF="#module='$1'">'$1'</A>'
1411 func_echo "<TD ALIGN=LEFT VALIGN=TOP WIDTH=\"20%\">$element"
1413 element=`gnulib-tool --extract-description $1 \
1414 | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \
1416 -e 's,\([^a-zA-Z]\)'"${posix_functions}"'(),\1<A HREF="'"$POSIX2001_URL"'xsh/\2.html">\2</A>(),g' \
1418 func_echo "<TD ALIGN=LEFT VALIGN=TOP WIDTH=\"80%\">$element"
1426 element='<A NAME="module='$1'"></A><A HREF="'$repo_url_prefix'modules/'$1$repo_url_suffix'">'$1'</A>'
1427 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1429 includes=`gnulib-tool --extract-include-directive $1`
1430 files=`gnulib-tool --extract-filelist $1`
1431 element=`echo "$includes" \
1432 | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \
1433 -e 's,^#include "\(.*\)"$,#include "<A HREF="'$repo_url_prefix'lib/\1'$repo_url_suffix_repl'">\1</A>",' \
1434 -e 's,^#include <'"${posix_headers}"'\.h>$,#include \<<A HREF="'"$POSIX2001_URL"'xbd/\1.h.html">\1.h</A>\>,' \
1435 -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
1436 test -n "$element" || element='---'
1437 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1439 sed_choose_unconditional_nonstandard_include='s,^#include "\(.*\)"$,\1,p'
1440 includefile=`echo "$includes" \
1441 | sed -n -e "$sed_choose_unconditional_nonstandard_include" \
1442 | sed -e "$sed_escape_dot" | tr -d "$trnl"`
1443 sed_choose_lib_files='s,^lib/\(.*\)$,\1,p'
1444 element=`echo "$files" \
1446 | sed -n -e "$sed_choose_lib_files" \
1447 | sed -e '/^'"${includefile}"'$/d' \
1448 -e 's,^\(.*\)$,<A HREF="'$repo_url_prefix'lib/\1'$repo_url_suffix_repl'">\1</A>,' \
1449 -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
1450 test -n "$element" || element='---'
1451 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1453 sed_choose_m4_files='s,^m4/\(.*\)$,\1,p'
1454 element=`(echo "$files" \
1455 | sed -e "$sed_remove_trailing_empty_line" \
1456 | sed -n -e "$sed_choose_m4_files" \
1457 | sed -e '/^onceonly/d' \
1458 -e 's,^\(.*\)$,<A HREF="'$repo_url_prefix'm4/\1'$repo_url_suffix_repl'">\1</A>,'; \
1459 gnulib-tool --extract-autoconf-snippet $1 \
1460 | sed -e "$sed_remove_trailing_empty_line") \
1461 | sed -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
1462 test -n "$element" || element='---'
1463 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1465 element=`gnulib-tool --extract-dependencies $1 \
1466 | sed -e "$sed_remove_trailing_empty_line" \
1467 -e 's/$/<BR>/' | tr -d "$trnl" | sed -e 's/<BR>$//'`
1468 test -n "$element" || element='---'
1469 func_echo "<TD ALIGN=LEFT VALIGN=TOP>$element"
1473 func_append seen_modules " $1"
1474 func_append seen_files " $files"
1487 element="Support for systems lacking ANSI C 89"
1488 func_section_wrap ansic_sup
1490 func_echo "$element"
1505 func_module strerror
1509 func_echo 'Most of these modules are not listed among dependencies below, for simplicity.'
1511 element="Enhancements for ANSI C 89 functions"
1512 func_section_wrap ansic_enh
1514 func_echo "$element"
1516 element="Diagnostics <assert.h>"
1517 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1518 func_section_wrap ansic_enh_assert_diagnostics
1520 func_echo "$element"
1527 element="Memory management functions <stdlib.h>"
1528 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1529 func_section_wrap ansic_enh_stdlib_memory
1531 func_echo "$element"
1539 func_module pagealign_alloc
1542 element="Sorting functions <stdlib.h>"
1543 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1544 func_section_wrap ansic_enh_stdlib_sorting
1546 func_echo "$element"
1552 element="Date and time <time.h>"
1553 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1554 func_section_wrap ansic_enh_time_datetime
1556 func_echo "$element"
1559 func_module fprintftime
1560 func_module strftime
1563 element="Extra functions based on ANSI C 89"
1564 func_section_wrap ansic_ext
1566 func_echo "$element"
1568 element="Memory management functions <stdlib.h>"
1569 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1570 func_section_wrap ansic_ext_stdlib_memory
1572 func_echo "$element"
1577 func_module xalloc-die
1579 func_module alloca-opt
1581 func_module xallocsa
1584 element="Integer arithmetic functions <stdlib.h>"
1585 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1586 func_section_wrap ansic_ext_stdlib_arith
1588 func_echo "$element"
1595 element="Environment variables <stdlib.h>"
1596 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1597 func_section_wrap ansic_ext_stdlib_env
1599 func_echo "$element"
1607 element="Character handling <ctype.h>"
1608 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1609 func_section_wrap ansic_ext_ctype
1611 func_echo "$element"
1617 element="String handling <string.h>"
1618 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1619 func_section_wrap ansic_ext_string
1621 func_echo "$element"
1630 func_module c-strcase
1632 func_module c-strcaseeq
1633 func_module c-strcasestr
1634 func_module strcasestr
1635 func_module strchrnul
1639 func_module strnlen1
1642 func_module c-strstr
1644 #func_module fstrcmp
1645 func_module xstrndup
1648 element="Numeric conversion functions <stdlib.h>"
1649 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1650 func_section_wrap ansic_ext_stdlib_conv
1652 func_echo "$element"
1655 func_module c-strtod
1656 func_module c-strtold
1659 func_module xstrtold
1662 element="Date and time <time.h>"
1663 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1664 func_section_wrap ansic_ext_time_datetime
1666 func_echo "$element"
1674 element="Input/Output <stdio.h>"
1675 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1676 func_section_wrap ansic_ext_stdio
1678 func_echo "$element"
1681 func_module unlocked-io
1682 func_module fwriteerror
1683 func_module vasnprintf
1684 func_module vasprintf
1685 func_module xvasprintf
1688 element="Signal handling <signal.h>"
1689 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1690 func_section_wrap ansic_ext_signal
1692 func_echo "$element"
1695 func_module fatal-signal
1699 element="Command-line arguments"
1700 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1701 func_section_wrap ansic_ext_argv
1703 func_echo "$element"
1706 func_module argmatch
1707 func_module version-etc
1708 func_module version-etc-fsf
1709 func_module long-options
1712 element="Container data structures"
1713 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1714 func_section_wrap ansic_ext_container
1716 func_echo "$element"
1720 func_module array-list
1721 func_module carray-list
1722 func_module linked-list
1723 func_module avltree-list
1724 func_module rbtree-list
1725 func_module linkedhash-list
1726 func_module avltreehash-list
1727 func_module rbtreehash-list
1729 func_module array-oset
1730 func_module avltree-oset
1731 func_module rbtree-oset
1734 element="Cryptographic computations"
1735 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1736 func_section_wrap ansic_ext_crypto
1738 func_echo "$element"
1746 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1747 func_section_wrap ansic_ext_misc
1749 func_echo "$element"
1753 func_module check-version
1756 func_module getdelim
1757 func_module getnline
1758 func_module getndelim2
1759 func_module linebuffer
1761 func_module hash-pjw
1763 func_module readline
1764 func_module readtokens
1765 func_module readtokens0
1766 func_module strverscmp
1769 element="Support for systems lacking ISO C 99"
1770 func_section_wrap isoc_sup
1772 func_echo "$element"
1774 element="Core language properties"
1775 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1776 func_section_wrap isoc_core_properties
1778 func_echo "$element"
1781 func_module flexmember
1782 func_module vararrays
1785 element="Sizes of integer types <limits.h>"
1786 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1787 func_section_wrap isoc_sup_limits
1789 func_echo "$element"
1792 func_module size_max
1795 element="Variable arguments <stdarg.h>"
1796 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1797 func_section_wrap isoc_sup_stdarg
1799 func_echo "$element"
1805 element="Boolean type and values <stdbool.h>"
1806 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1807 func_section_wrap isoc_sup_stdbool
1809 func_echo "$element"
1815 element="Integer types and values <stdint.h>"
1816 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1817 func_section_wrap isoc_sup_stdint
1819 func_echo "$element"
1825 element="Input/output <stdio.h>"
1826 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1827 func_section_wrap isoc_sup_stdio
1829 func_echo "$element"
1832 func_module snprintf
1833 func_module vsnprintf
1836 element="Numeric conversion functions <stdlib.h>"
1837 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1838 func_section_wrap isoc_sup_stdlib_conv
1840 func_echo "$element"
1844 func_module strtoull
1847 element="Functions for greatest-width integer types <inttypes.h>"
1848 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1849 func_section_wrap isoc_sup_inttypes
1851 func_echo "$element"
1854 func_module strtoimax
1855 func_module strtoumax
1858 element="Extended multibyte and wide character utilities <wchar.h>"
1859 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1860 func_section_wrap isoc_sup_wchar
1862 func_echo "$element"
1868 element="Wide character classification and mapping utilities <wctype.h>"
1869 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1870 func_section_wrap isoc_sup_wctype
1872 func_echo "$element"
1878 element="Mathematics <math.h>"
1879 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1880 func_section_wrap isoc_sup_math
1882 func_echo "$element"
1888 element="Enhancements for ISO C 99 functions"
1889 func_section_wrap isoc_enh
1891 func_echo "$element"
1896 element="Extra functions based on ISO C 99"
1897 func_section_wrap isoc_ext
1899 func_echo "$element"
1901 element="Numeric conversion functions <stdlib.h>"
1902 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1903 func_section_wrap isoc_ext_stdlib_conv
1905 func_echo "$element"
1908 func_module intprops
1909 func_module inttostr
1910 func_module xstrtoimax
1911 func_module xstrtoumax
1914 element="Extended multibyte and wide character utilities <wchar.h>"
1915 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
1916 func_section_wrap isoc_ext_wchar_mb
1918 func_echo "$element"
1927 element="Support for systems lacking POSIX:2001"
1928 func_section_wrap posix_sup
1930 func_echo "$element"
1936 func_module ftruncate
1937 func_module getaddrinfo
1939 func_module getgroups
1940 func_module gethostname
1941 func_module getlogin_r
1942 func_module getsubopt
1943 func_module gettimeofday
1944 func_module inet_ntop
1945 func_module inet_pton
1950 func_module readlink
1952 func_module tempname
1954 func_module timespec
1955 func_module nanosleep
1959 func_module sigprocmask
1961 func_module strptime
1962 func_module strtok_r
1963 func_module sys_stat
1964 func_module sys_time
1971 element="Compatibility checks for POSIX:2001 functions"
1972 func_section_wrap posix_compat
1974 func_echo "$element"
1979 func_module link-follow
1980 func_module rename-dest-slash
1981 func_module rmdir-errno
1982 func_module unlink-busy
1983 func_module winsz-ioctl
1984 func_module winsz-termios
1987 element="Enhancements for POSIX:2001 functions"
1988 func_section_wrap posix_enh
1990 func_echo "$element"
1995 func_module unistd-safer
1997 func_module fnmatch-posix
1998 func_module fnmatch-gnu
2003 element="Extra functions based on POSIX:2001"
2004 func_section_wrap posix_ext
2006 func_echo "$element"
2008 element="Numeric conversion functions"
2009 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2010 func_section_wrap posix_ext_conv
2012 func_echo "$element"
2018 element="File system functions"
2019 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2020 func_section_wrap posix_ext_filesys
2022 func_echo "$element"
2026 func_module backupfile
2027 func_module canonicalize
2028 func_module canonicalize-lgpl
2029 func_module clean-temp
2030 func_module copy-file
2031 func_module cycle-check
2034 func_module double-slash-root
2035 func_module euidaccess
2036 func_module file-type
2037 func_module fileblocks
2038 func_module filemode
2039 func_module filenamecat
2041 func_module fts-lgpl
2045 func_module mkancesdirs
2047 func_module modechange
2048 func_module mountlist
2050 func_module pathname
2053 func_module save-cwd
2056 func_module stat-time
2058 func_module unlinkdir
2059 func_module utimecmp
2062 func_module xreadlink
2065 element="File descriptor based Input/Output"
2066 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2067 func_section_wrap posix_ext_filedesc
2069 func_echo "$element"
2072 func_module fcntl-safer
2073 func_module safe-read
2074 func_module safe-write
2075 func_module full-read
2076 func_module full-write
2077 func_module binary-io
2081 element="File stream based Input/Output"
2082 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2083 func_section_wrap posix_ext_filestream
2085 func_echo "$element"
2088 func_module close-stream
2089 func_module closeout
2090 func_module fopen-safer
2091 func_module fpending
2093 func_module getpass-gnu
2094 func_module stdlib-safer
2095 func_module tmpfile-safer
2098 element="Users and groups"
2099 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2100 func_section_wrap posix_ext_uidgid
2102 func_echo "$element"
2105 func_module getugroups
2106 func_module group-member
2108 func_module userspec
2111 element="Date and time"
2112 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2113 func_section_wrap posix_ext_datetime
2115 func_echo "$element"
2121 func_module xnanosleep
2124 element="Networking functions"
2125 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2126 func_section_wrap posix_ext_net
2128 func_echo "$element"
2131 func_module xgethostname
2132 func_module canon-host
2135 element="Multithreading"
2136 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2137 func_section_wrap posix_ext_thread
2139 func_echo "$element"
2146 element="Internationalization functions"
2147 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2148 func_section_wrap posix_ext_i18n
2150 func_echo "$element"
2154 func_module gettext-h
2156 func_module striconv
2157 func_module xstriconv
2158 func_module striconveh
2159 func_module striconveha
2161 func_module localcharset
2162 func_module hard-locale
2166 func_module mbscasecmp
2167 func_module mbswidth
2168 func_module memcasecmp
2170 func_module xmemcoll
2171 func_module unicodeio
2174 func_module linebreak
2175 func_module bison-i18n
2178 element="Unicode string functions"
2179 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2180 func_section_wrap posix_ext_unicode
2182 func_echo "$element"
2185 func_module unitypes
2186 func_module ucs4-utf8
2187 func_module ucs4-utf16
2188 func_module utf8-ucs4-unsafe
2189 func_module utf16-ucs4-unsafe
2190 func_module utf8-ucs4
2191 func_module utf16-ucs4
2192 func_module unistr/base
2193 func_module unistr/u8-to-u16
2194 func_module unistr/u8-to-u32
2195 func_module unistr/u16-to-u8
2196 func_module unistr/u16-to-u32
2197 func_module unistr/u32-to-u8
2198 func_module unistr/u32-to-u16
2199 func_module unistr/u8-check
2200 func_module unistr/u16-check
2201 func_module unistr/u32-check
2202 func_module unistr/u8-chr
2203 func_module unistr/u16-chr
2204 func_module unistr/u32-chr
2205 func_module unistr/u8-cmp
2206 func_module unistr/u16-cmp
2207 func_module unistr/u32-cmp
2208 func_module unistr/u8-cpy
2209 func_module unistr/u16-cpy
2210 func_module unistr/u32-cpy
2211 func_module unistr/u8-cpy-alloc
2212 func_module unistr/u16-cpy-alloc
2213 func_module unistr/u32-cpy-alloc
2214 func_module unistr/u8-endswith
2215 func_module unistr/u16-endswith
2216 func_module unistr/u32-endswith
2217 func_module unistr/u8-mblen
2218 func_module unistr/u16-mblen
2219 func_module unistr/u32-mblen
2220 func_module unistr/u8-mbtouc-unsafe
2221 func_module unistr/u16-mbtouc-unsafe
2222 func_module unistr/u32-mbtouc-unsafe
2223 func_module unistr/u8-mbtouc
2224 func_module unistr/u16-mbtouc
2225 func_module unistr/u32-mbtouc
2226 func_module unistr/u8-move
2227 func_module unistr/u16-move
2228 func_module unistr/u32-move
2229 func_module unistr/u8-next
2230 func_module unistr/u16-next
2231 func_module unistr/u32-next
2232 func_module unistr/u8-prev
2233 func_module unistr/u16-prev
2234 func_module unistr/u32-prev
2235 func_module unistr/u8-set
2236 func_module unistr/u16-set
2237 func_module unistr/u32-set
2238 func_module unistr/u8-startswith
2239 func_module unistr/u16-startswith
2240 func_module unistr/u32-startswith
2241 func_module unistr/u8-stpcpy
2242 func_module unistr/u16-stpcpy
2243 func_module unistr/u32-stpcpy
2244 func_module unistr/u8-stpncpy
2245 func_module unistr/u16-stpncpy
2246 func_module unistr/u32-stpncpy
2247 func_module unistr/u8-strcat
2248 func_module unistr/u16-strcat
2249 func_module unistr/u32-strcat
2250 func_module unistr/u8-strchr
2251 func_module unistr/u16-strchr
2252 func_module unistr/u32-strchr
2253 func_module unistr/u8-strcmp
2254 func_module unistr/u16-strcmp
2255 func_module unistr/u32-strcmp
2256 func_module unistr/u8-strcpy
2257 func_module unistr/u16-strcpy
2258 func_module unistr/u32-strcpy
2259 func_module unistr/u8-strcspn
2260 func_module unistr/u16-strcspn
2261 func_module unistr/u32-strcspn
2262 func_module unistr/u8-strdup
2263 func_module unistr/u16-strdup
2264 func_module unistr/u32-strdup
2265 func_module unistr/u8-strlen
2266 func_module unistr/u16-strlen
2267 func_module unistr/u32-strlen
2268 func_module unistr/u8-strmblen
2269 func_module unistr/u16-strmblen
2270 func_module unistr/u32-strmblen
2271 func_module unistr/u8-strmbtouc
2272 func_module unistr/u16-strmbtouc
2273 func_module unistr/u32-strmbtouc
2274 func_module unistr/u8-strncat
2275 func_module unistr/u16-strncat
2276 func_module unistr/u32-strncat
2277 func_module unistr/u8-strncmp
2278 func_module unistr/u16-strncmp
2279 func_module unistr/u32-strncmp
2280 func_module unistr/u8-strncpy
2281 func_module unistr/u16-strncpy
2282 func_module unistr/u32-strncpy
2283 func_module unistr/u8-strnlen
2284 func_module unistr/u16-strnlen
2285 func_module unistr/u32-strnlen
2286 func_module unistr/u8-strpbrk
2287 func_module unistr/u16-strpbrk
2288 func_module unistr/u32-strpbrk
2289 func_module unistr/u8-strrchr
2290 func_module unistr/u16-strrchr
2291 func_module unistr/u32-strrchr
2292 func_module unistr/u8-strspn
2293 func_module unistr/u16-strspn
2294 func_module unistr/u32-strspn
2295 func_module unistr/u8-strstr
2296 func_module unistr/u16-strstr
2297 func_module unistr/u32-strstr
2298 func_module unistr/u8-strtok
2299 func_module unistr/u16-strtok
2300 func_module unistr/u32-strtok
2301 func_module unistr/u8-uctomb
2302 func_module unistr/u16-uctomb
2303 func_module unistr/u32-uctomb
2304 func_module uniconv/base
2305 func_module uniconv/u8-conv-from-enc
2306 func_module uniconv/u16-conv-from-enc
2307 func_module uniconv/u32-conv-from-enc
2308 func_module uniconv/u8-strconv-from-enc
2309 func_module uniconv/u16-strconv-from-enc
2310 func_module uniconv/u32-strconv-from-enc
2311 func_module uniconv/u8-strconv-to-enc
2312 func_module uniconv/u16-strconv-to-enc
2313 func_module uniconv/u32-strconv-to-enc
2314 func_module uniconv/u8-strconv-from-locale
2315 func_module uniconv/u16-strconv-from-locale
2316 func_module uniconv/u32-strconv-from-locale
2317 func_module uniconv/u8-strconv-to-locale
2318 func_module uniconv/u16-strconv-to-locale
2319 func_module uniconv/u32-strconv-to-locale
2322 element="Executing programs"
2323 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2324 func_section_wrap posix_ext_exec
2326 func_echo "$element"
2330 func_module findprog
2331 func_module wait-process
2334 func_module sh-quote
2338 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2339 func_section_wrap posix_ext_java
2341 func_echo "$element"
2344 func_module classpath
2345 func_module javacomp
2346 func_module javaexec
2347 func_module javaversion
2352 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2353 func_section_wrap posix_ext_csharp
2355 func_echo "$element"
2358 func_module csharpcomp
2359 func_module csharpexec
2363 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2364 func_section_wrap posix_ext_misc
2366 func_echo "$element"
2371 func_module byteswap
2372 func_module exitfail
2375 func_module extensions
2376 func_module getdomainname
2377 func_module xgetdomainname
2378 func_module getloadavg
2379 func_module getpagesize
2380 func_module getusershell
2382 func_module posixver
2383 func_module progname
2384 func_module quotearg
2386 func_module readutmp
2388 func_module sysexits
2390 func_module visibility
2393 element="Support for building libraries and executables"
2394 func_section_wrap build_lib
2396 func_echo "$element"
2399 func_module absolute-header
2400 func_module config-h
2401 func_module configmake
2403 func_module elisp-comp
2405 func_module lib-ignore
2409 element="Support for building documentation"
2410 func_section_wrap build_doc
2412 func_echo "$element"
2419 func_module regexprops-generic
2422 element="Support for maintaining and release projects"
2423 func_section_wrap maintain
2425 func_echo "$element"
2428 func_module gnupload
2429 func_module maintainer-makefile
2433 func_section_wrap misc
2435 func_echo "$element"
2446 trap 'exit_status=$?
2447 if test "$signal" != 0; then
2448 echo "caught signal $signal" >&2
2451 exit $exit_status' 0
2452 for signal in 1 2 3 13 15; do
2453 trap '{ signal='$signal'; func_exit 1; }' $signal
2457 echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">'
2462 element="Gnulib Module List"
2464 func_echo "$element"
2466 modules=`gnulib-tool --list`
2467 modules=`for m in $modules; do printf "%s, " $m; done | sed -e 's/, $//'`
2468 func_echo '<META NAME="keywords" CONTENT="'"${modules}"'">'
2474 element="Gnulib Module List"
2476 func_echo "$element"
2478 func_echo 'This is a list of the modules which make up gnulib, with dependencies.'
2487 gnulib-tool --list > "$tmp/all-modules"
2488 missed_modules=`for module in $seen_modules; do echo $module; done \
2489 | LC_ALL=C sort -u \
2490 | LC_ALL=C join -v 2 - "$tmp/all-modules"`
2492 if test -n "$missed_modules"; then
2494 element="Unclassified modules - please update MODULES.html.sh"
2495 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2497 func_echo "$element"
2500 for module in $missed_modules; do
2507 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"
2508 missed_files=`for file in $seen_files; do echo $file; done \
2509 | LC_ALL=C sort -u \
2510 | LC_ALL=C join -v 2 - "$tmp/all-files"`
2512 if test -n "$missed_files"; then
2514 element="Lone files - please create new modules containing them"
2515 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2517 func_echo "$element"
2520 echo "$missed_files" | sed -e 's,^\(.*\)$,<A HREF="'$repo_url_prefix'\1'$repo_url_suffix_repl'">\1</A>,'
2525 element="Future developments"
2526 element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
2528 func_echo "$element"
2530 func_echo 'Ideally a module could consist of:'
2532 func_echo '<LI>A header file: lib/<VAR>module</VAR>.h'
2533 func_echo '<LI>One or more implementation files: lib/<VAR>module</VAR>.c et al.'
2534 func_echo '<LI>One or more autoconf macro files: m4/<VAR>module</VAR>.m4 et al.'
2535 func_echo '<LI>A configure.ac fragment, Makefile.am fragment, dependency list: modules/<VAR>module</VAR>'
2536 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'
2537 func_echo '<LI>Some documentation'
2538 func_echo '<LI>A POT file and some PO files'
2542 func_echo 'Generated from <CODE>MODULES.html.sh</CODE> on '`LC_ALL=C date +"%e %B %Y"`.
2549 # Undo the effect of the previous 'trap' command.
2551 trap 'func_exit $?' 1 2 3 13 15
2556 # indent-tabs-mode: nil
2557 # whitespace-check-buffer-indent: nil