Initial work on porting lcore to delphi 2010
[lcore.git] / lcore.pas
index bb9eb8d606537ee4a8caf0fbd300105515e363c8..d0fc5686a88848574676f7d36972a598b734e57b 100755 (executable)
--- a/lcore.pas
+++ b/lcore.pas
@@ -48,6 +48,19 @@ interface
     absoloutemaxs:integer=0;\r
 \r
   type\r
+    {$IF CompilerVersion >= 20.0}\r
+      { Delphi 2009/2010 widestring is the default string type }\r
+      thostname = ansistring;\r
+      tbufferstring = ansistring;\r
+      tipstring = ansistring;\r
+    {$else}\r
+      { Old pre-unicode delphi, todo: need to check if ansistring is available\r
+        in all older versions of delphi }\r
+      thostname = string;\r
+      tbufferstring = string;\r
+      tipstring = string;\r
+    {$ifend}\r
+\r
     {$ifdef ver1_0}\r
       sigset= array[0..31] of longint;\r
     {$endif}\r
@@ -106,7 +119,7 @@ interface
       lasterror:integer;\r
       destroying:boolean;\r
       recvbufsize:integer;\r
-      function receivestr:string; virtual;\r
+      function receivestr:tbufferstring; virtual;\r
       procedure close;\r
       procedure abort;\r
       procedure internalclose(error:word); virtual;\r
@@ -119,8 +132,8 @@ interface
       procedure dup(invalue:longint);\r
 \r
       function sendflush : integer;\r
-      procedure sendstr(const str : string);virtual;\r
-      procedure putstringinsendbuffer(const newstring : string);\r
+      procedure sendstr(const str : tbufferstring);virtual;\r
+      procedure putstringinsendbuffer(const newstring : tbufferstring);\r
       function send(data:pointer;len:integer):integer;virtual;\r
       procedure putdatainsendbuffer(data:pointer;len:integer); virtual;\r
       procedure deletebuffereddata;\r
@@ -442,13 +455,13 @@ begin
   end;\r
 end;\r
 \r
-procedure tlasio.sendstr(const str : string);\r
+procedure tlasio.sendstr(const str : tbufferstring);\r
 begin\r
   putstringinsendbuffer(str);\r
   sendflush;\r
 end;\r
 \r
-procedure tlasio.putstringinsendbuffer(const newstring : string);\r
+procedure tlasio.putstringinsendbuffer(const newstring : tbufferstring);\r
 begin\r
   if newstring <> '' then putdatainsendbuffer(@newstring[1],length(newstring));\r
 end;\r