X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fsignal.c;h=4ff3d1ae4f49652fa7705486646b716f5af869d8;hb=414b512c0774e67ba8e160b605447d862d3be166;hp=eb94d9ce9b4955bbf8e56d160998ccb50682a547;hpb=2fd9701a4f902054649dde9143a3f77809afee8f;p=chise%2Fxemacs-chise.git.1 diff --git a/src/signal.c b/src/signal.c index eb94d9c..4ff3d1a 100644 --- a/src/signal.c +++ b/src/signal.c @@ -31,10 +31,7 @@ Boston, MA 02111-1307, USA. */ #include "syssignal.h" #include "systime.h" -#ifdef HAVE_UNISTD_H -#include -#endif -#include +#include "sysfile.h" /* Set to 1 when a quit-check signal (either a SIGIO interrupt or the asynch. timeout for poll-for-quit) occurs. The QUITP @@ -105,7 +102,7 @@ set_one_shot_timer (EMACS_TIME interval) struct itimerval it; it.it_value = interval; EMACS_SET_SECS_USECS (it.it_interval, 0, 0); - setitimer (ITIMER_REAL, &it, 0); + qxe_setitimer (ITIMER_REAL, &it, 0); #else int secs; EMACS_TIME_TO_INT (interval, secs); @@ -180,7 +177,7 @@ alarm_signal (int signo) it needs to stay the way it is. */ quit_check_signal_happened = 1; -#ifdef WINDOWSNT +#ifdef WIN32_NATIVE can_break_system_calls = 0; #else /* can_break_system_calls is set when we want to break out of @@ -330,6 +327,7 @@ handle_alarm_going_off (void) } #ifdef HAVE_SETITIMER + unsigned int alarm (unsigned int howlong) { @@ -343,12 +341,27 @@ alarm (unsigned int howlong) new_it.it_value.tv_usec = 0; new_it.it_interval.tv_sec = 0; new_it.it_interval.tv_usec = 0; - setitimer (ITIMER_REAL, &new_it, &old_it); + qxe_setitimer (ITIMER_REAL, &new_it, &old_it); /* Never return zero if there was a timer outstanding. */ return old_it.it_value.tv_sec + (old_it.it_value.tv_usec > 0 ? 1 : 0); } + +int +qxe_setitimer (int kind, const struct itimerval *itnew, + struct itimerval *itold) +{ +#if defined (WIN32_NATIVE) || defined (CYGWIN) + /* setitimer() does not exist on native MS Windows, and appears broken + on Cygwin. See win32.c. */ + return mswindows_setitimer (kind, itnew, itold); +#else + return setitimer (kind, itnew, itold); #endif +} + +#endif /* HAVE_SETITIMER */ + DEFUN ("waiting-for-user-input-p", Fwaiting_for_user_input_p, 0, 0, 0, /* Return non-nil if XEmacs is waiting for input from the user. @@ -426,7 +439,7 @@ interrupt_signal (int sig) c = getc (stdin); stdout_out ("Abort (and dump core)? (y or n) "); if (((c = getc (stdin)) & ~040) == 'Y') - abort (); + ABORT (); while (c != '\n') c = getc (stdin); stdout_out ("Continuing...\n");