From c2ee90f92ab6c915db774403414b2ea70c967c3e Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Fri, 23 May 2014 15:49:01 +0200 Subject: Dpkg::Control::HashCore: Do not emit trailing space on field empty first line This spurious space is unnecessary and takes a non-insignificant amount of disk space on archive index files for example. Update dpkg-dev Breaks on devscripts to version << 2.14.4, as previous versions of debchange expect a trailing space from dpkg-parsechangelog output. Closes: #749044 Based-on-patch-by: Johannes Schauer --- scripts/Dpkg/Control/HashCore.pm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'scripts/Dpkg/Control/HashCore.pm') diff --git a/scripts/Dpkg/Control/HashCore.pm b/scripts/Dpkg/Control/HashCore.pm index af41c7e90..05c168978 100644 --- a/scripts/Dpkg/Control/HashCore.pm +++ b/scripts/Dpkg/Control/HashCore.pm @@ -349,22 +349,25 @@ sub output { # Skip whitespace-only fields next if $$self->{drop_empty} and $value !~ m/\S/; # Escape data to follow control file syntax - my @lines = split(/\n/, $value); - $value = (scalar @lines) ? shift @lines : ''; + my ($first_line, @lines) = split /\n/, $value; + + my $kv = "$key:"; + $kv .= ' ' . $first_line if $first_line; + $kv .= "\n"; foreach (@lines) { s/\s+$//; if (/^$/ or /^\.+$/) { - $value .= "\n .$_"; + $kv .= " .$_\n"; } else { - $value .= "\n $_"; + $kv .= " $_\n"; } } # Print it out if ($fh) { - print { $fh } "$key: $value\n" + print { $fh } $kv or syserr(_g('write error on control data')); } - $str .= "$key: $value\n" if defined wantarray; + $str .= $kv if defined wantarray; } } return $str; -- cgit v1.2.3