Mercurial > hg > octave-kai > gnulib-hg
annotate lib/mbsnlen.c @ 10780:5c7a68d31801
Add support for Haiku.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 10 Nov 2008 12:37:32 +0100 |
parents | bbbbbf4cd1c5 |
children | a0bbe1a6f787 |
rev | line source |
---|---|
8968 | 1 /* Counting the multibyte characters in a string. |
2 Copyright (C) 2007 Free Software Foundation, Inc. | |
3 Written by Bruno Haible <bruno@clisp.org>, 2007. | |
4 | |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
8968
diff
changeset
|
5 This program is free software: you can redistribute it and/or modify |
8968 | 6 it under the terms of the GNU General Public License as published by |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
8968
diff
changeset
|
7 the Free Software Foundation; either version 3 of the License, or |
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
8968
diff
changeset
|
8 (at your option) any later version. |
8968 | 9 |
10 This program is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 GNU General Public License for more details. | |
14 | |
15 You should have received a copy of the GNU General Public License | |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
8968
diff
changeset
|
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
8968 | 17 |
18 #include <config.h> | |
19 | |
20 /* Specification. */ | |
21 #include <string.h> | |
22 | |
23 #include <stdlib.h> | |
24 | |
25 #if HAVE_MBRTOWC | |
26 # include "mbiter.h" | |
27 #endif | |
28 | |
29 /* Return the number of multibyte characters in the character string starting | |
30 at STRING and ending at STRING + LEN. */ | |
31 size_t | |
32 mbsnlen (const char *string, size_t len) | |
33 { | |
34 #if HAVE_MBRTOWC | |
35 if (MB_CUR_MAX > 1) | |
36 { | |
37 size_t count; | |
38 mbi_iterator_t iter; | |
39 | |
40 count = 0; | |
41 for (mbi_init (iter, string, len); mbi_avail (iter); mbi_advance (iter)) | |
42 count++; | |
43 | |
44 return count; | |
45 } | |
46 else | |
47 #endif | |
48 return len; | |
49 } |