@@ -4089,31 +4089,17 @@ def SeekToEndOfFile(fp):
40894089 lasttell = fp .tell ()
40904090 return True
40914091
4092- def ReadFileHeaderData (fp , skipchecksum = False , formatspecs = None , saltkey = None ):
4093- if (formatspecs is None ):
4094- formatspecs = __file_format_multi_dict__
4095- filespec = None
4096- delimiter = None
4097- for key , value in formatspecs .items ():
4098- oldseek = fp .tell ()
4099- filetype = fp .read (value ['format_len' ])
4100- formatver = str (int (value ['format_ver' ]))
4101- filever = fp .read (len (formatver )).decode ("UTF-8" )
4102- if (filetype .hex ()== value ['format_hex' ] and formatver == filever ):
4103- filespec = formatspecs [key ]
4104- delimiter = filespec ['format_delimiter' ]
4105- filetypefull = filetype .decode ("UTF-8" )+ filever
4106- break
4107- fp .seek (oldseek , 1 )
4108- if (filespec is None or delimiter is None ):
4109- return False
4110- fp .seek (len (delimiter ), 1 )
4111- outlist = ReadFileHeaderDataBySize (fp , delimiter )
4112- outlist .insert (0 , filetypefull )
4113- if (not ValidateHeaderChecksum (outlist [:- 1 ], outlist [- 2 ], outlist [- 1 ], filespec , saltkey ) and not skipchecksum ):
4092+ def ReadFileHeaderData (fp , rounds = 0 , delimiter = _default_delim (None )):
4093+ """Read `rounds` delimited header fields. Returns a list[str]."""
4094+ if not hasattr (fp , "read" ):
41144095 return False
4115- fp .seek (len (delimiter ), 1 )
4116- return outlist
4096+ rounds = int (rounds )
4097+ if rounds <= 0 :
4098+ return []
4099+ out = []
4100+ for _ in range (rounds ):
4101+ out .append (read_until_delimiter (fp , delimiter , decode = True , errors = "strict" ))
4102+ return out
41174103
41184104def ReadFileHeaderDataWithContent (fp , listonly = False , contentasfile = False , uncompress = True , skipchecksum = False , formatspecs = __file_format_dict__ , saltkey = None ):
41194105 if (not hasattr (fp , "read" )):
0 commit comments