PyCatFile 0.14.12__tar.gz → 0.14.14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyCatFile
3
- Version: 0.14.12
3
+ Version: 0.14.14
4
4
  Summary: A tar like file format name catfile after unix cat command (concatenate files) .
5
5
  Home-page: https://github.com/GameMaker2k/PyCatFile
6
6
  Download-URL: https://github.com/GameMaker2k/PyCatFile/archive/master.tar.gz
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyCatFile
3
- Version: 0.14.12
3
+ Version: 0.14.14
4
4
  Summary: A tar like file format name catfile after unix cat command (concatenate files) .
5
5
  Home-page: https://github.com/GameMaker2k/PyCatFile
6
6
  Download-URL: https://github.com/GameMaker2k/PyCatFile/archive/master.tar.gz
@@ -14,7 +14,7 @@
14
14
  Copyright 2018-2024 Game Maker 2k - http://intdb.sourceforge.net/
15
15
  Copyright 2018-2024 Kazuki Przyborowski - https://github.com/KazukiPrzyborowski
16
16
 
17
- $FileInfo: pycatfile.py - Last Update: 11/23/2024 Ver. 0.14.12 RC 1 - Author: cooldude2k $
17
+ $FileInfo: pycatfile.py - Last Update: 12/3/2024 Ver. 0.14.14 RC 1 - Author: cooldude2k $
18
18
  '''
19
19
 
20
20
  from __future__ import absolute_import, division, print_function, unicode_literals, generators, with_statement, nested_scopes
@@ -25,6 +25,7 @@ import sys
25
25
  import time
26
26
  import stat
27
27
  import zlib
28
+ import codecs
28
29
  import base64
29
30
  import shutil
30
31
  import socket
@@ -63,6 +64,13 @@ except ImportError:
63
64
  except ImportError:
64
65
  import ConfigParser as configparser
65
66
 
67
+ try:
68
+ file
69
+ except NameError:
70
+ from io import IOBase
71
+ file = IOBase
72
+ #if isinstance(outfile, file) or isinstance(outfile, IOBase):
73
+
66
74
  try:
67
75
  basestring
68
76
  except NameError:
@@ -85,7 +93,6 @@ except ImportError:
85
93
  # Windows-specific setup
86
94
  if os.name == 'nt':
87
95
  if sys.version_info[0] == 2:
88
- import codecs
89
96
  sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
90
97
  sys.stderr = codecs.getwriter('utf-8')(sys.stderr)
91
98
  else:
@@ -97,7 +104,6 @@ if os.name == 'nt':
97
104
  hashlib_guaranteed = False
98
105
  # Environment setup
99
106
  os.environ["PYTHONIOENCODING"] = "UTF-8"
100
- os.environ["LC_CTYPE"] = "UTF-8"
101
107
 
102
108
  # Reload sys to set default encoding to UTF-8 (Python 2 only)
103
109
  if sys.version_info[0] == 2:
@@ -297,12 +303,12 @@ __file_format_dict__ = {'format_name': __file_format_name__, 'format_magic': __f
297
303
  'format_delimiter': __file_format_delimiter__, 'format_ver': __file_format_ver__, 'new_style': __use_new_style__, 'use_advanced_list': __use_advanced_list__, 'use_alt_inode': __use_alt_inode__}
298
304
  __project__ = __program_name__
299
305
  __project_url__ = "https://github.com/GameMaker2k/PyCatFile"
300
- __version_info__ = (0, 14, 12, "RC 1", 1)
301
- __version_date_info__ = (2024, 23, 17, "RC 1", 1)
306
+ __version_info__ = (0, 14, 14, "RC 1", 1)
307
+ __version_date_info__ = (2024, 12, 3, "RC 1", 1)
302
308
  __version_date__ = str(__version_date_info__[0]) + "." + str(
303
309
  __version_date_info__[1]).zfill(2) + "." + str(__version_date_info__[2]).zfill(2)
304
310
  __revision__ = __version_info__[3]
305
- __revision_id__ = "$Id: 0a122e312a1e0c7ce7e2b9d29d20e6a16b52f9d4 $"
311
+ __revision_id__ = "$Id: 3ddc69234c08a55463f598d89770c82c7cdf2f9b $"
306
312
  if(__version_info__[4] is not None):
307
313
  __version_date_plusrc__ = __version_date__ + \
308
314
  "-" + str(__version_date_info__[4])
@@ -574,8 +580,8 @@ def ListDir(dirpath, followlink=False, duplicates=False):
574
580
  retlist.append(dpath)
575
581
  if duplicates:
576
582
  retlist.append(dpath)
577
- for file in filenames:
578
- fpath = os.path.join(root, file)
583
+ for files in filenames:
584
+ fpath = os.path.join(root, files)
579
585
  fpath = RemoveWindowsPath(fpath)
580
586
  if fs_encoding != 'utf-8':
581
587
  fpath = fpath.encode(fs_encoding).decode('utf-8')
@@ -616,8 +622,8 @@ def ListDirAdvanced(dirpath, followlink=False, duplicates=False):
616
622
  retlist.append(dpath)
617
623
  elif duplicates:
618
624
  retlist.append(dpath)
619
- for file in filenames:
620
- fpath = os.path.join(root, file)
625
+ for files in filenames:
626
+ fpath = os.path.join(root, files)
621
627
  fpath = RemoveWindowsPath(fpath)
622
628
  if fs_encoding != 'utf-8':
623
629
  fpath = fpath.encode(fs_encoding).decode('utf-8')
@@ -1702,15 +1708,14 @@ def ReadFileHeaderDataBySizeWithContentToArray(fp, listonly=False, contentasfile
1702
1708
  fid = int(HeaderOut[18], 16)
1703
1709
  finode = int(HeaderOut[19], 16)
1704
1710
  flinkcount = int(HeaderOut[20], 16)
1705
- fdev_minor = int(HeaderOut[21], 16)
1706
- fdev_major = int(HeaderOut[22], 16)
1707
- frdev_minor = int(HeaderOut[23], 16)
1708
- frdev_major = int(HeaderOut[24], 16)
1709
- fseeknextfile = HeaderOut[25]
1710
- fextrasize = int(HeaderOut[26], 16)
1711
- fextrafields = int(HeaderOut[27], 16)
1711
+ fdev = int(HeaderOut[21], 16)
1712
+ fdev_minor = int(HeaderOut[22], 16)
1713
+ fdev_major = int(HeaderOut[23], 16)
1714
+ fseeknextfile = HeaderOut[24]
1715
+ fextrasize = int(HeaderOut[25], 16)
1716
+ fextrafields = int(HeaderOut[26], 16)
1712
1717
  extrafieldslist = []
1713
- extrastart = 28
1718
+ extrastart = 27
1714
1719
  extraend = extrastart + fextrafields
1715
1720
  extrafieldslist = []
1716
1721
  if(extrastart < extraend):
@@ -1779,8 +1784,8 @@ def ReadFileHeaderDataBySizeWithContentToArray(fp, listonly=False, contentasfile
1779
1784
  fcontents.seek(0, 0)
1780
1785
  if(not contentasfile):
1781
1786
  fcontents = fcontents.read()
1782
- catlist = {'fheadersize': fheadsize, 'fhstart': fheaderstart, 'fhend': fhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount, 'fminor': fdev_minor,
1783
- 'fmajor': fdev_major, 'frminor': frdev_minor, 'frmajor': frdev_major, 'fseeknextfile': fseeknextfile, 'fheaderchecksumtype': HeaderOut[-4], 'fcontentchecksumtype': HeaderOut[-3], 'fnumfields': fnumfields + 2, 'frawheader': HeaderOut, 'fextrafields': fextrafields, 'fextrafieldsize': fextrasize, 'fextralist': extrafieldslist, 'fheaderchecksum': fcs, 'fcontentchecksum': fccs, 'fhascontents': pyhascontents, 'fcontentstart': fcontentstart, 'fcontentend': fcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents}
1787
+ catlist = {'fheadersize': fheadsize, 'fhstart': fheaderstart, 'fhend': fhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount,
1788
+ 'fdev': fdev, 'fminor': fdev_minor, 'fmajor': fdev_major, 'fseeknextfile': fseeknextfile, 'fheaderchecksumtype': HeaderOut[-4], 'fcontentchecksumtype': HeaderOut[-3], 'fnumfields': fnumfields + 2, 'frawheader': HeaderOut, 'fextrafields': fextrafields, 'fextrafieldsize': fextrasize, 'fextralist': extrafieldslist, 'fheaderchecksum': fcs, 'fcontentchecksum': fccs, 'fhascontents': pyhascontents, 'fcontentstart': fcontentstart, 'fcontentend': fcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents}
1784
1789
  return catlist
1785
1790
 
1786
1791
 
@@ -1821,15 +1826,14 @@ def ReadFileHeaderDataBySizeWithContentToList(fp, listonly=False, uncompress=Tru
1821
1826
  fid = int(HeaderOut[18], 16)
1822
1827
  finode = int(HeaderOut[19], 16)
1823
1828
  flinkcount = int(HeaderOut[20], 16)
1824
- fdev_minor = int(HeaderOut[21], 16)
1825
- fdev_major = int(HeaderOut[22], 16)
1826
- frdev_minor = int(HeaderOut[23], 16)
1827
- frdev_major = int(HeaderOut[24], 16)
1828
- fseeknextfile = HeaderOut[25]
1829
- fextrasize = int(HeaderOut[26], 16)
1830
- fextrafields = int(HeaderOut[27], 16)
1829
+ fdev = int(HeaderOut[21], 16)
1830
+ fdev_minor = int(HeaderOut[22], 16)
1831
+ fdev_major = int(HeaderOut[23], 16)
1832
+ fseeknextfile = HeaderOut[24]
1833
+ fextrasize = int(HeaderOut[25], 16)
1834
+ fextrafields = int(HeaderOut[26], 16)
1831
1835
  extrafieldslist = []
1832
- extrastart = 28
1836
+ extrastart = 27
1833
1837
  extraend = extrastart + fextrafields
1834
1838
  extrafieldslist = []
1835
1839
  if(extrastart < extraend):
@@ -1896,7 +1900,7 @@ def ReadFileHeaderDataBySizeWithContentToList(fp, listonly=False, uncompress=Tru
1896
1900
  else:
1897
1901
  return False
1898
1902
  catlist = [ftype, fname, flinkname, fsize, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression, fcsize, fuid, funame, fgid, fgname, fid,
1899
- finode, flinkcount, fdev_minor, fdev_major, frdev_minor, frdev_major, fseeknextfile, extrafieldslist, fheaderchecksumtype, fcontentchecksumtype, fcontents]
1903
+ finode, flinkcount, fdev, fdev_minor, fdev_major, fseeknextfile, extrafieldslist, fheaderchecksumtype, fcontentchecksumtype, fcontents]
1900
1904
  return catlist
1901
1905
 
1902
1906
 
@@ -1906,19 +1910,19 @@ def ReadFileDataBySizeWithContent(fp, listonly=False, uncompress=True, skipcheck
1906
1910
  curloc = fp.tell()
1907
1911
  if(curloc > 0):
1908
1912
  fp.seek(0, 0)
1909
- catheader = ReadFileHeaderData(fp, 4, delimiter)
1913
+ catheader = ReadFileHeaderData(fp, 5, delimiter)
1910
1914
  if(curloc > 0):
1911
1915
  fp.seek(curloc, 0)
1912
1916
  headercheck = ValidateHeaderChecksum(
1913
- catheader[:-1], catheader[2], catheader[3], formatspecs)
1914
- newfcs = GetHeaderChecksum(catheader[:-2], catheader[2], True, formatspecs)
1917
+ catheader[:-1], catheader[3], catheader[4], formatspecs)
1918
+ newfcs = GetHeaderChecksum(catheader[:-2], catheader[3], True, formatspecs)
1915
1919
  if(not headercheck and not skipchecksum):
1916
1920
  VerbosePrintOut(
1917
1921
  "File Header Checksum Error with file at offset " + str(0))
1918
1922
  VerbosePrintOut("'" + str(newfcs) + "' != " +
1919
- "'" + str(catheader[3]) + "'")
1923
+ "'" + str(catheader[4]) + "'")
1920
1924
  return False
1921
- fnumfiles = int(catheader[1], 16)
1925
+ fnumfiles = int(catheader[2], 16)
1922
1926
  countnum = 0
1923
1927
  flist = []
1924
1928
  while(countnum < fnumfiles):
@@ -1937,25 +1941,25 @@ def ReadFileDataBySizeWithContentToArray(fp, seekstart=0, seekend=0, listonly=Fa
1937
1941
  curloc = fp.tell()
1938
1942
  if(curloc > 0):
1939
1943
  fp.seek(0, 0)
1940
- catheader = ReadFileHeaderData(fp, 4, delimiter)
1944
+ catheader = ReadFileHeaderData(fp, 5, delimiter)
1941
1945
  if(curloc > 0):
1942
1946
  fp.seek(curloc, 0)
1943
1947
  headercheck = ValidateHeaderChecksum(
1944
- catheader[:-1], catheader[2], catheader[3], formatspecs)
1945
- newfcs = GetHeaderChecksum(catheader[:-2], catheader[2], True, formatspecs)
1948
+ catheader[:-1], catheader[3], catheader[4], formatspecs)
1949
+ newfcs = GetHeaderChecksum(catheader[:-2], catheader[3], True, formatspecs)
1946
1950
  if(not headercheck and not skipchecksum):
1947
1951
  VerbosePrintOut(
1948
1952
  "File Header Checksum Error with file at offset " + str(0))
1949
1953
  VerbosePrintOut("'" + str(newfcs) + "' != " +
1950
- "'" + str(catheader[3]) + "'")
1954
+ "'" + str(catheader[4]) + "'")
1951
1955
  return False
1952
1956
  catstring = catheader[0]
1953
1957
  catversion = re.findall("([\\d]+)", catstring)
1954
1958
  catversions = re.search('(.*?)(\\d+)', catstring).groups()
1955
- fprenumfiles = catheader[1]
1959
+ fprenumfiles = catheader[2]
1956
1960
  fnumfiles = int(fprenumfiles, 16)
1957
- fprechecksumtype = catheader[2]
1958
- fprechecksum = catheader[3]
1961
+ fprechecksumtype = catheader[3]
1962
+ fprechecksum = catheader[4]
1959
1963
  catlist = {'fnumfiles': fnumfiles, 'fformat': catversions[0], 'fversion': catversions[1],
1960
1964
  'fformatspecs': formatspecs, 'fchecksumtype': fprechecksumtype, 'fheaderchecksum': fprechecksum, 'ffilelist': []}
1961
1965
  if(seekstart < 0 and seekstart > fnumfiles):
@@ -2040,25 +2044,25 @@ def ReadFileDataBySizeWithContentToList(fp, seekstart=0, seekend=0, listonly=Fal
2040
2044
  curloc = fp.tell()
2041
2045
  if(curloc > 0):
2042
2046
  fp.seek(0, 0)
2043
- catheader = ReadFileHeaderData(fp, 4, delimiter)
2047
+ catheader = ReadFileHeaderData(fp, 5, delimiter)
2044
2048
  if(curloc > 0):
2045
2049
  fp.seek(curloc, 0)
2046
2050
  headercheck = ValidateHeaderChecksum(
2047
- catheader[:-1], catheader[2], catheader[3], formatspecs)
2048
- newfcs = GetHeaderChecksum(catheader[:-2], catheader[2], True, formatspecs)
2051
+ catheader[:-1], catheader[3], catheader[4], formatspecs)
2052
+ newfcs = GetHeaderChecksum(catheader[:-2], catheader[3], True, formatspecs)
2049
2053
  if(not headercheck and not skipchecksum):
2050
2054
  VerbosePrintOut(
2051
2055
  "File Header Checksum Error with file at offset " + str(0))
2052
2056
  VerbosePrintOut("'" + str(newfcs) + "' != " +
2053
- "'" + str(catheader[3]) + "'")
2057
+ "'" + str(catheader[4]) + "'")
2054
2058
  return False
2055
2059
  catstring = catheader[0]
2056
2060
  catversion = re.findall("([\\d]+)", catstring)
2057
2061
  catversions = re.search('(.*?)(\\d+)', catstring).groups()
2058
2062
  fprenumfiles = catheader[1]
2059
2063
  fnumfiles = int(fprenumfiles, 16)
2060
- fprechecksumtype = catheader[2]
2061
- fprechecksum = catheader[3]
2064
+ fprechecksumtype = catheader[3]
2065
+ fprechecksum = catheader[4]
2062
2066
  catlist = []
2063
2067
  if(seekstart < 0 and seekstart > fnumfiles):
2064
2068
  seekstart = 0
@@ -2290,7 +2294,7 @@ def AppendFileHeader(fp, numfiles, checksumtype="crc32", formatspecs=__file_form
2290
2294
  fp.write(fileheader.encode('UTF-8'))
2291
2295
  fnumfiles = format(int(numfiles), 'x').lower()
2292
2296
  fnumfilesa = AppendNullBytes(
2293
- [fnumfiles, checksumtype], formatspecs['format_delimiter'])
2297
+ [platform.system(), fnumfiles, checksumtype], formatspecs['format_delimiter'])
2294
2298
  catfileheadercshex = GetFileChecksum(
2295
2299
  fileheader + fnumfilesa, checksumtype, True, formatspecs)
2296
2300
  fnumfilesa = fnumfilesa + \
@@ -2533,14 +2537,6 @@ def AppendFilesWithContent(infiles, fp, dirlistfromtxt=False, filevalues=[], ext
2533
2537
  getfdev = GetDevMajorMinor(fdev)
2534
2538
  fdev_minor = getfdev[0]
2535
2539
  fdev_major = getfdev[1]
2536
- frdev = fstatinfo.st_dev
2537
- if(hasattr(fstatinfo, "st_rdev")):
2538
- frdev = fstatinfo.st_rdev
2539
- else:
2540
- frdev = fstatinfo.st_dev
2541
- getfrdev = GetDevMajorMinor(frdev)
2542
- frdev_minor = getfrdev[0]
2543
- frdev_major = getfrdev[1]
2544
2540
  if(ftype == 1 or ftype == 2 or ftype == 3 or ftype == 4 or ftype == 5 or ftype == 6):
2545
2541
  fsize = format(int("0"), 'x').lower()
2546
2542
  elif(ftype == 0 or ftype == 7):
@@ -2579,10 +2575,9 @@ def AppendFilesWithContent(infiles, fp, dirlistfromtxt=False, filevalues=[], ext
2579
2575
  fgname = ""
2580
2576
  except ImportError:
2581
2577
  fgname = ""
2578
+ fdev = format(int(fdev), 'x').lower()
2582
2579
  fdev_minor = format(int(fdev_minor), 'x').lower()
2583
2580
  fdev_major = format(int(fdev_major), 'x').lower()
2584
- frdev_minor = format(int(frdev_minor), 'x').lower()
2585
- frdev_major = format(int(frdev_major), 'x').lower()
2586
2581
  finode = format(int(finode), 'x').lower()
2587
2582
  flinkcount = format(int(flinkcount), 'x').lower()
2588
2583
  if(hasattr(fstatinfo, "st_file_attributes")):
@@ -2686,7 +2681,7 @@ def AppendFilesWithContent(infiles, fp, dirlistfromtxt=False, filevalues=[], ext
2686
2681
  fcontents.seek(0, 0)
2687
2682
  ftypehex = format(ftype, 'x').lower()
2688
2683
  catoutlist = [ftypehex, fname, flinkname, fsize, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
2689
- fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev_minor, fdev_major, frdev_minor, frdev_major, "+1"]
2684
+ fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+1"]
2690
2685
  fp = AppendFileHeaderWithContent(
2691
2686
  fp, catoutlist, extradata, fcontents.read(), checksumtype, formatspecs)
2692
2687
  if(numfiles > 0):
@@ -2737,17 +2732,16 @@ def AppendListsWithContent(inlist, fp, dirlistfromtxt=False, filevalues=[], extr
2737
2732
  fid = format(curfname[16], 'x').lower()
2738
2733
  finode = format(curfname[17], 'x').lower()
2739
2734
  flinkcount = format(curfname[18], 'x').lower()
2740
- fdev_minor = format(curfname[19], 'x').lower()
2741
- fdev_major = format(curfname[20], 'x').lower()
2742
- frdev_minor = format(curfname[21], 'x').lower()
2743
- frdev_major = format(curfname[22], 'x').lower()
2744
- fseeknextfile = curfname[23]
2745
- extradata = curfname[24]
2746
- fheaderchecksumtype = curfname[25]
2747
- fcontentchecksumtype = curfname[26]
2748
- fcontents = curfname[27]
2735
+ fdev = format(curfname[19], 'x').lower()
2736
+ fdev_minor = format(curfname[20], 'x').lower()
2737
+ fdev_major = format(curfname[21], 'x').lower()
2738
+ fseeknextfile = curfname[22]
2739
+ extradata = curfname[23]
2740
+ fheaderchecksumtype = curfname[24]
2741
+ fcontentchecksumtype = curfname[25]
2742
+ fcontents = curfname[26]
2749
2743
  catoutlist = [ftype, fname, flinkname, fsize, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression, fcsize,
2750
- fuid, funame, fgid, fgname, fid, finode, flinkcount, fdev_minor, fdev_major, frdev_minor, frdev_major, fseeknextfile]
2744
+ fuid, funame, fgid, fgname, fid, finode, flinkcount, fdev, fdev_minor, fdev_major, fseeknextfile]
2751
2745
  fcontents.seek(0, 0)
2752
2746
  fp = AppendFileHeaderWithContent(
2753
2747
  fp, catoutlist, extradata, fcontents.read(), checksumtype, formatspecs)
@@ -3131,13 +3125,6 @@ def UncompressArchiveFile(fp, formatspecs=__file_format_dict__):
3131
3125
  if(compresscheck == "catfile" or compresscheck == formatspecs['format_lower']):
3132
3126
  catfp = fp
3133
3127
  if(not compresscheck):
3134
- try:
3135
- import lzma
3136
- except ImportError:
3137
- try:
3138
- from backports import lzma
3139
- except ImportError:
3140
- return False
3141
3128
  catfp = BytesIO()
3142
3129
  with fp as fpcontent:
3143
3130
  try:
@@ -3705,14 +3692,6 @@ def PackArchiveFile(infiles, outfile, dirlistfromtxt=False, compression="auto",
3705
3692
  getfdev = GetDevMajorMinor(fdev)
3706
3693
  fdev_minor = getfdev[0]
3707
3694
  fdev_major = getfdev[1]
3708
- frdev = fstatinfo.st_dev
3709
- if(hasattr(fstatinfo, "st_rdev")):
3710
- frdev = fstatinfo.st_rdev
3711
- else:
3712
- frdev = fstatinfo.st_dev
3713
- getfrdev = GetDevMajorMinor(frdev)
3714
- frdev_minor = getfrdev[0]
3715
- frdev_major = getfrdev[1]
3716
3695
  if(ftype == 1 or ftype == 2 or ftype == 3 or ftype == 4 or ftype == 5 or ftype == 6):
3717
3696
  fsize = format(int("0"), 'x').lower()
3718
3697
  elif(ftype == 0 or ftype == 7):
@@ -3751,10 +3730,9 @@ def PackArchiveFile(infiles, outfile, dirlistfromtxt=False, compression="auto",
3751
3730
  fgname = ""
3752
3731
  except ImportError:
3753
3732
  fgname = ""
3733
+ fdev = format(int(fdev), 'x').lower()
3754
3734
  fdev_minor = format(int(fdev_minor), 'x').lower()
3755
3735
  fdev_major = format(int(fdev_major), 'x').lower()
3756
- frdev_minor = format(int(frdev_minor), 'x').lower()
3757
- frdev_major = format(int(frdev_major), 'x').lower()
3758
3736
  finode = format(int(finode), 'x').lower()
3759
3737
  flinkcount = format(int(flinkcount), 'x').lower()
3760
3738
  if(hasattr(fstatinfo, "st_file_attributes")):
@@ -3857,7 +3835,7 @@ def PackArchiveFile(infiles, outfile, dirlistfromtxt=False, compression="auto",
3857
3835
  fcontents.seek(0, 0)
3858
3836
  ftypehex = format(ftype, 'x').lower()
3859
3837
  catoutlist = [ftypehex, fname, flinkname, fsize, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
3860
- fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev_minor, fdev_major, frdev_minor, frdev_major, "+1"]
3838
+ fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+1"]
3861
3839
  catfp = AppendFileHeaderWithContent(
3862
3840
  catfp, catoutlist, extradata, fcontents.read(), checksumtype, formatspecs)
3863
3841
  fcontents.close()
@@ -4037,10 +4015,9 @@ def PackArchiveFileFromTarFile(infile, outfile, compression="auto", compresswhol
4037
4015
  curfid = curfid + 1
4038
4016
  if(ftype == 2):
4039
4017
  flinkname = member.linkname
4018
+ fdev = format(int(os.makedev(member.devmajor, member.devminor)), 'x').lower()
4040
4019
  fdev_minor = format(int(member.devminor), 'x').lower()
4041
4020
  fdev_major = format(int(member.devmajor), 'x').lower()
4042
- frdev_minor = format(int(member.devminor), 'x').lower()
4043
- frdev_major = format(int(member.devmajor), 'x').lower()
4044
4021
  if(ftype == 1 or ftype == 2 or ftype == 3 or ftype == 4 or ftype == 5 or ftype == 6):
4045
4022
  fsize = format(int("0"), 'x').lower()
4046
4023
  elif(ftype == 0 or ftype == 7):
@@ -4111,7 +4088,7 @@ def PackArchiveFileFromTarFile(infile, outfile, compression="auto", compresswhol
4111
4088
  fcontents.seek(0, 0)
4112
4089
  ftypehex = format(ftype, 'x').lower()
4113
4090
  catoutlist = [ftypehex, fname, flinkname, fsize, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
4114
- fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev_minor, fdev_major, frdev_minor, frdev_major, "+1"]
4091
+ fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+1"]
4115
4092
  catfp = AppendFileHeaderWithContent(
4116
4093
  catfp, catoutlist, extradata, fcontents.read(), checksumtype, formatspecs)
4117
4094
  fcontents.close()
@@ -4247,10 +4224,9 @@ def PackArchiveFileFromZipFile(infile, outfile, compression="auto", compresswhol
4247
4224
  fcurfid = format(int(curfid), 'x').lower()
4248
4225
  fcurinode = format(int(curfid), 'x').lower()
4249
4226
  curfid = curfid + 1
4227
+ fdev = format(int(0), 'x').lower()
4250
4228
  fdev_minor = format(int(0), 'x').lower()
4251
4229
  fdev_major = format(int(0), 'x').lower()
4252
- frdev_minor = format(int(0), 'x').lower()
4253
- frdev_major = format(int(0), 'x').lower()
4254
4230
  if(ftype == 5):
4255
4231
  fsize = format(int("0"), 'x').lower()
4256
4232
  elif(ftype == 0):
@@ -4378,7 +4354,7 @@ def PackArchiveFileFromZipFile(infile, outfile, compression="auto", compresswhol
4378
4354
  fcontents.seek(0, 0)
4379
4355
  ftypehex = format(ftype, 'x').lower()
4380
4356
  catoutlist = [ftypehex, fname, flinkname, fsize, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
4381
- fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev_minor, fdev_major, frdev_minor, frdev_major, "+1"]
4357
+ fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+1"]
4382
4358
  catfp = AppendFileHeaderWithContent(
4383
4359
  catfp, catoutlist, extradata, fcontents.read(), checksumtype, formatspecs)
4384
4360
  fcontents.close()
@@ -4542,10 +4518,9 @@ if(rarfile_support):
4542
4518
  fcurfid = format(int(curfid), 'x').lower()
4543
4519
  fcurinode = format(int(curfid), 'x').lower()
4544
4520
  curfid = curfid + 1
4521
+ fdev = format(int(0), 'x').lower()
4545
4522
  fdev_minor = format(int(0), 'x').lower()
4546
4523
  fdev_major = format(int(0), 'x').lower()
4547
- frdev_minor = format(int(0), 'x').lower()
4548
- frdev_major = format(int(0), 'x').lower()
4549
4524
  if(ftype == 5):
4550
4525
  fsize = format(int("0"), 'x').lower()
4551
4526
  elif(ftype == 0):
@@ -4675,7 +4650,7 @@ if(rarfile_support):
4675
4650
  fcontents.seek(0, 0)
4676
4651
  ftypehex = format(ftype, 'x').lower()
4677
4652
  catoutlist = [ftypehex, fname, flinkname, fsize, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
4678
- fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev_minor, fdev_major, frdev_minor, frdev_major, "+1"]
4653
+ fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+1"]
4679
4654
  catfp = AppendFileHeaderWithContent(
4680
4655
  catfp, catoutlist, extradata, fcontents.read(), checksumtype, formatspecs)
4681
4656
  fcontents.close()
@@ -4798,10 +4773,9 @@ if(py7zr_support):
4798
4773
  fcurfid = format(int(curfid), 'x').lower()
4799
4774
  fcurinode = format(int(curfid), 'x').lower()
4800
4775
  curfid = curfid + 1
4776
+ fdev = format(int(0), 'x').lower()
4801
4777
  fdev_minor = format(int(0), 'x').lower()
4802
4778
  fdev_major = format(int(0), 'x').lower()
4803
- frdev_minor = format(int(0), 'x').lower()
4804
- frdev_major = format(int(0), 'x').lower()
4805
4779
  if(ftype == 5):
4806
4780
  fsize = format(int("0"), 'x').lower()
4807
4781
  fatime = format(int(member.creationtime.timestamp()), 'x').lower()
@@ -4905,7 +4879,7 @@ if(py7zr_support):
4905
4879
  fcontents.seek(0, 0)
4906
4880
  ftypehex = format(ftype, 'x').lower()
4907
4881
  catoutlist = [ftypehex, fname, flinkname, fsize, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
4908
- fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev_minor, fdev_major, frdev_minor, frdev_major, "+1"]
4882
+ fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+1"]
4909
4883
  catfp = AppendFileHeaderWithContent(
4910
4884
  catfp, catoutlist, extradata, fcontents.read(), checksumtype, formatspecs)
4911
4885
  fcontents.close()
@@ -5072,14 +5046,15 @@ def ArchiveFileSeekToFileNum(infile, seekto=0, listonly=False, contentasfile=Tru
5072
5046
  return False
5073
5047
  if(catdel != formatspecs['format_delimiter']):
5074
5048
  return False
5075
- catheader = ReadFileHeaderData(catfp, 3, formatspecs['format_delimiter'])
5049
+ catheader = ReadFileHeaderData(catfp, 4, formatspecs['format_delimiter'])
5076
5050
  if(curloc > 0):
5077
5051
  catfp.seek(curloc, 0)
5078
5052
  catversion = re.findall("([\\d]+)", catstring)
5079
- fprenumfiles = catheader[0]
5053
+ fostype = catheader[0]
5054
+ fprenumfiles = catheader[1]
5080
5055
  fnumfiles = int(fprenumfiles, 16)
5081
- fprechecksumtype = catheader[1]
5082
- fprechecksum = catheader[2]
5056
+ fprechecksumtype = catheader[2]
5057
+ fprechecksum = catheader[3]
5083
5058
  fileheader = AppendNullByte(catstring, formatspecs['format_delimiter'])
5084
5059
  fnumfileshex = format(int(fnumfiles), 'x').lower()
5085
5060
  fileheader = fileheader + \
@@ -5097,7 +5072,7 @@ def ArchiveFileSeekToFileNum(infile, seekto=0, listonly=False, contentasfile=Tru
5097
5072
  "'" + str(catfileheadercshex) + "'")
5098
5073
  return False
5099
5074
  catversions = re.search('(.*?)(\\d+)', catstring).groups()
5100
- catlist = {'fnumfiles': fnumfiles, 'fformat': catversions[0], 'fversion': catversions[1],
5075
+ catlist = {'fnumfiles': fnumfiles, 'fformat': catversions[0], 'fversion': catversions[1], 'fostype': fostype,
5101
5076
  'fformatspecs': formatspecs, 'fchecksumtype': fprechecksumtype, 'fheaderchecksum': fprechecksum, 'ffilelist': {}}
5102
5077
  if(seekto >= fnumfiles):
5103
5078
  seekto = fnumfiles - 1
@@ -5142,15 +5117,14 @@ def ArchiveFileSeekToFileNum(infile, seekto=0, listonly=False, contentasfile=Tru
5142
5117
  fid = int(preheaderdata[18], 16)
5143
5118
  finode = int(preheaderdata[19], 16)
5144
5119
  flinkcount = int(preheaderdata[20], 16)
5145
- prefdev_minor = int(preheaderdata[21], 16)
5146
- prefdev_major = int(preheaderdata[22], 16)
5147
- prefrdev_minor = int(preheaderdata[23], 16)
5148
- prefrdev_major = int(preheaderdata[24], 16)
5149
- prefseeknextfile = preheaderdata[25]
5150
- prefextrasize = int(preheaderdata[26], 16)
5151
- prefextrafields = int(preheaderdata[27], 16)
5120
+ prefdev = int(preheaderdata[21], 16)
5121
+ prefdev_minor = int(preheaderdata[22], 16)
5122
+ prefdev_major = int(preheaderdata[23], 16)
5123
+ prefseeknextfile = preheaderdata[24]
5124
+ prefextrasize = int(preheaderdata[25], 16)
5125
+ prefextrafields = int(preheaderdata[26], 16)
5152
5126
  extrafieldslist = []
5153
- extrastart = 28
5127
+ extrastart = 27
5154
5128
  extraend = extrastart + prefextrafields
5155
5129
  extrafieldslist = []
5156
5130
  if(extrastart < extraend):
@@ -5330,14 +5304,15 @@ def ArchiveFileSeekToFileName(infile, seekfile=None, listonly=False, contentasfi
5330
5304
  return False
5331
5305
  if(catdel != formatspecs['format_delimiter']):
5332
5306
  return False
5333
- catheader = ReadFileHeaderData(catfp, 3, formatspecs['format_delimiter'])
5307
+ catheader = ReadFileHeaderData(catfp, 4, formatspecs['format_delimiter'])
5334
5308
  if(curloc > 0):
5335
5309
  catfp.seek(curloc, 0)
5336
5310
  catversion = re.findall("([\\d]+)", catstring)
5337
- fprenumfiles = catheader[0]
5311
+ fostype = catheader[0]
5312
+ fprenumfiles = catheader[1]
5338
5313
  fnumfiles = int(fprenumfiles, 16)
5339
- fprechecksumtype = catheader[1]
5340
- fprechecksum = catheader[2]
5314
+ fprechecksumtype = catheader[2]
5315
+ fprechecksum = catheader[3]
5341
5316
  fileheader = AppendNullByte(catstring, formatspecs['format_delimiter'])
5342
5317
  fnumfileshex = format(int(fnumfiles), 'x').lower()
5343
5318
  fileheader = fileheader + \
@@ -5355,7 +5330,7 @@ def ArchiveFileSeekToFileName(infile, seekfile=None, listonly=False, contentasfi
5355
5330
  "'" + str(catfileheadercshex) + "'")
5356
5331
  return False
5357
5332
  catversions = re.search('(.*?)(\\d+)', catstring).groups()
5358
- catlist = {'fnumfiles': fnumfiles, 'fformat': catversions[0], 'fversion': catversions[1],
5333
+ catlist = {'fnumfiles': fnumfiles, 'fformat': catversions[0], 'fversion': catversions[1], 'fostype': fostype,
5359
5334
  'fformatspecs': formatspecs, 'fchecksumtype': fprechecksumtype, 'fheaderchecksum': fprechecksum, 'ffilelist': {}}
5360
5335
  seekto = fnumfiles - 1
5361
5336
  filefound = False
@@ -5398,15 +5373,14 @@ def ArchiveFileSeekToFileName(infile, seekfile=None, listonly=False, contentasfi
5398
5373
  fid = int(preheaderdata[18], 16)
5399
5374
  finode = int(preheaderdata[19], 16)
5400
5375
  flinkcount = int(preheaderdata[20], 16)
5401
- prefdev_minor = int(preheaderdata[21], 16)
5402
- prefdev_major = int(preheaderdata[22], 16)
5403
- prefrdev_minor = int(preheaderdata[23], 16)
5404
- prefrdev_major = int(preheaderdata[24], 16)
5405
- prefseeknextfile = preheaderdata[25]
5406
- prefextrasize = int(preheaderdata[26], 16)
5407
- prefextrafields = int(preheaderdata[27], 16)
5376
+ prefdev = int(preheaderdata[21], 16)
5377
+ prefdev_minor = int(preheaderdata[22], 16)
5378
+ prefdev_major = int(preheaderdata[23], 16)
5379
+ prefseeknextfile = preheaderdata[24]
5380
+ prefextrasize = int(preheaderdata[25], 16)
5381
+ prefextrafields = int(preheaderdata[26], 16)
5408
5382
  extrafieldslist = []
5409
- extrastart = 28
5383
+ extrastart = 27
5410
5384
  extraend = extrastart + prefextrafields
5411
5385
  extrafieldslist = []
5412
5386
  if(extrastart < extraend):
@@ -5601,19 +5575,20 @@ def ArchiveFileValidate(infile, formatspecs=__file_format_dict__, verbose=False,
5601
5575
  return False
5602
5576
  if(catdel != formatspecs['format_delimiter']):
5603
5577
  return False
5604
- catheader = ReadFileHeaderData(catfp, 3, formatspecs['format_delimiter'])
5578
+ catheader = ReadFileHeaderData(catfp, 4, formatspecs['format_delimiter'])
5605
5579
  if(curloc > 0):
5606
5580
  catfp.seek(curloc, 0)
5607
5581
  catversion = re.findall("([\\d]+)", catstring)
5608
- fprenumfiles = catheader[0]
5582
+ fostype = catheader[0]
5583
+ fprenumfiles = catheader[1]
5609
5584
  fnumfiles = int(fprenumfiles, 16)
5610
- fprechecksumtype = catheader[1]
5611
- fprechecksum = catheader[2]
5585
+ fprechecksumtype = catheader[2]
5586
+ fprechecksum = catheader[3]
5612
5587
  il = 0
5613
5588
  fileheader = AppendNullByte(catstring, formatspecs['format_delimiter'])
5614
5589
  fnumfileshex = format(int(fnumfiles), 'x').lower()
5615
5590
  fileheader = fileheader + \
5616
- AppendNullBytes([fnumfileshex, fprechecksumtype],
5591
+ AppendNullBytes([fostype, fnumfileshex, fprechecksumtype],
5617
5592
  formatspecs['format_delimiter'])
5618
5593
  catfileheadercshex = GetFileChecksum(
5619
5594
  fileheader, fprechecksumtype, True, formatspecs)
@@ -5681,15 +5656,14 @@ def ArchiveFileValidate(infile, formatspecs=__file_format_dict__, verbose=False,
5681
5656
  fid = int(catheaderdata[18], 16)
5682
5657
  finode = int(catheaderdata[19], 16)
5683
5658
  flinkcount = int(catheaderdata[20], 16)
5684
- catfdev_minor = int(catheaderdata[21], 16)
5685
- catfdev_major = int(catheaderdata[22], 16)
5686
- catfrdev_minor = int(catheaderdata[23], 16)
5687
- catfrdev_major = int(catheaderdata[24], 16)
5688
- catfseeknextfile = catheaderdata[25]
5689
- catfextrasize = int(catheaderdata[26], 16)
5690
- catfextrafields = int(catheaderdata[27], 16)
5659
+ catfdev = int(catheaderdata[21], 16)
5660
+ catfdev_minor = int(catheaderdata[22], 16)
5661
+ catfdev_major = int(catheaderdata[23], 16)
5662
+ catfseeknextfile = catheaderdata[24]
5663
+ catfextrasize = int(catheaderdata[25], 16)
5664
+ catfextrafields = int(catheaderdata[26], 16)
5691
5665
  extrafieldslist = []
5692
- extrastart = 28
5666
+ extrastart = 27
5693
5667
  extraend = extrastart + catfextrafields
5694
5668
  extrafieldslist = []
5695
5669
  if(extrastart < extraend):
@@ -5879,18 +5853,19 @@ def ArchiveFileToArray(infile, seekstart=0, seekend=0, listonly=False, contentas
5879
5853
  return False
5880
5854
  if(catdel != formatspecs['format_delimiter']):
5881
5855
  return False
5882
- catheader = ReadFileHeaderData(catfp, 3, formatspecs['format_delimiter'])
5856
+ catheader = ReadFileHeaderData(catfp, 4, formatspecs['format_delimiter'])
5883
5857
  if(curloc > 0):
5884
5858
  catfp.seek(curloc, 0)
5885
5859
  catversion = re.findall("([\\d]+)", catstring)
5886
- fprenumfiles = catheader[0]
5860
+ fostype = catheader[0]
5861
+ fprenumfiles = catheader[1]
5887
5862
  fnumfiles = int(fprenumfiles, 16)
5888
- fprechecksumtype = catheader[1]
5889
- fprechecksum = catheader[2]
5863
+ fprechecksumtype = catheader[2]
5864
+ fprechecksum = catheader[3]
5890
5865
  fileheader = AppendNullByte(catstring, formatspecs['format_delimiter'])
5891
5866
  fnumfileshex = format(int(fnumfiles), 'x').lower()
5892
5867
  fileheader = fileheader + \
5893
- AppendNullBytes([fnumfileshex, fprechecksumtype],
5868
+ AppendNullBytes([fostype, fnumfileshex, fprechecksumtype],
5894
5869
  formatspecs['format_delimiter'])
5895
5870
  catfileheadercshex = GetFileChecksum(
5896
5871
  fileheader, fprechecksumtype, True, formatspecs)
@@ -6030,15 +6005,14 @@ def ArchiveFileToArray(infile, seekstart=0, seekend=0, listonly=False, contentas
6030
6005
  catfid = int(catheaderdata[18], 16)
6031
6006
  catfinode = int(catheaderdata[19], 16)
6032
6007
  catflinkcount = int(catheaderdata[20], 16)
6033
- catfdev_minor = int(catheaderdata[21], 16)
6034
- catfdev_major = int(catheaderdata[22], 16)
6035
- catfrdev_minor = int(catheaderdata[23], 16)
6036
- catfrdev_major = int(catheaderdata[24], 16)
6037
- catfseeknextfile = catheaderdata[25]
6038
- catfextrasize = int(catheaderdata[26], 16)
6039
- catfextrafields = int(catheaderdata[27], 16)
6008
+ catfdev = int(catheaderdata[21], 16)
6009
+ catfdev_minor = int(catheaderdata[22], 16)
6010
+ catfdev_major = int(catheaderdata[23], 16)
6011
+ catfseeknextfile = catheaderdata[24]
6012
+ catfextrasize = int(catheaderdata[25], 16)
6013
+ catfextrafields = int(catheaderdata[26], 16)
6040
6014
  extrafieldslist = []
6041
- extrastart = 28
6015
+ extrastart = 27
6042
6016
  extraend = extrastart + catfextrafields
6043
6017
  extrafieldslist = []
6044
6018
  if(extrastart < extraend):
@@ -6111,7 +6085,7 @@ def ArchiveFileToArray(infile, seekstart=0, seekend=0, listonly=False, contentas
6111
6085
  if(not contentasfile):
6112
6086
  catfcontents = catfcontents.read()
6113
6087
  catlist['ffilelist'].append({'fid': realidnum, 'fidalt': fileidnum, 'fheadersize': catfheadsize, 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': catftype, 'fname': catfname, 'fbasedir': catfbasedir, 'flinkname': catflinkname, 'fsize': catfsize, 'fatime': catfatime, 'fmtime': catfmtime, 'fctime': catfctime, 'fbtime': catfbtime, 'fmode': catfmode, 'fchmode': catfchmode, 'ftypemod': catftypemod, 'fwinattributes': catfwinattributes, 'fcompression': catfcompression, 'fcsize': catfcsize, 'fuid': catfuid, 'funame': catfuname, 'fgid': catfgid, 'fgname': catfgname, 'finode': catfinode, 'flinkcount': catflinkcount,
6114
- 'fminor': catfdev_minor, 'fmajor': catfdev_major, 'frminor': catfrdev_minor, 'frmajor': catfrdev_major, 'fseeknextfile': catfseeknextfile, 'fheaderchecksumtype': catheaderdata[-4], 'fcontentchecksumtype': catheaderdata[-3], 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': catfextrasize, 'fextralist': extrafieldslist, 'fheaderchecksum': catfcs, 'fcontentchecksum': catfccs, 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': catfcontents})
6088
+ 'fdev': catfdev, 'fminor': catfdev_minor, 'fmajor': catfdev_major, 'fseeknextfile': catfseeknextfile, 'fheaderchecksumtype': catheaderdata[-4], 'fcontentchecksumtype': catheaderdata[-3], 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': catfextrasize, 'fextralist': extrafieldslist, 'fheaderchecksum': catfcs, 'fcontentchecksum': catfccs, 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': catfcontents})
6115
6089
  fileidnum = fileidnum + 1
6116
6090
  realidnum = realidnum + 1
6117
6091
  if(returnfp):
@@ -6328,14 +6302,6 @@ def ListDirToArrayAlt(infiles, dirlistfromtxt=False, followlink=False, listonly=
6328
6302
  getfdev = GetDevMajorMinor(fdev)
6329
6303
  fdev_minor = getfdev[0]
6330
6304
  fdev_major = getfdev[1]
6331
- frdev = fstatinfo.st_dev
6332
- if(hasattr(fstatinfo, "st_rdev")):
6333
- frdev = fstatinfo.st_rdev
6334
- else:
6335
- frdev = fstatinfo.st_dev
6336
- getfrdev = GetDevMajorMinor(frdev)
6337
- frdev_minor = getfrdev[0]
6338
- frdev_major = getfrdev[1]
6339
6305
  if(ftype == 1 or ftype == 2 or ftype == 3 or ftype == 4 or ftype == 5 or ftype == 6):
6340
6306
  fsize = "0"
6341
6307
  if(ftype == 0 or ftype == 7):
@@ -6372,11 +6338,6 @@ def ListDirToArrayAlt(infiles, dirlistfromtxt=False, followlink=False, listonly=
6372
6338
  fgname = ""
6373
6339
  except ImportError:
6374
6340
  fgname = ""
6375
- fdev_minor = fdev_minor
6376
- fdev_major = fdev_major
6377
- frdev_minor = frdev_minor
6378
- frdev_major = frdev_major
6379
- flinkcount = flinkcount
6380
6341
  if(hasattr(fstatinfo, "st_file_attributes")):
6381
6342
  fwinattributes = fstatinfo.st_file_attributes
6382
6343
  else:
@@ -6404,7 +6365,7 @@ def ListDirToArrayAlt(infiles, dirlistfromtxt=False, followlink=False, listonly=
6404
6365
  extrasizelen = len(extrasizestr)
6405
6366
  extrasizelenhex = format(extrasizelen, 'x').lower()
6406
6367
  catoutlist = [ftypehex, fname, flinkname, format(int(fsize), 'x').lower(), format(int(fatime), 'x').lower(), format(int(fmtime), 'x').lower(), format(int(fctime), 'x').lower(), format(int(fbtime), 'x').lower(), format(int(fmode), 'x').lower(), format(int(fwinattributes), 'x').lower(), fcompression, format(int(fcsize), 'x').lower(), format(int(fuid), 'x').lower(
6407
- ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), format(int(frdev_minor), 'x').lower(), format(int(frdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
6368
+ ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
6408
6369
  catoutlen = len(catoutlist) + len(extradata) + 3
6409
6370
  catoutlenhex = format(catoutlen, 'x').lower()
6410
6371
  catoutlist.insert(0, catoutlenhex)
@@ -6458,8 +6419,8 @@ def ListDirToArrayAlt(infiles, dirlistfromtxt=False, followlink=False, listonly=
6458
6419
  fcontents.seek(0, 0)
6459
6420
  if(not contentasfile):
6460
6421
  fcontents = fcontents.read()
6461
- catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount, 'fminor': fdev_minor,
6462
- 'fmajor': fdev_major, 'frminor': frdev_minor, 'frmajor': frdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
6422
+ catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount,
6423
+ 'fdev': fdev, 'fminor': fdev_minor, 'fmajor': fdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
6463
6424
  fileidnum = fileidnum + 1
6464
6425
  return catlist
6465
6426
 
@@ -6573,10 +6534,9 @@ def TarFileToArrayAlt(infile, listonly=False, contentasfile=True, checksumtype="
6573
6534
  curfid = curfid + 1
6574
6535
  if(ftype == 2):
6575
6536
  flinkname = member.linkname
6537
+ fdev = os.makedev(member.devmajor, member.devminor)
6576
6538
  fdev_minor = member.devminor
6577
6539
  fdev_major = member.devmajor
6578
- frdev_minor = member.devminor
6579
- frdev_major = member.devmajor
6580
6540
  if(ftype == 1 or ftype == 2 or ftype == 3 or ftype == 4 or ftype == 5 or ftype == 6):
6581
6541
  fsize = "0"
6582
6542
  elif(ftype == 0 or ftype == 7):
@@ -6615,7 +6575,7 @@ def TarFileToArrayAlt(infile, listonly=False, contentasfile=True, checksumtype="
6615
6575
  extrasizelen = len(extrasizestr)
6616
6576
  extrasizelenhex = format(extrasizelen, 'x').lower()
6617
6577
  catoutlist = [ftypehex, fname, flinkname, format(int(fsize), 'x').lower(), format(int(fatime), 'x').lower(), format(int(fmtime), 'x').lower(), format(int(fctime), 'x').lower(), format(int(fbtime), 'x').lower(), format(int(fmode), 'x').lower(), format(int(fwinattributes), 'x').lower(), fcompression, format(int(fcsize), 'x').lower(), format(int(fuid), 'x').lower(
6618
- ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), format(int(frdev_minor), 'x').lower(), format(int(frdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
6578
+ ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
6619
6579
  catoutlen = len(catoutlist) + len(extradata) + 3
6620
6580
  catoutlenhex = format(catoutlen, 'x').lower()
6621
6581
  catoutlist.insert(0, catoutlenhex)
@@ -6669,8 +6629,8 @@ def TarFileToArrayAlt(infile, listonly=False, contentasfile=True, checksumtype="
6669
6629
  fcontents.seek(0, 0)
6670
6630
  if(not contentasfile):
6671
6631
  fcontents = fcontents.read()
6672
- catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount, 'fminor': fdev_minor,
6673
- 'fmajor': fdev_major, 'frminor': frdev_minor, 'frmajor': frdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
6632
+ catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount,
6633
+ 'fdev': fdev, 'fminor': fdev_minor, 'fmajor': fdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
6674
6634
  fileidnum = fileidnum + 1
6675
6635
  return catlist
6676
6636
 
@@ -6754,10 +6714,9 @@ def ZipFileToArrayAlt(infile, listonly=False, contentasfile=True, checksumtype="
6754
6714
  fcurinode = curfid
6755
6715
  finode = fcurinode
6756
6716
  curfid = curfid + 1
6717
+ fdev = 0
6757
6718
  fdev_minor = 0
6758
6719
  fdev_major = 0
6759
- frdev_minor = 0
6760
- frdev_major = 0
6761
6720
  if(ftype == 5):
6762
6721
  fsize = "0"
6763
6722
  elif(ftype == 0):
@@ -6851,7 +6810,7 @@ def ZipFileToArrayAlt(infile, listonly=False, contentasfile=True, checksumtype="
6851
6810
  extrasizelen = len(extrasizestr)
6852
6811
  extrasizelenhex = format(extrasizelen, 'x').lower()
6853
6812
  catoutlist = [ftypehex, fname, flinkname, format(int(fsize), 'x').lower(), format(int(fatime), 'x').lower(), format(int(fmtime), 'x').lower(), format(int(fctime), 'x').lower(), format(int(fbtime), 'x').lower(), format(int(fmode), 'x').lower(), format(int(fwinattributes), 'x').lower(), fcompression, format(int(fcsize), 'x').lower(), format(int(fuid), 'x').lower(
6854
- ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), format(int(frdev_minor), 'x').lower(), format(int(frdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
6813
+ ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
6855
6814
  catoutlen = len(catoutlist) + len(extradata) + 3
6856
6815
  catoutlenhex = format(catoutlen, 'x').lower()
6857
6816
  catoutlist.insert(0, catoutlenhex)
@@ -6905,8 +6864,8 @@ def ZipFileToArrayAlt(infile, listonly=False, contentasfile=True, checksumtype="
6905
6864
  fcontents.seek(0, 0)
6906
6865
  if(not contentasfile):
6907
6866
  fcontents = fcontents.read()
6908
- catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount, 'fminor': fdev_minor,
6909
- 'fmajor': fdev_major, 'frminor': frdev_minor, 'frmajor': frdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
6867
+ catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount,
6868
+ 'fdev': fdev, 'fminor': fdev_minor, 'fmajor': fdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
6910
6869
  fileidnum = fileidnum + 1
6911
6870
  return catlist
6912
6871
 
@@ -7009,10 +6968,9 @@ if(rarfile_support):
7009
6968
  fcurinode = curfid
7010
6969
  finode = fcurinode
7011
6970
  curfid = curfid + 1
6971
+ fdev = 0
7012
6972
  fdev_minor = 0
7013
6973
  fdev_major = 0
7014
- frdev_minor = 0
7015
- frdev_major = 0
7016
6974
  if(ftype == 5):
7017
6975
  fsize = "0"
7018
6976
  if(ftype == 0):
@@ -7100,7 +7058,7 @@ if(rarfile_support):
7100
7058
  extrasizelen = len(extrasizestr)
7101
7059
  extrasizelenhex = format(extrasizelen, 'x').lower()
7102
7060
  catoutlist = [ftypehex, fname, flinkname, format(int(fsize), 'x').lower(), format(int(fatime), 'x').lower(), format(int(fmtime), 'x').lower(), format(int(fctime), 'x').lower(), format(int(fbtime), 'x').lower(), format(int(fmode), 'x').lower(), format(int(fwinattributes), 'x').lower(), fcompression, format(int(fcsize), 'x').lower(), format(int(fuid), 'x').lower(
7103
- ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), format(int(frdev_minor), 'x').lower(), format(int(frdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
7061
+ ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
7104
7062
  catoutlen = len(catoutlist) + len(extradata) + 3
7105
7063
  catoutlenhex = format(catoutlen, 'x').lower()
7106
7064
  catoutlist.insert(0, catoutlenhex)
@@ -7154,8 +7112,8 @@ if(rarfile_support):
7154
7112
  fcontents.seek(0, 0)
7155
7113
  if(not contentasfile):
7156
7114
  fcontents = fcontents.read()
7157
- catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount, 'fminor': fdev_minor,
7158
- 'fmajor': fdev_major, 'frminor': frdev_minor, 'frmajor': frdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
7115
+ catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount,
7116
+ 'fdev': fdev, 'fminor': fdev_minor, 'fmajor': fdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
7159
7117
  fileidnum = fileidnum + 1
7160
7118
  return catlist
7161
7119
 
@@ -7222,10 +7180,9 @@ if(py7zr_support):
7222
7180
  fcurinode = curfid
7223
7181
  finode = fcurinode
7224
7182
  curfid = curfid + 1
7183
+ fdev = 0
7225
7184
  fdev_minor = 0
7226
7185
  fdev_major = 0
7227
- frdev_minor = 0
7228
- frdev_major = 0
7229
7186
  if(ftype == 5):
7230
7187
  fsize = "0"
7231
7188
  fatime = int(member.creationtime.timestamp())
@@ -7293,7 +7250,7 @@ if(py7zr_support):
7293
7250
  extrasizelen = len(extrasizestr)
7294
7251
  extrasizelenhex = format(extrasizelen, 'x').lower()
7295
7252
  catoutlist = [ftypehex, fname, flinkname, format(int(fsize), 'x').lower(), format(int(fatime), 'x').lower(), format(int(fmtime), 'x').lower(), format(int(fctime), 'x').lower(), format(int(fbtime), 'x').lower(), format(int(fmode), 'x').lower(), format(int(fwinattributes), 'x').lower(), fcompression, format(int(fcsize), 'x').lower(), format(int(fuid), 'x').lower(
7296
- ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), format(int(frdev_minor), 'x').lower(), format(int(frdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
7253
+ ), funame, format(int(fgid), 'x').lower(), fgname, format(int(fcurfid), 'x').lower(), format(int(fcurinode), 'x').lower(), format(int(flinkcount), 'x').lower(), format(int(fdev), 'x').lower(), format(int(fdev_minor), 'x').lower(), format(int(fdev_major), 'x').lower(), "+1", extrasizelenhex, format(catfextrafields, 'x').lower()]
7297
7254
  catoutlen = len(catoutlist) + len(extradata) + 3
7298
7255
  catoutlenhex = format(catoutlen, 'x').lower()
7299
7256
  catoutlist.insert(0, catoutlenhex)
@@ -7347,8 +7304,8 @@ if(py7zr_support):
7347
7304
  fcontents.seek(0, 0)
7348
7305
  if(not contentasfile):
7349
7306
  fcontents = fcontents.read()
7350
- catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount, 'fminor': fdev_minor,
7351
- 'fmajor': fdev_major, 'frminor': frdev_minor, 'frmajor': frdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
7307
+ catlist['ffilelist'].append({'fid': fileidnum, 'fidalt': fileidnum, 'fheadersize': int(catheaersize, 16), 'fhstart': catfhstart, 'fhend': catfhend, 'ftype': ftype, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount,
7308
+ 'fdev': fdev, 'fminor': fdev_minor, 'fmajor': fdev_major, 'fseeknextfile': "+1", 'fheaderchecksumtype': checksumtype, 'fcontentchecksumtype': checksumtype, 'fnumfields': catfnumfields + 2, 'frawheader': catheaderdata, 'fextrafields': catfextrafields, 'fextrafieldsize': extrasizelen, 'fextralist': extrafieldslist, 'fheaderchecksum': int(catfileheadercshex, 16), 'fcontentchecksum': int(catfilecontentcshex, 16), 'fhascontents': pyhascontents, 'fcontentstart': catfcontentstart, 'fcontentend': catfcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents})
7352
7309
  fileidnum = fileidnum + 1
7353
7310
  return catlist
7354
7311
 
@@ -7556,14 +7513,12 @@ def RePackArchiveFile(infile, outfile, compression="auto", compresswholefile=Tru
7556
7513
  fcompression = listcatfiles['ffilelist'][reallcfi]['fcompression']
7557
7514
  fcsize = format(
7558
7515
  int(listcatfiles['ffilelist'][reallcfi]['fcsize']), 'x').lower()
7516
+ fdev = format(
7517
+ int(listcatfiles['ffilelist'][reallcfi]['fdev']), 'x').lower()
7559
7518
  fdev_minor = format(
7560
7519
  int(listcatfiles['ffilelist'][reallcfi]['fminor']), 'x').lower()
7561
7520
  fdev_major = format(
7562
7521
  int(listcatfiles['ffilelist'][reallcfi]['fmajor']), 'x').lower()
7563
- frdev_minor = format(
7564
- int(listcatfiles['ffilelist'][reallcfi]['frminor']), 'x').lower()
7565
- frdev_major = format(
7566
- int(listcatfiles['ffilelist'][reallcfi]['frmajor']), 'x').lower()
7567
7522
  fseeknextfile = listcatfiles['ffilelist'][reallcfi]['fseeknextfile']
7568
7523
  if(len(listcatfiles['ffilelist'][reallcfi]['fextralist']) > listcatfiles['ffilelist'][reallcfi]['fextrafields'] and len(listcatfiles['ffilelist'][reallcfi]['fextralist']) > 0):
7569
7524
  listcatfiles['ffilelist'][reallcfi]['fextrafields'] = len(
@@ -7640,10 +7595,9 @@ def RePackArchiveFile(infile, outfile, compression="auto", compresswholefile=Tru
7640
7595
  int(flinkinfo['fwinattributes']), 'x').lower()
7641
7596
  fcompression = flinkinfo['fcompression']
7642
7597
  fcsize = format(int(flinkinfo['fcsize']), 'x').lower()
7598
+ fdev = format(int(flinkinfo['fdev']), 'x').lower()
7643
7599
  fdev_minor = format(int(flinkinfo['fminor']), 'x').lower()
7644
7600
  fdev_major = format(int(flinkinfo['fmajor']), 'x').lower()
7645
- frdev_minor = format(int(flinkinfo['frminor']), 'x').lower()
7646
- frdev_major = format(int(flinkinfo['frmajor']), 'x').lower()
7647
7601
  fseeknextfile = flinkinfo['fseeknextfile']
7648
7602
  if(len(flinkinfo['fextralist']) > flinkinfo['fextrafields'] and len(flinkinfo['fextralist']) > 0):
7649
7603
  flinkinfo['fextrafields'] = len(flinkinfo['fextralist'])
@@ -7672,7 +7626,7 @@ def RePackArchiveFile(infile, outfile, compression="auto", compresswholefile=Tru
7672
7626
  if(fcompression == "none"):
7673
7627
  fcompression = ""
7674
7628
  catoutlist = [ftypehex, fname, flinkname, fsize, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression, fcsize,
7675
- fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev_minor, fdev_major, frdev_minor, frdev_major, fseeknextfile]
7629
+ fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, fseeknextfile]
7676
7630
  catfp = AppendFileHeaderWithContent(
7677
7631
  catfp, catoutlist, extradata, fcontents.read(), checksumtype, formatspecs)
7678
7632
  fcontents.close()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes