From: Jan Nieuwenhuizen <janneke-list@xs4all.nl>
To: guile-devel@gnu.org
Subject: [PATCH 4/5] [mingw]: Delete existing target file before attempting rename.
Date: Tue, 15 Feb 2011 16:35:02 +0100 [thread overview]
Message-ID: <1297784103-18322-5-git-send-email-janneke-list@xs4all.nl> (raw)
In-Reply-To: <1297784103-18322-1-git-send-email-janneke-list@xs4all.nl>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1533 bytes --]
From: Jan Nieuwenhuizen <janneke@gnu.org>
2011-02-15 Jan Nieuwenhuizen <janneke@gnu.org>
* libguile/filesys.c [MINGW32] (my_rename): Add implementation
that deletes target if it exists. Fixes rename behaviour.
---
libguile/filesys.c | 24 +++++++++++++++++++++---
1 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/libguile/filesys.c b/libguile/filesys.c
index 880ee86..a2be2d5 100644
--- a/libguile/filesys.c
+++ b/libguile/filesys.c
@@ -680,9 +680,10 @@ SCM_DEFINE (scm_link, "link", 2, 0, 0,
#undef FUNC_NAME
#endif /* HAVE_LINK */
-#ifdef HAVE_RENAME
+#if defined (HAVE_RENAME) && !defined (__MINGW32__)
#define my_rename rename
-#else
+#else /* !HAVE_RENAME || __MINGW32__ */
+#ifndef __MINGW32__
static int
my_rename (const char *oldname, const char *newname)
{
@@ -698,7 +699,24 @@ my_rename (const char *oldname, const char *newname)
}
return rv;
}
-#endif
+#else /* __MINGW32__ */
+static int
+my_rename (const char *oldname, const char *newname)
+{
+ int rv;
+ struct stat stat;
+
+ SCM_SYSCALL (rv = !stat (newname, &stat));
+ if (rv != 0)
+ SCM_SYSCALL (rv = unlink (newname));
+ if (rv == 0)
+ rv = rename (oldname, newname);
+
+ return rv;
+}
+#endif /* __MINGW32__ */
+#endif /* !HAVE_RENAME || __MINGW32__ */
+
SCM_DEFINE (scm_rename, "rename-file", 2, 0, 0,
(SCM oldname, SCM newname),
--
1.7.1
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.nl
next prev parent reply other threads:[~2011-02-15 15:35 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-15 15:34 mingw runtime patches Jan Nieuwenhuizen
2011-02-15 15:34 ` [PATCH 1/5] [mingw]: Add implementation of canonicalize_file_name Jan Nieuwenhuizen
2011-04-29 16:33 ` Andy Wingo
2011-05-20 13:56 ` Jan Nieuwenhuizen
2011-05-20 14:54 ` Andy Wingo
2011-02-15 15:35 ` [PATCH 2/5] [mingw]: Have compiled-file-name produce valid names Jan Nieuwenhuizen
2011-04-29 17:16 ` Andy Wingo
2011-04-29 17:30 ` Noah Lavine
2011-05-01 11:30 ` Andy Wingo
2011-05-01 19:23 ` Noah Lavine
2011-05-01 21:12 ` Andy Wingo
2011-05-01 21:48 ` Mark H Weaver
2011-05-02 7:45 ` Andy Wingo
2011-05-02 20:58 ` Ludovic Courtès
2011-05-02 21:58 ` Andy Wingo
2011-05-02 22:18 ` Ludovic Courtès
2011-05-03 7:44 ` Andy Wingo
2011-05-03 8:38 ` Ludovic Courtès
2011-05-04 3:59 ` Mark H Weaver
2011-05-04 4:13 ` Noah Lavine
2011-05-04 9:24 ` Ludovic Courtès
2011-05-17 16:59 ` Noah Lavine
2011-05-17 19:26 ` Mark H Weaver
2011-05-17 20:03 ` Mark H Weaver
2011-05-23 19:42 ` Filenames and other POSIX byte strings as SCM strings without loss Mark H Weaver
2011-07-01 10:51 ` Andy Wingo
2011-05-23 20:14 ` Paths as sequences of path components Mark H Weaver
2011-05-24 10:51 ` Hans Aberg
2011-11-23 22:15 ` Andy Wingo
2011-11-25 2:51 ` Mark H Weaver
2011-06-16 22:29 ` [PATCH 2/5] [mingw]: Have compiled-file-name produce valid names Andy Wingo
2011-05-02 23:16 ` Eli Barzilay
2011-05-20 13:47 ` Jan Nieuwenhuizen
2011-05-20 14:01 ` Andy Wingo
2011-06-30 14:11 ` Andy Wingo
2011-02-15 15:35 ` [PATCH 3/5] [mingw]: Do not export opendir, readdir etc., as dirents differ Jan Nieuwenhuizen
2011-05-01 11:37 ` Andy Wingo
2011-05-20 13:57 ` Jan Nieuwenhuizen
2011-06-16 22:22 ` Andy Wingo
2011-02-15 15:35 ` Jan Nieuwenhuizen [this message]
2011-05-01 11:40 ` [PATCH 4/5] [mingw]: Delete existing target file before attempting rename Andy Wingo
2011-05-20 14:05 ` Jan Nieuwenhuizen
2011-06-16 21:45 ` Andy Wingo
2011-02-15 15:35 ` [PATCH 5/5] [mingw]: Use $LOCALAPPDATA as a possible root for cachedir Jan Nieuwenhuizen
2011-05-01 11:42 ` Andy Wingo
2011-05-20 14:03 ` Jan Nieuwenhuizen
2011-06-16 22:02 ` Andy Wingo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1297784103-18322-5-git-send-email-janneke-list@xs4all.nl \
--to=janneke-list@xs4all.nl \
--cc=guile-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).