X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=utils.py;h=c537bf8f34df16b1492319b5dbf517e4136284f9;hb=33f1fc6121322c1ace0bdfec4aa55f23770af680;hp=59d5fe5018ddb5f188eefca76426eaae845ba45b;hpb=63d91e6f17acde90e48b639316b6ada7267fd759;p=dak.git diff --git a/utils.py b/utils.py index 59d5fe50..c537bf8f 100644 --- a/utils.py +++ b/utils.py @@ -1,8 +1,8 @@ #!/usr/bin/env python # Utility functions -# Copyright (C) 2000, 2001, 2002, 2003 James Troup -# $Id: utils.py,v 1.59 2003-09-24 00:13:43 troup Exp $ +# Copyright (C) 2000, 2001, 2002, 2003, 2004 James Troup +# $Id: utils.py,v 1.64 2004-03-11 00:20:51 troup Exp $ ################################################################################ @@ -45,7 +45,7 @@ re_parse_maintainer = re.compile(r"^\s*(\S.*\S)\s*\<([^\> \t]+)\>"); changes_parse_error_exc = "Can't parse line in .changes file"; invalid_dsc_format_exc = "Invalid .dsc file"; nk_format_exc = "Unknown Format: in .changes file"; -no_files_exc = "No Files: field in .dsc file."; +no_files_exc = "No Files: field in .dsc or .changes file."; cant_open_exc = "Can't read file."; unknown_hostname_exc = "Unknown hostname"; cant_overwrite_exc = "Permission denied; can't overwrite existent file." @@ -93,7 +93,7 @@ def extract_component_from_section(section): if section.find('/') != -1: component = section.split('/')[0]; - if component.lower() == "non-us" and section.count('/') > 0: + if component.lower() == "non-us" and section.find('/') != -1: s = component + '/' + section.split('/')[1]; if Cnf.has_key("Component::%s" % s): # Avoid e.g. non-US/libs component = s; @@ -155,16 +155,16 @@ def parse_changes(filename, dsc_whitespace_rules=0): inside_signature = 0; - indices = indexed_lines.keys() + num_of_lines = len(indexed_lines.keys()); index = 0; first = -1; - while index < max(indices): + while index < num_of_lines: index += 1; line = indexed_lines[index]; if line == "": if dsc_whitespace_rules: index += 1; - if index > max(indices): + if index > num_of_lines: raise invalid_dsc_format_exc, index; line = indexed_lines[index]; if not line.startswith("-----BEGIN PGP SIGNATURE"): @@ -176,12 +176,15 @@ def parse_changes(filename, dsc_whitespace_rules=0): if line.startswith("-----BEGIN PGP SIGNATURE"): break; if line.startswith("-----BEGIN PGP SIGNED MESSAGE"): + inside_signature = 1; if dsc_whitespace_rules: - inside_signature = 1; - while index < max(indices) and line != "": + while index < num_of_lines and line != "": index += 1; line = indexed_lines[index]; continue; + # If we're not inside the signed data, don't process anything + if not inside_signature: + continue; slf = re_single_line_field.match(line); if slf: field = slf.groups()[0].lower(); @@ -271,7 +274,7 @@ def fix_maintainer (maintainer): rfc822 = maintainer; name = ""; email = ""; - if m != None and len(m.groups()) == 2: + if m and len(m.groups()) == 2: name = m.group(1); email = m.group(2); if name.find(',') != -1 or name.find('.') != -1: