diff options
author | Ashish SHUKLA <ashish@FreeBSD.org> | 2010-09-15 11:56:58 +0000 |
---|---|---|
committer | Ashish SHUKLA <ashish@FreeBSD.org> | 2010-09-15 11:56:58 +0000 |
commit | c3240587788f9b0e086c557d4d9a257ac80bd451 (patch) | |
tree | 905ee8dd558a8391facc35f78cb753be26770343 /x11-wm/stumpwm/files | |
parent | dd8b92a932dc5ef0e992bc4dc9a312fdfd247f6c (diff) | |
download | ports-c3240587788f9b0e086c557d4d9a257ac80bd451.tar.gz ports-c3240587788f9b0e086c557d4d9a257ac80bd451.zip |
Notes
Diffstat (limited to 'x11-wm/stumpwm/files')
-rw-r--r-- | x11-wm/stumpwm/files/patch-contrib-stumpish | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/x11-wm/stumpwm/files/patch-contrib-stumpish b/x11-wm/stumpwm/files/patch-contrib-stumpish new file mode 100644 index 000000000000..ad545e8ffea2 --- /dev/null +++ b/x11-wm/stumpwm/files/patch-contrib-stumpish @@ -0,0 +1,178 @@ + - use `echo' wrapper and work around \0XXX vs. \XXX in dash + - use tput(1) wrapper and try termcap(5) capabilities first + - remove GNUisms from sed(1) lines without breaking GNU sed usage + - try to guess whether sleep(1) supports fractions + - prevent word splitting when reading command list + - remove command list not only when exiting but on SIGINT and SIGTERM, too + - don't use backquotes, they have side effect of removing one layer of quoting + - prevent glob expansion when stripping output + - no need for persistence across reboots, use /tmp and TMPDIR from environ(7) + - remove workaround for `read -p', it's supported by every ash descendant + - correct example line in usage + +--- + contrib/stumpish | 93 ++++++++++++++++++++++++++++++++++++----------------- + 1 files changed, 63 insertions(+), 30 deletions(-) + +diff --git contrib/stumpish~ contrib/stumpish +index 1d48bb4..2b0fca1 100755 +--- contrib/stumpish~ ++++ contrib/stumpish +@@ -21,19 +21,25 @@ + + ### STUMPwm Interactive SHell. + +-if sleep --version 2>/dev/null | grep -q GNU ++DELAY=0.01 ++ ++if ! sleep $DELAY 2>/dev/null >&2 + then +- DELAY=0.1 +-else + DELAY=1 + fi + ++# parse C-style backslash sequences by default ++if [ "$(echo -e foo)" = foo ]; then ++ echo() { builtin echo -e "$@"; } ++fi ++ + wait_result () + { + while true + do +- RESULT=`xprop -root -f STUMPWM_COMMAND_RESULT 8s STUMPWM_COMMAND_RESULT 2>/dev/null` +- ++ RESULT=$(xprop -root -f STUMPWM_COMMAND_RESULT 8s \ ++ STUMPWM_COMMAND_RESULT 2>/dev/null | ++ sed -E 's/\\([[:digit:]]+)/\\0\1/g') + if echo "$RESULT" | grep -v -q 'not found.$' + then + break +@@ -49,8 +55,14 @@ wait_result () + return 1 + fi + +- echo $RESULT | sed 's/[^"]*"//;s/"$//;s/\\n/\n/g;s/\\"/"/g;s/\n\+$//; +- s/\^[*[:digit:]]\{2\}//g;s/\^[Bbn]//g;' ++ echo "$RESULT" | ++ sed -E 's/[^"\\n]+"// ++ s/"[[:space:]]*$// ++ s/([^\\])\\n/\1\ ++/g ++ s/\\(["\\n])/\1/g ++ s/\^([*[:digit:]]+|[Bbn])//g' | ++ sed '/^[[:space:]]*$/d' + } + + send_cmd () +@@ -73,7 +85,7 @@ send_cmd () + usage () + { + cat <<EOF +-Usage: "$0" [[-e] command [args...]] ++Usage: ${0##*/} [[-e|-r] command [args...]] + + StumpIsh is the StumpWM shell. Use it to interact a running StumpWM + instance. When run from a terminal with no arguments, stumpish +@@ -87,11 +99,31 @@ the first is considered the name of the command to execute and the + remainder is concatenated to form the argument. + + Example: +- echo '(group-windows (current-group))' | "$0" eval ++ echo '(group-windows (current-group))' | ${0##*/} -e eval + EOF + exit 0; + } + ++warn () ++{ ++ { ++ tput md bold ++ tput AF setaf 1 ++ echo 'WARN:\c' ++ tput me sgr0 ++ echo " $*" ++ } >&2 ++} ++ ++tput () ++{ ++ local cap1=$1 cap2=$2 ++ shift 2 ++ ++ command tput $cap1 $@ 2>/dev/null || ++ command tput $cap2 $@ 2>/dev/null ++} ++ + READLINE=yes + + if [ "x$1" = "x-r" ] +@@ -112,7 +144,7 @@ then + fi + shift 1 + IFS='' +- ARGS=`cat /dev/stdin` ++ ARGS=$(cat /dev/stdin) + send_cmd "$1 $ARGS" + else + IFS=' ' +@@ -121,37 +153,36 @@ then + else + if [ -t 0 ] + then +- if [ $READLINE = yes ] && type rlwrap >/dev/null 2>&1 ++ if ! type rlwrap 2>/dev/null >&2 + then +- # Note: $TEMP is not conventional; it is left here purely +- # for backwards compatibility. +- COMMANDS="${TEMP:-${TEMPDIR:-/var/tmp}}/stumpish.commands.$$" +- echo `send_cmd "commands"` | sed 's/[[:space:]]\+/\n/g' | sort > "$COMMANDS" +- rlwrap -f "$COMMANDS" "$0" -r +- rm -f "$COMMANDS" ++ warn rlwrap not found, command completion won\'t work ++ elif [ $READLINE = yes ] ++ then ++ COMMANDS="${TMPDIR:-/tmp}/stumpish.commands.$$" ++ echo $(send_cmd "commands") | ++ sed -E 's/[[:space:]]+/\ ++/g' | ++ sort > "$COMMANDS" ++ trap 'rm -f "$COMMANDS"' exit int term ++ rlwrap -b '' -f "$COMMANDS" "$0" -r + exit + fi + +- tput setaf 5 ++ tput AF setaf 5 + echo Welcome to the STUMPwm Interactive SHell. +- tput sgr0 +- echo -n 'Type ' +- tput setaf 2 +- echo -n commands +- tput sgr0 ++ tput me sgr0 ++ echo 'Type \c' ++ tput AF setaf 2 ++ echo 'commands\c' ++ tput me sgr0 + echo \ for a list of commands. + +- IFS=' +-' +- echo -n "> " +- while read REPLY ++ while read -p '> ' REPLY + do +- tput bold +- tput setaf 2 ++ tput md bold ++ tput AF setaf 2 + send_cmd "$REPLY" +- tput sgr0 +- +- echo -n "> " ++ tput me sgr0 + done + else + while read REPLY |