fix string end handling - s[Length(s)] was broken
git-svn-id: http://code.remobjects.com/svn/pascalscript@144 5c9d2617-0215-0410-a2ee-e80e04d1c6d8
This commit is contained in:
parent
44f2182bf0
commit
b88b9dd56f
@ -8865,17 +8865,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
case temp.aType.BaseType of
|
case temp.aType.BaseType of
|
||||||
btWideString:
|
btWideString:
|
||||||
begin
|
|
||||||
I := Stack.GetInt(-3);
|
|
||||||
if (i<1) or (i>length(tbtUnicodeString(temp.Dta^))) then
|
|
||||||
begin
|
|
||||||
Caller.CMD_Err2(erCustomError, tbtString(RPS_OutOfStringRange));
|
|
||||||
Result := False;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
Stack.SetInt(-1,Ord(tbtUnicodeString(temp.Dta^)[i]));
|
|
||||||
end;
|
|
||||||
btUnicodeString:
|
|
||||||
begin
|
begin
|
||||||
I := Stack.GetInt(-3);
|
I := Stack.GetInt(-3);
|
||||||
if (i<1) or (i>length(tbtwidestring(temp.Dta^))) then
|
if (i<1) or (i>length(tbtwidestring(temp.Dta^))) then
|
||||||
@ -8886,6 +8875,17 @@ begin
|
|||||||
end;
|
end;
|
||||||
Stack.SetInt(-1,Ord(tbtwidestring(temp.Dta^)[i]));
|
Stack.SetInt(-1,Ord(tbtwidestring(temp.Dta^)[i]));
|
||||||
end;
|
end;
|
||||||
|
btUnicodeString:
|
||||||
|
begin
|
||||||
|
I := Stack.GetInt(-3);
|
||||||
|
if (i<1) or (i>length(tbtUnicodeString(temp.Dta^))) then
|
||||||
|
begin
|
||||||
|
Caller.CMD_Err2(erCustomError, tbtString(RPS_OutOfStringRange));
|
||||||
|
Result := False;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
Stack.SetInt(-1,Ord(tbtUnicodeString(temp.Dta^)[i]));
|
||||||
|
end;
|
||||||
|
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@ -8904,18 +8904,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
case temp.aType.BaseType of
|
case temp.aType.BaseType of
|
||||||
btWideString:
|
btWideString:
|
||||||
begin
|
|
||||||
I := Stack.GetInt(-2);
|
|
||||||
if (i<1) or (i>length(tbtunicodestring(temp.Dta^))) then
|
|
||||||
begin
|
|
||||||
Caller.CMD_Err2(erCustomError, tbtString(RPS_OutOfStringRange));
|
|
||||||
Result := True;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
tbtunicodestring(temp.Dta^)[i] := WideChar(Stack.GetInt(-1));
|
|
||||||
end;
|
|
||||||
|
|
||||||
btUnicodeString:
|
|
||||||
begin
|
begin
|
||||||
I := Stack.GetInt(-2);
|
I := Stack.GetInt(-2);
|
||||||
if (i<1) or (i>length(tbtWidestring(temp.Dta^))) then
|
if (i<1) or (i>length(tbtWidestring(temp.Dta^))) then
|
||||||
@ -8926,6 +8914,18 @@ begin
|
|||||||
end;
|
end;
|
||||||
tbtWidestring(temp.Dta^)[i] := WideChar(Stack.GetInt(-1));
|
tbtWidestring(temp.Dta^)[i] := WideChar(Stack.GetInt(-1));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
btUnicodeString:
|
||||||
|
begin
|
||||||
|
I := Stack.GetInt(-2);
|
||||||
|
if (i<1) or (i>length(tbtunicodestring(temp.Dta^))) then
|
||||||
|
begin
|
||||||
|
Caller.CMD_Err2(erCustomError, tbtString(RPS_OutOfStringRange));
|
||||||
|
Result := True;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
tbtunicodestring(temp.Dta^)[i] := WideChar(Stack.GetInt(-1));
|
||||||
|
end;
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
|
Loading…
Reference in New Issue
Block a user