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