This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v3 1/2] Import strnstr.c from FreeBSD.


This caused a conflict with the iconv support.  See attached patch.
From 754f598a0a0dbde072a5baa3d4c3374333326c76 Mon Sep 17 00:00:00 2001
From: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date: Fri, 25 Aug 2017 19:48:42 +0200
Subject: [PATCH] Fix compile error due to new strnstr()

Remove local strnstr() implementation to fix compile error:

newlib/libc/iconv/lib/aliasesi.c:53:8: error: conflicting types for 'strnstr'
 _DEFUN(strnstr, (haystack, needle, length),
        ^
In file included from newlib/libc/iconv/lib/aliasesi.c:29:0:
newlib/libc/include/string.h:125:10:
note: previous declaration of 'strnstr' was here
 char    *strnstr(const char *, const char *, size_t) __pure;
          ^~~~~~~

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
---
 newlib/libc/iconv/lib/aliasesi.c | 43 ----------------------------------------
 1 file changed, 43 deletions(-)

diff --git a/newlib/libc/iconv/lib/aliasesi.c b/newlib/libc/iconv/lib/aliasesi.c
index f94ac8f..41497c6 100644
--- a/newlib/libc/iconv/lib/aliasesi.c
+++ b/newlib/libc/iconv/lib/aliasesi.c
@@ -34,49 +34,6 @@
 #include "local.h"
 
 /*
- * strnstr - locate a substring in a fixed-size string.
- *
- * PARAMETERS:
- *   _CONST char *haystack - the string in which to search.
- *   _CONST char *needle   - the string which to search.
- *   int length            - the maximum 'haystack' string length.
- *
- * DESCRIPTION:
- *   The  strstr() function finds the first occurrence of the substring 
- *   'needle' in the string 'haystack'. At most 'length' bytes are searched.
- *
- * RETURN:
- *   Returns a pointer to the beginning of substring, or NULL if substring
- *   was not found.
- */
-static char *
-_DEFUN(strnstr, (haystack, needle, length),
-                _CONST char *haystack _AND
-                _CONST char *needle   _AND
-                int length)
-{
-  _CONST char *max = haystack + length;
-
-  if (*haystack == '\0')
-    return *needle == '\0' ? (char *)haystack : (char *)NULL;
-
-  while (haystack < max)
-    {
-      int i = 0;
-      while (1)
-        {
-          if (needle[i] == '\0')
-            return (char *)haystack;
-          if (needle[i] != haystack[i])
-            break;
-          i += 1;
-        }
-      haystack += 1;
-    }
-  return (char *)NULL;
-}
-
-/*
  * canonical_form - canonize 'str'.
  *
  * PARAMETERS:
-- 
1.8.1.4


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