Browse Source

* 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 years ago
parent
commit
197b949dfa
1 changed files with 13 additions and 1 deletions
  1. 13 1
      rtl/inc/system.inc

+ 13 - 1
rtl/inc/system.inc

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