]> granicus.if.org Git - python/commitdiff
Search for a valid begin line instead of requiring the first line.
authorGuido van Rossum <guido@python.org>
Tue, 8 Apr 1997 19:46:02 +0000 (19:46 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 8 Apr 1997 19:46:02 +0000 (19:46 +0000)
Lib/uu.py

index 56448031762962b23b17b0747537ea648c6cd93d..a9e1c5b8635756e844a82f2682883843eee718ed 100755 (executable)
--- a/Lib/uu.py
+++ b/Lib/uu.py
@@ -85,18 +85,25 @@ def decode(in_file, out_file=None, mode=None):
     elif type(in_file) == type(''):
        in_file = open(in_file)
     #
-    # Read the header line, and fill in optional args if needed
-    #
-    hdr = in_file.readline()
-    if not hdr:
-       raise Error, 'Empty input file'
-    hdrfields = string.split(hdr)
-    if len(hdrfields) <> 3 or hdrfields[0] <> 'begin':
-       raise Error, ('Incorrect uu header line', hdr)
+    # Read until a begin is encountered or we've exhausted the file
+    #
+    while (1):
+       hdr = in_file.readline()
+       if not hdr:
+           raise Error, 'No valid begin line found in input file'
+       if hdr[:5] != 'begin':
+           continue
+       hdrfields = string.split(hdr)
+       if len(hdrfields) == 3 and hdrfields[0] == 'begin':
+           try:
+               string.atoi(hdrfields[1], 8)
+               break
+           except ValueError:
+               pass
     if out_file == None:
        out_file = hdrfields[2]
     if mode == None:
-       mode = string.atoi(hdrfields[1])
+       mode = string.atoi(hdrfields[1], 8)
     #
     # Open the output file
     #