diff --git a/configure.ac b/configure.ac index 22e27f6f..82f6fccd 100644 --- a/configure.ac +++ b/configure.ac @@ -72,7 +72,8 @@ AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t], , [AC_MSG_FAILURE([canno AC_FUNC_FORK AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK AC_FUNC_STRNLEN -AC_CHECK_FUNCS([atexit dup2 ftruncate getcwd gettimeofday localtime_r memchr memset mkdir rmdir setlocale socket strcasecmp strchr strdup strerror strncasecmp strndup strrchr strspn strstr strtol strtoul], , [AC_MSG_FAILURE([cannot find the $ac_func function, which i3 requires])]) +AC_CHECK_FUNCS([atexit dup2 ftruncate getcwd gettimeofday localtime_r memchr memset mkdir rmdir setlocale socket strcasecmp strchr strdup strerror strncasecmp strrchr strspn strstr strtol strtoul], , [AC_MSG_FAILURE([cannot find the $ac_func function, which i3 requires])]) +AC_REPLACE_FUNCS([mkdirp strndup]) # Checks for libraries. diff --git a/include/libi3.h b/include/libi3.h index 790baba9..15d1bc76 100644 --- a/include/libi3.h +++ b/include/libi3.h @@ -341,8 +341,7 @@ gchar *g_utf8_make_valid(const gchar *str, gssize len); */ uint32_t get_colorpixel(const char *hex) __attribute__((const)); -#if defined(__APPLE__) - +#ifndef HAVE_strndup /** * Taken from FreeBSD * Returns a pointer to a new string which is a duplicate of the @@ -350,7 +349,6 @@ uint32_t get_colorpixel(const char *hex) __attribute__((const)); * */ char *strndup(const char *str, size_t n); - #endif /** @@ -528,7 +526,7 @@ char *resolve_tilde(const char *path); */ char *get_config_path(const char *override_configpath, bool use_system_paths); -#if !defined(__sun) +#ifndef HAVE_mkdirp /** * Emulates mkdir -p (creates any missing folders) * diff --git a/libi3/mkdirp.c b/libi3/mkdirp.c index f5281bd7..35a30475 100644 --- a/libi3/mkdirp.c +++ b/libi3/mkdirp.c @@ -12,12 +12,11 @@ #include #include +#ifndef HAVE_mkdirp /* * Emulates mkdir -p (creates any missing folders) * */ - -#if !defined(__sun) int mkdirp(const char *path, mode_t mode) { if (mkdir(path, mode) == 0) return 0; diff --git a/libi3/strndup.c b/libi3/strndup.c index e17f843c..e215a76f 100644 --- a/libi3/strndup.c +++ b/libi3/strndup.c @@ -10,8 +10,7 @@ #include #include -#if defined(__APPLE__) - +#ifndef HAVE_strndup /* * Taken from FreeBSD * Returns a pointer to a new string which is a duplicate of the @@ -30,5 +29,4 @@ char *strndup(const char *str, size_t n) { copy[len] = '\0'; return (copy); } - #endif