Hex Artifact Content

Not logged in

Artifact 64224a920accbcb6bb6a85e85ae0ce0a1b6e4058:


0000: 23 69 66 6e 64 65 66 20 5f 4b 49 4c 49 42 5f 54  #ifndef _KILIB_T
0010: 45 58 54 46 49 4c 45 5f 48 5f 0d 0a 23 64 65 66  EXTFILE_H_..#def
0020: 69 6e 65 20 5f 4b 49 4c 49 42 5f 54 45 58 54 46  ine _KILIB_TEXTF
0030: 49 4c 45 5f 48 5f 0d 0a 23 69 6e 63 6c 75 64 65  ILE_H_..#include
0040: 20 22 74 79 70 65 73 2e 68 22 0d 0a 23 69 6e 63   "types.h"..#inc
0050: 6c 75 64 65 20 22 6b 74 6c 61 70 74 72 2e 68 22  lude "ktlaptr.h"
0060: 0d 0a 23 69 6e 63 6c 75 64 65 20 22 6d 65 6d 6f  ..#include "memo
0070: 72 79 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20  ry.h"..#include 
0080: 22 66 69 6c 65 2e 68 22 0d 0a 23 69 66 6e 64 65  "file.h"..#ifnde
0090: 66 20 5f 5f 63 63 64 6f 63 5f 5f 0d 0a 6e 61 6d  f __ccdoc__..nam
00a0: 65 73 70 61 63 65 20 6b 69 20 7b 0d 0a 23 65 6e  espace ki {..#en
00b0: 64 69 66 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d  dif........//===
00c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0100: 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 7b 20 40 70 6b  ======..//@{ @pk
0110: 67 20 6b 69 2e 53 74 64 4c 69 62 20 2f 2f 40 7d  g ki.StdLib //@}
0120: 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 97 98 97 70 89  ..//@{..//....p.
0130: c2 94 5c 83 52 81 5b 83 68 83 5a 83 62 83 67 0d  ..\.R.[.h.Z.b.g.
0140: 0a 2f 2f 0d 0a 2f 2f 09 82 bd 82 be 82 b5 81 41  .//..//........A
0150: 82 b1 82 b1 82 c5 83 8a 83 58 83 67 83 41 83 62  .........X.g.A.b
0160: 83 76 82 b3 82 ea 82 bd 82 e0 82 cc 82 cc 82 a4  .v..............
0170: 82 bf 81 41 57 69 6e 64 6f 77 73 82 c9 82 bf 82  ...AWindows.....
0180: e1 82 f1 82 c6 0d 0a 2f 2f 09 8c be 8c ea 83 54  .......//......T
0190: 83 7c 81 5b 83 67 82 aa 83 43 83 93 83 58 83 67  .|.[.g...C...X.g
01a0: 81 5b 83 8b 82 b3 82 ea 82 c4 82 a2 82 e9 82 e0  .[..............
01b0: 82 cc 82 be 82 af 82 aa 8e c0 8d db 82 c9 82 cd  ................
01c0: 91 ce 89 9e 89 c2 94 5c 81 42 0d 0a 2f 2f 09 92  .......\.B..//..
01d0: 6c 82 aa 2d 31 30 30 82 e6 82 e8 8f ac 82 b3 82  l..-100.........
01e0: a2 83 52 81 5b 83 68 82 cd 81 41 82 bb 82 cc 82  ..R.[.h...A.....
01f0: b7 82 ae 8f e3 82 c9 82 a0 82 e9 83 52 81 5b 83  ............R.[.
0200: 68 83 79 81 5b 83 57 82 cc 8c be 8c ea 0d 0a 2f  h.y.[.W......../
0210: 2f 09 83 54 83 7c 81 5b 83 67 82 f0 97 98 97 70  /..T.|.[.g.....p
0220: 82 b5 82 c4 95 cf 8a b7 82 f0 8d 73 82 a4 82 bd  ...........s....
0230: 82 df 81 41 82 bb 82 ea 82 c9 88 cb 91 b6 82 b7  ...A............
0240: 82 e9 81 42 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d  ...B..//@}..//==
0250: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0260: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0270: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0280: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0290: 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 65 6e 75 6d 20  =======....enum 
02a0: 63 68 61 72 73 65 74 20 7b 0d 0a 09 41 75 74 6f  charset {...Auto
02b0: 44 65 74 65 63 74 20 3d 20 30 2c 20 20 20 20 2f  Detect = 0,    /
02c0: 2f 20 8e a9 93 ae 94 bb 92 e8 0d 0a 09 20 20 20  / ...........   
02d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
02e0: 2f 2f 20 53 4a 49 53 2f 45 75 63 4a 50 2f 49 73  // SJIS/EucJP/Is
02f0: 6f 4a 50 2f 49 73 6f 4b 52 2f 49 73 6f 43 4e 0d  oJP/IsoKR/IsoCN.
0300: 0a 09 09 09 09 09 20 20 20 2f 2f 20 55 54 46 35  ......   // UTF5
0310: 2f 55 54 46 38 2f 55 54 46 38 4e 2f 55 54 46 31  /UTF8/UTF8N/UTF1
0320: 36 62 2f 55 54 46 31 36 6c 2f 55 54 46 33 32 62  6b/UTF16l/UTF32b
0330: 2f 55 54 46 33 32 6c 0d 0a 09 09 09 09 09 20 20  /UTF32l.......  
0340: 20 2f 2f 20 82 f0 94 bb 92 e8 82 b7 82 e9 81 42   // ...........B
0350: 91 bc 82 cd 92 6d 82 e7 82 c8 82 a2 81 42 28 5e  .....m.......B(^
0360: 5e 3b 0d 0a 0d 0a 09 57 65 73 74 65 72 6e 20 20  ^;.....Western  
0370: 20 20 3d 20 31 32 35 32 2c 20 2f 2f 20 89 a2 95    = 1252, // ...
0380: c4 20 20 20 20 20 20 28 57 69 6e 64 6f 77 73 31  .      (Windows1
0390: 32 35 32 20 3e 3e 20 49 53 4f 2d 38 38 35 39 2d  252 >> ISO-8859-
03a0: 31 29 0d 0a 09 54 75 72 6b 69 73 68 20 20 20 20  1)...Turkish    
03b0: 3d 20 31 32 35 34 2c 20 2f 2f 20 83 67 83 8b 83  = 1254, // .g...
03c0: 52 8c ea 20 20 28 57 69 6e 64 6f 77 73 31 32 35  R..  (Windows125
03d0: 34 20 3e 3e 20 49 53 4f 2d 38 38 35 39 2d 39 29  4 >> ISO-8859-9)
03e0: 0d 0a 09 48 65 62 72 65 77 20 20 20 20 20 3d 20  ...Hebrew     = 
03f0: 31 32 35 35 2c 20 2f 2f 20 83 77 83 75 83 89 83  1255, // .w.u...
0400: 43 8c ea 28 57 69 6e 64 6f 77 73 31 32 35 35 20  C..(Windows1255 
0410: 3e 3e 20 49 53 4f 2d 38 38 35 39 2d 38 29 0d 0a  >> ISO-8859-8)..
0420: 09 41 72 61 62 69 63 20 20 20 20 20 3d 20 31 32  .Arabic     = 12
0430: 35 36 2c 20 2f 2f 20 83 41 83 89 83 72 83 41 8c  56, // .A...r.A.
0440: ea 28 57 69 6e 64 6f 77 73 31 32 35 36 20 81 60  .(Windows1256 .`
0450: 20 49 53 4f 2d 38 38 35 39 2d 36 29 0d 0a 09 42   ISO-8859-6)...B
0460: 61 6c 74 69 63 20 20 20 20 20 3d 20 31 32 35 37  altic     = 1257
0470: 2c 20 2f 2f 20 83 6f 83 8b 83 67 8c ea 20 20 28  , // .o...g..  (
0480: 57 69 6e 64 6f 77 73 31 32 35 37 20 3e 3e 20 49  Windows1257 >> I
0490: 53 4f 2d 38 38 35 39 2d 31 33 29 0d 0a 09 56 69  SO-8859-13)...Vi
04a0: 65 74 6e 61 6d 65 73 65 20 3d 20 31 32 35 38 2c  etnamese = 1258,
04b0: 20 2f 2f 20 83 78 83 67 83 69 83 80 8c ea 28 57   // .x.g.i....(W
04c0: 69 6e 64 6f 77 73 31 32 35 38 20 21 3d 20 56 49  indows1258 != VI
04d0: 53 43 49 49 29 0d 0a 09 43 65 6e 74 72 61 6c 20  SCII)...Central 
04e0: 20 20 20 3d 20 31 32 35 30 2c 20 2f 2f 20 92 86     = 1250, // ..
04f0: 89 9b d6 b0 db af ca df 28 57 69 6e 64 6f 77 73  ........(Windows
0500: 31 32 35 30 20 81 60 20 49 53 4f 2d 38 38 35 39  1250 .` ISO-8859
0510: 2d 32 29 0d 0a 09 47 72 65 65 6b 20 20 20 20 20  -2)...Greek     
0520: 20 3d 20 31 32 35 33 2c 20 2f 2f 20 83 4d 83 8a   = 1253, // .M..
0530: 83 56 83 83 8c ea 28 57 69 6e 64 6f 77 73 31 32  .V....(Windows12
0540: 35 33 20 81 60 20 49 53 4f 2d 38 38 35 39 2d 37  53 .` ISO-8859-7
0550: 29 0d 0a 09 54 68 61 69 20 20 20 20 20 20 20 3d  )...Thai       =
0560: 20 38 37 34 2c 20 20 2f 2f 20 83 5e 83 43 8c ea   874,  // .^.C..
0570: 0d 0a 0d 0a 09 43 79 72 69 6c 6c 69 63 20 20 20  .....Cyrillic   
0580: 3d 20 31 32 35 31 2c 20 2f 2f 20 83 4c 83 8a 83  = 1251, // .L...
0590: 8b 8c ea 28 57 69 6e 64 6f 77 73 31 32 35 31 20  ...(Windows1251 
05a0: 21 3d 20 49 53 4f 2d 38 38 35 39 2d 35 29 0d 0a  != ISO-8859-5)..
05b0: 09 4b 6f 69 38 52 20 20 20 20 20 20 3d 20 32 30  .Koi8R      = 20
05c0: 38 36 36 2c 2f 2f 20 83 4c 83 8a 83 8b 8c ea 28  866,// .L......(
05d0: 4b 4f 49 38 2d 52 29 0d 0a 09 4b 6f 69 38 55 20  KOI8-R)...Koi8U 
05e0: 20 20 20 20 20 3d 20 32 31 38 36 36 2c 2f 2f 20       = 21866,// 
05f0: 83 4c 83 8a 83 8b 8c ea 28 4b 4f 49 38 2d 55 20  .L......(KOI8-U 
0600: 83 45 83 4e 83 89 83 43 83 69 8c 6e 29 0d 0a 0d  .E.N...C.i.n)...
0610: 0a 09 55 48 43 20 20 20 20 20 20 20 20 3d 20 39  ..UHC        = 9
0620: 34 39 2c 20 20 2f 2f 20 8a d8 8d 91 8c ea 82 50  49,  // .......P
0630: 20 28 55 6e 69 66 69 65 64 20 48 61 6e 67 6c 65   (Unified Hangle
0640: 20 43 6f 64 65 20 3e 3e 20 45 55 43 2d 4b 52 29   Code >> EUC-KR)
0650: 0d 0a 09 49 73 6f 4b 52 20 20 20 20 20 20 3d 20  ...IsoKR      = 
0660: 2d 39 35 30 2c 20 2f 2f 20 8a d8 8d 91 8c ea 82  -950, // .......
0670: 51 20 28 49 53 4f 2d 32 30 32 32 2d 4b 52 29 0d  Q (ISO-2022-KR).
0680: 0a 09 4a 6f 68 61 62 20 20 20 20 20 20 3d 20 31  ..Johab      = 1
0690: 33 36 31 2c 20 2f 2f 20 8a d8 8d 91 8c ea 82 52  361, // .......R
06a0: 20 28 4a 6f 68 61 62 29 0d 0a 0d 0a 09 47 42 4b   (Johab).....GBK
06b0: 20 20 20 20 20 20 20 20 3d 20 39 33 36 2c 20 20          = 936,  
06c0: 2f 2f 20 92 86 8d 91 8c ea 82 50 20 28 8a c8 91  // .......P (...
06d0: cc 8e 9a 20 47 42 4b 20 3e 3e 20 45 55 43 2d 43  ... GBK >> EUC-C
06e0: 4e 29 0d 0a 09 49 73 6f 43 4e 20 20 20 20 20 20  N)...IsoCN      
06f0: 3d 20 2d 39 33 36 2c 20 2f 2f 20 92 86 8d 91 8c  = -936, // .....
0700: ea 82 51 20 28 8a c8 91 cc 8e 9a 20 49 53 4f 2d  ..Q (...... ISO-
0710: 32 30 32 32 2d 43 4e 29 0d 0a 09 48 5a 20 20 20  2022-CN)...HZ   
0720: 20 20 20 20 20 20 3d 20 2d 39 33 37 2c 20 2f 2f        = -937, //
0730: 20 92 86 8d 91 8c ea 82 52 20 28 8a c8 91 cc 8e   .......R (.....
0740: 9a 20 48 5a 2d 47 42 32 33 31 32 29 0d 0a 09 42  . HZ-GB2312)...B
0750: 69 67 35 20 20 20 20 20 20 20 3d 20 39 35 30 2c  ig5       = 950,
0760: 20 20 2f 2f 20 92 86 8d 91 8c ea 82 53 20 28 94    // .......S (.
0770: c9 91 cc 8e 9a 20 42 69 67 35 29 0d 0a 0d 0a 09  ..... Big5).....
0780: 53 4a 49 53 20 20 20 20 20 20 20 3d 20 39 33 32  SJIS       = 932
0790: 2c 20 20 2f 2f 20 93 fa 96 7b 8c ea 82 50 20 28  ,  // ...{...P (
07a0: 53 68 69 66 74 5f 4a 49 53 29 0d 0a 09 45 75 63  Shift_JIS)...Euc
07b0: 4a 50 20 20 20 20 20 20 3d 20 2d 39 33 32 2c 20  JP      = -932, 
07c0: 2f 2f 20 93 fa 96 7b 8c ea 82 51 20 28 93 fa 96  // ...{...Q (...
07d0: 7b 8c ea 45 55 43 29 0d 0a 09 49 73 6f 4a 50 20  {..EUC)...IsoJP 
07e0: 20 20 20 20 20 3d 20 2d 39 33 33 2c 20 2f 2f 20       = -933, // 
07f0: 93 fa 96 7b 8c ea 82 52 20 28 49 53 4f 2d 32 30  ...{...R (ISO-20
0800: 32 32 2d 4a 50 29 0d 0a 0d 0a 09 55 54 46 35 20  22-JP).....UTF5 
0810: 20 20 20 20 20 20 3d 20 2d 32 2c 20 20 20 2f 2f        = -2,   //
0820: 20 55 6e 69 63 6f 64 65 20 20 28 55 54 46 2d 35   Unicode  (UTF-5
0830: 29 20 20 20 3a 20 42 4f 4d 96 b3 82 b5 0d 0a 09  )   : BOM.......
0840: 55 54 46 37 20 20 20 20 20 20 20 3d 20 36 35 30  UTF7       = 650
0850: 30 30 2c 2f 2f 20 55 6e 69 63 6f 64 65 20 20 28  00,// Unicode  (
0860: 55 54 46 2d 37 29 20 20 20 3a 20 42 4f 4d 96 b3  UTF-7)   : BOM..
0870: 82 b5 0d 0a 09 55 54 46 38 20 20 20 20 20 20 20  .....UTF8       
0880: 3d 2d 36 35 30 30 31 2c 2f 2f 20 55 6e 69 63 6f  =-65001,// Unico
0890: 64 65 20 20 28 55 54 46 2d 38 29 20 20 20 3a 20  de  (UTF-8)   : 
08a0: 42 4f 4d 97 4c 82 e8 0d 0a 09 55 54 46 38 4e 20  BOM.L.....UTF8N 
08b0: 20 20 20 20 20 3d 20 36 35 30 30 31 2c 2f 2f 20       = 65001,// 
08c0: 55 6e 69 63 6f 64 65 20 20 28 55 54 46 2d 38 4e  Unicode  (UTF-8N
08d0: 29 20 20 3a 20 42 4f 4d 96 b3 82 b5 0d 0a 09 55  )  : BOM.......U
08e0: 54 46 31 36 62 20 20 20 20 20 3d 20 2d 33 2c 20  TF16b     = -3, 
08f0: 20 20 2f 2f 20 55 6e 69 63 6f 64 65 20 20 28 55    // Unicode  (U
0900: 54 46 2d 31 36 29 20 20 3a 20 42 4f 4d 97 4c 82  TF-16)  : BOM.L.
0910: e8 20 42 45 0d 0a 09 55 54 46 31 36 6c 20 20 20  . BE...UTF16l   
0920: 20 20 3d 20 2d 34 2c 20 20 20 2f 2f 20 55 6e 69    = -4,   // Uni
0930: 63 6f 64 65 20 20 28 55 54 46 2d 31 36 29 20 20  code  (UTF-16)  
0940: 3a 20 42 4f 4d 97 4c 82 e8 20 4c 45 0d 0a 09 55  : BOM.L.. LE...U
0950: 54 46 31 36 42 45 20 20 20 20 3d 20 2d 35 2c 20  TF16BE    = -5, 
0960: 20 20 2f 2f 20 55 6e 69 63 6f 64 65 20 20 28 55    // Unicode  (U
0970: 54 46 2d 31 36 42 45 29 3a 20 42 4f 4d 96 b3 82  TF-16BE): BOM...
0980: b5 0d 0a 09 55 54 46 31 36 4c 45 20 20 20 20 3d  ....UTF16LE    =
0990: 20 2d 36 2c 20 20 20 2f 2f 20 55 6e 69 63 6f 64   -6,   // Unicod
09a0: 65 20 20 28 55 54 46 2d 31 36 4c 45 29 3a 20 42  e  (UTF-16LE): B
09b0: 4f 4d 96 b3 82 b5 0d 0a 09 55 54 46 33 32 62 20  OM.......UTF32b 
09c0: 20 20 20 20 3d 20 2d 37 2c 20 20 20 2f 2f 20 55      = -7,   // U
09d0: 6e 69 63 6f 64 65 20 20 28 55 54 46 2d 33 32 29  nicode  (UTF-32)
09e0: 20 20 3a 20 42 4f 4d 97 4c 82 e8 20 42 45 0d 0a    : BOM.L.. BE..
09f0: 09 55 54 46 33 32 6c 20 20 20 20 20 3d 20 2d 38  .UTF32l     = -8
0a00: 2c 20 20 20 2f 2f 20 55 6e 69 63 6f 64 65 20 20  ,   // Unicode  
0a10: 28 55 54 46 2d 33 32 29 20 20 3a 20 42 4f 4d 97  (UTF-32)  : BOM.
0a20: 4c 82 e8 20 4c 45 0d 0a 09 55 54 46 33 32 42 45  L.. LE...UTF32BE
0a30: 20 20 20 20 3d 20 2d 39 2c 20 20 20 2f 2f 20 55      = -9,   // U
0a40: 6e 69 63 6f 64 65 20 20 28 55 54 46 2d 33 32 42  nicode  (UTF-32B
0a50: 45 29 3a 20 42 4f 4d 96 b3 82 b5 0d 0a 09 55 54  E): BOM.......UT
0a60: 46 33 32 4c 45 20 20 20 20 3d 20 2d 31 30 2c 20  F32LE    = -10, 
0a70: 20 2f 2f 20 55 6e 69 63 6f 64 65 20 20 28 55 54   // Unicode  (UT
0a80: 46 2d 33 32 4c 45 29 3a 20 42 4f 4d 96 b3 82 b5  F-32LE): BOM....
0a90: 0d 0a 0d 0a 09 44 4f 53 55 53 20 20 20 20 20 20  .....DOSUS      
0aa0: 3d 20 34 33 37 20 20 20 2f 2f 20 44 4f 53 4c 61  = 437   // DOSLa
0ab0: 74 69 6e 55 53 20 28 43 50 34 33 37 29 0d 0a 7d  tinUS (CP437)..}
0ac0: 3b 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d  ;....//=========
0ad0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0ae0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0af0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0b00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0b10: 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 89 fc 8d 73 83  ..//@{..//....s.
0b20: 52 81 5b 83 68 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d  R.[.h..//@}..//=
0b30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0b40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0b50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0b60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0b70: 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 65 6e 75 6d  ========....enum
0b80: 20 6c 62 63 6f 64 65 20 7b 0d 0a 09 43 52 20 20   lbcode {...CR  
0b90: 20 3d 20 30 2c 0d 0a 09 4c 46 20 20 20 3d 20 31   = 0,...LF   = 1
0ba0: 2c 0d 0a 09 43 52 4c 46 20 3d 20 32 0d 0a 7d 3b  ,...CRLF = 2..};
0bb0: 0d 0a 0d 0a 73 74 72 75 63 74 20 54 65 78 74 46  ....struct TextF
0bc0: 69 6c 65 52 50 69 6d 70 6c 3b 0d 0a 73 74 72 75  ileRPimpl;..stru
0bd0: 63 74 20 54 65 78 74 46 69 6c 65 57 50 69 6d 70  ct TextFileWPimp
0be0: 6c 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d  l;........//====
0bf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c30: 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09  =====..//@{..//.
0c40: 83 65 83 4c 83 58 83 67 83 74 83 40 83 43 83 8b  .e.L.X.g.t.@.C..
0c50: 93 c7 8d 9e 0d 0a 2f 2f 0d 0a 2f 2f 09 83 74 83  ......//..//..t.
0c60: 40 83 43 83 8b 82 f0 8e 77 92 e8 82 b3 82 ea 82  @.C.....w.......
0c70: bd 95 b6 8e 9a 83 52 81 5b 83 68 82 c5 89 f0 8e  ......R.[.h.....
0c80: df 82 b5 81 41 55 6e 69 63 6f 64 65 95 b6 8e 9a  ....AUnicode....
0c90: 97 f1 82 c6 82 b5 82 c4 0d 0a 2f 2f 09 88 ea 8d  ..........//....
0ca0: 73 96 88 82 c9 95 d4 82 b7 81 42 95 b6 8e 9a 83  s.........B.....
0cb0: 52 81 5b 83 68 82 e2 89 fc 8d 73 83 52 81 5b 83  R.[.h.....s.R.[.
0cc0: 68 82 cc 8e a9 93 ae 94 bb 92 e8 82 e0 89 c2 94  h...............
0cd0: 5c 81 42 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d  \.B..//@}..//===
0ce0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0cf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0d00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0d10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0d20: 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73 73 20  ======....class 
0d30: 54 65 78 74 46 69 6c 65 52 20 3a 20 70 75 62 6c  TextFileR : publ
0d40: 69 63 20 4f 62 6a 65 63 74 0d 0a 7b 0d 0a 70 75  ic Object..{..pu
0d50: 62 6c 69 63 3a 0d 0a 0d 0a 09 2f 2f 40 7b 20 83  blic:.....//@{ .
0d60: 52 83 93 83 58 83 67 83 89 83 4e 83 5e 81 69 83  R...X.g...N.^.i.
0d70: 52 81 5b 83 68 8e 77 92 e8 81 6a 2f 2f 40 7d 0d  R.[.h.w...j//@}.
0d80: 0a 09 54 65 78 74 46 69 6c 65 52 28 20 69 6e 74  ..TextFileR( int
0d90: 20 63 68 61 72 73 65 74 3d 41 75 74 6f 44 65 74   charset=AutoDet
0da0: 65 63 74 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20  ect );.....//@{ 
0db0: 83 66 83 58 83 67 83 89 83 4e 83 5e 20 2f 2f 40  .f.X.g...N.^ //@
0dc0: 7d 0d 0a 09 7e 54 65 78 74 46 69 6c 65 52 28 29  }...~TextFileR()
0dd0: 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 8a 4a 82 ad 20  ;.....//@{ .J.. 
0de0: 2f 2f 40 7d 0d 0a 09 62 6f 6f 6c 20 4f 70 65 6e  //@}...bool Open
0df0: 28 20 63 6f 6e 73 74 20 54 43 48 41 52 2a 20 66  ( const TCHAR* f
0e00: 6e 61 6d 65 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b  name );.....//@{
0e10: 20 95 c2 82 b6 82 e9 20 2f 2f 40 7d 0d 0a 09 76   ...... //@}...v
0e20: 6f 69 64 20 43 6c 6f 73 65 28 29 3b 0d 0a 0d 0a  oid Close();....
0e30: 09 2f 2f 40 7b 0d 0a 09 2f 2f 09 93 c7 82 dd 8d  .//@{...//......
0e40: 9e 82 dd 20 28 93 c7 82 f1 82 be 92 b7 82 b3 82  ... (...........
0e50: f0 95 d4 82 b7 29 0d 0a 09 2f 2f 0d 0a 09 2f 2f  .....)...//...//
0e60: 09 8f ad 82 c8 82 ad 82 c6 82 e0 32 30 82 ad 82  ...........20...
0e70: e7 82 a2 82 cc 83 54 83 43 83 59 82 f0 8a 6d 95  ......T.C.Y...m.
0e80: db 82 b5 82 bd 83 6f 83 62 83 74 83 40 82 f0 8e  ......o.b.t.@...
0e90: 77 92 e8 82 b5 82 c4 82 ad 82 be 82 b3 82 a2 81  w...............
0ea0: 42 0d 0a 09 2f 2f 40 7d 0d 0a 09 73 69 7a 65 5f  B...//@}...size_
0eb0: 74 20 52 65 61 64 4c 69 6e 65 28 20 75 6e 69 63  t ReadLine( unic
0ec0: 6f 64 65 2a 20 62 75 66 2c 20 75 6c 6f 6e 67 20  ode* buf, ulong 
0ed0: 73 69 7a 20 29 3b 0d 0a 0d 0a 70 75 62 6c 69 63  siz );....public
0ee0: 3a 0d 0a 0d 0a 09 2f 2f 40 7b 20 93 c7 82 f1 82  :.....//@{ .....
0ef0: c5 82 e9 83 74 83 40 83 43 83 8b 82 cc 83 52 81  ....t.@.C.....R.
0f00: 5b 83 68 83 79 81 5b 83 57 20 2f 2f 40 7d 0d 0a  [.h.y.[.W //@}..
0f10: 09 69 6e 74 20 63 6f 64 65 70 61 67 65 28 29 20  .int codepage() 
0f20: 63 6f 6e 73 74 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20  const;.....//@{ 
0f30: 89 fc 8d 73 83 52 81 5b 83 68 20 28 30 3a 43 52  ...s.R.[.h (0:CR
0f40: 2c 20 31 3a 4c 46 2c 20 32 3a 43 52 4c 46 29 20  , 1:LF, 2:CRLF) 
0f50: 2f 2f 40 7d 0d 0a 09 69 6e 74 20 6c 69 6e 65 62  //@}...int lineb
0f60: 72 65 61 6b 28 29 20 63 6f 6e 73 74 3b 0d 0a 0d  reak() const;...
0f70: 0a 09 2f 2f 40 7b 20 93 c7 82 dd 8d 9e 82 dd 8f  ..//@{ .........
0f80: f3 8b b5 20 28 30 3a 45 4f 46 2c 20 31 3a 45 4f  ... (0:EOF, 1:EO
0f90: 4c 2c 20 32 3a 45 4f 42 29 20 2f 2f 40 7d 0d 0a  L, 2:EOB) //@}..
0fa0: 09 69 6e 74 20 73 74 61 74 65 28 29 20 63 6f 6e  .int state() con
0fb0: 73 74 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 74 83  st;.....//@{ .t.
0fc0: 40 83 43 83 8b 83 54 83 43 83 59 20 2f 2f 40 7d  @.C...T.C.Y //@}
0fd0: 0d 0a 09 75 6c 6f 6e 67 20 73 69 7a 65 28 29 20  ...ulong size() 
0fe0: 63 6f 6e 73 74 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20  const;.....//@{ 
0ff0: 89 fc 8d 73 82 aa 88 ea 8c c2 82 e0 8c a9 82 c2  ...s............
1000: 82 a9 82 e7 82 c8 82 a9 82 c1 82 bd 83 74 83 89  .............t..
1010: 83 4f 20 2f 2f 40 7d 0d 0a 09 62 6f 6f 6c 20 6e  .O //@}...bool n
1020: 6f 6c 62 5f 66 6f 75 6e 64 28 29 20 63 6f 6e 73  olb_found() cons
1030: 74 3b 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 0d 0a  t;..private:....
1040: 09 64 70 74 72 3c 54 65 78 74 46 69 6c 65 52 50  .dptr<TextFileRP
1050: 69 6d 70 6c 3e 20 69 6d 70 6c 5f 3b 0d 0a 09 46  impl> impl_;...F
1060: 69 6c 65 52 20 20 20 20 20 20 20 20 20 20 20 20  ileR            
1070: 20 20 20 20 66 70 5f 3b 0d 0a 09 69 6e 74 20 20      fp_;...int  
1080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1090: 63 73 5f 3b 0d 0a 09 69 6e 74 20 20 20 20 20 20  cs_;...int      
10a0: 20 20 20 20 20 20 20 20 20 20 20 20 6c 62 5f 3b              lb_;
10b0: 0d 0a 09 62 6f 6f 6c 20 20 20 20 20 20 20 20 20  ...bool         
10c0: 20 6e 6f 6c 62 46 6f 75 6e 64 5f 3b 0d 0a 0d 0a   nolbFound_;....
10d0: 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 69 6e 74  private:.....int
10e0: 20 41 75 74 6f 44 65 74 65 63 74 69 6f 6e 28 20   AutoDetection( 
10f0: 69 6e 74 20 63 73 2c 20 63 6f 6e 73 74 20 75 63  int cs, const uc
1100: 68 61 72 2a 20 70 74 72 2c 20 75 6c 6f 6e 67 20  har* ptr, ulong 
1110: 73 69 7a 20 29 3b 0d 0a 0d 0a 70 72 69 76 61 74  siz );....privat
1120: 65 3a 0d 0a 0d 0a 09 4e 4f 43 4f 50 59 28 54 65  e:.....NOCOPY(Te
1130: 78 74 46 69 6c 65 52 29 3b 0d 0a 7d 3b 0d 0a 0d  xtFileR);..};...
1140: 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  .....//---------
1150: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1160: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1170: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1190: 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 69 6e 74 20 54  ....inline int T
11a0: 65 78 74 46 69 6c 65 52 3a 3a 63 6f 64 65 70 61  extFileR::codepa
11b0: 67 65 28 29 20 63 6f 6e 73 74 0d 0a 09 7b 20 72  ge() const...{ r
11c0: 65 74 75 72 6e 20 63 73 5f 3b 20 7d 0d 0a 0d 0a  eturn cs_; }....
11d0: 69 6e 6c 69 6e 65 20 69 6e 74 20 54 65 78 74 46  inline int TextF
11e0: 69 6c 65 52 3a 3a 6c 69 6e 65 62 72 65 61 6b 28  ileR::linebreak(
11f0: 29 20 63 6f 6e 73 74 0d 0a 09 7b 20 72 65 74 75  ) const...{ retu
1200: 72 6e 20 6c 62 5f 3b 20 7d 0d 0a 0d 0a 69 6e 6c  rn lb_; }....inl
1210: 69 6e 65 20 75 6c 6f 6e 67 20 54 65 78 74 46 69  ine ulong TextFi
1220: 6c 65 52 3a 3a 73 69 7a 65 28 29 20 63 6f 6e 73  leR::size() cons
1230: 74 0d 0a 09 7b 20 72 65 74 75 72 6e 20 66 70 5f  t...{ return fp_
1240: 2e 73 69 7a 65 28 29 3b 20 7d 0d 0a 0d 0a 69 6e  .size(); }....in
1250: 6c 69 6e 65 20 62 6f 6f 6c 20 54 65 78 74 46 69  line bool TextFi
1260: 6c 65 52 3a 3a 6e 6f 6c 62 5f 66 6f 75 6e 64 28  leR::nolb_found(
1270: 29 20 63 6f 6e 73 74 0d 0a 09 7b 20 72 65 74 75  ) const...{ retu
1280: 72 6e 20 6e 6f 6c 62 46 6f 75 6e 64 5f 3b 20 7d  rn nolbFound_; }
1290: 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d  ......//========
12a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
12b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
12c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
12d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
12e0: 3d 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 83 65 83 4c  =..//@{..//..e.L
12f0: 83 58 83 67 83 74 83 40 83 43 83 8b 8f 91 8d 9e  .X.g.t.@.C......
1300: 0d 0a 2f 2f 0d 0a 2f 2f 09 55 6e 69 63 6f 64 65  ..//..//.Unicode
1310: 95 b6 8e 9a 97 f1 82 f0 8e f3 82 af 8e e6 82 e8  ................
1320: 81 41 8e 77 92 e8 82 b3 82 ea 82 bd 95 b6 8e 9a  .A.w............
1330: 83 52 81 5b 83 68 82 c9 95 cf 8a b7 82 b5 82 c8  .R.[.h..........
1340: 82 aa 82 e7 8f 6f 97 cd 82 b7 82 e9 81 42 0d 0a  .....o.......B..
1350: 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d  //@}..//========
1360: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1370: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1380: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1390: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
13a0: 3d 0d 0a 0d 0a 63 6c 61 73 73 20 54 65 78 74 46  =....class TextF
13b0: 69 6c 65 57 20 3a 20 70 75 62 6c 69 63 20 4f 62  ileW : public Ob
13c0: 6a 65 63 74 0d 0a 7b 0d 0a 70 75 62 6c 69 63 3a  ject..{..public:
13d0: 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 52 83 93 83 58  .....//@{ .R...X
13e0: 83 67 83 89 83 4e 83 5e 81 69 95 b6 8e 9a 2c 89  .g...N.^.i....,.
13f0: fc 8d 73 83 52 81 5b 83 68 8e 77 92 e8 81 6a 2f  ..s.R.[.h.w...j/
1400: 2f 40 7d 0d 0a 09 54 65 78 74 46 69 6c 65 57 28  /@}...TextFileW(
1410: 20 69 6e 74 20 63 68 61 72 73 65 74 2c 20 69 6e   int charset, in
1420: 74 20 6c 69 6e 65 62 72 65 61 6b 20 29 3b 0d 0a  t linebreak );..
1430: 09 7e 54 65 78 74 46 69 6c 65 57 28 29 3b 0d 0a  .~TextFileW();..
1440: 0d 0a 09 2f 2f 40 7b 20 8a 4a 82 ad 20 2f 2f 40  ...//@{ .J.. //@
1450: 7d 0d 0a 09 62 6f 6f 6c 20 4f 70 65 6e 28 20 63  }...bool Open( c
1460: 6f 6e 73 74 20 54 43 48 41 52 2a 20 66 6e 61 6d  onst TCHAR* fnam
1470: 65 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 95 c2  e );.....//@{ ..
1480: 82 b6 82 e9 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64  .... //@}...void
1490: 20 43 6c 6f 73 65 28 29 3b 0d 0a 0d 0a 09 2f 2f   Close();.....//
14a0: 40 7b 20 88 ea 8d 73 8f 91 82 ab 8f 6f 82 b5 20  @{ ...s.....o.. 
14b0: 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 57 72 69 74  //@}...void Writ
14c0: 65 4c 69 6e 65 28 20 63 6f 6e 73 74 20 75 6e 69  eLine( const uni
14d0: 63 6f 64 65 2a 20 62 75 66 2c 20 75 6c 6f 6e 67  code* buf, ulong
14e0: 20 73 69 7a 2c 20 62 6f 6f 6c 20 6c 61 73 74 6c   siz, bool lastl
14f0: 69 6e 65 20 29 3b 0d 0a 0d 0a 70 72 69 76 61 74  ine );....privat
1500: 65 3a 0d 0a 0d 0a 09 64 70 74 72 3c 54 65 78 74  e:.....dptr<Text
1510: 46 69 6c 65 57 50 69 6d 70 6c 3e 20 69 6d 70 6c  FileWPimpl> impl
1520: 5f 3b 0d 0a 09 46 69 6c 65 57 20 20 20 20 20 20  _;...FileW      
1530: 20 20 20 20 20 20 20 20 20 20 66 70 5f 3b 0d 0a            fp_;..
1540: 09 63 6f 6e 73 74 20 69 6e 74 20 20 20 20 20 20  .const int      
1550: 20 20 20 20 20 20 63 73 5f 3b 0d 0a 09 63 6f 6e        cs_;...con
1560: 73 74 20 69 6e 74 20 20 20 20 20 20 20 20 20 20  st int          
1570: 20 20 6c 62 5f 3b 0d 0a 0d 0a 70 72 69 76 61 74    lb_;....privat
1580: 65 3a 0d 0a 0d 0a 09 4e 4f 43 4f 50 59 28 54 65  e:.....NOCOPY(Te
1590: 78 74 46 69 6c 65 57 29 3b 0d 0a 7d 3b 0d 0a 0d  xtFileW);..};...
15a0: 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d  .....//=========
15b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
15c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
15d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
15e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
15f0: 0d 0a 0d 0a 7d 20 20 20 20 20 20 2f 2f 20 6e 61  ....}      // na
1600: 6d 65 73 70 61 63 65 20 6b 69 0d 0a 23 65 6e 64  mespace ki..#end
1610: 69 66 20 2f 2f 20 5f 4b 49 4c 49 42 5f 54 45 58  if // _KILIB_TEX
1620: 54 46 49 4c 45 5f 48 5f 0d 0a                    TFILE_H_..