c164f2aab693f4b32c209cb34784818fba434b2d

Author
dongweiming <ciici123@gmail.com>
Committer
dongweiming <ciici123@gmail.com>
Date

Message

Add shell built method

Diff

 1diff --git a/plugins/urltools/urltools.plugin.zsh b/plugins/urltools/urltools.plugin.zsh
 2index 4ddfff8ce23b6b0e5d0f6ab6c16ce5ada14389dd..22327334d369677644d599bb950522d88dd51fa0 100644
 3--- a/plugins/urltools/urltools.plugin.zsh
 4+++ b/plugins/urltools/urltools.plugin.zsh
 5@@ -14,6 +14,9 @@ if [[ $(whence node) != "" && ( "x$URLTOOLS_METHOD" = "x"  || "x$URLTOOLS_METHOD
 6 elif [[ $(whence python) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xpython" ) ]]; then
 7     alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
 8     alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'
 9+elif [[ $(whence xxd) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xshell" ) ]]; then
10+    function urlencode() {echo $@ | tr -d "\n" | xxd -plain | sed "s/\(..\)/%\1/g"}
11+    function urldecode() {printf $(echo -n $@ | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')"\n"}
12 elif [[ $(whence ruby) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xruby" ) ]]; then
13     alias urlencode='ruby -r cgi -e "puts CGI.escape(ARGV[0])"'
14     alias urldecode='ruby -r cgi -e "puts CGI.unescape(ARGV[0])"'
15@@ -33,4 +36,4 @@ elif [[ $(whence perl) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHO
16     fi
17 fi
18 
19-unset URLTOOLS_METHOD
20+unset URLTOOLS_METHOD