Browse Source

+ Added WideStringManager

michael 22 years ago
parent
commit
51c296f60c
2 changed files with 37 additions and 6 deletions
  1. 17 1
      rtl/inc/systemh.inc
  2. 20 5
      rtl/inc/wstrings.inc

+ 17 - 1
rtl/inc/systemh.inc

@@ -527,6 +527,19 @@ function StringToWideChar(const Src : AnsiString;Dest : PWideChar;DestSize : Lon
 function WideCharLenToString(S : PWideChar;Len : LongInt) : AnsiString;
 procedure WideCharLenToStrVar(Src : PWideChar;Len : LongInt;var Dest : AnsiString);
 procedure WideCharToStrVar(S : PWideChar;var Dest : AnsiString);
+
+Type
+  TWide2AnsiMove=procedure(source:pwidechar;dest:pchar;len:longint);
+  TAnsi2WideMove=procedure(source:pchar;dest:pwidechar;len:longint);
+    
+  TWideStringManager = record   
+    Wide2AnsiMove : TWide2AnsiMove;
+    Ansi2WideMove : TAnsi2WideMove;
+  end;
+  
+Procedure GetWideStringManager (Var Manager : TWideStringManager);
+Procedure SetWideStringManager (Const New : TWideStringManager; Var Old: TWideStringManager);
+
 {$endif HASWIDESTRING}
 
 
@@ -699,7 +712,10 @@ const
 
 {
   $Log$
-  Revision 1.78  2003-11-15 19:01:27  florian
+  Revision 1.79  2003-11-28 20:36:13  michael
+  + Added WideStringManager
+
+  Revision 1.78  2003/11/15 19:01:27  florian
     * fixed rtl to work with the integrated fpc ppc assembler reader
 
   Revision 1.77  2003/11/03 09:42:28  marco

+ 20 - 5
rtl/inc/wstrings.inc

@@ -84,14 +84,26 @@ begin
    end;
 end;
 
-
-Type
-  TWide2AnsiMove=procedure(source:pwidechar;dest:pchar;len:longint);
-  TAnsi2WideMove=procedure(source:pchar;dest:pwidechar;len:longint);
 Const
   Wide2AnsiMoveProc:TWide2AnsiMove=@Wide2AnsiMove;
   Ansi2WideMoveProc:TAnsi2WideMove=@Ansi2WideMove;
 
+Procedure GetWideStringManager (Var Manager : TWideStringManager);
+
+begin
+  Manager.Wide2AnsiMove:=Wide2AnsiMoveProc;
+  Manager.Ansi2WideMove:=Ansi2WideMoveProc;
+end;
+
+
+Procedure SetWideStringManager (Const New : TWideStringManager; Var Old: TWideStringManager);
+
+begin
+  GetWideStringManager(Old);
+  Wide2AnsiMoveProc:=New.Wide2AnsiMove;
+  Ansi2WideMoveProc:=New.Ansi2WideMove;
+end;
+
 (*
 Procedure UniqueWideString(Var S : WideString); [Public,Alias : 'FPC_WIDESTR_UNIQUE'];
 {
@@ -993,7 +1005,10 @@ end;
 
 {
   $Log$
-  Revision 1.32  2003-11-05 15:33:51  florian
+  Revision 1.33  2003-11-28 20:36:13  michael
+  + Added WideStringManager
+
+  Revision 1.32  2003/11/05 15:33:51  florian
     * made Index* usage consistent with astrings.inc
 
   Revision 1.31  2003/06/17 19:24:08  jonas