Hex Artifact Content

Not logged in

Artifact 6032eb8a0710b17d3d86d2bfc0f56ae5fbd0aaa2:


0000: 0d 0a 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61  ..#include "stda
0010: 66 78 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20  fx.h"..#include 
0020: 22 41 72 63 42 32 65 2e 68 22 0d 0a 23 69 6e 63  "ArcB2e.h"..#inc
0030: 6c 75 64 65 20 22 72 65 73 6f 75 72 63 65 2e 68  lude "resource.h
0040: 22 0d 0a 23 69 6e 63 6c 75 64 65 20 22 4e 6f 61  "..#include "Noa
0050: 68 41 70 70 2e 68 22 0d 0a 0d 0a 2f 2f 2d 2d 2d  hApp.h"....//---
0060: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 41  -------------- A
0070: 72 63 42 32 65 83 4e 83 89 83 58 91 53 91 cc 93  rcB2e.N...X.S...
0080: 49 82 c8 8f 88 97 9d 20 2d 2d 2d 2d 2d 2d 2d 2d  I...... --------
0090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
00a0: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 63 68 61 72 20 43  ------....char C
00b0: 41 72 63 42 32 65 3a 3a 73 74 5f 62 61 73 65 5b  ArcB2e::st_base[
00c0: 4d 41 58 5f 50 41 54 48 5d 3b 0d 0a 69 6e 74 20  MAX_PATH];..int 
00d0: 20 43 41 72 63 42 32 65 3a 3a 73 74 5f 6c 69 66   CArcB2e::st_lif
00e0: 65 3d 30 3b 0d 0a 43 41 72 63 42 32 65 3a 3a 43  e=0;..CArcB2e::C
00f0: 42 32 65 43 6f 72 65 2a 20 43 41 72 63 42 32 65  B2eCore* CArcB2e
0100: 3a 3a 72 76 6d 3d 4e 55 4c 4c 3b 0d 0a 0d 0a 63  ::rvm=NULL;....c
0110: 6f 6e 73 74 20 63 68 61 72 2a 20 43 41 72 63 42  onst char* CArcB
0120: 32 65 3a 3a 69 6e 69 74 5f 62 32 65 5f 70 61 74  2e::init_b2e_pat
0130: 68 28 29 0d 0a 7b 0d 0a 09 6b 69 50 61 74 68 20  h()..{...kiPath 
0140: 64 69 72 28 20 6b 69 50 61 74 68 3a 3a 45 78 65  dir( kiPath::Exe
0150: 20 29 3b 0d 0a 09 6b 69 5f 73 74 72 63 70 79 28   );...ki_strcpy(
0160: 20 73 74 5f 62 61 73 65 2c 20 64 69 72 2b 3d 22   st_base, dir+="
0170: 62 32 65 5c 5c 22 20 29 3b 0d 0a 09 72 65 74 75  b2e\\" );...retu
0180: 72 6e 20 73 74 5f 62 61 73 65 3b 0d 0a 7d 0d 0a  rn st_base;..}..
0190: 0d 0a 43 41 72 63 42 32 65 3a 3a 43 41 72 63 42  ..CArcB2e::CArcB
01a0: 32 65 28 20 63 6f 6e 73 74 20 63 68 61 72 2a 20  2e( const char* 
01b0: 73 63 72 69 70 74 6e 61 6d 65 20 29 20 3a 20 43  scriptname ) : C
01c0: 41 72 63 68 69 76 65 72 28 20 73 63 72 69 70 74  Archiver( script
01d0: 6e 61 6d 65 20 29 0d 0a 7b 0d 0a 09 73 74 5f 6c  name )..{...st_l
01e0: 69 66 65 2b 2b 3b 0d 0a 09 65 78 65 20 3d 20 4e  ife++;...exe = N
01f0: 55 4c 4c 3b 0d 0a 09 6d 5f 4c 73 74 53 63 72 20  ULL;...m_LstScr 
0200: 3d 20 6d 5f 44 63 45 53 63 72 20 3d 20 6d 5f 45  = m_DcEScr = m_E
0210: 6e 63 53 63 72 20 3d 0d 0a 09 6d 5f 44 65 63 53  ncScr =...m_DecS
0220: 63 72 20 3d 20 6d 5f 53 66 78 53 63 72 20 3d 20  cr = m_SfxScr = 
0230: 6d 5f 4c 6f 61 64 53 63 72 3d 20 6d 5f 53 63 72  m_LoadScr= m_Scr
0240: 69 70 74 42 75 66 20 3d 20 4e 55 4c 4c 3b 0d 0a  iptBuf = NULL;..
0250: 7d 0d 0a 0d 0a 43 41 72 63 42 32 65 3a 3a 7e 43  }....CArcB2e::~C
0260: 41 72 63 42 32 65 28 29 0d 0a 7b 0d 0a 09 69 66  ArcB2e()..{...if
0270: 28 20 21 28 2d 2d 73 74 5f 6c 69 66 65 29 20 29  ( !(--st_life) )
0280: 0d 0a 09 09 64 65 6c 65 74 65 20 72 76 6d 3b 0d  ....delete rvm;.
0290: 0a 09 64 65 6c 65 74 65 20 5b 5d 20 6d 5f 53 63  ..delete [] m_Sc
02a0: 72 69 70 74 42 75 66 3b 0d 0a 7d 0d 0a 0d 0a 2f  riptBuf;..}..../
02b0: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
02c0: 2d 2d 2d 2d 20 83 58 83 4e 83 8a 83 76 83 67 91  ---- .X.N...v.g.
02d0: a4 82 c9 82 a0 82 dc 82 e8 8a d6 8c 57 82 b5 82  ............W...
02e0: c8 82 a2 95 94 95 aa 20 2d 2d 2d 2d 2d 2d 2d 2d  ....... --------
02f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0300: 2d 0d 0a 0d 0a 62 6f 6f 6c 20 43 41 72 63 42 32  -....bool CArcB2
0310: 65 3a 3a 76 5f 76 65 72 28 20 6b 69 53 74 72 26  e::v_ver( kiStr&
0320: 20 73 74 72 20 29 0d 0a 7b 0d 0a 09 69 66 28 20   str )..{...if( 
0330: 21 65 78 65 20 29 0d 0a 09 09 72 65 74 75 72 6e  !exe )....return
0340: 20 66 61 6c 73 65 3b 0d 0a 09 65 78 65 2d 3e 76   false;...exe->v
0350: 65 72 28 20 73 74 72 20 29 3b 0d 0a 0d 0a 09 6b  er( str );.....k
0360: 69 53 74 72 20 74 6d 70 3b 0d 0a 09 66 6f 72 28  iStr tmp;...for(
0370: 20 69 6e 74 20 69 3d 30 2c 65 3d 6d 5f 73 75 62   int i=0,e=m_sub
0380: 46 69 6c 65 2e 6c 65 6e 28 29 3b 20 69 3c 65 3b  File.len(); i<e;
0390: 20 2b 2b 69 20 29 0d 0a 09 7b 0d 0a 09 09 73 74   ++i )...{....st
03a0: 72 20 2b 3d 20 22 5c 72 5c 6e 22 3b 0d 0a 09 09  r += "\r\n";....
03b0: 43 41 72 63 4d 6f 64 75 6c 65 28 6d 5f 73 75 62  CArcModule(m_sub
03c0: 46 69 6c 65 5b 69 5d 29 2e 76 65 72 28 20 74 6d  File[i]).ver( tm
03d0: 70 20 29 3b 0d 0a 09 09 73 74 72 20 2b 3d 20 74  p );....str += t
03e0: 6d 70 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75 72 6e  mp;...}...return
03f0: 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f   true;..}....boo
0400: 6c 20 43 41 72 63 42 32 65 3a 3a 76 5f 63 68 65  l CArcB2e::v_che
0410: 63 6b 28 20 63 6f 6e 73 74 20 6b 69 50 61 74 68  ck( const kiPath
0420: 26 20 61 6e 61 6d 65 20 29 0d 0a 7b 0d 0a 09 72  & aname )..{...r
0430: 65 74 75 72 6e 20 65 78 65 20 3f 20 65 78 65 2d  eturn exe ? exe-
0440: 3e 63 68 6b 28 20 61 6e 61 6d 65 20 29 20 3a 20  >chk( aname ) : 
0450: 66 61 6c 73 65 3b 0d 0a 7d 0d 0a 0d 0a 69 6e 74  false;..}....int
0460: 20 43 41 72 63 42 32 65 3a 3a 76 5f 63 6f 6e 74   CArcB2e::v_cont
0470: 65 6e 74 73 28 20 63 6f 6e 73 74 20 6b 69 50 61  ents( const kiPa
0480: 74 68 26 20 61 6e 61 6d 65 2c 20 6b 69 50 61 74  th& aname, kiPat
0490: 68 26 20 64 6e 61 6d 65 20 29 0d 0a 7b 0d 0a 09  h& dname )..{...
04a0: 72 65 74 75 72 6e 20 65 78 65 20 3f 20 65 78 65  return exe ? exe
04b0: 2d 3e 63 6e 74 28 20 61 6e 61 6d 65 2c 20 64 6e  ->cnt( aname, dn
04c0: 61 6d 65 20 29 20 3a 20 61 55 6e 6b 6e 6f 77 6e  ame ) : aUnknown
04d0: 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d  ;..}....//------
04e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 83 58  ------------- .X
04f0: 83 4e 83 8a 83 76 83 67 82 f0 93 c7 82 dd 8d 9e  .N...v.g........
0500: 82 dd 81 95 65 76 61 6c 28 20 6c 6f 61 64 3a 20  ....eval( load: 
0510: 29 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ) --------------
0520: 2d 2d 2d 2d 2d 0d 0a 0d 0a 62 6f 6f 6c 20 43 41  -----....bool CA
0530: 72 63 42 32 65 3a 3a 6c 6f 61 64 5f 6d 6f 64 75  rcB2e::load_modu
0540: 6c 65 28 20 63 6f 6e 73 74 20 63 68 61 72 2a 20  le( const char* 
0550: 6e 61 6d 65 20 29 0d 0a 7b 0d 0a 09 65 78 65 20  name )..{...exe 
0560: 3d 20 6e 65 77 20 43 41 72 63 4d 6f 64 75 6c 65  = new CArcModule
0570: 28 20 6e 61 6d 65 2c 20 6d 5f 75 73 4d 6f 64 65  ( name, m_usMode
0580: 20 29 3b 0d 0a 09 72 65 74 75 72 6e 20 65 78 65   );...return exe
0590: 2d 3e 65 78 69 73 74 28 29 3b 0d 0a 7d 0d 0a 0d  ->exist();..}...
05a0: 0a 69 6e 74 20 43 41 72 63 42 32 65 3a 3a 76 5f  .int CArcB2e::v_
05b0: 6c 6f 61 64 28 29 0d 0a 7b 0d 0a 09 2f 2f 2d 2d  load()..{...//--
05c0: 20 8a 67 92 a3 83 58 83 4e 83 8a 83 76 83 67 83   .g...X.N...v.g.
05d0: 74 83 40 83 43 83 8b 82 f0 8a 4a 82 ad 0d 0a 09  t.@.C.....J.....
05e0: 6b 69 53 74 72 20 66 6e 61 6d 65 28 20 73 74 5f  kiStr fname( st_
05f0: 62 61 73 65 20 29 3b 20 66 6e 61 6d 65 20 2b 3d  base ); fname +=
0600: 20 6d 6c 74 5f 65 78 74 28 29 3b 0d 0a 09 6b 69   mlt_ext();...ki
0610: 46 69 6c 65 20 66 70 3b 0d 0a 09 69 66 28 20 66  File fp;...if( f
0620: 70 2e 6f 70 65 6e 28 20 66 6e 61 6d 65 20 29 20  p.open( fname ) 
0630: 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 2d 2d 20 83 74  )...{....//-- .t
0640: 83 40 83 43 83 8b 91 53 91 cc 82 f0 93 c7 82 dd  .@.C...S........
0650: 8d 9e 82 dd 0d 0a 09 09 75 6e 73 69 67 6e 65 64  ........unsigned
0660: 20 69 6e 74 20 6c 6e 3d 66 70 2e 67 65 74 53 69   int ln=fp.getSi
0670: 7a 65 28 29 3b 0d 0a 09 09 6d 5f 53 63 72 69 70  ze();....m_Scrip
0680: 74 42 75 66 20 3d 20 6e 65 77 20 63 68 61 72 5b  tBuf = new char[
0690: 20 6c 6e 2b 31 20 5d 3b 0d 0a 09 09 6c 6e 20 3d   ln+1 ];....ln =
06a0: 20 66 70 2e 72 65 61 64 28 20 28 75 6e 73 69 67   fp.read( (unsig
06b0: 6e 65 64 20 63 68 61 72 2a 29 6d 5f 53 63 72 69  ned char*)m_Scri
06c0: 70 74 42 75 66 2c 20 6c 6e 20 29 3b 0d 0a 09 09  ptBuf, ln );....
06d0: 6d 5f 53 63 72 69 70 74 42 75 66 5b 20 6c 6e 20  m_ScriptBuf[ ln 
06e0: 5d 20 3d 20 27 5c 30 27 3b 0d 0a 0d 0a 09 09 2f  ] = '\0';....../
06f0: 2f 2d 2d 20 73 65 63 74 69 6f 6e 96 88 82 c9 90  /-- section.....
0700: d8 82 e8 95 aa 82 af 82 e9 0d 0a 09 09 62 6f 6f  .............boo
0710: 6c 20 70 61 63 6b 31 2c 63 68 6b 3d 66 61 6c 73  l pack1,chk=fals
0720: 65 3b 0d 0a 09 09 66 6f 72 28 20 63 68 61 72 2a  e;....for( char*
0730: 20 70 3d 6d 5f 53 63 72 69 70 74 42 75 66 3b 20   p=m_ScriptBuf; 
0740: 2a 70 3b 20 70 2b 2b 20 29 0d 0a 09 09 7b 0d 0a  *p; p++ )....{..
0750: 09 09 09 73 77 69 74 63 68 28 20 2a 70 20 29 0d  ...switch( *p ).
0760: 0a 09 09 09 7b 0d 0a 09 09 09 63 61 73 65 20 27  ....{.....case '
0770: 63 27 3a 20 63 61 73 65 20 27 64 27 3a 20 63 61  c': case 'd': ca
0780: 73 65 20 27 65 27 3a 20 63 61 73 65 20 27 6c 27  se 'e': case 'l'
0790: 3a 20 63 61 73 65 20 27 73 27 3a 0d 0a 09 09 09  : case 's':.....
07a0: 09 69 66 28 20 6b 69 5f 6d 65 6d 63 6d 70 28 70  .if( ki_memcmp(p
07b0: 2c 22 6c 6f 61 64 3a 22 2c 35 29 20 29 0d 0a 09  ,"load:",5) )...
07c0: 09 09 09 09 2a 70 3d 27 5c 30 27 2c 20 6d 5f 4c  ....*p='\0', m_L
07d0: 6f 61 64 53 63 72 20 3d 20 28 70 2b 3d 34 29 2b  oadScr = (p+=4)+
07e0: 31 3b 0d 0a 09 09 09 09 65 6c 73 65 20 69 66 28  1;......else if(
07f0: 20 6b 69 5f 6d 65 6d 63 6d 70 28 70 2c 22 65 6e   ki_memcmp(p,"en
0800: 63 6f 64 65 3a 22 2c 37 29 20 29 0d 0a 09 09 09  code:",7) ).....
0810: 09 09 2a 70 3d 27 5c 30 27 2c 20 6d 5f 45 6e 63  ..*p='\0', m_Enc
0820: 53 63 72 20 3d 20 28 70 2b 3d 36 29 2b 31 2c 20  Scr = (p+=6)+1, 
0830: 70 61 63 6b 31 3d 66 61 6c 73 65 3b 0d 0a 09 09  pack1=false;....
0840: 09 09 65 6c 73 65 20 69 66 28 20 6b 69 5f 6d 65  ..else if( ki_me
0850: 6d 63 6d 70 28 70 2c 22 65 6e 63 6f 64 65 31 3a  mcmp(p,"encode1:
0860: 22 2c 38 29 20 29 0d 0a 09 09 09 09 09 2a 70 3d  ",8) ).......*p=
0870: 27 5c 30 27 2c 20 6d 5f 45 6e 63 53 63 72 20 3d  '\0', m_EncScr =
0880: 20 28 70 2b 3d 37 29 2b 31 2c 20 70 61 63 6b 31   (p+=7)+1, pack1
0890: 3d 74 72 75 65 3b 0d 0a 09 09 09 09 65 6c 73 65  =true;......else
08a0: 20 69 66 28 20 6b 69 5f 6d 65 6d 63 6d 70 28 70   if( ki_memcmp(p
08b0: 2c 22 64 65 63 6f 64 65 3a 22 2c 37 29 20 29 0d  ,"decode:",7) ).
08c0: 0a 09 09 09 09 09 2a 70 3d 27 5c 30 27 2c 20 6d  ......*p='\0', m
08d0: 5f 44 65 63 53 63 72 20 3d 20 28 70 2b 3d 36 29  _DecScr = (p+=6)
08e0: 2b 31 3b 0d 0a 09 09 09 09 65 6c 73 65 20 69 66  +1;......else if
08f0: 28 20 6b 69 5f 6d 65 6d 63 6d 70 28 70 2c 22 73  ( ki_memcmp(p,"s
0900: 66 78 3a 22 2c 34 29 20 29 0d 0a 09 09 09 09 09  fx:",4) ).......
0910: 2a 70 3d 27 5c 30 27 2c 20 6d 5f 53 66 78 53 63  *p='\0', m_SfxSc
0920: 72 20 3d 20 28 70 2b 3d 33 29 2b 31 2c 20 6d 5f  r = (p+=3)+1, m_
0930: 53 66 78 44 69 72 65 63 74 3d 66 61 6c 73 65 3b  SfxDirect=false;
0940: 0d 0a 09 09 09 09 65 6c 73 65 20 69 66 28 20 6b  ......else if( k
0950: 69 5f 6d 65 6d 63 6d 70 28 70 2c 22 73 66 78 64  i_memcmp(p,"sfxd
0960: 3a 22 2c 35 29 20 29 0d 0a 09 09 09 09 09 2a 70  :",5) ).......*p
0970: 3d 27 5c 30 27 2c 20 6d 5f 53 66 78 53 63 72 20  ='\0', m_SfxScr 
0980: 3d 20 28 70 2b 3d 34 29 2b 31 2c 20 6d 5f 53 66  = (p+=4)+1, m_Sf
0990: 78 44 69 72 65 63 74 3d 74 72 75 65 3b 0d 0a 09  xDirect=true;...
09a0: 09 09 09 65 6c 73 65 20 69 66 28 20 6b 69 5f 6d  ...else if( ki_m
09b0: 65 6d 63 6d 70 28 70 2c 22 63 68 65 63 6b 3a 22  emcmp(p,"check:"
09c0: 2c 36 29 20 29 0d 0a 09 09 09 09 09 2a 70 3d 27  ,6) ).......*p='
09d0: 5c 30 27 2c 20 28 70 2b 3d 35 29 2c 20 63 68 6b  \0', (p+=5), chk
09e0: 3d 74 72 75 65 3b 0d 0a 09 09 09 09 65 6c 73 65  =true;......else
09f0: 20 69 66 28 20 6b 69 5f 6d 65 6d 63 6d 70 28 70   if( ki_memcmp(p
0a00: 2c 22 64 65 63 6f 64 65 31 3a 22 2c 38 29 20 29  ,"decode1:",8) )
0a10: 0d 0a 09 09 09 09 09 2a 70 3d 27 5c 30 27 2c 20  .......*p='\0', 
0a20: 6d 5f 44 63 45 53 63 72 20 3d 20 28 70 2b 3d 37  m_DcEScr = (p+=7
0a30: 29 3b 0d 0a 09 09 09 09 65 6c 73 65 20 69 66 28  );......else if(
0a40: 20 6b 69 5f 6d 65 6d 63 6d 70 28 70 2c 22 6c 69   ki_memcmp(p,"li
0a50: 73 74 3a 22 2c 35 29 20 29 0d 0a 09 09 09 09 09  st:",5) ).......
0a60: 2a 70 3d 27 5c 30 27 2c 20 6d 5f 4c 73 74 53 63  *p='\0', m_LstSc
0a70: 72 20 3d 20 28 70 2b 3d 34 29 3b 0d 0a 09 09 09  r = (p+=4);.....
0a80: 7d 0d 0a 09 09 09 77 68 69 6c 65 28 20 2a 70 20  }.....while( *p 
0a90: 26 26 20 2a 70 21 3d 27 5c 6e 27 20 26 26 20 2a  && *p!='\n' && *
0aa0: 70 21 3d 27 5c 72 27 20 29 0d 0a 09 09 09 09 70  p!='\r' )......p
0ab0: 2b 2b 3b 0d 0a 09 09 09 69 66 28 20 2a 70 3d 3d  ++;.....if( *p==
0ac0: 27 5c 30 27 20 29 0d 0a 09 09 09 09 62 72 65 61  '\0' )......brea
0ad0: 6b 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 2f 2f 2d  k;....}......//-
0ae0: 2d 20 5b 6c 6f 61 64 3a 5d 82 f0 8e c0 8d 73 81  - [load:].....s.
0af0: 49 0d 0a 09 09 69 66 28 20 6d 5f 4c 6f 61 64 53  I....if( m_LoadS
0b00: 63 72 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 2f 2f  cr )....{.....//
0b10: 2d 2d 20 52 79 74 68 70 56 4d 20 8b 4e 93 ae 0d  -- RythpVM .N...
0b20: 0a 09 09 09 69 66 28 20 21 72 76 6d 20 29 0d 0a  ....if( !rvm )..
0b30: 09 09 09 09 72 76 6d 20 3d 20 6e 65 77 20 43 42  ....rvm = new CB
0b40: 32 65 43 6f 72 65 3b 0d 0a 0d 0a 09 09 09 2f 2f  2eCore;.......//
0b50: 2d 2d 20 8f 89 8a fa 89 bb 0d 0a 09 09 09 6d 5f  -- ...........m_
0b60: 52 65 73 75 6c 74 3d 30 3b 0d 0a 09 09 09 72 76  Result=0;.....rv
0b70: 6d 2d 3e 73 65 74 50 74 72 28 20 74 68 69 73 2c  m->setPtr( this,
0b80: 6d 4c 6f 64 20 29 3b 0d 0a 0d 0a 09 09 09 2f 2f  mLod );.......//
0b90: 2d 2d 20 8e c0 8d 73 0d 0a 09 09 09 72 76 6d 2d  -- ...s.....rvm-
0ba0: 3e 65 76 61 6c 28 20 6d 5f 4c 6f 61 64 53 63 72  >eval( m_LoadScr
0bb0: 20 29 3b 0d 0a 0d 0a 09 09 09 2f 2f 2d 2d 20 8c   );.......//-- .
0bc0: 8b 89 ca 0d 0a 09 09 09 69 66 28 20 6d 5f 52 65  ........if( m_Re
0bd0: 73 75 6c 74 3d 3d 30 20 29 0d 0a 09 09 09 09 72  sult==0 )......r
0be0: 65 74 75 72 6e 20 28 6d 5f 44 65 63 53 63 72 3f  eturn (m_DecScr?
0bf0: 61 4d 65 6c 74 7c 28 6d 5f 44 63 45 53 63 72 3f  aMelt|(m_DcEScr?
0c00: 61 4c 69 73 74 7c 61 4d 65 6c 74 45 61 63 68 3a  aList|aMeltEach:
0c10: 30 29 7c 28 63 68 6b 3f 61 43 68 65 63 6b 3a 30  0)|(chk?aCheck:0
0c20: 29 3a 30 29 0d 0a 09 09 09 09 09 20 7c 20 28 6d  ):0)....... | (m
0c30: 5f 45 6e 63 53 63 72 3f 61 43 6f 6d 70 72 65 73  _EncScr?aCompres
0c40: 73 7c 28 70 61 63 6b 31 3f 30 3a 61 41 72 63 68  s|(pack1?0:aArch
0c50: 69 76 65 29 7c 28 6d 5f 53 66 78 53 63 72 3f 61  ive)|(m_SfxScr?a
0c60: 53 66 78 3a 30 29 3a 30 29 3b 0d 0a 09 09 7d 0d  Sfx:0):0);....}.
0c70: 0a 09 7d 0d 0a 09 72 65 74 75 72 6e 20 30 3b 0d  ..}...return 0;.
0c80: 0a 7d 0d 0a 0d 0a 69 6e 74 20 43 41 72 63 42 32  .}....int CArcB2
0c90: 65 3a 3a 65 78 65 63 5f 73 63 72 69 70 74 28 20  e::exec_script( 
0ca0: 63 6f 6e 73 74 20 63 68 61 72 2a 20 73 63 72 2c  const char* scr,
0cb0: 20 73 63 72 5f 6d 6f 64 65 20 6d 6f 64 65 20 29   scr_mode mode )
0cc0: 0d 0a 7b 0d 0a 09 2f 2f 2d 2d 20 8f 89 8a fa 89  ..{...//-- .....
0cd0: bb 0d 0a 09 6d 5f 52 65 73 75 6c 74 20 3d 20 30  ....m_Result = 0
0ce0: 3b 0d 0a 09 72 76 6d 2d 3e 73 65 74 50 74 72 28  ;...rvm->setPtr(
0cf0: 20 74 68 69 73 2c 20 6d 6f 64 65 20 29 3b 0d 0a   this, mode );..
0d00: 0d 0a 09 2f 2f 2d 2d 20 8e c0 8d 73 0d 0a 09 63  ...//-- ...s...c
0d10: 68 61 72 2a 20 73 63 72 69 70 74 20 3d 20 6e 65  har* script = ne
0d20: 77 20 63 68 61 72 5b 6b 69 5f 73 74 72 6c 65 6e  w char[ki_strlen
0d30: 28 73 63 72 29 2b 38 5d 3b 0d 0a 09 6b 69 5f 73  (scr)+8];...ki_s
0d40: 74 72 63 70 79 28 20 73 63 72 69 70 74 2c 20 22  trcpy( script, "
0d50: 28 65 78 65 63 20 22 20 29 3b 0d 0a 09 6b 69 5f  (exec " );...ki_
0d60: 73 74 72 63 61 74 28 20 73 63 72 69 70 74 2c 20  strcat( script, 
0d70: 73 63 72 20 29 3b 0d 0a 09 6b 69 5f 73 74 72 63  scr );...ki_strc
0d80: 61 74 28 20 73 63 72 69 70 74 2c 20 22 29 22 20  at( script, ")" 
0d90: 29 3b 0d 0a 09 72 76 6d 2d 3e 65 76 61 6c 28 20  );...rvm->eval( 
0da0: 73 63 72 69 70 74 20 29 3b 0d 0a 09 64 65 6c 65  script );...dele
0db0: 74 65 20 5b 5d 20 73 63 72 69 70 74 3b 0d 0a 0d  te [] script;...
0dc0: 0a 09 2f 2f 2d 2d 20 8c 8b 89 ca 0d 0a 09 72 65  ..//-- .......re
0dd0: 74 75 72 6e 20 6d 5f 52 65 73 75 6c 74 3b 0d 0a  turn m_Result;..
0de0: 7d 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  }....//---------
0df0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 83 8a 83 58  ----------- ...X
0e00: 83 67 83 41 83 62 83 76 20 65 76 61 6c 28 20 6c  .g.A.b.v eval( l
0e10: 69 73 74 3a 20 29 20 2d 2d 2d 2d 2d 2d 2d 2d 2d  ist: ) ---------
0e20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
0e30: 0d 0a 62 6f 6f 6c 20 43 41 72 63 42 32 65 3a 3a  ..bool CArcB2e::
0e40: 76 5f 6c 69 73 74 28 20 63 6f 6e 73 74 20 61 72  v_list( const ar
0e50: 63 6e 61 6d 65 26 20 61 6e 61 6d 65 2c 20 61 66  cname& aname, af
0e60: 6c 41 72 72 61 79 26 20 66 69 6c 65 73 20 29 0d  lArray& files ).
0e70: 0a 7b 0d 0a 09 2f 2f 2d 2d 20 83 58 83 4e 83 8a  .{...//-- .X.N..
0e80: 83 76 83 67 96 b3 82 b5 82 c5 89 bd 82 c6 82 a9  .v.g............
0e90: 82 c5 82 ab 82 e9 82 c8 82 e7 82 b7 82 e9 81 42  ...............B
0ea0: 0d 0a 09 69 66 28 20 21 65 78 65 20 29 0d 0a 09  ...if( !exe )...
0eb0: 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a  .return false;..
0ec0: 09 65 6c 73 65 20 69 66 28 20 65 78 65 2d 3e 69  .else if( exe->i
0ed0: 73 64 6c 6c 28 29 20 29 0d 0a 09 09 72 65 74 75  sdll() )....retu
0ee0: 72 6e 20 65 78 65 2d 3e 6c 73 74 5f 64 6c 6c 28  rn exe->lst_dll(
0ef0: 20 61 6e 61 6d 65 2c 20 66 69 6c 65 73 20 29 3b   aname, files );
0f00: 0d 0a 09 65 6c 73 65 20 69 66 28 20 21 6d 5f 4c  ...else if( !m_L
0f10: 73 74 53 63 72 20 29 0d 0a 09 09 72 65 74 75 72  stScr )....retur
0f20: 6e 20 66 61 6c 73 65 3b 0d 0a 0d 0a 2f 2f 2d 2d  n false;....//--
0f30: 20 83 8a 83 58 83 65 83 42 83 93 83 4f 83 58 83   ...X.e.B...O.X.
0f40: 4e 83 8a 83 76 83 67 82 c9 95 4b 97 76 82 c8 83  N...v.g...K.v...
0f50: 66 81 5b 83 5e 0d 0a 0d 0a 09 2f 2f 20 8f 91 8c  f.[.^.....// ...
0f60: c9 96 bc 0d 0a 09 6d 5f 70 73 41 72 63 20 3d 20  ......m_psArc = 
0f70: 26 61 6e 61 6d 65 3b 0d 0a 09 2f 2f 20 83 74 83  &aname;...// .t.
0f80: 40 83 43 83 8b 83 8a 83 58 83 67 0d 0a 09 6d 5f  @.C.....X.g...m_
0f90: 70 73 41 49 6e 66 6f 20 3d 20 26 66 69 6c 65 73  psAInfo = &files
0fa0: 3b 0d 0a 0d 0a 2f 2f 2d 2d 20 8e c0 8d 73 81 49  ;....//-- ...s.I
0fb0: 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ---------------
0fc0: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 72 65 74 75 72  ------.....retur
0fd0: 6e 20 30 3d 3d 65 78 65 63 5f 73 63 72 69 70 74  n 0==exec_script
0fe0: 28 20 6d 5f 4c 73 74 53 63 72 2c 20 6d 4c 73 74  ( m_LstScr, mLst
0ff0: 20 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d   );..}....//----
1000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1010: 20 93 57 8a 4a 8f 88 97 9d 20 65 76 61 6c 28 20   .W.J.... eval( 
1020: 64 65 63 6f 64 65 3a 20 29 20 2d 2d 2d 2d 2d 2d  decode: ) ------
1030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1040: 2d 0d 0a 0d 0a 69 6e 74 20 43 41 72 63 42 32 65  -....int CArcB2e
1050: 3a 3a 76 5f 6d 65 6c 74 28 20 63 6f 6e 73 74 20  ::v_melt( const 
1060: 61 72 63 6e 61 6d 65 26 20 61 6e 61 6d 65 2c 20  arcname& aname, 
1070: 63 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 64 64  const kiPath& dd
1080: 69 72 2c 20 63 6f 6e 73 74 20 61 66 6c 41 72 72  ir, const aflArr
1090: 61 79 2a 20 66 69 6c 65 73 20 29 0d 0a 7b 0d 0a  ay* files )..{..
10a0: 2f 2f 2d 2d 20 89 f0 93 80 83 58 83 4e 83 8a 83  //-- .....X.N...
10b0: 76 83 67 82 c9 95 4b 97 76 82 c8 83 66 81 5b 83  v.g...K.v...f.[.
10c0: 5e 0d 0a 0d 0a 09 2f 2f 20 83 4a 83 8c 83 93 83  ^.....// .J.....
10d0: 67 0d 0a 09 3a 3a 53 65 74 43 75 72 72 65 6e 74  g...::SetCurrent
10e0: 44 69 72 65 63 74 6f 72 79 28 20 64 64 69 72 20  Directory( ddir 
10f0: 29 3b 0d 0a 09 2f 2f 20 8f 91 8c c9 96 bc 0d 0a  );...// ........
1100: 09 6d 5f 70 73 41 72 63 20 3d 20 26 61 6e 61 6d  .m_psArc = &anam
1110: 65 3b 0d 0a 09 2f 2f 20 8f 6f 97 cd 90 e6 83 66  e;...// .o.....f
1120: 83 42 83 8c 83 4e 83 67 83 8a 0d 0a 09 6d 5f 70  .B...N.g.....m_p
1130: 73 44 69 72 20 3d 20 26 64 64 69 72 3b 0d 0a 09  sDir = &ddir;...
1140: 2f 2f 20 83 74 83 40 83 43 83 8b 83 8a 83 58 83  // .t.@.C.....X.
1150: 67 0d 0a 09 6d 5f 70 73 41 49 6e 66 6f 20 3d 20  g...m_psAInfo = 
1160: 66 69 6c 65 73 3b 0d 0a 0d 0a 2f 2f 2d 2d 20 8e  files;....//-- .
1170: c0 8d 73 81 49 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..s.I ----------
1180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 09  -----------.....
1190: 72 65 74 75 72 6e 20 65 78 65 63 5f 73 63 72 69  return exec_scri
11a0: 70 74 28 20 66 69 6c 65 73 20 3f 20 6d 5f 44 63  pt( files ? m_Dc
11b0: 45 53 63 72 20 3a 20 6d 5f 44 65 63 53 63 72 2c  EScr : m_DecScr,
11c0: 0d 0a 09 09 09 09 09 09 66 69 6c 65 73 20 3f 20  ........files ? 
11d0: 6d 44 63 31 20 20 20 20 20 3a 20 6d 44 65 63 20  mDc1     : mDec 
11e0: 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d  );..}....//-----
11f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20  --------------- 
1200: 88 b3 8f 6b 8f 88 97 9d 20 65 76 61 6c 28 20 65  ...k.... eval( e
1210: 6e 63 6f 64 65 3a 20 73 66 78 3a 20 29 20 2d 2d  ncode: sfx: ) --
1220: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1230: 2d 2d 2d 2d 2d 0d 0a 0d 0a 69 6e 74 20 43 41 72  -----....int CAr
1240: 63 42 32 65 3a 3a 63 6d 70 72 28 20 63 6f 6e 73  cB2e::cmpr( cons
1250: 74 20 63 68 61 72 2a 20 73 63 72 2c 20 63 6f 6e  t char* scr, con
1260: 73 74 20 6b 69 50 61 74 68 26 20 62 61 73 65 2c  st kiPath& base,
1270: 20 63 6f 6e 73 74 20 77 66 64 41 72 72 61 79 26   const wfdArray&
1280: 20 66 69 6c 65 73 2c 20 63 6f 6e 73 74 20 6b 69   files, const ki
1290: 50 61 74 68 26 20 64 64 69 72 2c 20 63 6f 6e 73  Path& ddir, cons
12a0: 74 20 69 6e 74 20 6d 65 74 68 6f 64 20 29 0d 0a  t int method )..
12b0: 7b 0d 0a 2f 2f 2d 2d 20 88 b3 8f 6b 83 58 83 4e  {..//-- ...k.X.N
12c0: 83 8a 83 76 83 67 82 c9 95 4b 97 76 82 c8 83 66  ...v.g...K.v...f
12d0: 81 5b 83 5e 0d 0a 0d 0a 09 61 72 63 6e 61 6d 65  .[.^.....arcname
12e0: 20 61 6e 61 6d 65 28 0d 0a 09 09 64 64 69 72 2c   aname(....ddir,
12f0: 0d 0a 09 09 66 69 6c 65 73 5b 30 5d 2e 63 41 6c  ....files[0].cAl
1300: 74 65 72 6e 61 74 65 46 69 6c 65 4e 61 6d 65 2c  ternateFileName,
1310: 0d 0a 09 09 66 69 6c 65 73 5b 30 5d 2e 63 46 69  ....files[0].cFi
1320: 6c 65 4e 61 6d 65 20 29 3b 0d 0a 09 69 6e 74 20  leName );...int 
1330: 6d 68 64 3d 6d 65 74 68 6f 64 2b 31 3b 0d 0a 0d  mhd=method+1;...
1340: 0a 09 2f 2f 20 83 4a 83 8c 83 93 83 67 0d 0a 09  ..// .J.....g...
1350: 3a 3a 53 65 74 43 75 72 72 65 6e 74 44 69 72 65  ::SetCurrentDire
1360: 63 74 6f 72 79 28 20 62 61 73 65 20 29 3b 0d 0a  ctory( base );..
1370: 09 2f 2f 20 8f 91 8c c9 96 bc 0d 0a 09 6d 5f 70  .// .........m_p
1380: 73 41 72 63 20 3d 20 26 61 6e 61 6d 65 3b 0d 0a  sArc = &aname;..
1390: 09 2f 2f 20 83 78 81 5b 83 58 83 66 83 42 83 8c  .// .x.[.X.f.B..
13a0: 83 4e 83 67 83 8a 0d 0a 09 6d 5f 70 73 44 69 72  .N.g.....m_psDir
13b0: 20 3d 20 26 62 61 73 65 3b 0d 0a 09 2f 2f 20 83   = &base;...// .
13c0: 81 83 5c 83 62 83 68 0d 0a 09 6d 5f 70 73 4d 68  ..\.b.h...m_psMh
13d0: 64 20 3d 20 26 6d 68 64 3b 0d 0a 09 2f 2f 20 83  d = &mhd;...// .
13e0: 8a 83 58 83 67 0d 0a 09 6d 5f 70 73 4c 69 73 74  ..X.g...m_psList
13f0: 20 3d 20 26 66 69 6c 65 73 3b 0d 0a 0d 0a 2f 2f   = &files;....//
1400: 2d 2d 20 8e c0 8d 73 81 49 20 2d 2d 2d 2d 2d 2d  -- ...s.I ------
1410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
1420: 0d 0a 09 72 65 74 75 72 6e 20 65 78 65 63 5f 73  ...return exec_s
1430: 63 72 69 70 74 28 20 73 63 72 2c 20 6d 45 6e 63  cript( scr, mEnc
1440: 20 29 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 43   );..}....bool C
1450: 41 72 63 42 32 65 3a 3a 61 72 63 32 73 66 78 28  ArcB2e::arc2sfx(
1460: 20 63 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 74   const kiPath& t
1470: 65 6d 70 2c 20 63 6f 6e 73 74 20 6b 69 50 61 74  emp, const kiPat
1480: 68 26 20 64 65 73 74 20 29 0d 0a 7b 0d 0a 2f 2f  h& dest )..{..//
1490: 2d 2d 20 53 46 58 95 cf 8a b7 83 58 83 4e 83 8a  -- SFX.....X.N..
14a0: 83 76 83 67 82 c9 95 4b 97 76 82 c8 83 66 81 5b  .v.g...K.v...f.[
14b0: 83 5e 0d 0a 0d 0a 09 6b 69 46 69 6e 64 46 69 6c  .^.....kiFindFil
14c0: 65 20 66 3b 0d 0a 09 57 49 4e 33 32 5f 46 49 4e  e f;...WIN32_FIN
14d0: 44 5f 44 41 54 41 20 66 64 3b 0d 0a 09 6b 69 50  D_DATA fd;...kiP
14e0: 61 74 68 20 77 69 6c 64 28 20 74 65 6d 70 20 29  ath wild( temp )
14f0: 3b 0d 0a 09 66 2e 62 65 67 69 6e 28 20 77 69 6c  ;...f.begin( wil
1500: 64 20 2b 3d 20 22 2a 22 20 29 3b 0d 0a 09 69 66  d += "*" );...if
1510: 28 20 21 66 2e 6e 65 78 74 28 20 26 66 64 20 29  ( !f.next( &fd )
1520: 20 29 0d 0a 09 09 72 65 74 75 72 6e 20 66 61 6c   )....return fal
1530: 73 65 3b 0d 0a 09 6b 69 50 61 74 68 20 66 72 6f  se;...kiPath fro
1540: 6d 2c 20 74 6f 2c 20 6f 6c 64 6e 61 6d 65 28 20  m, to, oldname( 
1550: 66 64 2e 63 46 69 6c 65 4e 61 6d 65 20 29 3b 0d  fd.cFileName );.
1560: 0a 09 61 72 63 6e 61 6d 65 20 61 6e 61 6d 65 28  ..arcname aname(
1570: 20 74 65 6d 70 2c 20 66 64 2e 63 41 6c 74 65 72   temp, fd.cAlter
1580: 6e 61 74 65 46 69 6c 65 4e 61 6d 65 5b 30 5d 20  nateFileName[0] 
1590: 3f 20 66 64 2e 63 41 6c 74 65 72 6e 61 74 65 46  ? fd.cAlternateF
15a0: 69 6c 65 4e 61 6d 65 20 3a 20 66 64 2e 63 46 69  ileName : fd.cFi
15b0: 6c 65 4e 61 6d 65 2c 20 66 64 2e 63 46 69 6c 65  leName, fd.cFile
15c0: 4e 61 6d 65 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 83  Name );.....// .
15d0: 4a 83 8c 83 93 83 67 0d 0a 09 3a 3a 53 65 74 43  J.....g...::SetC
15e0: 75 72 72 65 6e 74 44 69 72 65 63 74 6f 72 79 28  urrentDirectory(
15f0: 20 74 65 6d 70 20 29 3b 0d 0a 09 2f 2f 20 8f 91   temp );...// ..
1600: 8c c9 96 bc 0d 0a 09 6d 5f 70 73 41 72 63 20 3d  .......m_psArc =
1610: 20 26 61 6e 61 6d 65 3b 0d 0a 09 2f 2f 20 83 66   &aname;...// .f
1620: 83 42 83 8c 83 4e 83 67 83 8a 0d 0a 09 6d 5f 70  .B...N.g.....m_p
1630: 73 44 69 72 20 3d 20 26 74 65 6d 70 3b 0d 0a 0d  sDir = &temp;...
1640: 0a 2f 2f 2d 2d 20 8e c0 8d 73 81 49 20 2d 2d 2d  .//-- ...s.I ---
1650: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1660: 2d 2d 2d 0d 0a 0d 0a 09 69 66 28 20 30 78 38 30  ---.....if( 0x80
1670: 30 30 3c 3d 65 78 65 63 5f 73 63 72 69 70 74 28  00<=exec_script(
1680: 20 6d 5f 53 66 78 53 63 72 2c 20 6d 53 66 78 20   m_SfxScr, mSfx 
1690: 29 20 29 0d 0a 09 09 72 65 74 75 72 6e 20 66 61  ) )....return fa
16a0: 6c 73 65 3b 0d 0a 0d 0a 2f 2f 2d 2d 20 83 52 83  lse;....//-- .R.
16b0: 73 81 5b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  s.[ ------------
16c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 62  ----------.....b
16d0: 6f 6f 6c 20 73 6b 69 70 70 65 64 3d 66 61 6c 73  ool skipped=fals
16e0: 65 2c 20 61 6e 73 3d 66 61 6c 73 65 3b 0d 0a 09  e, ans=false;...
16f0: 66 2e 62 65 67 69 6e 28 20 77 69 6c 64 20 29 3b  f.begin( wild );
1700: 0d 0a 09 77 68 69 6c 65 28 20 66 2e 6e 65 78 74  ...while( f.next
1710: 28 20 26 66 64 20 29 20 29 0d 0a 09 7b 0d 0a 09  ( &fd ) )...{...
1720: 09 69 66 28 20 21 73 6b 69 70 70 65 64 20 26 26  .if( !skipped &&
1730: 20 6f 6c 64 6e 61 6d 65 20 3d 3d 20 66 64 2e 63   oldname == fd.c
1740: 46 69 6c 65 4e 61 6d 65 20 29 20 2f 2f 20 83 65  FileName ) // .e
1750: 83 93 83 7c 83 89 83 8a 8f 91 8c c9 82 cd 83 52  ...|...........R
1760: 83 73 81 5b 82 b5 82 c8 82 a2 81 42 0d 0a 09 09  .s.[.......B....
1770: 7b 0d 0a 09 09 09 73 6b 69 70 70 65 64 3d 74 72  {.....skipped=tr
1780: 75 65 3b 0d 0a 09 09 09 63 6f 6e 74 69 6e 75 65  ue;.....continue
1790: 3b 0d 0a 09 09 7d 0d 0a 09 09 66 72 6f 6d 20 3d  ;....}....from =
17a0: 20 74 65 6d 70 2c 20 66 72 6f 6d 20 2b 3d 20 66   temp, from += f
17b0: 64 2e 63 46 69 6c 65 4e 61 6d 65 3b 0d 0a 09 09  d.cFileName;....
17c0: 74 6f 20 20 20 3d 20 64 65 73 74 2c 20 74 6f 20  to   = dest, to 
17d0: 20 20 2b 3d 20 66 64 2e 63 46 69 6c 65 4e 61 6d    += fd.cFileNam
17e0: 65 3b 0d 0a 09 09 69 66 28 20 3a 3a 43 6f 70 79  e;....if( ::Copy
17f0: 46 69 6c 65 28 20 66 72 6f 6d 2c 20 74 6f 2c 20  File( from, to, 
1800: 46 41 4c 53 45 20 29 20 29 0d 0a 09 09 09 61 6e  FALSE ) ).....an
1810: 73 20 3d 20 74 72 75 65 3b 0d 0a 09 7d 0d 0a 09  s = true;...}...
1820: 72 65 74 75 72 6e 20 61 6e 73 3b 0d 0a 7d 0d 0a  return ans;..}..
1830: 0d 0a 69 6e 74 20 43 41 72 63 42 32 65 3a 3a 76  ..int CArcB2e::v
1840: 5f 63 6f 6d 70 72 65 73 73 28 20 63 6f 6e 73 74  _compress( const
1850: 20 6b 69 50 61 74 68 26 20 62 61 73 65 2c 20 63   kiPath& base, c
1860: 6f 6e 73 74 20 77 66 64 41 72 72 61 79 26 20 66  onst wfdArray& f
1870: 69 6c 65 73 2c 20 63 6f 6e 73 74 20 6b 69 50 61  iles, const kiPa
1880: 74 68 26 20 64 64 69 72 2c 20 69 6e 74 20 6d 65  th& ddir, int me
1890: 74 68 6f 64 2c 20 62 6f 6f 6c 20 73 66 78 20 29  thod, bool sfx )
18a0: 0d 0a 7b 0d 0a 09 63 6f 6e 73 74 20 63 68 61 72  ..{...const char
18b0: 2a 20 74 68 65 53 63 72 69 70 74 20 3d 20 6d 5f  * theScript = m_
18c0: 45 6e 63 53 63 72 3b 0d 0a 0d 0a 09 69 66 28 20  EncScr;.....if( 
18d0: 73 66 78 20 29 0d 0a 09 7b 0d 0a 09 09 69 66 28  sfx )...{....if(
18e0: 20 6d 5f 53 66 78 44 69 72 65 63 74 20 29 0d 0a   m_SfxDirect )..
18f0: 09 09 09 74 68 65 53 63 72 69 70 74 20 3d 20 6d  ...theScript = m
1900: 5f 53 66 78 53 63 72 3b 0d 0a 09 09 65 6c 73 65  _SfxScr;....else
1910: 0d 0a 09 09 7b 0d 0a 09 09 09 6b 69 50 61 74 68  ....{.....kiPath
1920: 20 74 6d 70 3b 0d 0a 09 09 09 6d 79 61 70 70 28   tmp;.....myapp(
1930: 29 2e 67 65 74 5f 74 65 6d 70 64 69 72 28 20 74  ).get_tempdir( t
1940: 6d 70 20 29 3b 0d 0a 0d 0a 09 09 09 2f 2f 20 83  mp );.......// .
1950: 65 83 93 83 7c 83 89 83 8a 82 d6 88 b3 8f 6b 0d  e...|.........k.
1960: 0a 09 09 09 69 6e 74 20 61 6e 73 20 3d 20 63 6d  ....int ans = cm
1970: 70 72 28 20 6d 5f 45 6e 63 53 63 72 2c 20 62 61  pr( m_EncScr, ba
1980: 73 65 2c 20 66 69 6c 65 73 2c 20 74 6d 70 2c 20  se, files, tmp, 
1990: 6d 65 74 68 6f 64 20 29 3b 0d 0a 09 09 09 69 66  method );.....if
19a0: 28 20 61 6e 73 20 3c 20 30 78 38 30 30 30 20 29  ( ans < 0x8000 )
19b0: 0d 0a 09 09 09 09 2f 2f 20 83 65 83 93 83 7c 83  ......// .e...|.
19c0: 89 83 8a 82 c9 97 8e 82 bf 82 c4 82 e9 83 74 83  ..............t.
19d0: 40 83 43 83 8b 82 f0 53 46 58 82 c9 95 cf 8a b7  @.C....SFX......
19e0: 81 95 83 52 83 73 81 5b 81 49 0d 0a 09 09 09 09  ...R.s.[.I......
19f0: 61 6e 73 20 3d 20 28 61 72 63 32 73 66 78 28 20  ans = (arc2sfx( 
1a00: 74 6d 70 2c 20 64 64 69 72 20 29 20 3f 20 30 20  tmp, ddir ) ? 0 
1a10: 3a 20 30 78 38 30 32 30 29 3b 0d 0a 0d 0a 09 09  : 0x8020);......
1a20: 09 2f 2f 20 83 4a 83 8c 83 93 83 67 82 f0 96 df  .// .J.....g....
1a30: 82 b5 82 c4 82 a8 82 a9 82 c8 82 a2 82 c6 8d ed  ................
1a40: 8f 9c 82 c5 82 ab 82 c8 82 a2 81 63 28 3b 5f 3b  ...........c(;_;
1a50: 29 0d 0a 09 09 09 3a 3a 53 65 74 43 75 72 72 65  ).....::SetCurre
1a60: 6e 74 44 69 72 65 63 74 6f 72 79 28 20 62 61 73  ntDirectory( bas
1a70: 65 20 29 3b 0d 0a 09 09 09 74 6d 70 2e 72 65 6d  e );.....tmp.rem
1a80: 6f 76 65 28 29 3b 0d 0a 09 09 09 72 65 74 75 72  ove();.....retur
1a90: 6e 20 61 6e 73 3b 0d 0a 09 09 7d 0d 0a 09 7d 0d  n ans;....}...}.
1aa0: 0a 0d 0a 09 2f 2f 20 8f 6f 97 cd 90 e6 82 d6 95  ....// .o.......
1ab0: 81 92 ca 82 c9 88 b3 8f 6b 0d 0a 09 72 65 74 75  ........k...retu
1ac0: 72 6e 20 63 6d 70 72 28 20 74 68 65 53 63 72 69  rn cmpr( theScri
1ad0: 70 74 2c 20 62 61 73 65 2c 20 66 69 6c 65 73 2c  pt, base, files,
1ae0: 20 64 64 69 72 2c 20 6d 65 74 68 6f 64 20 29 3b   ddir, method );
1af0: 0d 0a 7d 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d  ..}....//-------
1b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1b10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1b20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1b30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 2f 2f  ----------//..//
1b40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1b50: 2d 2d 2d 2d 20 52 79 74 68 70 56 4d 82 cc 95 fb  ---- RythpVM....
1b60: 82 cc 8e c0 96 b1 20 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...... ---------
1b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1b80: 2d 2f 2f 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  -//..//---------
1b90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1ba0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1bb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1bc0: 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 62 6f  --------//....bo
1bd0: 6f 6c 20 43 41 72 63 42 32 65 3a 3a 43 42 32 65  ol CArcB2e::CB2e
1be0: 43 6f 72 65 3a 3a 65 78 65 63 5f 66 75 6e 63 74  Core::exec_funct
1bf0: 69 6f 6e 28 20 63 6f 6e 73 74 20 6b 69 56 61 72  ion( const kiVar
1c00: 26 20 6e 61 6d 65 2c 20 63 6f 6e 73 74 20 43 68  & name, const Ch
1c10: 61 72 41 72 72 61 79 26 20 61 2c 20 63 6f 6e 73  arArray& a, cons
1c20: 74 20 42 6f 6f 6c 41 72 72 61 79 26 20 62 2c 20  t BoolArray& b, 
1c30: 69 6e 74 20 63 2c 20 6b 69 56 61 72 2a 20 72 20  int c, kiVar* r 
1c40: 29 0d 0a 7b 0d 0a 09 62 6f 6f 6c 20 70 72 6f 63  )..{...bool proc
1c50: 65 73 73 65 64 20 3d 20 66 61 6c 73 65 3b 0d 0a  essed = false;..
1c60: 0d 0a 09 69 66 28 20 6d 5f 6d 6f 64 65 3d 3d 6d  ...if( m_mode==m
1c70: 4c 6f 64 20 29 7b 20 2f 2f 2a 2a 83 8d 81 5b 83  Lod ){ //**...[.
1c80: 68 8e 9e 90 ea 97 70 66 75 6e 63 74 69 6f 6e 73  h.....pfunctions
1c90: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
1ca0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 09 09  ************....
1cb0: 69 66 28 20 6e 61 6d 65 3d 3d 22 6e 61 6d 65 22  if( name=="name"
1cc0: 20 29 7b 0d 0a 09 09 09 70 72 6f 63 65 73 73 65   ){.....processe
1cd0: 64 3d 74 72 75 65 3b 0d 0a 0d 0a 09 09 09 2f 2f  d=true;.......//
1ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1cf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09  -----------//...
1d00: 09 09 2f 2f 2d 2d 20 28 6e 61 6d 65 20 6d 6f 64  ..//-- (name mod
1d10: 75 6c 65 5f 66 69 6c 65 6e 61 6d 65 29 2d 2d 2f  ule_filename)--/
1d20: 2f 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d  /.....//--------
1d30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1d40: 2d 2d 2d 2f 2f 0d 0a 09 09 09 69 66 28 20 63 3e  ---//.....if( c>
1d50: 3d 32 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09  =2 ).....{......
1d60: 78 2d 3e 6d 5f 75 73 4d 6f 64 65 20 3d 20 66 61  x->m_usMode = fa
1d70: 6c 73 65 3b 0d 0a 09 09 09 09 69 66 28 20 63 3e  lse;......if( c>
1d80: 3d 33 20 29 0d 0a 09 09 09 09 7b 0d 0a 09 09 09  =3 )......{.....
1d90: 09 09 67 65 74 61 72 67 28 20 61 5b 32 5d 2c 62  ..getarg( a[2],b
1da0: 5b 32 5d 2c 26 74 20 29 3b 0d 0a 09 09 09 09 09  [2],&t );.......
1db0: 78 2d 3e 6d 5f 75 73 4d 6f 64 65 20 3d 20 28 20  x->m_usMode = ( 
1dc0: 74 3d 3d 22 75 73 22 20 29 3b 0d 0a 09 09 09 09  t=="us" );......
1dd0: 7d 0d 0a 0d 0a 09 09 09 09 67 65 74 61 72 67 28  }........getarg(
1de0: 20 61 5b 31 5d 2c 62 5b 31 5d 2c 26 74 20 29 3b   a[1],b[1],&t );
1df0: 0d 0a 09 09 09 09 69 66 28 20 78 2d 3e 6c 6f 61  ......if( x->loa
1e00: 64 5f 6d 6f 64 75 6c 65 28 74 29 20 29 0d 0a 09  d_module(t) )...
1e10: 09 09 09 09 2a 72 20 3d 20 22 65 78 65 63 22 3b  ....*r = "exec";
1e20: 0d 0a 09 09 09 09 65 6c 73 65 0d 0a 09 09 09 09  ......else......
1e30: 09 2a 72 20 3d 20 22 22 2c 20 78 2d 3e 6d 5f 52  .*r = "", x->m_R
1e40: 65 73 75 6c 74 3d 30 78 66 66 66 66 3b 0d 0a 09  esult=0xffff;...
1e50: 09 09 7d 0d 0a 0d 0a 09 09 7d 65 6c 73 65 20 69  ..}......}else i
1e60: 66 28 20 6e 61 6d 65 3d 3d 22 74 79 70 65 22 20  f( name=="type" 
1e70: 29 7b 0d 0a 09 09 09 70 72 6f 63 65 73 73 65 64  ){.....processed
1e80: 3d 74 72 75 65 3b 0d 0a 0d 0a 09 09 09 2f 2f 2d  =true;.......//-
1e90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1eb0: 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 20 28 74  --//.....//-- (t
1ec0: 79 70 65 20 65 78 74 20 6d 65 74 68 6f 64 31 20  ype ext method1 
1ed0: 6d 65 74 68 6f 64 32 20 2e 2e 2e 29 2d 2d 2f 2f  method2 ...)--//
1ee0: 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  .....//---------
1ef0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1f00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09  ----------//....
1f10: 09 66 6f 72 28 20 69 6e 74 20 69 3d 31 3b 20 69  .for( int i=1; i
1f20: 3c 63 3b 20 69 2b 2b 20 29 0d 0a 09 09 09 7b 0d  <c; i++ ).....{.
1f30: 0a 09 09 09 09 67 65 74 61 72 67 28 20 61 5b 69  .....getarg( a[i
1f40: 5d 2c 62 5b 69 5d 2c 26 74 20 29 3b 0d 0a 09 09  ],b[i],&t );....
1f50: 09 09 69 66 28 20 69 3d 3d 31 20 29 0d 0a 09 09  ..if( i==1 )....
1f60: 09 09 09 78 2d 3e 73 65 74 5f 63 6d 70 5f 65 78  ...x->set_cmp_ex
1f70: 74 28 20 74 20 29 3b 0d 0a 09 09 09 09 65 6c 73  t( t );......els
1f80: 65 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09 09 63  e......{.......c
1f90: 6f 6e 73 74 20 63 68 61 72 2a 20 70 74 72 3d 74  onst char* ptr=t
1fa0: 3b 0d 0a 09 09 09 09 09 78 2d 3e 61 64 64 5f 63  ;.......x->add_c
1fb0: 6d 70 5f 6d 68 64 28 20 2a 70 74 72 3d 3d 27 2a  mp_mhd( *ptr=='*
1fc0: 27 20 3f 20 70 74 72 2b 31 20 3a 20 70 74 72 2c  ' ? ptr+1 : ptr,
1fd0: 20 2a 70 74 72 3d 3d 27 2a 27 20 29 3b 0d 0a 09   *ptr=='*' );...
1fe0: 09 09 09 7d 0d 0a 09 09 09 7d 0d 0a 09 09 7d 65  ...}.....}....}e
1ff0: 6c 73 65 20 69 66 28 20 6e 61 6d 65 3d 3d 22 75  lse if( name=="u
2000: 73 65 22 20 29 7b 0d 0a 09 09 09 70 72 6f 63 65  se" ){.....proce
2010: 73 73 65 64 3d 74 72 75 65 3b 0d 0a 0d 0a 09 09  ssed=true;......
2020: 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .//-------------
2030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2040: 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 20 28 75  --//.....//-- (u
2050: 73 65 20 6d 6f 64 75 6c 65 31 20 6d 6f 64 75 6c  se module1 modul
2060: 65 32 20 2e 2e 2e 29 20 2d 2d 2f 2f 0d 0a 09 09  e2 ...) --//....
2070: 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .//-------------
2080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2090: 2d 2d 2f 2f 0d 0a 09 09 09 66 6f 72 28 20 69 6e  --//.....for( in
20a0: 74 20 69 3d 31 3b 20 69 3c 63 3b 20 69 2b 2b 20  t i=1; i<c; i++ 
20b0: 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 67 65 74  ).....{......get
20c0: 61 72 67 28 20 61 5b 69 5d 2c 62 5b 69 5d 2c 26  arg( a[i],b[i],&
20d0: 74 20 29 3b 0d 0a 09 09 09 09 78 2d 3e 6d 5f 73  t );......x->m_s
20e0: 75 62 46 69 6c 65 2e 61 64 64 28 20 74 20 29 3b  ubFile.add( t );
20f0: 0d 0a 09 09 09 7d 0d 0a 09 09 7d 0d 0a 09 7d 65  .....}....}...}e
2100: 6c 73 65 7b 2f 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  lse{//**********
2110: 2a 2a 20 83 8d 81 5b 83 68 8e 9e 82 c9 82 cd 8e  ** ...[.h.......
2120: 67 82 a6 82 c8 82 a2 66 75 6e 63 74 69 6f 6e 73  g......functions
2130: 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ***************
2140: 2a 2a 2a 2a 2a 2a 0d 0a 09 09 69 66 28 20 6b 69  ******....if( ki
2150: 5f 6d 65 6d 63 6d 70 28 20 28 63 6f 6e 73 74 20  _memcmp( (const 
2160: 63 68 61 72 2a 29 6e 61 6d 65 2c 20 22 61 72 63  char*)name, "arc
2170: 22 2c 20 33 20 29 20 29 7b 0d 0a 09 09 09 70 72  ", 3 ) ){.....pr
2180: 6f 63 65 73 73 65 64 3d 74 72 75 65 3b 0d 0a 0d  ocessed=true;...
2190: 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....//----------
21a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
21b0: 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 20 28 61 72  -//.....//-- (ar
21c0: 63 5b 2b 2d 5d 2e 78 78 78 20 5b 73 6c 66 72 64  c[+-].xxx [slfrd
21d0: 5d 29 20 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d  ]) --//.....//--
21e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
21f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09  ---------//.....
2200: 61 72 63 28 20 28 28 63 6f 6e 73 74 20 63 68 61  arc( ((const cha
2210: 72 2a 29 6e 61 6d 65 29 2b 33 2c 20 61 2c 20 62  r*)name)+3, a, b
2220: 2c 20 63 2c 20 72 20 29 3b 0d 0a 0d 0a 09 09 7d  , c, r );......}
2230: 65 6c 73 65 20 69 66 28 20 6b 69 5f 6d 65 6d 63  else if( ki_memc
2240: 6d 70 28 20 28 63 6f 6e 73 74 20 63 68 61 72 2a  mp( (const char*
2250: 29 6e 61 6d 65 2c 20 22 6c 69 73 74 22 2c 20 34  )name, "list", 4
2260: 20 29 20 29 7b 0d 0a 09 09 09 70 72 6f 63 65 73   ) ){.....proces
2270: 73 65 64 3d 74 72 75 65 3b 0d 0a 0d 0a 09 09 09  sed=true;.......
2280: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
2290: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f  --------------//
22a0: 0d 0a 09 09 09 2f 2f 2d 2d 20 28 6c 69 73 74 5b  .....//-- (list[
22b0: 5c 2a 7c 5c 2a 2e 2a 5d 20 5b 73 6c 66 6e 5d 29  \*|\*.*] [slfn])
22c0: 20 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d   --//.....//----
22d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22e0: 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 6c  --------//.....l
22f0: 69 73 74 28 20 28 28 63 6f 6e 73 74 20 63 68 61  ist( ((const cha
2300: 72 2a 29 6e 61 6d 65 29 2b 34 2c 20 61 2c 20 62  r*)name)+4, a, b
2310: 2c 20 63 2c 20 72 20 29 3b 0d 0a 0d 0a 09 09 7d  , c, r );......}
2320: 65 6c 73 65 20 69 66 28 20 6e 61 6d 65 3d 3d 22  else if( name=="
2330: 6d 65 74 68 6f 64 22 20 29 7b 0d 0a 09 09 09 70  method" ){.....p
2340: 72 6f 63 65 73 73 65 64 3d 74 72 75 65 3b 0d 0a  rocessed=true;..
2350: 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  .....//---------
2360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09  ----------//....
2370: 09 2f 2f 2d 2d 20 28 6d 65 74 68 6f 64 20 5b 6e  .//-- (method [n
2380: 6f 5d 29 20 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d  o]) --//.....//-
2390: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
23a0: 2d 2d 2f 2f 0d 0a 09 09 09 69 66 28 20 63 3e 3d  --//.....if( c>=
23b0: 32 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 67  2 ).....{......g
23c0: 65 74 61 72 67 28 20 61 5b 31 5d 2c 62 5b 31 5d  etarg( a[1],b[1]
23d0: 2c 26 74 20 29 3b 0d 0a 09 09 09 09 2a 72 20 3d  ,&t );......*r =
23e0: 20 74 2e 67 65 74 49 6e 74 28 29 3d 3d 2a 78 2d   t.getInt()==*x-
23f0: 3e 6d 5f 70 73 4d 68 64 20 3f 20 22 31 22 20 3a  >m_psMhd ? "1" :
2400: 20 22 30 22 3b 0d 0a 09 09 09 7d 0d 0a 09 09 09   "0";.....}.....
2410: 65 6c 73 65 0d 0a 09 09 09 09 72 2d 3e 73 65 74  else......r->set
2420: 49 6e 74 28 20 2a 78 2d 3e 6d 5f 70 73 4d 68 64  Int( *x->m_psMhd
2430: 20 29 3b 0d 0a 0d 0a 09 09 7d 65 6c 73 65 20 69   );......}else i
2440: 66 28 20 6e 61 6d 65 3d 3d 22 64 69 72 22 20 29  f( name=="dir" )
2450: 7b 0d 0a 09 09 09 70 72 6f 63 65 73 73 65 64 3d  {.....processed=
2460: 74 72 75 65 3b 0d 0a 0d 0a 09 09 09 2f 2f 2d 2d  true;.......//--
2470: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09  ---------//.....
2480: 2f 2f 2d 2d 20 28 64 69 72 29 20 2d 2d 2f 2f 0d  //-- (dir) --//.
2490: 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....//----------
24a0: 2d 2f 2f 0d 0a 09 09 09 2a 72 20 3d 20 28 78 2d  -//.....*r = (x-
24b0: 3e 6d 5f 70 73 44 69 72 20 3f 20 2a 78 2d 3e 6d  >m_psDir ? *x->m
24c0: 5f 70 73 44 69 72 20 3a 20 28 63 6f 6e 73 74 20  _psDir : (const 
24d0: 63 68 61 72 2a 29 22 22 29 3b 0d 0a 0d 0a 09 09  char*)"");......
24e0: 7d 65 6c 73 65 20 69 66 28 20 6e 61 6d 65 3d 3d  }else if( name==
24f0: 22 64 65 6c 22 20 29 7b 0d 0a 09 09 09 70 72 6f  "del" ){.....pro
2500: 63 65 73 73 65 64 3d 74 72 75 65 3b 0d 0a 0d 0a  cessed=true;....
2510: 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...//-----------
2520: 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 2f  --------//...../
2530: 2f 2d 2d 20 28 64 65 6c 20 66 69 6c 65 6e 61 6d  /-- (del filenam
2540: 29 20 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 2d  ) --//.....//---
2550: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2560: 2f 2f 0d 0a 09 09 09 69 66 28 20 63 3e 3d 32 20  //.....if( c>=2 
2570: 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 67 65 74  ).....{......get
2580: 61 72 67 28 20 61 5b 31 5d 2c 62 5b 31 5d 2c 26  arg( a[1],b[1],&
2590: 74 20 29 3b 0d 0a 09 09 09 09 3a 3a 44 65 6c 65  t );......::Dele
25a0: 74 65 46 69 6c 65 28 20 6b 69 50 61 74 68 28 20  teFile( kiPath( 
25b0: 74 2e 75 6e 71 75 6f 74 65 28 29 20 29 20 29 3b  t.unquote() ) );
25c0: 0d 0a 09 09 09 7d 0d 0a 0d 0a 09 09 7d 65 6c 73  .....}......}els
25d0: 65 20 69 66 28 20 6b 69 5f 6d 65 6d 63 6d 70 28  e if( ki_memcmp(
25e0: 20 28 63 6f 6e 73 74 20 63 68 61 72 2a 29 6e 61   (const char*)na
25f0: 6d 65 2c 20 22 72 65 73 70 22 2c 20 34 20 29 0d  me, "resp", 4 ).
2600: 0a 09 09 09 7c 7c 09 20 20 6b 69 5f 6d 65 6d 63  ....||.  ki_memc
2610: 6d 70 28 20 28 63 6f 6e 73 74 20 63 68 61 72 2a  mp( (const char*
2620: 29 6e 61 6d 65 2c 20 22 72 65 73 71 22 2c 20 34  )name, "resq", 4
2630: 20 29 20 29 7b 0d 0a 09 09 09 70 72 6f 63 65 73   ) ){.....proces
2640: 73 65 64 3d 74 72 75 65 3b 0d 0a 0d 0a 09 09 09  sed=true;.......
2650: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
2660: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f  --------------//
2670: 0d 0a 09 09 09 2f 2f 2d 2d 20 28 72 65 73 70 5b  .....//-- (resp[
2680: 40 7c 2d 6f 5d 20 28 6c 69 73 74 20 61 29 29 20  @|-o] (list a)) 
2690: 2d 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d  ---//.....//----
26a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
26b0: 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 72  --------//.....r
26c0: 65 73 70 28 20 6e 61 6d 65 5b 33 5d 3d 3d 27 70  esp( name[3]=='p
26d0: 27 2c 20 28 28 63 6f 6e 73 74 20 63 68 61 72 2a  ', ((const char*
26e0: 29 6e 61 6d 65 29 2b 34 2c 20 61 2c 20 62 2c 20  )name)+4, a, b, 
26f0: 63 2c 20 72 20 29 3b 0d 0a 0d 0a 09 09 7d 65 6c  c, r );......}el
2700: 73 65 20 69 66 28 20 6e 61 6d 65 3d 3d 22 63 64  se if( name=="cd
2710: 22 20 29 7b 0d 0a 09 09 09 70 72 6f 63 65 73 73  " ){.....process
2720: 65 64 3d 74 72 75 65 3b 0d 0a 0d 0a 09 09 09 2f  ed=true;......./
2730: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
2740: 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 20  ----//.....//-- 
2750: 28 63 64 20 64 69 72 65 63 74 6f 72 79 29 2d 2d  (cd directory)--
2760: 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d  //.....//-------
2770: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a  ------------//..
2780: 09 09 09 69 66 28 20 63 3e 3d 32 20 29 0d 0a 09  ...if( c>=2 )...
2790: 09 09 7b 0d 0a 09 09 09 09 67 65 74 61 72 67 28  ..{......getarg(
27a0: 20 61 5b 31 5d 2c 62 5b 31 5d 2c 26 74 20 29 3b   a[1],b[1],&t );
27b0: 0d 0a 09 09 09 09 3a 3a 53 65 74 43 75 72 72 65  ......::SetCurre
27c0: 6e 74 44 69 72 65 63 74 6f 72 79 28 20 74 2e 75  ntDirectory( t.u
27d0: 6e 71 75 6f 74 65 28 29 20 29 3b 0d 0a 09 09 09  nquote() );.....
27e0: 7d 0d 0a 0d 0a 09 09 7d 65 6c 73 65 20 69 66 28  }......}else if(
27f0: 20 6e 61 6d 65 3d 3d 22 63 6d 64 22 20 7c 7c 20   name=="cmd" || 
2800: 6e 61 6d 65 3d 3d 22 78 63 6d 64 22 20 29 7b 0d  name=="xcmd" ){.
2810: 0a 09 09 09 70 72 6f 63 65 73 73 65 64 3d 74 72  ....processed=tr
2820: 75 65 3b 0d 0a 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d  ue;.......//----
2830: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2840: 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 2f  --------//...../
2850: 2f 2d 2d 20 28 63 6d 64 20 63 6f 6d 6d 61 6e 64  /-- (cmd command
2860: 20 6c 69 6e 65 20 2e 2e 2e 29 2d 2d 2d 2f 2f 0d   line ...)---//.
2870: 0a 09 09 09 2f 2f 2d 2d 20 28 78 63 6d 64 20 63  ....//-- (xcmd c
2880: 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 2e 2e 2e 29  ommand line ...)
2890: 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d  --//.....//-----
28a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
28b0: 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 69 66  -------//.....if
28c0: 28 20 6e 61 6d 65 5b 30 5d 3d 3d 27 78 27 20 26  ( name[0]=='x' &
28d0: 26 20 63 3c 32 20 29 0d 0a 09 09 09 09 78 2d 3e  & c<2 )......x->
28e0: 6d 5f 52 65 73 75 6c 74 20 3d 20 30 78 66 66 66  m_Result = 0xfff
28f0: 66 3b 0d 0a 09 09 09 65 6c 73 65 0d 0a 09 09 09  f;.....else.....
2900: 7b 0d 0a 09 09 09 09 43 41 72 63 4d 6f 64 75 6c  {......CArcModul
2910: 65 2a 20 78 78 78 20 3d 20 78 2d 3e 65 78 65 3b  e* xxx = x->exe;
2920: 0d 0a 09 09 09 09 6b 69 56 61 72 20 20 20 20 20  ......kiVar     
2930: 20 20 63 6d 64 3b 0d 0a 09 09 09 09 69 6e 74 20    cmd;......int 
2940: 20 20 20 20 20 20 20 20 69 3d 31 3b 0d 0a 0d 0a          i=1;....
2950: 09 09 09 09 69 66 28 20 6e 61 6d 65 5b 30 5d 20  ....if( name[0] 
2960: 3d 3d 20 27 78 27 20 29 0d 0a 09 09 09 09 7b 0d  == 'x' )......{.
2970: 0a 09 09 09 09 09 6b 69 56 61 72 20 6d 6d 3b 0d  ......kiVar mm;.
2980: 0a 09 09 09 09 09 67 65 74 61 72 67 28 20 61 5b  ......getarg( a[
2990: 69 5d 2c 62 5b 69 5d 2c 26 6d 6d 20 29 3b 0d 0a  i],b[i],&mm );..
29a0: 09 09 09 09 09 69 2b 2b 3b 0d 0a 09 09 09 09 09  .....i++;.......
29b0: 78 78 78 20 3d 20 6e 65 77 20 43 41 72 63 4d 6f  xxx = new CArcMo
29c0: 64 75 6c 65 28 20 6d 6d 2c 20 78 2d 3e 6d 5f 75  dule( mm, x->m_u
29d0: 73 4d 6f 64 65 20 29 3b 0d 0a 09 09 09 09 7d 0d  sMode );......}.
29e0: 0a 09 09 09 09 66 6f 72 28 20 3b 20 69 3c 63 3b  .....for( ; i<c;
29f0: 20 69 2b 2b 20 29 0d 0a 09 09 09 09 09 67 65 74   i++ ).......get
2a00: 61 72 67 28 20 61 5b 69 5d 2c 62 5b 69 5d 2c 26  arg( a[i],b[i],&
2a10: 74 20 29 2c 20 63 6d 64 2b 3d 74 2c 20 63 6d 64  t ), cmd+=t, cmd
2a20: 2b 3d 27 20 27 3b 0d 0a 0d 0a 09 09 09 09 62 6f  +=' ';........bo
2a30: 6f 6c 20 6d 20 3d 20 28 6d 79 63 6e 66 28 29 2e  ol m = (mycnf().
2a40: 6d 69 6e 69 62 6f 6f 74 28 29 20 7c 7c 20 6d 5f  miniboot() || m_
2a50: 6d 6f 64 65 3d 3d 6d 44 63 31 29 3b 0d 0a 09 09  mode==mDc1);....
2a60: 09 09 78 2d 3e 6d 5f 52 65 73 75 6c 74 20 3d 20  ..x->m_Result = 
2a70: 78 78 78 2d 3e 63 6d 64 28 20 63 6d 64 2c 20 6d  xxx->cmd( cmd, m
2a80: 20 29 3b 0d 0a 09 09 09 09 72 2d 3e 73 65 74 49   );......r->setI
2a90: 6e 74 28 20 78 2d 3e 6d 5f 52 65 73 75 6c 74 20  nt( x->m_Result 
2aa0: 29 3b 0d 0a 0d 0a 09 09 09 09 69 66 28 20 6e 61  );........if( na
2ab0: 6d 65 5b 30 5d 20 3d 3d 20 27 78 27 20 29 0d 0a  me[0] == 'x' )..
2ac0: 09 09 09 09 09 64 65 6c 65 74 65 20 78 78 78 3b  .....delete xxx;
2ad0: 0d 0a 09 09 09 7d 0d 0a 09 09 7d 65 6c 73 65 20  .....}....}else 
2ae0: 69 66 28 20 6e 61 6d 65 3d 3d 22 73 63 61 6e 22  if( name=="scan"
2af0: 20 7c 7c 20 6e 61 6d 65 3d 3d 22 78 73 63 61 6e   || name=="xscan
2b00: 22 20 29 7b 0d 0a 09 09 09 70 72 6f 63 65 73 73  " ){.....process
2b10: 65 64 3d 74 72 75 65 3b 0d 0a 0d 0a 09 09 09 2f  ed=true;......./
2b20: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
2b30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2b40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09  ---------//.....
2b50: 2f 2f 2d 2d 20 28 73 63 61 6e 20 42 4c 20 42 53  //-- (scan BL BS
2b60: 4c 20 45 4c 20 53 4c 20 64 78 20 63 6d 64 2e 2e  L EL SL dx cmd..
2b70: 2e 29 20 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09  .) -------//....
2b80: 09 2f 2f 2d 2d 20 28 78 73 63 61 6e 20 42 4c 20  .//-- (xscan BL 
2b90: 42 53 4c 20 45 4c 20 53 4c 20 64 78 20 43 4d 44  BSL EL SL dx CMD
2ba0: 20 63 6d 64 2e 2e 2e 29 20 2d 2d 2f 2f 0d 0a 09   cmd...) --//...
2bb0: 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..//------------
2bc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2bd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a  ------------//..
2be0: 09 09 09 69 66 28 20 63 3c 36 20 7c 7c 20 28 6e  ...if( c<6 || (n
2bf0: 61 6d 65 5b 30 5d 3d 3d 27 78 27 26 26 63 3c 37  ame[0]=='x'&&c<7
2c00: 29 20 29 0d 0a 09 09 09 09 78 2d 3e 6d 5f 52 65  ) )......x->m_Re
2c10: 73 75 6c 74 20 3d 20 30 78 66 66 66 66 3b 0d 0a  sult = 0xffff;..
2c20: 09 09 09 65 6c 73 65 0d 0a 09 09 09 7b 0d 0a 09  ...else.....{...
2c30: 09 09 09 43 41 72 63 4d 6f 64 75 6c 65 2a 20 78  ...CArcModule* x
2c40: 78 78 20 3d 20 78 2d 3e 65 78 65 3b 0d 0a 0d 0a  xx = x->exe;....
2c50: 09 09 09 09 6b 69 56 61 72 20 42 4c 2c 20 45 4c  ....kiVar BL, EL
2c60: 3b 0d 0a 09 09 09 09 67 65 74 61 72 67 28 20 61  ;......getarg( a
2c70: 5b 31 5d 2c 62 5b 31 5d 2c 26 42 4c 20 29 3b 0d  [1],b[1],&BL );.
2c80: 0a 09 09 09 09 67 65 74 61 72 67 28 20 61 5b 32  .....getarg( a[2
2c90: 5d 2c 62 5b 32 5d 2c 26 74 20 29 3b 0d 0a 09 09  ],b[2],&t );....
2ca0: 09 09 69 6e 74 20 42 53 4c 20 3d 20 74 2e 67 65  ..int BSL = t.ge
2cb0: 74 49 6e 74 28 29 3b 0d 0a 09 09 09 09 67 65 74  tInt();......get
2cc0: 61 72 67 28 20 61 5b 33 5d 2c 62 5b 33 5d 2c 26  arg( a[3],b[3],&
2cd0: 45 4c 20 29 3b 0d 0a 09 09 09 09 67 65 74 61 72  EL );......getar
2ce0: 67 28 20 61 5b 34 5d 2c 62 5b 34 5d 2c 26 74 20  g( a[4],b[4],&t 
2cf0: 29 3b 0d 0a 09 09 09 09 69 6e 74 20 53 4c 20 3d  );......int SL =
2d00: 20 74 2e 67 65 74 49 6e 74 28 29 3b 0d 0a 09 09   t.getInt();....
2d10: 09 09 67 65 74 61 72 67 28 20 61 5b 35 5d 2c 62  ..getarg( a[5],b
2d20: 5b 35 5d 2c 26 74 20 29 3b 0d 0a 09 09 09 09 69  [5],&t );......i
2d30: 6e 74 20 64 78 20 3d 20 74 2e 67 65 74 49 6e 74  nt dx = t.getInt
2d40: 28 29 3b 0d 0a 0d 0a 09 09 09 09 69 6e 74 20 69  ();........int i
2d50: 3d 36 3b 0d 0a 09 09 09 09 69 66 28 20 6e 61 6d  =6;......if( nam
2d60: 65 5b 30 5d 20 3d 3d 20 27 78 27 20 29 0d 0a 09  e[0] == 'x' )...
2d70: 09 09 09 7b 0d 0a 09 09 09 09 09 6b 69 56 61 72  ...{.......kiVar
2d80: 20 6d 6d 3b 0d 0a 09 09 09 09 09 67 65 74 61 72   mm;.......getar
2d90: 67 28 20 61 5b 69 5d 2c 62 5b 69 5d 2c 26 6d 6d  g( a[i],b[i],&mm
2da0: 20 29 3b 0d 0a 09 09 09 09 09 69 2b 2b 3b 0d 0a   );.......i++;..
2db0: 09 09 09 09 09 78 78 78 20 3d 20 6e 65 77 20 43  .....xxx = new C
2dc0: 41 72 63 4d 6f 64 75 6c 65 28 20 6d 6d 2c 20 78  ArcModule( mm, x
2dd0: 2d 3e 6d 5f 75 73 4d 6f 64 65 20 29 3b 0d 0a 09  ->m_usMode );...
2de0: 09 09 09 7d 0d 0a 0d 0a 09 09 09 09 6b 69 56 61  ...}........kiVa
2df0: 72 20 63 6d 64 3b 0d 0a 09 09 09 09 66 6f 72 28  r cmd;......for(
2e00: 20 3b 20 69 3c 63 3b 20 2b 2b 69 20 29 0d 0a 09   ; i<c; ++i )...
2e10: 09 09 09 09 67 65 74 61 72 67 28 20 61 5b 69 5d  ....getarg( a[i]
2e20: 2c 62 5b 69 5d 2c 26 74 20 29 2c 20 63 6d 64 2b  ,b[i],&t ), cmd+
2e30: 3d 74 2c 20 63 6d 64 2b 3d 27 20 27 3b 0d 0a 0d  =t, cmd+=' ';...
2e40: 0a 09 09 09 09 78 2d 3e 6d 5f 52 65 73 75 6c 74  .....x->m_Result
2e50: 20 3d 20 78 78 78 2d 3e 6c 73 74 5f 65 78 65 28   = xxx->lst_exe(
2e60: 0d 0a 09 09 09 09 09 63 6d 64 2c 20 2a 63 6f 6e  .......cmd, *con
2e70: 73 74 5f 63 61 73 74 3c 61 66 6c 41 72 72 61 79  st_cast<aflArray
2e80: 2a 3e 28 78 2d 3e 6d 5f 70 73 41 49 6e 66 6f 29  *>(x->m_psAInfo)
2e90: 2c 0d 0a 09 09 09 09 09 42 4c 2c 20 42 53 4c 2c  ,.......BL, BSL,
2ea0: 20 45 4c 2c 20 53 4c 2c 20 64 78 20 29 20 3f 20   EL, SL, dx ) ? 
2eb0: 30 20 3a 20 2d 31 3b 0d 0a 0d 0a 09 09 09 09 69  0 : -1;........i
2ec0: 66 28 20 6e 61 6d 65 5b 30 5d 20 3d 3d 20 27 78  f( name[0] == 'x
2ed0: 27 20 29 0d 0a 09 09 09 09 09 64 65 6c 65 74 65  ' ).......delete
2ee0: 20 78 78 78 3b 0d 0a 09 09 09 7d 0d 0a 09 09 7d   xxx;.....}....}
2ef0: 65 6c 73 65 20 69 66 28 20 6e 61 6d 65 3d 3d 22  else if( name=="
2f00: 69 6e 70 75 74 22 20 29 7b 0d 0a 09 09 09 70 72  input" ){.....pr
2f10: 6f 63 65 73 73 65 64 3d 74 72 75 65 3b 0d 0a 0d  ocessed=true;...
2f20: 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....//----------
2f30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f  ---------------/
2f40: 2f 0d 0a 09 09 09 2f 2f 2d 2d 20 28 69 6e 70 75  /.....//-- (inpu
2f50: 74 20 4d 53 47 20 44 45 46 55 41 4c 54 29 20 2d  t MSG DEFUALT) -
2f60: 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d  -//.....//------
2f70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2f80: 2d 2d 2d 2f 2f 0d 0a 09 09 09 6b 69 56 61 72 20  ---//.....kiVar 
2f90: 6d 73 67 2c 20 64 65 66 76 61 6c 3b 0d 0a 09 09  msg, defval;....
2fa0: 09 69 66 28 20 63 3e 3d 32 20 29 0d 0a 09 09 09  .if( c>=2 ).....
2fb0: 09 67 65 74 61 72 67 28 20 61 5b 31 5d 2c 62 5b  .getarg( a[1],b[
2fc0: 31 5d 2c 26 6d 73 67 20 29 3b 0d 0a 09 09 09 69  1],&msg );.....i
2fd0: 66 28 20 63 3e 3d 33 20 29 0d 0a 09 09 09 09 67  f( c>=3 )......g
2fe0: 65 74 61 72 67 28 20 61 5b 32 5d 2c 62 5b 32 5d  etarg( a[2],b[2]
2ff0: 2c 26 64 65 66 76 61 6c 20 29 3b 0d 0a 09 09 09  ,&defval );.....
3000: 69 6e 70 75 74 28 20 6d 73 67 2c 20 64 65 66 76  input( msg, defv
3010: 61 6c 2c 20 72 20 29 3b 0d 0a 09 09 7d 65 6c 73  al, r );....}els
3020: 65 20 69 66 28 20 6e 61 6d 65 3d 3d 22 73 69 7a  e if( name=="siz
3030: 65 22 20 29 7b 0d 0a 09 09 09 70 72 6f 63 65 73  e" ){.....proces
3040: 73 65 64 3d 74 72 75 65 3b 0d 0a 0d 0a 09 09 09  sed=true;.......
3050: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
3060: 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f  -------//.....//
3070: 2d 2d 20 28 73 69 7a 65 20 46 49 4c 45 4e 41 4d  -- (size FILENAM
3080: 45 29 20 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d  E) --//.....//--
3090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
30a0: 2d 2d 2d 2f 2f 0d 0a 09 09 09 69 66 28 20 63 3e  ---//.....if( c>
30b0: 3d 32 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09  =2 ).....{......
30c0: 6b 69 56 61 72 20 66 6e 6d 3b 0d 0a 09 09 09 09  kiVar fnm;......
30d0: 67 65 74 61 72 67 28 20 61 5b 31 5d 2c 62 5b 31  getarg( a[1],b[1
30e0: 5d 2c 26 66 6e 6d 20 29 3b 0d 0a 09 09 09 09 72  ],&fnm );......r
30f0: 2d 3e 73 65 74 49 6e 74 28 20 6b 69 46 69 6c 65  ->setInt( kiFile
3100: 3a 3a 67 65 74 53 69 7a 65 28 20 66 6e 6d 2e 75  ::getSize( fnm.u
3110: 6e 71 75 6f 74 65 28 29 20 29 20 29 3b 0d 0a 09  nquote() ) );...
3120: 09 09 7d 0d 0a 09 09 7d 65 6c 73 65 20 69 66 28  ..}....}else if(
3130: 20 6e 61 6d 65 3d 3d 22 69 73 5f 66 69 6c 65 22   name=="is_file"
3140: 20 29 7b 0d 0a 09 09 09 70 72 6f 63 65 73 73 65   ){.....processe
3150: 64 3d 74 72 75 65 3b 0d 0a 0d 0a 09 09 09 2f 2f  d=true;.......//
3160: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3170: 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d  -----//.....//--
3180: 20 28 69 73 5f 66 69 6c 65 29 20 2d 2d 2d 2d 2d   (is_file) -----
3190: 2d 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d  ---//.....//----
31a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
31b0: 2d 2f 2f 0d 0a 09 09 09 69 66 28 20 63 3d 3d 31  -//.....if( c==1
31c0: 20 29 0d 0a 09 09 09 09 2a 72 20 3d 20 28 78 2d   )......*r = (x-
31d0: 3e 6d 5f 70 73 4c 69 73 74 2d 3e 6c 65 6e 28 29  >m_psList->len()
31e0: 3d 3d 31 0d 0a 09 09 09 09 09 20 20 26 26 20 21  ==1.......  && !
31f0: 6b 69 53 55 74 69 6c 3a 3a 69 73 64 69 72 28 20  kiSUtil::isdir( 
3200: 28 2a 78 2d 3e 6d 5f 70 73 4c 69 73 74 29 5b 30  (*x->m_psList)[0
3210: 5d 2e 63 46 69 6c 65 4e 61 6d 65 20 29 29 20 3f  ].cFileName )) ?
3220: 20 22 31 22 20 3a 20 22 30 22 3b 0d 0a 09 09 7d   "1" : "0";....}
3230: 65 6c 73 65 20 69 66 28 20 6e 61 6d 65 3d 3d 22  else if( name=="
3240: 69 73 5f 66 6f 6c 64 65 72 22 20 29 7b 0d 0a 09  is_folder" ){...
3250: 09 09 70 72 6f 63 65 73 73 65 64 3d 74 72 75 65  ..processed=true
3260: 3b 0d 0a 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d  ;.......//------
3270: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f  ---------------/
3280: 2f 0d 0a 09 09 09 2f 2f 2d 2d 20 28 69 73 5f 66  /.....//-- (is_f
3290: 6f 6c 64 65 72 29 20 2d 2d 2d 2d 2d 2d 2f 2f 0d  older) ------//.
32a0: 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....//----------
32b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09  -----------//...
32c0: 09 09 69 66 28 20 63 3d 3d 31 20 29 0d 0a 09 09  ..if( c==1 )....
32d0: 09 09 2a 72 20 3d 20 28 78 2d 3e 6d 5f 70 73 4c  ..*r = (x->m_psL
32e0: 69 73 74 2d 3e 6c 65 6e 28 29 3d 3d 31 0d 0a 09  ist->len()==1...
32f0: 09 09 09 09 20 20 26 26 20 6b 69 53 55 74 69 6c  ....  && kiSUtil
3300: 3a 3a 69 73 64 69 72 28 20 28 2a 78 2d 3e 6d 5f  ::isdir( (*x->m_
3310: 70 73 4c 69 73 74 29 5b 30 5d 2e 63 46 69 6c 65  psList)[0].cFile
3320: 4e 61 6d 65 20 29 29 20 3f 20 22 31 22 20 3a 20  Name )) ? "1" : 
3330: 22 30 22 3b 0d 0a 09 09 7d 65 6c 73 65 20 69 66  "0";....}else if
3340: 28 20 6e 61 6d 65 3d 3d 22 69 73 5f 6d 75 6c 74  ( name=="is_mult
3350: 69 70 6c 65 22 20 29 7b 0d 0a 09 09 09 70 72 6f  iple" ){.....pro
3360: 63 65 73 73 65 64 3d 74 72 75 65 3b 0d 0a 0d 0a  cessed=true;....
3370: 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...//-----------
3380: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09  ----------//....
3390: 09 2f 2f 2d 2d 20 28 69 73 5f 6d 75 6c 74 69 70  .//-- (is_multip
33a0: 6c 65 29 20 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 2f  le) ----//...../
33b0: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
33c0: 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 09 09 69 66 28  ------//.....if(
33d0: 20 63 3d 3d 31 20 29 0d 0a 09 09 09 09 2a 72 20   c==1 )......*r 
33e0: 3d 20 78 2d 3e 6d 5f 70 73 4c 69 73 74 2d 3e 6c  = x->m_psList->l
33f0: 65 6e 28 29 3e 31 20 3f 20 22 31 22 20 3a 20 22  en()>1 ? "1" : "
3400: 30 22 3b 0d 0a 09 09 7d 65 6c 73 65 20 69 66 28  0";....}else if(
3410: 20 6e 61 6d 65 3d 3d 22 66 69 6e 64 22 20 29 7b   name=="find" ){
3420: 0d 0a 09 09 09 70 72 6f 63 65 73 73 65 64 3d 74  .....processed=t
3430: 72 75 65 3b 0d 0a 0d 0a 09 09 09 2f 2f 2d 2d 2d  rue;.......//---
3440: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3450: 2d 2d 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 20 28 66  --//.....//-- (f
3460: 69 6e 64 20 46 49 4c 45 4e 41 4d 45 29 20 2d 2d  ind FILENAME) --
3470: 2f 2f 0d 0a 09 09 09 2f 2f 2d 2d 2d 2d 2d 2d 2d  //.....//-------
3480: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f  --------------//
3490: 0d 0a 09 09 09 69 66 28 20 63 3e 3d 32 20 29 0d  .....if( c>=2 ).
34a0: 0a 09 09 09 7b 0d 0a 09 09 09 09 6b 69 56 61 72  ....{......kiVar
34b0: 20 66 6e 6d 3b 0d 0a 09 09 09 09 67 65 74 61 72   fnm;......getar
34c0: 67 28 20 61 5b 31 5d 2c 62 5b 31 5d 2c 26 66 6e  g( a[1],b[1],&fn
34d0: 6d 20 29 3b 0d 0a 09 09 09 09 63 68 61 72 20 62  m );......char b
34e0: 75 66 5b 4d 41 58 5f 50 41 54 48 5d 3b 0d 0a 09  uf[MAX_PATH];...
34f0: 09 09 09 69 66 28 20 30 3d 3d 3a 3a 53 65 61 72  ...if( 0==::Sear
3500: 63 68 50 61 74 68 28 20 4e 55 4c 4c 2c 66 6e 6d  chPath( NULL,fnm
3510: 2e 75 6e 71 75 6f 74 65 28 29 2c 4e 55 4c 4c 2c  .unquote(),NULL,
3520: 4d 41 58 5f 50 41 54 48 2c 62 75 66 2c 4e 55 4c  MAX_PATH,buf,NUL
3530: 4c 20 29 20 29 0d 0a 09 09 09 09 09 2a 72 20 3d  L ) ).......*r =
3540: 20 22 22 3b 0d 0a 09 09 09 09 65 6c 73 65 0d 0a   "";......else..
3550: 09 09 09 09 09 2a 72 20 3d 20 62 75 66 2c 20 72  .....*r = buf, r
3560: 2d 3e 71 75 6f 74 65 28 29 3b 0d 0a 09 09 09 7d  ->quote();.....}
3570: 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 0d 0a 09 72 65  ....}...}.....re
3580: 74 75 72 6e 20 70 72 6f 63 65 73 73 65 64 20 3f  turn processed ?
3590: 20 74 72 75 65 20 3a 20 6b 69 52 79 74 68 70 56   true : kiRythpV
35a0: 4d 3a 3a 65 78 65 63 5f 66 75 6e 63 74 69 6f 6e  M::exec_function
35b0: 28 6e 61 6d 65 2c 61 2c 62 2c 63 2c 72 29 3b 0d  (name,a,b,c,r);.
35c0: 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 43 41 72 63 42  .}....void CArcB
35d0: 32 65 3a 3a 43 42 32 65 43 6f 72 65 3a 3a 61 72  2e::CB2eCore::ar
35e0: 63 28 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 6f  c( const char* o
35f0: 70 74 2c 20 63 6f 6e 73 74 20 43 68 61 72 41 72  pt, const CharAr
3600: 72 61 79 26 20 61 2c 20 63 6f 6e 73 74 20 42 6f  ray& a, const Bo
3610: 6f 6c 41 72 72 61 79 26 20 62 2c 69 6e 74 20 63  olArray& b,int c
3620: 2c 20 6b 69 56 61 72 2a 20 72 20 29 0d 0a 7b 0d  , kiVar* r )..{.
3630: 0a 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..//------------
3640: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f  ---------------/
3650: 2f 0d 0a 09 2f 2f 2d 2d 20 28 61 72 63 5b 2b 2d  /...//-- (arc[+-
3660: 5d 2e 78 78 78 20 5b 73 6c 66 72 64 5d 29 20 2d  ].xxx [slfrd]) -
3670: 2d 2f 2f 0d 0a 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d  -//...//--------
3680: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3690: 2d 2d 2d 2f 2f 0d 0a 0d 0a 09 2f 2f 20 83 66 83  ---//.....// .f.
36a0: 74 83 48 83 8b 83 67 83 49 83 76 83 56 83 87 83  t.H...g.I.v.V...
36b0: 93 90 dd 92 e8 0d 0a 09 63 6f 6e 73 74 20 63 68  ........const ch
36c0: 61 72 2a 20 61 6e 6d 3d 78 2d 3e 6d 5f 70 73 41  ar* anm=x->m_psA
36d0: 72 63 2d 3e 6c 6e 61 6d 65 3b 0d 0a 09 65 6e 75  rc->lname;...enu
36e0: 6d 7b 20 66 75 6c 6c 2c 20 6e 61 6d 2c 20 64 69  m{ full, nam, di
36f0: 72 20 7d 20 70 61 72 74 3d 66 75 6c 6c 3b 0d 0a  r } part=full;..
3700: 09 69 66 28 20 6d 5f 6d 6f 64 65 3d 3d 6d 53 66  .if( m_mode==mSf
3710: 78 20 29 09 70 61 72 74 3d 6e 61 6d 3b 20 2f 2f  x ).part=nam; //
3720: 20 73 66 78 0d 0a 0d 0a 09 2f 2f 20 8e 77 92 e8   sfx.....// .w..
3730: 82 aa 82 a0 82 ea 82 ce 8f e3 8f 91 0d 0a 09 69  ...............i
3740: 66 28 20 63 3e 3d 32 20 29 0d 0a 09 7b 0d 0a 09  f( c>=2 )...{...
3750: 09 67 65 74 61 72 67 28 20 61 5b 31 5d 2c 62 5b  .getarg( a[1],b[
3760: 31 5d 2c 26 74 20 29 3b 0d 0a 09 09 66 6f 72 28  1],&t );....for(
3770: 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 70 3d 74   const char* p=t
3780: 3b 20 2a 70 3b 20 70 2b 2b 20 29 0d 0a 09 09 09  ; *p; p++ ).....
3790: 73 77 69 74 63 68 28 2a 70 29 0d 0a 09 09 09 7b  switch(*p).....{
37a0: 0d 0a 09 09 09 63 61 73 65 20 27 73 27 3a 20 61  .....case 's': a
37b0: 6e 6d 3d 78 2d 3e 6d 5f 70 73 41 72 63 2d 3e 73  nm=x->m_psArc->s
37c0: 6e 61 6d 65 3b 20 62 72 65 61 6b 3b 0d 0a 09 09  name; break;....
37d0: 09 63 61 73 65 20 27 6c 27 3a 20 61 6e 6d 3d 78  .case 'l': anm=x
37e0: 2d 3e 6d 5f 70 73 41 72 63 2d 3e 6c 6e 61 6d 65  ->m_psArc->lname
37f0: 3b 20 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73  ; break;.....cas
3800: 65 20 27 66 27 3a 20 70 61 72 74 3d 66 75 6c 6c  e 'f': part=full
3810: 3b 20 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73  ; break;.....cas
3820: 65 20 27 6e 27 3a 20 70 61 72 74 3d 6e 61 6d 3b  e 'n': part=nam;
3830: 20 20 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73    break;.....cas
3840: 65 20 27 64 27 3a 20 70 61 72 74 3d 64 69 72 3b  e 'd': part=dir;
3850: 20 20 62 72 65 61 6b 3b 0d 0a 09 09 09 7d 0d 0a    break;.....}..
3860: 09 7d 0d 0a 0d 0a 09 2f 2f 20 83 66 83 42 83 8c  .}.....// .f.B..
3870: 83 4e 83 67 83 8a 95 94 95 aa 0d 0a 09 2a 72 20  .N.g.........*r 
3880: 3d 20 28 70 61 72 74 3d 3d 6e 61 6d 20 3f 20 28  = (part==nam ? (
3890: 63 6f 6e 73 74 20 63 68 61 72 2a 29 22 22 20 3a  const char*)"" :
38a0: 20 78 2d 3e 6d 5f 70 73 41 72 63 2d 3e 62 61 73   x->m_psArc->bas
38b0: 65 64 69 72 29 3b 0d 0a 0d 0a 09 2f 2f 20 96 bc  edir);.....// ..
38c0: 91 4f 95 94 95 aa 0d 0a 09 69 66 28 20 70 61 72  .O.......if( par
38d0: 74 20 21 3d 20 64 69 72 20 29 0d 0a 09 7b 0d 0a  t != dir )...{..
38e0: 09 09 69 66 28 20 2a 6f 70 74 3d 3d 27 5c 30 27  ..if( *opt=='\0'
38f0: 20 7c 7c 20 2a 6f 70 74 3d 3d 27 2b 27 20 29 0d   || *opt=='+' ).
3900: 0a 09 09 7b 0d 0a 09 09 09 2f 2f 20 28 61 72 63  ...{.....// (arc
3910: 29 20 20 20 20 20 20 20 3a 20 61 6e 6d 82 f0 82  )       : anm...
3920: bb 82 cc 82 dc 82 dc 95 d4 82 b7 0d 0a 09 09 09  ................
3930: 2a 72 20 2b 3d 20 61 6e 6d 3b 0d 0a 09 09 09 2f  *r += anm;...../
3940: 2f 20 28 61 72 63 2b 58 58 58 29 20 20 20 3a 20  / (arc+XXX)   : 
3950: 61 6e 6d 58 58 58 82 f0 95 d4 82 b7 0d 0a 09 09  anmXXX..........
3960: 09 69 66 28 20 2a 6f 70 74 3d 3d 27 2b 27 20 29  .if( *opt=='+' )
3970: 0d 0a 09 09 09 09 2a 72 20 2b 3d 20 28 6f 70 74  ......*r += (opt
3980: 2b 31 29 3b 0d 0a 09 09 7d 0d 0a 09 09 65 6c 73  +1);....}....els
3990: 65 0d 0a 09 09 7b 0d 0a 09 09 09 63 6f 6e 73 74  e....{.....const
39a0: 20 63 68 61 72 2a 20 65 78 74 20 3d 20 6b 69 50   char* ext = kiP
39b0: 61 74 68 3a 3a 65 78 74 28 61 6e 6d 29 3b 0d 0a  ath::ext(anm);..
39c0: 09 09 09 63 6f 6e 73 74 20 63 68 61 72 2a 20 61  ...const char* a
39d0: 64 64 20 3d 20 22 22 3b 0d 0a 09 09 09 69 66 28  dd = "";.....if(
39e0: 20 6f 70 74 5b 30 5d 3d 3d 27 2d 27 20 26 26 20   opt[0]=='-' && 
39f0: 6f 70 74 5b 31 5d 3d 3d 27 2e 27 20 29 0d 0a 09  opt[1]=='.' )...
3a00: 09 09 7b 0d 0a 09 09 09 09 2f 2f 20 28 61 72 63  ..{......// (arc
3a10: 2d 2e 58 58 58 29 20 3a 20 96 96 94 f6 82 aa 2e  -.XXX) : .......
3a20: 58 58 58 82 be 82 c1 82 bd 82 e7 8d ed 8f 9c 81  XXX.............
3a30: 42 0d 0a 09 09 09 09 2f 2f 20 20 20 20 20 20 20  B......//       
3a40: 20 20 20 20 20 3a 20 82 bb 82 a4 82 c5 82 c8 82       : .........
3a50: af 82 ea 82 ce 8c e3 82 eb 82 c9 2e 64 65 63 6f  ............deco
3a60: 6d 70 72 65 73 73 65 64 0d 0a 09 09 09 09 69 66  mpressed......if
3a70: 28 20 30 21 3d 6b 69 5f 73 74 72 63 6d 70 69 28  ( 0!=ki_strcmpi(
3a80: 20 65 78 74 2c 20 6f 70 74 2b 32 20 29 20 29 0d   ext, opt+2 ) ).
3a90: 0a 09 09 09 09 09 65 78 74 20 3d 20 61 6e 6d 20  ......ext = anm 
3aa0: 2b 20 6b 69 5f 73 74 72 6c 65 6e 28 61 6e 6d 29  + ki_strlen(anm)
3ab0: 2c 20 61 64 64 20 3d 20 22 2e 64 65 63 6f 6d 70  , add = ".decomp
3ac0: 72 65 73 73 65 64 22 3b 0d 0a 09 09 09 7d 0d 0a  ressed";.....}..
3ad0: 09 09 09 65 6c 73 65 20 69 66 28 20 6f 70 74 5b  ...else if( opt[
3ae0: 31 5d 21 3d 27 5c 30 27 20 29 0d 0a 09 09 09 7b  1]!='\0' ).....{
3af0: 0d 0a 09 09 09 09 2f 2f 20 28 61 72 63 2e 58 58  ......// (arc.XX
3b00: 58 29 20 20 3a 20 8d c5 8c e3 82 cc 8a 67 92 a3  X)  : .......g..
3b10: 8e 71 82 f0 2e 58 58 58 82 c9 8e e6 82 e8 91 d6  .q...XXX........
3b20: 82 a6 0d 0a 09 09 09 09 61 64 64 20 3d 20 6f 70  ........add = op
3b30: 74 3b 0d 0a 09 09 09 09 73 77 69 74 63 68 28 6d  t;......switch(m
3b40: 79 63 6e 66 28 29 2e 65 78 74 6e 75 6d 28 29 29  ycnf().extnum())
3b50: 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09 63 61 73  ......{......cas
3b60: 65 20 30 3a 20 65 78 74 20 3d 20 61 6e 6d 20 2b  e 0: ext = anm +
3b70: 20 3a 3a 6c 73 74 72 6c 65 6e 28 61 6e 6d 29 3b   ::lstrlen(anm);
3b80: 62 72 65 61 6b 3b 20 0d 0a 09 09 09 09 63 61 73  break; ......cas
3b90: 65 20 31 3a 20 65 78 74 20 3d 20 6b 69 50 61 74  e 1: ext = kiPat
3ba0: 68 3a 3a 65 78 74 28 61 6e 6d 29 3b 20 20 20 20  h::ext(anm);    
3bb0: 62 72 65 61 6b 3b 0d 0a 09 09 09 09 64 65 66 61  break;......defa
3bc0: 75 6c 74 3a 65 78 74 20 3d 20 6b 69 50 61 74 68  ult:ext = kiPath
3bd0: 3a 3a 65 78 74 5f 61 6c 6c 28 61 6e 6d 29 3b 62  ::ext_all(anm);b
3be0: 72 65 61 6b 3b 0d 0a 09 09 09 09 7d 0d 0a 09 09  reak;......}....
3bf0: 09 7d 0d 0a 09 09 09 65 6c 73 65 0d 0a 09 09 09  .}.....else.....
3c00: 7b 0d 0a 09 09 09 09 2f 2f 20 28 61 72 63 2e 29  {......// (arc.)
3c10: 20 20 20 20 20 3a 20 8a 67 92 a3 8e 71 82 f0 91       : .g...q...
3c20: 53 82 c4 8e e6 82 e8 8f 9c 82 ad 0d 0a 09 09 09  S...............
3c30: 09 73 77 69 74 63 68 28 6d 79 63 6e 66 28 29 2e  .switch(mycnf().
3c40: 65 78 74 6e 75 6d 28 29 29 0d 0a 09 09 09 09 7b  extnum())......{
3c50: 0d 0a 09 09 09 09 63 61 73 65 20 30 3a 20 65 78  ......case 0: ex
3c60: 74 20 3d 20 61 6e 6d 20 2b 20 3a 3a 6c 73 74 72  t = anm + ::lstr
3c70: 6c 65 6e 28 61 6e 6d 29 3b 62 72 65 61 6b 3b 20  len(anm);break; 
3c80: 0d 0a 09 09 09 09 63 61 73 65 20 31 3a 20 65 78  ......case 1: ex
3c90: 74 20 3d 20 6b 69 50 61 74 68 3a 3a 65 78 74 28  t = kiPath::ext(
3ca0: 61 6e 6d 29 3b 20 20 20 20 62 72 65 61 6b 3b 0d  anm);    break;.
3cb0: 0a 09 09 09 09 64 65 66 61 75 6c 74 3a 65 78 74  .....default:ext
3cc0: 20 3d 20 6b 69 50 61 74 68 3a 3a 65 78 74 5f 61   = kiPath::ext_a
3cd0: 6c 6c 28 61 6e 6d 29 3b 62 72 65 61 6b 3b 0d 0a  ll(anm);break;..
3ce0: 09 09 09 09 7d 0d 0a 09 09 09 7d 0d 0a 09 09 09  ....}.....}.....
3cf0: 69 66 28 20 2a 65 78 74 20 29 0d 0a 09 09 09 09  if( *ext )......
3d00: 65 78 74 2d 2d 3b 0d 0a 0d 0a 09 09 09 63 68 61  ext--;.......cha
3d10: 72 20 62 75 66 5b 4d 41 58 5f 50 41 54 48 5d 3b  r buf[MAX_PATH];
3d20: 0d 0a 09 09 09 6b 69 5f 6d 65 6d 63 70 79 28 20  .....ki_memcpy( 
3d30: 62 75 66 2c 20 61 6e 6d 2c 20 65 78 74 2d 61 6e  buf, anm, ext-an
3d40: 6d 20 29 3b 0d 0a 09 09 09 62 75 66 5b 20 65 78  m );.....buf[ ex
3d50: 74 2d 61 6e 6d 20 5d 20 3d 20 27 5c 30 27 3b 0d  t-anm ] = '\0';.
3d60: 0a 09 09 09 2a 72 20 2b 3d 20 62 75 66 3b 0d 0a  ....*r += buf;..
3d70: 09 09 09 2a 72 20 2b 3d 20 61 64 64 3b 0d 0a 09  ...*r += add;...
3d80: 09 7d 0d 0a 0d 0a 09 09 2f 2f 20 95 4b 97 76 82  .}......// .K.v.
3d90: c8 82 e7 82 ad 82 ad 82 e9 0d 0a 09 09 69 66 28  .............if(
3da0: 20 70 61 72 74 3d 3d 66 75 6c 6c 20 29 0d 0a 09   part==full )...
3db0: 09 09 72 2d 3e 71 75 6f 74 65 28 29 3b 0d 0a 09  ..r->quote();...
3dc0: 7d 0d 0a 7d 0d 0a 0d 0a 73 74 61 74 69 63 20 76  }..}....static v
3dd0: 6f 69 64 20 73 65 6c 66 52 28 0d 0a 09 63 6f 6e  oid selfR(...con
3de0: 73 74 20 63 68 61 72 2a 20 77 72 69 74 65 64 69  st char* writedi
3df0: 72 2c 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 66  r, const char* f
3e00: 75 6c 6c 70 61 74 68 2c 20 62 6f 6f 6c 20 6c 66  ullpath, bool lf
3e10: 6e 2c 20 6b 69 56 61 72 2a 20 72 20 29 0d 0a 7b  n, kiVar* r )..{
3e20: 0d 0a 09 6b 69 46 69 6e 64 46 69 6c 65 20 20 20  ...kiFindFile   
3e30: 20 20 20 20 66 3b 0d 0a 09 57 49 4e 33 32 5f 46      f;...WIN32_F
3e40: 49 4e 44 5f 44 41 54 41 20 66 64 3b 0d 0a 09 66  IND_DATA fd;...f
3e50: 2e 62 65 67 69 6e 28 20 6b 69 53 74 72 28 66 75  .begin( kiStr(fu
3e60: 6c 6c 70 61 74 68 29 20 2b 3d 20 22 5c 5c 2a 22  llpath) += "\\*"
3e70: 20 29 3b 0d 0a 0d 0a 09 6b 69 56 61 72 20 74 2c   );.....kiVar t,
3e80: 20 74 32 2c 20 74 33 3b 0d 0a 09 77 68 69 6c 65   t2, t3;...while
3e90: 28 20 66 2e 6e 65 78 74 28 26 66 64 29 20 29 0d  ( f.next(&fd) ).
3ea0: 0a 09 7b 0d 0a 09 09 74 20 3d 20 77 72 69 74 65  ..{....t = write
3eb0: 64 69 72 3b 0d 0a 09 09 74 2b 3d 20 27 5c 5c 27  dir;....t+= '\\'
3ec0: 3b 0d 0a 09 09 74 2b 3d 20 28 6c 66 6e 20 3f 20  ;....t+= (lfn ? 
3ed0: 66 64 2e 63 46 69 6c 65 4e 61 6d 65 20 3a 20 66  fd.cFileName : f
3ee0: 64 2e 63 41 6c 74 65 72 6e 61 74 65 46 69 6c 65  d.cAlternateFile
3ef0: 4e 61 6d 65 29 3b 0d 0a 09 09 69 66 28 20 66 64  Name);....if( fd
3f00: 2e 64 77 46 69 6c 65 41 74 74 72 69 62 75 74 65  .dwFileAttribute
3f10: 73 20 26 20 46 49 4c 45 5f 41 54 54 52 49 42 55  s & FILE_ATTRIBU
3f20: 54 45 5f 44 49 52 45 43 54 4f 52 59 20 29 0d 0a  TE_DIRECTORY )..
3f30: 09 09 7b 0d 0a 09 09 09 74 32 20 3d 20 74 3b 0d  ..{.....t2 = t;.
3f40: 0a 09 09 09 74 20 20 3d 20 22 22 3b 0d 0a 09 09  ....t  = "";....
3f50: 09 74 33 20 3d 20 66 75 6c 6c 70 61 74 68 3b 0d  .t3 = fullpath;.
3f60: 0a 09 09 09 74 33 2b 3d 20 27 5c 5c 27 3b 0d 0a  ....t3+= '\\';..
3f70: 09 09 09 74 33 2b 3d 20 28 6c 66 6e 20 3f 20 66  ...t3+= (lfn ? f
3f80: 64 2e 63 46 69 6c 65 4e 61 6d 65 20 3a 20 66 64  d.cFileName : fd
3f90: 2e 63 41 6c 74 65 72 6e 61 74 65 46 69 6c 65 4e  .cAlternateFileN
3fa0: 61 6d 65 29 3b 0d 0a 09 09 09 73 65 6c 66 52 28  ame);.....selfR(
3fb0: 20 74 32 2c 20 74 33 2c 20 6c 66 6e 2c 20 26 74   t2, t3, lfn, &t
3fc0: 20 29 3b 0d 0a 09 09 7d 0d 0a 09 09 65 6c 73 65   );....}....else
3fd0: 0d 0a 09 09 7b 0d 0a 09 09 09 69 66 28 20 6c 66  ....{.....if( lf
3fe0: 6e 20 29 0d 0a 09 09 09 09 74 2e 71 75 6f 74 65  n )......t.quote
3ff0: 28 29 3b 0d 0a 09 09 7d 0d 0a 09 09 2a 72 20 2b  ();....}....*r +
4000: 3d 20 74 3b 0d 0a 09 09 2a 72 20 2b 3d 20 27 20  = t;....*r += ' 
4010: 27 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69  ';...}..}....voi
4020: 64 20 43 41 72 63 42 32 65 3a 3a 43 42 32 65 43  d CArcB2e::CB2eC
4030: 6f 72 65 3a 3a 6c 69 73 74 28 20 63 6f 6e 73 74  ore::list( const
4040: 20 63 68 61 72 2a 20 6f 70 74 2c 20 63 6f 6e 73   char* opt, cons
4050: 74 20 43 68 61 72 41 72 72 61 79 26 20 61 2c 20  t CharArray& a, 
4060: 63 6f 6e 73 74 20 42 6f 6f 6c 41 72 72 61 79 26  const BoolArray&
4070: 20 62 2c 69 6e 74 20 63 2c 20 6b 69 56 61 72 2a   b,int c, kiVar*
4080: 20 72 20 29 0d 0a 7b 0d 0a 09 2f 2f 2d 2d 2d 2d   r )..{...//----
4090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
40a0: 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 09 2f 2f 2d 2d  -------//...//--
40b0: 20 28 6c 69 73 74 5b 72 7c 5c 2a 2e 2a 5d 20 5b   (list[r|\*.*] [
40c0: 73 6c 66 6e 5d 29 20 2d 2d 2f 2f 0d 0a 09 2f 2f  slfn]) --//...//
40d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
40e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d  -----------//...
40f0: 0a 09 69 66 28 20 6d 5f 6d 6f 64 65 21 3d 6d 45  ..if( m_mode!=mE
4100: 6e 63 20 29 20 2f 2f 20 89 f0 93 80 82 cc 8f ea  nc ) // ........
4110: 8d 87 0d 0a 09 7b 0d 0a 09 09 2a 72 20 3d 20 22  .....{....*r = "
4120: 22 3b 0d 0a 0d 0a 09 09 66 6f 72 28 20 75 6e 73  ";......for( uns
4130: 69 67 6e 65 64 20 69 6e 74 20 69 3d 30 3b 20 69  igned int i=0; i
4140: 21 3d 78 2d 3e 6d 5f 70 73 41 49 6e 66 6f 2d 3e  !=x->m_psAInfo->
4150: 6c 65 6e 28 29 3b 20 69 2b 2b 20 29 0d 0a 09 09  len(); i++ )....
4160: 09 69 66 28 20 28 2a 78 2d 3e 6d 5f 70 73 41 49  .if( (*x->m_psAI
4170: 6e 66 6f 29 5b 69 5d 2e 73 65 6c 65 63 74 65 64  nfo)[i].selected
4180: 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 2f 2f   ).....{......//
4190: 20 2d 20 82 c5 8e 6e 82 dc 82 e9 83 84 83 63 91   - ...n.......c.
41a0: ce 8d f4 82 f0 82 b7 82 e9 82 a9 81 48 0d 0a 09  ............H...
41b0: 09 09 09 74 20 3d 20 28 2a 78 2d 3e 6d 5f 70 73  ...t = (*x->m_ps
41c0: 41 49 6e 66 6f 29 5b 69 5d 2e 69 6e 66 2e 73 7a  AInfo)[i].inf.sz
41d0: 46 69 6c 65 4e 61 6d 65 3b 0d 0a 09 09 09 09 74  FileName;......t
41e0: 2e 71 75 6f 74 65 28 29 3b 0d 0a 09 09 09 09 2a  .quote();......*
41f0: 72 20 2b 3d 20 74 3b 0d 0a 09 09 09 09 2a 72 20  r += t;......*r 
4200: 2b 3d 20 27 20 27 3b 0d 0a 09 09 09 7d 0d 0a 09  += ' ';.....}...
4210: 7d 0d 0a 09 65 6c 73 65 20 2f 2f 20 88 b3 8f 6b  }...else // ...k
4220: 82 cc 8f ea 8d 87 0d 0a 09 7b 0d 0a 09 09 2f 2f  .........{....//
4230: 20 83 66 83 74 83 48 83 8b 83 67 83 49 83 76 83   .f.t.H...g.I.v.
4240: 56 83 87 83 93 90 dd 92 e8 0d 0a 09 09 62 6f 6f  V............boo
4250: 6c 20 6c 66 6e 3d 74 72 75 65 3b 0d 0a 09 09 65  l lfn=true;....e
4260: 6e 75 6d 7b 20 66 75 6c 6c 2c 20 6e 61 6d 20 7d  num{ full, nam }
4270: 20 70 61 72 74 3d 6e 61 6d 3b 0d 0a 09 09 2f 2f   part=nam;....//
4280: 20 8e 77 92 e8 82 aa 82 a0 82 ea 82 ce 8f e3 8f   .w.............
4290: 91 0d 0a 09 09 69 66 28 20 63 3e 3d 32 20 29 0d  .....if( c>=2 ).
42a0: 0a 09 09 7b 0d 0a 09 09 09 67 65 74 61 72 67 28  ...{.....getarg(
42b0: 20 61 5b 31 5d 2c 62 5b 31 5d 2c 26 74 20 29 3b   a[1],b[1],&t );
42c0: 0d 0a 09 09 09 66 6f 72 28 20 63 6f 6e 73 74 20  .....for( const 
42d0: 63 68 61 72 2a 20 70 3d 74 3b 20 2a 70 3b 20 70  char* p=t; *p; p
42e0: 2b 2b 20 29 0d 0a 09 09 09 09 73 77 69 74 63 68  ++ )......switch
42f0: 28 2a 70 29 0d 0a 09 09 09 09 7b 0d 0a 09 09 09  (*p)......{.....
4300: 09 63 61 73 65 20 27 73 27 3a 20 6c 66 6e 3d 66  .case 's': lfn=f
4310: 61 6c 73 65 3b 20 62 72 65 61 6b 3b 0d 0a 09 09  alse; break;....
4320: 09 09 63 61 73 65 20 27 6c 27 3a 20 6c 66 6e 3d  ..case 'l': lfn=
4330: 74 72 75 65 3b 20 20 62 72 65 61 6b 3b 0d 0a 09  true;  break;...
4340: 09 09 09 63 61 73 65 20 27 66 27 3a 20 70 61 72  ...case 'f': par
4350: 74 3d 66 75 6c 6c 3b 20 62 72 65 61 6b 3b 0d 0a  t=full; break;..
4360: 09 09 09 09 63 61 73 65 20 27 6e 27 3a 20 70 61  ....case 'n': pa
4370: 72 74 3d 6e 61 6d 3b 20 20 62 72 65 61 6b 3b 0d  rt=nam;  break;.
4380: 0a 09 09 09 09 7d 0d 0a 09 09 7d 0d 0a 09 09 2f  .....}....}..../
4390: 2f 20 8e a9 91 4f 82 c5 8d c4 8b 41 83 8a 83 58  / ...O.....A...X
43a0: 83 67 83 41 83 62 83 76 82 f0 8d 73 82 a4 82 a9  .g.A.b.v...s....
43b0: 94 db 82 a9 0d 0a 09 09 62 6f 6f 6c 20 73 65 6c  ........bool sel
43c0: 66 72 65 63 75 72 73 65 20 3d 20 28 2a 6f 70 74  frecurse = (*opt
43d0: 3d 3d 27 72 27 29 3b 0d 0a 0d 0a 09 09 2f 2f 20  =='r');......// 
43e0: 83 66 83 42 83 8c 83 4e 83 67 83 8a 96 bc 82 cc  .f.B...N.g......
43f0: 8c e3 82 eb 82 c9 95 74 82 af 91 ab 82 b7 82 e0  .......t........
4400: 82 cc 81 42 0d 0a 09 09 69 66 28 20 2a 6f 70 74  ...B....if( *opt
4410: 3d 3d 27 5c 5c 27 20 7c 7c 20 2a 6f 70 74 3d 3d  =='\\' || *opt==
4420: 27 2f 27 20 29 0d 0a 09 09 09 6f 70 74 2b 2b 3b  '/' ).....opt++;
4430: 0d 0a 0d 0a 09 09 2f 2f 20 83 8a 83 58 83 67 83  ......// ...X.g.
4440: 41 83 62 83 76 0d 0a 09 09 6b 69 56 61 72 20 74  A.b.v....kiVar t
4450: 32 2c 74 33 3b 0d 0a 09 09 2a 72 20 3d 20 22 22  2,t3;....*r = ""
4460: 3b 0d 0a 09 09 66 6f 72 28 20 75 6e 73 69 67 6e  ;....for( unsign
4470: 65 64 20 69 6e 74 20 69 3d 30 3b 20 69 21 3d 78  ed int i=0; i!=x
4480: 2d 3e 6d 5f 70 73 4c 69 73 74 2d 3e 6c 65 6e 28  ->m_psList->len(
4490: 29 3b 20 69 2b 2b 20 29 0d 0a 09 09 7b 0d 0a 09  ); i++ )....{...
44a0: 09 09 2f 2f 20 83 74 83 40 83 43 83 8b 96 bc 95  ..// .t.@.C.....
44b0: 94 95 aa 0d 0a 09 09 09 74 20 3d 20 28 20 70 61  ........t = ( pa
44c0: 72 74 3d 3d 66 75 6c 6c 20 3f 20 2a 78 2d 3e 6d  rt==full ? *x->m
44d0: 5f 70 73 44 69 72 20 3a 20 28 63 6f 6e 73 74 20  _psDir : (const 
44e0: 63 68 61 72 2a 29 22 22 29 3b 0d 0a 09 09 09 74  char*)"");.....t
44f0: 20 2b 3d 20 6c 66 6e 20 3f 20 28 2a 78 2d 3e 6d   += lfn ? (*x->m
4500: 5f 70 73 4c 69 73 74 29 5b 69 5d 2e 63 46 69 6c  _psList)[i].cFil
4510: 65 4e 61 6d 65 20 3a 20 28 2a 78 2d 3e 6d 5f 70  eName : (*x->m_p
4520: 73 4c 69 73 74 29 5b 69 5d 2e 63 41 6c 74 65 72  sList)[i].cAlter
4530: 6e 61 74 65 46 69 6c 65 4e 61 6d 65 3b 0d 0a 0d  nateFileName;...
4540: 0a 09 09 09 69 66 28 20 73 65 6c 66 72 65 63 75  ....if( selfrecu
4550: 72 73 65 20 26 26 20 28 28 2a 78 2d 3e 6d 5f 70  rse && ((*x->m_p
4560: 73 4c 69 73 74 29 5b 69 5d 2e 64 77 46 69 6c 65  sList)[i].dwFile
4570: 41 74 74 72 69 62 75 74 65 73 20 26 20 46 49 4c  Attributes & FIL
4580: 45 5f 41 54 54 52 49 42 55 54 45 5f 44 49 52 45  E_ATTRIBUTE_DIRE
4590: 43 54 4f 52 59 29 20 29 0d 0a 09 09 09 7b 0d 0a  CTORY) ).....{..
45a0: 09 09 09 09 2f 2f 20 83 5a 83 8b 83 74 8d c4 8b  ....// .Z...t...
45b0: 41 0d 0a 09 09 09 09 74 32 20 3d 20 74 3b 0d 0a  A......t2 = t;..
45c0: 09 09 09 09 74 20 20 3d 20 22 22 3b 0d 0a 09 09  ....t  = "";....
45d0: 09 09 74 33 20 3d 20 2a 78 2d 3e 6d 5f 70 73 44  ..t3 = *x->m_psD
45e0: 69 72 3b 0d 0a 09 09 09 09 74 33 2b 3d 20 6c 66  ir;......t3+= lf
45f0: 6e 20 3f 20 28 2a 78 2d 3e 6d 5f 70 73 4c 69 73  n ? (*x->m_psLis
4600: 74 29 5b 69 5d 2e 63 46 69 6c 65 4e 61 6d 65 20  t)[i].cFileName 
4610: 3a 20 28 2a 78 2d 3e 6d 5f 70 73 4c 69 73 74 29  : (*x->m_psList)
4620: 5b 69 5d 2e 63 41 6c 74 65 72 6e 61 74 65 46 69  [i].cAlternateFi
4630: 6c 65 4e 61 6d 65 3b 0d 0a 09 09 09 09 73 65 6c  leName;......sel
4640: 66 52 28 20 74 32 2c 20 74 33 2c 20 6c 66 6e 2c  fR( t2, t3, lfn,
4650: 20 26 74 20 29 3b 0d 0a 09 09 09 7d 0d 0a 09 09   &t );.....}....
4660: 09 65 6c 73 65 0d 0a 09 09 09 7b 0d 0a 09 09 09  .else.....{.....
4670: 09 2f 2f 20 83 6d 81 5b 83 7d 83 8b 8f 88 97 9d  .// .m.[.}......
4680: 0d 0a 09 09 09 09 69 66 28 20 2a 6f 70 74 20 26  ......if( *opt &
4690: 26 20 28 28 2a 78 2d 3e 6d 5f 70 73 4c 69 73 74  & ((*x->m_psList
46a0: 29 5b 69 5d 2e 64 77 46 69 6c 65 41 74 74 72 69  )[i].dwFileAttri
46b0: 62 75 74 65 73 20 26 20 46 49 4c 45 5f 41 54 54  butes & FILE_ATT
46c0: 52 49 42 55 54 45 5f 44 49 52 45 43 54 4f 52 59  RIBUTE_DIRECTORY
46d0: 29 20 29 0d 0a 09 09 09 09 09 74 20 2b 3d 20 27  ) ).......t += '
46e0: 5c 5c 27 2c 20 74 20 2b 3d 20 6f 70 74 3b 0d 0a  \\', t += opt;..
46f0: 09 09 09 09 69 66 28 20 6c 66 6e 20 29 0d 0a 09  ....if( lfn )...
4700: 09 09 09 09 74 2e 71 75 6f 74 65 28 29 3b 0d 0a  ....t.quote();..
4710: 09 09 09 7d 0d 0a 09 09 09 2a 72 20 2b 3d 20 74  ...}.....*r += t
4720: 3b 0d 0a 09 09 09 2a 72 20 2b 3d 20 27 20 27 3b  ;.....*r += ' ';
4730: 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 0d 0a 09 72 2d  ....}...}.....r-
4740: 3e 72 65 6d 6f 76 65 54 72 61 69 6c 57 53 28 29  >removeTrailWS()
4750: 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 43 41 72  ;..}....void CAr
4760: 63 42 32 65 3a 3a 43 42 32 65 43 6f 72 65 3a 3a  cB2e::CB2eCore::
4770: 72 65 73 70 28 20 62 6f 6f 6c 20 6e 65 65 64 71  resp( bool needq
4780: 2c 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 6f 70  , const char* op
4790: 74 2c 20 63 6f 6e 73 74 20 43 68 61 72 41 72 72  t, const CharArr
47a0: 61 79 26 20 61 2c 20 63 6f 6e 73 74 20 42 6f 6f  ay& a, const Boo
47b0: 6c 41 72 72 61 79 26 20 62 2c 69 6e 74 20 63 2c  lArray& b,int c,
47c0: 20 6b 69 56 61 72 2a 20 72 20 29 0d 0a 7b 0d 0a   kiVar* r )..{..
47d0: 09 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .//-------------
47e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
47f0: 2f 2f 0d 0a 09 2f 2f 2d 2d 20 28 72 65 73 70 5b  //...//-- (resp[
4800: 40 7c 2d 6f 5d 20 28 6c 69 73 74 29 20 2e 2e 2e  @|-o] (list) ...
4810: 29 20 2d 2d 2f 2f 0d 0a 09 2f 2f 2d 2d 2d 2d 2d  ) --//...//-----
4820: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4830: 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 09 2f  --------//...../
4840: 2f 20 83 8c 83 58 83 7c 83 93 83 58 83 74 83 40  / ...X.|...X.t.@
4850: 83 43 83 8b 96 bc 8d ec 90 ac 0d 0a 09 6b 69 50  .C...........kiP
4860: 61 74 68 20 72 73 70 66 69 6c 65 3b 0d 0a 09 6d  ath rspfile;...m
4870: 79 61 70 70 28 29 2e 67 65 74 5f 74 65 6d 70 64  yapp().get_tempd
4880: 69 72 28 72 73 70 66 69 6c 65 29 3b 0d 0a 09 72  ir(rspfile);...r
4890: 73 70 66 69 6c 65 20 2b 3d 20 22 66 69 6c 65 6c  spfile += "filel
48a0: 69 73 74 22 3b 0d 0a 0d 0a 09 2f 2f 20 83 49 83  ist";.....// .I.
48b0: 76 83 56 83 87 83 93 82 c6 8c 8b 8d 87 82 b5 82  v.V.............
48c0: c4 95 d4 82 b7 0d 0a 09 2a 72 20 20 3d 20 6f 70  ........*r  = op
48d0: 74 3b 0d 0a 09 2a 72 20 2b 3d 20 72 73 70 66 69  t;...*r += rspfi
48e0: 6c 65 3b 0d 0a 0d 0a 09 2f 2f 20 83 74 83 40 83  le;.....// .t.@.
48f0: 43 83 8b 82 d6 8f 91 82 ab 8d 9e 82 dd 0d 0a 09  C...............
4900: 6b 69 46 69 6c 65 20 66 70 3b 0d 0a 09 69 66 28  kiFile fp;...if(
4910: 20 21 66 70 2e 6f 70 65 6e 28 20 72 73 70 66 69   !fp.open( rspfi
4920: 6c 65 2c 66 61 6c 73 65 20 29 20 29 0d 0a 09 09  le,false ) )....
4930: 72 65 74 75 72 6e 3b 0d 0a 0d 0a 09 6b 69 56 61  return;.....kiVa
4940: 72 20 74 6d 70 3b 0d 0a 09 66 6f 72 28 20 69 6e  r tmp;...for( in
4950: 74 20 69 3d 31 3b 20 69 3c 63 3b 20 69 2b 2b 20  t i=1; i<c; i++ 
4960: 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 66 70 82 d6  )...{....// fp..
4970: 8a 65 88 f8 90 94 82 f0 73 70 6c 69 74 82 b5 82  .e......split...
4980: c8 82 aa 82 e7 8f 91 82 ab 8d 9e 82 de 0d 0a 09  ................
4990: 09 67 65 74 61 72 67 28 20 61 5b 69 5d 2c 62 5b  .getarg( a[i],b[
49a0: 69 5d 2c 26 74 6d 70 20 29 3b 0d 0a 0d 0a 09 09  i],&tmp );......
49b0: 66 6f 72 28 20 63 6f 6e 73 74 20 63 68 61 72 20  for( const char 
49c0: 2a 73 2c 2a 70 3d 74 6d 70 3b 20 2a 70 3b 20 70  *s,*p=tmp; *p; p
49d0: 2b 2b 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 2f 2f  ++ )....{.....//
49e0: 20 97 5d 95 aa 82 c8 8b f3 94 92 82 cd 83 58 83   .]...........X.
49f0: 4c 83 62 83 76 0d 0a 09 09 09 77 68 69 6c 65 28  L.b.v.....while(
4a00: 20 2a 70 3d 3d 27 20 27 20 29 0d 0a 09 09 09 09   *p==' ' )......
4a10: 70 2b 2b 3b 0d 0a 09 09 09 69 66 28 20 2a 70 3d  p++;.....if( *p=
4a20: 3d 27 5c 30 27 20 29 0d 0a 09 09 09 09 62 72 65  ='\0' )......bre
4a30: 61 6b 3b 0d 0a 0d 0a 09 09 09 2f 2f 20 88 f8 90  ak;.......// ...
4a40: 94 82 cc 8f 49 82 ed 82 e8 82 d6 81 63 0d 0a 09  ....I.......c...
4a50: 09 09 73 3d 70 3b 0d 0a 09 09 09 66 6f 72 28 20  ..s=p;.....for( 
4a60: 69 6e 74 20 71 3d 30 3b 20 2a 70 21 3d 27 5c 30  int q=0; *p!='\0
4a70: 27 20 26 26 20 28 2a 70 21 3d 27 20 27 20 7c 7c  ' && (*p!=' ' ||
4a80: 20 28 71 26 31 29 21 3d 30 29 3b 20 70 2b 2b 20   (q&1)!=0); p++ 
4a90: 29 0d 0a 09 09 09 09 69 66 28 20 2a 70 3d 3d 27  )......if( *p=='
4aa0: 22 27 20 29 0d 0a 09 09 09 09 09 71 2b 2b 3b 0d  "' ).......q++;.
4ab0: 0a 0d 0a 09 09 09 2f 2f 20 22 82 cc 82 c2 82 b6  ......// "......
4ac0: 82 c2 82 dc 8d 87 82 ed 82 b9 88 ea 8d 86 0d 0a  ................
4ad0: 09 09 09 69 66 28 20 21 6e 65 65 64 71 20 26 26  ...if( !needq &&
4ae0: 20 2a 73 3d 3d 27 22 27 20 29 0d 0a 09 09 09 7b   *s=='"' ).....{
4af0: 0d 0a 09 09 09 09 73 2b 2b 3b 0d 0a 09 09 09 09  ......s++;......
4b00: 69 66 28 20 70 21 3d 73 20 26 26 20 2a 28 70 2d  if( p!=s && *(p-
4b10: 31 29 3d 3d 27 22 27 20 29 0d 0a 09 09 09 09 09  1)=='"' ).......
4b20: 70 2d 2d 3b 0d 0a 09 09 09 7d 0d 0a 0d 0a 09 09  p--;.....}......
4b30: 09 66 70 2e 77 72 69 74 65 28 20 73 2c 20 70 2d  .fp.write( s, p-
4b40: 73 20 29 3b 0d 0a 09 09 09 66 70 2e 77 72 69 74  s );.....fp.writ
4b50: 65 28 20 22 5c 72 5c 6e 22 2c 20 32 20 29 3b 0d  e( "\r\n", 2 );.
4b60: 0a 0d 0a 09 09 09 2f 2f 20 22 82 cc 82 c2 82 b6  ......// "......
4b70: 82 c2 82 dc 8d 87 82 ed 82 b9 93 f1 8d 86 0d 0a  ................
4b80: 09 09 09 69 66 28 20 2a 70 3d 3d 27 22 27 20 29  ...if( *p=='"' )
4b90: 0d 0a 09 09 09 09 70 2b 2b 3b 0d 0a 09 09 09 69  ......p++;.....i
4ba0: 66 28 20 2a 70 3d 3d 27 5c 30 27 20 29 0d 0a 09  f( *p=='\0' )...
4bb0: 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 7d 0d 0a  ...break;....}..
4bc0: 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 43 41  .}..}....void CA
4bd0: 72 63 42 32 65 3a 3a 43 42 32 65 43 6f 72 65 3a  rcB2e::CB2eCore:
4be0: 3a 69 6e 70 75 74 28 20 63 6f 6e 73 74 20 63 68  :input( const ch
4bf0: 61 72 2a 20 6d 73 67 2c 20 63 6f 6e 73 74 20 63  ar* msg, const c
4c00: 68 61 72 2a 20 64 65 66 76 61 6c 2c 20 6b 69 56  har* defval, kiV
4c10: 61 72 2a 20 72 20 29 0d 0a 7b 0d 0a 09 73 74 72  ar* r )..{...str
4c20: 75 63 74 20 43 42 32 65 49 6e 70 75 74 44 6c 67  uct CB2eInputDlg
4c30: 20 3a 20 70 75 62 6c 69 63 20 6b 69 44 69 61 6c   : public kiDial
4c40: 6f 67 0d 0a 09 7b 0d 0a 09 09 63 6f 6e 73 74 20  og...{....const 
4c50: 63 68 61 72 2a 20 6d 73 67 3b 0d 0a 09 09 63 6f  char* msg;....co
4c60: 6e 73 74 20 63 68 61 72 2a 20 64 65 66 3b 0d 0a  nst char* def;..
4c70: 09 09 6b 69 56 61 72 2a 20 20 20 20 20 20 72 65  ..kiVar*      re
4c80: 73 3b 0d 0a 0d 0a 09 09 43 42 32 65 49 6e 70 75  s;......CB2eInpu
4c90: 74 44 6c 67 28 20 63 6f 6e 73 74 20 63 68 61 72  tDlg( const char
4ca0: 2a 20 6d 2c 20 63 6f 6e 73 74 20 63 68 61 72 2a  * m, const char*
4cb0: 20 64 2c 20 6b 69 56 61 72 2a 20 72 20 29 0d 0a   d, kiVar* r )..
4cc0: 09 09 09 3a 20 6b 69 44 69 61 6c 6f 67 28 20 49  ...: kiDialog( I
4cd0: 44 44 5f 50 41 53 53 57 4f 52 44 20 29 2c 20 6d  DD_PASSWORD ), m
4ce0: 73 67 28 6d 29 2c 20 64 65 66 28 64 29 2c 20 72  sg(m), def(d), r
4cf0: 65 73 28 72 29 20 7b 7d 0d 0a 09 09 42 4f 4f 4c  es(r) {}....BOOL
4d00: 20 6f 6e 49 6e 69 74 28 29 0d 0a 09 09 09 7b 0d   onInit().....{.
4d10: 0a 09 09 09 09 73 65 6e 64 4d 73 67 54 6f 49 74  .....sendMsgToIt
4d20: 65 6d 28 20 49 44 43 5f 45 44 49 54 2c 20 57 4d  em( IDC_EDIT, WM
4d30: 5f 53 45 54 54 45 58 54 2c 20 30 2c 20 28 4c 50  _SETTEXT, 0, (LP
4d40: 41 52 41 4d 29 64 65 66 20 29 3b 0d 0a 09 09 09  ARAM)def );.....
4d50: 09 73 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 20  .sendMsgToItem( 
4d60: 49 44 43 5f 4d 45 53 53 41 47 45 2c 20 57 4d 5f  IDC_MESSAGE, WM_
4d70: 53 45 54 54 45 58 54 2c 20 30 2c 20 28 4c 50 41  SETTEXT, 0, (LPA
4d80: 52 41 4d 29 6d 73 67 20 29 3b 0d 0a 09 09 09 09  RAM)msg );......
4d90: 3a 3a 53 68 6f 77 57 69 6e 64 6f 77 28 20 69 74  ::ShowWindow( it
4da0: 65 6d 28 49 44 43 5f 4d 41 53 4b 29 2c 20 53 57  em(IDC_MASK), SW
4db0: 5f 48 49 44 45 20 29 3b 0d 0a 09 09 09 09 3a 3a  _HIDE );......::
4dc0: 53 68 6f 77 57 69 6e 64 6f 77 28 20 69 74 65 6d  ShowWindow( item
4dd0: 28 49 44 43 41 4e 43 45 4c 29 2c 20 53 57 5f 48  (IDCANCEL), SW_H
4de0: 49 44 45 20 29 3b 0d 0a 09 09 09 09 3a 3a 45 6e  IDE );......::En
4df0: 61 62 6c 65 57 69 6e 64 6f 77 28 20 69 74 65 6d  ableWindow( item
4e00: 28 49 44 43 5f 4d 41 53 4b 29 2c 20 46 41 4c 53  (IDC_MASK), FALS
4e10: 45 20 29 3b 0d 0a 09 09 09 09 3a 3a 45 6e 61 62  E );......::Enab
4e20: 6c 65 57 69 6e 64 6f 77 28 20 69 74 65 6d 28 49  leWindow( item(I
4e30: 44 43 41 4e 43 45 4c 29 2c 20 46 41 4c 53 45 20  DCANCEL), FALSE 
4e40: 29 3b 0d 0a 09 09 09 09 3a 3a 53 65 74 46 6f 63  );......::SetFoc
4e50: 75 73 28 20 69 74 65 6d 28 49 44 43 5f 45 44 49  us( item(IDC_EDI
4e60: 54 29 20 29 3b 0d 0a 09 09 09 09 72 65 74 75 72  T) );......retur
4e70: 6e 20 54 52 55 45 3b 0d 0a 09 09 09 7d 0d 0a 09  n TRUE;.....}...
4e80: 09 62 6f 6f 6c 20 6f 6e 4f 4b 28 29 0d 0a 09 09  .bool onOK()....
4e90: 09 7b 0d 0a 09 09 09 09 63 68 61 72 2a 20 62 75  .{......char* bu
4ea0: 66 20 3d 20 6e 65 77 20 63 68 61 72 5b 33 32 37  f = new char[327
4eb0: 36 38 5d 3b 0d 0a 09 09 09 09 73 65 6e 64 4d 73  68];......sendMs
4ec0: 67 54 6f 49 74 65 6d 28 20 49 44 43 5f 45 44 49  gToItem( IDC_EDI
4ed0: 54 2c 20 57 4d 5f 47 45 54 54 45 58 54 2c 20 33  T, WM_GETTEXT, 3
4ee0: 32 37 36 38 2c 20 28 4c 50 41 52 41 4d 29 62 75  2768, (LPARAM)bu
4ef0: 66 20 29 3b 0d 0a 09 09 09 09 2a 72 65 73 20 3d  f );......*res =
4f00: 20 62 75 66 3b 0d 0a 09 09 09 09 64 65 6c 65 74   buf;......delet
4f10: 65 20 5b 5d 20 62 75 66 3b 0d 0a 09 09 09 09 72  e [] buf;......r
4f20: 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 09 09 09  eturn true;.....
4f30: 7d 0d 0a 09 7d 3b 0d 0a 0d 0a 09 43 42 32 65 49  }...};.....CB2eI
4f40: 6e 70 75 74 44 6c 67 20 64 28 20 6d 73 67 2c 20  nputDlg d( msg, 
4f50: 64 65 66 76 61 6c 2c 20 72 20 29 3b 0d 0a 09 64  defval, r );...d
4f60: 2e 64 6f 4d 6f 64 61 6c 28 20 61 70 70 28 29 2d  .doModal( app()-
4f70: 3e 6d 61 69 6e 68 77 6e 64 28 29 20 29 3b 0d 0a  >mainhwnd() );..
4f80: 7d 0d 0a 0d 0a                                   }....