Subject: Re: [PATCH v4] Thunderbird: fix appp.sh format problems

From: Marco Stornelli <[email-masked]>
Date: Sat, 01 Sep 2012 09:43:16 +0200

Il 31/08/2012 23:35, Johannes Sixt ha scritto:
> 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).

I don't understand what you mean, I'm using this script and it works 
perfectly.

>
> 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:

The perl script is used to have To: and Cc: email addresses in single 
line, without using \n. I tried with sed, but it's a little bit 
difficult (at least for me) because sed usually works on a single line, 
it's tricky with multilines.

>
> # 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
>
>