@@ -1325,21 +1325,14 @@ def AppendNullBytes(indata=None, delimiter=None):
13251325def system_and_major ():
13261326 info = platform .uname ()
13271327
1328- # Python 3: info is a namedtuple with .system / .release
1329- # Python 2: info is a plain tuple (system, node, release, version, machine, processor)
1330- try :
1331- system = info .system
1332- release = info .release
1333- except AttributeError :
1334- # Fallback for Python 2
1335- system = info [0 ]
1336- release = info [2 ]
1328+ system = info .system
1329+ release = info .release
13371330
13381331 # Find the first run of digits in the release string
1339- m = re .search (r' \d+' , release )
1332+ m = re .search (r" \d+" , release )
13401333 if m :
1341- major = m .group (0 ) # e.g. '11' or '6'
1342- return u"%s%s" % ( system , major ) # unicode-safe in Py2
1334+ major = m .group (0 )
1335+ return f" { system } { major } "
13431336 else :
13441337 return system
13451338
@@ -10042,6 +10035,21 @@ def BSDTarFileListFiles(infile, formatspecs=__file_format_multi_dict__, verbose=
1004210035 else :
1004310036 ffullmode = member .mode | stat .S_IFREG
1004410037 ftype = 0
10038+ fsize = 0
10039+ zero_length_types = {1 , 2 , 3 , 4 , 5 , 6 , 8 , 9 , 10 , 11 , 13 }
10040+ if ftype in zero_length_types :
10041+ fsize = 0
10042+ else :
10043+ if (member .size is None ):
10044+ fcontents = MkTempFile ()
10045+ if (hasattr (member , "get_blocks" )):
10046+ for block in member .get_blocks ():
10047+ fcontents .write (block )
10048+ elif (hasattr (member , "read" )):
10049+ fcontents .write (member .read ())
10050+ fsize = fcontents .tell ()
10051+ else :
10052+ fsize = member .size
1004510053 if (not verbose ):
1004610054 VerbosePrintOut (member .pathname )
1004710055 elif (verbose ):
@@ -10069,7 +10077,7 @@ def BSDTarFileListFiles(infile, formatspecs=__file_format_multi_dict__, verbose=
1006910077 else :
1007010078 fgprint = "0"
1007110079 VerbosePrintOut (PrintPermissionString (ffullmode , ftype ) + "\t " + str (fuprint ) + "/" + str (fgprint ) + "\t " + str (
10072- member . size ).rjust (15 ) + "\t " + datetime .datetime .fromtimestamp (member .mtime ).strftime ('%Y-%m-%d %H:%M' ) + "\t " + printfname )
10080+ fsize ).rjust (15 ) + "\t " + datetime .datetime .fromtimestamp (member .mtime ).strftime ('%Y-%m-%d %H:%M' ) + "\t " + printfname )
1007310081 lcfi = lcfi + 1
1007410082 if (returnfp ):
1007510083 return listarrayfiles ['fp' ]
0 commit comments