Blame view

buildroot/buildroot-2016.08.1/package/libldns/0003-let-doxyparse-output-manpage-generation-issues.patch 3.12 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
  From d8a3da12be085fbc92e3d4d4d084c328fc37485a Mon Sep 17 00:00:00 2001
  From: Willem Toorop <willem@nlnetlabs.nl>
  Date: Thu, 27 Nov 2014 16:21:54 +0100
  Subject: [PATCH] let doxyparse output manpage generation issues
  
  [Backport from upstream commit
  168ee09a4bf184947798c3ee3ac99b6651470d64, fixes the build with Perl
  5.22.]
  Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
  ---
   doc/doxyparse.pl | 45 ++++++++++++++++++++++++++++++++++++++-------
   1 file changed, 38 insertions(+), 7 deletions(-)
  
  diff --git a/doc/doxyparse.pl b/doc/doxyparse.pl
  index 96a1732..a09b2e8 100755
  --- a/doc/doxyparse.pl
  +++ b/doc/doxyparse.pl
  @@ -57,10 +57,15 @@ This manpage was automaticly generated from the ldns source code by
   use of Doxygen and some perl.
   ";
   
  -getopts("m:",\%options);
  +getopts("em:",\%options);
   # if -m manpage file is given process that file
   # parse the file which tells us what manpages go together
   my $functions, $see_also;
  +my $i = -1;
  +my $report_errors = defined $options{'e'};
  +my $errors = 0;
  +my %unique;
  +
   if (defined $options{'m'}) {
   	# process
   	open(MAN, "<$options{'m'}") or die "Cannot open $options{'m'}";
  @@ -68,18 +73,35 @@ if (defined $options{'m'}) {
   		# func1, func2, .. | see_also1, see_also2, ...
   		while(<MAN>) {
   			chomp;
  +			$i += 1;
   			if (/^#/) { next; }
   			if (/^$/) { next; }
  -			($functions, $see_also) = split /[\t ]*\|[\t ]*/, $_;
  -			#print "{$functions}
  ";
  -			#print "{$see_also}
  ";
  +			my @parts = split /[\t ]*\|[\t ]*/, $_;
  +			$functions = shift @parts;
  +			$see_also = join ', ', @parts;
  +			print "{$functions}
  ";
  +			print "{$see_also}
  ";
   			my @funcs = split /[\t ]*,[\t ]*/, $functions;
   			my @also = split /[\t ]*,[\t ]*/, $see_also;
   			$manpages{$funcs[0]} = \@funcs;
   			$see_also{$funcs[0]} = \@also;
  +			foreach (@funcs) {
  +				if ($unique{$_}) {
  +					push $unique{$_}, ($i,);
  +				} else {
  +					$unique{$_} = [$i];
  +				}
  +			}
   			#print "[", $funcs[0], "]
  ";
   		}
   	close(MAN);
  +	while (($func, $lines) = each %unique ) {
  +		if (scalar @$lines > 1) {
  +			print STDERR "$func in function_manpages on lines: "
  +			    . join(", ",@$lines) . "
  " if $report_errors;
  +			$errors += 1;
  +		}
  +	}
   } else {
   	print "Need -m file to process the .h files
  ";
   	exit 1;
  @@ -95,7 +117,7 @@ mkdir "doc/man";
   mkdir "doc/man/man$MAN_SECTION";
   
   $state = 0;
  -my $i;
  +$i = 0;
   my @lines = <STDIN>;
   my $max = @lines;
   
  @@ -273,7 +295,7 @@ foreach (keys %manpages) {
   
   	print MAN $MAN_MIDDLE;
   
  -	if (defined(@$also)) {
  +	if (@$also) {
   		print MAN "
  .SH SEE ALSO
  \\fI";
   		print MAN join "\\fR, \\fI", @$also;
   		print MAN "\\fR.
  And ";
  @@ -290,7 +312,7 @@ foreach (keys %manpages) {
   	# create symlinks
   	chdir("$BASE/man$MAN_SECTION");
   	foreach (@$name) {
  -		print STDERR $_,"
  ";
  +		print STDOUT $_,"
  ";
   		my $new_file = $_ . "." . $MAN_SECTION;
   		if ($new_file eq $symlink_file) {
   			next;
  @@ -301,3 +323,12 @@ foreach (keys %manpages) {
   	chdir("../../.."); # and back, tricky and fragile...
   	close(MAN);
   }
  +foreach (keys %api) {
  +	next if (/ / || /^$/);
  +	if (not $unique{$_}) {
  +		print STDERR "no man page for $_
  " if $report_errors;
  +		$errors += 1;
  +	}
  +}
  +
  +exit ($report_errors and $errors != 0);
  -- 
  2.6.4