1
{ Source provided for Free Pascal Bug Report 2300 }
2
{ Submitted by "Sergey Kosarevsky" on 2002-12-30 }
3
{ e-mail: netsurfer@au.ru }
6
Const LONG_STR_SIZE=4096;
8
LStr:Array[1..LONG_STR_SIZE] Of Char;
11
Operator := (S:String) R:tLongStr;
12
Operator := (S:tLongStr) R:pChar;
13
Operator + (S1:tLongStr;S2:String) R:tLongStr;
14
Operator + (S1:String;S2:tLongStr) R:tLongStr;
15
Operator + (S1:tLongStr;S2:pChar ) R:tLongStr;
17
Operator := (S:String) R:tLongStr;
20
Move(S[1],R.LStr[1],Length(S));
22
Operator := (S:tLongStr) R:pChar;
24
S.LStr[S.LLength+1]:=#0;
25
R:=pChar(@(S.LStr[1]));
27
Operator + (S1:tLongStr;S2:String) R:tLongStr;
29
R.LLength:=S1.LLength+Length(S2);
30
Move(S1.LStr[1],R.LStr[1],S1.LLength);
31
Move(S2[1],R.LStr[S1.LLength+1],Length(S2));
33
Operator + (S1:String;S2:tLongStr) R:tLongStr;
35
R.LLength:=Length(S1)+S2.LLength;
36
Move(S1[1],R.LStr[1],Length(S1));
37
Move(S2.LStr[1],R.LStr[Length(S1)+1],S2.LLength);
39
Operator + (S1:tLongStr;S2:pChar) R:tLongStr;
41
R.LLength:=S1.LLength+StrLen(S2);
42
Move(S1.LStr[1],R.LStr[1],S1.LLength);
43
Move(S2^,R.LStr[S1.LLength+1],StrLen(S2));