diff --git a/programs/develop/cedit/CEDIT b/programs/develop/cedit/CEDIT index 315c88e522..54c7075960 100644 Binary files a/programs/develop/cedit/CEDIT and b/programs/develop/cedit/CEDIT differ diff --git a/programs/develop/cedit/SRC/CEdit.ob07 b/programs/develop/cedit/SRC/CEdit.ob07 index 940d869e6c..f7623a763f 100644 --- a/programs/develop/cedit/SRC/CEdit.ob07 +++ b/programs/develop/cedit/SRC/CEdit.ob07 @@ -28,7 +28,7 @@ IMPORT RW, Ini, EB := EditBox, Icons, Tabs, Timer; CONST - header = "CEdit (21-sep-2021)"; + header = "CEdit (24-sep-2021)"; ShellFilter = ""; EditFilter = "SH|ASM|TXT|INC|OB07|C|CPP|H|PAS|PP|LUA|INI|JSON"; diff --git a/programs/develop/cedit/SRC/RW.ob07 b/programs/develop/cedit/SRC/RW.ob07 index 47df203da6..4da1281e75 100644 --- a/programs/develop/cedit/SRC/RW.ob07 +++ b/programs/develop/cedit/SRC/RW.ob07 @@ -63,6 +63,7 @@ VAR eol*: ARRAY 3 OF tEOL; eolNames*: ARRAY 3, 16 OF WCHAR; + strBuf: ARRAY 1000000 OF WCHAR; PROCEDURE getByte (file: tInput): BYTE; @@ -168,9 +169,8 @@ PROCEDURE getString* (file: tInput; line: Lines.tLine; tabs: BOOLEAN; VAR eol: B VAR c: WCHAR; i, L, k, n: INTEGER; - s: ARRAY 1000 OF WCHAR; BEGIN - L := LEN(s); + L := LEN(strBuf); eol := FALSE; n := 0; i := ORD(file.cnt > 0) - 1; @@ -190,21 +190,21 @@ BEGIN ELSIF c = TAB THEN k := Lines.tab - i MOD Lines.tab; IF tabs THEN - s[i] := TAB + strBuf[i] := TAB ELSE - s[i] := SPACE + strBuf[i] := SPACE END; INC(i); DEC(k); WHILE k > 0 DO IF tabs THEN - s[i] := Lines.TAB1 + strBuf[i] := Lines.TAB1 ELSE - s[i] := SPACE + strBuf[i] := SPACE END; INC(i); IF i = L THEN - Lines.concat(line, s); + Lines.concat(line, strBuf); INC(n, i); i := 0 END; @@ -214,10 +214,10 @@ BEGIN ELSIF c = BOM THEN file.CR := FALSE ELSE - s[i] := c; + strBuf[i] := c; INC(i); IF i = L THEN - Lines.concat(line, s); + Lines.concat(line, strBuf); INC(n, i); i := 0 END; @@ -225,8 +225,8 @@ BEGIN END END; IF i >= 0 THEN - s[i] := 0X; - Lines.concat(line, s); + strBuf[i] := 0X; + Lines.concat(line, strBuf); END; INC(n, i) RETURN n diff --git a/programs/develop/cedit/SRC/scroll.ob07 b/programs/develop/cedit/SRC/scroll.ob07 index 05ca315197..f157106c6f 100644 --- a/programs/develop/cedit/SRC/scroll.ob07 +++ b/programs/develop/cedit/SRC/scroll.ob07 @@ -194,7 +194,7 @@ BEGIN m := (maxPos + 1) MOD scroll.maxVal; pos := value*n + MIN(value, m) ELSE - pos := value*(maxPos + 1) DIV scroll.maxVal + pos := FLOOR(FLT(value)*FLT(maxPos + 1)/FLT(scroll.maxVal)) END; IF pos > maxPos THEN pos := maxPos; @@ -267,7 +267,7 @@ BEGIN END END ELSE - value := scroll.maxVal*pos DIV (maxPos + 1) + value := FLOOR(FLT(scroll.maxVal)*FLT(pos)/FLT(maxPos + 1)) END END ELSE