[hackers] [sbase] Import strcasestr() from musl and remove -D_GNU_SOURCE || sin

From: <git_AT_suckless.org>
Date: Fri, 21 Nov 2014 00:46:12 +0100

commit ce86a05f3639f78dcbe10c3e72634a7502d04607
Author: sin <sin_AT_2f30.org>
Date: Thu Nov 20 23:43:08 2014 +0000

    Import strcasestr() from musl and remove -D_GNU_SOURCE

diff --git a/Makefile b/Makefile
index c8086f7..100632d 100644
--- a/Makefile
+++ b/Makefile
_AT_@ -48,6 +48,7 @@ LIBUTILSRC =\
         libutil/sha1.c\
         libutil/sha256.c\
         libutil/sha512.c\
+ libutil/strcasestr.c\
         libutil/strlcat.c\
         libutil/strlcpy.c
 
diff --git a/config.mk b/config.mk
index fc608ee..a944970 100644
--- a/config.mk
+++ b/config.mk
_AT_@ -10,6 +10,6 @@ LD = $(CC)
 AR = ar
 RANLIB = ranlib
 
-CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE
+CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700
 CFLAGS = -std=c99 -Wall -pedantic
 LDFLAGS = -s
diff --git a/grep.c b/grep.c
index d74f2fc..1b89242 100644
--- a/grep.c
+++ b/grep.c
_AT_@ -3,7 +3,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <strings.h>
 #include <unistd.h>
 
 #include "queue.h"
diff --git a/libutil/strcasestr.c b/libutil/strcasestr.c
new file mode 100644
index 0000000..47ef412
--- /dev/null
+++ b/libutil/strcasestr.c
_AT_@ -0,0 +1,33 @@
+/*
+ * Copyright 2005-2014 Rich Felker, et al.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+#include <string.h>
+
+#include "../util.h"
+
+char *
+strcasestr(const char *h, const char *n)
+{
+ size_t l = strlen(n);
+ for (; *h; h++) if (!strncasecmp(h, n, l)) return (char *)h;
+ return 0;
+}
diff --git a/util.h b/util.h
index 2de6f3b..5fc2642 100644
--- a/util.h
+++ b/util.h
_AT_@ -33,6 +33,9 @@ void weprintf(const char *, ...);
 double estrtod(const char *);
 long estrtol(const char *, int);
 
+#undef strcasestr
+char *strcasestr(const char *, const char *);
+
 #undef strlcat
 size_t strlcat(char *, const char *, size_t);
 #undef strlcpy
Received on Fri Nov 21 2014 - 00:46:12 CET

This archive was generated by hypermail 2.3.0 : Fri Nov 21 2014 - 00:48:10 CET