summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMarcus Brinkmann <mb@g10code.com>2005-04-15 11:04:43 +0200
committerMarcus Brinkmann <mb@g10code.com>2005-04-15 11:04:43 +0200
commit00853b8a1aa5c4ff8bb10d99e65db52b06f639bf (patch)
tree69121495dca9955829aa816561e795852937e8a0 /tools
parent2005-04-15 Marcus Brinkmann <marcus@g10code.de> (diff)
downloadgnupg2-00853b8a1aa5c4ff8bb10d99e65db52b06f639bf.tar.xz
gnupg2-00853b8a1aa5c4ff8bb10d99e65db52b06f639bf.zip
2005-04-15 Marcus Brinkmann <marcus@g10code.de>
* symcryptrun.c (TEMP_FAILURE_RETRY): Define if not defined.
Diffstat (limited to 'tools')
-rw-r--r--tools/ChangeLog2
-rw-r--r--tools/symcryptrun.c15
2 files changed, 17 insertions, 0 deletions
diff --git a/tools/ChangeLog b/tools/ChangeLog
index 981c52f6b..62a5e841c 100644
--- a/tools/ChangeLog
+++ b/tools/ChangeLog
@@ -1,5 +1,7 @@
2005-04-15 Marcus Brinkmann <marcus@g10code.de>
+ * symcryptrun.c (TEMP_FAILURE_RETRY): Define if not defined.
+
* symcryptrun.c (remove_file): New function.
(confucius_copy_file): Accept new argument PLAIN and shred the
file if it is set on error.
diff --git a/tools/symcryptrun.c b/tools/symcryptrun.c
index 9f3a55f8b..b35e4d7a5 100644
--- a/tools/symcryptrun.c
+++ b/tools/symcryptrun.c
@@ -217,6 +217,21 @@ i18n_init(void)
}
+/* This is in the GNU C library in unistd.h. */
+
+#ifndef TEMP_FAILURE_RETRY
+/* Evaluate EXPRESSION, and repeat as long as it returns -1 with `errno'
+ set to EINTR. */
+
+# define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+#endif
+
+
/* Unlink a file, and shred it if SHRED is true. */
int
remove_file (char *name, int shred)