@@ -6687,45 +6687,49 @@ def AppendFilesWithContentFromBSDTarFileToList(infile, extradata=[], jsondata={}
66876687 fname = member .pathname
66886688 if (verbose ):
66896689 VerbosePrintOut (fname )
6690- fpremode = member .mode
6691- ffullmode = member .mode
6690+ if (hasattr (member , "mode" )):
6691+ fpremode = member .mode
6692+ ffullmode = member .mode
6693+ elif (hasattr (member , "perm" )):
6694+ fpremode = member .perm
6695+ ffullmode = member .perm
66926696 flinkcount = 0
66936697 fblksize = format (int (0 ), 'x' ).lower ()
66946698 fblocks = format (int (0 ), 'x' ).lower ()
66956699 fflags = format (int (0 ), 'x' ).lower ()
66966700 ftype = 0
66976701 if ((hasattr (member , "isreg" ) and member .isreg ) or member .isfile ):
6698- ffullmode = member . mode | stat .S_IFREG
6702+ ffullmode = ffullmode | stat .S_IFREG
66996703 ftype = 0
67006704 elif (member .islnk ):
6701- ffullmode = member . mode | stat .S_IFREG
6705+ ffullmode = ffullmode | stat .S_IFREG
67026706 ftype = 1
67036707 elif (member .issym ):
6704- ffullmode = member . mode | stat .S_IFLNK
6708+ ffullmode = ffullmode | stat .S_IFLNK
67056709 ftype = 2
67066710 elif (member .ischr ):
6707- ffullmode = member . mode | stat .S_IFCHR
6711+ ffullmode = ffullmode | stat .S_IFCHR
67086712 ftype = 3
67096713 elif (member .isblk ):
6710- ffullmode = member . mode | stat .S_IFBLK
6714+ ffullmode = ffullmode | stat .S_IFBLK
67116715 ftype = 4
67126716 elif (member .isdir ):
6713- ffullmode = member . mode | stat .S_IFDIR
6717+ ffullmode = ffullmode | stat .S_IFDIR
67146718 ftype = 5
67156719 elif (member .isfifo ):
6716- ffullmode = member . mode | stat .S_IFIFO
6720+ ffullmode = ffullmode | stat .S_IFIFO
67176721 ftype = 6
67186722 elif (hasattr (member , "issparse" ) and member .issparse ):
6719- ffullmode = member . mode | stat .S_IFREG
6723+ ffullmode = ffullmode | stat .S_IFREG
67206724 ftype = 12
67216725 elif (member .isdev ):
6722- ffullmode = member . mode
6726+ ffullmode = ffullmode
67236727 ftype = 14
67246728 elif (member .issock ):
6725- ffullmode = member . mode | stat .S_IFSOCK
6729+ ffullmode = ffullmode | stat .S_IFSOCK
67266730 ftype = 15
67276731 else :
6728- ffullmode = member . mode | stat .S_IFREG
6732+ ffullmode = ffullmode | stat .S_IFREG
67296733 ftype = 0
67306734 flinkname = ""
67316735 fcurfid = format (int (curfid ), 'x' ).lower ()
@@ -10011,8 +10015,12 @@ def BSDTarFileListFiles(infile, formatspecs=__file_format_multi_dict__, verbose=
1001110015 with open_archive_reader (infile ) as archive :
1001210016 for member in archive :
1001310017 returnval .update ({lcfi : member .pathname })
10014- fpremode = member .mode
10015- ffullmode = member .mode
10018+ if (hasattr (member , "mode" )):
10019+ fpremode = member .mode
10020+ ffullmode = member .mode
10021+ elif (hasattr (member , "perm" )):
10022+ fpremode = member .perm
10023+ ffullmode = member .perm
1001610024 flinkcount = 0
1001710025 ftype = 0
1001810026 if ((hasattr (member , "isreg" ) and member .isreg ) or member .isfile ):
0 commit comments