Module: Cabriolet::Constants

Defined in:
lib/cabriolet/constants.rb

Overview

CAB format constants

Constant Summary collapse

CAB_SIGNATURE =

CAB signature

0x4643534D
COMP_TYPE_NONE =

Compression types

0
COMP_TYPE_MSZIP =
1
COMP_TYPE_QUANTUM =
2
COMP_TYPE_LZX =
3
COMP_TYPE_MASK =

Compression type mask

0x000F
FLAG_PREV_CABINET =

CAB header flags

0x0001
FLAG_NEXT_CABINET =
0x0002
FLAG_RESERVE_PRESENT =
0x0004
ATTRIB_READONLY =

File attribute flags

0x01
ATTRIB_HIDDEN =
0x02
ATTRIB_SYSTEM =
0x04
ATTRIB_ARCH =
0x20
ATTRIB_EXEC =
0x40
ATTRIB_UTF_NAME =
0x80
FOLDER_CONTINUED_FROM_PREV =

Folder index special values

0xFFFD
FOLDER_CONTINUED_TO_NEXT =
0xFFFE
FOLDER_CONTINUED_PREV_AND_NEXT =
0xFFFF
BLOCK_MAX =

Block and folder limits

32_768
INPUT_MAX =

Maximum uncompressed block size

BLOCK_MAX + 6144
FOLDER_MAX =

Maximum compressed block size (LZX worst case)

65_535
LENGTH_MAX =

Maximum number of data blocks per folder

BLOCK_MAX * FOLDER_MAX
CFHEADER_SIZE =

Structure sizes

36
CFHEADER_EXT_SIZE =
4
CFFOLDER_SIZE =
8
CFFILE_SIZE =
16
CFDATA_SIZE =
8
MODE_READ =

I/O modes

0
MODE_WRITE =
1
MODE_UPDATE =
2
MODE_APPEND =
3
SEEK_START =

Seek modes

0
SEEK_CUR =
1
SEEK_END =
2
KWAJ_COMP_NONE =

KWAJ compression types

0
KWAJ_COMP_XOR =
1
KWAJ_COMP_SZDD =
2
KWAJ_COMP_LZH =
3
KWAJ_COMP_MSZIP =
4
KWAJ_HDR_HASLENGTH =

KWAJ header flags

0x01
KWAJ_HDR_HASUNKNOWN1 =
0x02
KWAJ_HDR_HASUNKNOWN2 =
0x04
KWAJ_HDR_HASFILENAME =
0x08
KWAJ_HDR_HASFILEEXT =
0x10
KWAJ_HDR_HASEXTRATEXT =
0x20