summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xusr.sbin/bsdconfig/bsdconfig11
-rwxr-xr-xusr.sbin/bsdconfig/console/console16
-rwxr-xr-xusr.sbin/bsdconfig/console/font13
-rwxr-xr-xusr.sbin/bsdconfig/console/keymap13
-rwxr-xr-xusr.sbin/bsdconfig/console/repeat13
-rwxr-xr-xusr.sbin/bsdconfig/console/saver13
-rwxr-xr-xusr.sbin/bsdconfig/console/screenmap13
-rwxr-xr-xusr.sbin/bsdconfig/console/ttys12
-rwxr-xr-xusr.sbin/bsdconfig/mouse/mouse16
-rwxr-xr-xusr.sbin/bsdconfig/mouse/port13
-rwxr-xr-xusr.sbin/bsdconfig/mouse/type13
-rwxr-xr-xusr.sbin/bsdconfig/networking/devices7
-rwxr-xr-xusr.sbin/bsdconfig/networking/networking16
-rw-r--r--usr.sbin/bsdconfig/networking/share/device.subr14
-rw-r--r--usr.sbin/bsdconfig/networking/share/media.subr9
-rw-r--r--usr.sbin/bsdconfig/networking/share/resolv.subr9
-rwxr-xr-xusr.sbin/bsdconfig/security/kern_securelevel8
-rwxr-xr-xusr.sbin/bsdconfig/security/security16
-rw-r--r--usr.sbin/bsdconfig/share/device.subr4
-rw-r--r--usr.sbin/bsdconfig/share/dialog.subr87
-rw-r--r--usr.sbin/bsdconfig/share/media/any.subr10
-rw-r--r--usr.sbin/bsdconfig/share/media/ftp.subr13
-rw-r--r--usr.sbin/bsdconfig/share/media/options.subr12
-rw-r--r--usr.sbin/bsdconfig/share/media/tcpip.subr3
-rw-r--r--usr.sbin/bsdconfig/share/mustberoot.subr12
-rwxr-xr-xusr.sbin/bsdconfig/share/packages/packages.subr67
-rwxr-xr-xusr.sbin/bsdconfig/startup/misc16
-rwxr-xr-xusr.sbin/bsdconfig/startup/rcadd20
-rwxr-xr-xusr.sbin/bsdconfig/startup/rcconf11
-rwxr-xr-xusr.sbin/bsdconfig/startup/rcdelete11
-rwxr-xr-xusr.sbin/bsdconfig/startup/rcvar16
-rw-r--r--usr.sbin/bsdconfig/startup/share/rcconf.subr18
-rwxr-xr-xusr.sbin/bsdconfig/startup/startup16
-rwxr-xr-xusr.sbin/bsdconfig/timezone/timezone21
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/groupdel2
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/groupedit2
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/groupinput10
-rw-r--r--usr.sbin/bsdconfig/usermgmt/share/group_input.subr37
-rw-r--r--usr.sbin/bsdconfig/usermgmt/share/user_input.subr73
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/userdel2
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/useredit2
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/userinput10
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/usermgmt11
43 files changed, 338 insertions, 373 deletions
diff --git a/usr.sbin/bsdconfig/bsdconfig b/usr.sbin/bsdconfig/bsdconfig
index 890e797..0cdda92 100755
--- a/usr.sbin/bsdconfig/bsdconfig
+++ b/usr.sbin/bsdconfig/bsdconfig
@@ -187,8 +187,8 @@ dialog_menu_main()
\"\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--clear \
--title \"\$title\" \
--backtitle \"\$btitle\" \
@@ -205,10 +205,11 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
# Only update default-item on success
- [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$dialog_menu"
+ [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -298,7 +299,7 @@ fi
while :; do
dialog_menu_main
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
if [ $retval -eq 2 ]; then
diff --git a/usr.sbin/bsdconfig/console/console b/usr.sbin/bsdconfig/console/console
index da71c73..630d071 100755
--- a/usr.sbin/bsdconfig/console/console
+++ b/usr.sbin/bsdconfig/console/console
@@ -70,8 +70,8 @@ dialog_menu_main()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -84,8 +84,9 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DEFAULTITEM_$$ "$dialog_menu"
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
+ setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -115,11 +116,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"X $msg_exit") break ;;
diff --git a/usr.sbin/bsdconfig/console/font b/usr.sbin/bsdconfig/console/font
index 101a374..340bc6d 100755
--- a/usr.sbin/bsdconfig/console/font
+++ b/usr.sbin/bsdconfig/console/font
@@ -95,8 +95,8 @@ dialog_menu_main()
swiss-8x8) defaultitem="e $msg_swiss";;
esac
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -109,7 +109,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -139,11 +139,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"1 $msg_none") # Use hardware default font
diff --git a/usr.sbin/bsdconfig/console/keymap b/usr.sbin/bsdconfig/console/keymap
index aa51f7d..fdbf511 100755
--- a/usr.sbin/bsdconfig/console/keymap
+++ b/usr.sbin/bsdconfig/console/keymap
@@ -193,8 +193,8 @@ dialog_menu_main()
) && defaultitem=" $defaultitem"
fi
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -207,7 +207,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -237,11 +237,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
#
# Reverse the users choice into the variable name
diff --git a/usr.sbin/bsdconfig/console/repeat b/usr.sbin/bsdconfig/console/repeat
index 85822e0..a98e39f 100755
--- a/usr.sbin/bsdconfig/console/repeat
+++ b/usr.sbin/bsdconfig/console/repeat
@@ -75,8 +75,8 @@ dialog_menu_main()
[Nn][Oo]|'') defaultitem="$msg_default";;
esac
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -89,7 +89,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -119,11 +119,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"$msg_slow") # Slow keyboard repeat rate
diff --git a/usr.sbin/bsdconfig/console/saver b/usr.sbin/bsdconfig/console/saver
index 99cb81c..f2c9cf7 100755
--- a/usr.sbin/bsdconfig/console/saver
+++ b/usr.sbin/bsdconfig/console/saver
@@ -94,8 +94,8 @@ dialog_menu_main()
[Nn][Oo]|'') defaultitem="d $msg_none" ;;
esac
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -108,7 +108,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -138,11 +138,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"1 $msg_blank") # Simply blank the screen
diff --git a/usr.sbin/bsdconfig/console/screenmap b/usr.sbin/bsdconfig/console/screenmap
index 7d72c48..6fc3ddd 100755
--- a/usr.sbin/bsdconfig/console/screenmap
+++ b/usr.sbin/bsdconfig/console/screenmap
@@ -79,8 +79,8 @@ dialog_menu_main()
koi8-u2cp866u) defaultitem="6 $msg_koi8_u_to_ibm866u" ;;
esac
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -93,7 +93,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -123,11 +123,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"1 $msg_none") # No screenmap, don't touch font
diff --git a/usr.sbin/bsdconfig/console/ttys b/usr.sbin/bsdconfig/console/ttys
index 0fc83fa..96126ad 100755
--- a/usr.sbin/bsdconfig/console/ttys
+++ b/usr.sbin/bsdconfig/console/ttys
@@ -83,8 +83,8 @@ dialog_menu_main()
\"\$hline\" \
$TTY_MENU_LIST
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -96,7 +96,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -182,11 +182,9 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
- [ $retval -eq 0 ] || f_die
[ "$mtag" = "1 $msg_none" ] && break
consterm=$( eval f_dialog_menutag2item \"\$mtag\" $TTY_MENU_LIST )
diff --git a/usr.sbin/bsdconfig/mouse/mouse b/usr.sbin/bsdconfig/mouse/mouse
index 6e297cd..8a8f125 100755
--- a/usr.sbin/bsdconfig/mouse/mouse
+++ b/usr.sbin/bsdconfig/mouse/mouse
@@ -69,8 +69,8 @@ dialog_menu_main()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -83,8 +83,9 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DEFAULTITEM_$$ "$dialog_menu"
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
+ setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -114,11 +115,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"X $msg_exit") break ;;
diff --git a/usr.sbin/bsdconfig/mouse/port b/usr.sbin/bsdconfig/mouse/port
index c8d9586..6e4b873 100755
--- a/usr.sbin/bsdconfig/mouse/port
+++ b/usr.sbin/bsdconfig/mouse/port
@@ -79,8 +79,8 @@ dialog_menu_main()
/dev/mse0) defaultitem="6 $msg_busmouse" ;;
esac
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -93,7 +93,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -123,11 +123,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"1 $msg_ps2") # PS/2 style mouse (/dev/psm0)
diff --git a/usr.sbin/bsdconfig/mouse/type b/usr.sbin/bsdconfig/mouse/type
index 0cd3fb7..2e14305 100755
--- a/usr.sbin/bsdconfig/mouse/type
+++ b/usr.sbin/bsdconfig/mouse/type
@@ -87,8 +87,8 @@ dialog_menu_main()
thinkingmouse) defaultitem="A $msg_thinkingmouse" ;;
esac
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -101,7 +101,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -131,11 +131,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"1 $msg_auto") # Bus mouse, PS/2 style mouse or PnP serial mouse
diff --git a/usr.sbin/bsdconfig/networking/devices b/usr.sbin/bsdconfig/networking/devices
index 11614f0..2ed9af80 100755
--- a/usr.sbin/bsdconfig/networking/devices
+++ b/usr.sbin/bsdconfig/networking/devices
@@ -73,13 +73,10 @@ f_mustberoot_init
#
defaultitem=""
while :; do
- f_dialog_menu_netdev "$defaultitem"
- retval=$?
- interface=$( f_dialog_menutag )
+ f_dialog_menu_netdev "$defaultitem" || break
+ f_dialog_menutag_fetch interface
defaultitem="$interface"
- [ $retval -eq 0 ] || break
-
#
# dialog_menu_netdev adds an asterisk (*) to the right of the
# device name if the interface is active. Remove the asterisk
diff --git a/usr.sbin/bsdconfig/networking/networking b/usr.sbin/bsdconfig/networking/networking
index 5f69ccb..13d5018 100755
--- a/usr.sbin/bsdconfig/networking/networking
+++ b/usr.sbin/bsdconfig/networking/networking
@@ -67,8 +67,8 @@ dialog_menu_main()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -81,8 +81,9 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DEFAULTITEM_$$ "$dialog_menu"
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
+ setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -112,11 +113,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
X) # Exit
diff --git a/usr.sbin/bsdconfig/networking/share/device.subr b/usr.sbin/bsdconfig/networking/share/device.subr
index f248c39..069086a 100644
--- a/usr.sbin/bsdconfig/networking/share/device.subr
+++ b/usr.sbin/bsdconfig/networking/share/device.subr
@@ -151,8 +151,8 @@ f_dialog_menu_netdev()
\"\$prompt\" \
\"\$hline\" \
$interfaces
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -165,7 +165,7 @@ f_dialog_menu_netdev()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -224,8 +224,8 @@ f_dialog_menu_netdev_edit()
\"\$prompt\" \
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local tag
+ tag=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -240,10 +240,8 @@ f_dialog_menu_netdev_edit()
$menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
-
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- local tag="$( f_dialog_menutag )"
+ f_dialog_data_sanitize tag
if [ $retval -eq 2 ]; then
# The Help button was pressed
diff --git a/usr.sbin/bsdconfig/networking/share/media.subr b/usr.sbin/bsdconfig/networking/share/media.subr
index e0e71e7..0ed7637 100644
--- a/usr.sbin/bsdconfig/networking/share/media.subr
+++ b/usr.sbin/bsdconfig/networking/share/media.subr
@@ -205,8 +205,8 @@ f_dialog_menu_media_options()
local hline="$hline_arrows_tab_enter"
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local tag
+ tag=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -216,11 +216,10 @@ f_dialog_menu_media_options()
$supported_media \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
-
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize tag
+
if [ $retval -eq $SUCCESS ]; then
- local tag="$( f_dialog_menutag )"
options=$( eval f_dialog_menutag2item \"\$tag\" \
$supported_media )
[ "$options" = "$opt_none" ] && options=
diff --git a/usr.sbin/bsdconfig/networking/share/resolv.subr b/usr.sbin/bsdconfig/networking/share/resolv.subr
index e439d38..0793c81 100644
--- a/usr.sbin/bsdconfig/networking/share/resolv.subr
+++ b/usr.sbin/bsdconfig/networking/share/resolv.subr
@@ -435,8 +435,8 @@ f_dialog_menu_nameservers()
\"\$prompt\" \
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local tag
+ tag=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -448,10 +448,8 @@ f_dialog_menu_nameservers()
$menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
-
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- local tag="$( f_dialog_menutag )" ns=""
+ f_dialog_data_sanitize tag
# Return if "Cancel" was chosen (-1) or ESC was pressed (255)
if [ $retval -ne $SUCCESS ]; then
@@ -467,6 +465,7 @@ f_dialog_menu_nameservers()
f_dialog_input_nameserver
;;
*)
+ local n ns
n=$( eval f_dialog_menutag2index \"\$tag\" $menu_list )
ns=$( eval f_dialog_menutag2item \"\$tag\" $menu_list )
f_dialog_input_nameserver $(( $n - 2 )) "$ns"
diff --git a/usr.sbin/bsdconfig/security/kern_securelevel b/usr.sbin/bsdconfig/security/kern_securelevel
index 6681da8..69c28b2 100755
--- a/usr.sbin/bsdconfig/security/kern_securelevel
+++ b/usr.sbin/bsdconfig/security/kern_securelevel
@@ -81,8 +81,8 @@ dialog_menu_main()
defaultitem="$msg_disabled"
esac
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -98,7 +98,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -130,7 +130,7 @@ f_mustberoot_init
while :; do
dialog_menu_main
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
if [ $retval -eq 2 ]; then
# The Help button was pressed
diff --git a/usr.sbin/bsdconfig/security/security b/usr.sbin/bsdconfig/security/security
index 1000e45..eb7a73d 100755
--- a/usr.sbin/bsdconfig/security/security
+++ b/usr.sbin/bsdconfig/security/security
@@ -105,8 +105,8 @@ dialog_menu_main()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -119,10 +119,11 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
# Only update default-item on success
- [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$dialog_menu"
+ [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -153,11 +154,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"X <<< $msg_exit") break ;;
diff --git a/usr.sbin/bsdconfig/share/device.subr b/usr.sbin/bsdconfig/share/device.subr
index f973bb8..f724af4 100644
--- a/usr.sbin/bsdconfig/share/device.subr
+++ b/usr.sbin/bsdconfig/share/device.subr
@@ -619,6 +619,7 @@ f_device_menu()
case $- in *e*) errexit=1; esac
set +e
+ local mtag
while :; do
mtag=$( eval $DIALOG \
--title \"\$title\" \
@@ -648,8 +649,7 @@ f_device_menu()
if [ $retval -eq 0 ]; then
# Clean up the output of [X]dialog(1) and return it
- setvar DIALOG_MENU_$$ "$mtag"
- mtag=$( f_dialog_menutag )
+ f_dialog_data_sanitize mtag
echo "$mtag" >&2
fi
diff --git a/usr.sbin/bsdconfig/share/dialog.subr b/usr.sbin/bsdconfig/share/dialog.subr
index f906487..bfbe1db 100644
--- a/usr.sbin/bsdconfig/share/dialog.subr
+++ b/usr.sbin/bsdconfig/share/dialog.subr
@@ -107,6 +107,45 @@ DIALOG_TIMEBOX_HEIGHT=6
############################################################ GENERIC FUNCTIONS
+# f_dialog_data_sanitize $var_to_edit ...
+#
+# When using dialog(1) or Xdialog(1) sometimes unintended warnings or errors
+# are generated from underlying libraries. For example, if $LANG is set to an
+# invalid or unknown locale, the warnings from the Xdialog(1) libraries will
+# clutter the output. This function helps by providing a centralied function
+# that removes spurious warnings from the dialog(1) (or Xdialog(1)) response.
+#
+# Simply pass the name of one or more variables that need to be sanitized.
+# After execution, the variables will hold their newly-sanitized data.
+#
+f_dialog_data_sanitize()
+{
+ if [ "$#" -eq 0 ]; then
+ f_dprintf "%s: called with zero arguments" \
+ f_dialog_response_sanitize
+ return $FAILURE
+ fi
+
+ local __var_to_edit
+ for __var_to_edit in $*; do
+ # Skip warnings and trim leading/trailing whitespace
+ setvar $__var_to_edit "$( f_getvar $__var_to_edit | awk '
+ BEGIN { data = 0 }
+ {
+ if ( ! data )
+ {
+ if ( $0 ~ /^$/ ) next
+ if ( $0 ~ /^Gdk-WARNING \*\*:/ ) next
+ data = 1
+ }
+ print
+ }
+ ' )"
+ done
+}
+
+############################################################ TITLE FUNCTIONS
+
# f_dialog_title [$new_title]
#
# Set the title of future dialog(1) ($DIALOG_TITLE) or backtitle of Xdialog(1)
@@ -1622,29 +1661,41 @@ f_dialog_input()
############################################################ MENU FUNCTIONS
-# f_dialog_menutag
+# f_dialog_menutag_store [-s] $text
+#
+# Store some text from a dialog(1) menu to be retrieved later by
+# f_dialog_menutag_fetch(). If the first argument is `-s', the text is
+# sanitized before being stored.
+#
+f_dialog_menutag_store()
+{
+ local sanitize=
+ [ "$1" = "-s" ] && sanitize=1 && shift 1 # -s
+ local text="$1"
+
+ # Sanitize the menutag before storing it if desired
+ [ "$sanitize" ] && f_dialog_data_sanitize text
+
+ setvar DIALOG_MENU_$$ "$text"
+}
+
+# f_dialog_menutag_fetch [$var_to_set]
#
# Obtain the menutag chosen by the user from the most recently displayed
-# dialog(1) menu and clean up any temporary files/variables.
+# dialog(1) menu (previously stored with f_dialog_menutag_store() above). If
+# $var_to_set is NULL or missing, output is printed to stdout (which is less
+# recommended due to performance degradation; in a loop for example).
#
-f_dialog_menutag()
+f_dialog_menutag_fetch()
{
- # Skip warnings
- eval echo \"\$DIALOG_MENU_$$\" | awk '
- BEGIN { found = 0 }
- {
- if ( found ) # ... just spew
- {
- print
- next
- }
- if ( $0 ~ /^$/ ) next
- if ( $0 ~ /^Gdk-WARNING \*\*:/ ) next
- found = 1
- print
- }
- '
+ local __var_to_set="$1" __cp
+
+ debug= f_getvar DIALOG_MENU_$$ "${__var_to_set:-__cp}" # get the data
setvar DIALOG_MENU_$$ "" # scrub memory in case data was sensitive
+
+ # Return the data on standard-out if desired
+ [ "$__var_to_set" ] || echo "$__cp"
+
return $SUCCESS
}
diff --git a/usr.sbin/bsdconfig/share/media/any.subr b/usr.sbin/bsdconfig/share/media/any.subr
index 11fe429..3841300 100644
--- a/usr.sbin/bsdconfig/share/media/any.subr
+++ b/usr.sbin/bsdconfig/share/media/any.subr
@@ -94,10 +94,9 @@ f_media_get_type()
\"\$hline\" \
$menu_list
- local dialog_menu
-
+ local mtag
while :; do
- dialog_menu=$( eval $DIALOG \
+ mtag=$( eval $DIALOG \
--title \"\$title\" \
--backtitle \"\$btitle\" \
--hline \"\$hline\" \
@@ -112,10 +111,7 @@ f_media_get_type()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
-
- local mtag
- mtag=$( f_dialog_menutag )
+ f_dialog_data_sanitize mtag
f_dprintf "retval=%s mtag=[%s]" $retval "$mtag"
if [ $retval -eq 2 ]; then
diff --git a/usr.sbin/bsdconfig/share/media/ftp.subr b/usr.sbin/bsdconfig/share/media/ftp.subr
index 639f7c3..5164bf2 100644
--- a/usr.sbin/bsdconfig/share/media/ftp.subr
+++ b/usr.sbin/bsdconfig/share/media/ftp.subr
@@ -237,8 +237,8 @@ f_dialog_menu_media_ftp()
\"\$hline\" \
$menu_list
- local dialog_menu retval mtag value
- dialog_menu=$( eval $DIALOG \
+ local mtag
+ mtag=$( eval $DIALOG \
--title \"\$title\" \
--backtitle \"\$btitle\" \
--hline \"\$hline\" \
@@ -248,16 +248,13 @@ f_dialog_menu_media_ftp()
$height $width $rows \
$menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
- )
- retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || return $FAILURE
+ ) || return $FAILURE
+ f_dialog_data_sanitize mtag
case "$mtag" in
URL) setvar $VAR_FTP_PATH "other" ;;
*)
+ local value
value=$( eval f_dialog_menutag2item \"\$mtag\" $menu_list )
setvar $VAR_FTP_PATH "ftp://$value"
esac
diff --git a/usr.sbin/bsdconfig/share/media/options.subr b/usr.sbin/bsdconfig/share/media/options.subr
index b891956..b7bf2e8 100644
--- a/usr.sbin/bsdconfig/share/media/options.subr
+++ b/usr.sbin/bsdconfig/share/media/options.subr
@@ -208,9 +208,8 @@ f_media_options_menu()
\"\$hline\" \
$menu_list
- local dialog_menu
-
- dialog_menu=$( eval $DIALOG \
+ local mtag
+ mtag=$( eval $DIALOG \
--title \"\$title\" \
--backtitle \"\$btitle\" \
--hline \"\$hline\" \
@@ -227,11 +226,8 @@ f_media_options_menu()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- defaultitem="$dialog_menu"
-
- local mtag
- mtag=$( f_dialog_menutag )
+ f_dialog_data_sanitize mtag
+ defaultitem="$mtag"
f_dprintf "retval=%s mtag=[%s]" $retval "$mtag"
if [ $retval -eq 2 ]; then
diff --git a/usr.sbin/bsdconfig/share/media/tcpip.subr b/usr.sbin/bsdconfig/share/media/tcpip.subr
index 2d817ba..f1b4ac7 100644
--- a/usr.sbin/bsdconfig/share/media/tcpip.subr
+++ b/usr.sbin/bsdconfig/share/media/tcpip.subr
@@ -1399,8 +1399,7 @@ f_device_dialog_tcp()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$cp"
- cp=$( f_dialog_menutag )
+ f_dialog_data_sanitize cp
f_dprintf "retval=%u mtag=[%s]" $retval "$cp"
if [ $retval -eq 2 ]; then
diff --git a/usr.sbin/bsdconfig/share/mustberoot.subr b/usr.sbin/bsdconfig/share/mustberoot.subr
index 14e846f..3f23e11 100644
--- a/usr.sbin/bsdconfig/share/mustberoot.subr
+++ b/usr.sbin/bsdconfig/share/mustberoot.subr
@@ -105,8 +105,8 @@ f_become_root_via_sudo()
\"\$hline\" \
$menu_list
- local dialog_menu mtag retval
- dialog_menu=$( eval $DIALOG \
+ local mtag
+ mtag=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -116,12 +116,8 @@ f_become_root_via_sudo()
$height $width $rows \
$menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
- )
- retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ ) || f_die
+ f_dialog_data_sanitize mtag
case "$mtag" in
X) # Cancel/Exit
diff --git a/usr.sbin/bsdconfig/share/packages/packages.subr b/usr.sbin/bsdconfig/share/packages/packages.subr
index 9176ecd..3bc37b5 100755
--- a/usr.sbin/bsdconfig/share/packages/packages.subr
+++ b/usr.sbin/bsdconfig/share/packages/packages.subr
@@ -272,8 +272,8 @@ f_package_calculate_rundeps()
# Dislay the menu of package categories, complete with package counts for each
# category, accents, and other miscellany. If $defaultitem is non-NULL and
# matches one of the existing menu-items, it will be pre-highlighted in the
-# menu dialog (HINT: Use f_dialog_menutag() to populate a local variable that
-# is passed as $defaultitem to highlight the user's last selection by default).
+# menu dialog (HINT: Use f_dialog_menutag_fetch() to populate a local variable
+# that is passed as $defaultitem to highlight the user's last selection).
#
f_package_menu_categories()
{
@@ -297,14 +297,15 @@ f_package_menu_categories()
$category_list
" # End-Quote
- local height width rows dialog_menu
+ local height width rows
eval f_dialog_menu_with_help_size height width rows \
\"\$DIALOG_TITLE\" \
\"\$DIALOG_BACKTITLE\" \
\"\$prompt\" \
\"\$hline\" \
$menu_list
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -318,7 +319,7 @@ f_package_menu_categories()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -360,7 +361,7 @@ f_package_index_get_page()
#
# On success, if the user doesn't press ESC or choose Cancel, the environment
# variable $DIALOG_MENUITEM_$$ will hold the item associated with the chosen
-# tag (accessible through f_dialog_menutag()).
+# tag (accessible through f_dialog_menutag_fetch()).
#
f_package_menu_select()
{
@@ -464,8 +465,9 @@ f_package_menu_select()
f_dialog_infobox_size iheight iwidth \
"$DIALOG_TITLE" "$DIALOG_BACKTITLE" \
"$msg_processing_selection"
- local dialog_menu item
- dialog_menu=$( eval $DIALOG \
+
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -484,11 +486,13 @@ f_package_menu_select()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
if [ $retval -eq $SUCCESS ]; then
+ local item
item=$( eval f_dialog_menutag2item${SHOW_DESC:+_with_help} \
- \"\$dialog_menu\" $menu_list )
+ \"\$menu_choice\" $menu_list )
setvar DIALOG_MENUITEM_$$ "$item"
fi
@@ -501,11 +505,11 @@ f_package_menu_select()
# with regard to "deselecting" an already installed package. Choices include
# uninstall, re-install, or cancel (leave $package marked as installed).
# Returns success if the user does not press ESC or choose Cnacel. Use the
-# f_dialog_menutag() function upon success to retrieve the user's choice.
+# f_dialog_menutag_fetch() function upon success to retrieve the user's choice.
#
f_package_menu_deselect()
{
- local package="$1" prompt menu_list dialog_menu
+ local package="$1" prompt menu_list
prompt=$( printf "$msg_what_would_you_like_to_do_with" "$package" )
local hline="$hline_alnum_arrows_punc_tab_enter"
menu_list="
@@ -521,8 +525,8 @@ f_package_menu_deselect()
\"\$prompt\" \
\"\$hline\" \
$menu_list
-
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -534,7 +538,7 @@ f_package_menu_deselect()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -547,7 +551,7 @@ f_package_menu_deselect()
#
f_package_review()
{
- local prompt dialog_menu package varpkg mark menu_list=
+ local prompt package varpkg mark menu_list=
prompt=$( printf "$msg_reviewing_selected_packages" \
"$_All_nselected" )
local hline="$hline_alnum_arrows_punc_tab_enter"
@@ -576,7 +580,8 @@ f_package_review()
\"\$hline\" \
$menu_list
- dialog_menu=$( eval $DIALOG \
+ # Show the review menu (ignore menu choice)
+ eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -585,10 +590,8 @@ f_package_review()
--menu \"\$prompt\" \
$height $width $rows \
$menu_list \
- 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
- )
+ 2> /dev/null
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
#
# XXX
@@ -626,7 +629,7 @@ f_package_config()
f_package_menu_categories \
CATEGORY_MENU_LIST "$category_defaultitem"
retval=$?
- category=$( f_dialog_menutag )
+ f_dialog_menutag_fetch category
f_dprintf "retval=%u mtag=[%s]" $retval "$category"
category_defaultitem="$category"
@@ -648,7 +651,7 @@ f_package_config()
f_str2varname "$category" varcat
- local page package varpkg mark
+ local page package varpkg mark menu_choice
while :; do
# Display the list of packages for selected category
page=1 defaultitem=""
@@ -657,8 +660,8 @@ f_package_config()
f_package_menu_select \
"$category" "${page:=1}" "$defaultitem"
retval=$?
- dialog_menu=$( f_dialog_menutag )
- f_dprintf "retval=%u mtag=[%s]" $retval "$dialog_menu"
+ f_dialog_menutag_fetch menu_choice
+ f_dprintf "retval=%u mtag=[%s]" $retval "$menu_choice"
# NOTE: When --and-widget is used only ESC will cause
# dialog(1) to return without going to the next widget.
@@ -666,24 +669,24 @@ f_package_config()
# the Cancel button because stdout will be NULL.
# Alternatively, Xdialog(1) will terminate with 1
# if/when Cancel is chosen on any widget.
- if [ $retval -eq 255 -o ! "$dialog_menu" ]; then
+ if [ $retval -eq 255 -o ! "$menu_choice" ]; then
# User pressed ESC or chose Cancel
break
elif [ $retval -eq 1 ]; then
# Using X11, Xdialog(1) returned 1 for Cancel
- f_show_msg "%s" "$dialog_menu"
+ f_show_msg "%s" "$menu_choice"
break
elif [ $retval -ne $SUCCESS ]; then
# X11-related error occurred using Xdialog(1)
- f_show_msg "%s" "$dialog_menu"
+ f_show_msg "%s" "$menu_choice"
break
fi
- defaultitem="$dialog_menu"
+ defaultitem="$menu_choice"
# NOTE: f_package_menu_select() does not show the
# `Previous Page' or `Next Page' items unless needed
- case "$dialog_menu" in
+ case "$menu_choice" in
"> $msg_previous_page"|"> $msg_previous_page*")
page=$(( $page - 1 ))
setvar _defaultpage_$varcat $page
@@ -722,7 +725,7 @@ f_package_config()
esac
# Treat any other selection as a package
- package="${dialog_menu# }" # Trim leading space
+ package="${menu_choice# }" # Trim leading space
f_str2varname $package varpkg
f_getvar DIALOG_MENUITEM_$$ mark
mark="${mark#?}"
@@ -738,8 +741,8 @@ f_package_config()
;;
"X"|"R"|"U")
f_package_menu_deselect $package || continue
- dialog_menu=$( f_dialog_menutag )
- case "$dialog_menu" in
+ f_dialog_menutag_fetch menu_choice
+ case "$menu_choice" in
"X $msg_installed")
f_package_deselect "$package"
mark="X"
diff --git a/usr.sbin/bsdconfig/startup/misc b/usr.sbin/bsdconfig/startup/misc
index d7560e8..c964129 100755
--- a/usr.sbin/bsdconfig/startup/misc
+++ b/usr.sbin/bsdconfig/startup/misc
@@ -273,8 +273,8 @@ dialog_menu_main()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -287,8 +287,9 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DEFAULTITEM_$$ "$dialog_menu"
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
+ setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -339,11 +340,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"X <<< $msg_exit") break ;;
diff --git a/usr.sbin/bsdconfig/startup/rcadd b/usr.sbin/bsdconfig/startup/rcadd
index af3f33d..f26c7e3 100755
--- a/usr.sbin/bsdconfig/startup/rcadd
+++ b/usr.sbin/bsdconfig/startup/rcadd
@@ -74,8 +74,8 @@ dialog_menu_main()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -87,7 +87,7 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -117,21 +117,15 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
1) # Add From List
# Loop for easy return
while :; do
- f_dialog_input_rclist
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || break
+ f_dialog_input_rclist || break
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"X $msg_exit" ) break ;;
diff --git a/usr.sbin/bsdconfig/startup/rcconf b/usr.sbin/bsdconfig/startup/rcconf
index 82f035d..5a97b4e 100755
--- a/usr.sbin/bsdconfig/startup/rcconf
+++ b/usr.sbin/bsdconfig/startup/rcconf
@@ -170,8 +170,8 @@ dialog_menu_main()
\"\$hline\" \
$RCCONF_MENU_LIST
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -187,10 +187,11 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
# Only update default-item on success
- [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$dialog_menu"
+ [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -220,7 +221,7 @@ f_mustberoot_init
while :; do
dialog_menu_main
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
if [ "$USE_XDIALOG" ]; then
case "$mtag" in
diff --git a/usr.sbin/bsdconfig/startup/rcdelete b/usr.sbin/bsdconfig/startup/rcdelete
index 13262de..166b0e1 100755
--- a/usr.sbin/bsdconfig/startup/rcdelete
+++ b/usr.sbin/bsdconfig/startup/rcdelete
@@ -205,8 +205,8 @@ dialog_menu_main()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -223,10 +223,11 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
# Only update default-item on success
- [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$dialog_menu"
+ [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -331,7 +332,7 @@ dialog_create_main
while :; do
dialog_menu_main
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
if [ "$USE_XDIALOG" ]; then
case "$mtag" in "> $msg_view_details")
diff --git a/usr.sbin/bsdconfig/startup/rcvar b/usr.sbin/bsdconfig/startup/rcvar
index 127820d..f8f8f0e 100755
--- a/usr.sbin/bsdconfig/startup/rcvar
+++ b/usr.sbin/bsdconfig/startup/rcvar
@@ -134,8 +134,8 @@ dialog_menu_main()
\"\$hline\" \
$RCVAR_MENU_LIST
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -150,8 +150,9 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DEFAULTITEM_$$ "$dialog_menu"
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
+ setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -178,11 +179,8 @@ f_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
f_mustberoot_init
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
"X $msg_exit") break ;;
diff --git a/usr.sbin/bsdconfig/startup/share/rcconf.subr b/usr.sbin/bsdconfig/startup/share/rcconf.subr
index 95d5107..1c64137 100644
--- a/usr.sbin/bsdconfig/startup/share/rcconf.subr
+++ b/usr.sbin/bsdconfig/startup/share/rcconf.subr
@@ -311,8 +311,8 @@ f_dialog_input_view_details()
f_dialog_title "$msg_choose_view_details"
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local mtag
+ mtag=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -324,10 +324,8 @@ f_dialog_input_view_details()
$menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
-
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- local mtag="$( f_dialog_menutag )"
+ f_dialog_data_sanitize mtag
f_dialog_title_restore
@@ -364,8 +362,8 @@ f_dialog_input_view_details()
#
# Presents a menu of rc.conf(5) defaults (with, or without descriptions). This
# function should be treated like a call to dialog(1) (the exit status should
-# be captured and f_dialog_menutag() should be used to clean-up and get the
-# user's response).
+# be captured and f_dialog_menutag_fetch() should be used to get the user's
+# response).
#
f_dialog_input_rclist()
{
@@ -424,8 +422,8 @@ f_dialog_input_rclist()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -437,7 +435,7 @@ f_dialog_input_rclist()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
diff --git a/usr.sbin/bsdconfig/startup/startup b/usr.sbin/bsdconfig/startup/startup
index 797c7ef..d24822a 100755
--- a/usr.sbin/bsdconfig/startup/startup
+++ b/usr.sbin/bsdconfig/startup/startup
@@ -67,8 +67,8 @@ dialog_menu_main()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -81,8 +81,9 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DEFAULTITEM_$$ "$dialog_menu"
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
+ setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -112,11 +113,8 @@ f_mustberoot_init
# Launch application main menu
#
while :; do
- dialog_menu_main
- retval=$?
- mtag=$( f_dialog_menutag )
-
- [ $retval -eq 0 ] || f_die
+ dialog_menu_main || f_die
+ f_dialog_menutag_fetch mtag
case "$mtag" in
X) # Exit
diff --git a/usr.sbin/bsdconfig/timezone/timezone b/usr.sbin/bsdconfig/timezone/timezone
index 871b84b..89e8c7f 100755
--- a/usr.sbin/bsdconfig/timezone/timezone
+++ b/usr.sbin/bsdconfig/timezone/timezone
@@ -92,8 +92,8 @@ dialog_menu_main()
\"\" \
$continent_menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$title\" \
--backtitle \"\$btitle\" \
--ok-label \"\$msg_ok\" \
@@ -105,8 +105,9 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DEFAULTITEM_$$ "$dialog_menu"
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
+ setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -296,7 +297,7 @@ while :; do
if [ "$NEED_CONTINENT" ]; then
dialog_menu_main # prompt the user to select a continent/ocean
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
if [ $retval -ne 0 ]; then
[ "$TZ_OR_FAIL" ] && f_die
@@ -364,7 +365,7 @@ while :; do
#
# Launch the country selection menu
#
- dialog_menu=$( eval $DIALOG \
+ tag=$( eval $DIALOG \
--title \"\$title\" \
--backtitle \"\$btitle\" \
--ok-label \"\$msg_ok\" \
@@ -376,8 +377,7 @@ while :; do
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- tag=$( f_dialog_menutag )
+ f_dialog_data_sanitize tag
defaultctry="$tag"
if [ $retval -ne 0 ]; then
@@ -424,7 +424,7 @@ while :; do
# Launch the zone selection menu
# NOTE: This is as deep as we go
#
- dialog_menu=$( eval $DIALOG \
+ n=$( eval $DIALOG \
--title \"\$title\" \
--backtitle \"\$btitle\" \
--ok-label \"\$msg_ok\" \
@@ -436,8 +436,7 @@ while :; do
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- n=$( f_dialog_menutag )
+ f_dialog_data_sanitize n
defaultzone="$n"
if [ $retval -ne 0 ]; then
diff --git a/usr.sbin/bsdconfig/usermgmt/groupdel b/usr.sbin/bsdconfig/usermgmt/groupdel
index e5a759f..693623f 100755
--- a/usr.sbin/bsdconfig/usermgmt/groupdel
+++ b/usr.sbin/bsdconfig/usermgmt/groupdel
@@ -71,7 +71,7 @@ defaultitem=""
while :; do
f_dialog_menu_group_list "$defaultitem"
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
defaultitem="$mtag"
diff --git a/usr.sbin/bsdconfig/usermgmt/groupedit b/usr.sbin/bsdconfig/usermgmt/groupedit
index ba249c3..9dfc6b8 100755
--- a/usr.sbin/bsdconfig/usermgmt/groupedit
+++ b/usr.sbin/bsdconfig/usermgmt/groupedit
@@ -71,7 +71,7 @@ defaultitem=""
while :; do
f_dialog_menu_group_list "$defaultitem"
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
f_dprintf "retval=%s mtag=[%s]" $retval "$mtag"
defaultitem="$mtag"
diff --git a/usr.sbin/bsdconfig/usermgmt/groupinput b/usr.sbin/bsdconfig/usermgmt/groupinput
index 19b5307..f1c8d68 100755
--- a/usr.sbin/bsdconfig/usermgmt/groupinput
+++ b/usr.sbin/bsdconfig/usermgmt/groupinput
@@ -228,7 +228,7 @@ while :; do
\"\$hline\" \
$menu_items
- dialog_menu=$( eval $DIALOG \
+ mtag=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -240,11 +240,9 @@ while :; do
$menu_items \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
-
retval=$?
- setvar DEFAULTITEM_$$ "$dialog_menu"
- setvar DIALOG_MENU_$$ "$dialog_menu"
- mtag=$( f_dialog_menutag )
+ f_dialog_data_sanitize mtag
+ setvar DEFAULTITEM_$$ "$mtag"
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
# Exit if user has either pressed ESC or chosen Cancel/No
@@ -263,7 +261,7 @@ while :; do
Edit/View|Delete)
f_dialog_menu_group_list "$group_name"
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
# Loop if user has either pressed ESC or chosen Cancel/No
diff --git a/usr.sbin/bsdconfig/usermgmt/share/group_input.subr b/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
index 7fc8b83..16d9083 100644
--- a/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
+++ b/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
@@ -88,8 +88,8 @@ f_dialog_menu_group_list()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -102,7 +102,7 @@ f_dialog_menu_group_list()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -310,7 +310,7 @@ f_dialog_input_group_members()
'2' '$msg_enter_group_members_manually'
" # END-QUOTE
- local dialog_menu defaultitem=
+ local menu_choice defaultitem=
local mheight mwidth mrows
eval f_dialog_menu_size mheight mwidth mrows \
\"\$DIALOG_TITLE\" \
@@ -320,7 +320,7 @@ f_dialog_input_group_members()
$menu_list
while :; do
- dialog_menu=$( eval $DIALOG \
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -333,9 +333,8 @@ f_dialog_input_group_members()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- defaultitem="$dialog_menu"
- menu_choice=$( f_dialog_menutag )
+ f_dialog_data_sanitize menu_choice
+ defaultitem="$menu_choice"
f_dprintf "retval=%u menu_choice=[%s]" $retval "$menu_choice"
# Return if user has either pressed ESC or chosen Cancel/No
@@ -364,8 +363,7 @@ f_dialog_input_group_members()
\"\" \
\"\$hline\" \
$checklist_users
- local dialog_inputbox
- dialog_inputbox=$( eval $DIALOG \
+ _group_members=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--separate-output \
@@ -376,15 +374,18 @@ f_dialog_input_group_members()
$cheight $cwidth $crows \
$checklist_users \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+ ) || continue
+ # Return to previous menu if user either
+ # pressed ESC or chose Cancel/No
+ f_dialog_data_sanitize _group_members
+
+ # Convert the newline separated list into a comma-
+ # separated one so that if the user switches over to
+ # manual editing, list reflects checklist selections
+ _group_members=$( echo "$_group_members" |
+ tr '\n' ' ' |
+ sed -e 's/[[:space:]]\{1,\}/,/g;s/^,//;s/,$//'
)
- retval=$?
- setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
- _group_members=$( f_dialog_inputstr | tr '\n' ' ' |
- sed -e 's/[[:space:]]\{1,\}/,/g;s/^,//;s/,$//' )
-
- # Return to previous menu if user has either
- # pressed ESC or chosen Cancel/No
- [ $retval -eq $SUCCESS ] || continue
_input="$_group_members"
;;
diff --git a/usr.sbin/bsdconfig/usermgmt/share/user_input.subr b/usr.sbin/bsdconfig/usermgmt/share/user_input.subr
index f088548..68df2cf 100644
--- a/usr.sbin/bsdconfig/usermgmt/share/user_input.subr
+++ b/usr.sbin/bsdconfig/usermgmt/share/user_input.subr
@@ -113,8 +113,8 @@ f_dialog_menu_user_list()
\"\$hline\" \
$menu_list
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -127,7 +127,7 @@ f_dialog_menu_user_list()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_menutag_store -s "$menu_choice"
return $retval
}
@@ -168,8 +168,7 @@ f_dialog_input_member_groups()
\"\" \
\"\$hline\" \
$checklist_groups
- local dialog_inputbox
- dialog_inputbox=$( eval $DIALOG \
+ _member_groups=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--separate-output \
@@ -180,14 +179,9 @@ f_dialog_input_member_groups()
$height $width $rows \
$checklist_groups \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
- )
-
- retval=$?
- setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
- _member_groups=$( f_dialog_inputstr )
-
- # Return if user has either pressed ESC or chosen Cancel/No
- [ $retval -eq $SUCCESS ] || return $retval
+ ) || return $?
+ # Return if user either pressed ESC or chose Cancel/No
+ f_dialog_data_sanitize _member_groups
#
# Validate each of the groups the user has entered
@@ -503,9 +497,9 @@ f_dialog_input_change()
#
# Loop until the user provides taint-free/cancellation-free input
#
+ local date_type
while :; do
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ date_type=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -517,8 +511,7 @@ f_dialog_input_change()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- date_type=$( f_dialog_menutag )
+ f_dialog_data_sanitize date_type
f_dprintf "retval=%u date_type=[%s]" $retval "$date_type"
# Return if user has either pressed ESC or chosen Cancel/No
@@ -536,8 +529,7 @@ f_dialog_input_change()
{ f_isinteger "$secs" && [ $secs -gt 0 ]; } || secs=
_input_date=$( date -j -f "%s" -- "$secs" \
"+%d %m %Y" 2> /dev/null )
- local dialog_inputbox
- dialog_inputbox=$( eval $DIALOG \
+ ret_date=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -549,8 +541,7 @@ f_dialog_input_change()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
- setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
- ret_date=$( f_dialog_inputstr )
+ f_dialog_data_sanitize ret_date
f_dprintf "retval=%u ret_date=[%s]" $retval "$ret_date"
# Return to menu if either ESC or Cancel/No
@@ -559,8 +550,7 @@ f_dialog_input_change()
_input_time=
[ "$secs" ] && _input_time=$( date -j \
-f %s -- "$_input" "+%H %M %S" 2> /dev/null )
- local dialog_inputbox
- dialog_inputbox=$( eval $DIALOG \
+ ret_time=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -572,8 +562,7 @@ f_dialog_input_change()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
- setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
- ret_time=$( f_dialog_inputstr )
+ f_dialog_data_sanitize ret_time
f_dprintf "retval=%u ret_time=[%s]" $retval "$ret_time"
# Return to menu if either ESC or Cancel/No
@@ -694,9 +683,9 @@ f_dialog_input_expire()
#
# Loop until the user provides taint-free/cancellation-free input
#
+ local date_type
while :; do
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ date_type=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -708,8 +697,7 @@ f_dialog_input_expire()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
- date_type=$( f_dialog_menutag )
+ f_dialog_data_sanitize date_type
f_dprintf "retval=%u date_type=[%s]" $retval "$date_type"
# Return if user has either pressed ESC or chosen Cancel/No
@@ -727,8 +715,7 @@ f_dialog_input_expire()
{ f_isinteger "$secs" && [ $secs -gt 0 ]; } || secs=
_input_date=$( date -j -f "%s" -- "$secs" \
"+%d %m %Y" 2> /dev/null )
- local dialog_inputbox
- dialog_inputbox=$( eval $DIALOG \
+ ret_date=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -740,8 +727,7 @@ f_dialog_input_expire()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
- setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
- ret_date=$( f_dialog_inputstr )
+ f_dialog_data_sanitize ret_date
f_dprintf "retval=%u ret_date=[%s]" $retval "$ret_date"
# Return to menu if either ESC or Cancel/No
@@ -750,7 +736,7 @@ f_dialog_input_expire()
_input_time=
[ "$secs" ] && _input_time=$( date -j \
-f %s -- "$_input" "+%H %M %S" 2> /dev/null )
- dialog_inputbox=$( eval $DIALOG \
+ ret_time=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -762,8 +748,7 @@ f_dialog_input_expire()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
- setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
- ret_time=$( f_dialog_inputstr )
+ f_dialog_data_sanitize ret_time
f_dprintf "retval=%u ret_time=[%s]" $retval "$ret_time"
# Return to menu if either ESC or Cancel/No
@@ -998,7 +983,7 @@ f_dialog_input_dotfiles_create()
#
f_dialog_input_shell()
{
- local retval shells shell_list _input="$1"
+ local shells shell_list _input="$1"
local hline="$hline_arrows_space_tab_enter"
local prompt="$msg_select_login_shell"
@@ -1021,8 +1006,7 @@ f_dialog_input_shell()
\"\$hline\" \
$shell_list
- local dialog_inputbox
- dialog_inputbox=$( eval $DIALOG \
+ _input=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -1032,14 +1016,9 @@ f_dialog_input_shell()
$height $width $rows \
$shell_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
- )
-
- retval=$?
- setvar DIALOG_INPUTBOX_$$ "$dialog_inputbox"
- _input=$( f_dialog_inputstr )
-
- # Return if user has either pressed ESC or chosen Cancel/No
- [ $retval -eq $SUCCESS ] || return $retval
+ ) || return $?
+ # Return if user either pressed ESC or chose Cancel/No
+ f_dialog_data_sanitize _input
pw_shell="$_input"
save_flag=1
diff --git a/usr.sbin/bsdconfig/usermgmt/userdel b/usr.sbin/bsdconfig/usermgmt/userdel
index 05b160f..8ed747a 100755
--- a/usr.sbin/bsdconfig/usermgmt/userdel
+++ b/usr.sbin/bsdconfig/usermgmt/userdel
@@ -71,7 +71,7 @@ defaultitem=""
while :; do
f_dialog_menu_user_list "$defaultitem"
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
defaultitem="$mtag"
diff --git a/usr.sbin/bsdconfig/usermgmt/useredit b/usr.sbin/bsdconfig/usermgmt/useredit
index 60a3377..0226712 100755
--- a/usr.sbin/bsdconfig/usermgmt/useredit
+++ b/usr.sbin/bsdconfig/usermgmt/useredit
@@ -71,7 +71,7 @@ defaultitem=""
while :; do
f_dialog_menu_user_list "$defaultitem"
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
defaultitem="$mtag"
diff --git a/usr.sbin/bsdconfig/usermgmt/userinput b/usr.sbin/bsdconfig/usermgmt/userinput
index 2f9a58e..7df1993 100755
--- a/usr.sbin/bsdconfig/usermgmt/userinput
+++ b/usr.sbin/bsdconfig/usermgmt/userinput
@@ -391,7 +391,7 @@ while :; do
\"\$hline\" \
$menu_items
- dialog_menu=$( eval $DIALOG \
+ mtag=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -403,11 +403,9 @@ while :; do
$menu_items \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
-
retval=$?
- setvar DEFAULTITEM_$$ "$dialog_menu"
- setvar DIALOG_MENU_$$ "$dialog_menu"
- mtag=$( f_dialog_menutag )
+ f_dialog_data_sanitize mtag
+ setvar DEFAULTITEM_$$ "$mtag"
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
# Exit if user has either pressed ESC or chosen Cancel/No
@@ -426,7 +424,7 @@ while :; do
Edit/View|Delete)
f_dialog_menu_user_list "$pw_name"
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
# Loop if user has either pressed ESC or chosen Cancel/No
diff --git a/usr.sbin/bsdconfig/usermgmt/usermgmt b/usr.sbin/bsdconfig/usermgmt/usermgmt
index 8ea5ae2..e91b44c 100755
--- a/usr.sbin/bsdconfig/usermgmt/usermgmt
+++ b/usr.sbin/bsdconfig/usermgmt/usermgmt
@@ -76,8 +76,8 @@ dialog_menu_main()
# When using Xdialog(1) we need to bump the width for the buttons
[ "$USE_XDIALOG" ] && width=40
- local dialog_menu
- dialog_menu=$( eval $DIALOG \
+ local menu_choice
+ menu_choice=$( eval $DIALOG \
--title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
@@ -93,10 +93,11 @@ dialog_menu_main()
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
- setvar DIALOG_MENU_$$ "$dialog_menu"
+ f_dialog_data_sanitize menu_choice
+ f_dialog_menutag_store "$menu_choice"
# Only update default-item on success
- [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$dialog_menu"
+ [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$menu_choice"
return $retval
}
@@ -129,7 +130,7 @@ f_mustberoot_init
while :; do
dialog_menu_main
retval=$?
- mtag=$( f_dialog_menutag )
+ f_dialog_menutag_fetch mtag
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
if [ $retval -eq 2 ]; then
OpenPOWER on IntegriCloud