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; |