Simplify arithmetic evaluation.
authorAndre Noll <maan@tuebingen.mpg.de>
Thu, 16 Aug 2018 12:39:59 +0000 (14:39 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Thu, 20 Dec 2018 20:12:13 +0000 (21:12 +0100)
Shell variables may be referenced by name without using the parameter
expansion syntax. In fact, this is to be preferred. Also no quotes
are neccessary.

This also fixes the hello world example.

Reported-by: Johannes Woerner <woerner@tuebingen.mpg.de>
Tested-by: Johannes Woerner <woerner@tuebingen.mpg.de>
README.md
common
config
gui
subcommand

index 0d2c9e236bf437c711cf1e26aa22f6777eeff179..81768f5aec5ee8dbab1bb952a9d282ce49a688cc 100644 (file)
--- a/README.md
+++ b/README.md
@@ -269,7 +269,7 @@ for `gsu_getopts()` as follows:
 
                        gsu_getopts 't:v'
                        eval "$result"
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
 
                        [[ -z "$o_t" ]] && o_t='ext3' # default to ext3 if -t is not given
                        [[ "$o_v" == 'true' ]] && awk_field=0 # $0 is the whole line
@@ -295,7 +295,7 @@ print an error message if one or more arguments are given. With
                com_world()
                {
                        gsu_check_arg_count $# 0 0 # no arguments allowed
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
                        echo 'hello world'
                }
 
@@ -366,7 +366,7 @@ Let's have a look at the completer for the above `fs` subcommand.
                        local optstring='t:v'
 
                        gsu_complete_options $optstring "$@"
-                       (($ret > 0)) && return
+                       ((ret > 0)) && return
 
                        gsu_cword_is_option_parameter $optstring "$@"
                        [[ "$result" == 't' ]] && awk '{print $3}' "$f"
@@ -483,7 +483,7 @@ as follows.
                        local username
 
                        gsu_inputbox 'Enter username' "$LOGNAME"
-                       (($ret != 0)) && return
+                       ((ret != 0)) && return
                        username="$result"
                        gsu_msgbox "$(pgrep -lu "$username")"
                }
@@ -526,7 +526,7 @@ sure to not turn tab characters into space characters.
                        local username
 
                        gsu_inputbox 'Enter username' "$LOGNAME"
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
                        username="$result"
                        gsu_msgbox "$(pgrep -lu "$username")"
                }
diff --git a/common b/common
index 4b69b2351942178c22e7cc9141713bce5b62e0d6..374b81e0498defc0d6895d3617fe3970f06a3cd3 100644 (file)
--- a/common
+++ b/common
@@ -31,7 +31,7 @@ ${gsu_errors:-}
                #echo "a:$a,  b: $b"
                gsu_error_txt[i]="$b"
                eval $a=$i
-               i=$(($i + 1))
+               i=$((i + 1))
        done << EOF
        $gsu_errors
 EOF
@@ -68,15 +68,15 @@ gsu_err_msg()
        local txt="$result" err
 
        gsu_is_a_number "$ret"
-       if (($ret < 0)); then
+       if ((ret < 0)); then
                gsu_msg "unknown error ($ret:$txt)"
                exit 1
        fi
-       if (($result >= 0)); then
+       if ((result >= 0)); then
                gsu_msg "unknown error ($result:$txt)"
                exit 1
        fi
-       err=$((0 - $result))
+       err=$((0 - result))
        if test -n "$txt"; then
                txt="$txt: ${gsu_error_txt[$err]}"
        else
diff --git a/config b/config
index 0f8bb596af8d1351c4c1d2d34d3190535cea24d6..70a83f1e59372765bed900ce9b9fd13dafcc7bc1 100644 (file)
--- a/config
+++ b/config
@@ -61,7 +61,7 @@ gsu_check_options()
                        ;;
                num)
                        gsu_is_a_number "$val"
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
                        ;;
                *)
                        ret=-$E_GSU_BAD_OPTION_TYPE
@@ -76,7 +76,7 @@ gsu_check_options()
 gsu_check_options_or_die()
 {
        gsu_check_options
-       if (($ret < 0)); then
+       if ((ret < 0)); then
                gsu_err_msg
                exit 1
        fi
diff --git a/gui b/gui
index 23e9e903af340ccb74c936b4fd8704b32dfb8fee..42975647e6900bb67c900c8108cc9925e4022739 100644 (file)
--- a/gui
+++ b/gui
@@ -20,7 +20,7 @@ _get_geometry()
        fi
        x="${result#* }"
        y="${result%% *}"
-       (($x > 190)) && x=190
+       ((x > 190)) && x=190
        result="$y $x"
 }
 
@@ -85,7 +85,7 @@ gsu_msgbox()
        # Some versions of dialog segfault if the text is too long. Hence we
        # always use a temporary file.
        gsu_make_tempfile 'gsu_msgbox.XXXXXXXXXX'
-       (($ret < 0)) && return
+       ((ret < 0)) && return
        tmp="$result"
        trap "rm -f $tmp" EXIT
        echo "$1" > "$tmp"
@@ -132,7 +132,7 @@ _get_subtree()
        #echo "line: $line_num, root: $root, indent level: $level"
        result="$(sed -e "1,${line_num}d;" <<< "$tree" \
                | sed -e "/^$TAB\{1,$level\}$_gsu_node_name_pattern/,\$d" \
-               | sed -e "/^$TAB\{$(($level + 2))\}/d")"
+               | sed -e "/^$TAB\{$((level + 2))\}/d")"
        if (($? != 0)); then
                ret=-$E_GSU_MENU_TREE
                result="sed command for subtree $root failed"
@@ -161,15 +161,15 @@ _browse()
 
        while :; do
                _gsu_menu "$header" "$subtree"
-               (($ret < 0)) && return
+               ((ret < 0)) && return
                [[ -z "$result" ]] && return # menu was cancelled
                if [[ "${result%/}" != "$result" ]]; then
                        old_header="$header"
                        header="$result"
                        _get_subtree "$tree" "$header"
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
                        _browse "$header" "$tree" "$result"
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
                        header="$old_header"
                        continue
                fi
index 13e3d83ab082707e3555d435999f1510e1d9d4f1..5e55580013dad9ec224e8c11a8e191b18c00428e 100644 (file)
@@ -100,7 +100,7 @@ gsu_getopts()
 '
 
        gsu_check_arg_count $# 1 1
-       if (($ret < 0)); then
+       if ((ret < 0)); then
                gsu_err_msg
                exit 1
        fi
@@ -126,7 +126,7 @@ gsu_getopts()
        result="local _gsu_getopts_opt"
        for ((i=0; i < ${#1}; i++)); do
                c1=${1:$i:1}
-               c2=${1:$(($i + 1)):1}
+               c2=${1:$((i + 1)):1}
                result+=" o_$c1="
                if [[ "$c2" = ":" ]]; then
                        let i++
@@ -141,7 +141,7 @@ gsu_getopts()
 "
        for ((i=0; i < ${#1}; i++)); do
                c1=${1:$i:1}
-               c2=${1:$(($i + 1)):1}
+               c2=${1:$((i + 1)):1}
                result+="$tab$tab$c1) o_$c1="
                if [[ "$c2" = ":" ]]; then
                        result+="\"\$OPTARG\""
@@ -175,7 +175,7 @@ _gsu_print_available_commands()
        for cmd in $cmds; do
                printf '%s' "$cmd"
                let ++count
-               if (($count % 4)); then
+               if ((count % 4)); then
                        printf '\t'
                        ((${#cmd} < 8)) && printf '\t'
                else
@@ -226,9 +226,9 @@ com_prefs()
 
        gsu_getopts "$com_prefs_options"
        eval "$result"
-       (($ret < 0)) && return
+       ((ret < 0)) && return
        gsu_check_arg_count $# 0 0
-       (($ret < 0)) && return
+       ((ret < 0)) && return
 
        if [[ "$o_e" == "true" ]]; then
                ret=-$E_GSU_MKDIR
@@ -595,7 +595,7 @@ com_man()
        _gsu_available_commands
        for com in $result; do
                num=${#com}
-               (($num < 4)) && num=4
+               ((num < 4)) && num=4
                echo "${minus_signs:0:$num}"
                echo "$com"
                echo "${minus_signs:0:$num}"
@@ -749,8 +749,8 @@ EOF
 
        cword="$1"
        gsu_is_a_number "$cword"
-       (($ret < 0)) && return
-       if (($cword <= 1)); then
+       ((ret < 0)) && return
+       if ((cword <= 1)); then
                _gsu_available_commands
                echo "${result}"
                ret=$GSU_SUCCESS
@@ -783,18 +783,18 @@ gsu_cword_is_option_parameter()
        local -a words
 
        result=
-       (($cword == 0)) && return
+       ((cword == 0)) && return
        ((${#opts} < 2)) && return
 
        shift 2
        words=("$@")
-       prev="${words[$(($cword - 1))]}"
+       prev="${words[$((cword - 1))]}"
        [[ ! "$prev" == -* ]] && return
 
        n=$((${#opts} - 1))
        for ((i=0; i <= $n; i++)); do
                opt="${opts:$i:1}"
-               [[ "${opts:$(($i + 1)):1}" != ":" ]] && continue
+               [[ "${opts:$((i + 1)):1}" != ":" ]] && continue
                let i++
                [[ ! "$prev" =~ ^-.*$opt$ ]] && continue
                result="$opt"
@@ -825,13 +825,13 @@ gsu_get_unnamed_arg_num()
        shift 2
        words=("$@")
        cur="${words[$cword]}"
-       prev="${words[$(($cword - 1))]}"
+       prev="${words[$((cword - 1))]}"
        result=-1
        [[ "$cur" == -* ]] && return
        [[ "$prev" == -* ]] && [[ "$opts" == *${prev#-}:* ]] && return
 
        for ((i=1; i <= $cword; i++)); do
-               prev="${words[$(($i - 1))]}"
+               prev="${words[$((i - 1))]}"
                cur="${words[$i]}"
                [[ "$cur" == -* ]] && continue
                if [[ "$prev" == -* ]]; then
@@ -841,7 +841,7 @@ gsu_get_unnamed_arg_num()
                fi
                let n++
        done
-       result="$(($n - 1))"
+       result="$((n - 1))"
 }
 
 # Entry point for all gsu-based scripts.
@@ -872,7 +872,7 @@ gsu()
        shift
        if [[ "$(type -t "com_$arg")" == 'function' ]]; then
                "com_$arg" "$@"
-               if (("$ret" < 0)); then
+               if ((ret < 0)); then
                        gsu_err_msg
                        exit 1
                fi