diff options
author | Bo Ørsted Andresen <bo.andresen@zlin.dk> | 2008-11-06 18:36:47 +0100 |
---|---|---|
committer | Bo Ørsted Andresen <bo.andresen@zlin.dk> | 2008-11-06 19:28:08 +0100 |
commit | bb722d9a6d30d9dc04ebadb1044c4009490cab09 (patch) | |
tree | 280e4bddb6815b5b765826f8ce2c54cbdb506e71 | |
parent | b016188e699a8acd4c408e53f2186073d395049a (diff) | |
download | wgetpaste-bb722d9a6d30d9dc04ebadb1044c4009490cab09.tar.gz |
Escape semicolons. Allow empty language or expiration values via a '%'.
-rwxr-xr-x | wgetpaste | 24 |
1 files changed, 19 insertions, 5 deletions
@@ -95,10 +95,10 @@ EOF ### conversions -# escape % (used for escaping), & (used as separator in POST data), + (used as space in POST data) and space +# escape % (used for escaping), & (used as separator in POST data), + (used as space in POST data), space and ; escape() { - sed -e 's|%|%25|g' -e 's|&|%26|g' -e 's|+|%2b|g' -e 's| |+|g' <<< "$*" || die "sed failed" -} + sed -e 's|%|%25|g' -e 's|&|%26|g' -e 's|+|%2b|g' -e 's|;|%3b|g' -e 's| |+|g' <<< "$*" || die "sed failed" +} # if possible convert URL to raw converttoraw() { @@ -138,7 +138,14 @@ verifylanguage() { elif [[ -n ${!values} ]]; then ((j=0)) for v in ${!values}; do - [[ i -eq j ]] && LANGUAGE=${v//\%/ } && break + if [[ i -eq j ]]; then + if [[ ${v} == \% ]]; then + LANGUAGE= + else + LANGUAGE=${v//\%/ } + fi + break + fi ((j++)) done fi @@ -168,7 +175,14 @@ verifyexpiration() { elif [[ -n {!values} ]]; then ((j=0)) for v in ${!values}; do - [[ i -eq j ]] && EXPIRATION=${v//\%/ } && break + if [[ i -eq j ]]; then + if [[ ${v} == \% ]]; then + EXPIRATION= + else + EXPIRATION=${v//\%/ } + fi + break + fi ((j++)) done fi |