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__)
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs