From b0fec259a8d00c3ffcb8f68998a8a9b502fcff13 Mon Sep 17 00:00:00 2001 From: Frank Terbeck Date: Fri, 9 Nov 2012 10:25:26 +0100 Subject: [PATCH] zshrc: Remove zurl's dependency on =~ type regexp conditions This should improve backwards compatibility with older zsh-versions. Reported-by: Ilya Novoselov Signed-off-by: Frank Terbeck --- etc/zsh/zshrc | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 89b64bf..7bd4416 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -2632,12 +2632,15 @@ xtrename() { # API reference: https://code.google.com/apis/urlshortener/ function zurl() { emulate -L zsh + setopt extended_glob + if [[ -z $1 ]]; then print "USAGE: zurl " return 1 fi - local PN url prog api json data + local PN url prog api json contenttype item + local -a data PN=$0 url=$1 @@ -2655,11 +2658,19 @@ function zurl() { api='https://www.googleapis.com/urlshortener/v1/url' contenttype="Content-Type: application/json" json="{\"longUrl\": \"${url}\"}" - data=$($prog --silent -H ${contenttype} -d ${json} $api) - # Match against a regex and print it - if [[ $data =~ '"id": "(http://goo.gl/[[:alnum:]]+)"' ]]; then - print $match; - fi + data=(${(f)"$($prog --silent -H ${contenttype} -d ${json} $api)"}) + # Parse the response + for item in "${data[@]}"; do + case "$item" in + ' '#'"id":'*) + item=${item#*: \"} + item=${item%\",*} + printf '%s\n' "$item" + return 0 + ;; + esac + done + return 1 } #f2# Find history events by search pattern and list them by date. -- 2.1.4