summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBo Ørsted Andresen <bo.andresen@zlin.dk>2008-11-06 18:36:47 +0100
committerBo Ørsted Andresen <bo.andresen@zlin.dk>2008-11-06 19:28:08 +0100
commitbb722d9a6d30d9dc04ebadb1044c4009490cab09 (patch)
tree280e4bddb6815b5b765826f8ce2c54cbdb506e71
parentb016188e699a8acd4c408e53f2186073d395049a (diff)
downloadwgetpaste-bb722d9a6d30d9dc04ebadb1044c4009490cab09.tar.gz
Escape semicolons. Allow empty language or expiration values via a '%'.
-rwxr-xr-xwgetpaste24
1 files changed, 19 insertions, 5 deletions
diff --git a/wgetpaste b/wgetpaste
index 9c77eed..f8415fd 100755
--- a/wgetpaste
+++ b/wgetpaste
@@ -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