1*35117Smarc# for compatibility with the S5R3 /bin/sh getopts builtin 2*35117Smarcfunction _getopts # [ arg ] ... optstring name 3*35117Smarc{ 4*35117Smarc OPTIND=${OPTIND:-1} 5*35117Smarc integer n=$#-1 6*35117Smarc eval typeset opstring=['$'$n] name='$'{$#} balance 7*35117Smarc typeset -L1 c d 8*35117Smarc shift OPTIND-1 9*35117Smarc if test X"$_arg" = X 10*35117Smarc then if (($# > 0)) 11*35117Smarc then _arg=$1 12*35117Smarc shift 13*35117Smarc else return 1 14*35117Smarc fi 15*35117Smarc fi 16*35117Smarc case $_arg in 17*35117Smarc --) 18*35117Smarc _arg= 19*35117Smarc return 1 20*35117Smarc ;; 21*35117Smarc -*) 22*35117Smarc c=${_arg#-} 23*35117Smarc case $c in 24*35117Smarc $opstring) 25*35117Smarc d=${opstring#*$c} 26*35117Smarc balance=${_arg#*$c} 27*35117Smarc if test X"$balance" = X 28*35117Smarc then if test X$d = X: 29*35117Smarc then OPTARG=$1 30*35117Smarc let OPTIND=OPTIND+2 31*35117Smarc else let OPTIND=OPTIND+1 32*35117Smarc fi 33*35117Smarc _arg= 34*35117Smarc else if test X$d = X: 35*35117Smarc then OPTARG=$balance _arg= 36*35117Smarc let OPTIND=OPTIND+1 37*35117Smarc else _arg=-$balance 38*35117Smarc fi 39*35117Smarc fi 40*35117Smarc eval $name=$c 41*35117Smarc return 0 42*35117Smarc ;; 43*35117Smarc *) echo $0: bad option 44*35117Smarc eval $name=? 45*35117Smarc return 1 46*35117Smarc ;; 47*35117Smarc esac 48*35117Smarc ;; 49*35117Smarc *) 50*35117Smarc _arg= 51*35117Smarc return 1 52*35117Smarc ;; 53*35117Smarc esac 54*35117Smarc} 55*35117Smarcalias getopts='_getopts "$@"' 56