git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 2, 2012, 18:42 UTC
Message-ID
<7vzk58gno2.fsf@alter.siamese.dyndns.org>
In-Reply-To
<50412E2D.7070503@kdbg.org>
Johannes Sixt <j6t@kdbg.org> writes:
Show 6 quoted lines
> 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.
Show 27 quoted lines
> 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.
Previous: Marco Stornelli
Message 21 of 21 in “Thunderbird: fix appp.sh format problems”
  1. Thunderbird: fix appp.sh format problemsMarco Stornelli, Aug 31, 2012
  2. Junio C HamanoAug 31, 2012
  3. Marco StornelliSep 1, 2012
  4. Junio C HamanoSep 2, 2012
  5. Junio C HamanoAug 31, 2012
  6. Johannes SixtAug 31, 2012
  7. Marco StornelliSep 1, 2012
  8. Johannes SixtSep 1, 2012
  9. Marco StornelliSep 1, 2012
  10. Junio C HamanoSep 2, 2012
  11. Marco StornelliSep 3, 2012
  12. Marco StornelliSep 3, 2012
  13. Junio C HamanoSep 3, 2012
  14. Marco StornelliSep 4, 2012
  15. Junio C HamanoSep 4, 2012
  16. Marco StornelliSep 4, 2012
  17. Junio C HamanoSep 4, 2012
  18. Marco StornelliSep 4, 2012
  19. Junio C HamanoSep 4, 2012
  20. Marco StornelliSep 5, 2012
  21. Junio C HamanoSep 2, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.