### Checks for library functions
AC_ISC_POSIX
AC_FUNC_ALLOCA
-AC_CHECK_FUNCS([strlcpy dirfd openat fstatat fpathconf execvp])
+AC_CHECK_FUNCS([strlcpy openat fstatat fpathconf execvp])
+
+AC_MSG_CHECKING([dirfd])
+AC_LINK_IFELSE([
+
+#include <dirent.h>
+
+DIR *dirp;
+
+int
+main(void)
+{
+ return dirfd(dirp);
+}
+], [ AC_MSG_RESULT([yes])
+ AC_DEFINE([HAVE_DIRFD], 1, [ Define to 1 if you have the `dirfd' function or macro. ])
+ ],
+ [ AC_MSG_RESULT([no])]
+)
# dlopen and dladdr
dlopen_libs=""
# ifdef _WIN32
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
-# elif defined (__SUNPRO_C) || defined(__GNU__)
+# elif defined (__sun) || defined(__GNU__)
# include <unistd.h>
# elif defined (__FreeBSD__) || defined (__OpenBSD__) || \
defined (__NetBSD__) || defined (__DragonFly__) || defined (__MacOSX__) || \
GetSystemInfo(&sysinfo);
return sysinfo.dwNumberOfProcessors;
-# elif defined (__SUNPRO_C) || defined(__GNU__)
+# elif defined (__sun) || defined(__GNU__)
/*
* _SC_NPROCESSORS_ONLN: number of processors that are online, that
is available when sysconf is called. The number
static int
_eina_magic_strings_find_cmp(const void *p1, const void *p2)
{
- Eina_Magic a = (Eina_Magic)p1;
+ Eina_Magic a = (Eina_Magic)(size_t)p1;
const Eina_Magic_String *b = p2;
return a - b->magic;
}
_eina_magic_strings_dirty = 0;
}
- ems = bsearch((void *)magic, _eina_magic_strings,
+ ems = bsearch((void *)(size_t)magic, _eina_magic_strings,
_eina_magic_strings_count, sizeof(Eina_Magic_String),
_eina_magic_strings_find_cmp);
if (ems)
_eina_simple_xml_whitespace_find(const char *itr, const char *itr_end)
{
for (; itr < itr_end; itr++)
- if (isspace(*itr)) break;
+ if (isspace((unsigned char)*itr)) break;
return itr;
}
_eina_simple_xml_whitespace_skip(const char *itr, const char *itr_end)
{
for (; itr < itr_end; itr++)
- if (!isspace(*itr)) break;
+ if (!isspace((unsigned char)*itr)) break;
return itr;
}
_eina_simple_xml_whitespace_unskip(const char *itr, const char *itr_start)
{
for (itr--; itr > itr_start; itr--)
- if (!isspace(*itr)) break;
+ if (!isspace((unsigned char)*itr)) break;
return itr + 1;
}
(!memcmp(itr + 2, "DOCTYPE",
sizeof("DOCTYPE") - 1)) &&
((itr[2 + sizeof("DOCTYPE") - 1] == '>') ||
- (isspace(itr[2 + sizeof("DOCTYPE") - 1]))))
+ (isspace((unsigned char)itr[2 + sizeof("DOCTYPE") - 1]))))
{
type = EINA_SIMPLE_XML_DOCTYPE;
toff = sizeof("!DOCTYPE") - 1;
for (; itr < itr_end; itr++)
{
- if (!isspace(*itr))
+ if (!isspace((unsigned char)*itr))
{
/* user skip tagname and already gave it the attributes */
if (*itr == '=')
key = p;
for (key_end = key; key_end < itr_end; key_end++)
- if ((*key_end == '=') || (isspace(*key_end))) break;
+ if ((*key_end == '=') || (isspace((unsigned char)*key_end))) break;
if (key_end == itr_end) return EINA_FALSE;
if (key_end == key) continue;
value++;
}
for (; value < itr_end; value++)
- if (!isspace(*value)) break;
+ if (!isspace((unsigned char)*value)) break;
if (value == itr_end) return EINA_FALSE;
if ((*value == '"') || (*value == '\''))
EAPI void
eina_strbuf_trim(Eina_Strbuf *buf)
{
- char *c = buf->buf;
+ unsigned char *c = buf->buf;
- while (buf->len > 0 && isspace(((unsigned char*)(buf->buf))[buf->len - 1]))
+ while (buf->len > 0 && isspace(c[buf->len - 1]))
buf->len--;
while (buf->len > 0 && isspace(*c))
{
EAPI void
eina_strbuf_ltrim(Eina_Strbuf *buf)
{
- char *c = buf->buf;
+ unsigned char *c = buf->buf;
while (buf->len > 0 && isspace(*c))
{