# HG changeset patch # User John W. Eaton # Date 1466160703 14400 # Node ID 70824a0dd009f4a3549f4bf5f4df2179f43cf055 # Parent 034b15e9c262bbc7ff8988b61a8ce40cf96ecb2f provide wrapper for kill * signal-wrappers.c, signal-wrappers.h (octave_kill_wrapper, octave_have_kill): New functions. * oct-syscalls.cc: Include signal-wrappers.h instead of signal.h. (octave::sys::kill): Use new wrapper functions. diff -r 034b15e9c262 -r 70824a0dd009 liboctave/system/oct-syscalls.cc --- a/liboctave/system/oct-syscalls.cc Fri Jun 17 06:41:08 2016 -0400 +++ b/liboctave/system/oct-syscalls.cc Fri Jun 17 06:51:43 2016 -0400 @@ -28,16 +28,12 @@ #include #include -// We can't use csignal as kill is not in the std namespace, and picky -// compiler runtimes will also exclude it from global scope as well. - -#include - #include "fcntl-wrappers.h" #include "lo-utils.h" #include "lo-sysdep.h" #include "oct-syscalls.h" #include "octave-popen2.h" +#include "signal-wrappers.h" #include "str-vec.h" #include "unistd-wrappers.h" #include "wait-wrappers.h" @@ -306,14 +302,15 @@ int status = -1; -#if defined (HAVE_KILL) - status = ::kill (pid, sig); + if (octave_have_kill ()) + { + status = octave_kill_wrapper (pid, sig); - if (status < 0) - msg = gnulib::strerror (errno); -#else - msg = NOT_SUPPORTED ("kill"); -#endif + if (status < 0) + msg = gnulib::strerror (errno); + } + else + msg = NOT_SUPPORTED ("kill"); return status; } diff -r 034b15e9c262 -r 70824a0dd009 liboctave/wrappers/signal-wrappers.c --- a/liboctave/wrappers/signal-wrappers.c Fri Jun 17 06:41:08 2016 -0400 +++ b/liboctave/wrappers/signal-wrappers.c Fri Jun 17 06:51:43 2016 -0400 @@ -35,8 +35,24 @@ #include "signal-wrappers.h" +int +octave_kill_wrapper (pid_t pid, int signum) +{ + return kill (pid, signum); +} + char * octave_strsignal_wrapper (int signum) { return strsignal (signum); } + +bool +octave_have_kill (void) +{ +#if defined (HAVE_KILL) + return true; +#else + return false; +#endif +} diff -r 034b15e9c262 -r 70824a0dd009 liboctave/wrappers/signal-wrappers.h --- a/liboctave/wrappers/signal-wrappers.h Fri Jun 17 06:41:08 2016 -0400 +++ b/liboctave/wrappers/signal-wrappers.h Fri Jun 17 06:51:43 2016 -0400 @@ -23,12 +23,22 @@ #if ! defined (octave_signal_wrappers_h) #define octave_signal_wrappers_h 1 +#include + +#if ! defined (__cplusplus) +# include +#endif + #if defined __cplusplus extern "C" { #endif +extern int octave_kill_wrapper (pid_t pid, int signum); + extern char *octave_strsignal_wrapper (int signum); +extern bool octave_have_kill (void); + #if defined __cplusplus } #endif