Bug#16415: Patch to fix this bug
This patch works with the smalleiffel package, which had been falling over
this bug.
------- Forwarded Message
Date: Mon, 11 Jan 1999 20:07:46 -0500
From: Ben Collins <bmc@visi.net>
To: Oliver Elphick <olly@lfix.co.uk>
cc: debian-devel@lists.debian.org
Subject: Re: Perl expert wanted to solve dpkg-source bug#16415, please
- --Y7xTucakfITjPcLV
Content-Type: multipart/mixed; boundary="ibTvN161/egqYuK8"
- --ibTvN161/egqYuK8
Content-Type: text/plain; charset=us-ascii
On Mon, Jan 11, 1999 at 10:57:40PM +0000, Oliver Elphick wrote:
> I need a solution to this dpkg-source bug, because it is preventing
> one of my packages from being extracted.
Damnit, scratch the last patch. It works but doesn't take errors into
account as well as it should. This is the "better" one. :)
sorry for not testing it as much as i should have.
- --
- ----- -- - -------- --------- ---- ------- ----- - - --- --------
Ben Collins <b.m.collins@larc.nasa.gov> Debian GNU/Linux
UnixGroup Admin - Jordan Systems Inc. bcollins@debian.org
- ------ -- ----- - - ------- ------- -- The Choice of the GNU Generation
- --ibTvN161/egqYuK8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="dpkg-source.diff"
- --- /usr/bin/dpkg-source Sun Nov 1 12:50:44 1998
+++ dpkg-source Mon Jan 11 20:03:25 1999
@@ -511,7 +511,31 @@
$/="\n";
while (<GZIP>) {
s/\n$// || &error("diff is missing trailing newline");
- - if (/^--- /) {
+ if (/^\@\@ .* \@\@$/) {
+ @patch_args = split(' ', $_);
+ ($dump, $after_lines) = split(',', $patch_args[2]);
+ if ($after_lines eq "") { $after_lines = $dump; }
+ ($dump, $before_lines) = split(',', $patch_args[1]);
+ $count_before = 0;
+ $count_after = 0;
+ while ($after_lines > $count_after || $before_lines > $count_be
fore) {
+ $_= <GZIP>; s/\n$// ||
+ &error("diff finishes in middle of file patch (line $.)
");
+ if (/^\+/) {
+ $count_after++;
+ } elsif (/^-/) {
+ $count_before++;
+ } elsif (/^ /) {
+ $count_after++;
+ $count_before++;
+ } elsif (/^@/) {
+ &error("premature finish to file patch (line $.)");
+ } elsif (/^\\ No newline at end of file$/) {
+ } else {
+ &error ("diff contains unknown line \`$_'");
+ }
+ }
+ } elsif (/^--- /) {
$fn= $';
substr($fn,0,length($expectprefix)+1) eq "$expectprefix/" ||
&error("diff patches file ($fn) not in expected subdirecto
ry");
@@ -529,9 +553,8 @@
&error("line after --- for file $fn isn't as expected");
$filepatched{$fn}++ && &error("diff patches file $fn twice");
} elsif (/^\\ No newline at end of file$/) {
- - } elsif (/^[-+ \@]/) {
} else {
- - &error ("diff contains unknown line \`$_'");
+ &error ("diff contains unknown line \`$_' (line $.)");
}
}
close(GZIP);
- --ibTvN161/egqYuK8--
- --Y7xTucakfITjPcLV
Content-Type: application/pgp-signature
- -----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
iQCVAwUBNpqgYio9WkFm9rsJAQGhJQP/VYr4gTWMJvTfG7LXTN2vJcuCeYZVuDpe
XvpVJHU5uvzqmKbPA8N4Ov1DF9zWRpKfGgyVLfacYslkJgSGoNU5NLpw6n2ZmP5L
HsAnRwKMPchdfOeNbHMJKw4PiVUJtL/kA1PdYy6sDDFgWw+iGATtXsdgRDoB1GWl
L4MvnNYUmxI=
=1Ltw
- -----END PGP SIGNATURE-----
- --Y7xTucakfITjPcLV--
- --
To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
------- End of Forwarded Message
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver
PGP key from public servers; key ID 32B8FAA1
========================================
"For the LORD is good; his mercy is everlasting; and
his truth endureth to all generations."
Psalms 100:5
Reply to: