1#!/bin/sh 2bindir=$1 3 4VERSION=1.0 5 6grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi | 7sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' | 8sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' | 9sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' | 10sed -e '/^pthread_cleanup/d' -e '/^IFTODT$/d' -e '/^DTTOIF$/d' | 11sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' | 12sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' | 13sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' | 14sed -e '/^alloca$/d' | 15sort -u > DOCUMENTED 16 17nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so | 18grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" | 19sed 's/\(@.*\)//' | 20cut -b 12- | 21sed -e '/^_IO/d' -e '/^_dl/d' -e '/^_pthread/d' -e '/^_obstack/d' | 22sed -e '/^_argp/d' -e '/^_authenticate$/d' -e '/^_environ$/d' | 23sed -e '/^_errno$/d' -e '/^_h_errno$/d' -e '/^_longjmp$/d' | 24sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e '/^_seterr_reply$/d' | 25sed -e '/^_nss/d' -e '/^_setjmp$/d' | 26sort -u > AVAILABLE 27 28cat <<EOF 29<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 30<html> 31 <head> 32 <title>Undocumented glibc functions</title> 33 </head> 34 35 <body> 36 <center><h1>Undocumented <tt>glibc</tt> functions</h1></center> 37 38 <p>The following table includes names of the function in glibc 39 which are not yet documented in the manual. This list is 40 automatically created and therefore might contain errors. Please 41 check the latest manual (available from the CVS archive) before 42 starting to work. It might also be good to let me know in 43 advanace on which functions you intend to work to avoid 44 duplication.</p> 45 46 <p>A few comments:</p> 47 48 <ul> 49 <li>Some functions in the list are much less important than 50 others. Please prioritize.</li> 51 52 <li>Similarly for the LFS functions (those ending in 64).</li> 53 </ul> 54 55 <p>The function sombody already volunteered to document are marked 56 with a reference to the person.</p> 57 58 <center><table> 59EOF 60 61n=0 62diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE | 63expand | cut -b 33- | sed '/^[[:space:]]*$/d' | 64while read name; do 65 line="$line 66<td><tt>$name</tt></td>" 67 n=$(expr $n + 1) 68 if [ $n -eq 4 ]; then 69 echo "<tr> 70$line 71</tr>" 72 line="" 73 n=0 74 fi 75done 76if [ $n -gt 0 ]; then 77 if [ $n -eq 1 ]; then 78 line="$line 79<td></td>" 80 fi 81 if [ $n -eq 2 ]; then 82 line="$line 83<td></td>" 84 fi 85 if [ $n -eq 3 ]; then 86 line="$line 87<td></td>" 88 fi 89 echo "<tr> 90$line 91</tr>" 92fi 93 94cat <<EOF 95 </table></center> 96 97 <hr> 98 <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address> 99Generated on $(date) with documented.sh version $VERSION 100 </body> 101</html> 102EOF 103