Subversion Repositories Kolibri OS

Rev

Rev 9180 | Rev 9522 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9180 Rev 9200
Line 61... Line 61...
61
 
61
 
Line 62... Line 62...
62
VAR
62
VAR
63
 
63
 
-
 
64
    eol*: ARRAY 3 OF tEOL;
Line 64... Line 65...
64
    eol*: ARRAY 3 OF tEOL;
65
    eolNames*: ARRAY 3, 16 OF WCHAR;
65
    eolNames*: ARRAY 3, 16 OF WCHAR;
66
    strBuf: ARRAY 1000000 OF WCHAR;
66
 
67
 
Line 166... Line 167...
166
 
167
 
167
PROCEDURE getString* (file: tInput; line: Lines.tLine; tabs: BOOLEAN; VAR eol: BOOLEAN): INTEGER;
168
PROCEDURE getString* (file: tInput; line: Lines.tLine; tabs: BOOLEAN; VAR eol: BOOLEAN): INTEGER;
168
VAR
169
VAR
169
    c: WCHAR;
170
    c: WCHAR;
170
    i, L, k, n: INTEGER;
-
 
171
    s: ARRAY 1000 OF WCHAR;
171
    i, L, k, n: INTEGER;
172
BEGIN
172
BEGIN
173
    L := LEN(s);
173
    L := LEN(strBuf);
174
    eol := FALSE;
174
    eol := FALSE;
175
    n := 0;
175
    n := 0;
176
    i := ORD(file.cnt > 0) - 1;
176
    i := ORD(file.cnt > 0) - 1;
177
    WHILE (file.cnt > 0) & ~eol DO
177
    WHILE (file.cnt > 0) & ~eol DO
Line 188... Line 188...
188
            END;
188
            END;
189
            file.CR := FALSE
189
            file.CR := FALSE
190
        ELSIF c = TAB THEN
190
        ELSIF c = TAB THEN
191
            k := Lines.tab - i MOD Lines.tab;
191
            k := Lines.tab - i MOD Lines.tab;
192
            IF tabs THEN
192
            IF tabs THEN
193
                s[i] := TAB
193
                strBuf[i] := TAB
194
            ELSE
194
            ELSE
195
                s[i] := SPACE
195
                strBuf[i] := SPACE
196
            END;
196
            END;
197
            INC(i);
197
            INC(i);
198
            DEC(k);
198
            DEC(k);
199
            WHILE k > 0 DO
199
            WHILE k > 0 DO
200
                IF tabs THEN
200
                IF tabs THEN
201
                    s[i] := Lines.TAB1
201
                    strBuf[i] := Lines.TAB1
202
                ELSE
202
                ELSE
203
                    s[i] := SPACE
203
                    strBuf[i] := SPACE
204
                END;
204
                END;
205
                INC(i);
205
                INC(i);
206
                IF i = L THEN
206
                IF i = L THEN
207
                    Lines.concat(line, s);
207
                    Lines.concat(line, strBuf);
208
                    INC(n, i);
208
                    INC(n, i);
209
                    i := 0
209
                    i := 0
210
                END;
210
                END;
211
                DEC(k)
211
                DEC(k)
212
            END;
212
            END;
213
            file.CR := FALSE
213
            file.CR := FALSE
214
        ELSIF c = BOM THEN
214
        ELSIF c = BOM THEN
215
            file.CR := FALSE
215
            file.CR := FALSE
216
        ELSE
216
        ELSE
217
            s[i] := c;
217
            strBuf[i] := c;
218
            INC(i);
218
            INC(i);
219
            IF i = L THEN
219
            IF i = L THEN
220
                Lines.concat(line, s);
220
                Lines.concat(line, strBuf);
221
                INC(n, i);
221
                INC(n, i);
222
                i := 0
222
                i := 0
223
            END;
223
            END;
224
            file.CR := FALSE
224
            file.CR := FALSE
225
        END
225
        END
226
    END;
226
    END;
227
    IF i >= 0 THEN
227
    IF i >= 0 THEN
228
        s[i] := 0X;
228
        strBuf[i] := 0X;
229
        Lines.concat(line, s);
229
        Lines.concat(line, strBuf);
230
    END;
230
    END;
231
    INC(n, i)
231
    INC(n, i)
232
    RETURN n
232
    RETURN n
233
END getString;
233
END getString;