tdf#135628 Let uri-encode encode newlines

...and invoke it via `printf ... | uri-encode` rather than `echo ... |
uri-encode`, to avoid passing spurious newlines to it (which appears to have
been the reason for it not to encode newlines in the first place)

Change-Id: I26131a19f69c04b0beca8e8bab72c1dbb65300c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178596
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
This commit is contained in:
Stephan Bergmann
2024-12-16 16:57:11 +01:00
parent d0ecc9bbff
commit 6d1cddea8e
2 changed files with 22 additions and 22 deletions
+20 -20
View File
@@ -85,7 +85,7 @@ case $(basename "$MAILER" | sed 's/-.*$//') in
shift
;;
--attach)
ATTACH=${ATTACH:-}${ATTACH:+,}$(echo "file://$2" | "${URI_ENCODE}")
ATTACH=${ATTACH:-}${ATTACH:+,}$(printf file://%s "$2" | "${URI_ENCODE}")
shift
;;
*)
@@ -145,7 +145,7 @@ case $(basename "$MAILER" | sed 's/-.*$//') in
shift
;;
--attach)
ATTACH="${ATTACH:-}${ATTACH:+ }--attach "$(echo "file://$2" | "${URI_ENCODE}")
ATTACH="${ATTACH:-}${ATTACH:+ }--attach "$(printf file://%s "$2" | "${URI_ENCODE}")
shift
;;
*)
@@ -228,23 +228,23 @@ case $(basename "$MAILER" | sed 's/-.*$//') in
shift
;;
--cc)
MAILTO="${MAILTO:-}${MAILTO:+&}cc="$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}cc="$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--bcc)
MAILTO="${MAILTO:-}${MAILTO:+&}bcc="$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}bcc="$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--subject)
MAILTO="${MAILTO:-}${MAILTO:+&}subject"=$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}subject"=$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--body)
MAILTO="${MAILTO:-}${MAILTO:+&}body="$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}body="$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--attach)
MAILTO="${MAILTO:-}${MAILTO:+&}attach="$(echo "file://$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}attach="$(printf file://%s "$2" | "${URI_ENCODE}")
shift
;;
*)
@@ -270,23 +270,23 @@ case $(basename "$MAILER" | sed 's/-.*$//') in
shift
;;
--cc)
MAILTO="${MAILTO:-}${MAILTO:+&}cc="$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}cc="$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--bcc)
MAILTO="${MAILTO:-}${MAILTO:+&}bcc="$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}bcc="$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--subject)
MAILTO="${MAILTO:-}${MAILTO:+&}subject"=$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}subject"=$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--body)
MAILTO="${MAILTO:-}${MAILTO:+&}body="$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}body="$(printf %a "$2" | "${URI_ENCODE}")
shift
;;
--attach)
MAILTO="${MAILTO:-}${MAILTO:+&}attachment="$(echo "file://$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}attachment="$(printf file://%s "$2" | "${URI_ENCODE}")
shift
;;
*)
@@ -329,7 +329,7 @@ case $(basename "$MAILER" | sed 's/-.*$//') in
shift
;;
--attach)
ATTACH=${ATTACH:-}${ATTACH:+,}$(echo "file://$2" | "${URI_ENCODE}")
ATTACH=${ATTACH:-}${ATTACH:+,}$(printf file://%s "$2" | "${URI_ENCODE}")
shift
;;
*)
@@ -347,7 +347,7 @@ case $(basename "$MAILER" | sed 's/-.*$//') in
case $1 in
--attach)
#i95688# fix filenames containing accented chars, whatever alien
ATTACH="${ATTACH:-}${ATTACH:+ }"$(echo "file://$2" | "${URI_ENCODE}")
ATTACH="${ATTACH:-}${ATTACH:+ }"$(printf file://%s "$2" | "${URI_ENCODE}")
shift
;;
*)
@@ -391,26 +391,26 @@ case $(basename "$MAILER" | sed 's/-.*$//') in
shift
;;
--cc)
MAILTO="${MAILTO:-}${MAILTO:+&}cc="$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}cc="$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--bcc)
MAILTO="${MAILTO:-}${MAILTO:+&}bcc="$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}bcc="$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--subject)
MAILTO="${MAILTO:-}${MAILTO:+&}subject"=$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}subject"=$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--body)
MAILTO="${MAILTO:-}${MAILTO:+&}body="$(echo "$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}body="$(printf %s "$2" | "${URI_ENCODE}")
shift
;;
--attach)
if [ "$MAILER" = "/usr/bin/xdg-email" ]; then
MAILTO="${MAILTO:-}${MAILTO:+&}attach="$(echo "file://$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}attach="$(printf file://%s "$2" | "${URI_ENCODE}")
else
MAILTO="${MAILTO:-}${MAILTO:+&}attachment="$(echo "file://$2" | "${URI_ENCODE}")
MAILTO="${MAILTO:-}${MAILTO:+&}attachment="$(printf file://%s "$2" | "${URI_ENCODE}")
fi
shift
;;
+2 -2
View File
@@ -30,8 +30,8 @@ int main(void) {
c = getchar();
if (c == EOF) {
exit(errno == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
} else if (isalnum(c) || strchr("!$'()*+,-.:=@_~/\n", c) != NULL) {
/* valid RFC 2396 pchar characters + '/' + newline */
} else if (isalnum(c) || strchr("!$'()*+,-.:=@_~/", c) != NULL) {
/* valid RFC 2396 pchar characters + '/' */
if (putchar(c) == EOF) {
exit(EXIT_FAILURE);
}