NEW
  PREFIX
AUTO 4,1
#!/bin/sh
echo -N "."
function menu {
 switch $#
  case 1;set menufile = $1;set menu = "A";break
  case 2;set menufile = $1;set menu = $2;break
  default;echo "\nError: Invalid use of this function";exit
 end
 if [ -f $menufile ];set menufile = $1
 else;echo "\nError: [${menufile}] File Not Found";exit;fi
 set sep = ":"
 set select = 1
 while [ $select -lt 10 ]
  call loadmenu
  call getselect
  call processchoice
 loop
 echo "\f\n\nuser chose from menu [${menu}] choice [${choice}] select [${select}]"
}
echo -N "."
function processchoice {
 switch $select
  case 11
  case 12
  case 13
  case 14
  case 15
  case 16
  case 17
  case 18
	set select = $select - 10
	set choice = `sh -C "grep ${menu}-${select}: $menufile | cut -s ${sep} -f 3"`
	break
  case 20
    set choice = "Quit"
	break
  case 25
    set choice = "Last Menu"
	break
  case 30
    set choice = "Root/Master Menu"
	break
  default
   echo "\fWow No idea how i got here\n\n"
   set select = 99
 end
 if [ $select -lt 9 ]
  if [ $choice = "menu" ]
	set lm = $menu
    set menu = `sh -C "grep ${menu}-${select}: $menufile | cut -s ${sep} -f 4"`
	set select = 1
  fi
 fi
}
echo -N "."
function loadmenu {
 set mc = 0
 set lc = 0
# echo \n\n\n\n\n\n
grep ${menu}- $menufile | cut -s ${sep} -f 2
pause
 for i in `sh -C "grep ${menu}- $menufile | cut -s ${sep} -f 2"`
  if [ $i = "-" ];set lc = $mc - 1;fi
  set m${mc} = $i
  set mc = $mc + 1
 next
 if [ $lc -eq 0 ];set lc = 8;fi
 set mc =
}
echo -N "."
function getselect {
 call dispmenu
 while [ $select -lt 10 ] 
  call dselect
  read -n 0 K
  switch $K
   case 3
	if [ -n $lm ]
     set select = 25
    else
	 call uselect
	 set select = 1
	fi
    break
   case 13
	set select = $select + 10
    break
   case 8
   case 10
	call uselect
    set select = $select - 1
    if [ $select -eq 0 ];set select = $lc;fi
    break
   case 11
   case 21
	call uselect
    set select = $select + 1
    if [ $select -gt $lc ];set select = 1;fi
    break
   case 17
   case 81
   case 113
	set select = 20
    break
   case 18
   case 77
   case 82
   case 109
   case 114
	set select = 30
    break
  end
 loop
}
echo -N "."
function dselect {
 switch $select
  case 1 ; call ixy 10 25 $m1 ; break
  case 2 ; call ixy 11 25 $m2 ; break
  case 3 ; call ixy 12 25 $m3 ; break
  case 4 ; call ixy 13 25 $m4 ; break
  case 5 ; call ixy 14 25 $m5 ; break
  case 6 ; call ixy 15 25 $m6 ; break
  case 7 ; call ixy 16 25 $m7 ; break
  case 8 ; call ixy 17 25 $m8 ; break
 end
}
echo -N "."
function uselect {
 switch $select
  case 1 ; call pxy 10 25 $m1 ; break
  case 2 ; call pxy 11 25 $m2 ; break
  case 3 ; call pxy 12 25 $m3 ; break
  case 4 ; call pxy 13 25 $m4 ; break
  case 5 ; call pxy 14 25 $m5 ; break
  case 6 ; call pxy 15 25 $m6 ; break
  case 7 ; call pxy 16 25 $m7 ; break
  case 8 ; call pxy 17 25 $m8 ; break
 end;}
echo -N "."
function dispmenu {
 call cs ; call tbox $m0
 switch $lc
  case 8 ; call pxy 17 25 $m8
  case 7 ; call pxy 16 25 $m7
  case 6 ; call pxy 15 25 $m6
  case 5 ; call pxy 14 25 $m5
  case 4 ; call pxy 13 25 $m4
  case 3 ; call pxy 12 25 $m3
  case 2 ; call pxy 11 25 $m2
  default ; call pxy 10 25 $m1
 end;}
echo -N "."
function cs {;echo \f;}
function tbox {
 set tS = $1
 set tL = `sh -c "echo ${tS}|wc -m"`
 set tL = 34 - ${tL} / 2
 while [ $tL -ne 0 ]
  set tS = " ${tS}";set tL = $tL - 1
 loop
 echo -n "\e[1;20H"
 echo "\e[7m                                        \e[0m"
 set tL = 2
 while [ $tL -ne 5 ]
  echo -n "\e[${tL};20H"
  echo "\e[7m \e[0m                                      \e[7m \e[0m"
  set tL = $tL + 1
 loop
 echo -n "\e[5;20H"
 echo "\e[7m                                        \e[0m"
 echo -n "\e[3;22H ${tS}"
 set tS =;set tL =
}
echo -N "."
function piv { ; echo -n "\e[7m$1\e[0m" ; }
function pxy { ; echo -n "\e[$1;$2H$3" ; }
function ixy { ; echo -n "\e[$1;$2H\e[7m$3\e[0m" ; }
echo -N ".\e[0m"
#  End of FMENU
MAN
TEXT /MAKE/USR/SHARE/ADMIN/fmenu
