mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-06 11:19:47 +00:00
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.
This commit is contained in:
parent
1e6f0ac436
commit
24f3024f36
13
src/posix.h
13
src/posix.h
@ -89,18 +89,7 @@ extern struct tm * p_gmtime_r (const time_t *timer, struct tm *result);
|
||||
# include "unix/posix.h"
|
||||
#endif
|
||||
|
||||
#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
|
||||
#include "strnlen.h"
|
||||
|
||||
#ifdef NO_READDIR_R
|
||||
# include <dirent.h>
|
||||
|
23
src/strnlen.h
Normal file
23
src/strnlen.h
Normal file
@ -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
|
@ -7,8 +7,8 @@
|
||||
#ifndef INCLUDE_util_h__
|
||||
#define INCLUDE_util_h__
|
||||
|
||||
#include "posix.h"
|
||||
#include "common.h"
|
||||
#include "strnlen.h"
|
||||
|
||||
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
||||
#define bitsizeof(x) (CHAR_BIT * sizeof(x))
|
||||
|
Loading…
Reference in New Issue
Block a user