From b0db9f4f071e35b103674d528ff4072dce1177f5 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Sat, 4 May 2013 18:14:41 -0500 Subject: [PATCH] Revert "compton-trans: use getopt instead of getopts." This reverts commit 80a3c805619fcec158259f68ad966308712b83f9. --- bin/compton-trans | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/bin/compton-trans b/bin/compton-trans index af2d4db..7b2ac7d 100755 --- a/bin/compton-trans +++ b/bin/compton-trans @@ -27,8 +27,6 @@ if test -z "$(command -v xprop)" -o -z "$(command -v xwininfo)"; then fi # Variables -args= -arg= active= wprefix= window= @@ -45,34 +43,36 @@ for v in "$@"; do shift && set -- "$@" "$(echo "$v" | sed 's/^-\([0-9]\+%\?\)$/~\1/')" done -# Use getopt to parse arguments. -args=$(getopt -o 'scdgn:w:o:' -l 'select,current,delete,get,name:,window:,opacity:' -- "$@") -if test $? -ne 0; then - echo 'Bad arguments.' - exit 1 -fi - -eval set -- "$args" - +# This takes into account the fact that getopts stops on +# any argument it doesn't recongize or errors on. This +# allows for things like `compton-trans -5` as well +# as `compton-trans -c +5 -s` (contrived example). while test $# -gt 0; do - arg=$1 - shift - case "$arg" in - --) break ;; - -s | --select) wprefix=''; window='' ;; - -c | --current) - active=$(xprop -root -notype _NET_ACTIVE_WINDOW \ - | sed 's/^.*\(0x\S*\).*$/\1/') - wprefix='-id'; window=$active - ;; - -d | --delete) action='delete' ;; - -g | --get) action='get' ;; - -n | --name) wprefix='-name'; window=$1; shift ;; - -w | --window) wprefix='-id'; window=$1; shift ;; - -o | --opacity) opacity=$1; shift ;; - esac + # Reset option index + OPTIND=1 + + # Read options + while getopts 'scdgn:w:o:' option "$@"; do + case "$option" in + s) wprefix=''; window='' ;; + c) + active=$(xprop -root -notype _NET_ACTIVE_WINDOW \ + | sed 's/^.*\(0x\S*\).*$/\1/') + wprefix='-id'; window=$active + ;; + d) action='delete' ;; + g) action='get' ;; + n) wprefix='-name'; window=$OPTARG ;; + w) wprefix='-id'; window=$OPTARG ;; + o) opacity=$OPTARG ;; + \?) exit 1 ;; + esac + done + + # Read positional arguments + shift $((OPTIND - 1)) + test -n "$1" && opacity=$1 && shift done -test -n "$1" && opacity=$1 # clean up opacity. xargs == a poor man's trim. opacity=$(echo "$opacity" | xargs | sed 's/%//g' | sed 's/^~\([0-9]\+\)$/-\1/')