gaim/gaim

Parents 9ab8b64f8743
Children 0011fc1a249f
This makes us use wgaim_rename() as g_rename(), its ugly, but it allows us to rename to an existing new file.
--- a/src/win32/libc_interface.c Tue Feb 15 20:42:17 2005 -0500
+++ b/src/win32/libc_interface.c Tue Feb 15 22:45:55 2005 -0500
@@ -34,7 +34,13 @@
#include <glib.h>
#include "debug.h"
#include "libc_internal.h"
-
+#if GLIB_CHECK_VERSION(2,6,0)
+# include <glib/gstdio.h>
+#else
+#define g_remove remove
+#define g_rename rename
+#define g_stat stat
+#endif
/*
* PROTOS
*/
@@ -310,15 +316,15 @@
/* stdio.h */
int wgaim_rename (const char *oldname, const char *newname) {
- struct _stat oldstat, newstat;
+ struct stat oldstat, newstat;
- if(_stat(oldname, &oldstat) == 0) {
+ if(g_stat(oldname, &oldstat) == 0) {
/* newname exists */
- if(_stat(newname, &newstat) == 0) {
+ if(g_stat(newname, &newstat) == 0) {
/* oldname is a dir */
if(_S_ISDIR(oldstat.st_mode)) {
if(!_S_ISDIR(newstat.st_mode)) {
- return rename(oldname, newname);
+ return g_rename(oldname, newname);
}
/* newname is a dir */
else {
@@ -327,7 +333,7 @@
deleted and oldname should be renamed.
*/
gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "wgaim_rename does not behave here as it should\n");
- return rename(oldname, newname);
+ return g_rename(oldname, newname);
}
}
/* oldname is not a dir */
@@ -339,14 +345,14 @@
}
/* newname is not a dir */
else {
- remove(newname);
- return rename(oldname, newname);
+ g_remove(newname);
+ return g_rename(oldname, newname);
}
}
}
/* newname doesn't exist */
else
- return rename(oldname, newname);
+ return g_rename(oldname, newname);
}
else {
/* oldname doesn't exist */
--- a/src/win32/libc_interface.h Tue Feb 15 20:42:17 2005 -0500
+++ b/src/win32/libc_interface.h Tue Feb 15 22:45:55 2005 -0500
@@ -129,6 +129,16 @@
#define rename( oldname, newname ) \
wgaim_rename( oldname, newname )
+#if GLIB_CHECK_VERSION(2,6,0)
+#ifdef g_rename
+# undef g_rename
+#endif
+/* This is necessary because we want rename on win32 to be able to overwrite an existing file, it is done in internal.h if GLib < 2.6*/
+#define g_rename(oldname, newname) \
+wgaim_rename(oldname, newname)
+#endif
+
+
/* sys/stat.h */
#if !GLIB_CHECK_VERSION(2,6,0)