Browse Source

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@
OPENBSD_6_4 OPENBSD_6_4_BASE
martijn 5 years ago
parent
commit
085b73b968
4 changed files with 10 additions and 8 deletions
  1. +3
    -2
      src/lib/libc/string/strchr.3
  2. +2
    -2
      src/lib/libc/string/strchr.c
  3. +3
    -2
      src/lib/libc/string/strrchr.3
  4. +2
    -2
      src/lib/libc/string/strrchr.c

+ 3
- 2
src/lib/libc/string/strchr.3 View File

@ -1,4 +1,4 @@
.\" $OpenBSD: strchr.3,v 1.12 2015/11/24 09:14:35 daniel Exp $
.\" $OpenBSD: strchr.3,v 1.13 2018/10/01 06:37:37 martijn Exp $
.\"
.\" Copyright (c) 1990, 1991 The Regents of the University of California.
.\" All rights reserved.
@ -31,7 +31,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 24 2015 $
.Dd $Mdocdate: October 1 2018 $
.Dt STRCHR 3
.Os
.Sh NAME
@ -50,6 +50,7 @@ The
.Fn strchr
function locates the first occurrence of the character
.Fa c
.Pq converted to a char
in the string
.Fa s .
The terminating NUL character is considered part of the string.


+ 2
- 2
src/lib/libc/string/strchr.c View File

@ -1,4 +1,4 @@
/* $OpenBSD: strchr.c,v 1.3 2015/08/31 02:53:57 guenther Exp $ */
/* $OpenBSD: strchr.c,v 1.4 2018/10/01 06:37:37 martijn Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
@ -36,7 +36,7 @@ char *
strchr(const char *p, int ch)
{
for (;; ++p) {
if (*p == ch)
if (*p == (char) ch)
return((char *)p);
if (!*p)
return((char *)NULL);


+ 3
- 2
src/lib/libc/string/strrchr.3 View File

@ -1,4 +1,4 @@
.\" $OpenBSD: strrchr.3,v 1.11 2015/11/24 09:14:35 daniel Exp $
.\" $OpenBSD: strrchr.3,v 1.12 2018/10/01 06:37:37 martijn Exp $
.\"
.\" Copyright (c) 1990, 1991 The Regents of the University of California.
.\" All rights reserved.
@ -31,7 +31,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 24 2015 $
.Dd $Mdocdate: October 1 2018 $
.Dt STRRCHR 3
.Os
.Sh NAME
@ -50,6 +50,7 @@ The
.Fn strrchr
function locates the last occurrence of the character
.Fa c
.Pq converted to a char
in the string
.Fa s .
The terminating


+ 2
- 2
src/lib/libc/string/strrchr.c View File

@ -1,4 +1,4 @@
/* $OpenBSD: strrchr.c,v 1.3 2015/08/31 02:53:57 guenther Exp $ */
/* $OpenBSD: strrchr.c,v 1.4 2018/10/01 06:37:37 martijn Exp $ */
/*
* Copyright (c) 1988 Regents of the University of California.
* All rights reserved.
@ -38,7 +38,7 @@ strrchr(const char *p, int ch)
char *save;
for (save = NULL;; ++p) {
if (*p == ch)
if (*p == (char) ch)
save = (char *)p;
if (!*p)
return(save);


Loading…
Cancel
Save