Artifact 909c16b823b96e7bba2194ba83583ac1443b6791:
0000: 23 69 66 6e 64 65 66 20 41 46 58 5f 41 52 43 43 #ifndef AFX_ARCC
0010: 50 54 5f 48 5f 5f 42 35 44 31 33 30 32 35 5f 32 PT_H__B5D13025_2
0020: 44 41 39 5f 34 34 38 39 5f 38 42 43 42 5f 41 43 DA9_4489_8BCB_AC
0030: 42 38 34 42 39 30 38 41 38 34 5f 5f 49 4e 43 4c B84B908A84__INCL
0040: 55 44 45 44 5f 0d 0a 23 64 65 66 69 6e 65 20 41 UDED_..#define A
0050: 46 58 5f 41 52 43 43 50 54 5f 48 5f 5f 42 35 44 FX_ARCCPT_H__B5D
0060: 31 33 30 32 35 5f 32 44 41 39 5f 34 34 38 39 5f 13025_2DA9_4489_
0070: 38 42 43 42 5f 41 43 42 38 34 42 39 30 38 41 38 8BCB_ACB84B908A8
0080: 34 5f 5f 49 4e 43 4c 55 44 45 44 5f 0d 0a 0d 0a 4__INCLUDED_....
0090: 23 69 6e 63 6c 75 64 65 20 22 41 72 63 68 69 76 #include "Archiv
00a0: 65 72 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20 er.h"..#include
00b0: 22 53 75 62 44 6c 67 2e 68 22 0d 0a 0d 0a 63 6c "SubDlg.h"....cl
00c0: 61 73 73 20 43 41 72 63 43 70 74 20 3a 20 70 75 ass CArcCpt : pu
00d0: 62 6c 69 63 20 43 41 72 63 68 69 76 65 72 0d 0a blic CArchiver..
00e0: 7b 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 43 41 72 {..public:...CAr
00f0: 63 43 70 74 28 29 20 3a 20 43 41 72 63 68 69 76 cCpt() : CArchiv
0100: 65 72 28 22 63 70 74 2e 62 69 6e 2e 22 29 20 7b er("cpt.bin.") {
0110: 7d 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 09 }....private:...
0120: 69 6e 74 20 20 76 5f 6c 6f 61 64 28 29 7b 72 65 int v_load(){re
0130: 74 75 72 6e 20 61 43 68 65 63 6b 7c 61 4d 65 6c turn aCheck|aMel
0140: 74 7c 61 4c 69 73 74 7c 61 4d 65 6c 74 45 61 63 t|aList|aMeltEac
0150: 68 3b 7d 0d 0a 09 62 6f 6f 6c 20 76 5f 63 68 65 h;}...bool v_che
0160: 63 6b 28 20 63 6f 6e 73 74 20 6b 69 50 61 74 68 ck( const kiPath
0170: 26 20 61 6e 61 6d 65 20 29 3b 0d 0a 09 69 6e 74 & aname );...int
0180: 20 20 76 5f 63 6f 6e 74 65 6e 74 73 28 20 63 6f v_contents( co
0190: 6e 73 74 20 6b 69 50 61 74 68 26 20 61 6e 61 6d nst kiPath& anam
01a0: 65 2c 20 6b 69 50 61 74 68 26 20 64 6e 61 6d 65 e, kiPath& dname
01b0: 20 29 3b 0d 0a 09 69 6e 74 20 20 76 5f 6d 65 6c );...int v_mel
01c0: 74 28 20 63 6f 6e 73 74 20 61 72 63 6e 61 6d 65 t( const arcname
01d0: 26 20 61 6e 61 6d 65 2c 20 63 6f 6e 73 74 20 6b & aname, const k
01e0: 69 50 61 74 68 26 20 64 64 69 72 2c 20 63 6f 6e iPath& ddir, con
01f0: 73 74 20 61 66 6c 41 72 72 61 79 2a 20 66 69 6c st aflArray* fil
0200: 65 73 20 29 3b 0d 0a 09 62 6f 6f 6c 20 76 5f 6c es );...bool v_l
0210: 69 73 74 28 20 63 6f 6e 73 74 20 61 72 63 6e 61 ist( const arcna
0220: 6d 65 26 20 61 6e 61 6d 65 2c 20 61 66 6c 41 72 me& aname, aflAr
0230: 72 61 79 26 20 66 69 6c 65 73 20 29 3b 0d 0a 09 ray& files );...
0240: 6b 69 53 74 72 20 76 5f 6e 61 6d 65 28 63 6f 6e kiStr v_name(con
0250: 73 74 20 63 68 61 72 2a 29 20 63 6f 6e 73 74 20 st char*) const
0260: 7b 20 72 65 74 75 72 6e 20 22 43 50 54 22 3b 20 { return "CPT";
0270: 7d 0d 0a 0d 0a 09 43 41 72 63 50 72 6f 67 72 65 }.....CArcProgre
0280: 73 73 44 6c 67 2a 20 70 64 6c 67 3b 0d 0a 0d 0a ssDlg* pdlg;....
0290: 2f 2f 2d 2d 20 63 70 74 20 61 72 63 68 69 76 65 //-- cpt archive
02a0: 20 6f 70 65 72 61 74 69 6f 6e 73 20 2d 2d 2d 2d operations ----
02b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a ------------....
02c0: 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 5f .unsigned int m_
02d0: 6e 4d 61 63 42 69 6e 4f 66 66 73 65 74 3b 0d 0a nMacBinOffset;..
02e0: 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 5f .unsigned int m_
02f0: 6e 49 6e 64 65 78 50 6f 73 3b 0d 0a 09 75 6e 73 nIndexPos;...uns
0300: 69 67 6e 65 64 20 69 6e 74 20 64 61 74 61 55 4c igned int dataUL
0310: 65 6e 2c 20 64 61 74 61 43 4c 65 6e 3b 0d 0a 0d en, dataCLen;...
0320: 0a 09 6b 69 46 69 6c 65 20 63 70 74 2c 6f 75 74 ..kiFile cpt,out
0330: 3b 0d 0a 09 75 6e 73 69 67 6e 65 64 20 63 68 61 ;...unsigned cha
0340: 72 20 74 6d 70 5b 32 37 30 5d 3b 20 2f 2f 20 74 r tmp[270]; // t
0350: 65 6d 70 0d 0a 0d 0a 09 62 6f 6f 6c 20 72 65 61 emp.....bool rea
0360: 64 5f 6d 61 69 6e 5f 68 64 72 28 29 3b 0d 0a 09 d_main_hdr();...
0370: 62 6f 6f 6c 20 63 68 65 63 6b 5f 69 6e 64 65 78 bool check_index
0380: 5f 63 72 63 28 29 3b 0d 0a 09 62 6f 6f 6c 20 6f _crc();...bool o
0390: 70 65 72 61 74 69 6f 6e 5f 66 6f 72 5f 65 61 63 peration_for_eac
03a0: 68 28 20 62 6f 6f 6c 20 6f 5f 6c 69 73 74 3d 74 h( bool o_list=t
03b0: 72 75 65 2c 20 61 66 6c 41 72 72 61 79 2a 20 66 rue, aflArray* f
03c0: 69 6c 65 73 3d 4e 55 4c 4c 20 29 3b 0d 0a 09 62 iles=NULL );...b
03d0: 6f 6f 6c 20 72 65 63 75 72 73 65 28 20 62 6f 6f ool recurse( boo
03e0: 6c 20 6f 5f 6c 69 73 74 2c 20 61 66 6c 41 72 72 l o_list, aflArr
03f0: 61 79 2a 20 66 69 6c 65 73 2c 20 6b 69 50 61 74 ay* files, kiPat
0400: 68 26 20 70 61 74 68 2c 20 69 6e 74 20 62 61 73 h& path, int bas
0410: 65 2c 20 69 6e 74 20 6e 75 6d 20 29 3b 0d 0a 09 e, int num );...
0420: 76 6f 69 64 20 63 70 74 6d 65 6c 74 28 20 62 6f void cptmelt( bo
0430: 6f 6c 20 69 73 52 4c 20 29 3b 0d 0a 0d 0a 2f 2f ol isRL );....//
0440: 2d 2d 20 6c 7a 68 20 2d 20 72 6c 65 20 2d 2d 2d -- lzh - rle ---
0450: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0460: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a ------------....
0470: 23 64 65 66 69 6e 65 20 43 49 52 43 53 49 5a 45 #define CIRCSIZE
0480: 20 38 31 39 32 0d 0a 09 63 6c 61 73 73 20 73 66 8192...class sf
0490: 5f 65 6e 74 72 79 0d 0a 09 7b 0d 0a 09 70 75 62 _entry...{...pub
04a0: 6c 69 63 3a 0d 0a 09 09 69 6e 74 20 56 61 6c 75 lic:....int Valu
04b0: 65 3b 0d 0a 09 09 69 6e 74 20 42 69 74 4c 65 6e e;....int BitLen
04c0: 67 74 68 3b 0d 0a 09 7d 3b 0d 0a 09 63 6c 61 73 gth;...};...clas
04d0: 73 20 6e 6f 64 65 0d 0a 09 7b 0d 0a 09 70 75 62 s node...{...pub
04e0: 6c 69 63 3a 0d 0a 09 09 69 6e 74 20 66 6c 61 67 lic:....int flag
04f0: 2c 20 62 79 74 65 3b 0d 0a 09 09 6e 6f 64 65 20 , byte;....node
0500: 2a 6f 6e 65 2c 20 2a 7a 65 72 6f 3b 0d 0a 09 7d *one, *zero;...}
0510: 3b 0d 0a 0d 0a 09 76 6f 69 64 20 63 70 74 5f 6f ;.....void cpt_o
0520: 75 74 63 68 28 20 75 6e 73 69 67 6e 65 64 20 63 utch( unsigned c
0530: 68 61 72 20 63 68 20 29 3b 0d 0a 09 42 59 54 45 har ch );...BYTE
0540: 20 63 70 74 5f 6f 75 74 73 74 61 74 2c 63 70 74 cpt_outstat,cpt
0550: 5f 73 61 76 65 63 68 61 72 3b 0d 0a 09 76 6f 69 _savechar;...voi
0560: 64 20 63 70 74 5f 72 6c 65 5f 6c 7a 68 28 29 3b d cpt_rle_lzh();
0570: 0d 0a 09 69 6e 74 20 63 70 74 5f 67 65 74 36 62 ...int cpt_get6b
0580: 69 74 73 28 29 3b 0d 0a 09 69 6e 74 20 63 70 74 its();...int cpt
0590: 5f 67 65 74 62 69 74 28 29 3b 0d 0a 09 76 6f 69 _getbit();...voi
05a0: 64 20 63 70 74 5f 72 65 61 64 48 75 66 66 28 69 d cpt_readHuff(i
05b0: 6e 74 20 73 69 7a 65 2c 6e 6f 64 65 2a 20 48 75 nt size,node* Hu
05c0: 66 66 74 72 65 65 29 3b 0d 0a 0d 0a 09 69 6e 74 fftree);.....int
05d0: 20 67 65 74 68 75 66 66 62 79 74 65 28 6e 6f 64 gethuffbyte(nod
05e0: 65 2a 20 6c 5f 6e 6f 64 65 6c 69 73 74 29 3b 0d e* l_nodelist);.
05f0: 0a 23 64 65 66 69 6e 65 20 53 4c 41 43 4b 20 36 .#define SLACK 6
0600: 0d 0a 09 6e 6f 64 65 20 63 70 74 5f 48 75 66 66 ...node cpt_Huff
0610: 74 72 65 65 5b 35 31 32 20 2b 20 53 4c 41 43 4b tree[512 + SLACK
0620: 5d 2c 63 70 74 5f 4c 5a 6c 65 6e 67 74 68 5b 31 ],cpt_LZlength[1
0630: 32 38 20 2b 20 53 4c 41 43 4b 5d 2c 63 70 74 5f 28 + SLACK],cpt_
0640: 4c 5a 6f 66 66 73 5b 32 35 36 20 2b 20 53 4c 41 LZoffs[256 + SLA
0650: 43 4b 5d 3b 0d 0a 09 75 6e 73 69 67 6e 65 64 20 CK];...unsigned
0660: 63 68 61 72 20 63 70 74 5f 4c 5a 62 75 66 66 5b char cpt_LZbuff[
0670: 43 49 52 43 53 49 5a 45 5d 3b 0d 0a 09 75 6e 73 CIRCSIZE];...uns
0680: 69 67 6e 65 64 20 69 6e 74 20 63 70 74 5f 4c 5a igned int cpt_LZ
0690: 70 74 72 3b 0d 0a 09 75 6e 73 69 67 6e 65 64 20 ptr;...unsigned
06a0: 6c 6f 6e 67 20 63 70 74 5f 6e 65 77 62 69 74 73 long cpt_newbits
06b0: 3b 0d 0a 09 69 6e 74 20 63 70 74 5f 62 69 74 73 ;...int cpt_bits
06c0: 61 76 61 69 6c 3b 0d 0a 09 69 6e 74 20 63 70 74 avail;...int cpt
06d0: 5f 62 6c 6f 63 6b 73 69 7a 65 3b 0d 0a 7d 3b 0d _blocksize;..};.
06e0: 0a 0d 0a 23 65 6e 64 69 66 0d 0a ...#endif..