shell/source/unix/misc/senddoc.sh | 40 ++++++++++++++++++------------------ shell/source/unix/misc/uri-encode.c | 4 +-- 2 files changed, 22 insertions(+), 22 deletions(-)
New commits: commit cf4ab0e50087ae631b9f187b1b554da463474c27 Author: Stephan Bergmann <stephan.bergm...@allotropia.de> AuthorDate: Mon Dec 16 15:18:26 2024 +0100 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Mon Dec 16 22:41:14 2024 +0100 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.bergm...@allotropia.de> (cherry picked from commit 6d1cddea8e4e19287891ab8fb7e3774ae9976ea1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178600 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/shell/source/unix/misc/senddoc.sh b/shell/source/unix/misc/senddoc.sh index d4bc20176b5b..15fa40d058a2 100755 --- a/shell/source/unix/misc/senddoc.sh +++ b/shell/source/unix/misc/senddoc.sh @@ -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 ;; diff --git a/shell/source/unix/misc/uri-encode.c b/shell/source/unix/misc/uri-encode.c index f7bca6ff6a2e..97c38e2568e2 100644 --- a/shell/source/unix/misc/uri-encode.c +++ b/shell/source/unix/misc/uri-encode.c @@ -30,8 +30,8 @@ int main(void) { c = getchar(); if (c == EOF) { exit(errno == 0 ? EXIT_SUCCESS : EXIT_FAILURE); - } else if (isalnum(c) || strchr("!$'()*+,-.:=@_~/ ", 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); }