X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Futil.h;h=7f050758a0088b9ebdb87d11c91557b1b5b5abde;hp=d1cdd901a04fc2a31603351f788eb09dec7585a0;hb=5c0aa72a4999bdcf03fe93ed5c8213c2b4c681f0;hpb=2875e22b65452896d5569eecb3a08265dd658173 diff --git a/src/shared/util.h b/src/shared/util.h index d1cdd901a..7f050758a 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -615,3 +615,9 @@ char *strextend(char **x, ...); char *strrep(const char *s, unsigned n); void* greedy_realloc(void **p, size_t *allocated, size_t need); + +static inline void reset_errno(int *saved_errno) { + errno = *saved_errno; +} + +#define PROTECT_ERRNO __attribute__((cleanup(reset_errno))) int _saved_errno_ = errno