| #!/bin/sh | 
 | bindir=$1 | 
 |  | 
 | VERSION=1.0 | 
 |  | 
 | egrep -h @deftypefu?nx? *.texi ../linuxthreads/*.texi | | 
 | sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' | | 
 | sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' | | 
 | sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' | | 
 | sed -e '/^pthread_cleanup/d' -e '/^IFTODT$/d' -e '/^DTTOIF$/d' | | 
 | sed -e '/^__fwriting$/d' -e '/^__fwritable$/d' -e '/^__fsetlocking$/d' | | 
 | sed -e '/^__freading$/d' -e '/^__freadable$/d' -e '/^__fpurge$/d' | | 
 | sed -e '/^__fpending$/d' -e '/^__flbf$/d' -e '/^__fbufsize$/d' | | 
 | sed -e '/^alloca$/d' | | 
 | sort -u > DOCUMENTED | 
 |  | 
 | nm --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 | | 
 | egrep " [TW] ([[:alpha:]]|_[[:alpha:]])" | | 
 | sed 's/\(@.*\)//' | | 
 | cut -b 12- | | 
 | sed -e '/^_IO/d' -e '/^_dl/d' -e '/^_pthread/d' -e '/^_obstack/d' | | 
 | sed -e '/^_argp/d' -e '/^_authenticate$/d' -e '/^_environ$/d' | | 
 | sed -e '/^_errno$/d' -e '/^_h_errno$/d' -e '/^_longjmp$/d' | | 
 | sed -e '/^_mcleanup$/d' -e '/^_rpc_dtablesize$/d' -e '/^_seterr_reply$/d' | | 
 | sed -e '/^_nss/d' -e '/^_setjmp$/d' | | 
 | sort -u > AVAILABLE | 
 |  | 
 | cat <<EOF | 
 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 
 | <html> | 
 |   <head> | 
 |     <title>Undocumented glibc functions</title> | 
 |   </head> | 
 |  | 
 |   <body> | 
 |     <center><h1>Undocumented <tt>glibc</tt> functions</h1></center> | 
 |  | 
 |     <p>The following table includes names of the function in glibc | 
 |     which are not yet documented in the manual.  This list is | 
 |     automatically created and therefore might contain errors.  Please | 
 |     check the latest manual (available from the CVS archive) before | 
 |     starting to work.  It might also be good to let me know in | 
 |     advanace on which functions you intend to work to avoid | 
 |     duplication.</p> | 
 |  | 
 |     <p>A few comments:</p> | 
 |  | 
 |     <ul> | 
 |       <li>Some functions in the list are much less important than | 
 |       others.  Please prioritize.</li> | 
 |  | 
 |       <li>Similarly for the LFS functions (those ending in 64).</li> | 
 |     </ul> | 
 |  | 
 |     <p>The function sombody already volunteered to document are marked | 
 |     with a reference to the person.</p> | 
 |  | 
 |     <center><table> | 
 | EOF | 
 |  | 
 | n=0 | 
 | diff -y --width=60 --suppress-common-lines DOCUMENTED AVAILABLE | | 
 | expand | cut -b 33- | sed '/^[[:space:]]*$/d' | | 
 | while read name; do | 
 |   line="$line | 
 | <td><tt>$name</tt></td>" | 
 |   n=$(expr $n + 1) | 
 |   if [ $n -eq 4 ]; then | 
 |     echo "<tr> | 
 | $line | 
 | </tr>" | 
 |     line="" | 
 |     n=0 | 
 |   fi | 
 | done | 
 | if [ $n -gt 0 ]; then | 
 |   if [ $n -eq 1 ]; then | 
 |     line="$line | 
 | <td></td>" | 
 |   fi | 
 |   if [ $n -eq 2 ]; then | 
 |     line="$line | 
 | <td></td>" | 
 |   fi | 
 |   if [ $n -eq 3 ]; then | 
 |     line="$line | 
 | <td></td>" | 
 |   fi | 
 |   echo "<tr> | 
 | $line | 
 | </tr>" | 
 | fi | 
 |  | 
 | cat <<EOF | 
 |     </table></center> | 
 |  | 
 |     <hr> | 
 |     <address><a href="mailto:drepper@redhat.com">Ulrich Drepper</a></address> | 
 | Generated on $(date) with documented.sh version $VERSION | 
 |   </body> | 
 | </html> | 
 | EOF |