 5162e69732
			
		
	
	5162e69732
	
	
	
		
			
			Between AsciiDoc 8.2.2 and 8.2.3, the following change was made to the stock Asciidoc configuration: @@ -149,7 +153,10 @@ # Inline macros. # Backslash prefix required for escape processing. # (?s) re flag for line spanning. -(?su)[\\]?(?P<name>\w(\w|-)*?):(?P<target>\S*?)(\[(?P<attrlist>.*?)\])= + +# Explicit so they can be nested. +(?su)[\\]?(?P<name>(http|https|ftp|file|mailto|callto|image|link)):(?P<target>\S*?)(\[(?P<attrlist>.*?)\])= + # Anchor: [[[id]]]. Bibliographic anchor. (?su)[\\]?\[\[\[(?P<attrlist>[\w][\w-]*?)\]\]\]=anchor3 # Anchor: [[id,xreflabel]] This default regex now matches explicit values, and unfortunately in this case gitlink was being matched by just 'link', causing the wrong inline macro template to be applied. By renaming the macro, we can avoid being matched by the wrong regex. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl -w
 | |
| 
 | |
| use File::Compare qw(compare);
 | |
| 
 | |
| sub format_one {
 | |
| 	my ($out, $nameattr) = @_;
 | |
| 	my ($name, $attr) = @$nameattr;
 | |
| 	my ($state, $description);
 | |
| 	$state = 0;
 | |
| 	open I, '<', "$name.txt" or die "No such file $name.txt";
 | |
| 	while (<I>) {
 | |
| 		if (/^NAME$/) {
 | |
| 			$state = 1;
 | |
| 			next;
 | |
| 		}
 | |
| 		if ($state == 1 && /^----$/) {
 | |
| 			$state = 2;
 | |
| 			next;
 | |
| 		}
 | |
| 		next if ($state != 2);
 | |
| 		chomp;
 | |
| 		$description = $_;
 | |
| 		last;
 | |
| 	}
 | |
| 	close I;
 | |
| 	if (!defined $description) {
 | |
| 		die "No description found in $name.txt";
 | |
| 	}
 | |
| 	if (my ($verify_name, $text) = ($description =~ /^($name) - (.*)/)) {
 | |
| 		print $out "linkgit:$name\[1\]::\n\t";
 | |
| 		if ($attr =~ / deprecated /) {
 | |
| 			print $out "(deprecated) ";
 | |
| 		}
 | |
| 		print $out "$text.\n\n";
 | |
| 	}
 | |
| 	else {
 | |
| 		die "Description does not match $name: $description";
 | |
| 	}
 | |
| }
 | |
| 
 | |
| my %cmds = ();
 | |
| for (sort <>) {
 | |
| 	next if /^#/;
 | |
| 
 | |
| 	chomp;
 | |
| 	my ($name, $cat, $attr) = /^(\S+)\s+(.*?)(?:\s+(.*))?$/;
 | |
| 	$attr = '' unless defined $attr;
 | |
| 	push @{$cmds{$cat}}, [$name, " $attr "];
 | |
| }
 | |
| 
 | |
| for my $cat (qw(ancillaryinterrogators
 | |
| 		ancillarymanipulators
 | |
| 		mainporcelain
 | |
| 		plumbinginterrogators
 | |
| 		plumbingmanipulators
 | |
| 		synchingrepositories
 | |
| 		foreignscminterface
 | |
| 		purehelpers
 | |
| 		synchelpers)) {
 | |
| 	my $out = "cmds-$cat.txt";
 | |
| 	open O, '>', "$out+" or die "Cannot open output file $out+";
 | |
| 	for (@{$cmds{$cat}}) {
 | |
| 		format_one(\*O, $_);
 | |
| 	}
 | |
| 	close O;
 | |
| 
 | |
| 	if (-f "$out" && compare("$out", "$out+") == 0) {
 | |
| 		unlink "$out+";
 | |
| 	}
 | |
| 	else {
 | |
| 		print STDERR "$out\n";
 | |
| 		rename "$out+", "$out";
 | |
| 	}
 | |
| }
 |