=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/include/ca.h,v retrieving revision 1.96 retrieving revision 1.98 diff -u -p -r1.96 -r1.98 --- OpenXM_contrib2/asir2000/include/ca.h 2016/06/28 11:59:30 1.96 +++ OpenXM_contrib2/asir2000/include/ca.h 2017/01/08 03:05:40 1.98 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/include/ca.h,v 1.95 2016/03/31 01:40:11 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/include/ca.h,v 1.97 2016/08/24 05:33:58 ohara Exp $ */ #include #include @@ -786,8 +786,17 @@ typedef unsigned int ModNum; #define ALLOCA(d) MALLOC(d) #endif +/* for handling signals */ +#if defined(HAVE_SIGACTION) /* POSIX */ +void (*set_signal(int sig, void (*handler)(int)))(int); +#define set_signal_for_restart(x,y) (0) +#else +#define set_signal(x,y) (signal(x,y)) +#define set_signal_for_restart(x,y) (signal(x,y)) +#endif + /* for setjmp/longjmp compatibility */ -#if defined(__CYGWIN__) || (defined(__x86_64) && !defined(__MINGW32__)) +#if defined(__CYGWIN__) || defined(HAVE_SIGACTION) || (defined(__x86_64) && !defined(__MINGW32__)) #define JMP_BUF sigjmp_buf #define SETJMP(x) sigsetjmp(x,~0) #define LONGJMP(x,y) siglongjmp(x,y) @@ -1008,6 +1017,7 @@ PL(NM(q))=1,BD(NM(q))[0]=(unsigned int)(n),DN(q)=0,(q) #define UNIMQ(q) ((q)&&NUM(q)&&SFF(q)&&(CONT((MQ)q)==1)) #define MUNIQ(q) ((q)&&NUM(q)&&RATN(q)&&(SGN((Q)q)==-1)&&UNIN(NM((Q)q))&&(!DN((Q)q))) #define MUNIMQ(q) ((q)&&NUM(q)&&SFF(q)&&(CONT((MQ)q)==-1)) +#define UNILM(n) ((n)&&UNIN(BDY(n))) #define UNIN(n) ((n)&&(PL(n)==1)&&(BD(n)[0]==1)) #define EVENN(n) ((!(n))||(!(BD(n)[0]%2)))