summaryrefslogtreecommitdiff
path: root/wrapper.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-05-18 09:01:06 -0700
committerJunio C Hamano <gitster@pobox.com>2009-05-18 09:01:06 -0700
commit36587681b4743c980e4e74a342dc5ec105314d08 (patch)
tree35f0267f12def071aadef8de84e257f606794135 /wrapper.c
parentf2a56171accb4fec03a30e513702283ab90088a1 (diff)
parentf6a5f1bb509a3af182fe568135398f1f2be15e5d (diff)
downloadgit-36587681b4743c980e4e74a342dc5ec105314d08.tar.gz
Merge branch 'ar/unlink-err'
* ar/unlink-err: print unlink(2) errno in copy_or_link_directory replace direct calls to unlink(2) with unlink_or_warn Introduce an unlink(2) wrapper which gives warning if unlink failed
Diffstat (limited to 'wrapper.c')
-rw-r--r--wrapper.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/wrapper.c b/wrapper.c
index d8efb1365a..7eb3218ee9 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -289,3 +289,19 @@ int odb_pack_keep(char *name, size_t namesz, unsigned char *sha1)
safe_create_leading_directories(name);
return open(name, O_RDWR|O_CREAT|O_EXCL, 0600);
}
+
+int unlink_or_warn(const char *file)
+{
+ int rc = unlink(file);
+
+ if (rc < 0) {
+ int err = errno;
+ if (ENOENT != err) {
+ warning("unable to unlink %s: %s",
+ file, strerror(errno));
+ errno = err;
+ }
+ }
+ return rc;
+}
+