about summary refs log tree commit diff
path: root/posix
diff options
context:
space:
mode:
Diffstat (limited to 'posix')
-rw-r--r--posix/Makefile2
-rw-r--r--posix/regex.c8
-rw-r--r--posix/unistd.h6
3 files changed, 11 insertions, 5 deletions
diff --git a/posix/Makefile b/posix/Makefile
index 5c3d9a0fb2..937dc04880 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -36,7 +36,7 @@ routines :=								      \
 	fork vfork _exit	      					      \
 	execve fexecve execv execle execl execvp execlp			      \
 	getpid getppid							      \
-	getuid geteuid getgid getegid getgroups setuid setgid		      \
+	getuid geteuid getgid getegid getgroups setuid setgid group_member    \
 	getpgid setpgid getpgrp setsid					      \
 	getlogin setlogin						      \
 	pathconf sysconf fpathconf					      \
diff --git a/posix/regex.c b/posix/regex.c
index 13c70faa4c..f1db89adf6 100644
--- a/posix/regex.c
+++ b/posix/regex.c
@@ -1159,7 +1159,7 @@ typedef struct
     /* Push the info, starting with the registers.  */			\
     DEBUG_PRINT1 ("\n");						\
 									\
-    if (!(RE_NO_POSIX_BACKTRACKING & bufp->syntax))			\
+    if (1)								\
       for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \
 	   this_reg++)							\
 	{								\
@@ -1220,7 +1220,7 @@ typedef struct
 
 /* We actually push this many items.  */
 #define NUM_FAILURE_ITEMS				\
-  (((RE_NO_POSIX_BACKTRACKING & bufp->syntax		\
+  (((0							\
      ? 0 : highest_active_reg - lowest_active_reg + 1)	\
     * NUM_REG_ITEMS)					\
    + NUM_NONREG_ITEMS)
@@ -1281,7 +1281,7 @@ typedef struct
   low_reg = (unsigned) POP_FAILURE_INT ();				\
   DEBUG_PRINT2 ("  Popping  low active reg: %d\n", low_reg);		\
 									\
-  if (!(RE_NO_POSIX_BACKTRACKING & bufp->syntax))			\
+  if (1)								\
     for (this_reg = high_reg; this_reg >= low_reg; this_reg--)		\
       {									\
 	DEBUG_PRINT2 ("    Popping reg: %d\n", this_reg);		\
@@ -1299,7 +1299,7 @@ typedef struct
     {									\
       for (this_reg = highest_active_reg; this_reg > high_reg; this_reg--) \
 	{								\
-	  reg_info[this_reg].word = 0;					\
+	  reg_info[this_reg].word.integer = 0;				\
 	  regend[this_reg] = 0;						\
 	  regstart[this_reg] = 0;					\
 	}								\
diff --git a/posix/unistd.h b/posix/unistd.h
index ffd83b2b1e..62c25fc09b 100644
--- a/posix/unistd.h
+++ b/posix/unistd.h
@@ -366,6 +366,12 @@ extern __gid_t getegid __P ((void));
 extern int __getgroups __P ((int __size, __gid_t __list[]));
 extern int getgroups __P ((int __size, __gid_t __list[]));
 
+#ifdef	__USE_GNU
+/* Return nonzero iff the calling process is in group GID.  */
+extern int __group_member __P ((__gid_t __gid));
+extern int group_member __P ((__gid_t __gid));
+#endif
+
 /* Set the user ID of the calling process to UID.
    If the calling process is the super-user, set the real
    and effective user IDs, and the saved set-user-ID to UID;