commit 72cd04917a0e985cf4efed944d65dc9ab220abb2
parent d7a1e45f04620fdd142578d4d67891bc9b965aad
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 4 May 2025 21:27:37 +0200
fix address escaping
Diffstat:
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