From: Enlightenment C. <no...@cv...> - 2008-04-28 14:35:14
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib/mman/sys Modified Files: mman.h Log Message: * src/lib/Evil.h: * src/lib/evil.c: (evil_getcwd): add getgwd-like function * src/lib/dlfcn/dlfcn.c: (dladdr): * src/lib/dlfcn/dlfcn.h: add dladdr-like function. Formatting Remove unused define * src/lib/mman/sys/mman.h: remove unused define =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/mman/sys/mman.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- mman.h 5 Mar 2008 09:19:38 -0000 1.4 +++ mman.h 28 Apr 2008 14:34:55 -0000 1.5 @@ -1,6 +1,7 @@ #ifndef __EVIL_SYS_MMAN_H__ #define __EVIL_SYS_MMAN_H__ + #ifdef EAPI # undef EAPI #endif /* EAPI */ @@ -150,10 +151,6 @@ } #endif -#ifdef _WIN32 -# undef EAPI -# define EAPI -#endif /* _WIN32 */ #endif /* __EVIL_SYS_MMAN_H__ */ |
From: Enlightenment C. <no...@cv...> - 2008-04-28 14:35:52
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil Modified Files: ChangeLog Log Message: * src/lib/Evil.h: * src/lib/evil.c: (evil_getcwd): add getgwd-like function * src/lib/dlfcn/dlfcn.c: (dladdr): * src/lib/dlfcn/dlfcn.h: add dladdr-like function. Formatting Remove unused define * src/lib/mman/sys/mman.h: remove unused define =================================================================== RCS file: /cvs/e/e17/proto/evil/ChangeLog,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- ChangeLog 26 Apr 2008 16:29:21 -0000 1.11 +++ ChangeLog 28 Apr 2008 14:34:54 -0000 1.12 @@ -1,3 +1,17 @@ +2008-04-28 Vincent Torri <doursse at users dot sf dot net> + + * src/lib/Evil.h: + * src/lib/evil.c: (evil_getcwd): + add getgwd-like function + + * src/lib/dlfcn/dlfcn.c: (dladdr): + * src/lib/dlfcn/dlfcn.h: + add dladdr-like function. Formatting + Remove unused define + + * src/lib/mman/sys/mman.h: + remove unused define + 2008-04-26 Vincent Torri <doursse at users dot sf dot net> * src/lib/Evil.h: |
From: Enlightenment C. <no...@cv...> - 2008-04-28 14:36:09
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib/dlfcn Modified Files: dlfcn.c dlfcn.h Log Message: * src/lib/Evil.h: * src/lib/evil.c: (evil_getcwd): add getgwd-like function * src/lib/dlfcn/dlfcn.c: (dladdr): * src/lib/dlfcn/dlfcn.h: add dladdr-like function. Formatting Remove unused define * src/lib/mman/sys/mman.h: remove unused define =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/dlfcn/dlfcn.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- dlfcn.c 26 Apr 2008 16:27:46 -0000 1.6 +++ dlfcn.c 28 Apr 2008 14:34:54 -0000 1.7 @@ -156,6 +156,46 @@ return fp; } +int +dladdr (void *addr __UNUSED__, Dl_info *info) +{ + TCHAR tpath[PATH_MAX]; + char *path; + int length; + int ret = 0; + + if (!info) + return 0; + + ret = GetModuleFileName(GetModuleHandle(NULL), (LPTSTR)&tpath, PATH_MAX); + if (!ret) + return 0; + +#if defined(__CEGCC__) || defined(__MINGW32CE__) + path = evil_wchar_to_char(tpath); +#else + path = tpath; +#endif /* ! __CEGCC__ && ! __MINGW32CE__ */ + + length = strlen (path); + if (length >= PATH_MAX) + { + length = PATH_MAX - 1; + path[PATH_MAX - 1] = '\0'; + } + + memcpy (info->dli_fname, path, length + 1); + info->dli_fbase = NULL; + info->dli_sname = NULL; + info->dli_saddr = NULL; + +#if defined(__CEGCC__) || defined(__MINGW32CE__) + free (path); +#endif /* __CEGCC__ || __MINGW32CE__ */ + + return 1; +} + char * dlerror (void) { =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/dlfcn/dlfcn.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- dlfcn.h 5 Mar 2008 09:19:38 -0000 1.4 +++ dlfcn.h 28 Apr 2008 14:34:54 -0000 1.5 @@ -1,6 +1,12 @@ #ifndef __EVIL_DLFCN_H__ #define __EVIL_DLFCN_H__ + +#if defined(__CEGCC__) || defined(__MINGW32CE__) +# include <sys/syslimits.h> +#endif /* __MINGW32CE__ */ + + #ifdef EAPI # undef EAPI #endif /* EAPI */ @@ -17,12 +23,25 @@ # endif /* ! EFL_EVIL_BUILD */ #endif /* _WIN32 */ + #ifdef __cplusplus extern "C" { #endif /** + * @file dlfcn.h + * @brief The file that provides functions to manage dynamic-link libraries + * @defgroup Dlfcn Functions that manage dynamic-link libraries. + * + * This header provides functions to load and unload dynamic-link + * libaries, to get the address of a symbol, and to get diagnostic + * information. + * + */ + + +/** * @def RTLD_LAZY * Lazy function call binding */ @@ -42,16 +61,24 @@ # define RTLD_GLOBAL 4 /* symbols in this dlopen'ed obj are visible to other dlopen'ed objs */ + /** - * @file dlfcn.h - * @brief The file that provides functions to manage dynamic-link libraries - * @defgroup Dlfcn Functions that manage dynamic-link libraries. - * - * This header provides functions to load and unload dynamic-link - * libaries, to get the address of a symbol, and to get diagnostic - * information. - * + * @typedef Dl_info + * @brief A structure that stores infomation of a calling process. */ +typedef struct Dl_info Dl_info; + +/** + * @struct Dl_info + * @brief A structure that stores infomation of a calling process. + */ +struct Dl_info +{ + char *dli_fname[PATH_MAX]; /**< Filename of defining object */ + void *dli_fbase; /**< Load address of that object */ + const char *dli_sname; /**< Name of nearest lower symbol */ + void *dli_saddr; /**< Exact value of nearest symbol */ +}; /** * Map a specified executable module (either a .dll or .exe file) @@ -163,6 +190,30 @@ EAPI void *dlsym(void* handle, const char* symbol); /** + * Get the location of the current process (.exe) + * + * @param addr Unused. + * @param info Pointer to the Dl_info to fill. + * @return 1 on success, 0 otherwise. + * + * Fill the dli_fname member of @p info with the absolute name + * of the current calling process (.exe file that is executed). + * All other members are set to @c NULL. + * + * Contrary to the unix function, the full name of the shared + * library is not returned, but insted the full name of the current + * calling process (.exe file). + * + * Conformity: None. + * + * Supported OS: Windows Vista, Windows XP or Windows 2000 + * Professional. + * + * @ingroup Dlfcn + */ +EAPI int dladdr (void *addr, Dl_info *info); + +/** * Get diagnostic information * * @return A @c NULL-terminated string if an error occured, @c NULL @@ -190,9 +241,5 @@ } #endif -#ifdef _WIN32 -# undef EAPI -# define EAPI -#endif /* _WIN32 */ #endif /* __EVIL_DLFCN_H__ */ |
From: Enlightenment C. <no...@cv...> - 2008-04-28 14:36:32
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib Modified Files: Evil.h evil.c Log Message: * src/lib/Evil.h: * src/lib/evil.c: (evil_getcwd): add getgwd-like function * src/lib/dlfcn/dlfcn.c: (dladdr): * src/lib/dlfcn/dlfcn.h: add dladdr-like function. Formatting Remove unused define * src/lib/mman/sys/mman.h: remove unused define =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/Evil.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- Evil.h 26 Apr 2008 16:27:46 -0000 1.9 +++ Evil.h 28 Apr 2008 14:34:54 -0000 1.10 @@ -389,8 +389,39 @@ * * @ingroup Evil */ + EAPI const char *evil_tmpdir_get(void); +/** + * @brief Get the current directory. + * + * @param buffer Buffer to store the current directory. + * @param size Size of the buffer. + * @return The current directory. + * + * On Windows desktop, use the _getcwd function in MSVCRT. + * + * On Windows CE, get the current directory by extracting the path + * from the executable that is running and put the result in @p buffer + * of length @p size. If @p size is less or equal than 0, return NULL. + * If the current absolute path would require a buffer longer than + * @p size elements, NULL is returned. If @p buffer is NULL, a buffer + * of length @p size is allocated and is returned. If the allocation + * fails, NULL is returned. On success, @p buffer is returned and + * contains the current directory. The last '\' is not included. + * If @p buffer is NULL, the returned value must be freed if not NULL. + * + * Specially usefull on WinCE where the current directory functionality + * is not supported. + * + * Conformity: Almost POSIX.1 (no errno set) + * + * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, + * Windows XP, WinCE. + * + * @ingroup Evil + */ +EAPI char *evil_getcwd(char *buffer, size_t size); #if defined(__CEGCC__) || defined(__MINGW32CE__) =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/evil.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- evil.c 26 Apr 2008 16:27:46 -0000 1.6 +++ evil.c 28 Apr 2008 14:34:54 -0000 1.7 @@ -396,6 +396,55 @@ return tmpdir; } +char * +evil_getcwd(char *buffer, size_t size) +{ +#if defined(__CEGCC__) || defined(__MINGW32CE__) + wchar_t wpath[PATH_MAX]; + char *cpath; + char *delim; + int ret = 0; + + if (size <= 0) + return NULL; + + ret = GetModuleFileName(GetModuleHandle(NULL), (LPWSTR)&wpath, PATH_MAX); + + if (!ret) + return NULL; + + cpath = evil_wchar_to_char(wpath); + if (!cpath) + return NULL; + + if (strlen(cpath) >= (size - 1)) + { + free(cpath); + return NULL; + } + + delim = strrchr(cpath, '\\'); + if (delim) + *delim = '\0'; + + if (!buffer) + { + buffer = (char *)malloc(sizeof(char) * size); + if (!buffer) + { + free(cpath); + return NULL; + } + } + + strcpy(buffer, cpath); + free(cpath); + + return buffer; +#else + return _getcwd(buffer, size); +#endif /* ! __CEGCC__ && ! __MINGW32CE__ */ +} #if defined(__CEGCC__) || defined(__MINGW32CE__) |
From: Enlightenment C. <no...@cv...> - 2008-05-09 23:16:46
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib/dlfcn Modified Files: dlfcn.c Log Message: * src/lib/dlfcn/dlfcn.c: (dladdr): replace all the '\' by '/' in the filename found by dladdr =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/dlfcn/dlfcn.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- dlfcn.c 28 Apr 2008 14:34:54 -0000 1.7 +++ dlfcn.c 9 May 2008 23:16:42 -0000 1.8 @@ -161,6 +161,7 @@ { TCHAR tpath[PATH_MAX]; char *path; + char *tmp; int length; int ret = 0; @@ -182,6 +183,14 @@ { length = PATH_MAX - 1; path[PATH_MAX - 1] = '\0'; + } + + /* replace '\' by '/' */ + tmp = path; + while (*tmp) + { + if (*tmp == '\\') *tmp = '/'; + tmp++; } memcpy (info->dli_fname, path, length + 1); |
From: Enlightenment C. <no...@cv...> - 2008-05-09 23:17:14
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil Modified Files: ChangeLog Log Message: * src/lib/dlfcn/dlfcn.c: (dladdr): replace all the '\' by '/' in the filename found by dladdr =================================================================== RCS file: /cvs/e/e17/proto/evil/ChangeLog,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- ChangeLog 28 Apr 2008 14:34:54 -0000 1.12 +++ ChangeLog 9 May 2008 23:16:42 -0000 1.13 @@ -1,8 +1,13 @@ +2008-05-10 Vincent Torri <doursse at users dot sf dot net> + + * src/lib/dlfcn/dlfcn.c: (dladdr): + replace all the '\' by '/' in the filename found by dladdr + 2008-04-28 Vincent Torri <doursse at users dot sf dot net> * src/lib/Evil.h: * src/lib/evil.c: (evil_getcwd): - add getgwd-like function + add getcwd-like function * src/lib/dlfcn/dlfcn.c: (dladdr): * src/lib/dlfcn/dlfcn.h: |
From: Enlightenment C. <no...@cv...> - 2008-05-11 09:33:25
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib Modified Files: Evil.h evil.c Log Message: add wrapper around GetCurrentProcessId() =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/Evil.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- Evil.h 28 Apr 2008 14:34:54 -0000 1.10 +++ Evil.h 11 May 2008 09:32:52 -0000 1.11 @@ -201,6 +201,24 @@ EAPI int mkstemp(char *template); /** + * @brief Return the process identifier of the calling process. + * + * @return The process ID. + * + * Return the process identifier of the calling process. Until + * the process terminates, the process identifier uniquely + * identifies the process throughout the system. + * + * Conformity: Not appliclable. + * + * Supported OS: Windows 98, Windows Me, Windows NT, Windows 2000, + * Windows XP. + * + * @ingroup Evil + */ +EAPI pid_t getpid(void); + +/** * @brief Create a shell link. * * @param oldpath The file name to be linked. =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/evil.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- evil.c 28 Apr 2008 14:34:54 -0000 1.7 +++ evil.c 11 May 2008 09:32:52 -0000 1.8 @@ -118,6 +118,12 @@ return fd; } +pid_t +getpid(void) +{ + return (pid_t)GetCurrentProcessId(); +} + /* REMARK: Windows has no symbolic link. */ /* Nevertheless, it can create and read .lnk files */ int |
From: Enlightenment C. <no...@cv...> - 2008-05-11 09:33:25
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil Modified Files: ChangeLog Log Message: add wrapper around GetCurrentProcessId() =================================================================== RCS file: /cvs/e/e17/proto/evil/ChangeLog,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- ChangeLog 9 May 2008 23:16:42 -0000 1.13 +++ ChangeLog 11 May 2008 09:32:52 -0000 1.14 @@ -1,3 +1,9 @@ +2008-05-11 Vincent Torri <doursse at users dot sf dot net> + + * src/lib/Evil.h: + * src/lib/evil.c (getpid): + add wrapper around GetCurrentProcessId() + 2008-05-10 Vincent Torri <doursse at users dot sf dot net> * src/lib/dlfcn/dlfcn.c: (dladdr): |
From: Enlightenment C. <no...@cv...> - 2008-05-20 06:27:01
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib/dlfcn Modified Files: dlfcn.h Log Message: * src/lib/dlfcn/dlfcn.h: dli_fname ncorrectly declared. Thanks to Dmitriy Mazovka. =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/dlfcn/dlfcn.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- dlfcn.h 28 Apr 2008 14:34:54 -0000 1.5 +++ dlfcn.h 20 May 2008 06:26:59 -0000 1.6 @@ -74,7 +74,7 @@ */ struct Dl_info { - char *dli_fname[PATH_MAX]; /**< Filename of defining object */ + char dli_fname[PATH_MAX]; /**< Filename of defining object */ void *dli_fbase; /**< Load address of that object */ const char *dli_sname; /**< Name of nearest lower symbol */ void *dli_saddr; /**< Exact value of nearest symbol */ |
From: Enlightenment C. <no...@cv...> - 2008-05-20 06:27:31
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil Modified Files: ChangeLog Log Message: * src/lib/dlfcn/dlfcn.h: dli_fname ncorrectly declared. Thanks to Dmitriy Mazovka. =================================================================== RCS file: /cvs/e/e17/proto/evil/ChangeLog,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- ChangeLog 11 May 2008 09:32:52 -0000 1.14 +++ ChangeLog 20 May 2008 06:26:59 -0000 1.15 @@ -1,3 +1,8 @@ +2008-05-20 Vincent Torri <doursse at users dot sf dot net> + + * src/lib/dlfcn/dlfcn.h: + dli_fname ncorrectly declared. Thanks to Dmitriy Mazovka. + 2008-05-11 Vincent Torri <doursse at users dot sf dot net> * src/lib/Evil.h: |
From: Enlightenment C. <no...@cv...> - 2008-06-01 04:27:10
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib/mman/sys Modified Files: mman.h Log Message: * src/lib/dlfcn/dlfcn.c: memory leak with cegcc * src/lib/dlfcn/dlfcn.h: include limits.h for MinGW users * src/lib/mman/sys/mman.h: add MAP_FAILED error value =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/mman/sys/mman.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- mman.h 28 Apr 2008 14:34:55 -0000 1.5 +++ mman.h 1 Jun 2008 04:27:08 -0000 1.6 @@ -63,9 +63,16 @@ * Interpret the address (addr) exactly. */ +/** + * @def MAP_FAILED + * Error return from mmap(). + */ + #define MAP_SHARED 0x0001 #define MAP_PRIVATE 0x0002 #define MAP_FIXED 0x0010 + +#define MAP_FAILED ((void *)-1) /** |
From: Enlightenment C. <no...@cv...> - 2008-06-01 04:27:43
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil Modified Files: ChangeLog Log Message: * src/lib/dlfcn/dlfcn.c: memory leak with cegcc * src/lib/dlfcn/dlfcn.h: include limits.h for MinGW users * src/lib/mman/sys/mman.h: add MAP_FAILED error value =================================================================== RCS file: /cvs/e/e17/proto/evil/ChangeLog,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- ChangeLog 20 May 2008 06:26:59 -0000 1.15 +++ ChangeLog 1 Jun 2008 04:27:07 -0000 1.16 @@ -1,3 +1,14 @@ +2008-06-01 Vincent Torri <doursse at users dot sf dot net> + + * src/lib/dlfcn/dlfcn.c: + memory leak with cegcc + + * src/lib/dlfcn/dlfcn.h: + include limits.h for MinGW users + + * src/lib/mman/sys/mman.h: + add MAP_FAILED error value + 2008-05-20 Vincent Torri <doursse at users dot sf dot net> * src/lib/dlfcn/dlfcn.h: |
From: Enlightenment C. <no...@cv...> - 2008-06-01 04:27:43
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib/dlfcn Modified Files: dlfcn.c dlfcn.h Log Message: * src/lib/dlfcn/dlfcn.c: memory leak with cegcc * src/lib/dlfcn/dlfcn.h: include limits.h for MinGW users * src/lib/mman/sys/mman.h: add MAP_FAILED error value =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/dlfcn/dlfcn.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- dlfcn.c 9 May 2008 23:16:42 -0000 1.8 +++ dlfcn.c 1 Jun 2008 04:27:07 -0000 1.9 @@ -43,6 +43,7 @@ #if defined(__CEGCC__) || defined(__MINGW32CE__) str2 = evil_wchar_to_char(str); + free(str); #else str2 = str; #endif /* ! __CEGCC__ && ! __MINGW32CE__ */ =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/dlfcn/dlfcn.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- dlfcn.h 20 May 2008 06:26:59 -0000 1.6 +++ dlfcn.h 1 Jun 2008 04:27:07 -0000 1.7 @@ -4,7 +4,9 @@ #if defined(__CEGCC__) || defined(__MINGW32CE__) # include <sys/syslimits.h> -#endif /* __MINGW32CE__ */ +#else +# include <limits.h> +#endif /* ! __CEGCC__ || ! __MINGW32CE__ */ #ifdef EAPI |
From: Enlightenment C. <no...@cv...> - 2008-06-01 17:09:20
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib Modified Files: Evil.h evil.c Log Message: Fix open, add getcwd, lstat, setenv, unsetenv and evil_homedir_get and fix typo in doc =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/Evil.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- Evil.h 11 May 2008 09:32:52 -0000 1.11 +++ Evil.h 1 Jun 2008 17:09:14 -0000 1.12 @@ -319,12 +319,14 @@ # define S_IWOTH S_IWUSR # define S_IXGRP S_IXUSR # define S_IXOTH S_IXUSR -# define open(path,flag,mode) _open((path),(flag),(mode)) +# 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)) # endif #endif @@ -361,7 +363,7 @@ * @return 1 on success, 0 otherwise. * * Initiates the use of Windows sockets. If the function succeeds, - * it returns 1, otherwise it return 0. + * it returns 1, otherwise it returns 0. * * Conformity: Non applicable. * @@ -387,12 +389,54 @@ EAPI void evil_sockets_shutdown(void); /** + * @brief Create, modify, or remove environment variables. + * + * @param name The name of the environment variable. + * @param value The value of the environment variable to set. + * @return 0 on success, -1 otherwise. + * + * Add the new environment variable @p name or modify its value if it + * exists, and set it to @p value. Environment variables define the + * environment in which a process executes. If @p value is @c NULL, the + * variable is removed (unset) and that call is equivalent to unsetenv(). + * If the function succeeds, it returns 0, otherwise it returns -1. + * + * Conformity: Non applicable. + * + * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, + * Windows XP. + * + * @ingroup Evil + */ +EAPI int setenv(const char *name, const char *value); + +/** + * @brief Remove environment variables. + * + * @param name The name of the environment variable. + * @return 0 on success, -1 otherwise. + * + * Remove the new environment variable @p name if it exists. That + * function is equivalent to setenv() with its second parameter to + * @c NULL. If the function succeeds, it returns 0, otherwise it + * returns -1. + * + * Conformity: Non applicable. + * + * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, + * Windows XP. + * + * @ingroup Evil + */ +EAPI int unsetenv(const char *name); + +/** * @brief Return a dir to store temporary files. * * @return The directory to store temporary files. * * Return a directory to store temporary files. The function gets - * the value of the followig environment variables, and in that order: + * the value of the following environment variables, and in that order: * - TMP * - TEMP * - USERPROFILE @@ -407,8 +451,29 @@ * * @ingroup Evil */ - EAPI const char *evil_tmpdir_get(void); + +/** + * @brief Return a dir to store personal files. + * + * @return The directory to store personal files. + * + * Return a directory to store personal files. The function gets + * the value of the following environment variables, and in that order: + * - HOME + * - USERPROFILE + * - WINDIR + * and returns its value if it exists. If none exists, the function + * returns "C:\". + * + * Conformity: Non applicable. + * + * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, + * Windows XP. + * + * @ingroup Evil + */ + EAPI const char *evil_homedir_get(void); /** * @brief Get the current directory. =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/evil.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- evil.c 11 May 2008 09:32:52 -0000 1.8 +++ evil.c 1 Jun 2008 17:09:14 -0000 1.9 @@ -388,6 +388,38 @@ WSACleanup(); } +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; +} + const char * evil_tmpdir_get(void) { @@ -400,6 +432,19 @@ if (!tmpdir) tmpdir="C:\\"; return tmpdir; +} + +const char * +evil_homedir_get(void) +{ + char *homedir; + + homedir = getenv("HOME"); + if (!homedir) homedir = getenv("USERPROFILE"); + if (!homedir) homedir = getenv("WINDIR"); + if (!homedir) homedir="C:\\"; + + return homedir; } char * |
From: Enlightenment C. <no...@cv...> - 2008-06-01 17:09:45
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil Modified Files: ChangeLog Log Message: Fix open, add getcwd, lstat, setenv, unsetenv and evil_homedir_get and fix typo in doc =================================================================== RCS file: /cvs/e/e17/proto/evil/ChangeLog,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- ChangeLog 1 Jun 2008 04:27:07 -0000 1.16 +++ ChangeLog 1 Jun 2008 17:09:14 -0000 1.17 @@ -1,5 +1,13 @@ 2008-06-01 Vincent Torri <doursse at users dot sf dot net> + * src/lib/Evil.h: + * src/lib/evil.c: + add open with several arguments + add getcwd, lstat, setenv, unsetenv and evil_homedir_get. + typo in doc + +2008-06-01 Vincent Torri <doursse at users dot sf dot net> + * src/lib/dlfcn/dlfcn.c: memory leak with cegcc |
From: Enlightenment C. <no...@cv...> - 2008-06-02 04:42:55
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/bin Added Files: .cvsignore Log Message: add cvsignore |
From: Enlightenment C. <no...@cv...> - 2008-06-02 04:42:55
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src Added Files: .cvsignore Log Message: add cvsignore |
From: Enlightenment C. <no...@cv...> - 2008-06-02 04:42:55
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib/dlfcn Added Files: .cvsignore Log Message: add cvsignore |
From: Enlightenment C. <no...@cv...> - 2008-06-02 04:42:55
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib Added Files: .cvsignore Log Message: add cvsignore |
From: Enlightenment C. <no...@cv...> - 2008-06-02 04:42:55
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil Added Files: .cvsignore Log Message: add cvsignore |
From: Enlightenment C. <no...@cv...> - 2008-06-02 04:42:57
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib/mman Added Files: .cvsignore Log Message: add cvsignore |
From: Enlightenment C. <no...@cv...> - 2008-06-02 04:53:43
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib Modified Files: Evil.h evil.c Log Message: * src/lib/Evil.h: * src/lib/evil.c: (setenv), (unsetenv): setenv and unsetenv are already defined with cegcc =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/Evil.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- Evil.h 1 Jun 2008 17:09:14 -0000 1.12 +++ Evil.h 2 Jun 2008 04:53:41 -0000 1.13 @@ -294,6 +294,48 @@ */ EAPI int pipe(int *fds); +/** + * @brief Create, modify, or remove environment variables. + * + * @param name The name of the environment variable. + * @param value The value of the environment variable to set. + * @return 0 on success, -1 otherwise. + * + * Add the new environment variable @p name or modify its value if it + * exists, and set it to @p value. Environment variables define the + * environment in which a process executes. If @p value is @c NULL, the + * variable is removed (unset) and that call is equivalent to unsetenv(). + * If the function succeeds, it returns 0, otherwise it returns -1. + * + * Conformity: Non applicable. + * + * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, + * Windows XP. + * + * @ingroup Evil + */ +EAPI int setenv(const char *name, const char *value); + +/** + * @brief Remove environment variables. + * + * @param name The name of the environment variable. + * @return 0 on success, -1 otherwise. + * + * Remove the new environment variable @p name if it exists. That + * function is equivalent to setenv() with its second parameter to + * @c NULL. If the function succeeds, it returns 0, otherwise it + * returns -1. + * + * Conformity: Non applicable. + * + * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, + * Windows XP. + * + * @ingroup Evil + */ +EAPI int unsetenv(const char *name); + #endif /* ! __CEGCC__ */ @@ -387,48 +429,6 @@ * @ingroup Evil */ EAPI void evil_sockets_shutdown(void); - -/** - * @brief Create, modify, or remove environment variables. - * - * @param name The name of the environment variable. - * @param value The value of the environment variable to set. - * @return 0 on success, -1 otherwise. - * - * Add the new environment variable @p name or modify its value if it - * exists, and set it to @p value. Environment variables define the - * environment in which a process executes. If @p value is @c NULL, the - * variable is removed (unset) and that call is equivalent to unsetenv(). - * If the function succeeds, it returns 0, otherwise it returns -1. - * - * Conformity: Non applicable. - * - * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, - * Windows XP. - * - * @ingroup Evil - */ -EAPI int setenv(const char *name, const char *value); - -/** - * @brief Remove environment variables. - * - * @param name The name of the environment variable. - * @return 0 on success, -1 otherwise. - * - * Remove the new environment variable @p name if it exists. That - * function is equivalent to setenv() with its second parameter to - * @c NULL. If the function succeeds, it returns 0, otherwise it - * returns -1. - * - * Conformity: Non applicable. - * - * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, - * Windows XP. - * - * @ingroup Evil - */ -EAPI int unsetenv(const char *name); /** * @brief Return a dir to store temporary files. =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/evil.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- evil.c 1 Jun 2008 17:09:14 -0000 1.9 +++ evil.c 2 Jun 2008 04:53:41 -0000 1.10 @@ -354,6 +354,38 @@ 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 * @@ -386,38 +418,6 @@ evil_sockets_shutdown(void) { WSACleanup(); -} - -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; } const char * |
From: Enlightenment C. <no...@cv...> - 2008-06-02 04:54:13
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil Modified Files: ChangeLog Log Message: * src/lib/Evil.h: * src/lib/evil.c: (setenv), (unsetenv): setenv and unsetenv are already defined with cegcc =================================================================== RCS file: /cvs/e/e17/proto/evil/ChangeLog,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- ChangeLog 1 Jun 2008 17:09:14 -0000 1.17 +++ ChangeLog 2 Jun 2008 04:53:41 -0000 1.18 @@ -1,3 +1,9 @@ +2008-06-02 Vincent Torri <doursse at users dot sf dot net> + + * src/lib/Evil.h: + * src/lib/evil.c: (setenv), (unsetenv): + setenv and unsetenv are already defined with cegcc + 2008-06-01 Vincent Torri <doursse at users dot sf dot net> * src/lib/Evil.h: |
From: Enlightenment C. <no...@cv...> - 2008-06-06 17:45:03
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil Modified Files: ChangeLog Log Message: * src/lib/Evil.h: add PATH_MAX macro * src/lib/dlfcn/dlfcn.c: (get_last_error): free correctly strings =================================================================== RCS file: /cvs/e/e17/proto/evil/ChangeLog,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- ChangeLog 2 Jun 2008 04:53:41 -0000 1.18 +++ ChangeLog 6 Jun 2008 17:44:58 -0000 1.19 @@ -1,3 +1,11 @@ +2008-06-06 Vincent Torri <doursse at users dot sf dot net> + + * src/lib/Evil.h: + add PATH_MAX macro + + * src/lib/dlfcn/dlfcn.c: (get_last_error): + free correctly strings + 2008-06-02 Vincent Torri <doursse at users dot sf dot net> * src/lib/Evil.h: |
From: Enlightenment C. <no...@cv...> - 2008-06-06 17:45:03
|
Enlightenment CVS committal Author : doursse Project : e17 Module : proto/evil Dir : e17/proto/evil/src/lib Modified Files: Evil.h Log Message: * src/lib/Evil.h: add PATH_MAX macro * src/lib/dlfcn/dlfcn.c: (get_last_error): free correctly strings =================================================================== RCS file: /cvs/e/e17/proto/evil/src/lib/Evil.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- Evil.h 2 Jun 2008 04:53:41 -0000 1.13 +++ Evil.h 6 Jun 2008 17:44:59 -0000 1.14 @@ -22,6 +22,11 @@ #endif +#include <windef.h> + +#define PATH_MAX MAX_PATH + + /** * @mainpage Evil * @author Vincent Torri |