#! /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
