소스 검색

* made ToSingleByteFileSystemEncodedFileName(unicodestring) overridable by
target-specific code and implemented a JVM-compatible version

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

Jonas Maebe 12 년 전
부모
커밋
8a4b092ab9
2개의 변경된 파일10개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      rtl/inc/ustrings.inc
  2. 7 0
      rtl/java/justrings.inc

+ 3 - 0
rtl/inc/ustrings.inc

@@ -2286,11 +2286,14 @@ procedure initunicodestringmanager;
 {$endif FPC_HAS_BUILTIN_WIDESTR_MANAGER}
 {$endif FPC_HAS_BUILTIN_WIDESTR_MANAGER}
 
 
 
 
+{$ifndef FPC_HAS_TOSINGLEBYTEFILESYSTEMENCODEDFILENAME_UNICODESTRING}
+{$define FPC_HAS_TOSINGLEBYTEFILESYSTEMENCODEDFILENAME_UNICODESTRING}
 Function ToSingleByteFileSystemEncodedFileName(const Str: UnicodeString): RawByteString;
 Function ToSingleByteFileSystemEncodedFileName(const Str: UnicodeString): RawByteString;
 Begin
 Begin
   widestringmanager.Unicode2AnsiMoveProc(punicodechar(Str),Result,
   widestringmanager.Unicode2AnsiMoveProc(punicodechar(Str),Result,
     DefaultFileSystemCodePage,Length(Str));
     DefaultFileSystemCodePage,Length(Str));
 End;
 End;
+{$endif FPC_HAS_TOSINGLEBYTEFILESYSTEMENCODEDFILENAME_UNICODESTRING}
 
 
 
 
 Function ToSingleByteFileSystemEncodedFileName(const Str: RawByteString): RawByteString;
 Function ToSingleByteFileSystemEncodedFileName(const Str: RawByteString): RawByteString;

+ 7 - 0
rtl/java/justrings.inc

@@ -906,6 +906,13 @@ function StringCodePage(const S : UnicodeString): TSystemCodePage;
       result:=DefaultUnicodeCodePage;
       result:=DefaultUnicodeCodePage;
   end;
   end;
 
 
+{$define FPC_HAS_TOSINGLEBYTEFILESYSTEMENCODEDFILENAME_UNICODESTRING}
+Function ToSingleByteFileSystemEncodedFileName(const Str: UnicodeString): RawByteString;
+Begin
+  result:=AnsiString(AnsistringClass.Create(Str,DefaultFileSystemCodePage));
+End;
+
+
 
 
 { helpers for converting between Windows and Java code page identifiers }
 { helpers for converting between Windows and Java code page identifiers }