Re: [PATCH v4] Thunderbird: fix appp.sh format problems
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Aug 31, 2012, 21:35 UTC
- Message-ID
- <50412E2D.7070503@kdbg.org>
- In-Reply-To
- <5040C59A.6090303@gmail.com>
Am 31.08.2012 16:09, schrieb Marco Stornelli:
> +CCS=`perl -e 'local $/=undef; open FILE, $ENV{'PATCHTMP'}; $text=<FILE>;
> +close FILE; $addr = $1 if $text =~ /Cc: (.*?(,\n .*?)*)\n/s; $addr =~ s/\n//g;
> +print $addr;'`The quoting is broken in this line (sq within sq does not work).
Am I correct that you intend to treat continuation lines with this non-trivial perl script? All this processing gets tedious and unreadable. Let me suggest this pattern instead:
# translate to Thunderbird language LANG_TO="To:" LANG_SUBJ="Subject:" LANG_CC="Cc:"
LF= # terminates the _previous_ line
while read -r line
do
case $line in
'To: '*)
printf "${LF}%s" "$LANG_TO ${line#To: }"
;;
'Cc: '*) ...similar...
'Subject: '*) ...similar...
' '*) # continuation line
printf "%s" "$line"
;;
'')
print "${LF}\n"
cat
;;
esac
LF='\n'
done <"$PATCH" >"$1"Instead of printing right away, you can also accumulate the data in variables and print them right before the 'cat'. I would do that only if a particular order of To:, Cc:, and Subject: is required in the output.
(I don't know how the "do not delete this line" line fits in the picture, but I'm sure you can figure it out.)
-- Hannes