Browse Source

fix issues with wait constants in stdlib.h

the W* namespace is not reserved, so the nonstandard ones must be
moved under extension features. also WNOHANG and WUNTRACED were
missing.
Rich Felker 12 năm trước cách đây
mục cha
commit
4eb4844b31
2 tập tin đã thay đổi với 5 bổ sung6 xóa
  1. 5 4
      include/stdlib.h
  2. 0 2
      include/sys/wait.h

+ 5 - 4
include/stdlib.h

@@ -86,16 +86,15 @@ size_t wcstombs (char *__restrict, const wchar_t *__restrict, size_t);
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
  || defined(_BSD_SOURCE)
 
-#ifndef WEXITSTATUS
+#define WNOHANG    1
+#define WUNTRACED  2
+
 #define WEXITSTATUS(s) (((s) & 0xff00) >> 8)
 #define WTERMSIG(s) ((s) & 0x7f)
 #define WSTOPSIG(s) WEXITSTATUS(s)
-#define WCOREDUMP(s) ((s) & 0x80)
 #define WIFEXITED(s) (!WTERMSIG(s))
 #define WIFSTOPPED(s) (((s) & 0xff) == 0x7f)
 #define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0)
-#define WIFCONTINUED(s) ((s) == 0xffff)
-#endif
 
 int posix_memalign (void **, size_t, size_t);
 int setenv (const char *, const char *, int);
@@ -142,6 +141,8 @@ void lcong48 (unsigned short [7]);
 char *mktemp (char *);
 void *valloc (size_t);
 void *memalign(size_t, size_t);
+#define WCOREDUMP(s) ((s) & 0x80)
+#define WIFCONTINUED(s) ((s) == 0xffff)
 #endif
 
 #ifdef _GNU_SOURCE

+ 0 - 2
include/sys/wait.h

@@ -37,7 +37,6 @@ pid_t wait4 (pid_t, int *, int, struct rusage *);
 #define P_PID  1
 #define P_PGID 2
 
-#ifndef WEXITSTATUS
 #define WEXITSTATUS(s) (((s) & 0xff00) >> 8)
 #define WTERMSIG(s) ((s) & 0x7f)
 #define WSTOPSIG(s) WEXITSTATUS(s)
@@ -46,7 +45,6 @@ pid_t wait4 (pid_t, int *, int, struct rusage *);
 #define WIFSTOPPED(s) (((s) & 0xff) == 0x7f)
 #define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0)
 #define WIFCONTINUED(s) ((s) == 0xffff)
-#endif
 
 #ifdef __cplusplus
 }