X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fsignal.c;h=f85d83c0bdfa6847425541cea124a1ced1fbdf7e;hb=5378ab6d2bb24fd8d39025be1574d406cf91f141;hp=eb94d9ce9b4955bbf8e56d160998ccb50682a547;hpb=2fd9701a4f902054649dde9143a3f77809afee8f;p=chise%2Fxemacs-chise.git.1 diff --git a/src/signal.c b/src/signal.c index eb94d9c..f85d83c 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.