cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b548a6396bb10f8de1c15dbe22c9b6e191b2b298

commit b548a6396bb10f8de1c15dbe22c9b6e191b2b298
Author: Benjamin Jacobs <[email protected]>
Date:   Mon Jun 6 11:14:55 2016 -0700

    ecore_signal.c: factoring out the platform test to improve readability.
    
    Turns out there is no PRI?SIGATOMIC in the C99 standard. Work around
    that by deducing the effective integer type by comparing the
    SIG_ATOMIC_MAX with integers *MAX.
    
    Signed-off-by: Cedric BAIL <[email protected]>
---
 src/lib/ecore/ecore_signal.c | 85 ++++++++++++++++----------------------------
 1 file changed, 30 insertions(+), 55 deletions(-)

diff --git a/src/lib/ecore/ecore_signal.c b/src/lib/ecore/ecore_signal.c
index 6cae0e4..795dab4 100644
--- a/src/lib/ecore/ecore_signal.c
+++ b/src/lib/ecore/ecore_signal.c
@@ -2,6 +2,8 @@
 # include <config.h>
 #endif
 
+#include <inttypes.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -78,6 +80,22 @@ static volatile siginfo_t sigterm_info[MAXSIGQ];
 static volatile siginfo_t sigpwr_info[MAXSIGQ];
 #endif
 
+#if defined(SIG_ATOMIC_MAX)
+# if SIG_ATOMIC_MAX == INT64_MAX
+/* Basically FreeBSD on 64bits */
+#  define PRIdSIGATOMIC PRId64
+# elif SIG_ATOMIC_MAX == UINT64_MAX
+#  define PRIdSIGATOMIC PRIu64
+# elif SIG_ATOMIC_MAX == UINT32_MAX
+#  define PRIdSIGATOMIC PRIu32
+# else
+/* everybody else seems to go for int */
+#  define PRIdSIGATOMIC PRId32
+# endif
+#else
+# define PRIdSIGATOMIC "d"
+#endif
+
 void
 _ecore_signal_shutdown(void)
 {
@@ -168,30 +186,22 @@ _ecore_signal_call(void)
 #endif
    sigprocmask(SIG_BLOCK, &newset, &oldset);
    if (sigchld_count > MAXSIGQ)
-#ifdef __FreeBSD__
-     WRN("%ld SIGCHLD in queue. max queue size %i. losing "
-         "siginfo for extra signals.", sigchld_count, MAXSIGQ);
-#else
-     WRN("%i SIGCHLD in queue. max queue size %i. losing "
+     WRN("%"PRIdSIGATOMIC" SIGCHLD in queue. max queue size %i. losing "
          "siginfo for extra signals.", sigchld_count, MAXSIGQ);
-#endif
    tot = sigchld_count + sigusr1_count + sigusr2_count +
      sighup_count + sigquit_count + sigint_count + sigterm_count
 #ifdef SIGPWR
      + sigpwr_count
 #endif
      ;
-   
+
    if (sig_count != tot)
      {
-#ifdef __FreeBSD__
-        ERR("sig_count (%ld) != actual totals (%i) ", sig_count, tot);
-#else
-        ERR("sig_count (%i) != actual totals (%i) ", sig_count, tot);
-#endif
+        ERR("sig_count (%"PRIdSIGATOMIC") != actual totals (%i) ",
+            sig_count, tot);
         sig_count = tot;
      }
-   
+
    for (n = 0; n < sigchld_count; n++)
      {
         pid_t pid;
@@ -267,13 +277,8 @@ _ecore_signal_call(void)
    sigchld_count = 0;
 
    if (sigusr1_count > MAXSIGQ)
-#ifdef __FreeBSD__
-     WRN("%ld SIGUSR1 in queue. max queue size %i. losing "
-         "siginfo for extra signals.", sigusr1_count, MAXSIGQ);
-#else
-     WRN("%i SIGUSR1 in queue. max queue size %i. losing "
+     WRN("%"PRIdSIGATOMIC" SIGUSR1 in queue. max queue size %i. losing "
          "siginfo for extra signals.", sigusr1_count, MAXSIGQ);
-#endif
    for (n = 0; n < sigusr1_count; n++)
      {
         Ecore_Event_Signal_User *e;
@@ -294,13 +299,8 @@ _ecore_signal_call(void)
    sigusr1_count = 0;
 
    if (sigusr2_count > MAXSIGQ)
-#ifdef __FreeBSD__
-     WRN("%ld SIGUSR2 in queue. max queue size %i. losing "
-         "siginfo for extra signals.", sigusr2_count, MAXSIGQ);
-#else
-     WRN("%i SIGUSR2 in queue. max queue size %i. losing "
+     WRN("%"PRIdSIGATOMIC" SIGUSR2 in queue. max queue size %i. losing "
          "siginfo for extra signals.", sigusr2_count, MAXSIGQ);
-#endif
    for (n = 0; n < sigusr2_count; n++)
      {
         Ecore_Event_Signal_User *e;
@@ -321,13 +321,8 @@ _ecore_signal_call(void)
    sigusr2_count = 0;
 
    if (sighup_count > MAXSIGQ)
-#ifdef __FreeBSD__
-     WRN("%ld SIGHUP in queue. max queue size %i. losing "
-         "siginfo for extra signals.", sighup_count, MAXSIGQ);
-#else
-     WRN("%i SIGHUP in queue. max queue size %i. losing "
+     WRN("%"PRIdSIGATOMIC" SIGHUP in queue. max queue size %i. losing "
          "siginfo for extra signals.", sighup_count, MAXSIGQ);
-#endif
    for (n = 0; n < sighup_count; n++)
      {
         Ecore_Event_Signal_Hup *e;
@@ -346,13 +341,8 @@ _ecore_signal_call(void)
    sighup_count = 0;
 
    if (sigquit_count > MAXSIGQ)
-#ifdef __FreeBSD__
-     WRN("%ld SIGQUIT in queue. max queue size %i. losing "
+     WRN("%"PRIdSIGATOMIC" SIGQUIT in queue. max queue size %i. losing "
          "siginfo for extra signals.", sigquit_count, MAXSIGQ);
-#else
-     WRN("%i SIGQUIT in queue. max queue size %i. losing "
-         "siginfo for extra signals.", sigquit_count, MAXSIGQ);
-#endif
    for (n = 0; n < sigquit_count; n++)
      {
         Ecore_Event_Signal_Exit *e;
@@ -373,13 +363,8 @@ _ecore_signal_call(void)
    sigquit_count = 0;
 
    if (sigint_count > MAXSIGQ)
-#ifdef __FreeBSD__
-     WRN("%ld SIGINT in queue. max queue size %i. losing "
-         "siginfo for extra signals.", sigint_count, MAXSIGQ);
-#else
-     WRN("%i SIGINT in queue. max queue size %i. losing "
+     WRN("%"PRIdSIGATOMIC" SIGINT in queue. max queue size %i. losing "
          "siginfo for extra signals.", sigint_count, MAXSIGQ);
-#endif
    for (n = 0; n < sigint_count; n++)
      {
         Ecore_Event_Signal_Exit *e;
@@ -400,13 +385,8 @@ _ecore_signal_call(void)
    sigint_count = 0;
 
    if (sigterm_count > MAXSIGQ)
-#ifdef __FreeBSD__
-     WRN("%ld SIGTERM in queue. max queue size %i. losing "
-         "siginfo for extra signals.", sigterm_count, MAXSIGQ);
-#else
-     WRN("%i SIGTERM in queue. max queue size %i. losing "
+     WRN("%"PRIdSIGATOMIC" SIGTERM in queue. max queue size %i. losing "
          "siginfo for extra signals.", sigterm_count, MAXSIGQ);
-#endif
    for (n = 0; n < sigterm_count; n++)
      {
         Ecore_Event_Signal_Exit *e;
@@ -428,13 +408,8 @@ _ecore_signal_call(void)
 
 #ifdef SIGPWR
    if (sigpwr_count > MAXSIGQ)
-#ifdef __FreeBSD__
-     WRN("%ld SIGPWR in queue. max queue size %i. losing "
-         "siginfo for extra signals.", sigpwr_count, MAXSIGQ);
-#else
-     WRN("%i SIGPWR in queue. max queue size %i. losing "
+     WRN("%"PRIdSIGATOMIC" SIGPWR in queue. max queue size %i. losing "
          "siginfo for extra signals.", sigpwr_count, MAXSIGQ);
-#endif
    for (n = 0; n < sigpwr_count; n++)
      {
         Ecore_Event_Signal_Power *e;

-- 


Reply via email to