summaryrefslogtreecommitdiffstats
path: root/src/util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-10-14 20:56:56 +0000
committerLennart Poettering <lennart@poettering.net>2004-10-14 20:56:56 +0000
commit28400c2ebffd57cbd398b6a0cee66d94ea59bafc (patch)
tree0e4b2668290dc66062c2d8bfebed34d43aa7a0fe /src/util.c
parented33f550ce2df3e3ed27aa74fae48f05e46bad4f (diff)
prepare for next release
git-svn-id: file:///home/lennart/svn/public/syrep/trunk@71 07ea20a6-d2c5-0310-9e02-9ef735347d72
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/util.c b/src/util.c
index cbb9b91..715a7b5 100644
--- a/src/util.c
+++ b/src/util.c
@@ -539,7 +539,7 @@ int prune_empty_directories(const char *path, const char *root) {
if (rmdir(rpath) < 0) {
- if (errno == ENOTEMPTY)
+ if (errno == ENOTEMPTY || errno == EBUSY)
break;
if (errno != ENOENT) {
@@ -750,8 +750,8 @@ ssize_t loop_read(int fd, void *d, size_t l) {
return p-d;
}
-ssize_t loop_write(int fd, void *d, size_t l) {
- void *p = d;
+ssize_t loop_write(int fd, const void *d, size_t l) {
+ const void *p = d;
while (l > 0) {
ssize_t r;
@@ -790,3 +790,16 @@ off_t filesize2(const char *p) {
return st.st_size;
}
+
+#define TMPDIR_ENV "TMPDIR"
+
+void set_tmp_dir(const char *s) {
+#ifdef HAVE_SETENV
+ setenv(TMPDIR_ENV, s, 1);
+#else
+ char *tmp = malloc(strlen(s) + sizeof(TMPDIR_ENV) + 1);
+ assert(tmp);
+ sprintf(tmp, "%s=%s", TMPDIR_ENV, s);
+ putenv(tmp);
+#endif
+}