libc may define functions with the same names, but differing in prototype.
---
Anyone have any comments on this patch before I push it?

The motivating conflict is with strsep, which glibc declares as

        char *strsep(char **restrict, const char *restrict);

which is not compatible with the libutil declaration.

        char *strsep(char **, const char *);

 util.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/util.h b/util.h
index 6c0aba9..8d5004b 100644
--- a/util.h
+++ b/util.h
@@ -47,16 +47,20 @@ void weprintf(const char *, ...);
 double estrtod(const char *);
 
 #undef strcasestr
+#define strcasestr xstrcasestr
 char *strcasestr(const char *, const char *);
 
 #undef strlcat
+#define strlcat xstrlcat
 size_t strlcat(char *, const char *, size_t);
 size_t estrlcat(char *, const char *, size_t);
 #undef strlcpy
+#define strlcpy xstrlcpy
 size_t strlcpy(char *, const char *, size_t);
 size_t estrlcpy(char *, const char *, size_t);
 
 #undef strsep
+#define strsep xstrsep
 char *strsep(char **, const char *);
 
 /* regex */
@@ -76,10 +80,12 @@ mode_t parsemode(const char *, mode_t, mode_t);
 off_t parseoffset(const char *);
 void putword(FILE *, const char *);
 #undef strtonum
+#define strtonum xstrtonum
 long long strtonum(const char *, long long, long long, const char **);
 long long enstrtonum(int, const char *, long long, long long);
 long long estrtonum(const char *, long long, long long);
 size_t unescape(char *);
 int mkdirp(const char *, mode_t, mode_t);
 #undef memmem
+#define memmem xmemmem
 void *memmem(const void *, size_t, const void *, size_t);
-- 
2.20.1


Reply via email to