Hex Artifact Content

Not logged in

Artifact db7b4a9cec9be918c149ed5885b08ebf86cfb9e0:


0000: 2f 2f 2d 2d 2d 20 4b 2e 49 2e 4c 49 42 20 2d 2d  //--- K.I.LIB --
0010: 2d 0d 0a 2f 2f 20 6b 6c 5f 73 74 72 2e 68 20 3a  -..// kl_str.h :
0020: 20 73 74 72 69 6e 67 20 63 6c 61 73 73 65 73 20   string classes 
0030: 66 6f 72 20 4b 2e 49 2e 4c 49 42 0d 0a 0d 0a 23  for K.I.LIB....#
0040: 69 66 6e 64 65 66 20 41 46 58 5f 4b 49 53 54 52  ifndef AFX_KISTR
0050: 5f 48 5f 5f 31 39 33 32 43 41 32 43 5f 41 43 41  _H__1932CA2C_ACA
0060: 36 5f 34 36 30 36 5f 42 35 37 41 5f 41 43 44 30  6_4606_B57A_ACD0
0070: 42 37 44 31 44 33 35 42 5f 5f 49 4e 43 4c 55 44  B7D1D35B__INCLUD
0080: 45 44 5f 0d 0a 23 64 65 66 69 6e 65 20 41 46 58  ED_..#define AFX
0090: 5f 4b 49 53 54 52 5f 48 5f 5f 31 39 33 32 43 41  _KISTR_H__1932CA
00a0: 32 43 5f 41 43 41 36 5f 34 36 30 36 5f 42 35 37  2C_ACA6_4606_B57
00b0: 41 5f 41 43 44 30 42 37 44 31 44 33 35 42 5f 5f  A_ACD0B7D1D35B__
00c0: 49 4e 43 4c 55 44 45 44 5f 0d 0a 0d 0a 2f 2a 3d  INCLUDED_..../*=
00d0: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
00e0: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
00f0: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
0100: 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d  *=*=*=*=*=*=*=*=
0110: 2a 3d 2a 3d 2a 2f 0d 0a 2f 2f 20 6b 69 53 74 72  *=*=*/..// kiStr
0120: 20 3a 20 92 50 8f 83 95 b6 8e 9a 97 f1 0d 0a 0d   : .P...........
0130: 0a 63 6c 61 73 73 20 6b 69 53 74 72 0d 0a 7b 0d  .class kiStr..{.
0140: 0a 66 72 69 65 6e 64 20 76 6f 69 64 20 6b 69 6c  .friend void kil
0150: 69 62 5f 73 74 61 72 74 55 70 28 29 3b 0d 0a 0d  ib_startUp();...
0160: 0a 70 72 69 76 61 74 65 3a 20 2f 2f 2d 2d 20 83  .private: //-- .
0170: 4f 83 8d 81 5b 83 6f 83 8b 82 c8 8f 89 8a fa 89  O...[.o.........
0180: bb 8f 88 97 9d 82 c8 82 c7 20 2d 2d 2d 2d 2d 2d  ......... ------
0190: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
01a0: 0a 0d 0a 09 73 74 61 74 69 63 20 76 6f 69 64 20  ....static void 
01b0: 69 6e 69 74 28 29 3b 0d 0a 0d 0a 70 75 62 6c 69  init();....publi
01c0: 63 3a 20 2f 2f 2d 2d 20 8a 4f 8c fc 82 ab 83 43  c: //-- .O.....C
01d0: 83 93 83 5e 81 5b 83 74 83 46 83 43 83 58 20 2d  ...^.[.t.F.C.X -
01e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 2f 2f  ---------.....//
0200: 20 32 62 79 74 65 95 b6 8e 9a 82 cc 8f 88 97 9d   2byte..........
0210: 82 f0 8d 82 91 ac 89 bb 28 82 b5 82 bd 82 e6 82  ........(.......
0220: a4 82 c8 8b 43 95 aa 29 0d 0a 09 73 74 61 74 69  ....C..)...stati
0230: 63 20 63 68 61 72 2a 20 6e 65 78 74 28 20 63 68  c char* next( ch
0240: 61 72 2a 20 70 20 29 0d 0a 09 09 7b 20 72 65 74  ar* p )....{ ret
0250: 75 72 6e 20 70 2b 73 74 5f 6c 62 5b 28 2a 70 29  urn p+st_lb[(*p)
0260: 26 30 78 66 66 5d 3b 20 7d 0d 0a 09 73 74 61 74  &0xff]; }...stat
0270: 69 63 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 6e  ic const char* n
0280: 65 78 74 28 20 63 6f 6e 73 74 20 63 68 61 72 2a  ext( const char*
0290: 20 70 20 29 0d 0a 09 09 7b 20 72 65 74 75 72 6e   p )....{ return
02a0: 20 70 2b 73 74 5f 6c 62 5b 28 2a 70 29 26 30 78   p+st_lb[(*p)&0x
02b0: 66 66 5d 3b 20 7d 0d 0a 09 73 74 61 74 69 63 20  ff]; }...static 
02c0: 62 6f 6f 6c 20 69 73 4c 65 61 64 42 79 74 65 28  bool isLeadByte(
02d0: 20 63 68 61 72 20 63 20 29 0d 0a 09 09 7b 20 72   char c )....{ r
02e0: 65 74 75 72 6e 20 73 74 5f 6c 62 5b 63 26 30 78  eturn st_lb[c&0x
02f0: 66 66 5d 3d 3d 32 3b 20 7d 0d 0a 0d 0a 09 2f 2f  ff]==2; }.....//
0300: 20 8f 89 8a fa 89 bb 0d 0a 09 6b 69 53 74 72 28   .........kiStr(
0310: 20 69 6e 74 20 73 74 61 72 74 5f 73 69 7a 65 20   int start_size 
0320: 3d 20 31 30 30 20 29 3b 0d 0a 09 6b 69 53 74 72  = 100 );...kiStr
0330: 28 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 73 2c  ( const char* s,
0340: 20 69 6e 74 20 6d 69 6e 5f 73 69 7a 65 20 3d 20   int min_size = 
0350: 31 30 30 20 29 3b 0d 0a 09 65 78 70 6c 69 63 69  100 );...explici
0360: 74 20 6b 69 53 74 72 28 20 63 6f 6e 73 74 20 6b  t kiStr( const k
0370: 69 53 74 72 26 20 73 20 29 3b 0d 0a 0d 0a 09 2f  iStr& s );...../
0380: 2f 20 89 89 8e 5a 8e 71 0d 0a 09 6b 69 53 74 72  / ...Z.q...kiStr
0390: 26 20 6f 70 65 72 61 74 6f 72 20 3d 20 28 20 63  & operator = ( c
03a0: 6f 6e 73 74 20 6b 69 53 74 72 26 20 29 3b 0d 0a  onst kiStr& );..
03b0: 09 6b 69 53 74 72 26 20 6f 70 65 72 61 74 6f 72  .kiStr& operator
03c0: 20 3d 20 28 20 63 6f 6e 73 74 20 63 68 61 72 2a   = ( const char*
03d0: 20 73 20 29 3b 0d 0a 09 6b 69 53 74 72 26 20 6f   s );...kiStr& o
03e0: 70 65 72 61 74 6f 72 20 2b 3d 20 28 20 63 6f 6e  perator += ( con
03f0: 73 74 20 63 68 61 72 2a 20 73 20 29 3b 0d 0a 09  st char* s );...
0400: 6b 69 53 74 72 26 20 6f 70 65 72 61 74 6f 72 20  kiStr& operator 
0410: 2b 3d 20 28 20 63 68 61 72 20 63 20 29 3b 0d 0a  += ( char c );..
0420: 09 62 6f 6f 6c 20 6f 70 65 72 61 74 6f 72 20 3d  .bool operator =
0430: 3d 20 28 20 63 6f 6e 73 74 20 63 68 61 72 2a 20  = ( const char* 
0440: 73 20 29 20 63 6f 6e 73 74 3b 0d 0a 09 62 6f 6f  s ) const;...boo
0450: 6c 20 69 73 53 61 6d 65 28 20 63 6f 6e 73 74 20  l isSame( const 
0460: 63 68 61 72 2a 20 73 20 29 20 20 20 20 20 20 20  char* s )       
0470: 63 6f 6e 73 74 3b 0d 0a 09 6f 70 65 72 61 74 6f  const;...operato
0480: 72 20 63 6f 6e 73 74 20 63 68 61 72 2a 28 29 20  r const char*() 
0490: 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73              cons
04a0: 74 3b 0d 0a 09 69 6e 74 20 6c 65 6e 28 29 20 20  t;...int len()  
04b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
04c0: 20 20 20 20 20 20 20 20 63 6f 6e 73 74 3b 0d 0a          const;..
04d0: 09 76 6f 69 64 20 6c 6f 77 65 72 28 29 0d 0a 09  .void lower()...
04e0: 09 7b 20 3a 3a 43 68 61 72 4c 6f 77 65 72 28 6d  .{ ::CharLower(m
04f0: 5f 70 42 75 66 29 3b 20 7d 0d 0a 09 76 6f 69 64  _pBuf); }...void
0500: 20 75 70 70 65 72 28 29 0d 0a 09 09 7b 20 3a 3a   upper()....{ ::
0510: 43 68 61 72 55 70 70 65 72 28 6d 5f 70 42 75 66  CharUpper(m_pBuf
0520: 29 3b 20 7d 0d 0a 09 6b 69 53 74 72 26 20 73 65  ); }...kiStr& se
0530: 74 49 6e 74 28 20 69 6e 74 20 6e 2c 20 62 6f 6f  tInt( int n, boo
0540: 6c 20 63 6d 3d 66 61 6c 73 65 20 29 3b 0d 0a 09  l cm=false );...
0550: 76 6f 69 64 20 72 65 70 6c 61 63 65 54 6f 53 6c  void replaceToSl
0560: 61 73 68 28 29 20 7b 0d 0a 09 09 66 6f 72 28 63  ash() {....for(c
0570: 68 61 72 2a 20 70 3d 6d 5f 70 42 75 66 3b 20 2a  har* p=m_pBuf; *
0580: 70 3b 20 70 3d 6e 65 78 74 28 70 29 29 0d 0a 09  p; p=next(p))...
0590: 09 09 69 66 28 2a 70 3d 3d 27 5c 5c 27 29 0d 0a  ..if(*p=='\\')..
05a0: 09 09 09 09 2a 70 3d 27 2f 27 3b 0d 0a 09 7d 0d  ....*p='/';...}.
05b0: 0a 0d 0a 09 2f 2f 20 83 8a 83 5c 81 5b 83 58 82  ....// ...\.[.X.
05c0: a9 82 e7 83 8d 81 5b 83 68 0d 0a 09 6b 69 53 74  ......[.h...kiSt
05d0: 72 26 20 6c 6f 61 64 52 73 72 63 28 20 55 49 4e  r& loadRsrc( UIN
05e0: 54 20 69 64 20 29 3b 0d 0a 0d 0a 09 6b 69 53 74  T id );.....kiSt
05f0: 72 26 20 72 65 6d 6f 76 65 54 72 61 69 6c 57 53  r& removeTrailWS
0600: 28 29 3b 0d 0a 0d 0a 70 72 6f 74 65 63 74 65 64  ();....protected
0610: 3a 20 2f 2f 2d 2d 20 94 68 90 b6 83 4e 83 89 83  : //-- .h...N...
0620: 58 8c fc 82 af 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  X.... ----------
0630: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0640: 2d 2d 2d 0d 0a 0d 0a 09 63 68 61 72 2a 20 6d 5f  ---.....char* m_
0650: 70 42 75 66 3b 0d 0a 09 69 6e 74 20 20 20 6d 5f  pBuf;...int   m_
0660: 41 4c 65 6e 3b 0d 0a 0d 0a 70 72 69 76 61 74 65  ALen;....private
0670: 3a 20 2f 2f 2d 2d 20 93 e0 95 94 8f 88 97 9d 20  : //-- ........ 
0680: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0690: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
06a0: 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 73 74 61 74 69 63  -----.....static
06b0: 20 63 68 61 72 20 73 74 5f 6c 62 5b 32 35 36 5d   char st_lb[256]
06c0: 3b 0d 0a 0d 0a 70 75 62 6c 69 63 3a 0d 0a 0d 0a  ;....public:....
06d0: 09 76 69 72 74 75 61 6c 20 7e 6b 69 53 74 72 28  .virtual ~kiStr(
06e0: 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 69 6e 6c 69 6e 65  );..};....inline
06f0: 20 63 6f 6e 73 74 20 6b 69 53 74 72 20 6f 70 65   const kiStr ope
0700: 72 61 74 6f 72 2b 28 63 6f 6e 73 74 20 6b 69 53  rator+(const kiS
0710: 74 72 26 20 78 2c 20 63 6f 6e 73 74 20 6b 69 53  tr& x, const kiS
0720: 74 72 26 20 79 29 0d 0a 09 7b 20 72 65 74 75 72  tr& y)...{ retur
0730: 6e 20 6b 69 53 74 72 28 78 29 20 2b 3d 20 79 3b  n kiStr(x) += y;
0740: 20 7d 0d 0a 69 6e 6c 69 6e 65 20 63 6f 6e 73 74   }..inline const
0750: 20 6b 69 53 74 72 20 6f 70 65 72 61 74 6f 72 2b   kiStr operator+
0760: 28 63 6f 6e 73 74 20 63 68 61 72 2a 20 78 2c 20  (const char* x, 
0770: 63 6f 6e 73 74 20 6b 69 53 74 72 26 20 79 29 0d  const kiStr& y).
0780: 0a 09 7b 20 72 65 74 75 72 6e 20 6b 69 53 74 72  ..{ return kiStr
0790: 28 78 29 20 2b 3d 20 79 3b 20 7d 0d 0a 69 6e 6c  (x) += y; }..inl
07a0: 69 6e 65 20 63 6f 6e 73 74 20 6b 69 53 74 72 20  ine const kiStr 
07b0: 6f 70 65 72 61 74 6f 72 2b 28 63 6f 6e 73 74 20  operator+(const 
07c0: 6b 69 53 74 72 26 20 78 2c 20 63 6f 6e 73 74 20  kiStr& x, const 
07d0: 63 68 61 72 2a 20 79 29 0d 0a 09 7b 20 72 65 74  char* y)...{ ret
07e0: 75 72 6e 20 6b 69 53 74 72 28 78 29 20 2b 3d 20  urn kiStr(x) += 
07f0: 79 3b 20 7d 0d 0a 0d 0a 2f 2a 3d 2a 3d 2a 3d 2a  y; }..../*=*=*=*
0800: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0810: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0820: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0830: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0840: 2f 0d 0a 2f 2f 20 6b 69 50 61 74 68 20 3a 20 83  /..// kiPath : .
0850: 70 83 58 93 c1 97 4c 82 cc 8f 88 97 9d 97 70 8a  p.X...L.......p.
0860: d6 90 94 95 74 82 ab 95 b6 8e 9a 97 f1 0d 0a 0d  ....t...........
0870: 0a 63 6c 61 73 73 20 6b 69 50 61 74 68 20 3a 20  .class kiPath : 
0880: 70 75 62 6c 69 63 20 6b 69 53 74 72 0d 0a 7b 0d  public kiStr..{.
0890: 0a 70 75 62 6c 69 63 3a 20 2f 2f 2d 2d 20 8a 4f  .public: //-- .O
08a0: 8c fc 82 ab 83 43 83 93 83 5e 81 5b 83 74 83 46  .....C...^.[.t.F
08b0: 83 43 83 58 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .C.X -----------
08c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
08d0: 0a 0d 0a 09 2f 2f 20 8f 89 8a fa 89 bb 0d 0a 09  ....// .........
08e0: 6b 69 50 61 74 68 28 29 20 3a 20 6b 69 53 74 72  kiPath() : kiStr
08f0: 28 20 4d 41 58 5f 50 41 54 48 20 29 7b 7d 0d 0a  ( MAX_PATH ){}..
0900: 09 65 78 70 6c 69 63 69 74 20 6b 69 50 61 74 68  .explicit kiPath
0910: 28 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 73 20  ( const char* s 
0920: 29 20 3a 20 6b 69 53 74 72 28 20 73 2c 20 4d 41  ) : kiStr( s, MA
0930: 58 5f 50 41 54 48 20 29 7b 7d 0d 0a 09 65 78 70  X_PATH ){}...exp
0940: 6c 69 63 69 74 20 6b 69 50 61 74 68 28 20 63 6f  licit kiPath( co
0950: 6e 73 74 20 6b 69 53 74 72 26 20 73 20 29 20 3a  nst kiStr& s ) :
0960: 20 6b 69 53 74 72 28 20 73 2c 20 4d 41 58 5f 50   kiStr( s, MAX_P
0970: 41 54 48 20 29 7b 7d 0d 0a 09 65 78 70 6c 69 63  ATH ){}...explic
0980: 69 74 20 6b 69 50 61 74 68 28 20 63 6f 6e 73 74  it kiPath( const
0990: 20 6b 69 50 61 74 68 26 20 73 20 29 20 3a 20 6b   kiPath& s ) : k
09a0: 69 53 74 72 28 20 73 2c 20 4d 41 58 5f 50 41 54  iStr( s, MAX_PAT
09b0: 48 20 29 7b 7d 0d 0a 09 6b 69 50 61 74 68 28 20  H ){}...kiPath( 
09c0: 69 6e 74 20 6e 50 41 54 48 2c 20 62 6f 6f 6c 20  int nPATH, bool 
09d0: 62 73 20 3d 20 74 72 75 65 20 29 20 3a 20 6b 69  bs = true ) : ki
09e0: 53 74 72 28 20 4d 41 58 5f 50 41 54 48 20 29 0d  Str( MAX_PATH ).
09f0: 0a 09 09 7b 0d 0a 09 09 09 62 65 53 70 65 63 69  ...{.....beSpeci
0a00: 61 6c 50 61 74 68 28 20 6e 50 41 54 48 20 29 3b  alPath( nPATH );
0a10: 0d 0a 09 09 09 69 66 28 20 6e 50 41 54 48 20 21  .....if( nPATH !
0a20: 3d 20 45 78 65 5f 6e 61 6d 65 20 29 0d 0a 09 09  = Exe_name )....
0a30: 09 09 62 65 42 61 63 6b 53 6c 61 73 68 28 20 62  ..beBackSlash( b
0a40: 73 20 29 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 2f 2f  s );....}.....//
0a50: 20 6f 70 65 72 61 74 6f 72 0d 0a 09 76 6f 69 64   operator...void
0a60: 20 6f 70 65 72 61 74 6f 72 20 3d 20 28 20 63 6f   operator = ( co
0a70: 6e 73 74 20 63 68 61 72 2a 20 73 20 29 7b 20 6b  nst char* s ){ k
0a80: 69 53 74 72 3a 3a 6f 70 65 72 61 74 6f 72 20 3d  iStr::operator =
0a90: 28 73 29 3b 20 7d 0d 0a 0d 0a 09 2f 2f 20 93 c1  (s); }.....// ..
0aa0: 8e ea 83 70 83 58 8e e6 93 be 0d 0a 09 76 6f 69  ...p.X.......voi
0ab0: 64 20 62 65 53 70 65 63 69 61 6c 50 61 74 68 28  d beSpecialPath(
0ac0: 20 69 6e 74 20 6e 50 41 54 48 20 29 3b 0d 0a 09   int nPATH );...
0ad0: 65 6e 75 6d 20 7b 20 57 69 6e 3d 30 78 31 37 38  enum { Win=0x178
0ae0: 37 2c 20 53 79 73 2c 20 54 6d 70 2c 20 50 72 67  7, Sys, Tmp, Prg
0af0: 2c 20 45 78 65 2c 20 43 75 72 2c 20 45 78 65 5f  , Exe, Cur, Exe_
0b00: 6e 61 6d 65 2c 0d 0a 09 09 09 53 6e 64 3d 43 53  name,.....Snd=CS
0b10: 49 44 4c 5f 53 45 4e 44 54 4f 2c 20 44 73 6b 3d  IDL_SENDTO, Dsk=
0b20: 43 53 49 44 4c 5f 44 45 53 4b 54 4f 50 2c 20 44  CSIDL_DESKTOP, D
0b30: 6f 63 3d 43 53 49 44 4c 5f 50 45 52 53 4f 4e 41  oc=CSIDL_PERSONA
0b40: 4c 20 7d 3b 0d 0a 0d 0a 09 2f 2f 20 92 5a 82 a2  L };.....// .Z..
0b50: 83 70 83 58 0d 0a 09 76 6f 69 64 20 62 65 53 68  .p.X...void beSh
0b60: 6f 72 74 50 61 74 68 28 29 3b 0d 0a 0d 0a 09 2f  ortPath();...../
0b70: 2f 20 8d c5 8c e3 82 cc 83 6f 83 62 83 4e 83 58  / .......o.b.N.X
0b80: 83 89 83 62 83 56 83 85 90 a7 8c e4 0d 0a 09 76  ...b.V.........v
0b90: 6f 69 64 20 62 65 42 61 63 6b 53 6c 61 73 68 28  oid beBackSlash(
0ba0: 20 62 6f 6f 6c 20 61 64 64 20 29 3b 0d 0a 0d 0a   bool add );....
0bb0: 09 2f 2f 20 83 66 83 42 83 8c 83 4e 83 67 83 8a  .// .f.B...N.g..
0bc0: 96 bc 82 cc 82 dd 0d 0a 09 62 6f 6f 6c 20 62 65  .........bool be
0bd0: 44 69 72 4f 6e 6c 79 28 29 3b 0d 0a 09 2f 2f 20  DirOnly();...// 
0be0: 83 74 83 40 83 43 83 8b 96 bc 65 78 63 65 70 74  .t.@.C....except
0bf0: 8a 67 92 a3 8e 71 91 53 95 94 0d 0a 09 76 6f 69  .g...q.S.....voi
0c00: 64 20 67 65 74 42 6f 64 79 28 20 6b 69 53 74 72  d getBody( kiStr
0c10: 26 20 73 74 72 20 29 20 63 6f 6e 73 74 3b 0d 0a  & str ) const;..
0c20: 09 2f 2f 20 83 74 83 40 83 43 83 8b 96 bc 65 78  .// .t.@.C....ex
0c30: 63 65 70 74 8a 67 92 a3 8e 71 88 ea 82 c2 0d 0a  cept.g...q......
0c40: 09 76 6f 69 64 20 67 65 74 42 6f 64 79 5f 61 6c  .void getBody_al
0c50: 6c 28 20 6b 69 53 74 72 26 20 73 74 72 20 29 20  l( kiStr& str ) 
0c60: 63 6f 6e 73 74 3b 0d 0a 0d 0a 09 2f 2f 20 95 a1  const;.....// ..
0c70: 90 94 8a 4b 91 77 6d 6b 64 69 72 0d 0a 09 76 6f  ...K.wmkdir...vo
0c80: 69 64 20 6d 6b 64 69 72 28 29 3b 0d 0a 09 2f 2f  id mkdir();...//
0c90: 20 95 a1 90 94 8a 4b 91 77 72 6d 64 69 72 0d 0a   .....K.wrmdir..
0ca0: 09 76 6f 69 64 20 72 65 6d 6f 76 65 28 29 3b 0d  .void remove();.
0cb0: 0a 0d 0a 09 2f 2f 20 83 68 83 89 83 43 83 75 83  ....// .h...C.u.
0cc0: 5e 83 43 83 76 0d 0a 09 55 49 4e 54 20 67 65 74  ^.C.v...UINT get
0cd0: 44 72 69 76 65 54 79 70 65 28 29 20 63 6f 6e 73  DriveType() cons
0ce0: 74 3b 0d 0a 09 2f 2f 20 93 af 82 b6 83 66 83 42  t;...// .....f.B
0cf0: 83 8c 83 4e 83 67 83 8a 82 c9 82 a0 82 e9 82 a9  ...N.g..........
0d00: 82 c7 82 a4 82 a9 0d 0a 09 62 6f 6f 6c 20 69 73  .........bool is
0d10: 49 6e 53 61 6d 65 44 69 72 28 63 6f 6e 73 74 20  InSameDir(const 
0d20: 63 68 61 72 2a 20 72 29 20 63 6f 6e 73 74 3b 0d  char* r) const;.
0d30: 0a 0d 0a 09 2f 2f 20 5b 73 74 61 74 69 63 5d 20  ....// [static] 
0d40: 83 66 83 42 83 8c 83 4e 83 67 83 8a 8f ee 95 f1  .f.B...N.g......
0d50: 82 f0 8a dc 82 dc 82 c8 82 a2 81 41 83 74 83 40  ...........A.t.@
0d60: 83 43 83 8b 96 bc 82 cc 82 dd 92 8a 8f 6f 0d 0a  .C...........o..
0d70: 09 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68  .static const ch
0d80: 61 72 2a 20 6e 61 6d 65 28 20 63 6f 6e 73 74 20  ar* name( const 
0d90: 63 68 61 72 2a 20 73 74 72 20 29 3b 0d 0a 09 2f  char* str );.../
0da0: 2f 20 5b 73 74 61 74 69 63 5d 20 8d c5 8c e3 82  / [static] .....
0db0: cc 8a 67 92 a3 8e 71 81 42 96 b3 82 af 82 ea 82  ..g...q.B.......
0dc0: ce 4e 55 4c 4c 0d 0a 09 73 74 61 74 69 63 20 63  .NULL...static c
0dd0: 6f 6e 73 74 20 63 68 61 72 2a 20 65 78 74 28 20  onst char* ext( 
0de0: 63 6f 6e 73 74 20 63 68 61 72 2a 20 73 74 72 20  const char* str 
0df0: 29 3b 0d 0a 09 2f 2f 20 5b 73 74 61 74 69 63 5d  );...// [static]
0e00: 20 8a 67 92 a3 8e 71 91 53 95 94 81 42 96 b3 82   .g...q.S...B...
0e10: af 82 ea 82 ce 4e 55 4c 4c 0d 0a 09 73 74 61 74  .....NULL...stat
0e20: 69 63 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 65  ic const char* e
0e30: 78 74 5f 61 6c 6c 28 20 63 6f 6e 73 74 20 63 68  xt_all( const ch
0e40: 61 72 2a 20 73 74 72 20 29 3b 0d 0a 09 2f 2f 20  ar* str );...// 
0e50: 5b 73 74 61 74 69 63 5d 20 5c 20 2f 20 82 c5 8f  [static] \ / ...
0e60: 49 82 ed 82 e9 82 a9 94 db 82 a9 0d 0a 09 73 74  I.............st
0e70: 61 74 69 63 20 62 6f 6f 6c 20 65 6e 64 77 69 74  atic bool endwit
0e80: 68 79 65 6e 28 20 63 6f 6e 73 74 20 63 68 61 72  hyen( const char
0e90: 2a 20 73 74 72 20 29 3b 0d 0a 0d 0a 09 2f 2f 20  * str );.....// 
0ea0: 6e 6f 6e 2d 73 74 61 74 69 63 2d 76 65 72 0d 0a  non-static-ver..
0eb0: 09 63 6f 6e 73 74 20 63 68 61 72 2a 20 6e 61 6d  .const char* nam
0ec0: 65 28 29 20 63 6f 6e 73 74 0d 0a 09 09 7b 20 72  e() const....{ r
0ed0: 65 74 75 72 6e 20 6e 61 6d 65 28 6d 5f 70 42 75  eturn name(m_pBu
0ee0: 66 29 3b 20 7d 0d 0a 09 63 6f 6e 73 74 20 63 68  f); }...const ch
0ef0: 61 72 2a 20 65 78 74 28 29 20 63 6f 6e 73 74 0d  ar* ext() const.
0f00: 0a 09 09 7b 20 72 65 74 75 72 6e 20 65 78 74 28  ...{ return ext(
0f10: 6d 5f 70 42 75 66 29 3b 20 7d 0d 0a 09 63 6f 6e  m_pBuf); }...con
0f20: 73 74 20 63 68 61 72 2a 20 65 78 74 5f 61 6c 6c  st char* ext_all
0f30: 28 29 20 63 6f 6e 73 74 0d 0a 09 09 7b 20 72 65  () const....{ re
0f40: 74 75 72 6e 20 65 78 74 5f 61 6c 6c 28 6d 5f 70  turn ext_all(m_p
0f50: 42 75 66 29 3b 20 7d 0d 0a 7d 3b 0d 0a 0d 0a 23  Buf); }..};....#
0f60: 65 6e 64 69 66 0d 0a                             endif..