mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
![Dan McGee](/assets/img/avatar_default.png)
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";
|
|
}
|
|
}
|