Je ein ';' wird durch einen '\' ersetzt

Neben den Backslashes am Zeilenende gab es Backslashes innerhalb des
Textes.
Beispiel:
- Datum: 05.\,02.\,2024
- Straße: Gitstr.\,42

Mit diesen Backslashes kam die Ersetzung nicht gut zurecht.

Daher habe ich das so geändert, dass jedes Semikolon (';') durch einen
Backslash ersetzt wird. Im Datum und Straßen muss nun auch ein Semikolon
stehen. Damit klappt die Ersetzung besser.
This commit is contained in:
qbi 2024-02-05 18:28:42 +01:00
parent d15355b689
commit ef70318e30
2 changed files with 11 additions and 9 deletions

View file

@ -1,11 +1,11 @@
# file: rechnung.ini
#
# Bei adresse1 muss am Ende ein Semikolon (;) stehen. Dies sorgt dafür, dass im
# Bei adresse1 müssen an jedem Zeilenumbruch zwei Semikola (;;;;) stehen. Dies sorgt dafür, dass im
# LaTeX-Code dies durch zwei Backslashes ersetzt wird.
[start]
kunde=Firma A
adresse= Strasse A; 012345 Stadt A;
adresse= Strasse A;; 012345 Stadt A;;
anrede=Sehr geehrte Damen und Herren,
einleitung=anbei die Rechnung
anzahl=1
@ -17,7 +17,7 @@ lfdnr=1
[start]
kunde=Firma B
adresse=Personalabteilung; Frau B; Strasse B; 01234 Stadt B;
adresse=Personalabteilung;; Frau B;; Strasse B;; 01234 Stadt B;;
anrede=Sehr geehrte Frau B,
einleitung=Wie in Vertrag 08/15 vereibart berechne ich
anzahl=11
@ -29,7 +29,7 @@ lfdnr=1
[start]
kunde=Herr C
adresse=Strasse C; 12345 Stadt C;
adresse=Strasse C;; 12345 Stadt C;;
anrede=Sehr geehrter Herr C,
einleitung=anbei die Rechnung
anzahl=1

View file

@ -460,27 +460,29 @@ make_invoice() (
dead_days="16"
fi
# Bei der Ersetzung unten wird jedes ';' durch genau ein '\' ersetzt. Daher ist die Anzahl der ';' wichtig.
month_ascii=$(date '+%B')
inv_date=$(date '+%Y%m%d')
inv_dead=$(date -d "+${dead_days}days" '+%d.\\,%m.\\,%Y')
inv_dead=$(date -d "+${dead_days}days" '+%d.;,%m.;,%Y')
rechnungsnummer="$inv_date--$LFDNR"
subject="Rechnung zu $SHORT"
filename="$(date '+%Y%m%d')_Rechnung_${month_ascii}_$(echo "$KUNDE" | $TR_BIN " " "_").ltx"
buffer="$KUNDE; $ADRESSE"
anschrift="${buffer//;/\\\\\\\\}"
buffer="$KUNDE;; $ADRESSE"
#anschrift=$(echo "$buffer" | sed 's/;/\\\\/g')
print_info "Erstelle Rechnung: $filename"
{
printf "s!#LCOFILE#!%s!\n" "$LCO"
printf "s!#SUBJECT#!%s!\n" "$subject"
printf "s!#ANREDE#!%s!\n" "$ANREDE"
printf "s!#ANSCHRIFT#!%s!\n" "$anschrift"
printf "s!#ANSCHRIFT#!%s!\n" "$(echo "$buffer" | sed 's/;/\\\\/g')"
printf "s!#RECHNUNGSNUMMER#!%s!\n" "$rechnungsnummer"
printf "s!#ANZAHL#!%s!\n" "$ANZAHL"
printf "s!#POSITION#!%s!\n" "$POSITION"
printf "s!#EINLEITUNG#!%s!\n" "$EINLEITUNG"
printf "s!#BETRAG#!%s!\n" "$BETRAG"
printf "s!#DEADLINE#!%s!\n" "$inv_dead"
printf "s!#DEADLINE#!%s!\n" "$(echo "$inv_dead" | sed 's/;/\\\\/g')"
} >$SEDFILE
cp "$TEMPLATEFILE" "$filename"
$SED_BIN -i -f "$SEDFILE" "$filename"