OSDN Git Service

* config/abi/pre/gnu.ver: Fix exports for string::pop_back.
[pf3gnuchains/gcc-fork.git] / libiberty / strstr.c
index fab36e3..60902ea 100644 (file)
@@ -3,24 +3,16 @@
 
 /*
 
-NAME
+@deftypefn Supplemental char* strstr (const char *@var{string}, const char *@var{sub})
 
-       strstr -- locate first occurance of a substring
+This function searches for the substring @var{sub} in the string
+@var{string}, not including the terminating null characters.  A pointer
+to the first occurrence of @var{sub} is returned, or @code{NULL} if the
+substring is absent.  If @var{sub} points to a string with zero
+length, the function returns @var{string}.
 
-SYNOPSIS
+@end deftypefn
 
-       #include <string.h>
-
-       char *strstr (char *s1, char *s2)
-
-DESCRIPTION
-
-       Locates the first occurance in the string pointed to by S1 of
-       the string pointed to by S2.  Returns a pointer to the substring
-       found, or a NULL pointer if not found.  If S2 points to a string
-       with zero length, the function returns S1.
-       
-BUGS
 
 */
 
@@ -28,24 +20,22 @@ BUGS
 /* FIXME:  The above description is ANSI compiliant.  This routine has not
    been validated to comply with it.  -fnf */
 
+#include <stddef.h>
+
+extern char *strchr (const char *, int);
+extern int strncmp (const void *, const void *, size_t);
+extern size_t strlen (const char *);
+
 char *
-strstr (s1, s2)
-  char *s1, *s2;
+strstr (const char *s1, const char *s2)
 {
-  register char *p = s1;
-  extern char *strchr ();
-  extern int strncmp ();
-#if __GNUC__==2
-  extern __SIZE_TYPE__ strlen ();
-#endif
-  register int len = strlen (s2);
+  const char *p = s1;
+  const size_t len = strlen (s2);
 
   for (; (p = strchr (p, *s2)) != 0; p++)
     {
       if (strncmp (p, s2, len) == 0)
-       {
-         return (p);
-       }
+       return (char *)p;
     }
   return (0);
 }