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

Re: [PATCH] git send-email: edit recipient addresses with the --compose flag

From
FGFrancis Galiegue <fg@one2team.com>
Date
Nov 11, 2008, 20:53 UTC
Message-ID
<200811112153.31214.fg@one2team.com>
In-Reply-To
<alpine.LFD.2.00.0811111542230.24205@sys-0.hiltweb.site>
Le Tuesday 11 November 2008 21:47:55 Ian Hilt, vous avez écrit :
Show 33 quoted lines
> On Tue, 11 Nov 2008, Francis Galiegue wrote:
> > Le Tuesday 11 November 2008 02:49:19 Tait, vous avez écrit :
> > > > > > +	if ($c_file =~ /^To:\s*+(.+)\s*\nCc:/ism) {
> > > > >
> > > > > Greedy operators are only supported with perl 5.10 or more... I
> > > > > think it's a bad idea to use them...
> > > >
> > > > The problem here was that a space should follow the field, but it may
> > > > not.  The user may unwarily backup over it.  "\s*" would match this
> > > > case.
> > > >
> > > > But if there is a space, it is included in the "(.+)".
> > >
> > > Not in any version of Perl to which I have access.
> >
> > And if you see a space in (.+), your regex engine is buggy anyway.
>
> So what does this script produce on your systems?
>
>
> #!/usr/bin/perl -Tw
> --8<--
> use strict;
> my $ws = "To: \nCc:";
>
> $ws =~ /^To:\s*(.+)\s*\nCc:/ism;
>
> if ($1 eq ' ') {
> 	print "\$1 is equal to a space.\n";
> }
> -->8--
>
> On mine, it prints the message.  So it seems it is matching _a_ space.

Which is perfectly normal. The first \s* wanted spaces, it got them. But it left nothing for the capturing .+ behind. And any quantifier (except when it is possessive) _MUST_ backtrack in order for the full regex to complete. This is why the .+ captured the space: the first \s* was perfectly fine with no space at all, and the second, well, didn't find any space but it didn't care either.

-- 
Francis Galiegue
ONE2TEAM
Ingénieur système
Mob : +33 (0) 6 83 87 78 75
Tel : +33 (0) 1 78 94 55 52
fge@one2team.com
40 avenue Raymond Poincaré
75116 Paris
Previous: Ian HiltNext: Tait
Message 14 of 17 in “git send-email: edit recipient addresses with the --compose flag”
  1. git send-email: edit recipient addresses with the --compose flagIan Hilt, Nov 9, 2008
  2. Francis GaliegueNov 9, 2008
  3. Ian HiltNov 9, 2008
  4. Junio C HamanoNov 9, 2008
  5. Ian HiltNov 10, 2008
  6. Junio C HamanoNov 10, 2008
  7. Ian HiltNov 10, 2008
  8. Francis GaliegueNov 10, 2008
  9. Aristotle PagaltzisNov 10, 2008
  10. TaitNov 11, 2008
  11. Francis GaliegueNov 11, 2008
  12. Ian HiltNov 11, 2008
  13. Ian HiltNov 11, 2008
  14. Francis GaliegueNov 11, 2008
  15. TaitNov 11, 2008
  16. Francis GaliegueNov 10, 2008
  17. Francis GaliegueNov 10, 2008

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.