Subversion Repositories Kolibri OS

Rev

Rev 8859 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8859 Rev 9177
Line 1... Line 1...
1
(*
1
(*
2
    BSD 2-Clause License
2
    BSD 2-Clause License
Line 3... Line 3...
3
 
3
 
4
    Copyright (c) 2018-2020, Anton Krotov
4
    Copyright (c) 2018-2021, Anton Krotov
5
    All rights reserved.
5
    All rights reserved.
Line 6... Line 6...
6
*)
6
*)
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
MODULE TEXTDRV;
8
MODULE TEXTDRV;
Line 9... Line 9...
9
 
9
 
Line 10... Line 10...
10
IMPORT FILES, C := COLLECTIONS;
10
IMPORT FILES, C := COLLECTIONS;
Line -... Line 11...
-
 
11
 
-
 
12
 
Line 11... Line 13...
11
 
13
CONST
Line 12... Line 14...
12
 
14
 
Line 43... Line 45...
43
 
45
 
Line 44... Line 46...
44
 
46
 
-
 
47
VAR
Line 45... Line 48...
45
VAR
48
 
46
 
49
    texts: C.COLLECTION;
47
    texts: C.COLLECTION;
50
    TabSize: INTEGER;
Line 89... Line 92...
89
                text.eol := TRUE
92
                text.eol := TRUE
90
            ELSE
93
            ELSE
91
                text.eol := FALSE
94
                text.eol := FALSE
92
            END;
95
            END;
93
            text.CR := FALSE
96
            text.CR := FALSE
94
        ELSE
97
        ELSIF c = HT THEN
-
 
98
            text.col := text.col + TabSize - text.col MOD TabSize;
95
            text.eol  := FALSE;
99
            text.eol := FALSE;
-
 
100
            text.CR  := FALSE
-
 
101
        ELSE
96
            IF text.utf8 THEN
102
            IF text.utf8 THEN
97
                IF ORD(c) DIV 64 # 2 THEN
103
                IF ORD(c) DIV 64 # 2 THEN
98
                    INC(text.col)
104
                    INC(text.col)
99
                END
105
                END
100
            ELSE
106
            ELSE
101
                INC(text.col)
107
                INC(text.col)
102
            END;
108
            END;
-
 
109
            text.eol := FALSE;
103
            text.CR := FALSE
110
            text.CR  := FALSE
104
        END
111
        END
Line 105... Line 112...
105
 
112
 
Line 185... Line 192...
185
 
192
 
186
    RETURN text
193
    RETURN text
Line -... Line 194...
-
 
194
END open;
-
 
195
 
-
 
196
 
-
 
197
PROCEDURE setTabSize* (n: INTEGER);
-
 
198
BEGIN
-
 
199
    IF (0 < n) & (n <= 64) THEN
-
 
200
        TabSize := n
-
 
201
    ELSE
-
 
202
        TabSize := defTabSize
-
 
203
    END
187
END open;
204
END setTabSize;
-
 
205
 
188
 
206
 
189
 
207
BEGIN
190
BEGIN
208
    TabSize := defTabSize;