#!/bin/sh # # Copyright (C) 2002-2024 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 # 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 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # 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='https://pubs.opengroup.org/onlinepubs/009695399' POSIX2008_URL='https://pubs.opengroup.org/onlinepubs/9699919799' # repo_url_prefix and repo_url_suffix are chosen such that # ... # will allow to open the hyperlink and thus see the contents of FILENAME # in the browser. # # There are two possible ways to access files in the git repository: # - Through gitweb. This is the preferred UI for humans. # repo_url_prefix='https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=' # repo_url_suffix='' # - Through cgit. # repo_url_prefix='https://git.savannah.gnu.org/cgit/gnulib.git/plain/' # repo_url_suffix='' # # Unfortunately, the response headers of gitweb are not right. For example, for # FILENAME = lib/stdlib.in.h, gitweb's response headers are: # Content-Type: text/x-chdr; charset=ISO-8859-1 # Content-disposition: inline; filename="lib/stdlib.in.h" # whereas cgit's response headers are: # Content-Type: text/plain; charset=UTF-8 # Content-Disposition: inline; filename="stdlib.in.h" # gitweb's response headers have three problems: # * The content type for .h file is text/x-chdr, for .c files is text/x-csrc. # The effect of this content type is that Firefox (on Ubuntu 22.04), by # default, does not display the contents of the file but instead opens a # download (save) dialog. This is unwelcome in this context. # * The charset=ISO-8859-1 causes incorrect display of non-ASCII characters # for files such as m4/fnmatch.m4, since all of the gnulib repository is # in UTF-8. # * The filename="lib/stdlib.in.h" causes Firefox to propose a file name # 'lib_stdlib.in.h', if the user has chosen to download the file. # These problems come from the gitweb implementation, as can be seen from # https://repo.or.cz/git.git/blame_incremental/HEAD:/gitweb/gitweb.perl # procedure "sub git_blob_plain". It ends up determining the content type # based on some MIME type registry, such as /etc/mime.types. # # So, we better choose cgit here. 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='https://git.savannah.gnu.org/cgit/gnulib.git/plain/' 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' trnl='\012' sed_alt1='s,$,\\|,' sed_alt2='s,^\\|,\\(,' sed_alt3='s,\\|\\|$,\\),' posix_headers=`echo ' aio arpa/inet assert complex cpio ctype dirent dlfcn errno fcntl fenv float fmtmsg fnmatch ftw glob grp iconv inttypes iso646 langinfo libgen limits locale math monetary mqueue ndbm net/if netdb netinet/in netinet/tcp nl_types poll pthread pwd regex sched search semaphore setjmp signal spawn stdarg stdbool stddef stdint stdio stdlib string strings stropts sys/ipc sys/mman sys/msg sys/resource sys/select sys/sem sys/shm sys/socket sys/stat sys/statvfs sys/time sys/times sys/types sys/uio sys/un sys/utsname sys/wait syslog tar termios tgmath time trace ulimit unistd utime utmpx wchar wctype wordexp ' | sed -e "$sed_alt1" | tr -d "$trnl" | sed -e "$sed_alt2" -e "$sed_alt3"` posix2001_headers=`echo ' sys/timeb ucontext ' | sed -e "$sed_alt1" | tr -d "$trnl" | sed -e "$sed_alt2" -e "$sed_alt3"` posix_functions=`echo ' FD_CLR FD_ISSET FD_SET FD_ZERO _Exit _exit _longjmp _setjmp _tolower _toupper a64l abort abs accept access acos acosf acosh acoshf acoshl acosl aio_cancel aio_error aio_fsync aio_read aio_return aio_suspend aio_write alarm alphasort asctime asctime_r asin asinf asinh asinhf asinhl asinl assert atan atan2 atan2f atan2l atanf atanh atanhf atanhl atanl atexit atof atoi atol atoll basename bind bsearch btowc cabs cabsf cabsl cacos cacosf cacosh cacoshf cacoshl cacosl calloc carg cargf cargl casin casinf casinh casinhf casinhl casinl catan catanf catanh catanhf catanhl catanl catclose catgets catopen cbrt cbrtf cbrtl ccos ccosf ccosh ccoshf ccoshl ccosl ceil ceilf ceill cexp cexpf cexpl cfgetispeed cfgetospeed cfsetispeed cfsetospeed chdir chmod chown cimag cimagf cimagl clearerr clock clock_getcpuclockid clock_getres clock_gettime clock_nanosleep clock_settime clog clogf clogl close closedir closelog confstr conj conjf conjl connect copysign copysignf copysignl cos cosf cosh coshf coshl cosl cpow cpowf cpowl cproj cprojf cprojl creal crealf creall creat crypt csin csinf csinh csinhf csinhl csinl csqrt csqrtf csqrtl ctan ctanf ctanh ctanhf ctanhl ctanl ctermid ctime ctime_r daylight dbm_clearerr dbm_close dbm_delete dbm_error dbm_fetch dbm_firstkey dbm_nextkey dbm_open dbm_store difftime dirfd dirname div dlclose dlerror dlopen dlsym dprintf drand48 dup dup2 duplocale encrypt endgrent endhostent endnetent endprotoent endpwent endservent endutxent environ erand48 erf erfc erfcf erfcl erff erfl errno execl execle execlp execv execve execvp exit exp exp2 exp2f exp2l expf expl expm1 expm1f expm1l fabs fabsf fabsl faccessat fattach fchdir fchmod fchmodat fchown fchownat fclose fcntl fdatasync fdetach fdim fdimf fdiml fdopen fdopendir feclearexcept fegetenv fegetexceptflag fegetround feholdexcept feof feraiseexcept ferror fesetenv fesetexceptflag fesetround fetestexcept feupdateenv fexecve fflush ffs fgetc fgetpos fgets fgetwc fgetws fileno flock flockfile floor floorf floorl fma fmaf fmal fmax fmaxf fmaxl fmemopen fmin fminf fminl fmod fmodf fmodl fmtmsg fnmatch fopen fork fpathconf fpclassify fprintf fputc fputs fputwc fputws fread free freeaddrinfo freelocale freopen frexp frexpf frexpl fscanf fseek fseeko fsetpos fstat fstatat fstatvfs fsync ftell ftello ftok ftruncate ftrylockfile ftw funlockfile futimens fwide fwprintf fwrite fwscanf gai_strerror getaddrinfo getc getc_unlocked getchar getchar_unlocked getcwd getdate getdate_err getdelim getegid getenv geteuid getgid getgrent getgrgid getgrgid_r getgrnam getgrnam_r getgroups gethostent gethostid gethostname getitimer getline getlogin getlogin_r getmsg getnameinfo getnetbyaddr getnetbyname getnetent getopt getpeername getpgid getpgrp getpid getpmsg getppid getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwnam_r getpwuid getpwuid_r getrlimit getrusage gets getservbyname getservbyport getservent getsid getsockname getsockopt getsubopt gettimeofday getuid getutxent getutxid getutxline getwc getwchar glob globfree gmtime gmtime_r grantpt hcreate hdestroy hsearch htonl htons hypot hypotf hypotl iconv iconv_close iconv_open if_freenameindex if_indextoname if_nameindex if_nametoindex ilogb ilogbf ilogbl imaxabs imaxdiv inet_addr inet_ntoa inet_ntop inet_pton initstate insque ioctl isalnum isalnum_l isalpha isalpha_l isascii isastream isatty isblank isblank_l iscntrl iscntrl_l isdigit isdigit_l isfinite isgraph isgraph_l isgreater isgreaterequal isinf isless islessequal islessgreater islower islower_l isnan isnormal isprint isprint_l ispunct ispunct_l isspace isspace_l isunordered isupper isupper_l iswalnum iswalnum_l iswalpha iswalpha_l iswblank iswblank_l iswcntrl iswcntrl_l iswctype iswctype_l iswdigit iswdigit_l iswgraph iswgraph_l iswlower iswlower_l iswprint iswprint_l iswpunct iswpunct_l iswspace iswspace_l iswupper iswupper_l iswxdigit iswxdigit_l isxdigit isxdigit_l j0 j1 jn jrand48 kill killpg l64a labs lchown lcong48 ldexp ldexpf ldexpl ldiv lfind lgamma lgammaf lgammal link linkat lio_listio listen llabs lldiv llrint llrintf llrintl llround llroundf llroundl localeconv localtime localtime_r lockf log log10 log10f log10l log1p log1pf log1pl log2 log2f log2l logb logbf logbl logf logl longjmp lrand48 lrint lrintf lrintl lround lroundf lroundl lsearch lseek lstat malloc mblen mbrlen mbrtowc mbsinit mbsnrtowcs mbsrtowcs mbstowcs mbtowc memccpy memchr memcmp memcpy memmove memset mkdir mkdirat mkdtemp mkfifo mkfifoat mknod mknodat mkstemp mktime mlock mlockall mmap modf modff modfl mprotect mq_close mq_getattr mq_notify mq_open mq_receive mq_send mq_setattr mq_timedreceive mq_timedsend mq_unlink mrand48 msgctl msgget msgrcv msgsnd msync munlock munlockall munmap nan nanf nanl nanosleep nearbyint nearbyintf nearbyintl newlocale nextafter nextafterf nextafterl nexttoward nexttowardf nexttowardl nftw nice nl_langinfo nl_langinfo_l nrand48 ntohl ntohs open open_memstream open_wmemstream openat opendir openlog optarg opterr optind optopt pathconf pause pclose perror pipe poll popen posix_fadvise posix_fallocate posix_madvise posix_mem_offset posix_memalign posix_openpt posix_spawn posix_spawn_file_actions_addclose posix_spawn_file_actions_adddup2 posix_spawn_file_actions_addopen posix_spawn_file_actions_destroy posix_spawn_file_actions_init posix_spawnattr_destroy posix_spawnattr_getflags posix_spawnattr_getpgroup posix_spawnattr_getschedparam posix_spawnattr_getschedpolicy posix_spawnattr_getsigdefault posix_spawnattr_getsigmask posix_spawnattr_init posix_spawnattr_setflags posix_spawnattr_setpgroup posix_spawnattr_setschedparam posix_spawnattr_setschedpolicy posix_spawnattr_setsigdefault posix_spawnattr_setsigmask posix_spawnp posix_trace_attr_destroy posix_trace_attr_getclockres posix_trace_attr_getcreatetime posix_trace_attr_getgenversion posix_trace_attr_getinherited posix_trace_attr_getlogfullpolicy posix_trace_attr_getlogsize posix_trace_attr_getmaxdatasize posix_trace_attr_getmaxsystemeventsize posix_trace_attr_getmaxusereventsize posix_trace_attr_getname posix_trace_attr_getstreamfullpolicy posix_trace_attr_getstreamsize posix_trace_attr_init posix_trace_attr_setinherited posix_trace_attr_setlogfullpolicy posix_trace_attr_setlogsize posix_trace_attr_setmaxdatasize posix_trace_attr_setname posix_trace_attr_setstreamfullpolicy posix_trace_attr_setstreamsize posix_trace_clear posix_trace_close posix_trace_create posix_trace_create_withlog posix_trace_event posix_trace_eventid_equal posix_trace_eventid_get_name posix_trace_eventid_open posix_trace_eventset_add posix_trace_eventset_del posix_trace_eventset_empty posix_trace_eventset_fill posix_trace_eventset_ismember posix_trace_eventtypelist_getnext_id posix_trace_eventtypelist_rewind posix_trace_flush posix_trace_get_attr posix_trace_get_filter posix_trace_get_status posix_trace_getnext_event posix_trace_open posix_trace_rewind posix_trace_set_filter posix_trace_shutdown posix_trace_start posix_trace_stop posix_trace_timedgetnext_event posix_trace_trid_eventid_open posix_trace_trygetnext_event posix_typed_mem_get_info posix_typed_mem_open pow powf powl pread printf pselect psiginfo psignal pthread_atfork pthread_attr_destroy pthread_attr_getdetachstate pthread_attr_getguardsize pthread_attr_getinheritsched pthread_attr_getschedparam pthread_attr_getschedpolicy pthread_attr_getscope pthread_attr_getstack pthread_attr_getstacksize pthread_attr_init pthread_attr_setdetachstate pthread_attr_setguardsize pthread_attr_setinheritsched pthread_attr_setschedparam pthread_attr_setschedpolicy pthread_attr_setscope pthread_attr_setstack pthread_attr_setstacksize pthread_barrier_destroy pthread_barrier_init pthread_barrier_wait pthread_barrierattr_destroy pthread_barrierattr_getpshared pthread_barrierattr_init pthread_barrierattr_setpshared pthread_cancel pthread_cleanup_pop pthread_cleanup_push pthread_cond_broadcast pthread_cond_destroy pthread_cond_init pthread_cond_signal pthread_cond_timedwait pthread_cond_wait pthread_condattr_destroy pthread_condattr_getclock pthread_condattr_getpshared pthread_condattr_init pthread_condattr_setclock pthread_condattr_setpshared pthread_create pthread_detach pthread_equal pthread_exit pthread_getconcurrency pthread_getcpuclockid pthread_getschedparam pthread_getspecific pthread_join pthread_key_create pthread_key_delete pthread_kill pthread_mutex_consistent pthread_mutex_destroy pthread_mutex_getprioceiling pthread_mutex_init pthread_mutex_lock pthread_mutex_setprioceiling pthread_mutex_timedlock pthread_mutex_trylock pthread_mutex_unlock pthread_mutexattr_destroy pthread_mutexattr_getprioceiling pthread_mutexattr_getprotocol pthread_mutexattr_getpshared pthread_mutexattr_getrobust pthread_mutexattr_gettype pthread_mutexattr_init pthread_mutexattr_setprioceiling pthread_mutexattr_setprotocol pthread_mutexattr_setpshared pthread_mutexattr_setrobust pthread_mutexattr_settype pthread_once pthread_rwlock_destroy pthread_rwlock_init pthread_rwlock_rdlock pthread_rwlock_timedrdlock pthread_rwlock_timedwrlock pthread_rwlock_tryrdlock pthread_rwlock_trywrlock pthread_rwlock_unlock pthread_rwlock_wrlock pthread_rwlockattr_destroy pthread_rwlockattr_getpshared pthread_rwlockattr_init pthread_rwlockattr_setpshared pthread_self pthread_setcancelstate pthread_setcanceltype pthread_setconcurrency pthread_setschedparam pthread_setschedprio pthread_setspecific pthread_sigmask pthread_spin_destroy pthread_spin_init pthread_spin_lock pthread_spin_trylock pthread_spin_unlock pthread_testcancel ptsname putc putc_unlocked putchar putchar_unlocked putenv putmsg putpmsg puts pututxline putwc putwchar pwrite qsort raise rand rand_r random read readdir readdir_r readlink readlinkat readv realloc realpath recv recvfrom recvmsg regcomp regerror regexec regfree remainder remainderf remainderl remove remque remquo remquof remquol rename renameat rewind rewinddir rint rintf rintl rmdir round roundf roundl scalbln scalblnf scalblnl scalbn scalbnf scalbnl scandir scanf sched_get_priority_max sched_get_priority_min sched_getparam sched_getscheduler sched_rr_get_interval sched_setparam sched_setscheduler sched_yield seed48 seekdir select sem_close sem_destroy sem_getvalue sem_init sem_open sem_post sem_timedwait sem_trywait sem_unlink sem_wait semctl semget semop send sendmsg sendto setbuf setegid setenv seteuid setgid setgrent sethostent setitimer setjmp setkey setlocale setlogmask setnetent setpgid setpgrp setpriority setprotoent setpwent setregid setreuid setrlimit setservent setsid setsockopt setstate setuid setutxent setvbuf shm_open shm_unlink shmat shmctl shmdt shmget shutdown sigaction sigaddset sigaltstack sigdelset sigemptyset sigfillset sighold sigignore siginterrupt sigismember siglongjmp signal signbit signgam sigpause sigpending sigprocmask sigqueue sigrelse sigset sigsetjmp sigsuspend sigtimedwait sigwait sigwaitinfo sin sinf sinh sinhf sinhl sinl sleep snprintf sockatmark socket socketpair sprintf sqrt sqrtf sqrtl srand srand48 srandom sscanf stat statvfs stderr stdin stdout stpcpy stpncpy strcasecmp strcasecmp_l strcat strchr strcmp strcoll strcoll_l strcpy strcspn strdup strerror strerror_l strerror_r strfmon strfmon_l strftime strftime_l strlen strncasecmp strncasecmp_l strncat strncmp strncpy strndup strnlen strpbrk strptime strrchr strsignal strspn strstr strtod strtof strtoimax strtok strtok_r strtol strtold strtoll strtoul strtoull strtoumax strxfrm strxfrm_l swab swprintf swscanf symlink symlinkat sync sysconf syslog system tan tanf tanh tanhf tanhl tanl tcdrain tcflow tcflush tcgetattr tcgetpgrp tcgetsid tcsendbreak tcsetattr tcsetpgrp tdelete telldir tempnam tfind tgamma tgammaf tgammal time timer_create timer_delete timer_getoverrun timer_gettime timer_settime times timezone tmpfile tmpnam toascii tolower tolower_l toupper toupper_l towctrans towctrans_l towlower towlower_l towupper towupper_l trunc truncate truncf truncl tsearch ttyname ttyname_r twalk tzname tzset ulimit umask uname ungetc ungetwc unlink unlinkat unlockpt unsetenv uselocale utime utimensat utimes va_arg va_copy va_end va_start vdprintf vfprintf vfscanf vfwprintf vfwscanf vprintf vscanf vsnprintf vsprintf vsscanf vswprintf vswscanf vwprintf vwscanf wait waitid waitpid wcpcpy wcpncpy wcrtomb wcscasecmp wcscasecmp_l wcscat wcschr wcscmp wcscoll wcscoll_l wcscpy wcscspn wcsdup wcsftime wcslen wcsncasecmp wcsncasecmp_l wcsncat wcsncmp wcsncpy wcsnlen wcsnrtombs wcspbrk wcsrchr wcsrtombs wcsspn wcsstr wcstod wcstof wcstoimax wcstok wcstol wcstold wcstoll wcstombs wcstoul wcstoull wcstoumax wcswidth wcsxfrm wcsxfrm_l wctob wctomb wctrans wctrans_l wctype wctype_l wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wordexp wordfree wprintf write writev wscanf y0 y1 yn ' | sed -e "$sed_alt1" | tr -d "$trnl" | sed -e "$sed_alt2" -e "$sed_alt3"` posix2001_functions=`echo ' bcmp bcopy bsd_signal bzero ecvt fcvt ftime gcvt getcontext gethostbyaddr gethostbyname getwd h_errno index makecontext mktemp pread pthread_attr_getstackaddr pthread_attr_setstackaddr rindex scalb setcontext swapcontext ualarm usleep vfork wcswcs ' | sed -e "$sed_alt1" | tr -d "$trnl" | sed -e "$sed_alt2" -e "$sed_alt3"` indent="" 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. func_echo () { echo "${indent}$*" } # func_indent # increases the indentation. func_indent () { indent="$indent " } # func_unindent # decreases the indentation. func_unindent () { indent=`echo "$indent" | sed -e 's/ $//'` } # func_begin tag [attribute...] # opens a HTML tag. func_begin () { func_echo "<$*>" func_indent } # func_end tag # closes a HTML tag. func_end () { func_unindent func_echo "" } # func_wrap tag [attribute...] # encloses $element in a HTML tag, without line breaks. func_wrap () { element="<$*>${element}" } # func_section_wrap sectiontag # encloses $element in a HTML tag referring to the given tag. func_section_wrap () { if test -n "$in_toc"; then func_wrap A "HREF=\"#$1\"" else func_wrap A "NAME=\"$1\"" fi } # func_begin_table func_begin_table () { func_begin TABLE if test -z "$in_toc"; then func_begin TR func_echo "modules/" func_echo "lib/" func_echo "lib/" func_echo "m4/" func_echo " " func_end TR func_begin TR func_echo "Module" func_echo "Header" func_echo "Implementation" func_echo "Autoconf macro" func_echo "Depends on" func_end TR fi } # func_module module func_module () { sed_remove_trailing_empty_line='${ /^$/d }' if test -n "$in_toc"; then func_begin TR "WIDTH=\"100%\"" element=''$1'' func_echo "$element" # 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 xxx. sed_extract_element=' '$sed_lt' '$sed_gt' '$sed_remove_trailing_empty_line' s,^, , s,$, , s,\([^a-zA-Z_]\)'$posix_functions'() \(function\|macro\),\1\2 \3,g s,\([^a-zA-Z_]\)'$posix_functions' \(function\|macro\),\1\2 \3,g s,\([^a-zA-Z_]\)'$posix_functions'(),\1\2 what?? If you mean a function\, please say so.,g s,\([^a-zA-Z_]\)'$posix2001_functions'() \(function\|macro\),\1\2 \3,g s,\([^a-zA-Z_]\)'$posix2001_functions' \(function\|macro\),\1\2 \3,g s,\([^a-zA-Z_]\)'$posix2001_functions'(),\1\2 what?? If you mean a function\, please say so.,g s,\([^a-zA-Z_]\)\([a-zA-Z_][a-zA-Z0-9_]*\)() \(function\|macro\),\1\2 \3,g s,\([^a-zA-Z_]\)\([a-zA-Z_][a-zA-Z0-9_]*\)(),\1\2 what?? If you mean a function\, please say so.,g s, '"'"'\([a-zA-Z0-9_ -]*\)'"'"'\([^a-zA-Z0-9_]\), \1\2,g s,^ ,, s, $,, ' element=`gnulib-tool --extract-description $1 \ | LC_ALL=C sed -e "$sed_extract_element"` func_echo "$element" func_end TR else func_begin TR element=''$1'' func_echo "$element" includes=`gnulib-tool --extract-include-directive $1` files=`gnulib-tool --extract-filelist $1 \ | grep -v '^m4/gnulib-common\.m4$'` sed_extract_element=' '$sed_lt' '$sed_gt' '$sed_remove_trailing_empty_line' s,^#include "\(.*\)"$,#include "\1", s,^#include <'$posix_headers'\.h>$,#include \<\1.h\>, s,,, s,^#include <'$posix2001_headers'\.h>$,#include \<\1.h\>, s/$/
/ ' element=`echo "$includes" \ | LC_ALL=C sed -e "$sed_extract_element" | tr -d "$trnl" \ | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$element" sed_choose_unconditional_nonstandard_include='s,^#include "\(.*\)"$,\1,p' 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' sed_extract_include=' \|^'"$includefile"'$|d s,^\(.*\)$,\1, s/$/
/ ' element=`echo "$files" \ | sed -e '/^$/d' \ | sed -n -e "$sed_choose_lib_files" \ | sed -e "$sed_extract_include" \ | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$element" sed_choose_m4_files='s,^m4/\(.*\)$,\1,p' sed_extract_repo_url=' /^onceonly/d s,^\(.*\)$,\1, ' element=`(echo "$files" \ | sed -e "$sed_remove_trailing_empty_line" \ | sed -n -e "$sed_choose_m4_files" \ | sed -e "$sed_extract_repo_url"; \ 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" \ -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$element" func_end TR func_append seen_modules " $1" func_append seen_files " $files" fi } # func_end_table func_end_table () { func_end TABLE } # func_all_modules func_all_modules () { element="Support for obsolete systems lacking ANSI C 89" func_section_wrap ansic_sup_obsolete func_wrap H2 func_echo "$element" func_begin_table func_module stdlib func_module strtol func_module strtoul func_module memcmp func_module memcpy func_module memmove func_module memset func_module strcspn func_module strpbrk func_end_table func_echo 'These modules are not listed among dependencies below, for simplicity.' func_echo 'If your package requires portability to old, obsolete systems, you need to list these modules explicitly among the modules to import through gnulib-tool.' element="Support for systems lacking ANSI C 89" func_section_wrap ansic_sup func_wrap H2 func_echo "$element" func_begin_table func_module atexit func_module ctime func_module localtime func_module strtod func_module strerror func_module strerror-override func_module mktime func_end_table element="Enhancements for ANSI C 89 functions" func_section_wrap ansic_enh func_wrap H2 func_echo "$element" element="Diagnostics " 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 assure func_module verify func_end_table element="Mathematics " 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 " 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 " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_enh_stdlib_memory func_wrap H3 func_echo "$element" func_begin_table func_module calloc-gnu func_module eealloc func_module free-posix func_module malloc-gnu func_module memalign func_module realloc-gnu func_module reallocarray 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 array-mergesort func_module mpsort func_module qsort_r 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 func_wrap H3 func_echo "$element" func_begin_table func_module fprintftime func_module nstrftime func_module strftime-fixes func_module time func_module time-h func_module time_rz func_module year2038 func_module year2038-recommended func_end_table element="Extra functions based on ANSI C 89" func_section_wrap ansic_ext func_wrap H2 func_echo "$element" element="Memory management functions " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_stdlib_memory func_wrap H3 func_echo "$element" func_begin_table func_module aligned-malloc func_module ialloc func_module idx func_module immutable func_module malloc-h func_module ssfmalloc func_module xsize func_module xalloc func_module xalloc-die func_module alignalloc func_module xalignalloc func_module alloca func_module alloca-opt func_module malloca func_module xmalloca func_module xmemdup0 func_module safe-alloc func_end_table element="Integer arithmetic functions " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_stdlib_arith func_wrap H3 func_echo "$element" func_begin_table func_module count-leading-zeros func_module count-one-bits func_module count-trailing-zeros func_module ffs func_module ffsl func_module ffsll func_module gcd func_module minmax func_end_table element="Environment variables " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_stdlib_env func_wrap H3 func_echo "$element" func_begin_table func_module putenv func_module secure_getenv func_module setenv func_module unsetenv func_module xsetenv func_end_table element="Character handling " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_ctype func_wrap H3 func_echo "$element" func_begin_table func_module c-ctype func_end_table element="String handling " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_string func_wrap H3 func_echo "$element" func_begin_table func_module bcopy func_module explicit_bzero func_module memchr func_module memchr2 func_module memcmp2 func_module memmem func_module memmem-simple func_module mempcpy func_module memrchr func_module amemxfrm 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 streq func_module strerrorname_np func_module strerror_r-posix func_module string-buffer func_module strnlen func_module strnlen1 func_module strndup func_module strsep func_module strstr func_module strstr-simple func_module c-strstr func_module astrxfrm func_module trim func_module fstrcmp func_module xstrndup func_end_table element="Mathematics " 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 " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_stdlib_conv func_wrap H3 func_echo "$element" func_begin_table func_module c-strtod func_module c-strtold func_module xstrtod func_module xstrtol func_module xstrtol-error func_module xstrtoll func_module xstrtold func_end_table element="Date and time " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_time_datetime func_wrap H3 func_echo "$element" func_begin_table func_module mktime-internal func_module parse-datetime func_module parse-datetime2 func_module timegm func_module tzset func_end_table element="Input/Output " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_stdio func_wrap H3 func_echo "$element" func_begin_table func_module unlocked-io func_module unlocked-io-internal func_module fwriteerror func_module vasnprintf func_module vasprintf func_module xprintf func_module xvasprintf func_end_table element="Signal handling " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_signal func_wrap H3 func_echo "$element" func_begin_table func_module fatal-signal func_module raise func_module sigabbrev_np func_module sigdescr_np func_module strsignal func_end_table element="Wide-character string handling " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_wchar func_wrap H3 func_echo "$element" func_begin_table func_module wmempcpy func_end_table element="Command-line arguments" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_argv func_wrap H3 func_echo "$element" func_begin_table func_module argmatch func_module argv-iter func_module version-etc func_module version-etc-fsf func_module long-options func_end_table 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 xlist 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 xsublist func_module oset func_module xoset func_module array-oset func_module avltree-oset func_module rbtree-oset func_module stack 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 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/md2-buffer func_module crypto/md4 func_module crypto/md4-buffer func_module crypto/md5 func_module crypto/md5-buffer func_module crypto/rijndael func_module crypto/sha1 func_module crypto/sha1-buffer func_module crypto/sha256 func_module crypto/sha256-buffer func_module crypto/sha512 func_module crypto/sha512-buffer func_module crypto/sm3 func_module crypto/sm3-buffer 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 func_module crypto/gc-pbkdf2-sha1 func_module crypto/gc-random func_module crypto/gc-rijndael func_module crypto/gc-sha1 func_module crypto/gc-sm3 func_end_table element="Compiler warning management" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_compwarn func_wrap H3 func_echo "$element" func_begin_table func_module ignore-value func_end_table element="Misc" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_misc func_wrap H3 func_echo "$element" func_begin_table func_module base32 func_module base64 func_module check-version func_module crc func_module diffseq func_module execinfo 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-pjw-bare func_module hash func_module hamt func_module readline func_module readtokens func_module readtokens0 func_module stack func_module strverscmp func_module filevercmp func_end_table element="Support for systems lacking ISO C 99" func_section_wrap isoc_sup 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 alignof func_module c99 func_module flexmember func_module fpucw func_module func func_module inline func_module longlong func_module snippet/unused-parameter func_module va-args func_module vararrays func_module vla func_end_table element="Variable arguments " 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 " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_stdbool func_wrap H3 func_echo "$element" func_begin_table func_module stdbool func_end_table element="Basic types " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_stddef func_wrap H3 func_echo "$element" func_begin_table func_module stddef func_end_table element="Integer types and values " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_stdint func_wrap H3 func_echo "$element" func_begin_table func_module size_max func_module stdint func_end_table element="Input/output " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_stdio func_wrap H3 func_echo "$element" func_begin_table func_module stdio func_module snprintf func_module vsnprintf func_end_table element="Process control, Numeric conversion functions " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_stdlib_procconv func_wrap H3 func_echo "$element" func_begin_table func_module _Exit func_module atoll func_module strtoll func_module strtoull func_end_table element="Unibyte characters " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_ctype func_wrap H3 func_echo "$element" func_begin_table func_module ctype func_end_table element="Functions for greatest-width integer types " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_inttypes func_wrap H3 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="String handling " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_string func_wrap H3 func_echo "$element" func_begin_table func_module strncat 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_module btowc func_module wctob func_module mbsinit func_module mbrlen func_module mbrtowc func_module mbsrtowcs func_module wcrtomb func_module wcsrtombs 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="Characteristics of floating types " 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 " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_math func_wrap H3 func_echo "$element" func_begin_table func_module acos func_module acosl func_module asin func_module asinl func_module atan func_module atan2 func_module atanl func_module cbrt func_module ceil func_module ceilf func_module ceill func_module copysign func_module cos func_module cosh func_module cosl func_module erf func_module erfc func_module exp func_module expl func_module fabs func_module floor func_module floorf func_module floorl func_module fmod func_module frexp func_module frexp-nolibm func_module frexpl func_module frexpl-nolibm func_module hypot 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 j0 func_module j1 func_module jn func_module ldexp func_module ldexpl func_module lgamma func_module log func_module log10 func_module log1p func_module logb func_module logl func_module math func_module mathl func_module modf func_module nextafter func_module pow func_module remainder func_module rint func_module round func_module roundf func_module roundl func_module signbit func_module sin func_module sinh func_module sinl func_module sqrt func_module sqrtl func_module tan func_module tanh func_module tanl func_module trunc func_module truncf func_module truncl func_module y0 func_module y1 func_module yn func_end_table element="Enhancements for ISO C 99 functions" func_section_wrap isoc_enh func_wrap H2 func_echo "$element" element="Input/output " 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" func_section_wrap isoc_ext func_wrap H2 func_echo "$element" element="Mathematics " 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 " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_ext_stdlib_conv func_wrap H3 func_echo "$element" func_begin_table func_module c-dtoastr func_module c-ldtoastr func_module dtoastr func_module ftoastr func_module intprops func_module inttostr func_module ldtoastr func_module xstrtoimax func_module xstrtoumax 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_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 ISO C 11" func_section_wrap c11_sup func_wrap H2 func_echo "$element" element="Core language properties" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap c11_core_properties func_wrap H3 func_echo "$element" func_begin_table func_module noreturn func_module std-gnu11 func_module stdalign func_end_table element="Support for standard extensions to ISO C 11" func_section_wrap c11_ext func_wrap H2 func_echo "$element" func_begin_table func_module attribute func_module builtin-expect func_module ieee754-h func_module limits-h func_end_table element="Support for systems lacking draft ISO C 23" func_section_wrap c23_ext func_wrap H2 func_echo "$element" element="Core language properties" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap c23_core_properties func_wrap H3 func_echo "$element" func_begin_table func_module alignasof func_module nullptr func_module stdckdint func_end_table element="Memory management functions " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_stdlib_memory func_wrap H3 func_echo "$element" func_begin_table func_module aligned_alloc func_end_table element="String handling " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap c23_ext_string func_wrap H3 func_echo "$element" func_begin_table func_module memset_explicit func_end_table element="Date and time " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap c23_ext_string func_wrap H3 func_echo "$element" func_begin_table func_module timespec_get func_module timespec_getres func_end_table element="Support for GNU multiple precision arithmetic" func_section_wrap gmp func_wrap H2 func_echo "$element" func_begin_table func_module libgmp func_end_table element="Support for sharing code with the GNU C Library" func_section_wrap glibc func_wrap H2 func_echo "$element" func_begin_table func_module libc-config func_end_table element="Support for obsolete systems lacking POSIX:2008" func_section_wrap posix_sup_obsolete func_wrap H2 func_echo "$element" func_begin_table func_module strdup func_end_table func_echo 'These modules are not listed among dependencies below, for simplicity.' func_echo 'If your package requires portability to old, obsolete systems, you need to list these modules explicitly among the modules to import through gnulib-tool.' element="Support for systems lacking POSIX:2008" func_section_wrap posix_sup func_wrap H2 func_echo "$element" func_begin_table func_module accept func_module alphasort func_module arpa_inet func_module bind func_module calloc-posix func_module chmod func_module chmodat func_module chown func_module chownat func_module close func_module connect func_module dirent func_module dprintf func_module dprintf-posix func_module dup2 func_module duplocale func_module environ func_module errno func_module execl func_module execle func_module execlp func_module execv func_module execve func_module execvp func_module execvpe func_module fallocate-posix func_module fchdir func_module fclose func_module fcntl-h func_module fcntl func_module fdatasync func_module flock func_module fopen func_module fprintf-posix func_module freopen func_module fseek func_module fseeko func_module fsync func_module ftell func_module ftello func_module ftruncate func_module futimens func_module getaddrinfo func_module getcwd func_module getcwd-lgpl func_module getgroups func_module gethostname func_module getlogin func_module getlogin_r func_module getopt-posix func_module getpeername func_module getsockname func_module getsockopt func_module getsubopt func_module gettimeofday func_module grantpt func_module hostent func_module iconv-h func_module iconv_open func_module inet_ntop func_module inet_pton func_module ioctl func_module isblank func_module langinfo func_module link func_module linkat func_module listen func_module locale func_module lseek func_module lstat func_module malloc-posix func_module mbsnrtowcs func_module mkdir func_module mkdtemp func_module mkfifo func_module mknod func_module mkstemp func_module net_if func_module netdb func_module netinet_in func_module nl_langinfo func_module open func_module perror func_module poll func_module popen func_module posix_memalign func_module posix_openpt func_module posix_spawn func_module posix_spawnattr_destroy func_module posix_spawnattr_getflags func_module posix_spawnattr_getpgroup func_module posix_spawnattr_getschedparam func_module posix_spawnattr_getschedpolicy func_module posix_spawnattr_getsigdefault func_module posix_spawnattr_getsigmask func_module posix_spawnattr_init func_module posix_spawnattr_setflags func_module posix_spawnattr_setpgroup func_module posix_spawnattr_setschedparam func_module posix_spawnattr_setschedpolicy func_module posix_spawnattr_setsigdefault func_module posix_spawnattr_setsigmask func_module posix_spawn_file_actions_addclose func_module posix_spawn_file_actions_adddup2 func_module posix_spawn_file_actions_addopen func_module posix_spawn_file_actions_destroy func_module posix_spawn_file_actions_init func_module posix_spawn-internal func_module posix_spawnp func_module pread func_module printf-posix func_module pselect func_module pthread func_module ptsname func_module pwrite func_module readlink func_module realloc-posix func_module recv func_module recvfrom func_module remove func_module scandir func_module sched func_module select func_module send func_module sendto func_module servent func_module setsockopt func_module shutdown func_module signal-h func_module sleep func_module snprintf-posix func_module socket func_module spawn func_module sprintf-posix func_module stat func_module strdup-posix func_module string func_module strings func_module tempname func_module time func_module time_r func_module times func_module timespec func_module nanosleep func_module pthread_sigmask func_module regex func_module rename func_module renameat 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 sys_times func_module sys_uio func_module sys_utsname func_module sys_wait func_module truncate func_module tsearch func_module ttyname_r func_module uname func_module unistd func_module unlink func_module unlockpt func_module utime func_module utime-h func_module utimensat func_module vasnprintf-posix func_module vasprintf-posix func_module vdprintf func_module vdprintf-posix func_module vfprintf-posix func_module vprintf-posix func_module vsnprintf-posix func_module vsprintf-posix func_module wcsnrtombs func_module wcwidth func_module windows-spawn func_module windows-stat-inodes func_module windows-stat-override func_module windows-stat-timespec func_module write func_end_table element="Compatibility checks for POSIX:2008 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 eloop-threshold func_module link-follow func_module rmdir-errno func_module timer-time func_module unlink-busy func_module winsz-ioctl func_module winsz-termios func_end_table element="Enhancements for POSIX:2008 functions" func_section_wrap posix_enh func_wrap H2 func_echo "$element" func_begin_table func_module chdir-long func_module basename-lgpl func_module dirent-safer func_module dirname func_module dirname-lgpl func_module getopt-gnu func_module iconv_open-utf func_module unistd-safer func_module fnmatch func_module fnmatch-gnu func_module glob func_module exclude func_end_table element="Extra functions based on POSIX:2008" func_section_wrap posix_ext 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 func_wrap H3 func_echo "$element" func_begin_table func_module human func_end_table element="File system functions" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_filesys func_wrap H3 func_echo "$element" func_begin_table func_module acl func_module acl-permissions func_module areadlink func_module areadlink-with-size func_module areadlinkat func_module areadlinkat-with-size func_module backupfile func_module backup-rename func_module canonicalize func_module canonicalize-lgpl func_module clean-temp func_module clean-temp-simple func_module concat-filename func_module copy-file func_module fsusage func_module dirfd func_module double-slash-root func_module euidaccess func_module faccessat func_module fdopendir func_module fdutimensat func_module file-type func_module fileblocks func_module filemode func_module filename func_module filenamecat func_module filenamecat-lgpl func_module fts func_module isdir func_module largefile func_module lchmod func_module lchown func_module mkancesdirs func_module mkfifoat func_module mkdir-p func_module mkostemp func_module mkostemps func_module mkstemps func_module modechange func_module mountlist func_module openat func_module openat-die func_module pathmax func_module qacl func_module qcopy-acl func_module qset-acl func_module read-file func_module readlinkat func_module renameatu func_module same func_module save-cwd func_module savedir func_module savewd func_module stat-macros func_module stat-time func_module symlink func_module symlinkat func_module sys_file func_module sys_ioctl func_module tmpdir func_module unlinkdir func_module utimecmp func_module utimens func_module write-any-file func_module xconcat-filename func_module xgetcwd func_module xreadlink func_module xreadlinkat 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 func_wrap H3 func_echo "$element" func_begin_table func_module binary-io func_module copy-file-range func_module dup3 func_module fcntl-safer func_module fd-safer-flag func_module full-read func_module full-write func_module getdtablesize func_module isapipe func_module openat-safer func_module pipe-posix func_module pipe2 func_module pipe2-safer func_module safe-read func_module safe-write func_end_table element="File stream based Input/Output" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_filestream func_wrap H3 func_echo "$element" func_begin_table func_module close-stream func_module closein func_module closeout func_module fbufmode func_module fopen-gnu 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 freopen-safer func_module fwritable func_module fwriting func_module getpass func_module getpass-gnu func_module popen-safer func_module supersede func_module stdlib-safer func_module tmpfile-safer func_module xfreopen func_end_table element="Users and groups" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_uidgid func_wrap H3 func_echo "$element" func_begin_table func_module getugroups func_module group-member func_module idcache func_module mgetgroups func_module userspec func_end_table element="Security" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_security func_wrap H3 func_echo "$element" func_begin_table func_module getumask func_module idpriv-drop func_module idpriv-droptemp func_module priv-set func_end_table element="Date and time" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_datetime func_wrap H3 func_echo "$element" func_begin_table func_module gethrxtime func_module gettime func_module gettime-res func_module posixtm func_module settime func_module usleep func_module xnanosleep func_end_table element="Networking functions" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_net func_wrap H3 func_echo "$element" func_begin_table func_module accept4 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 asyncsafe-spin func_module lock func_module simple-atomic 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 func_module sigpipe-die func_module sigsegv func_end_table element="Terminal I/O" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_terminal_io func_wrap H3 func_echo "$element" func_begin_table func_module termcap func_module termcap-h func_module terminfo func_module terminfo-h func_end_table element="Internationalization functions" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_i18n func_wrap H3 func_echo "$element" func_begin_table func_module gettext func_module gettext-h func_module propername func_module propername-lite func_module iconv func_module striconv func_module xstriconv func_module striconveh func_module xstriconveh func_module striconveha func_module localcharset func_module hard-locale func_module localename func_module mbmemcasecmp func_module mbmemcasecoll 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 func_module xmemcoll 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 libunistring func_module libunistring-optional 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 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-cmp2 func_module unistr/u16-cmp2 func_module unistr/u32-cmp2 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-strcoll func_module unistr/u16-strcoll func_module unistr/u32-strcoll 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/bidiclass-byname func_module unictype/bidiclass-name func_module unictype/bidiclass-longname func_module unictype/bidiclass-of func_module unictype/bidiclass-test func_module unictype/bidiclass-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-case-ignorable func_module unictype/property-cased func_module unictype/property-changes-when-casefolded func_module unictype/property-changes-when-casemapped func_module unictype/property-changes-when-lowercased func_module unictype/property-changes-when-titlecased func_module unictype/property-changes-when-uppercased 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 uniwbrk/base func_module uniwbrk/ulc-wordbreaks func_module uniwbrk/u8-wordbreaks func_module uniwbrk/u16-wordbreaks func_module uniwbrk/u32-wordbreaks func_module uniwbrk/wordbreak-property 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_module uninorm/base func_module uninorm/canonical-decomposition func_module uninorm/composition func_module uninorm/decomposing-form func_module uninorm/decomposition func_module uninorm/filter func_module uninorm/nfc func_module uninorm/nfd func_module uninorm/nfkc func_module uninorm/nfkd func_module uninorm/u8-normalize func_module uninorm/u16-normalize func_module uninorm/u32-normalize func_module uninorm/u8-normcmp func_module uninorm/u16-normcmp func_module uninorm/u32-normcmp func_module uninorm/u8-normcoll func_module uninorm/u16-normcoll func_module uninorm/u32-normcoll func_module uninorm/u8-normxfrm func_module uninorm/u16-normxfrm func_module uninorm/u32-normxfrm func_module unicase/base func_module unicase/empty-prefix-context func_module unicase/empty-suffix-context func_module unicase/locale-language func_module unicase/tolower func_module unicase/totitle func_module unicase/toupper func_module unicase/ulc-casecmp func_module unicase/ulc-casecoll func_module unicase/ulc-casexfrm func_module unicase/u8-casecmp func_module unicase/u16-casecmp func_module unicase/u32-casecmp func_module unicase/u8-casecoll func_module unicase/u16-casecoll func_module unicase/u32-casecoll func_module unicase/u8-casefold func_module unicase/u16-casefold func_module unicase/u32-casefold func_module unicase/u8-casexfrm func_module unicase/u16-casexfrm func_module unicase/u32-casexfrm func_module unicase/u8-ct-casefold func_module unicase/u16-ct-casefold func_module unicase/u32-ct-casefold func_module unicase/u8-ct-tolower func_module unicase/u16-ct-tolower func_module unicase/u32-ct-tolower func_module unicase/u8-ct-totitle func_module unicase/u16-ct-totitle func_module unicase/u32-ct-totitle func_module unicase/u8-ct-toupper func_module unicase/u16-ct-toupper func_module unicase/u32-ct-toupper func_module unicase/u8-is-cased func_module unicase/u16-is-cased func_module unicase/u32-is-cased func_module unicase/u8-is-casefolded func_module unicase/u16-is-casefolded func_module unicase/u32-is-casefolded func_module unicase/u8-is-lowercase func_module unicase/u16-is-lowercase func_module unicase/u32-is-lowercase func_module unicase/u8-is-titlecase func_module unicase/u16-is-titlecase func_module unicase/u32-is-titlecase func_module unicase/u8-is-uppercase func_module unicase/u16-is-uppercase func_module unicase/u8-prefix-context func_module unicase/u16-prefix-context func_module unicase/u32-prefix-context func_module unicase/u8-suffix-context func_module unicase/u16-suffix-context func_module unicase/u32-suffix-context func_module unicase/u8-tolower func_module unicase/u16-tolower func_module unicase/u32-tolower func_module unicase/u8-totitle func_module unicase/u16-totitle func_module unicase/u32-totitle func_module unicase/u8-toupper func_module unicase/u16-toupper func_module unicase/u32-toupper func_end_table element="Executing programs" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_exec func_wrap H3 func_echo "$element" func_begin_table func_module cloexec func_module findprog func_module findprog-lgpl func_module wait-process func_module execute func_module spawn-pipe func_module pipe-filter-gi func_module pipe-filter-ii func_module sh-quote func_end_table element="Java" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap posix_ext_java func_wrap H3 func_echo "$element" 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 func_wrap H3 func_echo "$element" func_begin_table func_module argp func_module argp-version-etc func_module argz func_module attribute func_module bitrotate func_module byteswap func_module dfa func_module exitfail func_module error func_module extensions func_module forkpty func_module getdomainname func_module xgetdomainname func_module getentropy func_module getloadavg func_module getpagesize func_module getprogname func_module getrandom func_module getusershell func_module lib-symbol-visibility func_module login_tty func_module nproc func_module openpty func_module parse-duration func_module physmem func_module posixver func_module progname func_module ptsname_r func_module pty func_module quotearg func_module quote func_module readutmp func_module random_r func_module selinux-h func_module selinux-at func_module sysexits func_module sys_random func_module u64 func_module verror 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 snippet/arg-nonnull func_module bison func_module config-h func_module configmake func_module dummy func_module gperf func_module havelib func_module include_next func_module ldd func_module lib-ignore func_module lib-msvc-compat func_module lib-symbol-versions func_module snippet/link-warning func_module manywarnings 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_module snippet/warn-on-use func_module warnings func_end_table element="Support for building documentation" func_section_wrap build_doc func_wrap H2 func_echo "$element" func_begin_table func_module agpl-3.0 func_module fdl func_module fdl-1.3 func_module gendocs func_module gpl-2.0 func_module gpl-3.0 func_module lgpl-2.1 func_module lgpl-3.0 func_module pmccabe2html 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 do-release-commit-and-tag func_module git-version-gen func_module gitlog-to-changelog func_module gnu-web-doc-update func_module gnumakefile func_module gnupload func_module maintainer-makefile func_module mktempd func_module non-recursive-gnulib-prefix-hack func_module readme-release func_module test-framework-sh func_module update-copyright func_module useless-if-before-free func_module vc-list-files func_module vcs-to-changelog 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" != EXIT; then echo "caught signal SIG$signal" >&2 fi rm -rf "$tmp" exit $exit_status' EXIT for signal in HUP INT QUIT PIPE TERM; do trap '{ signal='$signal'; func_exit 1; }' $signal done signal=EXIT echo '' func_begin HTML func_begin HEAD element="Gnulib Module List" func_wrap TITLE func_echo "$element" modules=`gnulib-tool --list` modules=`for m in $modules; do printf "%s, " $m; done | sed -e 's/, $//'` func_echo '' func_end HEAD func_begin BODY element="Gnulib Module List" func_wrap H1 func_echo "$element" func_echo 'This is a list of the modules which make up gnulib, with dependencies.' in_toc=yes 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" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_wrap H2 func_echo "$element" func_begin_table for module in $missed_modules; do func_module $module done func_end_table fi { find lib -type f -print; find m4 -type f -print; } | LC_ALL=C sort | sed -e '/\/\./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" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_wrap H2 func_echo "$element" func_echo '
'
  echo "$missed_files" | sed -e 's,^\(.*\)$,\1,'
  echo '
' fi element="Future developments" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_wrap H2 func_echo "$element" func_echo 'Ideally a module could consist of:' func_begin UL func_echo '
  • A header file: lib/module.h' func_echo '
  • One or more implementation files: lib/module.c et al.' func_echo '
  • One or more autoconf macro files: m4/module.m4 et al.' func_echo '
  • A configure.ac fragment, Makefile.am fragment, dependency list: modules/module' func_echo '
  • A testsuite: source files in tests/ and metainformation (a configure.ac fragment, Makefile.am fragment, dependency list) in modules/module-tests' func_echo '
  • Some documentation' func_echo '
  • A POT file and some PO files' func_end UL func_echo '
    ' git_checkout_date=`if test -d .git; then git log -n 1 --date=iso --format=fuller | sed -n -e 's/^CommitDate: //p'; else sed -n -e 's/^\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\).*/\1/p' -e 1q ChangeLog; fi` pretty_date=`LC_ALL=C date +"%e %B %Y" --date="$git_checkout_date"` func_echo "Generated by MODULES.html.sh from a git checkout as of ${pretty_date}." func_end BODY func_end HTML rm -rf "$tmp" # Undo the effect of the previous 'trap' command. trap '' EXIT trap 'func_exit $?' HUP INT QUIT PIPE TERM exit 0 # Local Variables: # indent-tabs-mode: nil # whitespace-check-buffer-indent: nil # End: