aboutsummaryrefslogtreecommitdiff
path: root/wcsmbs/wcsnlen.c
diff options
context:
space:
mode:
Diffstat (limited to 'wcsmbs/wcsnlen.c')
-rw-r--r--wcsmbs/wcsnlen.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/wcsmbs/wcsnlen.c b/wcsmbs/wcsnlen.c
index 3cfbcca..94abf1e 100644
--- a/wcsmbs/wcsnlen.c
+++ b/wcsmbs/wcsnlen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -28,13 +28,16 @@ __wcsnlen (s, maxlen)
{
size_t len = 0;
- while (s[len] != L'\0' && maxlen > 0)
+ while (maxlen > 0 && s[len] != L'\0')
{
- if (s[++len] == L'\0' || --maxlen == 0)
+ ++len;
+ if (--maxlen == 0 || s[len] == L'\0')
return len;
- if (s[++len] == L'\0' || --maxlen == 0)
+ ++len;
+ if (--maxlen == 0 || s[len] == L'\0')
return len;
- if (s[++len] == L'\0' || --maxlen == 0)
+ ++len;
+ if (--maxlen == 0 || s[len] == L'\0')
return len;
++len;
--maxlen;