#!/bin/sh
# this shellscript extracts:
#  button
#  canvas
#  checkbutton
#  entry
#  frame
#  label
#  listbox
#  menu
#  menubutton
#  message
#  radiobutton
#  scale
#  scrollbar
#  text
#  tk
#  toplevel
#
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 "makeWidgets 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 "makeWidgets error: expected pathnames for -m"
      exit 2
    fi;;
  *)
    echo "makeWidgets error: unknown option"
    echo "usage:"
    echo -n "makeWidgets "
    echo -n "[-c <col command>] "
    echo -n "[-m <man path>] "
    exit 2
  esac
done

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

# button
#########################
WIDGET=button
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[ 	]+activate" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+deactivate" \
           "^[ 	]+pathName[ 	]+flash" \
           "^[ 	]+pathName[ 	]+invoke"; 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=Button.H;;
      "^[ 	]+pathName[ 	]+activate")
        echo "Extracting: activate"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=activate.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+deactivate"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+deactivate")
        echo "Extracting: deactivate"
        TO_WORD="^[ 	]+pathName[ 	]+flash"
        OUTPUT_FILE=deactivate.H;;
      "^[ 	]+pathName[ 	]+flash")
        echo "Extracting: flash"
        TO_WORD="^[ 	]+pathName[ 	]+invoke"
        OUTPUT_FILE=flash.H;;
      "^[ 	]+pathName[ 	]+invoke")
        echo "Extracting: invoke"
        TO_WORD="^DEFAULT[ 	]+BINDINGS"
        OUTPUT_FILE=invoke.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

# canvas
#########################
WIDGET=canvas
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[ 	]+addtag" \
           "^[ 	]+pathName[ 	]+bbox" \
           "^[ 	]+pathName[ 	]+bind" \
           "^[ 	]+pathName[ 	]+canvasx" \
           "^[ 	]+pathName[ 	]+canvasy" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+coords" \
           "^[ 	]+pathName[ 	]+create[ 	]+type" \
           "^[ 	]+pathName[ 	]+dchars" \
           "^[ 	]+pathName[ 	]+delete" \
           "^[ 	]+pathName[ 	]+dtag" \
           "^[ 	]+pathName[ 	]+find" \
           "^[ 	]+pathName[ 	]+focus" \
           "^[ 	]+pathName[ 	]+gettags" \
           "^[ 	]+pathName[ 	]+icursor[ 	]+tag" \
           "^[ 	]+pathName[ 	]+index" \
           "^[ 	]+pathName[ 	]+insert" \
           "^[ 	]+pathName[ 	]+itemconfigure" \
           "^[ 	]+pathName[ 	]+lower" \
           "^[ 	]+pathName[ 	]+move" \
           "^[ 	]+pathName[ 	]+postscript" \
           "^[ 	]+pathName[ 	]+raise" \
           "^[ 	]+pathName[ 	]+scale[ 	]+tag" \
           "^[ 	]+pathName[ 	]+scan[ 	]+option" \
           "^[ 	]+pathName[ 	]+select[ 	]+option" \
           "^[ 	]+pathName[ 	]+type" \
           "^[ 	]+pathName[ 	]+xview" \
           "^[ 	]+pathName[ 	]+yview" \
           "^ARC[ 	]+ITEMS" \
           "^BITMAP[ 	]+ITEMS" \
           "^LINE[ 	]+ITEMS" \
           "^OVAL[ 	]+ITEMS" \
           "^POLYGON[ 	]+ITEMS" \
           "^RECTANGLE[ 	]+ITEMS" \
           "^TEXT[ 	]+ITEMS" \
           "^WINDOW[ 	]+ITEMS"; 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=Canvas.H;;
      "^[ 	]+pathName[ 	]+addtag")
        echo "Extracting: addtag"
        TO_WORD="^[ 	]+pathName[ 	]+bbox"
        OUTPUT_FILE=addtag.H;;
      "^[ 	]+pathName[ 	]+bbox")
        echo "Extracting: bbox"
        TO_WORD="^[ 	]+pathName[ 	]+bind"
        OUTPUT_FILE=bbox.H;;
      "^[ 	]+pathName[ 	]+bind")
        echo "Extracting: bind"
        TO_WORD="^[ 	]+pathName[ 	]+canvasx"
        OUTPUT_FILE=bind.H;;
      "^[ 	]+pathName[ 	]+canvasx")
        echo "Extracting: canvasx"
        TO_WORD="^[ 	]+pathName[ 	]+canvasy"
        OUTPUT_FILE=canvasx.H;;
      "^[ 	]+pathName[ 	]+canvasy")
        echo "Extracting: canvasy"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=canvasy.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+coords"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+coords")
        echo "Extracting: coords"
        TO_WORD="^[ 	]+pathName[ 	]+create[ 	]+type"
        OUTPUT_FILE=coords.H;;
      "^[ 	]+pathName[ 	]+create[ 	]+type")
        echo "Extracting: create"
        TO_WORD="^[ 	]+pathName[ 	]+dchars"
        OUTPUT_FILE=create.H;;
      "^[ 	]+pathName[ 	]+dchars")
        echo "Extracting: dchars"
        TO_WORD="^[ 	]+pathName[ 	]+delete"
        OUTPUT_FILE=dchars.H;;
      "^[ 	]+pathName[ 	]+delete")
        echo "Extracting: delete"
        TO_WORD="^[ 	]+pathName[ 	]+dtag"
        OUTPUT_FILE=delete.H;;
      "^[ 	]+pathName[ 	]+dtag")
        echo "Extracting: dtag"
        TO_WORD="^[ 	]+pathName[ 	]+find"
        OUTPUT_FILE=dtag.H;;
      "^[ 	]+pathName[ 	]+find")
        echo "Extracting: find"
        TO_WORD="^[ 	]+pathName[ 	]+focus"
        OUTPUT_FILE=find.H;;
      "^[ 	]+pathName[ 	]+focus")
        echo "Extracting: focus"
        TO_WORD="^[ 	]+pathName[ 	]+gettags"
        OUTPUT_FILE=focus.H;;
      "^[ 	]+pathName[ 	]+gettags")
        echo "Extracting: gettags"
        TO_WORD="^[ 	]+pathName[ 	]+icursor[ 	]+tag"
        OUTPUT_FILE=gettags.H;;
      "^[ 	]+pathName[ 	]+icursor[ 	]+tag")
        echo "Extracting: icursor"
        TO_WORD="^[ 	]+pathName[ 	]+index"
        OUTPUT_FILE=icursor.H;;
      "^[ 	]+pathName[ 	]+index")
        echo "Extracting: index"
        TO_WORD="^[ 	]+pathName[ 	]+insert"
        OUTPUT_FILE=index.H;;
      "^[ 	]+pathName[ 	]+insert")
        echo "Extracting: insert"
        TO_WORD="^[ 	]+pathName[ 	]+itemconfigure"
        OUTPUT_FILE=insert.H;;
      "^[ 	]+pathName[ 	]+itemconfigure")
        echo "Extracting: itemconfigure"
        TO_WORD="^[ 	]+pathName[ 	]+lower"
        OUTPUT_FILE=itemconfig.H;;
      "^[ 	]+pathName[ 	]+lower")
        echo "Extracting: lower"
        TO_WORD="^[ 	]+pathName[ 	]+move"
        OUTPUT_FILE=lower.H;;
      "^[ 	]+pathName[ 	]+move")
        echo "Extracting: move"
        TO_WORD="^[ 	]+pathName[ 	]+postscript"
        OUTPUT_FILE=move.H;;
      "^[ 	]+path[ 	]+postscript")
        echo "Extracting: postscript"
        TO_WORD="^[ 	]+pathName[ 	]+raise"
        OUTPUT_FILE=postscript.H;;
      "^[ 	]+pathName[ 	]+raise")
        echo "Extracting: raise"
        TO_WORD="^[ 	]+pathName[ 	]+scale[ 	]+tag"
        OUTPUT_FILE=raise.H;;
      "^[ 	]+pathName[ 	]+scale[ 	]+tag")
        echo "Extracting: scale"
        TO_WORD="^[ 	]+pathName[ 	]+scan[ 	]+option"
        OUTPUT_FILE=scale.H;;
      "^[ 	]+pathName[ 	]+scan[ 	]+option")
        echo "Extracting: scan"
        TO_WORD="^[ 	]+pathName[ 	]+select[ 	]+option"
        OUTPUT_FILE=scan.H;;
      "^[ 	]+pathName[ 	]+select[ 	]+option")
        echo "Extracting: select"
        TO_WORD="^[ 	]+pathName[ 	]+type"
        OUTPUT_FILE=select.H;;
      "^[ 	]+pathName[ 	]+type")
        echo "Extracting: type"
        TO_WORD="^[ 	]+pathName[ 	]+xview"
        OUTPUT_FILE=type.H;;
      "^[ 	]+pathName[ 	]+xview")
        echo "Extracting: xview"
        TO_WORD="^[ 	]+pathName[ 	]+yview"
        OUTPUT_FILE=xview.H;;
      "^[ 	]+pathName[ 	]+yview")
        echo "Extracting: yview"
        TO_WORD="^OVERVIEW[ 	]+OF[ 	]+ITEM[ 	]+TYPES"
        OUTPUT_FILE=yview.H;;
      "^ARC[ 	]+ITEMS")
        echo "Extracting: arc items"
        TO_WORD="^BITMAP[ 	]+ITEMS"
        OUTPUT_FILE=arc.H;;
      "^BITMAP[ 	]+ITEMS")
        echo "Extracting: bitmap items"
        TO_WORD="^LINE[ 	]+ITEMS"
        OUTPUT_FILE=bitmap.H;;
      "^LINE[ 	]+ITEMS")
        echo "Extracting: line items"
        TO_WORD="^OVAL[ 	]+ITEMS"
        OUTPUT_FILE=line.H;;
      "^OVAL[ 	]+ITEMS")
        echo "Extracting: oval items"
        TO_WORD="^POLYGON[ 	]+ITEMS"
        OUTPUT_FILE=oval.H;;
      "^POLYGON[ 	]+ITEMS")
        echo "Extracting: polygon items"
        TO_WORD="^RECTANGLE[ 	]+ITEMS"
        OUTPUT_FILE=polygon.H;;
      "^RECTANGLE[ 	]+ITEMS")
        echo "Extracting: rectangle items"
        TO_WORD="^TEXT[ 	]+ITEMS"
        OUTPUT_FILE=rectangle.H;;
      "^TEXT[ 	]+ITEMS")
        echo "Extracting: text items"
        TO_WORD="^WINDOW[ 	]+ITEMS"
        OUTPUT_FILE=text.H;;
      "^WINDOW[ 	]+ITEMS")
        echo "Extracting: window items"
        TO_WORD="^APPLICATION-DEFINED[ 	]+ITEM[ 	]+TYPES"
        OUTPUT_FILE=window.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

# checkbutton
#########################
WIDGET=checkbutton
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[ 	]+activate" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+deactivate" \
           "^[ 	]+pathName[ 	]+deselect" \
           "^[ 	]+pathName[ 	]+flash" \
           "^[ 	]+pathName[ 	]+invoke" \
           "^[ 	]+pathName[ 	]+select" \
           "^[ 	]+pathName[ 	]+toggle"; 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=CheckButton.H;;
      "^[ 	]+pathName[ 	]+activate")
        echo "Extracting: activate"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=activate.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+deactivate"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+deactivate")
        echo "Extracting: deactivate"
        TO_WORD="^[ 	]+pathName[ 	]+deselect"
        OUTPUT_FILE=deactivate.H;;
      "^[ 	]+pathName[ 	]+deselect")
        echo "Extracting: deselect"
        TO_WORD="^[ 	]+pathName[ 	]+flash"
        OUTPUT_FILE=deselect.H;;
      "^[ 	]+pathName[ 	]+flash")
        echo "Extracting: flash"
        TO_WORD="^[ 	]+pathName[ 	]+invoke"
        OUTPUT_FILE=flash.H;;
      "^[ 	]+pathName[ 	]+invoke")
        echo "Extracting: invoke"
        TO_WORD="^[ 	]+pathName[ 	]+select"
        OUTPUT_FILE=invoke.H;;
      "^[ 	]+pathName[ 	]+select")
        echo "Extracting: select"
        TO_WORD="^[ 	]+pathName[ 	]+toggle"
        OUTPUT_FILE=select.H;;
      "^[ 	]+pathName[ 	]+toggle")
        echo "Extracting: toggle"
        TO_WORD="^BINDINGS"
        OUTPUT_FILE=toggle.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 "/checkbutton(n)/d" | sed -e "/checkbutton(1)/d" | sed -e "/checkbutton(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

# entry
#########################
WIDGET=entry
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$" \
	   "^[ 	]+Many[ 	]of[ 	]the[ 	]widget[ 	]commands[ 	]for" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+delete" \
           "^[ 	]+pathName[ 	]+get" \
           "^[ 	]+pathName[ 	]+icursor" \
           "^[ 	]+pathName[ 	]+index[ 	]+index" \
           "^[ 	]+pathName[ 	]+insert[ 	]+index[ 	]+string" \
           "^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args" \
           "^[ 	]+pathName[ 	]+select[ 	]+option[ 	]+arg" \
           "^[ 	]+pathName[ 	]+view[ 	]+index"; 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=Entry.H;;
      "^[ 	]+Many[ 	]of[ 	]the[ 	]widget[ 	]commands[ 	]for")
        echo "Extracting: Indicators"
        TO_WORD="^[ 	]+The[ 	]following[ 	]commands[ 	]are[ 	]possible"
        OUTPUT_FILE=Indicators.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+delete"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+delete")
        echo "Extracting: delete"
        TO_WORD="^[ 	]+pathName[ 	]+get"
        OUTPUT_FILE=delete.H;;
      "^[ 	]+pathName[ 	]+get")
        echo "Extracting: get"
        TO_WORD="^[ 	]+pathName[ 	]+icursor"
        OUTPUT_FILE=get.H;;
      "^[ 	]+pathName[ 	]+icursor")
        echo "Extracting: icursor"
        TO_WORD="^[ 	]+pathName[ 	]+index[ 	]+index"
        OUTPUT_FILE=icursor.H;;
      "^[ 	]+pathName[ 	]+index[ 	]+index")
        echo "Extracting: index"
        TO_WORD="^[ 	]+pathName[ 	]+insert[ 	]+index[ 	]+string"
        OUTPUT_FILE=index.H;;
      "^[ 	]+pathName[ 	]+insert[ 	]+index[ 	]+string")
        echo "Extracting: insert"
        TO_WORD="^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args"
        OUTPUT_FILE=insert.H;;
      "^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args")
        echo "Extracting: scan"
        TO_WORD="^[ 	]+pathName[ 	]+select[ 	]+option[ 	]+arg"
        OUTPUT_FILE=scan.H;;
      "^[ 	]+pathName[ 	]+select[ 	]+option[ 	]+arg")
        echo "Extracting: select"
        TO_WORD="^[ 	]+pathName[ 	]+view[ 	]+index"
        OUTPUT_FILE=select.H;;
      "^[ 	]+pathName[ 	]+view[ 	]+index")
        echo "Extracting: view"
        TO_WORD="^DEFAULT[ 	]+BINDINGS"
        OUTPUT_FILE=view.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

# frame
#########################
WIDGET=frame
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"; 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=Frame.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^BINDINGS"
        OUTPUT_FILE=configure.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

# label
#########################
WIDGET=label
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"; 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=Label.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^BINDINGS"
        OUTPUT_FILE=configure.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

# listbox
#########################
WIDGET=listbox
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[ 	]+curselection" \
           "^[ 	]+pathName[ 	]+delete" \
           "^[ 	]+pathName[ 	]+get" \
           "^[ 	]+pathName[ 	]+insert[ 	]+index" \
           "^[ 	]+pathName[ 	]+nearest" \
           "^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args" \
           "^[ 	]+pathName[ 	]+select[ 	]+option[ 	]+arg" \
           "^[ 	]+pathName[ 	]+size" \
           "^[ 	]+pathName[ 	]+xview[ 	]+index" \
           "^[ 	]+pathName[ 	]+yview[ 	]+index"; 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=Listbox.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+curselection"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+curselection")
        echo "Extracting: curselection"
        TO_WORD="^[ 	]+pathName[ 	]+delete"
        OUTPUT_FILE=curselect.H;;
      "^[ 	]+pathName[ 	]+delete")
        echo "Extracting: delete"
        TO_WORD="^[ 	]+pathName[ 	]+get"
        OUTPUT_FILE=delete.H;;
      "^[ 	]+pathName[ 	]+get")
        echo "Extracting: get"
        TO_WORD="^[ 	]+pathName[ 	]+insert[ 	]+index"
        OUTPUT_FILE=get.H;;
      "^[ 	]+pathName[ 	]+insert[ 	]+index")
        echo "Extracting: insert"
        TO_WORD="^[ 	]+pathName[ 	]+nearest"
        OUTPUT_FILE=insert.H;;
      "^[ 	]+pathName[ 	]+nearest")
        echo "Extracting: nearest"
        TO_WORD="^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args"
        OUTPUT_FILE=nearest.H;;
      "^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args")
        echo "Extracting: scan"
        TO_WORD="^[ 	]+pathName[ 	]+select[ 	]+option[ 	]+arg"
        OUTPUT_FILE=scan.H;;
      "^[ 	]+pathName[ 	]+select[ 	]+option[ 	]+arg")
        echo "Extracting: select"
        TO_WORD="^[ 	]+pathName[ 	]+size"
        OUTPUT_FILE=select.H;;
      "^[ 	]+pathName[ 	]+size")
        echo "Extracting: size"
        TO_WORD="^[ 	]+pathName[ 	]+xview[ 	]+index"
        OUTPUT_FILE=size.H;;
      "^[ 	]+pathName[ 	]+xview[ 	]+index")
        echo "Extracting: xview"
        TO_WORD="^[ 	]+pathName[ 	]+yview[ 	]+index"
        OUTPUT_FILE=xview.H;;
      "^[ 	]+pathName[ 	]+yview[ 	]+index")
        echo "Extracting: yview"
        TO_WORD="^DEFAULT[ 	]+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

# menu
#########################
WIDGET=menu
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$" \
           "^[ 	]+Many[ 	]of[ 	]the[ 	]widget[ 	]commands[ 	]for" \
           "^[ 	]+pathName[ 	]+activate" \
           "^[ 	]+pathName[ 	]+add[ 	]+type" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+delete" \
           "^[ 	]+pathName[ 	]+disable" \
           "^[ 	]+pathName[ 	]+enable" \
           "^[ 	]+pathName[ 	]+entryconfigure[ 	]+index" \
           "^[ 	]+pathName[ 	]+index[ 	]+index" \
           "^[ 	]+pathName[ 	]+invoke" \
           "^[ 	]+pathName[ 	]+post" \
           "^[ 	]+pathName[ 	]+unpost" \
           "^[ 	]+pathName[ 	]+yposition[ 	]+index"; 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=Menu.H;;
      "^[ 	]+Many[ 	]of[ 	]the[ 	]widget[ 	]commands[ 	]for")
        echo "Extracting: Indicators"
        TO_WORD="^[ 	]+The[ 	]following[ 	]widget[ 	]commands[ 	]are[ 	]possible"
        OUTPUT_FILE=Indicators.H;;
      "^[ 	]+pathName[ 	]+activate")
        echo "Extracting: activate"
        TO_WORD="^[ 	]+pathName[ 	]+add[ 	]+type"
        OUTPUT_FILE=activate.H;;
      "^[ 	]+pathName[ 	]+add[ 	]+type")
        echo "Extracting: add"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=add.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+delete"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+delete")
        echo "Extracting: delete"
        TO_WORD="^[ 	]+pathName[ 	]+disable"
        OUTPUT_FILE=delete.H;;
      "^[ 	]+pathName[ 	]+disable")
        echo "Extracting: disable"
        TO_WORD="^[ 	]+pathName[ 	]+enable"
        OUTPUT_FILE=disable.H;;
      "^[ 	]+pathName[ 	]+enable")
        echo "Extracting: enable"
        TO_WORD="^[ 	]+pathName[ 	]+entryconfigure[ 	]+index"
        OUTPUT_FILE=enable.H;;
      "^[ 	]+pathName[ 	]+entryconfigure[ 	]+index")
        echo "Extracting: entryconfigure"
        TO_WORD="^[ 	]+pathName[ 	]+index[ 	]+index"
        OUTPUT_FILE=entryconfig.H;;
      "^[ 	]+pathName[ 	]+index[ 	]+index")
        echo "Extracting: index"
        TO_WORD="^[ 	]+pathName[ 	]+invoke"
        OUTPUT_FILE=index.H;;
      "^[ 	]+pathName[ 	]+invoke")
        echo "Extracting: invoke"
        TO_WORD="^[ 	]+pathName[ 	]+post"
        OUTPUT_FILE=invoke.H;;
      "^[ 	]+pathName[ 	]+post")
        echo "Extracting: post"
        TO_WORD="^[ 	]+pathName[ 	]+unpost"
        OUTPUT_FILE=post.H;;
      "^[ 	]+pathName[ 	]+unpost")
        echo "Extracting: unpost"
        TO_WORD="^[ 	]+pathName[ 	]+yposition[ 	]+index"
        OUTPUT_FILE=unpost.H;;
      "^[ 	]+pathName[ 	]+yposition[ 	]+index")
        echo "Extracting: yposition"
        TO_WORD="^DEFAULT[ 	]+BINDINGS"
        OUTPUT_FILE=yposition.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

# menubutton
#########################
WIDGET=menubutton
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[ 	]+activate" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+deactivate"; 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=MenuButton.H;;
      "^[ 	]+pathName[ 	]+activate")
        echo "Extracting: activate"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=activate.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+deactivate"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+deactivate")
        echo "Extracting: deactivate"
        TO_WORD="^DEFAULT[ 	]+BINDINGS"
        OUTPUT_FILE=deactivate.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 "/menubutton(n)/d" | sed -e "/menubutton(1)/d" | sed -e "/menubutton(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

# message
#########################
WIDGET=message
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"; 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=Message.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^DEFAULT[ 	]+BINDINGS"
        OUTPUT_FILE=configure.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

# radiobutton
#########################
WIDGET=radiobutton
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[ 	]+activate" \
           "^[ 	]+pathName[ 	]+configure" \
           "^[ 	]+pathName[ 	]+deactivate" \
           "^[ 	]+pathName[ 	]+deselect" \
           "^[ 	]+pathName[ 	]+flash" \
           "^[ 	]+pathName[ 	]+invoke" \
           "^[ 	]+pathName[ 	]+select"; 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=RadioButton.H;;
      "^[ 	]+pathName[ 	]+activate")
        echo "Extracting: activate"
        TO_WORD="^[ 	]+pathName[ 	]+configure"
        OUTPUT_FILE=activate.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^[ 	]+pathName[ 	]+deactivate"
        OUTPUT_FILE=configure.H;;
      "^[ 	]+pathName[ 	]+deactivate")
        echo "Extracting: deactivate"
        TO_WORD="^[ 	]+pathName[ 	]+deselect"
        OUTPUT_FILE=deactivate.H;;
      "^[ 	]+pathName[ 	]+deselect")
        echo "Extracting: deselect"
        TO_WORD="^[ 	]+pathName[ 	]+flash"
        OUTPUT_FILE=deselect.H;;
      "^[ 	]+pathName[ 	]+flash")
        echo "Extracting: flash"
        TO_WORD="^[ 	]+pathName[ 	]+invoke"
        OUTPUT_FILE=flash.H;;
      "^[ 	]+pathName[ 	]+invoke")
        echo "Extracting: invoke"
        TO_WORD="^[ 	]+pathName[ 	]+select"
        OUTPUT_FILE=invoke.H;;
      "^[ 	]+pathName[ 	]+select")
        echo "Extracting: select"
        TO_WORD="^BINDINGS"
        OUTPUT_FILE=select.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 "/radiobutton(n)/d" | sed -e "/radiobutton(1)/d" | sed -e "/radiobutton(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

# scale
#########################
WIDGET=scale
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"; 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=Scale.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="^BINDINGS"
        OUTPUT_FILE=set.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 "/scale(n)/d" | sed -e "/scale(1)/d" | sed -e "/scale(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

# scrollbar
#########################
WIDGET=scrollbar
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"; 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=Scrollbar.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="^BINDINGS"
        OUTPUT_FILE=set.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 "/scrollbar(n)/d" | sed -e "/scrollbar(1)/d" | sed -e "/scrollbar(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

# text
#########################
WIDGET=text
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[ 	]+scan[ 	]+option[ 	]+args" \
           "^[ 	]+pathName[ 	]+tag[ 	]+option" \
           "^[ 	]+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=Text.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[ 	]+scan[ 	]+option[ 	]+args"
        OUTPUT_FILE=mark.H;;
      "^[ 	]+pathName[ 	]+scan[ 	]+option[ 	]+args")
        echo "Extracting: scan"
        TO_WORD="^[ 	]+pathName[ 	]+tag[ 	]+option"
        OUTPUT_FILE=scan.H;;
      "^[ 	]+pathName[ 	]+tag[ 	]+option")
        echo "Extracting: tag"
        TO_WORD="^[ 	]+pathName[ 	]+yview"
        OUTPUT_FILE=tag.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

# toplevel
#########################
WIDGET=toplevel
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"; 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=Toplevel.H;;
      "^[ 	]+pathName[ 	]+configure")
        echo "Extracting: configure"
        TO_WORD="^BINDINGS"
        OUTPUT_FILE=configure.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
