Hex Artifact Content

Not logged in

Artifact a3b52f0446b0f2d0f3c0c559bc683794f5f52c57:


0000: 2f 2f 20 4e 6f 61 68 2e 63 70 70 0d 0a 2f 2f 20  // Noah.cpp..// 
0010: 2d 2d 20 65 6e 74 72 79 70 6f 69 6e 74 20 65 74  -- entrypoint et
0020: 63 20 66 6f 72 20 27 4e 6f 61 68 27 0d 0a 0d 0a  c for 'Noah'....
0030: 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61 66 78  #include "stdafx
0040: 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20 22 4e  .h"..#include "N
0050: 6f 61 68 41 70 70 2e 68 22 0d 0a 23 69 6e 63 6c  oahApp.h"..#incl
0060: 75 64 65 20 22 72 65 73 6f 75 72 63 65 2e 68 22  ude "resource.h"
0070: 0d 0a 0d 0a 23 69 66 20 5f 4d 53 43 5f 56 45 52  ....#if _MSC_VER
0080: 20 3e 3d 20 31 33 30 30 0d 0a 65 78 74 65 72 6e   >= 1300..extern
0090: 20 22 43 22 20 7b 20 69 6e 74 20 5f 61 66 78 46   "C" { int _afxF
00a0: 6f 72 63 65 45 58 43 4c 55 44 45 3b 20 7d 0d 0a  orceEXCLUDE; }..
00b0: 65 78 74 65 72 6e 20 22 43 22 20 42 4f 4f 4c 20  extern "C" BOOL 
00c0: 57 49 4e 41 50 49 20 5f 69 6d 70 5f 5f 49 73 44  WINAPI _imp__IsD
00d0: 65 62 75 67 67 65 72 50 72 65 73 65 6e 74 28 29  ebuggerPresent()
00e0: 20 7b 20 72 65 74 75 72 6e 20 46 41 4c 53 45 3b   { return FALSE;
00f0: 20 7d 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f   }..#endif....//
0100: 20 83 76 83 8d 83 5a 83 58 8c c2 90 94 90 a7 8c   .v...Z.X.......
0110: c0 83 5d 81 5b 83 93 0d 0a 63 6c 61 73 73 20 50  ..].[....class P
0120: 72 6f 63 65 73 73 4e 75 6d 4c 69 6d 69 74 5a 6f  rocessNumLimitZo
0130: 6e 65 0d 0a 7b 0d 0a 09 48 41 4e 44 4c 45 20 6d  ne..{...HANDLE m
0140: 5f 68 61 6e 3b 0d 0a 70 75 62 6c 69 63 3a 0d 0a  _han;..public:..
0150: 09 50 72 6f 63 65 73 73 4e 75 6d 4c 69 6d 69 74  .ProcessNumLimit
0160: 5a 6f 6e 65 28 69 6e 74 20 4d 61 78 2c 20 63 6f  Zone(int Max, co
0170: 6e 73 74 20 63 68 61 72 2a 20 6e 61 6d 65 29 0d  nst char* name).
0180: 0a 09 09 3a 20 6d 5f 68 61 6e 28 20 3a 3a 43 72  ...: m_han( ::Cr
0190: 65 61 74 65 53 65 6d 61 70 68 6f 72 65 28 20 4e  eateSemaphore( N
01a0: 55 4c 4c 2c 20 4d 61 78 2c 20 4d 61 78 2c 20 6e  ULL, Max, Max, n
01b0: 61 6d 65 20 29 20 29 0d 0a 09 7b 0d 0a 09 09 69  ame ) )...{....i
01c0: 66 28 20 6d 5f 68 61 6e 20 29 0d 0a 09 09 09 3a  f( m_han ).....:
01d0: 3a 57 61 69 74 46 6f 72 53 69 6e 67 6c 65 4f 62  :WaitForSingleOb
01e0: 6a 65 63 74 28 20 6d 5f 68 61 6e 2c 20 49 4e 46  ject( m_han, INF
01f0: 49 4e 49 54 45 20 29 3b 0d 0a 09 09 65 6c 73 65  INITE );....else
0200: 0d 0a 09 09 09 6b 69 53 55 74 69 6c 3a 3a 6d 73  .....kiSUtil::ms
0210: 67 4c 61 73 74 45 72 72 6f 72 28 22 43 72 65 61  gLastError("Crea
0220: 74 65 53 65 6d 61 70 68 6f 72 65 20 46 61 69 6c  teSemaphore Fail
0230: 65 64 22 29 3b 0d 0a 09 7d 0d 0a 09 7e 50 72 6f  ed");...}...~Pro
0240: 63 65 73 73 4e 75 6d 4c 69 6d 69 74 5a 6f 6e 65  cessNumLimitZone
0250: 28 29 0d 0a 09 7b 0d 0a 09 09 69 66 28 20 6d 5f  ()...{....if( m_
0260: 68 61 6e 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 3a  han )....{.....:
0270: 3a 52 65 6c 65 61 73 65 53 65 6d 61 70 68 6f 72  :ReleaseSemaphor
0280: 65 28 20 6d 5f 68 61 6e 2c 20 31 2c 20 4e 55 4c  e( m_han, 1, NUL
0290: 4c 20 29 3b 0d 0a 09 09 09 3a 3a 43 6c 6f 73 65  L );.....::Close
02a0: 48 61 6e 64 6c 65 28 20 6d 5f 68 61 6e 20 29 3b  Handle( m_han );
02b0: 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 7d 3b 0d 0a 0d  ....}...}..};...
02c0: 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .//-------------
02d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
02e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
02f0: 2d 2f 2f 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  -//..//---------
0300: 20 4e 6f 61 68 20 82 cc 83 47 83 93 83 67 83 8a   Noah ...G...g..
0310: 83 7c 83 43 83 93 83 67 20 2d 2d 2d 2d 2d 2d 2d  .|.C...g -------
0320: 2d 2d 2d 2d 2d 2f 2f 0d 0a 2f 2f 2d 2d 2d 2d 2d  -----//..//-----
0330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 76  ---------//....v
0360: 6f 69 64 20 6b 69 6c 69 62 5f 63 72 65 61 74 65  oid kilib_create
0370: 5f 6e 65 77 5f 61 70 70 28 29 0d 0a 7b 0d 0a 09  _new_app()..{...
0380: 2f 2f 2d 2d 20 6b 69 6c 69 62 20 82 c9 83 41 83  //-- kilib ...A.
0390: 76 83 8a 83 50 81 5b 83 56 83 87 83 93 82 f0 90  v...P.[.V.......
03a0: dd 92 e8 0d 0a 09 6e 65 77 20 43 4e 6f 61 68 41  ......new CNoahA
03b0: 70 70 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 43  pp;..}....void C
03c0: 4e 6f 61 68 41 70 70 3a 3a 72 75 6e 28 20 6b 69  NoahApp::run( ki
03d0: 43 6d 64 50 61 72 73 65 72 26 20 63 6d 64 20 29  CmdParser& cmd )
03e0: 0d 0a 7b 0d 0a 09 2f 2f 2d 2d 20 8f 89 8a fa 89  ..{...//-- .....
03f0: bb 0d 0a 09 6d 5f 63 6e 66 4d 61 6e 2e 69 6e 69  ....m_cnfMan.ini
0400: 74 28 29 3b 0d 0a 09 6d 5f 61 72 63 4d 61 6e 2e  t();...m_arcMan.
0410: 69 6e 69 74 28 29 3b 0d 0a 0d 0a 09 2f 2f 2d 2d  init();.....//--
0420: 20 83 52 83 7d 83 93 83 68 83 89 83 43 83 93 83   .R.}...h...C...
0430: 70 83 89 83 81 81 5b 83 5e 95 db 8e 9d 0d 0a 09  p.....[.^.......
0440: 6d 5f 70 43 6d 64 20 3d 20 26 63 6d 64 3b 0d 0a  m_pCmd = &cmd;..
0450: 0d 0a 09 2f 2f 2d 2d 20 81 75 83 74 83 40 83 43  ...//-- .u.t.@.C
0460: 83 8b 96 bc 82 aa 93 6e 82 b3 82 ea 82 c4 82 c8  .......n........
0470: 82 a2 20 6f 72 20 53 68 69 66 74 89 9f 82 b5 8b  .. or Shift.....
0480: 4e 93 ae 81 76 82 c8 82 e7 90 dd 92 e8 89 e6 96  N...v...........
0490: ca 95 5c 8e a6 0d 0a 09 69 66 28 20 63 6d 64 2e  ..\.....if( cmd.
04a0: 70 61 72 61 6d 28 29 2e 6c 65 6e 28 29 3d 3d 30  param().len()==0
04b0: 20 7c 7c 20 6b 65 79 50 75 73 68 65 64 28 56 4b   || keyPushed(VK
04c0: 5f 53 48 49 46 54 29 20 29 0d 0a 09 7b 0d 0a 09  _SHIFT) )...{...
04d0: 09 2f 2f 2d 2d 20 4c 6f 61 64 2d 49 4e 49 20 28  .//-- Load-INI (
04e0: 20 91 53 95 94 20 29 0d 0a 09 09 6d 5f 63 6e 66   .S.. )....m_cnf
04f0: 4d 61 6e 2e 6c 6f 61 64 28 20 41 6c 6c 20 29 3b  Man.load( All );
0500: 0d 0a 09 09 2f 2f 2d 2d 20 90 dd 92 e8 89 e6 96  ....//-- .......
0510: ca 95 5c 8e a6 0d 0a 09 09 6d 5f 63 6e 66 4d 61  ..\......m_cnfMa
0520: 6e 2e 64 69 61 6c 6f 67 28 29 3b 0d 0a 09 7d 0d  n.dialog();...}.
0530: 0a 09 65 6c 73 65 0d 0a 09 7b 0d 0a 09 09 2f 2f  ..else...{....//
0540: 2d 2d 20 88 b3 8f 6b 89 f0 93 80 82 c8 82 c7 82  -- ...k.........
0550: cc 8d ec 8b c6 0d 0a 09 09 64 6f 5f 63 6d 64 6c  .........do_cmdl
0560: 69 6e 65 28 20 74 72 75 65 20 29 3b 0d 0a 09 7d  ine( true );...}
0570: 0d 0a 0d 0a 09 2f 2f 2d 2d 20 8f 49 97 b9 8f 88  .....//-- .I....
0580: 97 9d 0d 0a 09 6d 5f 74 6d 70 44 69 72 2e 72 65  .....m_tmpDir.re
0590: 6d 6f 76 65 28 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f  move();..}....//
05a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
05b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
05c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f  --------------//
05d0: 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..//------------
05e0: 2d 20 88 b3 8f 6b 2f 89 f0 93 80 20 82 cc 20 8d  - ...k/.... .. .
05f0: ec 8b c6 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ... ------------
0600: 2d 2d 2f 2f 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d  --//..//--------
0610: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0620: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0630: 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 62 6f 6f 6c  ------//....bool
0640: 20 43 4e 6f 61 68 41 70 70 3a 3a 69 73 5f 77 72   CNoahApp::is_wr
0650: 69 74 61 62 6c 65 5f 64 69 72 28 20 63 6f 6e 73  itable_dir( cons
0660: 74 20 6b 69 50 61 74 68 26 20 70 61 74 68 20 29  t kiPath& path )
0670: 0d 0a 7b 0d 0a 09 2f 2f 20 97 76 82 b7 82 e9 82  ..{...// .v.....
0680: c9 81 41 43 44 52 4f 4d 2f 44 56 44 52 4f 4d 20  ..ACDROM/DVDROM 
0690: 82 f0 90 d8 82 e8 82 bd 82 a2 81 42 0d 0a 09 2f  ...........B.../
06a0: 2f 20 46 44 44 2c 20 50 61 63 6b 65 74 57 72 69  / FDD, PacketWri
06b0: 74 65 82 c8 44 69 73 6b 20 82 f0 90 d8 82 e9 82  te..Disk .......
06c0: cc 82 cd 82 a0 82 ab 82 e7 82 df 82 e9 81 42 0d  ..............B.
06d0: 0a 0d 0a 09 2f 2f 20 52 41 4d 44 49 53 4b 2c 20  ....// RAMDISK, 
06e0: 52 45 4d 4f 54 45 2c 20 46 49 58 45 44 2c 20 55  REMOTE, FIXED, U
06f0: 4e 4b 4e 4f 57 4e 20 82 c8 83 66 83 42 83 58 83  NKNOWN ...f.B.X.
0700: 4e 82 cd 8f 91 82 ab 8d 9e 82 dd 89 c2 94 5c 82  N.............\.
0710: c6 8c a9 82 c8 82 b7 0d 0a 09 55 49 4e 54 20 64  ..........UINT d
0720: 72 76 20 3d 20 70 61 74 68 2e 67 65 74 44 72 69  rv = path.getDri
0730: 76 65 54 79 70 65 28 29 3b 0d 0a 09 69 66 28 20  veType();...if( 
0740: 64 72 76 3d 3d 44 52 49 56 45 5f 52 45 4d 4f 56  drv==DRIVE_REMOV
0750: 41 42 4c 45 20 7c 7c 20 64 72 76 3d 3d 44 52 49  ABLE || drv==DRI
0760: 56 45 5f 43 44 52 4f 4d 20 29 0d 0a 09 7b 0d 0a  VE_CDROM )...{..
0770: 09 09 2f 2f 20 91 66 57 69 6e 39 35 82 c5 82 cd  ..// .fWin95....
0780: 8e 67 82 a6 82 c8 82 a2 8a d6 90 94 82 c8 82 cc  .g..............
0790: 82 c5 44 79 6e 61 6d 69 63 4c 6f 61 64 0d 0a 09  ..DynamicLoad...
07a0: 09 74 79 70 65 64 65 66 20 42 4f 4f 4c 20 28 57  .typedef BOOL (W
07b0: 49 4e 41 50 49 2a 70 47 44 46 53 45 29 28 20 4c  INAPI*pGDFSE)( L
07c0: 50 43 54 53 54 52 2c 20 50 55 4c 41 52 47 45 5f  PCTSTR, PULARGE_
07d0: 49 4e 54 45 47 45 52 2c 20 50 55 4c 41 52 47 45  INTEGER, PULARGE
07e0: 5f 49 4e 54 45 47 45 52 2c 20 50 55 4c 41 52 47  _INTEGER, PULARG
07f0: 45 5f 49 4e 54 45 47 45 52 20 29 3b 0d 0a 09 09  E_INTEGER );....
0800: 70 47 44 46 53 45 20 70 47 65 74 44 69 73 6b 46  pGDFSE pGetDiskF
0810: 72 65 65 53 70 61 63 65 45 78 0d 0a 09 09 09 3d  reeSpaceEx.....=
0820: 20 28 70 47 44 46 53 45 29 20 3a 3a 47 65 74 50   (pGDFSE) ::GetP
0830: 72 6f 63 41 64 64 72 65 73 73 28 20 3a 3a 47 65  rocAddress( ::Ge
0840: 74 4d 6f 64 75 6c 65 48 61 6e 64 6c 65 28 22 6b  tModuleHandle("k
0850: 65 72 6e 65 6c 33 32 2e 64 6c 6c 22 29 2c 20 22  ernel32.dll"), "
0860: 47 65 74 44 69 73 6b 46 72 65 65 53 70 61 63 65  GetDiskFreeSpace
0870: 45 78 41 22 20 29 3b 0d 0a 09 09 69 66 28 20 70  ExA" );....if( p
0880: 47 65 74 44 69 73 6b 46 72 65 65 53 70 61 63 65  GetDiskFreeSpace
0890: 45 78 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 2f 2f  Ex )....{.....//
08a0: 20 8b f3 82 ab 97 65 97 ca 82 aa 30 82 c8 82 e7   .....e....0....
08b0: 81 41 8f 91 82 ab 8d 9e 82 dd 95 73 89 c2 82 c6  .A.........s....
08c0: 82 dd 82 c8 82 b7 0d 0a 09 09 09 55 4c 41 52 47  ...........ULARG
08d0: 45 5f 49 4e 54 45 47 45 52 20 66 73 2c 20 64 75  E_INTEGER fs, du
08e0: 6d 6d 79 3b 0d 0a 09 09 09 70 47 65 74 44 69 73  mmy;.....pGetDis
08f0: 6b 46 72 65 65 53 70 61 63 65 45 78 28 20 70 61  kFreeSpaceEx( pa
0900: 74 68 2c 20 26 64 75 6d 6d 79 2c 20 26 64 75 6d  th, &dummy, &dum
0910: 6d 79 2c 20 26 66 73 20 29 3b 0d 0a 09 09 09 69  my, &fs );.....i
0920: 66 28 20 66 73 2e 51 75 61 64 50 61 72 74 20 3d  f( fs.QuadPart =
0930: 3d 20 30 20 29 0d 0a 09 09 09 09 72 65 74 75 72  = 0 )......retur
0940: 6e 20 66 61 6c 73 65 3b 0d 0a 09 09 7d 0d 0a 09  n false;....}...
0950: 7d 0d 0a 09 72 65 74 75 72 6e 20 74 72 75 65 3b  }...return true;
0960: 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 43 4e 6f 61  ..}....void CNoa
0970: 68 41 70 70 3a 3a 64 6f 5f 63 6d 64 6c 69 6e 65  hApp::do_cmdline
0980: 28 20 62 6f 6f 6c 20 64 69 72 65 63 74 63 61 6c  ( bool directcal
0990: 6c 20 29 0d 0a 7b 0d 0a 09 64 6f 5f 66 69 6c 65  l )..{...do_file
09a0: 73 28 20 6d 5f 70 43 6d 64 2d 3e 70 61 72 61 6d  s( m_pCmd->param
09b0: 28 29 2c 20 26 6d 5f 70 43 6d 64 2d 3e 6f 70 74  (), &m_pCmd->opt
09c0: 69 6f 6e 28 29 2c 20 21 64 69 72 65 63 74 63 61  ion(), !directca
09d0: 6c 6c 20 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64  ll );..}....void
09e0: 20 43 4e 6f 61 68 41 70 70 3a 3a 64 6f 5f 66 69   CNoahApp::do_fi
09f0: 6c 65 73 28 20 63 6f 6e 73 74 20 63 43 68 61 72  les( const cChar
0a00: 41 72 72 61 79 26 20 66 69 6c 65 73 2c 0d 0a 09  Array& files,...
0a10: 09 09 09 09 09 20 63 6f 6e 73 74 20 63 43 68 61  ..... const cCha
0a20: 72 41 72 72 61 79 2a 20 6f 70 74 73 2c 0d 0a 09  rArray* opts,...
0a30: 09 09 09 09 09 20 62 6f 6f 6c 20 20 62 61 73 69  ..... bool  basi
0a40: 63 61 6c 79 5f 69 67 6e 6f 72 65 20 29 0d 0a 7b  caly_ignore )..{
0a50: 0d 0a 09 73 74 72 75 63 74 20 6c 6f 63 61 6c 20  ...struct local 
0a60: 7b 0d 0a 09 09 7e 6c 6f 63 61 6c 28 29 20 7b 6b  {....~local() {k
0a70: 69 53 55 74 69 6c 3a 3a 73 77 69 74 63 68 43 75  iSUtil::switchCu
0a80: 72 44 69 72 54 6f 45 78 65 44 69 72 28 29 3b 20  rDirToExeDir(); 
0a90: 7d 20 2f 2f 20 83 66 83 42 83 8c 83 4e 83 67 83  } // .f.B...N.g.
0aa0: 8a 83 8d 83 62 83 4e 82 b5 82 c8 82 a2 82 e6 82  ....b.N.........
0ab0: a4 82 c9 0d 0a 09 7d 20 5f 3b 0d 0a 0d 0a 09 2f  ......} _;...../
0ac0: 2f 2d 2d 20 41 72 63 68 69 76 65 72 20 4d 61 6e  /-- Archiver Man
0ad0: 61 67 65 72 20 82 c9 83 74 83 40 83 43 83 8b 96  ager ...t.@.C...
0ae0: bc 83 8a 83 58 83 67 82 f0 8b 4c 89 af 82 b7 82  ....X.g...L.....
0af0: e9 0d 0a 09 69 66 28 20 30 20 3d 3d 20 6d 5f 61  ....if( 0 == m_a
0b00: 72 63 4d 61 6e 2e 73 65 74 5f 66 69 6c 65 73 28  rcMan.set_files(
0b10: 20 66 69 6c 65 73 20 29 20 29 0d 0a 09 09 72 65   files ) )....re
0b20: 74 75 72 6e 3b 0d 0a 0d 0a 09 2f 2f 2d 2d 20 8d  turn;.....//-- .
0b30: ec 8b c6 97 70 95 cf 90 94 0d 0a 09 65 6e 75 6d  ....p.......enum
0b40: 20 7b 20 75 6e 6b 6e 6f 77 6e 2c 20 6d 65 6c 74   { unknown, melt
0b50: 2c 20 63 6f 6d 70 72 65 73 73 20 7d 0d 0a 09 09  , compress }....
0b60: 09 77 68 61 74 74 6f 64 6f 20 3d 20 75 6e 6b 6e  .whattodo = unkn
0b70: 6f 77 6e 3b 0d 0a 09 62 6f 6f 6c 09 63 74 72 6c  own;...bool.ctrl
0b80: 5f 6d 6c 74 20 3d 20 6b 65 79 50 75 73 68 65 64  _mlt = keyPushed
0b90: 28 20 56 4b 5f 43 4f 4e 54 52 4f 4c 20 29 3b 0d  ( VK_CONTROL );.
0ba0: 0a 09 62 6f 6f 6c 09 63 74 72 6c 5f 63 6d 70 20  ..bool.ctrl_cmp 
0bb0: 3d 20 63 74 72 6c 5f 6d 6c 74 3b 0d 0a 09 62 6f  = ctrl_mlt;...bo
0bc0: 6f 6c 09 61 6c 74 20 20 20 20 20 20 3d 20 6b 65  ol.alt      = ke
0bd0: 79 50 75 73 68 65 64 28 20 56 4b 5f 4d 45 4e 55  yPushed( VK_MENU
0be0: 20 29 20 7c 7c 20 6b 65 79 50 75 73 68 65 64 28   ) || keyPushed(
0bf0: 20 56 4b 5f 52 57 49 4e 20 29 20 7c 7c 20 6b 65   VK_RWIN ) || ke
0c00: 79 50 75 73 68 65 64 28 20 56 4b 5f 4c 57 49 4e  yPushed( VK_LWIN
0c10: 20 29 3b 0d 0a 09 63 6f 6e 73 74 20 63 68 61 72   );...const char
0c20: 20 2a 63 6d 70 74 79 70 65 3d 4e 55 4c 4c 2c 20   *cmptype=NULL, 
0c30: 2a 6d 65 74 68 6f 64 3d 4e 55 4c 4c 3b 0d 0a 09  *method=NULL;...
0c40: 6b 69 50 61 74 68 20 20 64 65 73 74 64 69 72 3b  kiPath  destdir;
0c50: 0d 0a 09 6b 69 53 74 72 20 74 6d 70 28 33 30 30  ...kiStr tmp(300
0c60: 29 3b 0d 0a 0d 0a 09 2f 2f 2d 2d 20 28 20 82 e0  );.....//-- ( ..
0c70: 82 b5 82 a0 82 ea 82 ce 20 29 83 52 83 7d 83 93  ........ ).R.}..
0c80: 83 68 83 89 83 43 83 93 83 49 83 76 83 56 83 87  .h...C...I.v.V..
0c90: 83 93 82 f0 89 f0 8e df 0d 0a 09 69 66 28 20 6f  ...........if( o
0ca0: 70 74 73 20 29 0d 0a 09 09 66 6f 72 28 20 75 6e  pts )....for( un
0cb0: 73 69 67 6e 65 64 20 69 6e 74 20 69 3d 30 3b 20  signed int i=0; 
0cc0: 69 21 3d 6f 70 74 73 2d 3e 6c 65 6e 28 29 3b 20  i!=opts->len(); 
0cd0: 69 2b 2b 20 29 0d 0a 09 09 09 73 77 69 74 63 68  i++ ).....switch
0ce0: 28 20 28 2a 6f 70 74 73 29 5b 69 5d 5b 31 5d 20  ( (*opts)[i][1] 
0cf0: 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 63 61 73 65  ).....{.....case
0d00: 20 27 61 27 3a 09 69 66 28 20 21 62 61 73 69 63   'a':.if( !basic
0d10: 61 6c 79 5f 69 67 6e 6f 72 65 20 29 0d 0a 09 09  aly_ignore )....
0d20: 09 63 61 73 65 20 27 41 27 3a 09 09 77 68 61 74  .case 'A':..what
0d30: 74 6f 64 6f 20 3d 20 63 6f 6d 70 72 65 73 73 3b  todo = compress;
0d40: 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09 09 09 63 61  .break;.......ca
0d50: 73 65 20 27 78 27 3a 09 69 66 28 20 21 62 61 73  se 'x':.if( !bas
0d60: 69 63 61 6c 79 5f 69 67 6e 6f 72 65 20 29 0d 0a  icaly_ignore )..
0d70: 09 09 09 63 61 73 65 20 27 58 27 3a 09 09 77 68  ...case 'X':..wh
0d80: 61 74 74 6f 64 6f 20 3d 20 6d 65 6c 74 3b 09 09  attodo = melt;..
0d90: 62 72 65 61 6b 3b 0d 0a 0d 0a 09 09 09 63 61 73  break;.......cas
0da0: 65 20 27 64 27 3a 09 69 66 28 20 21 62 61 73 69  e 'd':.if( !basi
0db0: 63 61 6c 79 5f 69 67 6e 6f 72 65 20 29 0d 0a 09  caly_ignore )...
0dc0: 09 09 63 61 73 65 20 27 44 27 3a 09 09 64 65 73  ..case 'D':..des
0dd0: 74 64 69 72 20 3d 20 28 2a 6f 70 74 73 29 5b 69  tdir = (*opts)[i
0de0: 5d 2b 32 3b 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09  ]+2;.break;.....
0df0: 09 09 63 61 73 65 20 27 77 27 3a 09 69 66 28 20  ..case 'w':.if( 
0e00: 21 62 61 73 69 63 61 6c 79 5f 69 67 6e 6f 72 65  !basicaly_ignore
0e10: 20 29 0d 0a 09 09 09 63 61 73 65 20 27 57 27 3a   ).....case 'W':
0e20: 09 09 61 6c 74 20 3d 20 74 72 75 65 3b 09 09 09  ..alt = true;...
0e30: 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09 09 09 63 61  .break;.......ca
0e40: 73 65 20 27 74 27 3a 09 69 66 28 20 21 62 61 73  se 't':.if( !bas
0e50: 69 63 61 6c 79 5f 69 67 6e 6f 72 65 20 29 0d 0a  icaly_ignore )..
0e60: 09 09 09 63 61 73 65 20 27 54 27 3a 09 09 63 6d  ...case 'T':..cm
0e70: 70 74 79 70 65 20 3d 20 28 2a 6f 70 74 73 29 5b  ptype = (*opts)[
0e80: 69 5d 2b 32 3b 09 62 72 65 61 6b 3b 0d 0a 0d 0a  i]+2;.break;....
0e90: 09 09 09 63 61 73 65 20 27 6d 27 3a 09 69 66 28  ...case 'm':.if(
0ea0: 20 21 62 61 73 69 63 61 6c 79 5f 69 67 6e 6f 72   !basicaly_ignor
0eb0: 65 20 29 0d 0a 09 09 09 63 61 73 65 20 27 4d 27  e ).....case 'M'
0ec0: 3a 09 09 6d 65 74 68 6f 64 20 3d 20 28 2a 6f 70  :..method = (*op
0ed0: 74 73 29 5b 69 5d 2b 32 3b 09 62 72 65 61 6b 3b  ts)[i]+2;.break;
0ee0: 0d 0a 0d 0a 09 09 09 63 61 73 65 20 27 63 27 3a  .......case 'c':
0ef0: 09 69 66 28 20 21 62 61 73 69 63 61 6c 79 5f 69  .if( !basicaly_i
0f00: 67 6e 6f 72 65 20 29 20 7b 0d 0a 09 09 09 63 61  gnore ) {.....ca
0f10: 73 65 20 27 43 27 3a 09 09 69 66 28 28 2a 6f 70  se 'C':..if((*op
0f20: 74 73 29 5b 69 5d 5b 32 5d 21 3d 27 78 27 29 20  ts)[i][2]!='x') 
0f30: 63 74 72 6c 5f 63 6d 70 20 3d 20 74 72 75 65 3b  ctrl_cmp = true;
0f40: 0d 0a 09 09 09 09 09 09 09 69 66 28 28 2a 6f 70  .........if((*op
0f50: 74 73 29 5b 69 5d 5b 32 5d 21 3d 27 61 27 29 20  ts)[i][2]!='a') 
0f60: 63 74 72 6c 5f 6d 6c 74 20 3d 20 74 72 75 65 3b  ctrl_mlt = true;
0f70: 0d 0a 09 09 09 09 09 09 62 72 65 61 6b 3b 7d 0d  ........break;}.
0f80: 0a 09 09 09 7d 0d 0a 0d 0a 09 2f 2f 2d 2d 20 4c  ....}.....//-- L
0f90: 6f 61 64 2d 49 4e 49 20 28 20 93 ae 8d ec 83 82  oad-INI ( ......
0fa0: 81 5b 83 68 90 dd 92 e8 20 29 0d 0a 09 6d 5f 63  .[.h.... )...m_c
0fb0: 6e 66 4d 61 6e 2e 6c 6f 61 64 28 20 4d 6f 64 65  nfMan.load( Mode
0fc0: 20 29 3b 0d 0a 0d 0a 09 2f 2f 2d 2d 20 88 b3 8f   );.....//-- ...
0fd0: 6b 89 f0 93 80 82 cc 82 c7 82 bf 82 e7 82 f0 8d  k...............
0fe0: 73 82 a4 82 a9 8c 88 92 e8 82 b7 82 e9 81 42 97  s.............B.
0ff0: ac 82 ea 82 cd 88 c8 89 ba 82 cc 92 ca 82 e8 81  ................
1000: 42 0d 0a 09 2f 2f 0d 0a 09 2f 2f 20 81 45 83 52  B...//...// .E.R
1010: 83 7d 83 93 83 68 83 89 83 43 83 93 82 c5 81 41  .}...h...C.....A
1020: 88 b3 8f 6b 82 c6 8e 77 92 e8 82 b3 82 ea 82 c4  ...k...w........
1030: 82 ea 82 ce 96 b3 8f f0 8c 8f 82 c5 88 b3 8f 6b  ...............k
1040: 82 d6 0d 0a 09 2f 2f 0d 0a 09 2f 2f 20 81 45 82  .....//...// .E.
1050: bb 82 a4 82 c5 82 c8 82 af 82 ea 82 ce 81 41 82  ..............A.
1060: dc 82 b8 4e 6f 61 68 82 cc 93 ae 8d ec 83 82 81  ...Noah.........
1070: 5b 83 68 8e e6 93 be 0d 0a 09 2f 2f 20 81 40 6d  [.h.......// .@m
1080: 30 3a 88 b3 8f 6b 90 ea 97 70 20 20 6d 31 3a 88  0:...k...p  m1:.
1090: b3 8f 6b 97 44 90 e6 20 20 6d 32 3a 89 f0 93 80  ..k.D..  m2:....
10a0: 97 44 90 e6 20 20 6d 33 3a 89 f0 93 80 90 ea 97  .D..  m3:.......
10b0: 70 0d 0a 09 2f 2f 20 81 40 81 40 83 52 83 7d 83  p...// .@.@.R.}.
10c0: 93 83 68 83 89 83 43 83 93 82 c5 89 f0 93 80 82  ..h...C.........
10d0: c6 8e 77 92 e8 82 b3 82 ea 82 c4 82 a2 82 ea 82  ..w.............
10e0: ce 20 6d 33 81 42 0d 0a 09 2f 2f 20 81 40 81 40  . m3.B...// .@.@
10f0: 8e 77 92 e8 82 aa 96 b3 82 af 82 ea 82 ce 81 41  .w.............A
1100: 6d 5f 63 6e 66 4d 61 6e 20 82 a9 82 e7 93 c7 82  m_cnfMan .......
1110: dd 8d 9e 82 dd 81 42 0d 0a 09 2f 2f 0d 0a 09 2f  ......B...//.../
1120: 2f 20 81 45 6d 30 20 82 a9 81 41 27 6d 31 82 c5  / .Em0 ...A'm1..
1130: 82 b5 82 a9 82 e0 83 74 83 40 83 43 83 8b 82 aa  .......t.@.C....
1140: 95 a1 90 94 27 20 82 cc 8e 9e 82 cd 96 b3 8f f0  ....' ..........
1150: 8c 8f 82 c5 88 b3 8f 6b 82 d6 0d 0a 09 2f 2f 0d  .......k.....//.
1160: 0a 09 2f 2f 20 81 45 82 bb 82 a4 82 c5 82 c8 82  ..// .E.........
1170: af 82 ea 82 ce 81 41 89 f0 93 80 83 8b 81 5b 83  ......A.......[.
1180: 60 83 93 82 f0 8a 84 82 e8 93 96 82 c4 82 c4 82  `...............
1190: dd 82 e9 81 42 0d 0a 09 2f 2f 20 81 40 82 b1 82  ....B...// .@...
11a0: cc 8d db 81 41 6d 33 20 88 c8 8a 4f 82 cc 82 c6  ....Am3 ...O....
11b0: 82 ab 82 cd 88 ea 8c c2 82 c5 82 e0 8a 84 82 e8  ................
11c0: 93 96 82 c4 8e b8 94 73 82 b5 82 bd 82 e7 83 47  .......s.......G
11d0: 83 89 81 5b 81 84 88 b3 8f 6b 82 d6 0d 0a 09 2f  ...[.....k...../
11e0: 2f 20 81 40 6d 33 20 82 c5 82 e0 81 41 88 ea 8c  / .@m3 .....A...
11f0: c2 82 e0 8a 84 82 e8 93 96 82 c4 82 e7 82 ea 82  ................
1200: c8 82 af 82 ea 82 ce 83 47 83 89 81 5b 81 42 81  ........G...[.B.
1210: 84 8f 88 97 9d 8f 49 97 b9 0d 0a 0d 0a 09 69 66  ......I.......if
1220: 28 20 77 68 61 74 74 6f 64 6f 20 21 3d 20 63 6f  ( whattodo != co
1230: 6d 70 72 65 73 73 20 29 0d 0a 09 7b 0d 0a 09 09  mpress )...{....
1240: 69 6e 74 20 6d 6f 64 65 20 3d 20 33 3b 0d 0a 09  int mode = 3;...
1250: 09 69 66 28 20 77 68 61 74 74 6f 64 6f 20 21 3d  .if( whattodo !=
1260: 20 6d 65 6c 74 20 29 0d 0a 09 09 09 6d 6f 64 65   melt ).....mode
1270: 20 3d 20 6d 5f 63 6e 66 4d 61 6e 2e 6d 6f 64 65   = m_cnfMan.mode
1280: 28 29 3b 0d 0a 0d 0a 09 09 69 66 28 20 6d 6f 64  ();......if( mod
1290: 65 3d 3d 30 20 7c 7c 20 28 20 6d 6f 64 65 3d 3d  e==0 || ( mode==
12a0: 31 20 26 26 20 6d 5f 61 72 63 4d 61 6e 2e 66 69  1 && m_arcMan.fi
12b0: 6c 65 5f 6e 75 6d 28 29 3e 3d 32 20 29 20 29 0d  le_num()>=2 ) ).
12c0: 0a 09 09 09 77 68 61 74 74 6f 64 6f 20 3d 20 63  ....whattodo = c
12d0: 6f 6d 70 72 65 73 73 3b 0d 0a 09 09 65 6c 73 65  ompress;....else
12e0: 0d 0a 09 09 7b 0d 0a 09 09 09 2f 2f 2d 2d 20 89  ....{.....//-- .
12f0: f0 93 80 83 8b 81 5b 83 60 83 93 8a 84 82 e8 93  ......[.`.......
1300: 96 82 c4 82 c4 82 dd 82 e9 0d 0a 09 09 09 62 6f  ..............bo
1310: 6f 6c 20 73 75 63 20 3d 20 6d 5f 61 72 63 4d 61  ol suc = m_arcMa
1320: 6e 2e 6d 61 70 5f 6d 65 6c 74 65 72 73 28 20 6d  n.map_melters( m
1330: 6f 64 65 20 29 3b 0d 0a 09 09 09 69 66 28 20 73  ode );.....if( s
1340: 75 63 20 29 0d 0a 09 09 09 09 77 68 61 74 74 6f  uc )......whatto
1350: 64 6f 20 3d 20 6d 65 6c 74 3b 0d 0a 09 09 09 65  do = melt;.....e
1360: 6c 73 65 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 69  lse.....{......i
1370: 66 28 20 6d 6f 64 65 20 21 3d 20 33 20 29 0d 0a  f( mode != 3 )..
1380: 09 09 09 09 09 77 68 61 74 74 6f 64 6f 20 3d 20  .....whattodo = 
1390: 63 6f 6d 70 72 65 73 73 3b 0d 0a 09 09 09 09 65  compress;......e
13a0: 6c 73 65 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09  lse......{......
13b0: 09 2f 2f 2d 2d 20 89 f0 93 80 90 ea 97 70 83 82  .//-- .......p..
13c0: 81 5b 83 68 82 be 82 af 82 c7 89 f0 93 80 95 73  .[.h...........s
13d0: 89 c2 81 49 81 49 0d 0a 09 09 09 09 09 6d 73 67  ...I.I.......msg
13e0: 42 6f 78 28 20 74 6d 70 2e 6c 6f 61 64 52 73 72  Box( tmp.loadRsr
13f0: 63 28 49 44 53 5f 4d 5f 45 52 52 4f 52 29 20 29  c(IDS_M_ERROR) )
1400: 3b 0d 0a 09 09 09 09 09 72 65 74 75 72 6e 3b 0d  ;.......return;.
1410: 0a 09 09 09 09 7d 0d 0a 09 09 09 7d 0d 0a 09 09  .....}.....}....
1420: 7d 0d 0a 09 7d 0d 0a 0d 0a 09 69 66 28 20 77 68  }...}.....if( wh
1430: 61 74 74 6f 64 6f 20 3d 3d 20 6d 65 6c 74 20 29  attodo == melt )
1440: 0d 0a 09 7b 0d 0a 09 09 2f 2f 2d 2d 20 89 f0 93  ...{....//-- ...
1450: 80 90 dd 92 e8 82 cd 8a f9 82 c9 6d 5f 63 6e 66  ...........m_cnf
1460: 4d 61 6e 2e 69 6e 69 74 28 29 82 c5 83 8d 81 5b  Man.init().....[
1470: 83 68 82 b3 82 ea 82 c4 82 a2 82 e9 81 63 0d 0a  .h...........c..
1480: 0d 0a 09 09 69 66 28 20 64 65 73 74 64 69 72 2e  ....if( destdir.
1490: 6c 65 6e 28 29 3d 3d 30 20 29 0d 0a 09 09 7b 0d  len()==0 )....{.
14a0: 0a 09 09 09 2f 2f 2d 2d 20 89 f0 93 80 90 e6 83  ....//-- .......
14b0: 66 83 42 83 8c 83 4e 83 67 83 8a 8e e6 93 be 0d  f.B...N.g.......
14c0: 0a 09 09 09 69 66 28 20 6d 5f 63 6e 66 4d 61 6e  ....if( m_cnfMan
14d0: 2e 6d 64 69 72 73 6d 28 29 20 29 0d 0a 09 09 09  .mdirsm() ).....
14e0: 09 69 66 28 20 69 73 5f 77 72 69 74 61 62 6c 65  .if( is_writable
14f0: 5f 64 69 72 28 6d 5f 61 72 63 4d 61 6e 2e 67 65  _dir(m_arcMan.ge
1500: 74 5f 62 61 73 65 70 61 74 68 28 29 29 20 29 0d  t_basepath()) ).
1510: 0a 09 09 09 09 09 64 65 73 74 64 69 72 20 3d 20  ......destdir = 
1520: 6d 5f 61 72 63 4d 61 6e 2e 67 65 74 5f 62 61 73  m_arcMan.get_bas
1530: 65 70 61 74 68 28 29 3b 0d 0a 09 09 09 69 66 28  epath();.....if(
1540: 20 64 65 73 74 64 69 72 2e 6c 65 6e 28 29 3d 3d   destdir.len()==
1550: 30 20 29 0d 0a 09 09 09 09 64 65 73 74 64 69 72  0 )......destdir
1560: 20 3d 20 6d 5f 63 6e 66 4d 61 6e 2e 6d 64 69 72   = m_cnfMan.mdir
1570: 28 29 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 2f 2f  ();....}......//
1580: 2d 2d 20 89 f0 93 80 0d 0a 09 09 69 66 28 20 63  -- ........if( c
1590: 74 72 6c 5f 6d 6c 74 20 29 09 6d 5f 61 72 63 4d  trl_mlt ).m_arcM
15a0: 61 6e 2e 64 6f 5f 6c 69 73 74 69 6e 67 28 20 64  an.do_listing( d
15b0: 65 73 74 64 69 72 20 29 3b 0d 0a 09 09 65 6c 73  estdir );....els
15c0: 65 20 7b 0d 0a 09 09 09 50 72 6f 63 65 73 73 4e  e {.....ProcessN
15d0: 75 6d 4c 69 6d 69 74 5a 6f 6e 65 20 7a 6f 6e 65  umLimitZone zone
15e0: 28 20 6d 79 63 6e 66 28 29 2e 6d 75 6c 74 69 62  ( mycnf().multib
15f0: 6f 6f 74 5f 6c 69 6d 69 74 28 29 2c 20 22 4c 69  oot_limit(), "Li
1600: 6d 69 74 74 65 72 46 6f 72 4e 6f 61 68 41 74 4b  mitterForNoahAtK
1610: 6d 6f 6e 6f 73 4e 65 74 22 20 29 3b 0d 0a 09 09  monosNet" );....
1620: 09 6d 5f 61 72 63 4d 61 6e 2e 64 6f 5f 6d 65 6c  .m_arcMan.do_mel
1630: 74 69 6e 67 28 20 64 65 73 74 64 69 72 20 29 3b  ting( destdir );
1640: 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 09 65 6c 73 65  ....}...}...else
1650: 0d 0a 09 7b 0d 0a 09 09 2f 2f 2d 2d 20 4c 6f 61  ...{....//-- Loa
1660: 64 2d 49 4e 49 28 20 88 b3 8f 6b 90 dd 92 e8 20  d-INI( ...k.... 
1670: 29 0d 0a 09 09 6d 5f 63 6e 66 4d 61 6e 2e 6c 6f  )....m_cnfMan.lo
1680: 61 64 28 20 43 6f 6d 70 72 65 73 73 20 29 3b 0d  ad( Compress );.
1690: 0a 0d 0a 09 09 69 66 28 20 64 65 73 74 64 69 72  .....if( destdir
16a0: 2e 6c 65 6e 28 29 3d 3d 30 20 29 0d 0a 09 09 7b  .len()==0 )....{
16b0: 0d 0a 09 09 09 2f 2f 2d 2d 20 88 b3 8f 6b 90 e6  .....//-- ...k..
16c0: 83 66 83 42 83 8c 83 4e 83 67 83 8a 8e e6 93 be  .f.B...N.g......
16d0: 0d 0a 09 09 09 69 66 28 20 6d 5f 63 6e 66 4d 61  .....if( m_cnfMa
16e0: 6e 2e 63 64 69 72 73 6d 28 29 20 29 0d 0a 09 09  n.cdirsm() )....
16f0: 09 09 69 66 28 20 69 73 5f 77 72 69 74 61 62 6c  ..if( is_writabl
1700: 65 5f 64 69 72 28 6d 5f 61 72 63 4d 61 6e 2e 67  e_dir(m_arcMan.g
1710: 65 74 5f 62 61 73 65 70 61 74 68 28 29 29 20 29  et_basepath()) )
1720: 0d 0a 09 09 09 09 09 64 65 73 74 64 69 72 20 3d  .......destdir =
1730: 20 6d 5f 61 72 63 4d 61 6e 2e 67 65 74 5f 62 61   m_arcMan.get_ba
1740: 73 65 70 61 74 68 28 29 3b 0d 0a 09 09 09 69 66  sepath();.....if
1750: 28 20 64 65 73 74 64 69 72 2e 6c 65 6e 28 29 3d  ( destdir.len()=
1760: 3d 30 20 29 0d 0a 09 09 09 09 64 65 73 74 64 69  =0 )......destdi
1770: 72 20 3d 20 6d 5f 63 6e 66 4d 61 6e 2e 63 64 69  r = m_cnfMan.cdi
1780: 72 28 29 3b 0d 0a 09 09 7d 0d 0a 09 09 69 66 28  r();....}....if(
1790: 20 21 63 6d 70 74 79 70 65 20 29 20 63 6d 70 74   !cmptype ) cmpt
17a0: 79 70 65 20 3d 20 6d 5f 63 6e 66 4d 61 6e 2e 63  ype = m_cnfMan.c
17b0: 65 78 74 28 29 3b 0d 0a 09 09 65 6c 73 65 20 69  ext();....else i
17c0: 66 28 20 21 6d 65 74 68 6f 64 20 29 20 6d 65 74  f( !method ) met
17d0: 68 6f 64 20 3d 20 22 22 3b 0d 0a 09 09 69 66 28  hod = "";....if(
17e0: 20 21 6d 65 74 68 6f 64 20 20 29 20 6d 65 74 68   !method  ) meth
17f0: 6f 64 20 20 3d 20 6d 5f 63 6e 66 4d 61 6e 2e 63  od  = m_cnfMan.c
1800: 6d 68 64 28 29 3b 0d 0a 0d 0a 09 09 2f 2f 2d 2d  mhd();......//--
1810: 20 88 b3 8f 6b 97 70 83 8b 81 5b 83 60 83 93 82   ...k.p...[.`...
1820: f0 8a 84 82 e8 93 96 82 c4 0d 0a 09 09 69 66 28  .............if(
1830: 20 21 6d 5f 61 72 63 4d 61 6e 2e 6d 61 70 5f 63   !m_arcMan.map_c
1840: 6f 6d 70 72 65 73 73 6f 72 28 20 63 6d 70 74 79  ompressor( cmpty
1850: 70 65 2c 20 6d 65 74 68 6f 64 2c 20 63 74 72 6c  pe, method, ctrl
1860: 5f 63 6d 70 20 29 20 29 0d 0a 09 09 7b 0d 0a 09  _cmp ) )....{...
1870: 09 09 2f 2f 2d 2d 20 88 b3 8f 6b 95 73 94 5c 82  ..//-- ...k.s.\.
1880: c8 8c 60 8e ae 81 49 81 49 0d 0a 09 09 09 6d 73  ..`...I.I.....ms
1890: 67 42 6f 78 28 20 74 6d 70 2e 6c 6f 61 64 52 73  gBox( tmp.loadRs
18a0: 72 63 28 49 44 53 5f 43 5f 45 52 52 4f 52 29 20  rc(IDS_C_ERROR) 
18b0: 29 3b 0d 0a 09 09 09 72 65 74 75 72 6e 3b 0d 0a  );.....return;..
18c0: 09 09 7d 0d 0a 0d 0a 09 09 2f 2f 2d 2d 20 88 b3  ..}......//-- ..
18d0: 8f 6b 0d 0a 09 09 50 72 6f 63 65 73 73 4e 75 6d  .k....ProcessNum
18e0: 4c 69 6d 69 74 5a 6f 6e 65 20 7a 6f 6e 65 28 20  LimitZone zone( 
18f0: 6d 79 63 6e 66 28 29 2e 6d 75 6c 74 69 62 6f 6f  mycnf().multiboo
1900: 74 5f 6c 69 6d 69 74 28 29 2c 20 22 4c 69 6d 69  t_limit(), "Limi
1910: 74 74 65 72 46 6f 72 4e 6f 61 68 41 74 4b 6d 6f  tterForNoahAtKmo
1920: 6e 6f 73 4e 65 74 22 20 29 3b 0d 0a 09 09 6d 5f  nosNet" );....m_
1930: 61 72 63 4d 61 6e 2e 64 6f 5f 63 6f 6d 70 72 65  arcMan.do_compre
1940: 73 73 69 6e 67 28 20 64 65 73 74 64 69 72 2c 20  ssing( destdir, 
1950: 61 6c 74 20 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d  alt );...}..}...
1960: 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .//-------------
1970: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1980: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1990: 2d 2f 2f 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  -//..//---------
19a0: 2d 2d 2d 2d 2d 2d 2d 2d 20 82 bb 82 cc 91 bc 8e  -------- .......
19b0: 47 97 70 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  G.p ------------
19c0: 2d 2d 2d 2d 2d 2f 2f 0d 0a 2f 2f 2d 2d 2d 2d 2d  -----//..//-----
19d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 2f  ---------//..../
1a00: 2f 20 66 72 6f 6d 3d 20 30 3a 6e 6f 72 6d 61 6c  / from= 0:normal
1a10: 20 31 3a 6d 65 6c 74 20 32 3a 63 6f 6d 70 72 65   1:melt 2:compre
1a20: 73 73 0d 0a 76 6f 69 64 20 43 4e 6f 61 68 41 70  ss..void CNoahAp
1a30: 70 3a 3a 6f 70 65 6e 5f 66 6f 6c 64 65 72 28 20  p::open_folder( 
1a40: 63 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 70 61  const kiPath& pa
1a50: 74 68 2c 20 69 6e 74 20 66 72 6f 6d 20 29 0d 0a  th, int from )..
1a60: 7b 0d 0a 09 69 66 28 20 66 72 6f 6d 3d 3d 31 20  {...if( from==1 
1a70: 7c 7c 20 66 72 6f 6d 3d 3d 32 20 29 20 2f 2f 2d  || from==2 ) //-
1a80: 2d 20 53 68 65 6c 6c 82 c9 8d 58 90 56 92 ca 92  - Shell...X.V...
1a90: 6d 0d 0a 09 09 3a 3a 53 48 43 68 61 6e 67 65 4e  m....::SHChangeN
1aa0: 6f 74 69 66 79 28 20 53 48 43 4e 45 5f 55 50 44  otify( SHCNE_UPD
1ab0: 41 54 45 44 49 52 2c 20 53 48 43 4e 46 5f 50 41  ATEDIR, SHCNF_PA
1ac0: 54 48 2c 20 28 63 6f 6e 73 74 20 76 6f 69 64 2a  TH, (const void*
1ad0: 29 28 63 6f 6e 73 74 20 63 68 61 72 2a 29 70 61  )(const char*)pa
1ae0: 74 68 2c 20 4e 55 4c 4c 20 29 3b 0d 0a 0d 0a 09  th, NULL );.....
1af0: 2f 2f 2d 2d 20 83 66 83 58 83 4e 83 67 83 62 83  //-- .f.X.N.g.b.
1b00: 76 82 be 82 c1 82 bd 82 e7 8a 4a 82 a9 82 c8 82  v.........J.....
1b10: a2 0d 0a 09 6b 69 50 61 74 68 20 64 69 72 28 70  ....kiPath dir(p
1b20: 61 74 68 29 2c 20 74 6d 70 28 6b 69 50 61 74 68  ath), tmp(kiPath
1b30: 3a 3a 44 73 6b 2c 66 61 6c 73 65 29 3b 0d 0a 09  ::Dsk,false);...
1b40: 64 69 72 2e 62 65 42 61 63 6b 53 6c 61 73 68 28  dir.beBackSlash(
1b50: 66 61 6c 73 65 29 2c 20 64 69 72 2e 62 65 53 68  false), dir.beSh
1b60: 6f 72 74 50 61 74 68 28 29 2c 20 74 6d 70 2e 62  ortPath(), tmp.b
1b70: 65 53 68 6f 72 74 50 61 74 68 28 29 3b 0d 0a 0d  eShortPath();...
1b80: 0a 09 69 66 28 20 21 74 6d 70 2e 69 73 53 61 6d  ..if( !tmp.isSam
1b90: 65 28 20 64 69 72 20 29 20 29 0d 0a 09 7b 0d 0a  e( dir ) )...{..
1ba0: 09 09 2f 2f 2d 2d 20 4c 6f 61 64 2d 49 4e 49 28  ..//-- Load-INI(
1bb0: 20 83 74 83 48 83 8b 83 5f 8a 4a 82 ab 90 dd 92   .t.H..._.J.....
1bc0: e8 20 29 0d 0a 09 09 6d 5f 63 6e 66 4d 61 6e 2e  . )....m_cnfMan.
1bd0: 6c 6f 61 64 28 20 4f 70 65 6e 44 69 72 20 29 3b  load( OpenDir );
1be0: 0d 0a 09 09 69 66 28 20 28 66 72 6f 6d 3d 3d 31  ....if( (from==1
1bf0: 20 26 26 20 21 6d 5f 63 6e 66 4d 61 6e 2e 6d 6f   && !m_cnfMan.mo
1c00: 64 69 72 28 29 29 0d 0a 09 09 20 7c 7c 20 28 66  dir()).... || (f
1c10: 72 6f 6d 3d 3d 32 20 26 26 20 21 6d 5f 63 6e 66  rom==2 && !m_cnf
1c20: 4d 61 6e 2e 63 6f 64 69 72 28 29 29 20 29 0d 0a  Man.codir()) )..
1c30: 09 09 09 72 65 74 75 72 6e 3b 0d 0a 09 09 0d 0a  ...return;......
1c40: 09 09 63 68 61 72 20 63 6d 64 6c 69 6e 65 5b 31  ..char cmdline[1
1c50: 30 30 30 5d 3b 0d 0a 09 09 77 73 70 72 69 6e 74  000];....wsprint
1c60: 66 28 20 63 6d 64 6c 69 6e 65 2c 20 6d 5f 63 6e  f( cmdline, m_cn
1c70: 66 4d 61 6e 2e 6f 70 65 6e 62 79 28 29 2c 20 28  fMan.openby(), (
1c80: 63 6f 6e 73 74 20 63 68 61 72 2a 29 64 69 72 20  const char*)dir 
1c90: 29 3b 0d 0a 09 09 3a 3a 57 69 6e 45 78 65 63 28  );....::WinExec(
1ca0: 20 63 6d 64 6c 69 6e 65 2c 20 53 57 5f 53 48 4f   cmdline, SW_SHO
1cb0: 57 44 45 46 41 55 4c 54 20 29 3b 0d 0a 09 7d 0d  WDEFAULT );...}.
1cc0: 0a 7d 0d 0a 0d 0a 2f 2f 20 91 53 83 56 83 58 83  .}....// .S.V.X.
1cd0: 65 83 80 92 86 82 c5 88 ea 88 d3 82 c8 83 65 83  e.............e.
1ce0: 93 83 7c 83 89 83 8a 83 74 83 48 83 8b 83 5f 82  ..|.....t.H..._.
1cf0: f0 8d ec 82 c1 82 c4 95 d4 82 b7 0d 0a 76 6f 69  .............voi
1d00: 64 20 43 4e 6f 61 68 41 70 70 3a 3a 67 65 74 5f  d CNoahApp::get_
1d10: 74 65 6d 70 64 69 72 28 20 6b 69 50 61 74 68 26  tempdir( kiPath&
1d20: 20 74 6d 70 20 29 0d 0a 7b 0d 0a 09 63 68 61 72   tmp )..{...char
1d30: 20 62 75 66 5b 4d 41 58 5f 50 41 54 48 5d 3b 0d   buf[MAX_PATH];.
1d40: 0a 0d 0a 09 69 66 28 20 6d 5f 74 6d 70 44 69 72  ....if( m_tmpDir
1d50: 2e 6c 65 6e 28 29 3d 3d 30 20 29 0d 0a 09 7b 0d  .len()==0 )...{.
1d60: 0a 09 09 3a 3a 47 65 74 54 65 6d 70 46 69 6c 65  ...::GetTempFile
1d70: 4e 61 6d 65 28 20 6b 69 50 61 74 68 28 20 6b 69  Name( kiPath( ki
1d80: 50 61 74 68 3a 3a 54 6d 70 20 29 2c 20 22 6e 6f  Path::Tmp ), "no
1d90: 61 22 2c 20 30 2c 20 62 75 66 20 29 3b 0d 0a 09  a", 0, buf );...
1da0: 09 3a 3a 44 65 6c 65 74 65 46 69 6c 65 28 20 62  .::DeleteFile( b
1db0: 75 66 20 29 3b 0d 0a 09 09 6d 5f 74 6d 70 44 69  uf );....m_tmpDi
1dc0: 72 20 3d 20 62 75 66 3b 0d 0a 09 09 6d 5f 74 6d  r = buf;....m_tm
1dd0: 70 44 69 72 2e 62 65 42 61 63 6b 53 6c 61 73 68  pDir.beBackSlash
1de0: 28 20 74 72 75 65 20 29 3b 0d 0a 09 09 6d 5f 74  ( true );....m_t
1df0: 6d 70 44 69 72 2e 6d 6b 64 69 72 28 29 3b 0d 0a  mpDir.mkdir();..
1e00: 09 09 6d 5f 74 6d 70 49 44 20 3d 20 3a 3a 47 65  ..m_tmpID = ::Ge
1e10: 74 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 49  tCurrentProcessI
1e20: 64 28 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 3a 3a 47  d();...}.....::G
1e30: 65 74 54 65 6d 70 46 69 6c 65 4e 61 6d 65 28 20  etTempFileName( 
1e40: 6d 5f 74 6d 70 44 69 72 2c 20 22 6e 6f 61 22 2c  m_tmpDir, "noa",
1e50: 20 6d 5f 74 6d 70 49 44 2b 2b 2c 20 62 75 66 20   m_tmpID++, buf 
1e60: 29 3b 0d 0a 09 3a 3a 44 65 6c 65 74 65 46 69 6c  );...::DeleteFil
1e70: 65 28 20 62 75 66 20 29 3b 0d 0a 09 74 6d 70 20  e( buf );...tmp 
1e80: 3d 20 62 75 66 3b 0d 0a 09 74 6d 70 2e 62 65 42  = buf;...tmp.beB
1e90: 61 63 6b 53 6c 61 73 68 28 20 74 72 75 65 20 29  ackSlash( true )
1ea0: 3b 0d 0a 09 74 6d 70 2e 6d 6b 64 69 72 28 29 3b  ;...tmp.mkdir();
1eb0: 0d 0a 7d 0d 0a                                   ..}..