summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bsdconfig/share/dialog.subr
diff options
context:
space:
mode:
authordteske <dteske@FreeBSD.org>2012-12-29 00:01:24 +0000
committerdteske <dteske@FreeBSD.org>2012-12-29 00:01:24 +0000
commit7b627c05863b0c5f7a332fd735c6894d1c11c38c (patch)
tree6211f4e6332ba8014cdf4c2435483ffccc2710bd /usr.sbin/bsdconfig/share/dialog.subr
parent34882b31ed4d9c4888e719983cf5ed72416f9fc6 (diff)
downloadFreeBSD-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.subr29
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]}"
OpenPOWER on IntegriCloud