Przeglądaj źródła

* fixed chdir/rmdir/mkdir(rawbytestring) on FPCRTL_FILESYSTEM_SINGLE_BYTE_API
when the passed in string has an encoding that is not a subset of
DefaultFileSystemCodePage

git-svn-id: branches/cpstrrtl@25139 -

Jonas Maebe 12 lat temu
rodzic
commit
197b949dfa
1 zmienionych plików z 13 dodań i 1 usunięć
  1. 13 1
      rtl/inc/system.inc

+ 13 - 1
rtl/inc/system.inc

@@ -1631,15 +1631,23 @@ Procedure MkDir(Const s: RawByteString);[IOCheck];
 Begin
   If (s='') or (InOutRes <> 0) then
    exit;
+{$ifdef FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
+  Do_mkdir(ToSingleByteFileSystemEncodedFileName(S));
+{$else FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
   Do_mkdir(S);
-End;
+{$endif}
+end;
 
 
 Procedure RmDir(Const s: RawByteString);[IOCheck];
 Begin
   If (s='') or (InOutRes <> 0) then
    exit;
+{$ifdef FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
+  Do_rmdir(ToSingleByteFileSystemEncodedFileName(S));
+{$else FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
   Do_rmdir(S);
+{$endif}
 End;
 
 
@@ -1647,7 +1655,11 @@ Procedure ChDir(Const s: RawByteString);[IOCheck];
 Begin
   If (s='') or (InOutRes <> 0) then
    exit;
+{$ifdef FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
+  Do_chdir(ToSingleByteFileSystemEncodedFileName(S));
+{$else FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
   Do_chdir(S);
+{$endif}
 End;