diff options
| author | Carlos Martín Nieto <cmn@dwim.me> | 2014-02-05 14:31:01 +0100 |
|---|---|---|
| committer | Carlos Martín Nieto <cmn@dwim.me> | 2014-02-05 14:34:15 +0100 |
| commit | 24f3024f36ca44ca8bb32e1a80a048ac4301eaf7 (patch) | |
| tree | 23f822b77f6bead622aa41ba201772c034ee164f /src/strnlen.h | |
| parent | 1e6f0ac4360bae25ef0a9618c9b091192b8e8997 (diff) | |
| download | libgit2-24f3024f36ca44ca8bb32e1a80a048ac4301eaf7.tar.gz | |
Split p_strlen into its own header
We need this from util.h and posix.h, but the latter includes common.h
which includes util.h, which means p_strlen is not defined by the time
we get to git__strndup().
Split the definition on p_strlen() off into its own header so we can use
it in util.h.
Diffstat (limited to 'src/strnlen.h')
| -rw-r--r-- | src/strnlen.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/strnlen.h b/src/strnlen.h new file mode 100644 index 000000000..007da2e55 --- /dev/null +++ b/src/strnlen.h @@ -0,0 +1,23 @@ +/* + * Copyright (C) the libgit2 contributors. All rights reserved. + * + * This file is part of libgit2, distributed under the GNU GPL v2 with + * a Linking Exception. For full terms see the included COPYING file. + */ +#ifndef INCLUDE_strlen_h__ +#define INCLUDE_strlen_h__ + +#if defined(__MINGW32__) || defined(__sun) || defined(__APPLE__) +# define NO_STRNLEN +#endif + +#ifdef NO_STRNLEN +GIT_INLINE(size_t) p_strnlen(const char *s, size_t maxlen) { + const char *end = memchr(s, 0, maxlen); + return end ? (size_t)(end - s) : maxlen; +} +#else +# define p_strnlen strnlen +#endif + +#endif |
