|
@@ -353,8 +353,10 @@ function LowerAnsiString(const s : AnsiString) : AnsiString;
|
|
{$endif beos}
|
|
{$endif beos}
|
|
wc : wchar_t;
|
|
wc : wchar_t;
|
|
begin
|
|
begin
|
|
|
|
+{$ifndef beos}
|
|
fillchar(ombstate,sizeof(ombstate),0);
|
|
fillchar(ombstate,sizeof(ombstate),0);
|
|
fillchar(nmbstate,sizeof(nmbstate),0);
|
|
fillchar(nmbstate,sizeof(nmbstate),0);
|
|
|
|
+{$endif beos}
|
|
slen:=length(s);
|
|
slen:=length(s);
|
|
SetLength(result,slen+10);
|
|
SetLength(result,slen+10);
|
|
i:=1;
|
|
i:=1;
|
|
@@ -414,12 +416,16 @@ function UpperAnsiString(const s : AnsiString) : AnsiString;
|
|
i, slen,
|
|
i, slen,
|
|
resindex : SizeInt;
|
|
resindex : SizeInt;
|
|
mblen : size_t;
|
|
mblen : size_t;
|
|
|
|
+{$ifndef beos}
|
|
ombstate,
|
|
ombstate,
|
|
nmbstate : mbstate_t;
|
|
nmbstate : mbstate_t;
|
|
|
|
+{$endif beos}
|
|
wc : wchar_t;
|
|
wc : wchar_t;
|
|
begin
|
|
begin
|
|
|
|
+{$ifndef beos}
|
|
fillchar(ombstate,sizeof(ombstate),0);
|
|
fillchar(ombstate,sizeof(ombstate),0);
|
|
fillchar(nmbstate,sizeof(nmbstate),0);
|
|
fillchar(nmbstate,sizeof(nmbstate),0);
|
|
|
|
+{$endif beos}
|
|
slen:=length(s);
|
|
slen:=length(s);
|
|
SetLength(result,slen+10);
|
|
SetLength(result,slen+10);
|
|
i:=1;
|
|
i:=1;
|
|
@@ -433,7 +439,11 @@ function UpperAnsiString(const s : AnsiString) : AnsiString;
|
|
end
|
|
end
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
|
|
+{$ifndef beos}
|
|
mblen:=mbrtowc(@wc, pchar(@s[i]), slen-i+1, @ombstate);
|
|
mblen:=mbrtowc(@wc, pchar(@s[i]), slen-i+1, @ombstate);
|
|
|
|
+{$else not beos}
|
|
|
|
+ mblen:=mbtowc(@wc, pchar(@s[i]), slen-i+1);
|
|
|
|
+{$endif beos}
|
|
case mblen of
|
|
case mblen of
|
|
size_t(-2):
|
|
size_t(-2):
|
|
begin
|
|
begin
|
|
@@ -456,7 +466,11 @@ function UpperAnsiString(const s : AnsiString) : AnsiString;
|
|
{ even if mblen = 1, the uppercase version may have a }
|
|
{ even if mblen = 1, the uppercase version may have a }
|
|
{ different length }
|
|
{ different length }
|
|
{ We can't do anything special if wchar_t is 16 bit... }
|
|
{ We can't do anything special if wchar_t is 16 bit... }
|
|
|
|
+{$ifndef beos}
|
|
ConcatUTF32ToAnsiStr(towupper(wint_t(wc)),result,resindex,nmbstate);
|
|
ConcatUTF32ToAnsiStr(towupper(wint_t(wc)),result,resindex,nmbstate);
|
|
|
|
+{$else not beos}
|
|
|
|
+ ConcatUTF32ToAnsiStr(towupper(wint_t(wc)),result,resindex);
|
|
|
|
+{$endif not beos}
|
|
inc(i,mblen);
|
|
inc(i,mblen);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|