nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 444f802d580a43bf1f38d2e27709b40860e83cc7
parent 1904f51fb5cb56e6b544fb1d8a4f37c8630d0050
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date:   Sun,  1 Jul 2007 21:46:00 +0000

in nstrncasecmp() and mbstrncasecmp(), for efficiency, return zero
immediately if s1 and s2 point to the same string


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4121 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

Diffstat:
MChangeLog | 5+++++
Msrc/chars.c | 6++++++
2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,8 @@ +2007-07-01 David Lawrence Ramsey <pooka109@gmail.com> + + * chars.c (nstrncasecmp, mbstrncasecmp): For efficiency, return + zero immediately if s1 and s2 point to the same string. + 2007-06-30 David Lawrence Ramsey <pooka109@gmail.com> * prompt.c (do_yesno_prompt): Remove redundant check for diff --git a/src/chars.c b/src/chars.c @@ -506,6 +506,9 @@ int mbstrcasecmp(const char *s1, const char *s2) /* This function is equivalent to strncasecmp(). */ int nstrncasecmp(const char *s1, const char *s2, size_t n) { + if (s1 == s2) + return 0; + assert(s1 != NULL && s2 != NULL); for (; *s1 != '\0' && *s2 != '\0' && n > 0; s1++, s2++, n--) { @@ -526,6 +529,9 @@ int mbstrncasecmp(const char *s1, const char *s2, size_t n) char *s1_mb, *s2_mb; wchar_t ws1, ws2; + if (s1 == s2) + return 0; + assert(s1 != NULL && s2 != NULL); s1_mb = charalloc(MB_CUR_MAX);