From 021cb6acbe9be83506f27e9eff3cd434e6daf149 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sat, 6 Sep 2014 19:41:16 +0200 Subject: [PATCH 1/1] gui: Introduce _set_dialog_ret(). The improved exit code handling for dialog(1) also makes sense for the other invocations of dialog. This patch abtracts out the logic into the new internal _set_dialog_ret() function. --- gui | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/gui b/gui index 2d3e270..6003a90 100644 --- a/gui +++ b/gui @@ -22,6 +22,19 @@ _get_geometry() result="$y $x" } +_set_dialog_ret() +{ + local ec="$1" + + case "$ec" in + 0) ret=$GSU_SUCCESS;; + 1) ret=1;; # cancelled + *) + result="dialog exit code $ec" + ret=-$E_GSU_DIALOG + esac +} + # Open a dialog box which asks the user to input a text # # Usage: gsu_input_box @@ -37,12 +50,7 @@ gsu_inputbox() _get_geometry g="$result" result="$(dialog --inputbox "$text" $g "$init" 3>&1 1>&2 2>&3 3>&-)" - if (($? != 0)); then - ret=-$E_GSU_DIALOG - result='inputbox' - return - fi - ret=$GSU_SUCCESS + _set_dialog_ret $? } # Show the given file in a text box @@ -59,8 +67,8 @@ gsu_textbox() ret=-$E_GSU_DIALOG result='textbox' - dialog --textbox "$file" $g || return - ret=$GSU_SUCCESS + dialog --textbox "$file" $g + _set_dialog_ret $? } # Show a message in a text box @@ -97,13 +105,7 @@ _gsu_menu() opts+=" $i $num" done result="$(dialog --menu "$gsu_banner_txt ($header)" $opts 3>&1 1>&2 2>&3 3>&-)" - case $? in - 0) ret=$GSU_SUCCESS;; - 1) ret=1;; # cancelled - *) - result="menu error $ret" - ret=-$E_GSU_DIALOG - esac + _set_dialog_ret $? } _get_level() -- 2.39.2