summaryrefslogtreecommitdiff
path: root/src/lib/libc/string/strchr.c
diff options
context:
space:
mode:
authormartijn <>2018-10-01 06:37:37 +0000
committermartijn <>2018-10-01 06:37:37 +0000
commita478d0a0a5b599e6c7df2af4128c98006f857b68 (patch)
treef2bcdd2ab9123a19374cfca26b5c2dd240033794 /src/lib/libc/string/strchr.c
parentd7320afd75964278f3f34b1191867cd0158a2e0f (diff)
downloadopenbsd-a478d0a0a5b599e6c7df2af4128c98006f857b68.tar.gz
openbsd-a478d0a0a5b599e6c7df2af4128c98006f857b68.tar.bz2
openbsd-a478d0a0a5b599e6c7df2af4128c98006f857b68.zip
As per POSIX, when str{,r}chr is comparing it should convert c to a char.
The C implementation of str{,r}chr are not linked to the build, because assembly implementations are used, but change to code for easier reference. At least the i386 and amd64 are checked and seem to do the correct thing. Found thanks to the csh any/strchr change. minor pointers and OK millert@
Diffstat (limited to 'src/lib/libc/string/strchr.c')
-rw-r--r--src/lib/libc/string/strchr.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/libc/string/strchr.c b/src/lib/libc/string/strchr.c
index b396b45b3b..8bfa7ac3aa 100644
--- a/src/lib/libc/string/strchr.c
+++ b/src/lib/libc/string/strchr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: strchr.c,v 1.3 2015/08/31 02:53:57 guenther Exp $ */ 1/* $OpenBSD: strchr.c,v 1.4 2018/10/01 06:37:37 martijn Exp $ */
2/*- 2/*-
3 * Copyright (c) 1990 The Regents of the University of California. 3 * Copyright (c) 1990 The Regents of the University of California.
4 * All rights reserved. 4 * All rights reserved.
@@ -36,7 +36,7 @@ char *
36strchr(const char *p, int ch) 36strchr(const char *p, int ch)
37{ 37{
38 for (;; ++p) { 38 for (;; ++p) {
39 if (*p == ch) 39 if (*p == (char) ch)
40 return((char *)p); 40 return((char *)p);
41 if (!*p) 41 if (!*p)
42 return((char *)NULL); 42 return((char *)NULL);