Hi Frank, Hi Rafael,
Frank Lichtenheld schrieb am Mon 21. Apr, 01:47 (+0200):
> On Mon, Apr 21, 2008 at 12:32:01AM +0200, Rafael Laboissiere wrote:
> > * Frank Lichtenheld <djpig@debian.org> [2008-04-21 00:02]:
> >
> > > On Sun, Apr 20, 2008 at 03:19:32PM +0200, Rafael Laboissiere wrote:
> > > > C-style comments in dpatch's patches/00list files are allowed (see, e.g.
> > > > "man dpatch" for an example). However, lintian wrongly complains with
> > > > dpatch-index-references-non-existant-patch for lines containing
> > > > "/* comment */".
> > >
> > > To be exact everything is allowed that gets transformed by cpp into a
> > > valid list file. So we can either run it through cpp ourself (but
> > > with which architecture defines?) or define a subset of features we
> > > will accept.
> >
> > What about using "dpatch list-all"?
>
> If you take a look at the code you will see that this is just a very big
> cpp wrapper ;) The problem that the outcome of the test would depend on
> the architecture you run lintian on remains.
What do you think about this patch? It simply removes all C and C++
comments.
#v+
--- /usr/share/lintian/checks/patch-systems 2008-03-03 22:49:47.000000000 +0100
+++ /tmp/lintian/checks/patch-systems 2008-05-18 18:45:35.305553295 +0200
@@ -58,11 +58,27 @@
if (! -r "debfiles/patches/00list") {
tag "dpatch-build-dep-but-no-patch-list", $pkg;
} else {
+ my $list_uses_cpp = 0;
+ if (open(OPTS, '<', "debfiles/patches/00options")) {
+ while(<OPTS>) {
+ if (/DPATCH_OPTION_CPP=1/) {
+ $list_uses_cpp = 1;
+ last;
+ }
+ }
+ close(OPTS);
+ }
if (open(IN, '<', "debfiles/patches/00list")) {
my @patches;
while(<IN>) {
chomp;
- next if (/^\#/); #ignore comments
+ next if (/^\#/); #ignore comments or CPP directive
+ s/\/\/.*// if ($list_uses_cpp); # remove C++ style comments
+ if ($list_uses_cpp && /\/\*/) {
+ # remove C style comments
+ $_ .= <IN> while($_ !~ /\*\//);
+ s/\/\*[^*]*\*\///;
+ }
next if (/^\s*$/); #ignore blank lines
push @patches, split(' ', $_);
}
#v-
Bye, Jörg.
--
Die NASA brauchte 12 Jahre um einen Kugelschreiber zu entwickeln, der
kopfüber, in der Schwerelosigkeit und unter Wasser schreiben kann.
Die Russen benutzten einfach einen Bleistift …
Attachment:
signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP