@@ -4096,31 +4096,17 @@ def SeekToEndOfFile(fp):
40964096 lasttell = fp .tell ()
40974097 return True
40984098
4099- def ReadFileHeaderData (fp , skipchecksum = False , formatspecs = None , saltkey = None ):
4100- if (formatspecs is None ):
4101- formatspecs = __file_format_multi_dict__
4102- filespec = None
4103- delimiter = None
4104- for key , value in formatspecs .items ():
4105- oldseek = fp .tell ()
4106- filetype = fp .read (value ['format_len' ])
4107- formatver = str (int (value ['format_ver' ]))
4108- filever = fp .read (len (formatver )).decode ("UTF-8" )
4109- if (filetype .hex ()== value ['format_hex' ] and formatver == filever ):
4110- filespec = formatspecs [key ]
4111- delimiter = filespec ['format_delimiter' ]
4112- filetypefull = filetype .decode ("UTF-8" )+ filever
4113- break
4114- fp .seek (oldseek , 1 )
4115- if (filespec is None or delimiter is None ):
4116- return False
4117- fp .seek (len (delimiter ), 1 )
4118- outlist = ReadFileHeaderDataBySize (fp , delimiter )
4119- outlist .insert (0 , filetypefull )
4120- if (not ValidateHeaderChecksum (outlist [:- 1 ], outlist [- 2 ], outlist [- 1 ], filespec , saltkey ) and not skipchecksum ):
4099+ def ReadFileHeaderData (fp , rounds = 0 , delimiter = _default_delim (None )):
4100+ """Read `rounds` delimited header fields. Returns a list[str]."""
4101+ if not hasattr (fp , "read" ):
41214102 return False
4122- fp .seek (len (delimiter ), 1 )
4123- return outlist
4103+ rounds = int (rounds )
4104+ if rounds <= 0 :
4105+ return []
4106+ out = []
4107+ for _ in range (rounds ):
4108+ out .append (read_until_delimiter (fp , delimiter , decode = True , errors = "strict" ))
4109+ return out
41244110
41254111def ReadFileHeaderDataWithContent (fp , listonly = False , contentasfile = False , uncompress = True , skipchecksum = False , formatspecs = __file_format_dict__ , saltkey = None ):
41264112 if (not hasattr (fp , "read" )):
0 commit comments