gettimeofday: port recent C++ fix to Emacs
[gnulib.git] / m4 / isapipe.m4
index 1f06736..2c94aef 100644 (file)
@@ -1,6 +1,6 @@
 # Test whether a file descriptor is a pipe.
 
-dnl Copyright (C) 2006, 2009 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
 
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -11,9 +11,11 @@ dnl Written by Paul Eggert.
 AC_DEFUN([gl_ISAPIPE],
 [
   # OpenVMS has isapipe already, so check for it.
-  AC_REPLACE_FUNCS([isapipe])
-  if test $ac_cv_func_isapipe = no; then
-    gl_PREREQ_ISAPIPE
+  AC_CHECK_FUNCS([isapipe])
+  if test $ac_cv_func_isapipe = yes; then
+    HAVE_ISAPIPE=1
+  else
+    HAVE_ISAPIPE=0
   fi
 ])
 
@@ -24,50 +26,52 @@ AC_DEFUN([gl_PREREQ_ISAPIPE],
     [gl_cv_pipes_are_fifos],
     [AC_RUN_IFELSE(
        [AC_LANG_SOURCE(
-         [[#include <stdio.h>
-           #include <sys/types.h>
-           #include <sys/stat.h>
-           #include <unistd.h>
-           #ifndef S_ISFIFO
-            #define S_ISFIFO(m) 0
-           #endif
-           #ifndef S_ISSOCK
-            #define S_ISSOCK(m) 0
-           #endif
-           int
-           main (int argc, char **argv)
-           {
-             int fd[2];
-             struct stat st;
-             if (pipe (fd) != 0 || fstat (fd[0], &st) != 0)
-               return 1;
-             if (2 <= argc && argv[1][0] == '-')
-               {
-                 char const *yesno = (S_ISFIFO (st.st_mode) ? "yes" : "no");
-                 if (st.st_nlink <= 1)
-                   {
-                     long int i = st.st_nlink;
-                     if (i != st.st_nlink)
-                       return 1;
-                     printf ("%s (%ld)\n", yesno, i);
-                   }
-                 else
-                   {
-                     unsigned long int i = st.st_nlink;
-                     if (i != st.st_nlink)
-                       return 1;
-                     printf ("%s (%lu)\n", yesno, i);
-                   }
-               }
-             else
-               {
-                 if (! S_ISFIFO (st.st_mode) && ! S_ISSOCK (st.st_mode))
-                   return 1;
-               }
-             return 0;
-           }]])],
+          [[#include <stdio.h>
+            #include <sys/types.h>
+            #include <sys/stat.h>
+            #include <unistd.h>
+            #ifndef S_ISFIFO
+             #define S_ISFIFO(m) 0
+            #endif
+            #ifndef S_ISSOCK
+             #define S_ISSOCK(m) 0
+            #endif
+            int
+            main (int argc, char **argv)
+            {
+              int fd[2];
+              struct stat st;
+              if (pipe (fd) != 0)
+                return 1;
+              if (fstat (fd[0], &st) != 0)
+                return 2;
+              if (2 <= argc && argv[1][0] == '-')
+                {
+                  char const *yesno = (S_ISFIFO (st.st_mode) ? "yes" : "no");
+                  if (st.st_nlink <= 1)
+                    {
+                      long int i = st.st_nlink;
+                      if (i != st.st_nlink)
+                        return 3;
+                      printf ("%s (%ld)\n", yesno, i);
+                    }
+                  else
+                    {
+                      unsigned long int i = st.st_nlink;
+                      if (i != st.st_nlink)
+                        return 4;
+                      printf ("%s (%lu)\n", yesno, i);
+                    }
+                }
+              else
+                {
+                  if (! S_ISFIFO (st.st_mode) && ! S_ISSOCK (st.st_mode))
+                    return 5;
+                }
+              return 0;
+            }]])],
        [gl_cv_pipes_are_fifos=`./conftest$ac_exeext -`
-       test -z "$gl_cv_pipes_are_fifos" && gl_cv_pipes_are_fifos=no],
+        test -z "$gl_cv_pipes_are_fifos" && gl_cv_pipes_are_fifos=no],
        [gl_cv_pipes_are_fifos=unknown],
        [gl_cv_pipes_are_fifos=cross-compiling])])