]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Added better detection of strlcpy that doesn't involve compiling a test program ...
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 15 May 2005 16:04:22 +0000 (16:04 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 15 May 2005 16:04:22 +0000 (16:04 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1390 e03df62e-2008-0410-955e-edbf42e46eb7

configure

index f02392c0de0949f33907cd8a2ecef19105867bbc..86a909b8ea9939f752559b6d64a378de510afc0f 100755 (executable)
--- a/configure
+++ b/configure
@@ -76,19 +76,21 @@ if (!$config{MAX_CLIENT}) {
 }
 
 # Perform the strlcpy() test..
-open(STRLCPY, ">.test.cpp");
-print STRLCPY "#include <string.h>
-#include <stdio.h>
-int main() { char a[10]; char b[10]; strlcpy(a,b,10); printf(\"%d\\n\",9); }\n";
-close(STRLCPY);
-
-# Build the Binary..
-system("g++ -o .test .test.cpp 2>&1");
-
-# Was the build succesful?
-if (-e ".test") {
-  $config{HAS_STRLCPY} = "true";
-  system("rm -f .test .test.cpp");
+$config{HAS_STRLCPY} = "false";
+my $fail = 0;
+open(STRLCPY, "</usr/include/string.h") or $fail = 1;
+if (!$fail)
+{
+       while (chomp($line = <STRLCPY>))
+       {
+               # try and find the delcaration of:
+               # size_t strlcpy(...)
+               if (($line =~ /size_t(\0x9|\s)+strlcpy(\0x9|\s)+\(/) || ($line =~ /size_t(\0x9|\s)+strlcpy\(/))
+               {
+                       $config{HAS_STRLCPY} = "true";
+               }
+       }
+       close(STRLCPY);
 }
 
 ################################################################################