]> git.decadent.org.uk Git - dak.git/commitdiff
Correct regex for 822 value fields that begin with a colon character
authorChris Lamb <lamby@debian.org>
Sun, 9 Aug 2009 03:22:04 +0000 (04:22 +0100)
committerChris Lamb <lamby@debian.org>
Sun, 9 Aug 2009 03:22:04 +0000 (04:22 +0100)
Previously, we parsed "colon: :" => ("colon:", "") and "lol: :lol" =>
("lol:", "lol"). This commit changes these parses to ("colon", "") and
("lol", ":lol") respectfully.

Fields starting with colons can happen with values containing CVS
locations. eg:

  Vcs-Cvs: :ext:_anoncvs@anoncvs.mirbsd.org:/cvs contrib/hosted/tg/deb/makefs

(from /srv/ftp.debian.org/queue/new/makefs_20090808-1.dsc)

This is causing a traceback when examining this package as the regex to
strip the keys in read_changes_or_dsc(..) works differently to this one.

Signed-off-by: Chris Lamb <lamby@debian.org>
daklib/regexes.py

index 6fd0c81d0955ae4bbe8dc3f94aa9aab815891675..d1f0d38136afcc9616bcd82e3ab50106b4bfa861 100755 (executable)
@@ -44,7 +44,7 @@ re_isadeb = re.compile (r"(.+?)_(.+?)_(.+)\.u?deb$")
 
 re_issource = re.compile (r"(.+)_(.+?)\.(orig\.tar\.gz|diff\.gz|tar\.gz|dsc)$")
 
-re_single_line_field = re.compile(r"^(\S*)\s*:\s*(.*)")
+re_single_line_field = re.compile(r"^(\S*?)\s*:\s*(.*)")
 re_multi_line_field = re.compile(r"^\s(.*)")
 re_taint_free = re.compile(r"^[-+~/\.\w]+$")