diff --git a/ChangeLog b/ChangeLog index c65c39f5a..a537837ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-03-30 Tor Lillqvist + + * glib/gstdio.c (g_remove): [Win32] call rmdir() only if remove() + fails with errno set to ENOENT, to leave errno set to EACCESS if + that is the problem. (#334799, Yevgen Muntyan) + 2006-03-30 Matthias Clasen * glib/gbookmarkfile.c (g_bookmark_file_get_app_info): Sync diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index c65c39f5a..a537837ce 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,9 @@ +2006-03-30 Tor Lillqvist + + * glib/gstdio.c (g_remove): [Win32] call rmdir() only if remove() + fails with errno set to ENOENT, to leave errno set to EACCESS if + that is the problem. (#334799, Yevgen Muntyan) + 2006-03-30 Matthias Clasen * glib/gbookmarkfile.c (g_bookmark_file_get_app_info): Sync diff --git a/glib/gstdio.c b/glib/gstdio.c index fe75643b3..ac13ef65d 100644 --- a/glib/gstdio.c +++ b/glib/gstdio.c @@ -780,7 +780,7 @@ g_remove (const gchar *filename) } retval = _wremove (wfilename); - if (retval == -1) + if (retval == -1 && errno == ENOENT) retval = _wrmdir (wfilename); save_errno = errno; @@ -802,7 +802,7 @@ g_remove (const gchar *filename) } retval = remove (cp_filename); - if (retval == -1) + if (retval == -1 && errno == ENOENT) retval = rmdir (cp_filename); save_errno = errno;