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