瀏覽代碼

* provide possibility of reusing the routine from system WideStringManager for retrieval of current codepage on non-Windows and non-Unix

git-svn-id: trunk@29623 -
Tomas Hajny 10 年之前
父節點
當前提交
09e6069024
共有 1 個文件被更改,包括 14 次插入6 次删除
  1. 14 6
      rtl/objpas/fpwidestring.pp

+ 14 - 6
rtl/objpas/fpwidestring.pp

@@ -785,18 +785,26 @@ begin
   DefaultUnicodeCodePage:=CP_UTF16;
 {$ifdef MSWINDOWS}
   DefaultSystemCodePage:=GetACP();
-{$endif MSWINDOWS}
-{$ifdef UNIX}
+{$ELSE MSWINDOWS}
+ {$ifdef UNIX}
   DefaultSystemCodePage:=GetSystemCodepage;
   if (DefaultSystemCodePage = CP_NONE) then
     DefaultSystemCodePage:=CP_UTF8;
-{$ifdef FPCRTL_FILESYSTEM_UTF8}
+  {$ifdef FPCRTL_FILESYSTEM_UTF8}
   DefaultFileSystemCodePage:=CP_UTF8;
-{$else}
+  {$else}
   DefaultFileSystemCodePage:=DefaultSystemCodepage;
-{$endif}
+  {$endif}
   DefaultRTLFileSystemCodePage:=DefaultFileSystemCodePage;
-{$endif UNIX}
+ {$ELSE UNIX}
+  if Assigned (WideStringManager.GetStandardCodePageProc) then
+   DefaultSystemCodePage := WideStringManager.GetStandardCodePageProc (scpAnsi)
+  else
+   DefaultSystemCodePage := CP_NONE;
+  DefaultFileSystemCodePage := DefaultSystemCodePage;
+  DefaultRTLFileSystemCodePage := DefaultSystemCodePage;
+ {$endif UNIX}
+{$endif MSWINDOWS}
 end;