mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 12:09:24 +02:00
* Fix bug ID #35345, allow tstrings.text to exceed 2Gb
git-svn-id: trunk@41852 -
This commit is contained in:
parent
22777fee94
commit
08d6b446f0
@ -663,8 +663,12 @@ type
|
|||||||
Function GetValueFromIndex(Index: Integer): string;
|
Function GetValueFromIndex(Index: Integer): string;
|
||||||
Procedure SetValueFromIndex(Index: Integer; const Value: string);
|
Procedure SetValueFromIndex(Index: Integer; const Value: string);
|
||||||
Procedure CheckSpecialChars;
|
Procedure CheckSpecialChars;
|
||||||
Class Function GetNextLine (Const Value : String; Var S : String; Var P : Integer) : Boolean;
|
Class Function GetNextLine (Const Value : String; Var S : String; Var P : SizeInt) : Boolean;
|
||||||
Function GetNextLinebreak (Const Value : String; Var S : String; Var P : Integer) : Boolean;
|
Function GetNextLinebreak (Const Value : String; Var S : String; Var P : SizeInt) : Boolean;
|
||||||
|
{$IF (SizeOf(Integer) < SizeOf(SizeInt)) }
|
||||||
|
class function GetNextLine(const Value: string; var S: string; var P: Integer) : Boolean; deprecated;
|
||||||
|
function GetNextLineBreak(const Value: string; var S: string; var P: Integer) : Boolean; deprecated;
|
||||||
|
{$IFEND}
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
@ -325,7 +325,7 @@ end;
|
|||||||
|
|
||||||
|
|
||||||
Procedure TStrings.SetDelimitedText(const AValue: string);
|
Procedure TStrings.SetDelimitedText(const AValue: string);
|
||||||
var i,j:integer;
|
var i,j: SizeInt;
|
||||||
aNotFirst:boolean;
|
aNotFirst:boolean;
|
||||||
begin
|
begin
|
||||||
CheckSpecialChars;
|
CheckSpecialChars;
|
||||||
@ -542,7 +542,7 @@ end;
|
|||||||
Function TStrings.GetTextStr: string;
|
Function TStrings.GetTextStr: string;
|
||||||
|
|
||||||
Var P : Pchar;
|
Var P : Pchar;
|
||||||
I,L,NLS : Longint;
|
I,L,NLS : SizeInt;
|
||||||
S,NL : String;
|
S,NL : String;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -608,11 +608,11 @@ begin
|
|||||||
// Empty.
|
// Empty.
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Class Function TStrings.GetNextLine (Const Value : String; Var S : String; Var P : Integer) : Boolean;
|
Class Function TStrings.GetNextLine (Const Value : String; Var S : String; Var P : SizeInt) : Boolean;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
PS : PChar;
|
PS : PChar;
|
||||||
IP,L : Integer;
|
IP,L : SizeInt;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
L:=Length(Value);
|
L:=Length(Value);
|
||||||
@ -642,7 +642,7 @@ begin
|
|||||||
Result:=True;
|
Result:=True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Function TStrings.GetNextLineBreak (Const Value : String; Var S : String; Var P : Integer) : Boolean;
|
Function TStrings.GetNextLineBreak (Const Value : String; Var S : String; Var P : SizeInt) : Boolean;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
PS,PC,PP : PChar;
|
PS,PC,PP : PChar;
|
||||||
@ -663,11 +663,31 @@ begin
|
|||||||
Result:=True;
|
Result:=True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IF (SizeOf(Integer) < SizeOf(SizeInt)) }
|
||||||
|
class function TStrings.GetNextLine(const Value: string; var S: string; var P: Integer) : Boolean;
|
||||||
|
var
|
||||||
|
LP: SizeInt;
|
||||||
|
begin
|
||||||
|
LP := P;
|
||||||
|
Result := GetNextLine(Value, S, LP);
|
||||||
|
P := LP;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TStrings.GetNextLineBreak(const Value: string; var S: string; var P: Integer) : Boolean;
|
||||||
|
var
|
||||||
|
LP: SizeInt;
|
||||||
|
begin
|
||||||
|
LP := P;
|
||||||
|
Result := GetNextLineBreak(Value, S, LP);
|
||||||
|
P := LP;
|
||||||
|
end;
|
||||||
|
{$IFEND}
|
||||||
|
|
||||||
Procedure TStrings.DoSetTextStr(const Value: string; DoClear : Boolean);
|
Procedure TStrings.DoSetTextStr(const Value: string; DoClear : Boolean);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
S : String;
|
S : String;
|
||||||
P : Integer;
|
P : SizeInt;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Try
|
Try
|
||||||
@ -1037,7 +1057,7 @@ Var
|
|||||||
Buffer : AnsiString;
|
Buffer : AnsiString;
|
||||||
BytesRead,
|
BytesRead,
|
||||||
BufLen,
|
BufLen,
|
||||||
I,BufDelta : Longint;
|
I,BufDelta : SizeInt;
|
||||||
begin
|
begin
|
||||||
if not IgnoreEncoding then
|
if not IgnoreEncoding then
|
||||||
begin
|
begin
|
||||||
@ -1082,7 +1102,7 @@ Var
|
|||||||
T : string;
|
T : string;
|
||||||
BytesRead,
|
BytesRead,
|
||||||
BufLen,
|
BufLen,
|
||||||
I,BufDelta,
|
I,BufDelta: SizeInt;
|
||||||
PreambleLength : Longint;
|
PreambleLength : Longint;
|
||||||
begin
|
begin
|
||||||
// reread into a buffer
|
// reread into a buffer
|
||||||
|
Loading…
Reference in New Issue
Block a user