]> git.tuebingen.mpg.de Git - gsu.git/commitdiff
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"
 
                        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
 
                        [[ -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
                com_world()
                {
                        gsu_check_arg_count $# 0 0 # no arguments allowed
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
                        echo 'hello world'
                }
 
                        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 "$@"
                        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"
 
                        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"
                        local username
 
                        gsu_inputbox 'Enter username' "$LOGNAME"
-                       (($ret != 0)) && return
+                       ((ret != 0)) && return
                        username="$result"
                        gsu_msgbox "$(pgrep -lu "$username")"
                }
                        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"
                        local username
 
                        gsu_inputbox 'Enter username' "$LOGNAME"
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
                        username="$result"
                        gsu_msgbox "$(pgrep -lu "$username")"
                }
                        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
                #echo "a:$a,  b: $b"
                gsu_error_txt[i]="$b"
                eval $a=$i
-               i=$(($i + 1))
+               i=$((i + 1))
        done << EOF
        $gsu_errors
 EOF
        done << EOF
        $gsu_errors
 EOF
@@ -68,15 +68,15 @@ gsu_err_msg()
        local txt="$result" err
 
        gsu_is_a_number "$ret"
        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
                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
                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
        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"
                        ;;
                num)
                        gsu_is_a_number "$val"
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
                        ;;
                *)
                        ret=-$E_GSU_BAD_OPTION_TYPE
                        ;;
                *)
                        ret=-$E_GSU_BAD_OPTION_TYPE
@@ -76,7 +76,7 @@ gsu_check_options()
 gsu_check_options_or_die()
 {
        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
                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%% *}"
        fi
        x="${result#* }"
        y="${result%% *}"
-       (($x > 190)) && x=190
+       ((x > 190)) && x=190
        result="$y $x"
 }
 
        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'
        # 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"
        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" \
        #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"
        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"
 
        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"
                [[ -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"
                        _browse "$header" "$tree" "$result"
-                       (($ret < 0)) && return
+                       ((ret < 0)) && return
                        header="$old_header"
                        continue
                fi
                        header="$old_header"
                        continue
                fi
index 13e3d83ab082707e3555d435999f1510e1d9d4f1..5e55580013dad9ec224e8c11a8e191b18c00428e 100644 (file)
@@ -100,7 +100,7 @@ gsu_getopts()
 '
 
        gsu_check_arg_count $# 1 1
 '
 
        gsu_check_arg_count $# 1 1
-       if (($ret < 0)); then
+       if ((ret < 0)); then
                gsu_err_msg
                exit 1
        fi
                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}
        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++
                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}
 "
        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\""
                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
        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
                        printf '\t'
                        ((${#cmd} < 8)) && printf '\t'
                else
@@ -226,9 +226,9 @@ com_prefs()
 
        gsu_getopts "$com_prefs_options"
        eval "$result"
 
        gsu_getopts "$com_prefs_options"
        eval "$result"
-       (($ret < 0)) && return
+       ((ret < 0)) && return
        gsu_check_arg_count $# 0 0
        gsu_check_arg_count $# 0 0
-       (($ret < 0)) && return
+       ((ret < 0)) && return
 
        if [[ "$o_e" == "true" ]]; then
                ret=-$E_GSU_MKDIR
 
        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}
        _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}"
                echo "${minus_signs:0:$num}"
                echo "$com"
                echo "${minus_signs:0:$num}"
@@ -749,8 +749,8 @@ EOF
 
        cword="$1"
        gsu_is_a_number "$cword"
 
        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
                _gsu_available_commands
                echo "${result}"
                ret=$GSU_SUCCESS
@@ -783,18 +783,18 @@ gsu_cword_is_option_parameter()
        local -a words
 
        result=
        local -a words
 
        result=
-       (($cword == 0)) && return
+       ((cword == 0)) && return
        ((${#opts} < 2)) && return
 
        shift 2
        words=("$@")
        ((${#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}"
        [[ ! "$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"
                let i++
                [[ ! "$prev" =~ ^-.*$opt$ ]] && continue
                result="$opt"
@@ -825,13 +825,13 @@ gsu_get_unnamed_arg_num()
        shift 2
        words=("$@")
        cur="${words[$cword]}"
        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
        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
                cur="${words[$i]}"
                [[ "$cur" == -* ]] && continue
                if [[ "$prev" == -* ]]; then
@@ -841,7 +841,7 @@ gsu_get_unnamed_arg_num()
                fi
                let n++
        done
                fi
                let n++
        done
-       result="$(($n - 1))"
+       result="$((n - 1))"
 }
 
 # Entry point for all gsu-based scripts.
 }
 
 # Entry point for all gsu-based scripts.
@@ -872,7 +872,7 @@ gsu()
        shift
        if [[ "$(type -t "com_$arg")" == 'function' ]]; then
                "com_$arg" "$@"
        shift
        if [[ "$(type -t "com_$arg")" == 'function' ]]; then
                "com_$arg" "$@"
-               if (("$ret" < 0)); then
+               if ((ret < 0)); then
                        gsu_err_msg
                        exit 1
                fi
                        gsu_err_msg
                        exit 1
                fi