diff liboctave/lo-cutils.c @ 15221:a83b7b2f95ee

avoid C-style cast warnings from GCC for wait-related macros * lo-utils.h (octave_wait): New class. * lo-cutils.h, lo-cutils.c (octave_wifexited, octave_wexitstatus, octave_wifsignaled, octave_wtermsig, octave_wcoredump, octave_wifstopped, octave_wstopsig, octave_wifcontinued): New functions. * toplev.cc, pager.cc, syscalls.cc: Use octave_wait functions instead of WIFEXITED, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WCOREDUMP, WIFSTOPPED, WSTOPSIG, WIFCONTINUED macros.
author John W. Eaton <jwe@octave.org>
date Thu, 23 Aug 2012 12:18:08 -0400
parents 0ab3dd0fad18
children a0af93de0ba3
line wrap: on
line diff
--- a/liboctave/lo-cutils.c
+++ b/liboctave/lo-cutils.c
@@ -76,3 +76,115 @@
 {
   return WAITPID (pid, status, options);
 }
+
+OCTAVE_API int octave_wifexited (int status)
+{
+  int retval = 0;
+
+#if defined (WIFEXITED)
+  retval = WIFEXITED (status);
+#else
+  (*liboctave_warning_handler)
+    ("WIFEXITED always returns false in this version of Octave");
+#endif
+
+  return retval;
+}
+
+OCTAVE_API int octave_wexitstatus (int status)
+{
+  int retval = 0;
+
+#if defined (WEXITSTATUS)
+  retval = WEXITSTATUS (status);
+#else
+  (*liboctave_warning_handler)
+    ("WEXITSTATUS always returns 0 in this version of Octave");
+#endif
+
+  return retval;
+}
+
+OCTAVE_API int octave_wifsignaled (int status)
+{
+  int retval = 0;
+
+#if defined (WIFSIGNALED)
+  retval = WIFSIGNALED (status);
+#else
+  (*liboctave_warning_handler)
+    ("WIFSIGNALED always returns false in this version of Octave");
+#endif
+
+  return retval;
+}
+
+OCTAVE_API int octave_wtermsig (int status)
+{
+  int retval = 0;
+
+#if defined (WTERMSIG)
+  retval = WTERMSIG (status);
+#else
+  (*liboctave_warning_handler)
+    ("WTERMSIG always returns 0 in this version of Octave");
+#endif
+
+  return retval;
+}
+
+OCTAVE_API int octave_wcoredump (int status)
+{
+  int retval = 0;
+
+#if defined (WCOREDUMP)
+  retval = WCOREDUMP (status);
+#else
+  (*liboctave_warning_handler)
+    ("WCOREDUMP always returns false in this version of Octave");
+#endif
+
+  return retval;
+}
+
+OCTAVE_API int octave_wifstopped (int status)
+{
+  int retval = 0;
+
+#if defined (WIFSTOPPED)
+  retval = WIFSTOPPED (status);
+#else
+  (*liboctave_warning_handler)
+    ("WIFSTOPPED always returns false in this version of Octave");
+#endif
+
+  return retval;
+}
+
+OCTAVE_API int octave_wstopsig (int status)
+{
+  int retval = 0;
+
+#if defined (WSTOPSIG)
+  retval = WSTOPSIG (status);
+#else
+  (*liboctave_warning_handler)
+    ("WSTOPSIG always returns 0 in this version of Octave");
+#endif
+
+  return retval;
+}
+
+OCTAVE_API int octave_wifcontinued (int status)
+{
+  int retval = 0;
+
+#if defined (WIFCONTINUED)
+  retval = WIFCONTINUED (status);
+#else
+  (*liboctave_warning_handler)
+    ("WIFCONTINUED always returns false in this version of Octave");
+#endif
+
+  return retval;
+}