[PATCH v2 3/6] wrapper: move is_empty_file() from builtin/am.c
- From
Pranit Bauva <pranit.bauva@gmail.com>
- Date
- Jun 15, 2016, 14:00 UTC
- Message-ID
- <20160615140026.10519-4-pranit.bauva@gmail.com>
- In-Reply-To
- <20160615140026.10519-1-pranit.bauva@gmail.com>
is_empty_file() can help to refactor a lot of code. Also it is quite helpful while converting shell scripts which use `test -s`. Since is_empty_file() is now a "library" function, its inappropriate to die() so instead error_errno() is used to convey the message to stderr while the appropriate boolean value is returned.
Suggested-by: Torsten Bögershausen <tboegi@web.de> Mentored-by: Lars Schneider <larsxschneider@gmail.com> Mentored-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> --- builtin/am.c | 16 ---------------- cache.h | 3 +++ wrapper.c | 13 +++++++++++++ 3 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/builtin/am.c b/builtin/am.c index 3dfe70b..84f21d0 100644 --- a/builtin/am.c +++ b/builtin/am.c @@ -30,22 +30,6 @@ #include "mailinfo.h" /** - * Returns 1 if the file is empty or does not exist, 0 otherwise. - */ -static int is_empty_file(const char *filename) -{ - struct stat st; - - if (stat(filename, &st) < 0) { - if (errno == ENOENT) - return 1; - die_errno(_("could not stat %s"), filename); - } - - return !st.st_size; -} - -/** * Returns the length of the first line of msg. */ static int linelen(const char *msg) diff --git a/cache.h b/cache.h index 6049f86..8eaad70 100644 --- a/cache.h +++ b/cache.h @@ -1870,4 +1870,7 @@ void sleep_millisec(int millisec); */ void safe_create_dir(const char *dir, int share); +/* Return 1 if the file is empty or does not exists, 0 otherwise. */ +extern int is_empty_file(const char *filename); + #endif /* CACHE_H */ diff --git a/wrapper.c b/wrapper.c index 5dc4e15..36a3eeb 100644 --- a/wrapper.c +++ b/wrapper.c @@ -696,3 +696,16 @@ void sleep_millisec(int millisec) { poll(NULL, 0, millisec); } + +int is_empty_file(const char *filename) +{ + struct stat st; + + if (stat(filename, &st) < 0) { + if (errno == ENOENT) + return 1; + error_errno(_("could not stat %s"), filename); + } + + return !st.st_size; +}
-- 2.9.0