This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[PATCH] Fix strsep (take 2)


On Wed, Oct 03, 2001 at 05:04:35PM +0200, Jakub Jelinek wrote:
> Hi!
> 
> Recent bits/string2.h change broke strsep:
> The problem is that outside of _LIBC there is no __strsep prototype.

I take it back. __strsep_g@@GLIBC_2.1.1 was exported from glibc and suddenly
vanished, breaking binary compatibility.
IMHO we at least need to export __strsep_g from glibc, and doing so IMHO
completely removes the need for __strsep@@GLIBC_2.2.5.

2001-10-03  Jakub Jelinek  <jakub@redhat.com>

	* string/bits/string2.h (__strsep_g): Add prototype.
	(__strsep): Use it.
	* string/Versions (__strsep): Remove.
	* sysdeps/generic/strsep.c (__strsep_g): Add alias to __strsep.

--- libc/string/bits/string2.h.jj	Thu Sep 27 23:22:25 2001
+++ libc/string/bits/string2.h	Thu Sep 27 23:22:25 2001
@@ -1087,6 +1087,8 @@ __strtok_r_1c (char *__s, char __sep, ch
 
 #if !defined _HAVE_STRING_ARCH_strsep || defined _FORCE_INLINES
 # ifndef _HAVE_STRING_ARCH_strsep
+
+extern char *__strsep_g (char **__stringp, __const char *__delim);
 #  define __strsep(s, reject) \
   __extension__								      \
   ({ char __r0, __r1, __r2;						      \
@@ -1100,8 +1102,8 @@ __strtok_r_1c (char *__s, char __sep, ch
 	    ? __strsep_2c (s, __r0, __r1)				      \
 	    : (((__const char *) (reject))[3] == '\0'			      \
 	       ? __strsep_3c (s, __r0, __r1, __r2)			      \
-	       : __strsep (s, reject))))				      \
-      : __strsep (s, reject)); })
+	       : __strsep_g (s, reject))))				      \
+      : __strsep_g (s, reject)); })
 # endif
 
 __STRING_INLINE char *__strsep_1c (char **__s, char __reject);
--- libc/string/Versions.jj	Thu Sep 27 23:22:25 2001
+++ libc/string/Versions	Wed Oct  3 20:26:07 2001
@@ -73,7 +73,4 @@ libc {
     # m*
     memrchr;
   }
-  GLIBC_2.2.5 {
-    __strsep;
-  }
 }
--- libc/sysdeps/generic/strsep.c.jj	Thu Aug 23 18:49:38 2001
+++ libc/sysdeps/generic/strsep.c	Wed Oct  3 20:25:04 2001
@@ -66,3 +66,4 @@ __strsep (char **stringp, const char *de
   return begin;
 }
 weak_alias (__strsep, strsep)
+strong_alias (__strsep, __strsep_g)


	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]