Johannes Sixt <j6t@xxxxxxxx> writes: > 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). As you said later in the thread, perl lets you be loose and say $ENV{PATCHTMP} without quoting the string "PATCHTMP", so it is not quite _broken_ per-se, but the above gives a false impression to readers that the author meant to feed perl open FILE, $ENV{'PATCHTMP'}; which is not happening, so at least it is misleading. > Am I correct that you intend to treat continuation lines with this > non-trivial perl script? As the above regexp seems to try to match Cc: marco, git, j6t, other recipient I think that indeed is the intent. > 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" I think that is much more readable. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html