threads / patch / 9754

patchgitweb: Fix file name quoting in simplified out patch detection for --cc output

Subject: [PATCH] gitweb: Fix file name quoting in simplified out patch detection for --cc output

## tl;dr

3 messages between Sep 2, 2007 and Sep 3, 2007. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Jakub Narebski· Sep 2, 2007, 20:22 UTC · lore

For the --cc (compressed combined) diff output there can be patches which are simple and got simplified out, so there is no patch corresponding to raw output line.

Fix detection of of such simplified out patches: file name in git diff header for --cc diff can be quoted; unquote it.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
This patch depends _textually_ on the just send
  "gitweb: Fix and simplify "split patch" detection"
patch, although it is _conceptually_ independent.
The commit message could be better...
 gitweb/gitweb.perl |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to gitweb/gitweb.perl +2 −2
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 8c1e02c..5d424e5 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -3140,8 +3140,8 @@ sub git_patchset_body {
 			# compact combined diff output can have some patches skipped
 			# find which patch (using pathname of result) we are at now
 			my $to_name;
-			if ($patch_line =~ m!^diff --cc "?(.*)"?$!) {
-				$to_name = $1;
+			if ($patch_line =~ m!^diff --cc ("?.*"?)$!) {
+				$to_name = unquote($1);
 			}
 
 			do {
-- 
1.5.2.5
Junio C Hamano· Sep 3, 2007, 00:22 UTC · re: Jakub Narebski · lore

Re: [PATCH] gitweb: Fix file name quoting in simplified out patch detection for --cc output

Jakub Narebski <jnareb@gmail.com> writes:
Show 13 quoted lines
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 8c1e02c..5d424e5 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -3140,8 +3140,8 @@ sub git_patchset_body {
>  			# compact combined diff output can have some patches skipped
>  			# find which patch (using pathname of result) we are at now
>  			my $to_name;
> -			if ($patch_line =~ m!^diff --cc "?(.*)"?$!) {
> -				$to_name = $1;
> +			if ($patch_line =~ m!^diff --cc ("?.*"?)$!) {
> +				$to_name = unquote($1);
>  			}

This patch obviously makes sense, but I wonder why you use the form m!foobar! here, instead of far simpler to read /foobar/ form?

Jakub Narebski· Sep 3, 2007, 09:52 UTC · re: Junio C Hamano · lore

Re: [PATCH] gitweb: Fix file name quoting in simplified out patch detection for --cc output

Junio C Hamano wrote:
Show 19 quoted lines
> Jakub Narebski <jnareb@gmail.com> writes:
> 
> > diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> > index 8c1e02c..5d424e5 100755
> > --- a/gitweb/gitweb.perl
> > +++ b/gitweb/gitweb.perl
> > @@ -3140,8 +3140,8 @@ sub git_patchset_body {
> >  			# compact combined diff output can have some patches skipped
> >  			# find which patch (using pathname of result) we are at now
> >  			my $to_name;
> > -			if ($patch_line =~ m!^diff --cc "?(.*)"?$!) {
> > -				$to_name = $1;
> > +			if ($patch_line =~ m!^diff --cc ("?.*"?)$!) {
> > +				$to_name = unquote($1);
> >  			}
> 
> This patch obviously makes sense, but I wonder why you use the
> form m!foobar! here, instead of far simpler to read /foobar/
> form?

Consistency (kind of). For the ordinary diff output I use m!regexp! instead of simpler /regexp/ to avoid 'leaning toothpicks' syndrome:

  m!^diff --git "?a/.*"? "?b/.*"?!
But as it is now not near, then I guess /regexp/ would be better...
-- 
Jakub Narebski
Poland

← back to recent threads