* configure.ac:

* src/lib/dlfcn/dlfcn.h:
* src/lib/mman/sys/mman.h:
define EFL_EVIL_MMAN_BUILD and EFL_EVIL_DLFCN_BUILD so
that functions in Evil.h are not declared as import
* src/lib/evil.c: (setenv), (unsetenv), (realpath),
(evil_sockets_init), (evil_sockets_shutdown), (evil_pipe),
(evil_tmpdir_get), (evil_homedir_get):
rename pipe() to evil_pipe().
set tmpdir to "Temp" and homedir to "My Documents" on WinCE
* src/lib/Evil.h:
define pipe() as evil_pipe(). This allow to use our pipe()
implementation to be usedwith cegcc, as it is broken on that
platform.
move the defines at the end of the file


SVN revision: 34787
This commit is contained in:
doursse 2008-06-10 07:16:53 +00:00 committed by doursse
parent 98a11ae8cf
commit ef5ef75eab
6 changed files with 150 additions and 126 deletions

View File

@ -1,3 +1,23 @@
2008-06-10 Vincent Torri <doursse at users dot sf dot net>
* configure.ac:
* src/lib/dlfcn/dlfcn.h:
* src/lib/mman/sys/mman.h:
define EFL_EVIL_MMAN_BUILD and EFL_EVIL_DLFCN_BUILD so
that functions in Evil.h are not declared as import
* src/lib/evil.c: (setenv), (unsetenv), (realpath),
(evil_sockets_init), (evil_sockets_shutdown), (evil_pipe),
(evil_tmpdir_get), (evil_homedir_get):
rename pipe() to evil_pipe().
set tmpdir to "Temp" and homedir to "My Documents" on WinCE
* src/lib/Evil.h:
define pipe() as evil_pipe(). This allow to use our pipe()
implementation to be usedwith cegcc, as it is broken on that
platform.
move the defines at the end of the file
2008-06-09 Vincent Torri <doursse at users dot sf dot net>
* src/lib/Evil.h:

View File

@ -33,6 +33,8 @@ AC_SUBST(lt_enable_auto_import)
dnl needed for correct definition of EAPI
AC_DEFINE(EFL_EVIL_BUILD, 1, [Define to mention that evil is built])
AC_DEFINE(EFL_EVIL_MMAM_BUILD, 1, [Define to mention that evil is built])
AC_DEFINE(EFL_EVIL_DLFCN_BUILD, 1, [Define to mention that evil is built])
AM_INIT_AUTOMAKE(1.6 dist-bzip2)

View File

@ -286,25 +286,6 @@ EAPI int symlink(const char *oldpath, const char *newpath);
*/
EAPI ssize_t readlink(const char *path, char *buf, size_t bufsiz);
/**
* @brief Create a pair of sockets.
*
* @param fds A pointer that contains two sockets.
*
* Create a pair of sockets that can be use with select().
* Hence, evil_sockets_init() must have been caled at least
* once before. Contrary to Unix, that functions does not
* create a pair of file descriptors.
*
* Conformity: Not applicable.
*
* Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000,
* Windows XP.
*
* @ingroup Evil
*/
EAPI int pipe(int *fds);
/**
* @brief Create, modify, or remove environment variables.
*
@ -349,42 +330,6 @@ EAPI int unsetenv(const char *name);
#endif /* ! __CEGCC__ */
#if defined(__MSDOS__) || defined(__EMX__) || \
(defined(_WIN32) && !defined(_UWIN) && !defined(__CYGWIN__) && !defined(__CEGCC__))
# if defined(_MSC_VER) || defined(__MINGW32__)
# ifdef S_ISDIR
# undef S_ISDIR
# endif
# ifdef S_ISREG
# undef S_ISREG
# endif
# define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
# define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
# define S_IRUSR _S_IRUSR
# define S_IWUSR _S_IWUSR
# define S_IXUSR _S_IXUSR
# define S_IRGRP S_IRUSR
# define S_IROTH S_IRUSR
# define S_IWGRP S_IWUSR
# define S_IWOTH S_IWUSR
# define S_IXGRP S_IXUSR
# define S_IXOTH S_IXUSR
# define open(path,...) _open((path),__VA_ARGS__)
# define close(fd) _close(fd)
# define read(fd,buffer,count) _read((fd),(buffer),(count))
# define write(fd,buffer,count) _write((fd),(buffer),(count))
# define unlink(filename) _unlink((filename))
# define mkdir(p,m) _mkdir(p)
# define getcwd(b,s) _getcwd((b),(s))
# define lstat(f,s) _stat((f),(s))
# define strdup(s) _strdup(s)
# endif
#endif
/**
* @brief Return an absolute or full path name for a specified relative path name.
*
@ -442,6 +387,25 @@ EAPI int evil_sockets_init(void);
*/
EAPI void evil_sockets_shutdown(void);
/**
* @brief Create a pair of sockets.
*
* @param fds A pointer that contains two sockets.
*
* Create a pair of sockets that can be use with select().
* Hence, evil_sockets_init() must have been caled at least
* once before. Contrary to Unix, that functions does not
* create a pair of file descriptors.
*
* Conformity: Not applicable.
*
* Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000,
* Windows XP.
*
* @ingroup Evil
*/
EAPI int evil_pipe(int *fds);
/**
* @brief Return a dir to store temporary files.
*
@ -563,6 +527,44 @@ EAPI char *evil_wchar_to_char(const wchar_t *text);
EAPI char *evil_last_error_get(void);
#if defined(__MSDOS__) || defined(__EMX__) || \
(defined(_WIN32) && !defined(_UWIN) && !defined(__CYGWIN__) && !defined(__CEGCC__))
# if defined(_MSC_VER) || defined(__MINGW32__)
# ifdef S_ISDIR
# undef S_ISDIR
# endif
# ifdef S_ISREG
# undef S_ISREG
# endif
# define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
# define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
# define S_IRUSR _S_IRUSR
# define S_IWUSR _S_IWUSR
# define S_IXUSR _S_IXUSR
# define S_IRGRP S_IRUSR
# define S_IROTH S_IRUSR
# define S_IWGRP S_IWUSR
# define S_IWOTH S_IWUSR
# define S_IXGRP S_IXUSR
# define S_IXOTH S_IXUSR
# define open(path,...) _open((path),__VA_ARGS__)
# define close(fd) _close(fd)
# define read(fd,buffer,count) _read((fd),(buffer),(count))
# define write(fd,buffer,count) _write((fd),(buffer),(count))
# define unlink(filename) _unlink((filename))
# define mkdir(p,m) _mkdir(p)
# define getcwd(b,s) _getcwd((b),(s))
# define lstat(f,s) _stat((f),(s))
# define strdup(s) _strdup(s)
# endif
#endif
#define pipe(fd) evil_pipe(fd)
#ifdef __cplusplus
}
#endif

View File

@ -14,7 +14,7 @@
#endif /* EAPI */
#ifdef _WIN32
# ifdef EFL_EVIL_BUILD
# ifdef EFL_EVIL_DLFCN_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# else

View File

@ -245,12 +245,78 @@ readlink(const char *path, char *buf, size_t bufsiz)
return -1;
}
int
setenv(const char *name, const char *value)
{
char *str;
int length;
int res;
length = strlen(name) + strlen(value) + 2;
str = (char *)malloc(length);
sprintf(str, "%s=%s", name, value);
res = _putenv(str);
free(str);
return res;
}
int
unsetenv(const char *name)
{
char *str;
int length;
int res;
length = strlen(name) + 2;
str = (char *)malloc(length);
sprintf(str, "%s=", name);
res = _putenv(str);
free(str);
return res;
}
#endif /* ! __CEGCC__ */
char *
realpath(const char *file_name, char *resolved_name)
{
#if ! ( defined(__CEGCC__) || defined(__MINGW32CE__) )
return _fullpath(resolved_name, file_name, PATH_MAX);
#else
int length;
length = strlen(file_name);
if ((length + 1) > PATH_MAX)
length = PATH_MAX - 1;
memcpy(resolved_name, file_name, length);
resolved_name[length] = '\0';
return resolved_name;
#endif /* __CEGCC__ || __MINGW32CE__ */
}
int
evil_sockets_init(void)
{
WSADATA wsa_data;
return (WSAStartup(MAKEWORD( 2, 2 ), &wsa_data) == 0) ? 1 : 0;
}
void
evil_sockets_shutdown(void)
{
WSACleanup();
}
/*
* The code of the following functions has been kindly offered
* by Tor Lillqvist.
*/
int
pipe(int *fds)
evil_pipe(int *fds)
{
struct sockaddr_in saddr;
struct timeval tv;
@ -355,77 +421,11 @@ pipe(int *fds)
return -1;
}
int
setenv(const char *name, const char *value)
{
char *str;
int length;
int res;
length = strlen(name) + strlen(value) + 2;
str = (char *)malloc(length);
sprintf(str, "%s=%s", name, value);
res = _putenv(str);
free(str);
return res;
}
int
unsetenv(const char *name)
{
char *str;
int length;
int res;
length = strlen(name) + 2;
str = (char *)malloc(length);
sprintf(str, "%s=", name);
res = _putenv(str);
free(str);
return res;
}
#endif /* ! __CEGCC__ */
char *
realpath(const char *file_name, char *resolved_name)
{
#if ! ( defined(__CEGCC__) || defined(__MINGW32CE__) )
return _fullpath(resolved_name, file_name, PATH_MAX);
#else
int length;
length = strlen(file_name);
if ((length + 1) > PATH_MAX)
length = PATH_MAX - 1;
memcpy(resolved_name, file_name, length);
resolved_name[length] = '\0';
return resolved_name;
#endif /* __CEGCC__ || __MINGW32CE__ */
}
int
evil_sockets_init(void)
{
WSADATA wsa_data;
return (WSAStartup(MAKEWORD( 2, 2 ), &wsa_data) == 0) ? 1 : 0;
}
void
evil_sockets_shutdown(void)
{
WSACleanup();
}
const char *
evil_tmpdir_get(void)
{
#ifdef _WIN32_WCE
return "\\windows";
return "\\temp";
#else
char *tmpdir;
@ -443,7 +443,7 @@ const char *
evil_homedir_get(void)
{
#ifdef _WIN32_WCE
return "\\windows";
return "\\my documents";
#else
char *homedir;

View File

@ -7,7 +7,7 @@
#endif /* EAPI */
#ifdef _WIN32
# ifdef EFL_EVIL_BUILD
# ifdef EFL_EVIL_MMAN_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# else