FPC_FULLVERSION >= 30200 breaks delphi 6 even inside an ifdef it shouldnt process
[lcore.git] / unixstuff.inc
old mode 100755 (executable)
new mode 100644 (file)
index 773656d..1a9a97b
     {$ifndef ver1_9_2}\r
       {$define flock     := fpflock}\r
       {$ifndef ver1_9_4}\r
-        procedure Execl(Todo:string);inline;\r
+        //beware: this is needed because FPC_FULLVERSION >= 30200 breaks delphi 6 even inside an ifdef it shouldn't process\r
+        {$ifdef fpc}\r
+          {$ifdef ver3}\r
+            {$ifndef ver3_0}{$ifndef ver3_1}{$define fpc_3_2_or_later}{$endif}{$endif}\r
+          {$endif}\r
+          {$ifdef ver4}{$define fpc_3_2_or_later}{$endif}\r
+        {$endif}\r
+        {$ifdef fpc_3_2_or_later}\r
+          procedure Execl(Todo:rawbytestring);inline;\r
+        {$else}\r
+          procedure Execl(Todo:string);inline;\r
+        {$endif}\r
        var\r
          p : ppchar;\r
        begin\r
-         p := unixutil.StringToPPChar(Todo,1);\r
+         p := unixutil.StringToPPChar(Todo,0);\r
          if (p=nil) or (p^=nil) then exit;\r
          fpexecv(p^,p);\r
        end;\r
         IPV6_V6ONLY         = 26;\r
     {$endif}\r
   {$endif}\r
+  {$ifdef freebsd}\r
+    //freepascal doesn't seem to define IPV6_V6ONLY on freebsd, the definition\r
+    //here is taken from the include files of a freebsd 8 system\r
+    const\r
+      IPV6_V6ONLY = 27;\r
+  {$endif}\r
+\r
 {$endif}\r
-    
\ No newline at end of file
+\r
+    \r