Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Sep 2012 23:44:14 +0000 (UTC)
From:      Devin Teske <dteske@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r240768 - in head/usr.sbin/bsdconfig: . console mouse networking networking/share password/share security share startup startup/share timezone usermgmt usermgmt/share
Message-ID:  <201209202344.q8KNiEmn015410@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dteske
Date: Thu Sep 20 23:44:13 2012
New Revision: 240768
URL: http://svn.freebsd.org/changeset/base/240768

Log:
  Change all invocations of dialog(1) to no-longer require temporary files.
  This allows bsdconfig to -- like bsdinstall -- operate from read-only media.
  
  Reviewed by:	adrian (co-mentor)
  Approved by:	adrian (co-mentor)

Modified:
  head/usr.sbin/bsdconfig/bsdconfig
  head/usr.sbin/bsdconfig/console/console
  head/usr.sbin/bsdconfig/console/font
  head/usr.sbin/bsdconfig/console/keymap
  head/usr.sbin/bsdconfig/console/repeat
  head/usr.sbin/bsdconfig/console/saver
  head/usr.sbin/bsdconfig/console/screenmap
  head/usr.sbin/bsdconfig/console/ttys
  head/usr.sbin/bsdconfig/mouse/flags
  head/usr.sbin/bsdconfig/mouse/mouse
  head/usr.sbin/bsdconfig/mouse/port
  head/usr.sbin/bsdconfig/mouse/type
  head/usr.sbin/bsdconfig/networking/networking
  head/usr.sbin/bsdconfig/networking/share/device.subr
  head/usr.sbin/bsdconfig/networking/share/hostname.subr
  head/usr.sbin/bsdconfig/networking/share/ipaddr.subr
  head/usr.sbin/bsdconfig/networking/share/media.subr
  head/usr.sbin/bsdconfig/networking/share/netmask.subr
  head/usr.sbin/bsdconfig/networking/share/resolv.subr
  head/usr.sbin/bsdconfig/networking/share/routing.subr
  head/usr.sbin/bsdconfig/password/share/password.subr
  head/usr.sbin/bsdconfig/security/kern_securelevel
  head/usr.sbin/bsdconfig/security/security
  head/usr.sbin/bsdconfig/share/dialog.subr
  head/usr.sbin/bsdconfig/share/mustberoot.subr
  head/usr.sbin/bsdconfig/startup/misc
  head/usr.sbin/bsdconfig/startup/rcadd
  head/usr.sbin/bsdconfig/startup/rcconf
  head/usr.sbin/bsdconfig/startup/rcdelete
  head/usr.sbin/bsdconfig/startup/rcvar
  head/usr.sbin/bsdconfig/startup/share/rcconf.subr
  head/usr.sbin/bsdconfig/startup/share/rcedit.subr
  head/usr.sbin/bsdconfig/startup/startup
  head/usr.sbin/bsdconfig/timezone/timezone
  head/usr.sbin/bsdconfig/usermgmt/groupinput
  head/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
  head/usr.sbin/bsdconfig/usermgmt/share/user_input.subr
  head/usr.sbin/bsdconfig/usermgmt/userinput
  head/usr.sbin/bsdconfig/usermgmt/usermgmt

Modified: head/usr.sbin/bsdconfig/bsdconfig
==============================================================================
--- head/usr.sbin/bsdconfig/bsdconfig	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/bsdconfig	Thu Sep 20 23:44:13 2012	(r240768)
@@ -177,7 +177,8 @@ dialog_menu_main()
 	        	\"\"         \
 	        	$menu_list   )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear                                 \
 		--title \"\$title\"                     \
 		--backtitle \"\$btitle\"                \
@@ -185,7 +186,11 @@ dialog_menu_main()
 		--ok-label \"\$msg_ok\"                 \
 		--cancel-label \"\$msg_exit_bsdconfig\" \
 		--menu \"\$prompt\" $size $menu_list    \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/console/console
==============================================================================
--- head/usr.sbin/bsdconfig/console/console	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/console/console	Thu Sep 20 23:44:13 2012	(r240768)
@@ -68,7 +68,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -76,7 +77,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/console/font
==============================================================================
--- head/usr.sbin/bsdconfig/console/font	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/console/font	Thu Sep 20 23:44:13 2012	(r240768)
@@ -76,7 +76,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -84,7 +85,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/console/keymap
==============================================================================
--- head/usr.sbin/bsdconfig/console/keymap	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/console/keymap	Thu Sep 20 23:44:13 2012	(r240768)
@@ -116,7 +116,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -124,7 +125,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/console/repeat
==============================================================================
--- head/usr.sbin/bsdconfig/console/repeat	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/console/repeat	Thu Sep 20 23:44:13 2012	(r240768)
@@ -66,7 +66,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -74,7 +75,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/console/saver
==============================================================================
--- head/usr.sbin/bsdconfig/console/saver	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/console/saver	Thu Sep 20 23:44:13 2012	(r240768)
@@ -76,7 +76,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -84,7 +85,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN
@@ -174,7 +179,7 @@ while :; do
 		        	"$prompt"    \
 		        	"$blanktime" \
 		        	"$hline"     )
-		$DIALOG \
+		dialog_inputbox=$( $DIALOG \
 			--title "$title"             \
 			--backtitle "$btitle"        \
 			--hline "$hline"             \
@@ -182,8 +187,10 @@ while :; do
 			--cancel-label "$msg_cancel" \
 			--inputbox "$prompt" $size   \
 			"$blanktime"                 \
-			2> "$DIALOG_TMPDIR/dialog.inputbox.$$"
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 		retval=$?
+		setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 		blanktime=$( f_dialog_inputstr )
 		[ $retval -eq $SUCCESS ] &&
 			f_sysrc_set blanktime "$blanktime"

Modified: head/usr.sbin/bsdconfig/console/screenmap
==============================================================================
--- head/usr.sbin/bsdconfig/console/screenmap	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/console/screenmap	Thu Sep 20 23:44:13 2012	(r240768)
@@ -68,7 +68,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -76,7 +77,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/console/ttys
==============================================================================
--- head/usr.sbin/bsdconfig/console/ttys	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/console/ttys	Thu Sep 20 23:44:13 2012	(r240768)
@@ -82,7 +82,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$TTY_MENU_LIST         )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -90,7 +91,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$TTY_MENU_LIST                     \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 # ttys_set_type $consterm

Modified: head/usr.sbin/bsdconfig/mouse/flags
==============================================================================
--- head/usr.sbin/bsdconfig/mouse/flags	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/mouse/flags	Thu Sep 20 23:44:13 2012	(r240768)
@@ -90,7 +90,7 @@ size=$( f_dialog_inputbox_size \
         	"$prompt" \
         	"$flags"  \
         	"$hline"  )
-eval $DIALOG \
+dialog_inputbox=$( eval $DIALOG \
 	--title \"\$title\"             \
 	--backtitle \"\$btitle\"        \
 	--hline \"\$hline\"             \
@@ -98,8 +98,10 @@ eval $DIALOG \
 	--cancel-label \"\$msg_cancel\" \
 	--inputbox \"\$prompt\" $size   \
 	\"\$flags\"                     \
-	2> "$DIALOG_TMPDIR/dialog.inputbox.$$"
+	2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+)
 retval=$?
+setvar MENU_INPUTBOX_$$ "$dialog_inputbox"
 flags=$( f_dialog_inputstr )
 
 [ $retval -eq $SUCCESS ] || f_die

Modified: head/usr.sbin/bsdconfig/mouse/mouse
==============================================================================
--- head/usr.sbin/bsdconfig/mouse/mouse	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/mouse/mouse	Thu Sep 20 23:44:13 2012	(r240768)
@@ -67,7 +67,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -75,7 +76,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/mouse/port
==============================================================================
--- head/usr.sbin/bsdconfig/mouse/port	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/mouse/port	Thu Sep 20 23:44:13 2012	(r240768)
@@ -68,7 +68,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -76,7 +77,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/mouse/type
==============================================================================
--- head/usr.sbin/bsdconfig/mouse/type	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/mouse/type	Thu Sep 20 23:44:13 2012	(r240768)
@@ -72,7 +72,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -80,7 +81,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/networking/networking
==============================================================================
--- head/usr.sbin/bsdconfig/networking/networking	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/networking/networking	Thu Sep 20 23:44:13 2012	(r240768)
@@ -65,14 +65,19 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
 		--ok-label \"\$msg_ok\"            \
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\" $size $menu_list       \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/networking/share/device.subr
==============================================================================
--- head/usr.sbin/bsdconfig/networking/share/device.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/networking/share/device.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -265,7 +265,8 @@ f_dialog_menu_netdev()
 	        	\"\$prompt\"           \
 	        	\"\$hline\"            \
 	        	$interfaces            )
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -273,7 +274,11 @@ f_dialog_menu_netdev()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$interfaces                        \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 # f_dialog_menu_netdev_edit $interface $ipaddr $netmask $options $dhcp
@@ -330,7 +335,8 @@ f_dialog_menu_netdev_edit()
 		        	\"\$prompt\"           \
 		        	\"\$hline\"            \
 		        	$menu_list             )
-		eval $DIALOG \
+		local dialog_menu
+		dialog_menu=$( eval $DIALOG \
 			--clear --title \"\$DIALOG_TITLE\" \
 			--backtitle \"\$DIALOG_BACKTITLE\" \
 			--hline \"\$hline\"                \
@@ -338,9 +344,11 @@ f_dialog_menu_netdev_edit()
 			--cancel-label \"\$msg_cancel\"    \
 			--menu \"\$prompt\" $size          \
 			$menu_list                         \
-			2> "$DIALOG_TMPDIR/dialog.menu.$$"
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 
 		local retval=$?
+		setvar DIALOG_MENU_$$ "$dialog_menu"
 		local tag="$( f_dialog_menutag )"
 
 		# Return if "Cancel" was chosen (-1) or ESC was pressed (255)

Modified: head/usr.sbin/bsdconfig/networking/share/hostname.subr
==============================================================================
--- head/usr.sbin/bsdconfig/networking/share/hostname.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/networking/share/hostname.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -146,7 +146,8 @@ f_dialog_input_hostname()
 		         	"$msg"              \
 		         	"$hostname"         \
 		         	"$hline"            )
-		eval $DIALOG \
+		local dialog_inputbox
+		dialog_inputbox=$( eval $DIALOG \
 			--title \"\$DIALOG_TITLE\"         \
 			--backtitle \"\$DIALOG_BACKTITLE\" \
 			--hline \"\$hline\"                \
@@ -154,9 +155,11 @@ f_dialog_input_hostname()
 			--cancel-label \"\$msg_cancel\"    \
 			--inputbox \"\$msg\" $size         \
 			\"\$hostname\"                     \
-			2> "$DIALOG_TMPDIR/dialog.inputbox.$$"
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 
 		local retval=$?
+		setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 		hostname=$( f_dialog_inputstr )
 
 		[ $retval -eq $SUCCESS ] || return $retval

Modified: head/usr.sbin/bsdconfig/networking/share/ipaddr.subr
==============================================================================
--- head/usr.sbin/bsdconfig/networking/share/ipaddr.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/networking/share/ipaddr.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -167,7 +167,8 @@ f_dialog_input_ipaddr()
 	# Loop until the user provides taint-free input.
 	#
 	while :; do
-		eval $DIALOG \
+		local dialog_inputbox
+		dialog_inputbox=$( eval $DIALOG \
 			--title \"\$DIALOG_TITLE\"         \
 		        --backtitle \"\$DIALOG_BACKTITLE\" \
 			--hline \"\$hline\"                \
@@ -175,9 +176,11 @@ f_dialog_input_ipaddr()
 			--cancel-label \"\$msg_cancel\"    \
 			--inputbox \"\$msg\" $size         \
 			\"\$_ipaddr\"                      \
-			2> "$DIALOG_TMPDIR/dialog.inputbox.$$"
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 
 		local retval=$?
+		setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 		_input=$( f_dialog_inputstr )
 
 		#

Modified: head/usr.sbin/bsdconfig/networking/share/media.subr
==============================================================================
--- head/usr.sbin/bsdconfig/networking/share/media.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/networking/share/media.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -123,7 +123,8 @@ f_dialog_input_options()
 	local msg="$( printf "$msg_please_enter_mediaopts" "$interface" )"
 	local hline="$hline_alnum_punc_tab_enter"
 
-	$DIALOG \
+	local dialog_inputbox
+	dialog_inputbox=$( $DIALOG \
 		--title "$DIALOG_TITLE"         \
 		--backtitle "$DIALOG_BACKTITLE" \
 		--hline "$hline"                \
@@ -131,9 +132,11 @@ f_dialog_input_options()
 		--cancel-label "$msg_cancel"    \
 		--inputbox "$msg" 9 70          \
 		"$options"                      \
-		2> "$DIALOG_TMPDIR/dialog.inputbox.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
 
 	local retval=$?
+	setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 	local _options="$( f_dialog_inputstr )"
 
 	[ $retval -eq $SUCCESS ] && options="$_options"
@@ -205,7 +208,8 @@ f_dialog_menu_media_options()
 
 	local hline="$hline_arrows_tab_enter"
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -213,9 +217,11 @@ f_dialog_menu_media_options()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$msg\" 21 60 12          \
 		$supported_media                   \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
 
 	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
 	if [ $retval -eq $SUCCESS ]; then
 		local tag="$( f_dialog_menutag )"
 		options=$( eval f_dialog_menutag2item \"\$tag\" \

Modified: head/usr.sbin/bsdconfig/networking/share/netmask.subr
==============================================================================
--- head/usr.sbin/bsdconfig/networking/share/netmask.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/networking/share/netmask.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -177,7 +177,8 @@ f_dialog_input_netmask()
 	# Loop until the user provides taint-free input.
 	#
 	while :; do
-		eval $DIALOG \
+		local dialog_inputbox
+		dialog_inputbox=$( eval $DIALOG \
 			--title \"\$DIALOG_TITLE\"         \
 		        --backtitle \"\$DIALOG_BACKTITLE\" \
 			--hline \"\$hline\"                \
@@ -185,9 +186,11 @@ f_dialog_input_netmask()
 			--cancel-label \"\$msg_cancel\"    \
 			--inputbox \"\$msg\" $size         \
 			\"\$_netmask\"                     \
-			2> "$DIALOG_TMPDIR/dialog.inputbox.$$"
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 
 		local retval=$?
+		setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 		_input=$( f_dialog_inputstr )
 
 		#

Modified: head/usr.sbin/bsdconfig/networking/share/resolv.subr
==============================================================================
--- head/usr.sbin/bsdconfig/networking/share/resolv.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/networking/share/resolv.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -342,7 +342,8 @@ f_dialog_input_nameserver()
 	#
 	while :; do
 
-		eval $DIALOG \
+		local dialog_inputbox
+		dialog_inputbox=$( eval $DIALOG \
 			--title \"\$DIALOG_TITLE\"         \
 		        --backtitle \"\$DIALOG_BACKTITLE\" \
 			--hline \"\$hline\"                \
@@ -350,9 +351,11 @@ f_dialog_input_nameserver()
 			--cancel-label \"\$msg_cancel\"    \
 			--inputbox \"\$msg\" $size         \
 			\"\$ns\"                           \
-			2> "$DIALOG_TMPDIR/dialog.inputbox.$$"
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 
 		local retval=$?
+		setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 		new_ns=$( f_dialog_inputstr )
 
 		[ $retval -eq $SUCCESS ] || return $retval
@@ -476,7 +479,8 @@ f_dialog_menu_nameservers()
 		        	\"\$prompt\"           \
 		        	\"\$hline\"            \
 		        	$menu_list             )
-		eval $DIALOG \
+		local dialog_menu
+		dialog_menu=$( eval $DIALOG \
 			--clear --title \"\$DIALOG_TITLE\" \
 			--backtitle \"\$DIALOG_BACKTITLE\" \
 			--hline \"\$hline\"                \
@@ -484,9 +488,11 @@ f_dialog_menu_nameservers()
 			--cancel-label \"\$msg_cancel\"    \
 			--menu \"\$prompt\" $size          \
 			$menu_list                         \
-			2> "$DIALOG_TMPDIR/dialog.menu.$$"
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 
 		local retval=$?
+		setvar DIALOG_MENU_$$ "$dialog_menu"
 		local tag="$( f_dialog_menutag )" ns=""
 
 		# Return if "Cancel" was chosen (-1) or ESC was pressed (255)

Modified: head/usr.sbin/bsdconfig/networking/share/routing.subr
==============================================================================
--- head/usr.sbin/bsdconfig/networking/share/routing.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/networking/share/routing.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -110,7 +110,8 @@ f_dialog_input_defaultrouter()
 	# Loop until the user provides taint-free input.
 	#
 	while :; do
-		eval $DIALOG \
+		local dialog_inputbox
+		dialog_inputbox=$( eval $DIALOG \
 			--title \"\$DIALOG_TITLE\"         \
 			--backtitle \"\$DIALOG_BACKTITLE\" \
 			--hline \"\$hline\"                \
@@ -118,9 +119,11 @@ f_dialog_input_defaultrouter()
 			--cancel-label \"\$msg_cancel\"    \
 			--inputbox \"\$msg\" $size         \
 			\"\$defaultrouter\"                \
-			2> "$DIALOG_TMPDIR/dialog.inputbox.$$"
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 
 		local retval=$?
+		setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 		defaultrouter=$( f_dialog_inputstr )
 
 		[ "$defaultrouter" ] || return $SUCCESS

Modified: head/usr.sbin/bsdconfig/password/share/password.subr
==============================================================================
--- head/usr.sbin/bsdconfig/password/share/password.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/password/share/password.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -68,7 +68,8 @@ f_dialog_input_password()
 	#
 	local retval _password1 _password2
 	while :; do
-		eval $DIALOG \
+		local dialog_inputbox
+		dialog_inputbox=$( eval $DIALOG \
 			--title \"\$DIALOG_TITLE\"         \
 			--backtitle \"\$DIALOG_BACKTITLE\" \
 			--hline \"\$hline\"                \
@@ -76,15 +77,17 @@ f_dialog_input_password()
 			--cancel-label \"\$msg_cancel\"    \
 			--insecure                         \
 			--passwordbox \"\$msg\" $size      \
-			2> $DIALOG_TMPDIR/dialog.inputbox.$$
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 
 		retval=$?
+		setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 		_password1=$( f_dialog_inputstr )
 
 		# Return if user has either pressed ESC or chosen Cancel/No
 		[ $retval -eq $SUCCESS ] || return $retval
 
-		eval $DIALOG \
+		dialog_inputbox=$( eval $DIALOG \
 			--title \"\$DIALOG_TITLE\"         \
 			--backtitle \"\$DIALOG_BACKTITLE\" \
 			--hline \"\$hline\"                \
@@ -92,9 +95,11 @@ f_dialog_input_password()
 			--cancel-label \"\$msg_cancel\"    \
 			--insecure                         \
 			--passwordbox \"\$rmsg\" $rsize    \
-			2> $DIALOG_TMPDIR/dialog.inputbox.$$
+			2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+		)
 
 		retval=$?
+		setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 		_password2=$( f_dialog_inputstr )
 
 		# Return if user has either pressed ESC or chosen Cancel/No

Modified: head/usr.sbin/bsdconfig/security/kern_securelevel
==============================================================================
--- head/usr.sbin/bsdconfig/security/kern_securelevel	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/security/kern_securelevel	Thu Sep 20 23:44:13 2012	(r240768)
@@ -67,7 +67,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -75,7 +76,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/security/security
==============================================================================
--- head/usr.sbin/bsdconfig/security/security	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/security/security	Thu Sep 20 23:44:13 2012	(r240768)
@@ -86,7 +86,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -94,7 +95,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/share/dialog.subr
==============================================================================
--- head/usr.sbin/bsdconfig/share/dialog.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/share/dialog.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -38,9 +38,11 @@ f_include_lang $BSDCFG_LIBE/include/mess
 ############################################################ CONFIGURATION
 
 #
-# Default directory to store dialog(1) temporary files
+# Default file descriptor to link to stdout for dialog(1) passthru allowing
+# execution of dialog from within a sub-shell (so-long as its standard output
+# is explicitly redirected to this file descriptor).
 #
-: ${DIALOG_TMPDIR:="/tmp"}
+: ${DIALOG_TERMINAL_PASSTHRU_FD:=3}
 
 ############################################################ GLOBALS
 
@@ -1108,12 +1110,8 @@ f_dialog_noyes()
 #
 f_dialog_inputstr()
 {
-	local tmpfile="$DIALOG_TMPDIR/dialog.inputbox.$$"
-
-	[ -f "$tmpfile" ] || return $FAILURE
-
 	# Skip warnings and trim leading/trailing whitespace from user input
-	awk '
+	eval echo \"\$DIALOG_INPUTBOX_$$\" | awk '
 		BEGIN { found = 0 }
 		{
 			if ( ! found )
@@ -1126,9 +1124,8 @@ f_dialog_inputstr()
 			sub(/[[:space:]]*$/, "")
 			print
 		}
-	' "$tmpfile" 2> /dev/null
-	f_quietly rm -f "$tmpfile"
-
+	'
+	setvar DIALOG_INPUTBOX_$$ "" # scrub memory in case data was sensitive
 	return $SUCCESS
 }
 
@@ -1141,11 +1138,8 @@ f_dialog_inputstr()
 #
 f_dialog_menutag()
 {
-	local tmpfile="$DIALOG_TMPDIR/dialog.menu.$$"
-
-	[ -f "$tmpfile" ] || return $FAILURE
-
-	awk '
+	# Skip warnings
+	eval echo \"\$DIALOG_MENU_$$\" | awk '
 		BEGIN { found = 0 }
 		{
 			if ( found ) # ... just spew
@@ -1158,9 +1152,8 @@ f_dialog_menutag()
 			found = 1
 			print
 		}
-	' "$tmpfile" 2> /dev/null
-	f_quietly rm -f "$tmpfile"
-
+	'
+	setvar DIALOG_MENU_$$ "" # scrub memory in case data was sensitive
 	return $SUCCESS
 }
 
@@ -1320,6 +1313,11 @@ f_dialog_init()
 	DIALOG_SELF_INITIALIZE=
 
 	#
+	# Clone terminal stdout so we can redirect to it from within sub-shells
+	#
+	eval exec $DIALOG_TERMINAL_PASSTHRU_FD\>\&1
+
+	#
 	# Process stored command-line arguments
 	#
 	SECURE=$( set -- "$ARGV"
@@ -1422,22 +1420,4 @@ f_dialog_init()
 	fi
 }
 
-############################################################ CLEAN-UP FUNCTIONS
-
-# f_clean_up
-#
-# Clean-up routines (run when script exits or is killed).
-#
-f_clean_up()
-{
-	f_quietly rm -f "$DIALOG_TMPDIR"/dialog.*.$$
-}
-
-############################################################ MAIN
-
-#
-# Trap signals so we can recover gracefully
-#
-trap 'f_clean_up' EXIT
-
 fi # ! $_DIALOG_SUBR

Modified: head/usr.sbin/bsdconfig/share/mustberoot.subr
==============================================================================
--- head/usr.sbin/bsdconfig/share/mustberoot.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/share/mustberoot.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -119,7 +119,8 @@ f_become_root_via_sudo()
 				[ $retval -eq 255 ] &&
 					f_die $retval "$password"
 			else
-				$DIALOG \
+				local dialog_inputbox
+				dialog_inputbox=$( $DIALOG \
 					--title "$DIALOG_TITLE"         \
 					--backtitle "$DIALOG_BACKTITLE" \
 					--hline "$hline"                \
@@ -127,8 +128,10 @@ f_become_root_via_sudo()
 					--cancel-label "$msg_cancel"    \
 					--insecure                      \
 					--passwordbox "$msg" $size      \
-					2> "$DIALOG_TMPDIR/dialog.inputbox.$$"
+					2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+				)
 				retval=$?
+				setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 				password=$( f_dialog_inputstr )
 			fi
 

Modified: head/usr.sbin/bsdconfig/startup/misc
==============================================================================
--- head/usr.sbin/bsdconfig/startup/misc	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/startup/misc	Thu Sep 20 23:44:13 2012	(r240768)
@@ -230,7 +230,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -238,7 +239,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 # dialog_input_value [ $prompt [ $init ] ]
@@ -260,7 +265,8 @@ dialog_input_value()
 	        	"$_input"           \
 	        	"$hline"            )
 
-	eval $DIALOG \
+	local dialog_inputbox
+	dialog_inputbox=$( eval $DIALOG \
 		--title \"\$DIALOG_TITLE\"         \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -268,9 +274,11 @@ dialog_input_value()
 		--cancel-label \"\$msg_cancel\"    \
 		--inputbox \"\$prompt\" $size      \
 		\"\$_input\"                       \
-		2> $DIALOG_TMPDIR/dialog.inputbox.$$
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
 
 	retval=$?
+	setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
 	_input=$( f_dialog_inputstr )
 
 	f_dialog_title_restore

Modified: head/usr.sbin/bsdconfig/startup/rcadd
==============================================================================
--- head/usr.sbin/bsdconfig/startup/rcadd	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/startup/rcadd	Thu Sep 20 23:44:13 2012	(r240768)
@@ -72,7 +72,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$menu_list             )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -80,7 +81,11 @@ dialog_menu_main()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/startup/rcconf
==============================================================================
--- head/usr.sbin/bsdconfig/startup/rcconf	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/startup/rcconf	Thu Sep 20 23:44:13 2012	(r240768)
@@ -168,7 +168,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$RCCONF_MENU_LIST      )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -179,7 +180,11 @@ dialog_menu_main()
 		${SHOW_DESC:+--item-help}          \
 		--menu \"\$prompt\" $size          \
 		$RCCONF_MENU_LIST                  \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/startup/rcdelete
==============================================================================
--- head/usr.sbin/bsdconfig/startup/rcdelete	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/startup/rcdelete	Thu Sep 20 23:44:13 2012	(r240768)
@@ -175,7 +175,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$RCCONF_MENU_LIST      )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -186,7 +187,11 @@ dialog_menu_main()
 		${SHOW_DESC:+--item-help}          \
 		--menu \"\$prompt\" $size          \
 		$RCCONF_MENU_LIST                  \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 # dialog_menu_delete $var1 [$var2 ...]
@@ -240,7 +245,8 @@ dialog_menu_delete()
 	local defaultno="defaultno"
 	[ "$USE_XDIALOG" ] && defaultno="default-no"
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -249,7 +255,11 @@ dialog_menu_delete()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/startup/rcvar
==============================================================================
--- head/usr.sbin/bsdconfig/startup/rcvar	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/startup/rcvar	Thu Sep 20 23:44:13 2012	(r240768)
@@ -132,7 +132,8 @@ dialog_menu_main()
 	        	\"\$hline\"            \
 	        	$RCVAR_MENU_LIST       )
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--clear --title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -141,7 +142,11 @@ dialog_menu_main()
 		${SHOW_DESC:+--item-help}          \
 		--menu \"\$prompt\" $size          \
 		$RCVAR_MENU_LIST                   \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
+	local retval=$?
+	setvar DIALOG_MENU_$$ "$dialog_menu"
+	return $retval
 }
 
 ############################################################ MAIN

Modified: head/usr.sbin/bsdconfig/startup/share/rcconf.subr
==============================================================================
--- head/usr.sbin/bsdconfig/startup/share/rcconf.subr	Thu Sep 20 23:00:01 2012	(r240767)
+++ head/usr.sbin/bsdconfig/startup/share/rcconf.subr	Thu Sep 20 23:44:13 2012	(r240768)
@@ -282,7 +282,8 @@ f_dialog_input_view_details()
 
 	f_dialog_title "$msg_choose_view_details"
 
-	eval $DIALOG \
+	local dialog_menu
+	dialog_menu=$( eval $DIALOG \
 		--title \"\$DIALOG_TITLE\" \
 		--backtitle \"\$DIALOG_BACKTITLE\" \
 		--hline \"\$hline\"                \
@@ -290,9 +291,11 @@ f_dialog_input_view_details()
 		--cancel-label \"\$msg_cancel\"    \
 		--menu \"\$prompt\" $size          \
 		$menu_list                         \
-		2> "$DIALOG_TMPDIR/dialog.menu.$$"
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+	)
 

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209202344.q8KNiEmn015410>