summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_linker.c4
-rw-r--r--sys/libkern/index.c28
-rw-r--r--sys/libkern/rindex.c32
-rw-r--r--sys/sys/libkern.h6
4 files changed, 48 insertions, 22 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index 9262e54..f8054ca 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -345,7 +345,7 @@ linker_make_file(const char* pathname, void* priv, struct linker_file_ops* ops)
int namelen;
const char *filename;
- filename = rindex(pathname, '/');
+ filename = c_rindex(pathname, '/');
if (filename && filename[1])
filename++;
else
@@ -993,7 +993,7 @@ linker_search_path(const char *name)
enum vtype type;
/* qualified at all? */
- if (index(name, '/'))
+ if (c_index(name, '/'))
return(linker_strdup(name));
/* traverse the linker path */
diff --git a/sys/libkern/index.c b/sys/libkern/index.c
index 6351223..b22341c 100644
--- a/sys/libkern/index.c
+++ b/sys/libkern/index.c
@@ -33,21 +33,33 @@
* $FreeBSD$
*/
-#include <string.h>
+#include <sys/param.h>
+#include <sys/libkern.h>
char *
-#ifdef STRCHR
-strchr(p, ch)
-#else
index(p, ch)
-#endif
- register const char *p, ch;
+ char *p;
+ int ch;
{
for (;; ++p) {
if (*p == ch)
- return((char *)p);
+ return(p);
if (!*p)
- return((char *)NULL);
+ return(NULL);
+ }
+ /* NOTREACHED */
+}
+
+const char *
+c_index(p, ch)
+ const char *p;
+ int ch;
+{
+ for (;; ++p) {
+ if (*p == ch)
+ return(p);
+ if (!*p)
+ return(NULL);
}
/* NOTREACHED */
}
diff --git a/sys/libkern/rindex.c b/sys/libkern/rindex.c
index f51abcc..b73031c 100644
--- a/sys/libkern/rindex.c
+++ b/sys/libkern/rindex.c
@@ -33,23 +33,35 @@
* $FreeBSD$
*/
-#include <stddef.h>
-#include <string.h>
+#include <sys/param.h>
+#include <sys/libkern.h>
char *
-#ifdef STRRCHR
-strrchr(p, ch)
-#else
rindex(p, ch)
-#endif
- register const char *p;
- register int ch;
+ char *p;
+ int ch;
{
- register char *save;
+ char *save;
for (save = NULL;; ++p) {
if (*p == ch)
- save = (char *)p;
+ save = p;
+ if (!*p)
+ return(save);
+ }
+ /* NOTREACHED */
+}
+
+const char *
+c_rindex(p, ch)
+ const char *p;
+ int ch;
+{
+ const char *save;
+
+ for (save = NULL;; ++p) {
+ if (*p == ch)
+ save = p;
if (!*p)
return(save);
}
diff --git a/sys/sys/libkern.h b/sys/sys/libkern.h
index 6f7c4ae..08deb16 100644
--- a/sys/sys/libkern.h
+++ b/sys/sys/libkern.h
@@ -72,8 +72,10 @@ int locc __P((int, char *, u_int));
void qsort __P((void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *)));
u_long random __P((void));
-char *index __P((const char *, int));
-char *rindex __P((const char *, int));
+char *index __P((char *, int));
+char *rindex __P((char *, int));
+const char *c_index __P((const char *, int));
+const char *c_rindex __P((const char *, int));
int scanc __P((u_int, const u_char *, const u_char *, int));
int skpc __P((int, int, char *));
void srandom __P((u_long));
OpenPOWER on IntegriCloud