xref: /titanic_50/usr/src/lib/libshell/common/features/options (revision 7c2fbfb345896881c631598ee3852ce9ce33fb07)
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