From 12939537431610aef9163a3266797cb7180f28c6 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Sun, 19 Oct 2008 19:06:19 +0000 Subject: [PATCH] * src/lib/errno.h: * src/lib/evil_errno.c: export errno symbol. * src/lib/evil_string.c: * src/lib/evil_string.h: add a (slow) implementation of ffs(). Needed for eina SVN revision: 36824 --- legacy/evil/ChangeLog | 10 ++++++++++ legacy/evil/src/lib/errno.h | 2 +- legacy/evil/src/lib/evil_errno.c | 3 +++ legacy/evil/src/lib/evil_string.c | 24 ++++++++++++++++++++++++ legacy/evil/src/lib/evil_string.h | 11 +++++++++++ 5 files changed, 49 insertions(+), 1 deletion(-) diff --git a/legacy/evil/ChangeLog b/legacy/evil/ChangeLog index 4aa84cf67a..d8049240d0 100644 --- a/legacy/evil/ChangeLog +++ b/legacy/evil/ChangeLog @@ -1,3 +1,13 @@ +2008-10-19 Vincent Torri + + * src/lib/errno.h: + * src/lib/evil_errno.c: + export errno symbol. + + * src/lib/evil_string.c: + * src/lib/evil_string.h: + add a (slow) implementation of ffs(). Needed for eina + 2008-10-16 Vincent Torri * configure.ac: diff --git a/legacy/evil/src/lib/errno.h b/legacy/evil/src/lib/errno.h index 390bf64fe4..5e8f3d7cbd 100644 --- a/legacy/evil/src/lib/errno.h +++ b/legacy/evil/src/lib/errno.h @@ -21,7 +21,7 @@ extern "C" { #endif -extern int errno; +extern EAPI int errno; /* Fake values */ #define E2BIG 1 diff --git a/legacy/evil/src/lib/evil_errno.c b/legacy/evil/src/lib/evil_errno.c index 2320f06fe2..9da0bb0d7c 100644 --- a/legacy/evil/src/lib/evil_errno.c +++ b/legacy/evil/src/lib/evil_errno.c @@ -1,7 +1,10 @@ #ifdef __MINGW32CE__ #include "Evil.h" +#include "errno.h" + int errno = 0; + #endif /* __MINGW32CE__ */ diff --git a/legacy/evil/src/lib/evil_string.c b/legacy/evil/src/lib/evil_string.c index 878a1c2de6..9ca134a7ef 100644 --- a/legacy/evil/src/lib/evil_string.c +++ b/legacy/evil/src/lib/evil_string.c @@ -19,3 +19,27 @@ char *strerror (int errnum) } #endif /* __MINGW32CE__ */ + + +#ifndef __CEGCC__ + +/* + * bit related functions + * + */ + +int ffs(int i) +{ + int size; + int x; + + if (!i) return 1; + + /* remove the sign bit */ + x = i & -i; + size = sizeof(int) << 3; + for (i = size; i > 0; --i, x << 1) + if (x & (1 << (size - 1))) return i; +} + +#endif /* ! __CEGCC__ */ diff --git a/legacy/evil/src/lib/evil_string.h b/legacy/evil/src/lib/evil_string.h index f6a52006cc..c5864cdb5b 100644 --- a/legacy/evil/src/lib/evil_string.h +++ b/legacy/evil/src/lib/evil_string.h @@ -13,5 +13,16 @@ EAPI char *strerror (int errnum); #endif /* __MINGW32CE__ */ +#ifndef __CEGCC__ + +/* + * bit related functions + * + */ + +EAPI int ffs(int i); + +#endif /* ! __CEGCC__ */ + #endif /* __EVIL_STRING_H__ */