浏览代码

* fixed BeOS compilation (patch from Olivier Coursiere)

git-svn-id: trunk@9398 -
Jonas Maebe 17 年之前
父节点
当前提交
8b8ee03c32
共有 1 个文件被更改,包括 14 次插入0 次删除
  1. 14 0
      rtl/unix/cwstring.pp

+ 14 - 0
rtl/unix/cwstring.pp

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