From 9d0fed7b44800ee84d5305084350ee8a7d7de140 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 26 Jun 2025 22:49:31 +0900 Subject: [PATCH] stat-util: split null_or_empty() into two --- src/basic/stat-util.c | 14 +++++++------- src/basic/stat-util.h | 6 +++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c index cbdcf190547..94b4f55c349 100644 --- a/src/basic/stat-util.c +++ b/src/basic/stat-util.c @@ -184,19 +184,19 @@ int dir_is_empty_at(int dir_fd, const char *path, bool ignore_hidden_or_backup) return 1; } -bool null_or_empty(struct stat *st) { +bool stat_may_be_dev_null(struct stat *st) { assert(st); - if (S_ISREG(st->st_mode) && st->st_size <= 0) - return true; - /* We don't want to hardcode the major/minor of /dev/null, hence we do a simpler "is this a character * device node?" check. */ - if (S_ISCHR(st->st_mode)) - return true; + return S_ISCHR(st->st_mode); +} - return false; +bool stat_is_empty(struct stat *st) { + assert(st); + + return S_ISREG(st->st_mode) && st->st_size <= 0; } int null_or_empty_path_with_root(const char *fn, const char *root) { diff --git a/src/basic/stat-util.h b/src/basic/stat-util.h index 11da6f4ab7a..347d885a19f 100644 --- a/src/basic/stat-util.h +++ b/src/basic/stat-util.h @@ -29,7 +29,11 @@ static inline int dir_is_empty(const char *path, bool ignore_hidden_or_backup) { return dir_is_empty_at(AT_FDCWD, path, ignore_hidden_or_backup); } -bool null_or_empty(struct stat *st) _pure_; +bool stat_may_be_dev_null(struct stat *st) _pure_; +bool stat_is_empty(struct stat *st) _pure_; +static inline bool null_or_empty(struct stat *st) { + return stat_may_be_dev_null(st) || stat_is_empty(st); +} int null_or_empty_path_with_root(const char *fn, const char *root); static inline int null_or_empty_path(const char *fn) { -- 2.47.3