[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: mbspcasecmp comment bug
From: |
Bruno Haible |
Subject: |
Re: mbspcasecmp comment bug |
Date: |
Wed, 28 Jul 2010 00:55:16 +0200 |
User-agent: |
KMail/1.9.9 |
Hi Eric,
> I just noticed that the comments for mbspcasecmp are wrong:
>
> /* Compare the initial segment of the character string STRING consisting of
> at most mbslen (PREFIX) characters with the character string PREFIX,
> ignoring case, returning less than, equal to or greater than zero if this
> initial segment is lexicographically less than, equal to or greater than
> PREFIX.
> Note: This function may, in multibyte locales, return 0 if STRING is of
> smaller length than PREFIX! */
> char *
> mbspcasecmp (const char *string, const char *prefix)
>
> If I'm reading the code currectly, the actual result is NULL if no
> match, or a pointer into string corresponding to the next byte after the
> end of matched prefix.
You're right, of course. Fixed as follows:
2010-07-27 Bruno Haible <address@hidden>
mbspcasecmp: Fix function specification.
* lib/string.in.h (mbspcasecmp): Fix specification comment.
* lib/mbspcasecmp.c (mbspcasecmp): Likewise.
Reported by Eric Blake <address@hidden>.
--- lib/string.in.h.orig Wed Jul 28 00:50:02 2010
+++ lib/string.in.h Wed Jul 28 00:48:26 2010
@@ -770,11 +770,10 @@
#if @GNULIB_MBSPCASECMP@
/* Compare the initial segment of the character string STRING consisting of
at most mbslen (PREFIX) characters with the character string PREFIX,
- ignoring case, returning less than, equal to or greater than zero if this
- initial segment is lexicographically less than, equal to or greater than
- PREFIX.
- Note: This function may, in multibyte locales, return 0 if STRING is of
- smaller length than PREFIX!
+ ignoring case. If the two match, return a pointer to the first byte
+ after this prefix in STRING. Otherwise, return NULL.
+ Note: This function may, in multibyte locales, return non-NULL if STRING
+ is of smaller length than PREFIX!
Unlike strncasecmp(), this function works correctly in multibyte
locales. */
_GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix)
--- lib/mbspcasecmp.c.orig Wed Jul 28 00:50:02 2010
+++ lib/mbspcasecmp.c Wed Jul 28 00:49:04 2010
@@ -1,5 +1,5 @@
/* Case-insensitive string comparison function.
- Copyright (C) 1998-1999, 2005-2010 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2008, 2010 Free Software Foundation, Inc.
Written by Bruno Haible <address@hidden>, 2007.
This program is free software: you can redistribute it and/or modify
@@ -28,11 +28,10 @@
/* Compare the initial segment of the character string STRING consisting of
at most mbslen (PREFIX) characters with the character string PREFIX,
- ignoring case, returning less than, equal to or greater than zero if this
- initial segment is lexicographically less than, equal to or greater than
- PREFIX.
- Note: This function may, in multibyte locales, return 0 if STRING is of
- smaller length than PREFIX! */
+ ignoring case. If the two match, return a pointer to the first byte
+ after this prefix in STRING. Otherwise, return NULL.
+ Note: This function may, in multibyte locales, return non-NULL if STRING
+ is of smaller length than PREFIX! */
char *
mbspcasecmp (const char *string, const char *prefix)
{