diff options
author | dteske <dteske@FreeBSD.org> | 2014-01-15 07:49:17 +0000 |
---|---|---|
committer | dteske <dteske@FreeBSD.org> | 2014-01-15 07:49:17 +0000 |
commit | a35804263ce5ac47cb5d4819f6b5c9933997c9b0 (patch) | |
tree | 5307c06d0753e37d7f6c7040f0ae9896e2701ecd /usr.sbin/bsdconfig/share/dialog.subr | |
parent | 44abef95373cf49911f4c9bf27ad329cccbd3a05 (diff) | |
download | FreeBSD-src-a35804263ce5ac47cb5d4819f6b5c9933997c9b0.zip FreeBSD-src-a35804263ce5ac47cb5d4819f6b5c9933997c9b0.tar.gz |
MFC r259054:
Performance and debugging enhancements:
+ Remove UNAME_P=$(...) from startup/misc -- already supplied by common.subr
+ Use f_getvar instead of $(eval echo \$$var) -- f_getvar is sub-shell free
+ Add `-e' and `-k var' options to f_eval_catch -- increasing use-cases
+ Use f_eval_catch to display errors on failure -- reducing duplicated code
+ Use f_eval_catch when we need output from a command -- improving debugging
+ Optimize f_isinter of strings.subr for performance -- now sub-shell free
+ Improve error checking on pidfiles -- using f_eval_catch and f_isinteger
+ Use $var_to_set arg of f_ifconfig_{inet,netmask} -- eliminate sub-shells
+ Use f_sprintf instead of $(printf ...) -- consolidate sub-shells
+ Use $var_to_set arg of f_route_get_default -- eliminate sub-shells
+ Add f_count to replace $(set -- ...;echo $#) -- eliminate sub-shells
+ Add f_count_ifs to replace $(IFS=x;set -- ...;echo $#) -- no sub-shells
+ Replace var="$var${var:+ }..." in loops with var="$var ..." with a follow-
up var="${var# }" to trim leading whitespace -- optimize loops
+ Use $var_to_set arg of f_resolv_conf_nameservers -- eliminate sub-shells
+ Comments for the f_eval_catch function
+ Remove a duplicate `local ... desc ...' in f_device_get_all of device.subr
+ Use $var_to_set arg of f_device_capacity -- eliminate sub-shells
+ Whitespace fixes in f_dialog_init of dialog.subr
+ Optimize f_inet_atoi of media/tcpip.subr for performance -- sub-shell free
+ In several cases, send stderr to /dev/null -- clean up runtime execution
+ Change f_err of common.subr to go to program stderr not terminal stderr,
allowing redirection of output from functions that use f_err
+ Disable debugging when using f_getvar to get variable argument to
f_startup_rcconf_map_expand of startup/rcconf.subr
+ Use f_replace_all instead of $(echo ... | tr | sed) -- performance
+ Add a $var_to_set option to f_index_{file,menusel_{command,keyword}} of
common.subr -- centralize sub-shells
Diffstat (limited to 'usr.sbin/bsdconfig/share/dialog.subr')
-rw-r--r-- | usr.sbin/bsdconfig/share/dialog.subr | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/usr.sbin/bsdconfig/share/dialog.subr b/usr.sbin/bsdconfig/share/dialog.subr index 1297711..d05d4fb 100644 --- a/usr.sbin/bsdconfig/share/dialog.subr +++ b/usr.sbin/bsdconfig/share/dialog.subr @@ -296,6 +296,7 @@ f_dialog_backtitle_restore() # f_dialog_max_size() { + local funcname=f_dialog_max_size local __var_height="$1" __var_width="$2" __max_size [ "$__var_height" -o "$__var_width" ] || return $FAILURE if [ "$USE_XDIALOG" ]; then @@ -304,11 +305,14 @@ f_dialog_max_size() if __max_size=$( $DIALOG --print-maxsize \ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD ) then + f_dprintf "$funcname: %s --print-maxsize = [%s]" \ + "$DIALOG" "$__max_size" # usually "MaxSize: 24, 80" __max_size="${__max_size#*: }" f_replaceall "$__max_size" "," "" __max_size else - __max_size=$( stty size 2> /dev/null ) + f_eval_catch -dk __max_size $funcname stty \ + 'stty size' || __max_size= # usually "24 80" fi : ${__max_size:=$DEFAULT_TERMINAL_SIZE} @@ -2052,6 +2056,8 @@ f_dialog_menutag2index_with_help() # f_dialog_init() { + local funcname=f_dialog_init + DIALOG_SELF_INITIALIZE= USE_DIALOG=1 @@ -2140,7 +2146,7 @@ f_dialog_init() DIALOG=dialog f_die 1 "$msg_no_such_file_or_directory" "$pgm" "xauth" fi - HOSTNAME=$(hostname) + HOSTNAME=$( hostname ) local displaynum="${DISPLAY#*:}" eval xauth -if \~$SUDO_USER/.Xauthority extract - \ \"\$HOSTNAME/unix:\$displaynum\" \ @@ -2154,7 +2160,8 @@ f_dialog_init() # if [ "$USE_XDIALOG" ]; then local maxsize - if ! maxsize=$( LANG= LC_ALL= $DIALOG --print-maxsize 2>&1 ) + if ! f_eval_catch -dk maxsize $funcname "$DIALOG" \ + 'LANG= LC_ALL= %s --print-maxsize' "$DIALOG" then # Xdialog(1) failed, fall back to dialog(1) unset USE_XDIALOG |