#!/bin/sh
# if there is an argument, find maxima_toc.html

find_old_help()
{
  if grep -F 'MAXIMA_DIRECTORY=' $MAXIMA >/dev/null
  then
    MAXIMA_DIRECTORY=`grep -F 'MAXIMA_DIRECTORY=' $MAXIMA | sed -e 's/MAXIMA_DIRECTORY=//'`
    if [ -f "$MAXIMA_DIRECTORY/doc/html/maxima_toc.html" ]
    then echo "\"$MAXIMA_DIRECTORY/doc/html/maxima_toc.html\""
    elif [ -f "$MAXIMA_DIRECTORY/info/maxima_toc.html" ]
    then echo "\"$MAXIMA_DIRECTORY/info/maxima_toc.html\""
    else echo '#f'
    fi
  else
    # resorting to locate
    MAXIMA_HELP=`locate maxima_toc.html`
    if [ $? -eq 0 ]
    then
      MAXIMA_HELP2=`echo "$MAXIMA_HELP" | grep -F /doc/html/maxima_toc.html`
      if [ $? -eq 0 ]
      then MAXIMA_HELP="$MAXIMA_HELP2"
      else
        MAXIMA_HELP2=`echo "$MAXIMA_HELP" | grep -F /info/maxima_toc.html`
        if [ $? -eq 0 ]
        then MAXIMA_HELP="$MAXIMA_HELP2"
        fi
      fi
      MAXIMA_HELP2=`echo "$MAXIMA_HELP" | grep '^/usr'`
      if [ $? -eq 0 ]
      then MAXIMA_HELP="$MAXIMA_HELP2"
      fi
      echo "$MAXIMA_HELP" | sed -e 's/^/"/' -e 's/$/"/' -e '1s/^/(/' -e '$s/$/)/'
    else echo '#f'
    fi
  fi
}

if [ $OSTYPE = "cygwin" ] ; then EXT='.bat'; else EXT=''; fi
MAXIMA=`which maxima$EXT 2>/dev/null`
if [ $? -eq 0 ]
then
  if [ $OSTYPE = "cygwin" ]
  then
    if [ "$1" ]
    then
      maxima -d | grep -F 'maxima-htmldir=' | \
        sed -e 's/maxima-htmldir=/"/' -e 's|$|/maxima_toc.html"|' | \
	cygpath -f -
    else
      echo '("cygwin")'
    fi
  else
    if grep -F list-avail $MAXIMA >/dev/null
    then
      # 5.9.0 or later
      if [ "$1" ]
      then
        if $MAXIMA --list-avail | grep -F "version 5.9.1
version 5.9.2
version 5.9.3
version 5.10
version 5.11
version 5.12
version 5.13
version 5.14" >/dev/null
        then
          # 5.9.1 or 5.9.2 or 5.9.3 or 5.10 or 5.11 or 5.12 or 5.13 or 5.14
          maxima -d | grep -F 'maxima-htmldir=' | sed -e \
          's/maxima-htmldir=/"/' -e 's|$|/maxima_toc.html"|'
        else
          # 5.9.0
          find_old_help
        fi
      else
        maxima --list-avail | sed -e '1d' -e 's/version /"/' \
        -e 's/, lisp / /' -e 's/$/"/' -e '2s/^/(/' -e '$s/$/)/'
      fi
    else
      # 5.6
      if [ "$1" ]
      then
        find_old_help
      else
        if grep -F clisp $MAXIMA >/dev/null
        then echo '("5.6 clisp")'
        else echo '("5.6 gcl")'
        fi
      fi
    fi
  fi
else
  # maxima not found
  echo '#f'
fi
