浏览代码

Add shell built method

dongweiming 11 年之前
父节点
当前提交
c164f2aab6
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      plugins/urltools/urltools.plugin.zsh

+ 4 - 1
plugins/urltools/urltools.plugin.zsh

@@ -14,6 +14,9 @@ if [[ $(whence node) != "" && ( "x$URLTOOLS_METHOD" = "x"  || "x$URLTOOLS_METHOD
 elif [[ $(whence python) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xpython" ) ]]; then
     alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
     alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'
+elif [[ $(whence xxd) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xshell" ) ]]; then
+    function urlencode() {echo $@ | tr -d "\n" | xxd -plain | sed "s/\(..\)/%\1/g"}
+    function urldecode() {printf $(echo -n $@ | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')"\n"}
 elif [[ $(whence ruby) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xruby" ) ]]; then
     alias urlencode='ruby -r cgi -e "puts CGI.escape(ARGV[0])"'
     alias urldecode='ruby -r cgi -e "puts CGI.unescape(ARGV[0])"'
@@ -33,4 +36,4 @@ elif [[ $(whence perl) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHO
     fi
 fi
 
-unset URLTOOLS_METHOD
+unset URLTOOLS_METHOD