aboutsummaryrefslogtreecommitdiffhomepage
path: root/System
diff options
context:
space:
mode:
authorGravatar Erik de Castro Lopo <erikd@mega-nerd.com>2014-12-19 14:47:43 +1100
committerGravatar Herbert Valerio Riedel <hvr@gnu.org>2014-12-19 09:43:00 +0100
commit3c4ced48d5d82bc3042fdd058e684e87e7036166 (patch)
tree0bf272be6e33d38a3fc9381116430ffe2b2cefd7 /System
parent757bf44bb4895fc561a2e5dd2f602168478741ec (diff)
Fix SIGINFO and SIGWINCH.
It seems these two signals have not been working since at least 2009. Detection of these signals seems to have never been added to the configure.ac script and the code guarded by #ifdef then bit-rotted (the idiom used to handle these signals seems to have been abandoned for something simpler/better in 2009). This fix simply handles these signals the same way the other signals are handled in System/Posix/Signals.hsc. Closes #30 and #31
Diffstat (limited to 'System')
-rw-r--r--System/Posix/Signals/Exts.hsc51
1 files changed, 18 insertions, 33 deletions
diff --git a/System/Posix/Signals/Exts.hsc b/System/Posix/Signals/Exts.hsc
index a889340..95796a2 100644
--- a/System/Posix/Signals/Exts.hsc
+++ b/System/Posix/Signals/Exts.hsc
@@ -1,17 +1,14 @@
+{-# LANGUAGE CPP #-}
#ifdef __GLASGOW_HASKELL__
-#if defined(SIGINFO) || defined(SIGWINCH)
-{-# LANGUAGE Trustworthy #-}
-#else
{-# LANGUAGE Safe #-}
#endif
-#endif
-----------------------------------------------------------------------------
-- |
-- Module : System.Posix.Signals.Exts
-- Copyright : (c) The University of Glasgow 2002
-- License : BSD-style (see the file libraries/base/LICENSE)
---
+--
-- Maintainer : libraries@haskell.org
-- Stability : provisional
-- Portability : non-portable (requires POSIX, includes Linuxisms/BSDisms)
@@ -20,45 +17,33 @@
--
-----------------------------------------------------------------------------
-#include "HsUnix.h"
-
-module System.Posix.Signals.Exts (
- module System.Posix.Signals
+#include "HsUnixConfig.h"
+##include "HsUnixConfig.h"
-#ifdef SIGINFO
- , infoEvent, sigINFO
-#endif
-#ifdef SIGWINCH
- , windowChange, sigWINCH
+#ifdef HAVE_SIGNAL_H
+#include <signal.h>
#endif
+module System.Posix.Signals.Exts (
+ module System.Posix.Signals
+ , sigINFO
+ , sigWINCH
+ , infoEvent
+ , windowChange
) where
import Foreign.C
import System.Posix.Signals
-#ifdef __HUGS__
-# ifdef SIGINFO
-sigINFO = (#const SIGINFO) :: CInt
-# endif
-# ifdef SIGWINCH
-sigWINCH = (#const SIGWINCH) :: CInt
-# endif
-#else /* !HUGS */
-# ifdef SIGINFO
-foreign import ccall unsafe "__hsunix_SIGINFO" sigINFO :: CInt
-# endif
-# ifdef SIGWINCH
-foreign import ccall unsafe "__hsunix_SIGWINCH" sigWINCH :: CInt
-# endif
-#endif /* !HUGS */
+sigINFO :: CInt
+sigINFO = CONST_SIGINFO
+
+sigWINCH :: CInt
+sigWINCH = CONST_SIGWINCH
+
-#ifdef SIGINFO
infoEvent :: Signal
infoEvent = sigINFO
-#endif
-#ifdef SIGWINCH
windowChange :: Signal
windowChange = sigWINCH
-#endif