diff options
author | dteske <dteske@FreeBSD.org> | 2012-12-29 00:01:24 +0000 |
---|---|---|
committer | dteske <dteske@FreeBSD.org> | 2012-12-29 00:01:24 +0000 |
commit | 7b627c05863b0c5f7a332fd735c6894d1c11c38c (patch) | |
tree | 6211f4e6332ba8014cdf4c2435483ffccc2710bd /usr.sbin/bsdconfig/share/dialog.subr | |
parent | 34882b31ed4d9c4888e719983cf5ed72416f9fc6 (diff) | |
download | FreeBSD-src-7b627c05863b0c5f7a332fd735c6894d1c11c38c.zip FreeBSD-src-7b627c05863b0c5f7a332fd735c6894d1c11c38c.tar.gz |
Add support for running without a controlling terminal (for example, when
running as an rvalue to a pipe).
Diffstat (limited to 'usr.sbin/bsdconfig/share/dialog.subr')
-rw-r--r-- | usr.sbin/bsdconfig/share/dialog.subr | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/usr.sbin/bsdconfig/share/dialog.subr b/usr.sbin/bsdconfig/share/dialog.subr index 58888cb..c1d83a0 100644 --- a/usr.sbin/bsdconfig/share/dialog.subr +++ b/usr.sbin/bsdconfig/share/dialog.subr @@ -77,6 +77,11 @@ unset XDIALOG_INFOBOX_TIMEOUT # : ${DIALOG_SELF_INITIALIZE=1} +# +# Default terminal size (used if/when running without a controlling terminal) +# +: ${DEFAULT_TERMINAL_SIZE:=24 80} + ############################################################ GENERIC FUNCTIONS # f_dialog_title [$new_title] @@ -193,7 +198,8 @@ f_dialog_infobox_size() max_size="$XDIALOG_MAXSIZE" # see CONFIGURATION else min_width=24 - max_size=$( stty size ) # usually "24 80" + max_size=$( stty size 2> /dev/null ) # usually "24 80" + : ${max_size:=$DEFAULT_TERMINAL_SIZE} fi local max_height="${max_size%%[$IFS]*}" @@ -325,7 +331,8 @@ f_dialog_buttonbox_size() if [ "$USE_XDIALOG" ]; then max_size="$XDIALOG_MAXSIZE" # see CONFIGURATION else - max_size=$( stty size ) # usually "24 80" + max_size=$( stty size 2> /dev/null ) # usually "24 80" + : ${max_size:=$DEFAULT_TERMINAL_SIZE} fi local max_height="${max_size%%[$IFS]*}" [ $height -le $max_height ] || height=$max_height @@ -363,7 +370,8 @@ f_dialog_inputbox_size() max_size="$XDIALOG_MAXSIZE" # see CONFIGURATION else min_width=24 - max_size=$( stty size ) # usually "24 80" + max_size=$( stty size 2> /dev/null ) # usually "24 80" + : ${max_size:=$DEFAULT_TERMINAL_SIZE} fi local max_height="${max_size%%[$IFS]*}" local max_width="${max_size##*[$IFS]}" @@ -521,7 +529,8 @@ f_dialog_menu_size() else min_width=24 min_rows=0 - max_size=$( stty size ) # usually "24 80" + max_size=$( stty size 2> /dev/null ) # usually "24 80" + : ${max_size:=$DEFAULT_TERMINAL_SIZE} fi local max_width="${max_size##*[$IFS]}" @@ -603,7 +612,8 @@ f_dialog_menu_with_help_size() else min_width=24 min_rows=0 - max_size=$( stty size ) # usually "24 80" + max_size=$( stty size 2> /dev/null ) # usually "24 80" + : ${max_size:=$DEFAULT_TERMINAL_SIZE} fi local max_width="${max_size##*[$IFS]}" @@ -702,7 +712,8 @@ f_dialog_radiolist_size() else min_width=24 min_rows=0 - max_size=$( stty size ) # usually "24 80" + max_size=$( stty size 2> /dev/null ) # usually "24 80" + : ${max_size:=$DEFAULT_TERMINAL_SIZE} fi local max_width="${max_size##*[$IFS]}" @@ -788,7 +799,8 @@ f_dialog_calendar_size() else min_height=0 min_width=40 - max_size=$( stty size ) # usually "24 80" + max_size=$( stty size 2> /dev/null ) # usually "24 80" + : ${max_size:=$DEFAULT_TERMINAL_SIZE} fi local max_height="${max_size%%[$IFS]*}" local max_width="${max_size##*[$IFS]}" @@ -866,7 +878,8 @@ f_dialog_timebox_size() else min_height=0 min_width=20 - max_size=$( stty size ) # usually "24 80" + max_size=$( stty size 2> /dev/null ) # usually "24 80" + : ${max_size:=$DEFAULT_TERMINAL_SIZE} fi local max_height="${max_size%%[$IFS]*}" local max_width="${max_size##*[$IFS]}" |