1,7 → 1,7 |
(* |
BSD 2-Clause License |
|
Copyright (c) 2018-2020, Anton Krotov |
Copyright (c) 2018-2021, Anton Krotov |
All rights reserved. |
*) |
|
12,11 → 12,13 |
|
CONST |
|
CR = 0DX; LF = 0AX; |
CR = 0DX; LF = 0AX; HT = 9X; |
|
CHUNK = 1024 * 256; |
|
defTabSize* = 4; |
|
|
TYPE |
|
TEXT* = POINTER TO RECORD (C.ITEM) |
45,6 → 47,7 |
VAR |
|
texts: C.COLLECTION; |
TabSize: INTEGER; |
|
|
PROCEDURE load (text: TEXT); |
91,8 → 94,11 |
text.eol := FALSE |
END; |
text.CR := FALSE |
ELSIF c = HT THEN |
text.col := text.col + TabSize - text.col MOD TabSize; |
text.eol := FALSE; |
text.CR := FALSE |
ELSE |
text.eol := FALSE; |
IF text.utf8 THEN |
IF ORD(c) DIV 64 # 2 THEN |
INC(text.col) |
100,6 → 106,7 |
ELSE |
INC(text.col) |
END; |
text.eol := FALSE; |
text.CR := FALSE |
END |
|
187,6 → 194,17 |
END open; |
|
|
PROCEDURE setTabSize* (n: INTEGER); |
BEGIN |
IF (0 < n) & (n <= 64) THEN |
TabSize := n |
ELSE |
TabSize := defTabSize |
END |
END setTabSize; |
|
|
BEGIN |
TabSize := defTabSize; |
texts := C.create() |
END TEXTDRV. |