@@ -128,6 +128,35 @@ func (s *ControlFileSuite) TestReadWriteStanza(c *C) {
128128 c .Assert (strings .HasPrefix (str , "Package: " ), Equals , true )
129129}
130130
131+ // Sources may contain "Package-List: " with a trailing space.
132+ // That trailing space must not be preserved and re-emitted
133+ // as a spurious blank continuation line when the stanza is written back out.
134+ func (s * ControlFileSuite ) TestPackageListTrailingSpace (c * C ) {
135+ input := "Package-List: \n " +
136+ " bash deb shells required arch=any\n " +
137+ " bash-doc deb doc optional arch=all\n "
138+
139+ r := NewControlFileReader (bytes .NewBufferString (input ), false , false )
140+ stanza , err := r .ReadStanza ()
141+ c .Assert (err , IsNil )
142+
143+ c .Check (stanza ["Package-List" ], Equals ,
144+ " bash deb shells required arch=any\n " +
145+ " bash-doc deb doc optional arch=all\n " )
146+
147+ buf := & bytes.Buffer {}
148+ w := bufio .NewWriter (buf )
149+ err = stanza .Copy ().WriteTo (w , true , false , false )
150+ c .Assert (err , IsNil )
151+ c .Assert (w .Flush (), IsNil )
152+
153+ written := buf .String ()
154+ c .Assert (strings .Contains (written , "Package-List:\n \n " ), Equals , false ,
155+ Commentf ("spurious blank continuation line found in written output:\n %s" , written ))
156+ c .Assert (strings .Contains (written , "Package-List:\n bash" ), Equals , true ,
157+ Commentf ("expected Package-List entries not found in written output:\n %s" , written ))
158+ }
159+
131160func (s * ControlFileSuite ) TestReadWriteInstallerStanza (c * C ) {
132161 s .reader = bytes .NewBufferString (installerFile )
133162 r := NewControlFileReader (s .reader , false , true )
0 commit comments