doc: Correct statement about license of m4/*.m4 files.
[gnulib.git] / lib / unistr / u8-strnlen.c
blob88df261f3fbd29da97637991aee949651adf56f7
1 /* Determine bounded length of UTF-8 string.
2 Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc.
3 Written by Bruno Haible <bruno@clisp.org>, 2002.
5 This file is free software.
6 It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
7 You can redistribute it and/or modify it under either
8 - the terms of the GNU Lesser General Public License as published
9 by the Free Software Foundation, either version 3, or (at your
10 option) any later version, or
11 - the terms of the GNU General Public License as published by the
12 Free Software Foundation; either version 2, or (at your option)
13 any later version, or
14 - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
16 This file is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 Lesser General Public License and the GNU General Public License
20 for more details.
22 You should have received a copy of the GNU Lesser General Public
23 License and of the GNU General Public License along with this
24 program. If not, see <https://www.gnu.org/licenses/>. */
26 /* Ensure strnlen() gets declared. */
27 #ifndef _GNU_SOURCE
28 # define _GNU_SOURCE 1
29 #endif
31 #include <config.h>
33 /* Specification. */
34 #include "unistr.h"
36 #if __GLIBC__ >= 2 || defined __UCLIBC__
38 # include <string.h>
40 size_t
41 u8_strnlen (const uint8_t *s, size_t maxlen)
43 return strnlen ((const char *) s, maxlen);
46 #else
48 # define FUNC u8_strnlen
49 # define UNIT uint8_t
50 # include "u-strnlen.h"
52 #endif