* Fixed AnsiXXX string handling routines.

git-svn-id: trunk@10659 -
This commit is contained in:
yury 2008-04-13 20:59:11 +00:00
parent 809d16257b
commit 18e663240a
2 changed files with 7 additions and 5 deletions

View File

@ -374,7 +374,7 @@ begin
end
else begin
GetMem(Result, SizeOf(WideChar));
Inc(len);
Inc(len, 2);
Result^:=#0;
end;
break;

View File

@ -74,13 +74,13 @@ begin
begin
while True do begin
if strlen <> -1 then
len:=(strlen + 1) div SizeOf(WideChar)
len:=strlen + 1
else
len:=WideToAnsiBuf(str, -1, nil, 0);
if len > 0 then
begin
SetLength(Result, len - 1);
if (WideToAnsiBuf(str, -1, @Result[1], len) = 0) and (strlen <> -1) then
if (WideToAnsiBuf(str, strlen, @Result[1], len) = 0) and (strlen <> -1) then
begin
strlen:=-1;
continue;
@ -883,7 +883,7 @@ var
begin
ws1:=PCharToPWideChar(S1, MaxLen, @len1);
ws2:=PCharToPWideChar(S2, MaxLen, @len2);
Result:=CompareString(LOCALE_USER_DEFAULT, 0, ws1, len1, ws2, len2) - 2;
Result:=CompareString(LOCALE_USER_DEFAULT, 0, ws1, len1 div SizeOf(WideChar), ws2, len2 div SizeOf(WideChar)) - 2;
FreeMem(ws2);
FreeMem(ws1);
end;
@ -896,7 +896,7 @@ var
begin
ws1:=PCharToPWideChar(S1, MaxLen, @len1);
ws2:=PCharToPWideChar(S2, MaxLen, @len2);
Result:=CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, ws1, len1, ws2, len2) - 2;
Result:=CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, ws1, len1 div SizeOf(WideChar), ws2, len2 div SizeOf(WideChar)) - 2;
FreeMem(ws2);
FreeMem(ws1);
end;
@ -908,6 +908,7 @@ var
len: longint;
begin
buf:=PCharToPWideChar(Str, -1, @len);
len:=len div SizeOf(WideChar);
CharLowerBuff(buf, len);
Result:=Str;
WideToAnsiBuf(buf, -1, Result, len + 1);
@ -921,6 +922,7 @@ var
len: longint;
begin
buf:=PCharToPWideChar(Str, -1, @len);
len:=len div SizeOf(WideChar);
CharUpperBuff(buf, len);
Result:=Str;
WideToAnsiBuf(buf, -1, Result, len + 1);