mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 07:09:09 +02:00
* Fixed AnsiXXX string handling routines.
git-svn-id: trunk@10659 -
This commit is contained in:
parent
809d16257b
commit
18e663240a
@ -374,7 +374,7 @@ begin
|
|||||||
end
|
end
|
||||||
else begin
|
else begin
|
||||||
GetMem(Result, SizeOf(WideChar));
|
GetMem(Result, SizeOf(WideChar));
|
||||||
Inc(len);
|
Inc(len, 2);
|
||||||
Result^:=#0;
|
Result^:=#0;
|
||||||
end;
|
end;
|
||||||
break;
|
break;
|
||||||
|
@ -74,13 +74,13 @@ begin
|
|||||||
begin
|
begin
|
||||||
while True do begin
|
while True do begin
|
||||||
if strlen <> -1 then
|
if strlen <> -1 then
|
||||||
len:=(strlen + 1) div SizeOf(WideChar)
|
len:=strlen + 1
|
||||||
else
|
else
|
||||||
len:=WideToAnsiBuf(str, -1, nil, 0);
|
len:=WideToAnsiBuf(str, -1, nil, 0);
|
||||||
if len > 0 then
|
if len > 0 then
|
||||||
begin
|
begin
|
||||||
SetLength(Result, len - 1);
|
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
|
begin
|
||||||
strlen:=-1;
|
strlen:=-1;
|
||||||
continue;
|
continue;
|
||||||
@ -883,7 +883,7 @@ var
|
|||||||
begin
|
begin
|
||||||
ws1:=PCharToPWideChar(S1, MaxLen, @len1);
|
ws1:=PCharToPWideChar(S1, MaxLen, @len1);
|
||||||
ws2:=PCharToPWideChar(S2, MaxLen, @len2);
|
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(ws2);
|
||||||
FreeMem(ws1);
|
FreeMem(ws1);
|
||||||
end;
|
end;
|
||||||
@ -896,7 +896,7 @@ var
|
|||||||
begin
|
begin
|
||||||
ws1:=PCharToPWideChar(S1, MaxLen, @len1);
|
ws1:=PCharToPWideChar(S1, MaxLen, @len1);
|
||||||
ws2:=PCharToPWideChar(S2, MaxLen, @len2);
|
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(ws2);
|
||||||
FreeMem(ws1);
|
FreeMem(ws1);
|
||||||
end;
|
end;
|
||||||
@ -908,6 +908,7 @@ var
|
|||||||
len: longint;
|
len: longint;
|
||||||
begin
|
begin
|
||||||
buf:=PCharToPWideChar(Str, -1, @len);
|
buf:=PCharToPWideChar(Str, -1, @len);
|
||||||
|
len:=len div SizeOf(WideChar);
|
||||||
CharLowerBuff(buf, len);
|
CharLowerBuff(buf, len);
|
||||||
Result:=Str;
|
Result:=Str;
|
||||||
WideToAnsiBuf(buf, -1, Result, len + 1);
|
WideToAnsiBuf(buf, -1, Result, len + 1);
|
||||||
@ -921,6 +922,7 @@ var
|
|||||||
len: longint;
|
len: longint;
|
||||||
begin
|
begin
|
||||||
buf:=PCharToPWideChar(Str, -1, @len);
|
buf:=PCharToPWideChar(Str, -1, @len);
|
||||||
|
len:=len div SizeOf(WideChar);
|
||||||
CharUpperBuff(buf, len);
|
CharUpperBuff(buf, len);
|
||||||
Result:=Str;
|
Result:=Str;
|
||||||
WideToAnsiBuf(buf, -1, Result, len + 1);
|
WideToAnsiBuf(buf, -1, Result, len + 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user