challenger

OAuth 2.0-based authentication service that validates user can receive messages at a certain address
Log | Files | Refs | Submodules | README | LICENSE

commit 72cd04917a0e985cf4efed944d65dc9ab220abb2
parent d7a1e45f04620fdd142578d4d67891bc9b965aad
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun,  4 May 2025 21:27:37 +0200

fix address escaping

Diffstat:
Msrc/challenger/challenger-send-post.sh | 34+++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/challenger/challenger-send-post.sh b/src/challenger/challenger-send-post.sh @@ -32,7 +32,7 @@ ADDR="$1" # Name of business or individual, possibly with "Attn. $INDIVIDUAL_NAME" CONTACT_NAME=$(echo "$ADDR" | jq -r .CONTACT_NAME | tr '|`~!"<>[]%_^#$&@\\{}' . ) # Multi-line address -ADDRESS_LINES=$(echo "$ADDR" | jq -r .ADDRESS_LINES | tr '|`~!"<>[]%_^#$&@\\{}' . ) +ADDRESS_LINES=$(echo "$ADDR" | jq -r .ADDRESS_LINES) # This will just be the 2-letter country code ADDRESS_COUNTRY=$(echo "$ADDR" | jq -r .ADDRESS_COUNTRY | tr '|`~!"<>[]%_^#$&@\\{}' . ) @@ -66,7 +66,7 @@ in COUNTRY='Antarctica' ;; AG) - COUNTRY='Antigua & Barbuda' + COUNTRY='Antigua \\\& Barbuda' ;; AR) COUNTRY='Argentina' @@ -120,7 +120,7 @@ in COUNTRY='Bolivia' ;; BA) - COUNTRY='Bosnia & Herzegovina' + COUNTRY='Bosnia \\\& Herzegovina' ;; BW) COUNTRY='Botswana' @@ -334,7 +334,7 @@ in COUNTRY='Haiti' ;; HM) - COUNTRY='Heard & McDonald Islands' + COUNTRY='Heard \\\& McDonald Islands' ;; HN) COUNTRY='Honduras' @@ -598,7 +598,7 @@ in COUNTRY='San Marino' ;; ST) - COUNTRY='São Tomé & Príncipe' + COUNTRY='São Tomé \\\& Príncipe' ;; SA) COUNTRY='Saudi Arabia' @@ -637,7 +637,7 @@ in COUNTRY='South Africa' ;; GS) - COUNTRY='South Georgia & South Sandwich Islands' + COUNTRY='South Georgia \\\& South Sandwich Islands' ;; KR) COUNTRY='South Korea' @@ -658,7 +658,7 @@ in COUNTRY='St. Helena' ;; KN) - COUNTRY='St. Kitts & Nevis' + COUNTRY='St. Kitts \\\& Nevis' ;; LC) COUNTRY='St. Lucia' @@ -667,10 +667,10 @@ in COUNTRY='St. Martin' ;; PM) - COUNTRY='St. Pierre & Miquelon' + COUNTRY='St. Pierre \\\& Miquelon' ;; VC) - COUNTRY='St. Vincent & Grenadines' + COUNTRY='St. Vincent \\\& Grenadines' ;; SD) COUNTRY='Sudan' @@ -679,7 +679,7 @@ in COUNTRY='Suriname' ;; SJ) - COUNTRY='Svalbard & Jan Mayen' + COUNTRY='Svalbard \\\& Jan Mayen' ;; SE) COUNTRY='Sweden' @@ -715,7 +715,7 @@ in COUNTRY='Tonga' ;; TT) - COUNTRY='Trinidad & Tobago' + COUNTRY='Trinidad \\\& Tobago' ;; TN) COUNTRY='Tunisia' @@ -727,7 +727,7 @@ in COUNTRY='Turkmenistan' ;; TC) - COUNTRY='Turks & Caicos Islands' + COUNTRY='Turks \\\& Caicos Islands' ;; TV) COUNTRY='Tuvalu' @@ -772,7 +772,7 @@ in COUNTRY='Vietnam' ;; WF) - COUNTRY='Wallis & Futuna' + COUNTRY='Wallis \\\& Futuna' ;; EH) COUNTRY='Western Sahara' @@ -795,9 +795,9 @@ esac # Convert new lines to " " for LaTeX. excluding trailing new-line # at the end if present: CONTACT_TEX=$(echo -n "${CONTACT_NAME%$'\n'}" | awk '{printf "%s ", $0}') -# Convert new lines to "\\ " for LaTeX, but without trailing new-line -# at the end if present: -ADDRESS_TEX=$(echo -n "${ADDRESS_LINES%$'\n'}" | awk '{printf "%s\\\\ ", $0}') +# Convert new lines to "\\" for LaTeX, and escape problematic characters, +# but leave "\\" intact. +ADDRESS_TEX=$(echo -n "${ADDRESS_LINES%$'\n'}" | awk '{printf "%s\\\\\\\\", $0}' | tr '|`~!"<>[]%_^#$&@{}' . | sed 's/\\\\/@@ESCAPED@@/g; s/\\./\./g; s/@@ESCAPED@@/\\\\/g') MYDIR=$(mktemp -d /tmp/authorization-post-XXXXXX) @@ -814,7 +814,7 @@ sed -e "s/%NAME%/$CONTACT_TEX/g" \ \setkomavar{signature}{Taler Operations AG, c/o Berner Fachhochschule, H\"oheweg 80, 2502 Biel/Bienne} \date{\today} \begin{document} -\begin{letter}{\ \ %NAME% \\\\ \ \ %ADDRESS_TEX% \\\\ \ \ %COUNTRY% } +\begin{letter}{%NAME%\\\\%ADDRESS_TEX% %COUNTRY% } \opening{To whom it may concern,} EOF echo "$MESSAGE" >> input.tex