|
@@ -3020,26 +3020,7 @@ end; { TEditor.SetBufLen }
|
|
|
|
|
|
function TEditor.SetBufSize (NewSize : Sw_Word) : Boolean;
|
|
|
begin
|
|
|
- { This function is called on every new key typed on keyboard
|
|
|
- and NewSize is BufLen+1. That is bad idea.
|
|
|
- Fix: do not allow downsize Buffer,
|
|
|
- make incremental grow at last by 4k.
|
|
|
- }
|
|
|
- if NewSize > BufSize then
|
|
|
- begin
|
|
|
- if (NewSize+4096-1) and (not Sw_Word(4095)) > BufSize then
|
|
|
- begin
|
|
|
- {Buffer increment to 4k boundary}
|
|
|
- ReAllocMem(Buffer, (NewSize+4096-1) and (not Sw_Word(4095)) );
|
|
|
- BufSize := (NewSize+4096-1) and (not Sw_Word(4095));
|
|
|
- end else
|
|
|
- begin
|
|
|
- {branch is taken only if NewSize+4096 wrap around sw_word }
|
|
|
- ReAllocMem(Buffer, NewSize);
|
|
|
- BufSize := NewSize;
|
|
|
- end;
|
|
|
- end;
|
|
|
- SetBufSize := True;
|
|
|
+ if BufSize>=NewSize then SetBufSize:=true else SetBufSize:=false;
|
|
|
end; { TEditor.SetBufSize }
|
|
|
|
|
|
|