* fixed BeOS compilation (patch from Olivier Coursiere)

git-svn-id: trunk@9398 -
This commit is contained in:
Jonas Maebe 2007-12-06 08:08:17 +00:00
parent b363afcd0a
commit 8b8ee03c32

View File

@ -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;