1 da2e3ebdSchin# SHOPT_* option probe 2 da2e3ebdSchin 3 da2e3ebdSchintst cross{ 4 da2e3ebdSchin : check for shell magic #! 5 da2e3ebdSchin cat > /tmp/file$$ <<! 6 da2e3ebdSchin #! /bin/echo 7 da2e3ebdSchin exit 1 8 da2e3ebdSchin ! 9 da2e3ebdSchin chmod 755 /tmp/file$$ 10 da2e3ebdSchin if /tmp/file$$ > /dev/null 11 da2e3ebdSchin then echo "#define SHELLMAGIC 1" 12 da2e3ebdSchin fi 13 da2e3ebdSchin rm -f /tmp/file$$ 14 da2e3ebdSchin 15 da2e3ebdSchin option() # name value 16 da2e3ebdSchin { 17 da2e3ebdSchin case $2 in 18 da2e3ebdSchin 0) echo "#ifndef SHOPT_$1" 19 da2e3ebdSchin echo "# define SHOPT_$1 1" 20 da2e3ebdSchin echo "#endif" 21 da2e3ebdSchin ;; 22 da2e3ebdSchin *) echo "#undef SHOPT_$1" 23 da2e3ebdSchin ;; 24 da2e3ebdSchin esac 25 da2e3ebdSchin } 26 da2e3ebdSchin 27 *7c2fbfb3SApril Chin ls /dev/fd/9 9<&0 >/dev/null 2>&1 28 da2e3ebdSchin option DEVFD $? 29 *7c2fbfb3SApril Chin exec 9<&- 30 da2e3ebdSchin case `echo a | tr a '\012' | wc -l` in 31 da2e3ebdSchin *1*) option MULTIBYTE 0 ;; 32 da2e3ebdSchin esac 33 da2e3ebdSchin test -x /bin/pfexec -o -x /usr/bin/pfexec 34 da2e3ebdSchin option PFSH $? 35 da2e3ebdSchin /bin/test ! -l . 2> /dev/null 36 da2e3ebdSchin option TEST_L $? 37 da2e3ebdSchin test -f /etc/ksh.kshrc -o -f /etc/bash.bashrc && 38 da2e3ebdSchin option SYSRC 0 39 da2e3ebdSchin test -f /bin/universe && univ=`/bin/universe` > /dev/null 2>&1 -a ucb = "$univ" 40 da2e3ebdSchin option UCB $? 41 da2e3ebdSchin}end 42 da2e3ebdSchin 43 da2e3ebdSchincat{ 44 da2e3ebdSchin #if !_PACKAGE_ast && ( (MB_LEN_MAX-1)<=0 || !defined(_lib_mbtowc) ) 45 da2e3ebdSchin # undef SHOPT_MULTIBYTE 46 da2e3ebdSchin #endif 47 da2e3ebdSchin}end 48