summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libudev/macro.h3
-rw-r--r--src/libudev/util.c11
-rw-r--r--src/libudev/util.h1
3 files changed, 15 insertions, 0 deletions
diff --git a/src/libudev/macro.h b/src/libudev/macro.h
index 088fcd2640..ac2a23f6aa 100644
--- a/src/libudev/macro.h
+++ b/src/libudev/macro.h
@@ -44,6 +44,9 @@
_Pragma("GCC diagnostic push"); \
_Pragma("GCC diagnostic ignored \"-Wformat-nonliteral\"")
+#define REENABLE_WARNING \
+ _Pragma("GCC diagnostic pop")
+
/* Rounds up */
#define ALIGN4(l) (((l) + 3) & ~3)
diff --git a/src/libudev/util.c b/src/libudev/util.c
index 93f60b8ec4..a0d7cac697 100644
--- a/src/libudev/util.c
+++ b/src/libudev/util.c
@@ -284,6 +284,17 @@ void close_nointr_nofail(int fd) {
assert_se(close_nointr(fd) == 0);
}
+int unlink_noerrno(const char *path) {
+ PROTECT_ERRNO;
+ int r;
+
+ r = unlink(path);
+ if (r < 0)
+ return -errno;
+
+ return 0;
+}
+
int safe_atou(const char *s, unsigned *ret_u) {
char *x = NULL;
unsigned long l;
diff --git a/src/libudev/util.h b/src/libudev/util.h
index 60ef764d97..33e9efbfab 100644
--- a/src/libudev/util.h
+++ b/src/libudev/util.h
@@ -328,6 +328,7 @@ static inline void _reset_errno_(int *saved_errno) {
#define PROTECT_ERRNO _cleanup_(_reset_errno_) __attribute__((unused)) int _saved_errno_ = errno
+int unlink_noerrno(const char *path);
static inline void qsort_safe(void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *)) {
if (nmemb) {