Hi! On Sat, 2020-03-14 at 21:49:12 +0000, Daniel Shahaf wrote: > Sean Whitton wrote on Sat, 14 Mar 2020 20:39 +00:00: > > On Sat 14 Mar 2020 at 08:09PM +00, Daniel Shahaf wrote: > > > Daniel Shahaf wrote on Sat, 14 Mar 2020 18:14 +00:00: > > >> - :: > > >> - > > >> - /closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/i > > >> - > > >> + All of the bug numbers listed must be given on the same physical line > > >> + as the word ``closes:``. > > > > > > Is this newly-added sentence correct? > > > > > > Whether it correctly states the semantics of the regexp depends on > > > whether the regexp is matched against the changelog entry as a single > > > multiline string or line-by-line. In the former case, the list of bug > > > numbers would be allowed to span multiple lines, but in the latter case > > > it wouldn't. > > > > > > Currently, the patch assumes all bug numbers should be on the same line, > > > but /usr/share/vim/vim81/syntax/debchangelog.vim allows bug numbers to > > > span multiple lines. I'm guessing the syntax file is right and the patch > > > should > > > be changed? > > > > In PCREs \s matches the newline character so I believe your text is > > incorrect. > > I agree that it is probably incorrect, but that doesn't follow from the > semantics of /\s/. Even if /\s/ matched any single byte/character, the > semantics would still depend on what haystack the regexp is matched > against: the entire changelog entry, or one line thereof at a time.
It is definitely incorrect. The canonical implementation is currently in libdpkg-perl's Dpkg::Changelog::Entry::Debian::find_closes(), where the entire changelog entry is passed as a single string, so something like this is perfectly fine: Closes: #12345, #67890, #55555 AFAIK, DAK only operates based on the Closes field in the .changes file. I'll clarify the regex also in the deb-changelog(5) man page. Thanks, Guillem