Hex Artifact Content

Not logged in

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..