X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=MODULES.html.sh;h=63b16c998c132559b6ca36e98faf292c3c4bf66f;hb=9d162a1de906d622c116dd3e30c0ef673904a783;hp=3120c94a46374d17482b7c27c836d0105c6602b2;hpb=4b7ef766f7aeee130dcf6b2426d4e0bb1e8d5007;p=gnulib.git diff --git a/MODULES.html.sh b/MODULES.html.sh index 3120c94a4..63b16c998 100755 --- a/MODULES.html.sh +++ b/MODULES.html.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (C) 2002-2006 Free Software Foundation, Inc. +# Copyright (C) 2002-2007 Free Software Foundation, Inc. # # 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 @@ -17,7 +17,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -# Usage: MODULES.html.sh > MODULES.html +# Usage: MODULES.html.sh [--cvs-urls|--git-urls] > MODULES.html # Extend the PATH so that gnulib-tool is found. PATH=`dirname "$0"`:$PATH; export PATH @@ -28,6 +28,25 @@ case $USER in POSIX2001_URL='file:/packages/www/www.opengroup.org/susv3' ;; esac +repo_url_prefix= +repo_url_suffix= +if test $# != 0; then + case "$1" in + --cvs-urls) + # Generate URLs to the official gnulib CVS repository. + repo_url_prefix='http://cvs.sv.gnu.org/viewcvs/*checkout*/gnulib/' + repo_url_suffix='?root=gnulib&content-type=text/plain' + ;; + --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,<,\<,g' sed_gt='s,>,\>,g' sed_escape_dot='s,\.,\\.,g' @@ -1243,8 +1262,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 +1410,11 @@ func_module () element=''$1'' func_echo "$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\2(),g' | sed -e 's,^ ,,'` + element=`gnulib-tool --extract-description $1 \ + | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \ + -e 's,^, ,' \ + -e 's,\([^a-zA-Z]\)'"${posix_functions}"'(),\1\2(),g' \ + -e 's,^ ,,'` func_echo "$element" func_end TR @@ -1346,39 +1423,55 @@ func_module () func_begin TR - element=''$1'' + element=''$1'' func_echo "$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 "\1",' -e 's,^#include <'"${posix_headers}"'\.h>$,#include \<\1.h\>,' | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` + includes=`gnulib-tool --extract-include-directive $1` + files=`gnulib-tool --extract-filelist $1` + element=`echo "$includes" \ + | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \ + -e 's,^#include "\(.*\)"$,#include "\1",' \ + -e 's,^#include <'"${posix_headers}"'\.h>$,#include \<\1.h\>,' \ + -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$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,^\(.*\)$,\1,' | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` + element=`echo "$files" \ + | sed -e '/^$/d' \ + | sed -n -e "$sed_choose_lib_files" \ + | sed -e '/^'"${includefile}"'$/d' \ + -e 's,^\(.*\)$,\1,' \ + -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$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,^\(.*\)$,\1,'; gnulib-tool --extract-autoconf-snippet $1 | sed -e "$sed_remove_trailing_empty_line") | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` + element=`(echo "$files" \ + | sed -e "$sed_remove_trailing_empty_line" \ + | sed -n -e "$sed_choose_m4_files" \ + | sed -e '/^onceonly/d' \ + -e 's,^\(.*\)$,\1,'; \ + gnulib-tool --extract-autoconf-snippet $1 \ + | sed -e "$sed_remove_trailing_empty_line") \ + | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$element" - element=`gnulib-tool --extract-dependencies $1 | sed -e "$sed_remove_trailing_empty_line" | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` + element=`gnulib-tool --extract-dependencies $1 \ + | sed -e "$sed_remove_trailing_empty_line" \ + -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$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 } @@ -1409,7 +1502,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 @@ -1447,6 +1539,16 @@ func_all_modules () func_module pagealign_alloc func_end_table + element="Sorting functions " + 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 " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_enh_time_datetime @@ -1527,14 +1629,18 @@ func_all_modules () func_module stpncpy func_module c-strcase func_module strcase + func_module c-strcaseeq func_module c-strcasestr func_module strcasestr func_module strchrnul func_module strdup + func_module streq func_module strnlen func_module strnlen1 func_module strndup func_module strsep + func_module c-strstr + func_module trim #func_module fstrcmp func_module xstrndup func_end_table @@ -1665,6 +1771,17 @@ func_all_modules () func_wrap H2 func_echo "$element" + element="Core language properties" + element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` + func_section_wrap isoc_core_properties + func_wrap H3 + func_echo "$element" + + func_begin_table + func_module flexmember + func_module vararrays + func_end_table + element="Sizes of integer types " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_limits @@ -1738,6 +1855,26 @@ func_all_modules () func_module strtoumax func_end_table + element="Extended multibyte and wide character utilities " + 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 " + 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="Mathematics " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_math @@ -1795,6 +1932,7 @@ func_all_modules () func_begin_table func_module chown func_module dup2 + func_module fchdir func_module ftruncate func_module getaddrinfo func_module getcwd @@ -1806,20 +1944,26 @@ func_all_modules () func_module inet_ntop func_module inet_pton func_module mkdir - func_module mkstemp func_module mkdtemp + func_module mkstemp func_module poll func_module readlink func_module lstat + 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 sigprocmask func_module ssize_t + func_module strptime func_module strtok_r func_module sys_stat + func_module sys_time + func_module tsearch func_module unistd func_module utime func_module wcwidth @@ -1830,9 +1974,11 @@ func_all_modules () func_wrap H2 func_echo "$element" + func_begin_table 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 @@ -1880,11 +2026,13 @@ func_all_modules () func_module acl func_module backupfile func_module canonicalize + func_module canonicalize-lgpl 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 @@ -1899,11 +2047,13 @@ func_all_modules () func_module mkdir-p func_module modechange func_module mountlist + func_module openat func_module pathname func_module pathmax func_module same func_module save-cwd func_module savedir + func_module savewd func_module stat-time func_module tmpdir func_module unlinkdir @@ -1926,6 +2076,7 @@ func_all_modules () func_module full-read func_module full-write func_module binary-io + func_module isapipe func_end_table element="File stream based Input/Output" @@ -2003,9 +2154,24 @@ func_all_modules () func_module gettext func_module gettext-h func_module iconv + func_module striconv + func_module xstriconv + func_module striconveh + func_module striconveha func_module iconvme func_module localcharset func_module hard-locale + func_module mbslen + func_module mbschr + func_module mbsrchr + func_module mbsstr + func_module mbscasecmp + 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 @@ -2013,12 +2179,152 @@ func_all_modules () func_module unicodeio func_module rpmatch func_module yesno + func_module linebreak + 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 bison-i18n + 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-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-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-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_end_table element="Executing programs" @@ -2098,9 +2404,14 @@ func_all_modules () 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 ldd func_module lib-ignore + func_module no-c++ func_end_table element="Support for building documentation" @@ -2111,6 +2422,8 @@ func_all_modules () func_begin_table func_module fdl func_module gendocs + func_module gpl + func_module lgpl func_module regexprops-generic func_end_table @@ -2137,6 +2450,18 @@ func_all_modules () } +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 '' func_begin HTML @@ -2166,6 +2491,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" @@ -2181,6 +2512,11 @@ if test -n "$missed_modules"; then fi +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" +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" @@ -2189,7 +2525,7 @@ if test -n "$missed_files"; then func_echo "$element" func_echo '
'
-  echo "$missed_files" | sed -e 's,^\(.*\)$,\1,'
+  echo "$missed_files" | sed -e 's,^\(.*\)$,\1,'
   echo '
' fi @@ -2216,3 +2552,15 @@ func_echo 'Generated from MODULES.html.sh 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: