#!/bin/sh
# this shellscript extracts:
#  photo
#  hypertext
#  xygraph
#  barchart
#  tkemacs
#
INPUT_FILE=/tmp/removeMe
OUTPUT_FILE=/tmp/removeMeToo
TO_WORD=PleaseDontFindThis
COL_CMD="col -b"
MAN_ARGS=""
MAN_CMD="man"
MAN_PATH=""
HELP_ROOT=./xfhelp/pages

ARGC=$#
while [ $ARGC -gt 0 ]; do
  C=$1
  shift
  ARGC=`expr $ARGC - 1`
  case $C in
  -c)
    if [ $ARGC -gt 0 ]; then
      C=$1
      shift
      ARGC=`expr $ARGC - 1`
      COL_CMD=$C
    else
      echo "makeAdd error: expected col command for -c"
      exit 2
    fi;;
  -m)
    if [ $ARGC -gt 0 ]; then
      C=$1
      shift
      ARGC=`expr $ARGC - 1`
      MAN_PATH=$C
    else
      echo "makeAdd error: expected pathnames for -m"
      exit 2
    fi;;
  *)
    echo "makeAdd error: unknown option"
    echo "usage:"
    echo -n "makeAdd "
    echo -n "[-c <col command>] "
    echo -n "[-m <man path>] "
    exit 2
  esac
done

echo "The following manual pages may not exist on your system!"
echo "They are only present if you have installed the patches"
echo "adding the following widgets to the standard wish."

if ( test "$COL_CMD" = "" ); then
  COL_CMD="col -b"
fi

if ( test "$MAN_PATH" = "" ); then
  MAN_PATH=$MANPATH
fi

mkdir $HELP_ROOT  1>/dev/null 2>&1
mkdir $HELP_ROOT/Tk  1>/dev/null 2>&1
mkdir $HELP_ROOT/Tk/widgets  1>/dev/null 2>&1

rm $INPUT_FILE 1>/dev/null 2>&1

# tk_bargraph
#########################
WIDGET=tk_bargraph
mkdir $HELP_ROOT/Tk/widgets/$WIDGET 1>/dev/null 2>&1

(MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $WIDGET 2>/dev/null) | $COL_CMD > $INPUT_FILE 2>/dev/null
LINE_NUMBER=`wc -l $INPUT_FILE | awk '{print $1}'`
if ( test -s $INPUT_FILE -a $LINE_NUMBER -gt 10 ); then
  echo ""
  echo "Extracting from: $WIDGET"
  for i in "^NAME$" \
           "^[ 	]+pathName[ 	]+set" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+get" \
           "^[ 	]+pathName[ 	]+start" \
           "^[ 	]+pathName[ 	]+stop" \
           "^[ 	]+pathName[ 	]+swap" \
           "^[ 	]+pathName[ 	]+replace"; do
    FROM_LINE=`egrep -n "$i" $INPUT_FILE | awk -F: '{print $1}'`
    case $i in
      "^NAME$")
        echo "Extracting: Description"
        TO_WORD="^WIDGET[ 	]+COMMAND"
        OUTPUT_FILE=Bargraph.H;;
      "^[ 	]+pathName[ 	]+set")
        echo "Extracting: set"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=set.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+get"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+get")
        echo "Extracting: get"
        TO_WORD="^[ 	]+pathName[ 	]+start"
        OUTPUT_FILE=get.H;;
      "^[ 	]+pathName[ 	]+start")
        echo "Extracting: start"
        TO_WORD="^[ 	]+pathName[ 	]+stop"
        OUTPUT_FILE=start.H;;
      "^[ 	]+pathName[ 	]+stop")
        echo "Extracting: stop"
        TO_WORD="^[ 	]+pathName[ 	]+swap"
        OUTPUT_FILE=stop.H;;
      "^[ 	]+pathName[ 	]+swap")
        echo "Extracting: swap"
        TO_WORD="^[ 	]+pathName[ 	]+replace"
        OUTPUT_FILE=swap.H;;
      "^[ 	]+pathName[ 	]+replace")
        echo "Extracting: replace"
        TO_WORD="^BUGS"
        OUTPUT_FILE=replace.H;;
    esac
    TO_LINE=`egrep -n "$TO_WORD" $INPUT_FILE | awk -F: '{print $1}'`
    if ( test "$FROM_LINE" = ""); then
      echo "I could not find: $i"
    fi
    if ( test "$TO_LINE" = ""); then
      echo "I could not find: $TO_WORD"
    fi
    if ( test "$FROM_LINE" != "" && test "$TO_LINE" != ""); then
      awk '
        BEGIN {
          fromLine='$FROM_LINE'
          toLine='$TO_LINE'
        }
        {
          if (NR >= fromLine && NR < toLine) {
            print
          }
        }' < $INPUT_FILE | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$WIDGET(n)/d" | sed -e "/$WIDGET(1)/d" | sed -e "/$WIDGET(3)/d" | uniq > $HELP_ROOT/Tk/widgets/$WIDGET/$OUTPUT_FILE
    fi
  done
else
  echo "I was not able to find: $WIDGET"
fi

rm $INPUT_FILE 1>/dev/null 2>&1

# tk_dial
#########################
WIDGET=tk_dial
mkdir $HELP_ROOT/Tk/widgets/$WIDGET 1>/dev/null 2>&1

(MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $WIDGET 2>/dev/null) | $COL_CMD > $INPUT_FILE 2>/dev/null
LINE_NUMBER=`wc -l $INPUT_FILE | awk '{print $1}'`
if ( test -s $INPUT_FILE -a $LINE_NUMBER -gt 10 ); then
  echo ""
  echo "Extracting from: $WIDGET"
  for i in "^NAME$" \
           "^[ 	]+pathName[ 	]+set" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+get" \
           "^[ 	]+pathName[ 	]+start" \
           "^[ 	]+pathName[ 	]+stop" \
           "^[ 	]+pathName[ 	]+swap" \
           "^[ 	]+pathName[ 	]+replace"; do
    FROM_LINE=`egrep -n "$i" $INPUT_FILE | awk -F: '{print $1}'`
    case $i in
      "^NAME$")
        echo "Extracting: Description"
        TO_WORD="^WIDGET[ 	]+COMMAND"
        OUTPUT_FILE=Dial.H;;
      "^[ 	]+pathName[ 	]+set")
        echo "Extracting: set"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=set.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+get"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+get")
        echo "Extracting: get"
        TO_WORD="^[ 	]+pathName[ 	]+start"
        OUTPUT_FILE=get.H;;
      "^[ 	]+pathName[ 	]+start")
        echo "Extracting: start"
        TO_WORD="^[ 	]+pathName[ 	]+stop"
        OUTPUT_FILE=start.H;;
      "^[ 	]+pathName[ 	]+stop")
        echo "Extracting: stop"
        TO_WORD="^[ 	]+pathName[ 	]+swap"
        OUTPUT_FILE=stop.H;;
      "^[ 	]+pathName[ 	]+swap")
        echo "Extracting: swap"
        TO_WORD="^[ 	]+pathName[ 	]+replace"
        OUTPUT_FILE=swap.H;;
      "^[ 	]+pathName[ 	]+replace")
        echo "Extracting: replace"
        TO_WORD="^KEYWORDS"
        OUTPUT_FILE=replace.H;;
    esac
    TO_LINE=`egrep -n "$TO_WORD" $INPUT_FILE | awk -F: '{print $1}'`
    if ( test "$FROM_LINE" = ""); then
      echo "I could not find: $i"
    fi
    if ( test "$TO_LINE" = ""); then
      echo "I could not find: $TO_WORD"
    fi
    if ( test "$FROM_LINE" != "" && test "$TO_LINE" != ""); then
      awk '
        BEGIN {
          fromLine='$FROM_LINE'
          toLine='$TO_LINE'
        }
        {
          if (NR >= fromLine && NR < toLine) {
            print
          }
        }' < $INPUT_FILE | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$WIDGET(n)/d" | sed -e "/$WIDGET(1)/d" | sed -e "/$WIDGET(3)/d" | uniq > $HELP_ROOT/Tk/widgets/$WIDGET/$OUTPUT_FILE
    fi
  done
else
  echo "I was not able to find: $WIDGET"
fi

rm $INPUT_FILE 1>/dev/null 2>&1

# tk_pie
#########################
WIDGET=tk_pie
mkdir $HELP_ROOT/Tk/widgets/$WIDGET 1>/dev/null 2>&1

(MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $WIDGET 2>/dev/null) | $COL_CMD > $INPUT_FILE 2>/dev/null
LINE_NUMBER=`wc -l $INPUT_FILE | awk '{print $1}'`
if ( test -s $INPUT_FILE -a $LINE_NUMBER -gt 10 ); then
  echo ""
  echo "Extracting from: $WIDGET"
  for i in "^NAME$" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+get" \
           "^[ 	]+pathName[ 	]+set" \
           "^[ 	]+pathName[ 	]+start" \
           "^[ 	]+pathName[ 	]+stop"; do
    FROM_LINE=`egrep -n "$i" $INPUT_FILE | awk -F: '{print $1}'`
    case $i in
      "^NAME$")
        echo "Extracting: Description"
        TO_WORD="^WIDGET[ 	]+COMMAND"
        OUTPUT_FILE=Pie.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+get"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+get")
        echo "Extracting: get"
        TO_WORD="^[ 	]+pathName[ 	]+set"
        OUTPUT_FILE=get.H;;
      "^[ 	]+pathName[ 	]+set")
        echo "Extracting: set"
        TO_WORD="^[ 	]+pathName[ 	]+start"
        OUTPUT_FILE=set.H;;
      "^[ 	]+pathName[ 	]+start")
        echo "Extracting: start"
        TO_WORD="^[ 	]+pathName[ 	]+stop"
        OUTPUT_FILE=start.H;;
      "^[ 	]+pathName[ 	]+stop")
        echo "Extracting: stop"
        TO_WORD="^KEYWORDS"
        OUTPUT_FILE=stop.H;;
    esac
    TO_LINE=`egrep -n "$TO_WORD" $INPUT_FILE | awk -F: '{print $1}'`
    if ( test "$FROM_LINE" = ""); then
      echo "I could not find: $i"
    fi
    if ( test "$TO_LINE" = ""); then
      echo "I could not find: $TO_WORD"
    fi
    if ( test "$FROM_LINE" != "" && test "$TO_LINE" != ""); then
      awk '
        BEGIN {
          fromLine='$FROM_LINE'
          toLine='$TO_LINE'
        }
        {
          if (NR >= fromLine && NR < toLine) {
            print
          }
        }' < $INPUT_FILE | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$WIDGET(n)/d" | sed -e "/$WIDGET(1)/d" | sed -e "/$WIDGET(3)/d" | uniq > $HELP_ROOT/Tk/widgets/$WIDGET/$OUTPUT_FILE
    fi
  done
else
  echo "I was not able to find: $WIDGET"
fi

rm $INPUT_FILE 1>/dev/null 2>&1

# tk_stripchart
#########################
WIDGET=tk_stripchart
mkdir $HELP_ROOT/Tk/widgets/$WIDGET 1>/dev/null 2>&1

(MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $WIDGET 2>/dev/null) | $COL_CMD > $INPUT_FILE 2>/dev/null
LINE_NUMBER=`wc -l $INPUT_FILE | awk '{print $1}'`
if ( test -s $INPUT_FILE -a $LINE_NUMBER -gt 10 ); then
  echo ""
  echo "Extracting from: $WIDGET"
  for i in "^NAME$" \
           "^[ 	]+pathName[ 	]+set" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+get" \
           "^[ 	]+pathName[ 	]+reset" \
           "^[ 	]+pathName[ 	]+start" \
           "^[ 	]+pathName[ 	]+stop" \
           "^[ 	]+pathName[ 	]+swap" \
           "^[ 	]+pathName[ 	]+replace"; do
    FROM_LINE=`egrep -n "$i" $INPUT_FILE | awk -F: '{print $1}'`
    case $i in
      "^NAME$")
        echo "Extracting: Description"
        TO_WORD="^WIDGET[ 	]+COMMAND"
        OUTPUT_FILE=Stripchart.H;;
      "^[ 	]+pathName[ 	]+set")
        echo "Extracting: set"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=set.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+get"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+get")
        echo "Extracting: get"
        TO_WORD="^[ 	]+pathName[ 	]+reset"
        OUTPUT_FILE=get.H;;
      "^[ 	]+pathName[ 	]+reset")
        echo "Extracting: reset"
        TO_WORD="^[ 	]+pathName[ 	]+start"
        OUTPUT_FILE=reset.H;;
      "^[ 	]+pathName[ 	]+start")
        echo "Extracting: start"
        TO_WORD="^[ 	]+pathName[ 	]+stop"
        OUTPUT_FILE=start.H;;
      "^[ 	]+pathName[ 	]+stop")
        echo "Extracting: stop"
        TO_WORD="^[ 	]+pathName[ 	]+swap"
        OUTPUT_FILE=stop.H;;
      "^[ 	]+pathName[ 	]+swap")
        echo "Extracting: swap"
        TO_WORD="^[ 	]+pathName[ 	]+replace"
        OUTPUT_FILE=swap.H;;
      "^[ 	]+pathName[ 	]+replace")
        echo "Extracting: replace"
        TO_WORD="^KEYWORDS"
        OUTPUT_FILE=replace.H;;
    esac
    TO_LINE=`egrep -n "$TO_WORD" $INPUT_FILE | awk -F: '{print $1}'`
    if ( test "$FROM_LINE" = ""); then
      echo "I could not find: $i"
    fi
    if ( test "$TO_LINE" = ""); then
      echo "I could not find: $TO_WORD"
    fi
    if ( test "$FROM_LINE" != "" && test "$TO_LINE" != ""); then
      awk '
        BEGIN {
          fromLine='$FROM_LINE'
          toLine='$TO_LINE'
        }
        {
          if (NR >= fromLine && NR < toLine) {
            print
          }
        }' < $INPUT_FILE | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$WIDGET(n)/d" | sed -e "/$WIDGET(1)/d" | sed -e "/$WIDGET(3)/d" | uniq > $HELP_ROOT/Tk/widgets/$WIDGET/$OUTPUT_FILE
    fi
  done
else
  echo "I was not able to find: $WIDGET"
fi

rm $INPUT_FILE 1>/dev/null 2>&1

# photo
#########################
WIDGET=photo
mkdir $HELP_ROOT/Tk/widgets/$WIDGET 1>/dev/null 2>&1

(MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $WIDGET 2>/dev/null) | $COL_CMD > $INPUT_FILE 2>/dev/null
LINE_NUMBER=`wc -l $INPUT_FILE | awk '{print $1}'`
if ( test -s $INPUT_FILE -a $LINE_NUMBER -gt 10 ); then
  echo ""
  echo "Extracting from: $WIDGET"
  for i in "^NAME$" \
           "^[ 	]+pathName[ 	]+blank" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+dither" \
           "^[ 	]+pathName[ 	]+put" \
           "^[ 	]+pathName[ 	]+redither" \
           "^[ 	]+pathName[ 	]+scan option" \
           "^[ 	]+pathName[ 	]+xview" \
           "^[ 	]+pathName[ 	]+yview";do
    FROM_LINE=`egrep -n "$i" $INPUT_FILE | awk -F: '{print $1}'`
    case $i in
      "^NAME$")
        echo "Extracting: Description"
        TO_WORD="^WIDGET[ 	]+COMMAND"
        OUTPUT_FILE=Photo.H;;
      "^[ 	]+pathName[ 	]+blank")
        echo "Extracting: blank"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=blank.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+dither"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+dither")
        echo "Extracting: dither"
        TO_WORD="^[ 	]+pathName[ 	]+put"
        OUTPUT_FILE=dither.H;;
      "^[ 	]+pathName[ 	]+put")
        echo "Extracting: put"
        TO_WORD="^[ 	]+pathName[ 	]+redither"
        OUTPUT_FILE=put.H;;
      "^[ 	]+pathName[ 	]+redither")
        echo "Extracting: redither"
        TO_WORD="^[ 	]+pathName[ 	]+scan option"
        OUTPUT_FILE=redither.H;;
      "^[ 	]+pathName[ 	]+scan option")
        echo "Extracting: scan"
        TO_WORD="^[ 	]+pathName[ 	]+xview"
        OUTPUT_FILE=scan.H;;
      "^[ 	]+pathName[ 	]+xview")
        echo "Extracting: xview"
        TO_WORD="^[ 	]+pathName[ 	]+yview"
        OUTPUT_FILE=xview.H;;
      "^[ 	]+pathName[ 	]+yview")
        echo "Extracting: yview"
        TO_WORD="^BINDINGS"
        OUTPUT_FILE=yview.H;;
    esac
    TO_LINE=`egrep -n "$TO_WORD" $INPUT_FILE | awk -F: '{print $1}'`
    if ( test "$FROM_LINE" = ""); then
      echo "I could not find: $i"
    fi
    if ( test "$TO_LINE" = ""); then
      echo "I could not find: $TO_WORD"
    fi
    if ( test "$FROM_LINE" != "" && test "$TO_LINE" != ""); then
      awk '
        BEGIN {
          fromLine='$FROM_LINE'
          toLine='$TO_LINE'
        }
        {
          if (NR >= fromLine && NR < toLine) {
            print
          }
        }' < $INPUT_FILE | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$WIDGET(n)/d" | sed -e "/$WIDGET(1)/d" | sed -e "/$WIDGET(3)/d" | uniq > $HELP_ROOT/Tk/widgets/$WIDGET/$OUTPUT_FILE
    fi
  done
else
  echo "I was not able to find: $WIDGET"
fi

rm $INPUT_FILE 1>/dev/null 2>&1

# hypertext
#########################
WIDGET=htext
mkdir $HELP_ROOT/Tk/widgets/$WIDGET 1>/dev/null 2>&1

(MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $WIDGET 2>/dev/null) | $COL_CMD > $INPUT_FILE 2>/dev/null
LINE_NUMBER=`wc -l $INPUT_FILE | awk '{print $1}'`
if ( test -s $INPUT_FILE -a $LINE_NUMBER -gt 10 ); then
  echo ""
  echo "Extracting from: $WIDGET"
  for i in "^NAME$" \
           "^[ 	]+pathName[ 	]+append" \
           "^[ 	]+pathName[ 	]+gotoline" \
           "^[ 	]+pathName[ 	]+childconfigure" \
           "^[ 	]+pathName[ 	]+xview" \
           "^[ 	]+pathName[ 	]+yview" \
           "^[ 	]+pathName[ 	]+map" \
           "^[ 	]+pathName[ 	]+unmap";do
    FROM_LINE=`egrep -n "$i" $INPUT_FILE | awk -F: '{print $1}'`
    case $i in
      "^NAME$")
        echo "Extracting: Description"
        TO_WORD="^WIDGET[ 	]+COMMAND"
        OUTPUT_FILE=HText.H;;
      "^[ 	]+pathName[ 	]+append")
        echo "Extracting: append"
        TO_WORD="^[ 	]+pathName[ 	]+gotoline"
        OUTPUT_FILE=append.H;;
      "^[ 	]+pathName[ 	]+gotoline")
        echo "Extracting: gotoline"
        TO_WORD="^[ 	]+pathName[ 	]+childconfigure"
        OUTPUT_FILE=gotoline.H;;
      "^[ 	]+pathName[ 	]+childconfigure")
        echo "Extracting: childconfigure"
        TO_WORD="^[ 	]+pathName[ 	]+xview"
        OUTPUT_FILE=childconf.H;;
      "^[ 	]+pathName[ 	]+xview")
        echo "Extracting: xview"
        TO_WORD="^[ 	]+pathName[ 	]+yview"
        OUTPUT_FILE=xview.H;;
      "^[ 	]+pathName[ 	]+yview")
        echo "Extracting: yview"
        TO_WORD="^[ 	]+pathName[ 	]+map"
        OUTPUT_FILE=yview.H;;
      "^[ 	]+pathName[ 	]+map")
        echo "Extracting: map"
        TO_WORD="^[ 	]+pathName[ 	]+unmap"
        OUTPUT_FILE=map.H;;
      "^[ 	]+pathName[ 	]+unmap")
        echo "Extracting: unmap"
        TO_WORD="^KEYWORDS"
        OUTPUT_FILE=unmap.H;;
    esac
    TO_LINE=`egrep -n "$TO_WORD" $INPUT_FILE | awk -F: '{print $1}'`
    if ( test "$FROM_LINE" = ""); then
      echo "I could not find: $i"
    fi
    if ( test "$TO_LINE" = ""); then
      echo "I could not find: $TO_WORD"
    fi
    if ( test "$FROM_LINE" != "" && test "$TO_LINE" != ""); then
      awk '
        BEGIN {
          fromLine='$FROM_LINE'
          toLine='$TO_LINE'
        }
        {
          if (NR >= fromLine && NR < toLine) {
            print
          }
        }' < $INPUT_FILE | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$WIDGET(n)/d" | sed -e "/$WIDGET(1)/d" | sed -e "/$WIDGET(3)/d" | uniq > $HELP_ROOT/Tk/widgets/$WIDGET/$OUTPUT_FILE
    fi
  done
else
  echo "I was not able to find: $WIDGET"
fi

rm $INPUT_FILE 1>/dev/null 2>&1

# XYGraph
#########################
WIDGET=xygraph
mkdir $HELP_ROOT/Tk/widgets/$WIDGET 1>/dev/null 2>&1

(MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $WIDGET 2>/dev/null) | $COL_CMD > $INPUT_FILE 2>/dev/null
LINE_NUMBER=`wc -l $INPUT_FILE | awk '{print $1}'`
if ( test -s $INPUT_FILE -a $LINE_NUMBER -gt 10 ); then
  echo ""
  echo "Extracting from: $WIDGET"
  for i in "^NAME$" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+delete" \
           "^[ 	]+pathName[ 	]+insert" \
           "^[ 	]+pathName[ 	]+limits" \
           "^[ 	]+pathName[ 	]+lineconfigure" \
           "^[ 	]+pathName[ 	]+locate" \
           "^[ 	]+pathName[ 	]+names" \
           "^[ 	]+pathName[ 	]+newtag" \
           "^[ 	]+pathName[ 	]+postscript" \
           "^[ 	]+pathName[ 	]+show" \
           "^[ 	]+pathName[ 	]+tagconfigure" \
           "^[ 	]+pathName[ 	]+untag";do
    FROM_LINE=`egrep -n "$i" $INPUT_FILE | awk -F: '{print $1}'`
    case $i in
      "^NAME$")
        echo "Extracting: Description"
        TO_WORD="^WIDGET[ 	]+COMMAND"
        OUTPUT_FILE=XYGraph.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+delete"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+delete")
        echo "Extracting: delete"
        TO_WORD="^[ 	]+pathName[ 	]+insert"
        OUTPUT_FILE=delete.H;;
      "^[ 	]+pathName[ 	]+insert")
        echo "Extracting: insert"
        TO_WORD="^[ 	]+pathName[ 	]+limits"
        OUTPUT_FILE=insert.H;;
      "^[ 	]+pathName[ 	]+limits")
        echo "Extracting: limits"
        TO_WORD="^[ 	]+pathName[ 	]+lineconfigure"
        OUTPUT_FILE=limits.H;;
      "^[ 	]+pathName[ 	]+lineconfigure")
        echo "Extracting: lineconfigure"
        TO_WORD="^[ 	]+pathName[ 	]+locate"
        OUTPUT_FILE=lineconfig.H;;
      "^[ 	]+pathName[ 	]+locate")
        echo "Extracting: locate"
        TO_WORD="^[ 	]+pathName[ 	]+names"
        OUTPUT_FILE=locate.H;;
      "^[ 	]+pathName[ 	]+names")
        echo "Extracting: names"
        TO_WORD="^[ 	]+pathName[ 	]+newtag"
        OUTPUT_FILE=names.H;;
      "^[ 	]+pathName[ 	]+newtag")
        echo "Extracting: newtag"
        TO_WORD="^[ 	]+pathName[ 	]+postscript"
        OUTPUT_FILE=newtag.H;;
      "^[ 	]+pathName[ 	]+postscript")
        echo "Extracting: postscript"
        TO_WORD="^[ 	]+pathName[ 	]+show"
        OUTPUT_FILE=postscript.H;;
      "^[ 	]+pathName[ 	]+show")
        echo "Extracting: show"
        TO_WORD="^[ 	]+pathName[ 	]+tagconfigure"
        OUTPUT_FILE=show.H;;
      "^[ 	]+pathName[ 	]+tagconfigure")
        echo "Extracting: tagconfigure"
        TO_WORD="^[ 	]+pathName[ 	]+untag"
        OUTPUT_FILE=tagconfig.H;;
      "^[ 	]+pathName[ 	]+untag")
        echo "Extracting: untag"
        TO_WORD="^KEYWORDS"
        OUTPUT_FILE=untag.H;;
    esac
    TO_LINE=`egrep -n "$TO_WORD" $INPUT_FILE | awk -F: '{print $1}'`
    if ( test "$FROM_LINE" = ""); then
      echo "I could not find: $i"
    fi
    if ( test "$TO_LINE" = ""); then
      echo "I could not find: $TO_WORD"
    fi
    if ( test "$FROM_LINE" != "" && test "$TO_LINE" != ""); then
      awk '
        BEGIN {
          fromLine='$FROM_LINE'
          toLine='$TO_LINE'
        }
        {
          if (NR >= fromLine && NR < toLine) {
            print
          }
        }' < $INPUT_FILE | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$WIDGET(n)/d" | sed -e "/$WIDGET(1)/d" | sed -e "/$WIDGET(3)/d" | uniq > $HELP_ROOT/Tk/widgets/$WIDGET/$OUTPUT_FILE
    fi
  done
else
  echo "I was not able to find: $WIDGET"
fi

rm $INPUT_FILE 1>/dev/null 2>&1

# Barchart
#########################
WIDGET=barchart
mkdir $HELP_ROOT/Tk/widgets/$WIDGET 1>/dev/null 2>&1

(MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $WIDGET 2>/dev/null) | $COL_CMD > $INPUT_FILE 2>/dev/null
LINE_NUMBER=`wc -l $INPUT_FILE | awk '{print $1}'`
if ( test -s $INPUT_FILE -a $LINE_NUMBER -gt 10 ); then
  echo ""
  echo "Extracting from: $WIDGET"
  for i in "^NAME$" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+delete" \
           "^[ 	]+pathName[ 	]+insert" \
           "^[ 	]+pathName[ 	]+limits" \
           "^[ 	]+pathName[ 	]+barconfigure" \
           "^[ 	]+pathName[ 	]+locate" \
           "^[ 	]+pathName[ 	]+names" \
           "^[ 	]+pathName[ 	]+newtag" \
           "^[ 	]+pathName[ 	]+postscript" \
           "^[ 	]+pathName[ 	]+show" \
           "^[ 	]+pathName[ 	]+tagconfigure" \
           "^[ 	]+pathName[ 	]+untag";do
    FROM_LINE=`egrep -n "$i" $INPUT_FILE | awk -F: '{print $1}'`
    case $i in
      "^NAME$")
        echo "Extracting: Description"
        TO_WORD="^WIDGET[ 	]+COMMAND"
        OUTPUT_FILE=Barchart.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+delete"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+delete")
        echo "Extracting: delete"
        TO_WORD="^[ 	]+pathName[ 	]+insert"
        OUTPUT_FILE=delete.H;;
      "^[ 	]+pathName[ 	]+insert")
        echo "Extracting: insert"
        TO_WORD="^[ 	]+pathName[ 	]+limits"
        OUTPUT_FILE=insert.H;;
      "^[ 	]+pathName[ 	]+limits")
        echo "Extracting: limits"
        TO_WORD="^[ 	]+pathName[ 	]+barconfigure"
        OUTPUT_FILE=limits.H;;
      "^[ 	]+pathName[ 	]+barconfigure")
        echo "Extracting: barconfigure"
        TO_WORD="^[ 	]+pathName[ 	]+locate"
        OUTPUT_FILE=barconfig.H;;
      "^[ 	]+pathName[ 	]+locate")
        echo "Extracting: locate"
        TO_WORD="^[ 	]+pathName[ 	]+names"
        OUTPUT_FILE=locate.H;;
      "^[ 	]+pathName[ 	]+names")
        echo "Extracting: names"
        TO_WORD="^[ 	]+pathName[ 	]+newtag"
        OUTPUT_FILE=names.H;;
      "^[ 	]+pathName[ 	]+newtag")
        echo "Extracting: newtag"
        TO_WORD="^[ 	]+pathName[ 	]+postscript"
        OUTPUT_FILE=newtag.H;;
      "^[ 	]+pathName[ 	]+postscript")
        echo "Extracting: postscript"
        TO_WORD="^[ 	]+pathName[ 	]+show"
        OUTPUT_FILE=postscript.H;;
      "^[ 	]+pathName[ 	]+show")
        echo "Extracting: show"
        TO_WORD="^[ 	]+pathName[ 	]+tagconfigure"
        OUTPUT_FILE=show.H;;
      "^[ 	]+pathName[ 	]+tagconfigure")
        echo "Extracting: tagconfigure"
        TO_WORD="^[ 	]+pathName[ 	]+untag"
        OUTPUT_FILE=tagconfig.H;;
      "^[ 	]+pathName[ 	]+untag")
        echo "Extracting: untag"
        TO_WORD="^KEYWORDS"
        OUTPUT_FILE=untag.H;;
    esac
    TO_LINE=`egrep -n "$TO_WORD" $INPUT_FILE | awk -F: '{print $1}'`
    if ( test "$FROM_LINE" = ""); then
      echo "I could not find: $i"
    fi
    if ( test "$TO_LINE" = ""); then
      echo "I could not find: $TO_WORD"
    fi
    if ( test "$FROM_LINE" != "" && test "$TO_LINE" != ""); then
      awk '
        BEGIN {
          fromLine='$FROM_LINE'
          toLine='$TO_LINE'
        }
        {
          if (NR >= fromLine && NR < toLine) {
            print
          }
        }' < $INPUT_FILE | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$WIDGET(n)/d" | sed -e "/$WIDGET(1)/d" | sed -e "/$WIDGET(3)/d" | uniq > $HELP_ROOT/Tk/widgets/$WIDGET/$OUTPUT_FILE
    fi
  done
else
  echo "I was not able to find: $WIDGET"
fi

rm $INPUT_FILE 1>/dev/null 2>&1

# tkemacs
#########################
WIDGET=tkemacs
mkdir $HELP_ROOT/Tk/widgets/$WIDGET 1>/dev/null 2>&1

(MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $WIDGET 2>/dev/null) | $COL_CMD > $INPUT_FILE 2>/dev/null
LINE_NUMBER=`wc -l $INPUT_FILE | awk '{print $1}'`
if ( test -s $INPUT_FILE -a $LINE_NUMBER -gt 10 ); then
  echo ""
  echo "Extracting from: $WIDGET"
  for i in "^NAME$" \
           "^[ 	]+pathName[ 	]+compare" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+debug" \
           "^[ 	]+pathName[ 	]+delete" \
           "^[ 	]+pathName[ 	]+get" \
           "^[ 	]+pathName[ 	]+index" \
           "^[ 	]+pathName[ 	]+insert" \
           "^[ 	]+pathName[ 	]+mark[ 	]+option" \
           "^[ 	]+pathName[ 	]+redisplay" \
           "^[ 	]+pathName[ 	]+reset" \
           "^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args" \
           "^[ 	]+pathName[ 	]+send" \
           "^[ 	]+pathName[ 	]+setxscroll" \
           "^[ 	]+pathName[ 	]+setyscroll" \
           "^[ 	]+pathName[ 	]+startemacs" \
           "^[ 	]+pathName[ 	]+stopemacs" \
           "^[ 	]+pathName[ 	]+tag[ 	]+option" \
           "^[ 	]+pathName[ 	]+updatescrollbars" \
           "^[ 	]+pathName[ 	]+xview" \
           "^[ 	]+pathName[ 	]+yview"; do
    FROM_LINE=`egrep -n "$i" $INPUT_FILE | awk -F: '{print $1}'`
    case $i in
      "^NAME$")
        echo "Extracting: Description"
        TO_WORD="^WIDGET[ 	]+COMMAND"
        OUTPUT_FILE=TkEmacs.H;;
      "^[ 	]+pathName[ 	]+compare")
        echo "Extracting: compare"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=compare.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+debug"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+debug")
        echo "Extracting: debug"
        TO_WORD="^[ 	]+pathName[ 	]+delete"
        OUTPUT_FILE=debug.H;;
      "^[ 	]+pathName[ 	]+delete")
        echo "Extracting: delete"
        TO_WORD="^[ 	]+pathName[ 	]+get"
        OUTPUT_FILE=delete.H;;
      "^[ 	]+pathName[ 	]+get")
        echo "Extracting: get"
        TO_WORD="^[ 	]+pathName[ 	]+index"
        OUTPUT_FILE=get.H;;
      "^[ 	]+pathName[ 	]+index")
        echo "Extracting: index"
        TO_WORD="^[ 	]+pathName[ 	]+insert"
        OUTPUT_FILE=index.H;;
      "^[ 	]+pathName[ 	]+insert")
        echo "Extracting: insert"
        TO_WORD="^[ 	]+pathName[ 	]+mark[ 	]+option"
        OUTPUT_FILE=insert.H;;
      "^[ 	]+pathName[ 	]+mark[ 	]+option")
        echo "Extracting: mark"
        TO_WORD="^[ 	]+pathName[ 	]+redisplay"
        OUTPUT_FILE=mark.H;;
      "^[ 	]+pathName[ 	]+redisplay")
        echo "Extracting: redisplay"
        TO_WORD="^[ 	]+pathName[ 	]+reset"
        OUTPUT_FILE=redisplay.H;;
      "^[ 	]+pathName[ 	]+reset")
        echo "Extracting: reset"
        TO_WORD="^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args"
        OUTPUT_FILE=reset.H;;
      "^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args")
        echo "Extracting: scan"
        TO_WORD="^[ 	]+pathName[ 	]+send"
        OUTPUT_FILE=scan.H;;
      "^[ 	]+pathName[ 	]+send")
        echo "Extracting: send"
        TO_WORD="^[ 	]+pathName[ 	]+setxscroll"
        OUTPUT_FILE=send.H;;
      "^[ 	]+pathName[ 	]+setxscroll")
        echo "Extracting: setxscroll"
        TO_WORD="^[ 	]+pathName[ 	]+setyscroll"
        OUTPUT_FILE=setxscroll.H;;
      "^[ 	]+pathName[ 	]+setyscroll")
        echo "Extracting: setyscroll"
        TO_WORD="^[ 	]+pathName[ 	]+startemacs"
        OUTPUT_FILE=setyscroll.H;;
      "^[ 	]+pathName[ 	]+startemacs")
        echo "Extracting: startemacs"
        TO_WORD="^[ 	]+pathName[ 	]+stopemacs"
        OUTPUT_FILE=startemacs.H;;
      "^[ 	]+pathName[ 	]+stopemacs")
        echo "Extracting: stopemacs"
        TO_WORD="^[ 	]+pathName[ 	]+tag[ 	]+option"
        OUTPUT_FILE=stopemacs.H;;
      "^[ 	]+pathName[ 	]+tag[ 	]+option")
        echo "Extracting: tag"
        TO_WORD="^[ 	]+pathName[ 	]+updatescrollbars"
        OUTPUT_FILE=tag.H;;
      "^[ 	]+pathName[ 	]+updatescrollbars")
        echo "Extracting: updatescrollbars"
        TO_WORD="^[ 	]+pathName[ 	]+xview"
        OUTPUT_FILE=updatescroll.H;;
      "^[ 	]+pathName[ 	]+xview")
        echo "Extracting: xview"
        TO_WORD="^[ 	]+pathName[ 	]+yview"
        OUTPUT_FILE=xview.H;;
      "^[ 	]+pathName[ 	]+yview")
        echo "Extracting: yview"
        TO_WORD="^BINDINGS"
        OUTPUT_FILE=yview.H;;
    esac
    TO_LINE=`egrep -n "$TO_WORD" $INPUT_FILE | awk -F: '{print $1}'`
    if ( test "$FROM_LINE" = ""); then
      echo "I could not find: $i"
    fi
    if ( test "$TO_LINE" = ""); then
      echo "I could not find: $TO_WORD"
    fi
    if ( test "$FROM_LINE" != "" && test "$TO_LINE" != ""); then
      awk '
        BEGIN {
          fromLine='$FROM_LINE'
          toLine='$TO_LINE'
        }
        {
          if (NR >= fromLine && NR < toLine) {
            print
          }
        }' < $INPUT_FILE | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$WIDGET(n)/d" | sed -e "/$WIDGET(1)/d" | sed -e "/$WIDGET(3)/d" | uniq > $HELP_ROOT/Tk/widgets/$WIDGET/$OUTPUT_FILE
    fi
  done
else
  echo "I was not able to find: $WIDGET"
fi

rm $INPUT_FILE 1>/dev/null 2>&1

mkdir $HELP_ROOT 1>/dev/null 2>&1
mkdir $HELP_ROOT/Tk 1>/dev/null 2>&1

echo ""
echo "Extracting from: Additional Tk-manuals"

for i in pinfo; do
  (MANPATH=$MAN_PATH; export MANPATH; $MAN_CMD $MAN_ARGS $i 2>/dev/null) | $COL_CMD 2>/dev/null | sed -e '/^[ 	]*[0-9][0-9]*$/d' | sed -e "/$i(n)/d" | sed -e "/$i(1)/d" | sed -e "/$i(3)/d" | sed -e '/^_[_]*$/d' | uniq > $HELP_ROOT/Tk/$i.H
  LINE_NUMBER=`wc -l $HELP_ROOT/Tk/$i.H | awk '{print $1}'`
  if ( test -s $HELP_ROOT/Tk/$i.H -a $LINE_NUMBER -gt 10 ); then
    echo "Extracting: $i"
  else
    echo "I was not able to find: $i"
    rm $HELP_ROOT/Tk/$i.H 1>/dev/null 2>&1
  fi
done

