From 4d8b8f52d5eebdc6e2cdacf6045b43dae259aa4f Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Mon, 4 Feb 2019 15:29:16 +0100 Subject: [PATCH] Split utility code up into translation-unit per function Signed-off-by: David Oberhollenzer --- Makefile.am | 4 ++- lib/util/{util.c => canonicalize_name.c} | 46 ------------------------ lib/util/read_retry.c | 26 ++++++++++++++ lib/util/write_retry.c | 26 ++++++++++++++ 4 files changed, 55 insertions(+), 47 deletions(-) rename lib/util/{util.c => canonicalize_name.c} (54%) create mode 100644 lib/util/read_retry.c create mode 100644 lib/util/write_retry.c diff --git a/Makefile.am b/Makefile.am index 4cd8b39..fecc6d5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,7 +4,9 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -D_GNU_SOURCE AM_CFLAGS = $(WARN_CFLAGS) # helper libraries -libutil_a_SOURCES = lib/util/input_file.c lib/util/mkdir_p.c lib/util/util.c +libutil_a_SOURCES = lib/util/input_file.c lib/util/mkdir_p.c +libutil_a_SOURCES += lib/util/write_retry.c lib/util/read_retry.c +libutil_a_SOURCES += lib/util/canonicalize_name.c libutil_a_SOURCES += include/util/util.h include/util/input_file.h # application core diff --git a/lib/util/util.c b/lib/util/canonicalize_name.c similarity index 54% rename from lib/util/util.c rename to lib/util/canonicalize_name.c index 1df9273..2717c12 100644 --- a/lib/util/util.c +++ b/lib/util/canonicalize_name.c @@ -1,6 +1,4 @@ -#include #include -#include #include "util/util.h" @@ -55,47 +53,3 @@ int canonicalize_name(char *filename) return 0; } - -ssize_t write_retry(int fd, void *data, size_t size) -{ - ssize_t ret, total = 0; - - while (size > 0) { - ret = write(fd, data, size); - if (ret == 0) - break; - if (ret < 0) { - if (errno == EINTR) - continue; - return -1; - } - - data = (char *)data + ret; - size -= ret; - total += ret; - } - - return total; -} - -ssize_t read_retry(int fd, void *buffer, size_t size) -{ - ssize_t ret, total = 0; - - while (size > 0) { - ret = read(fd, buffer, size); - if (ret < 0) { - if (errno == EINTR) - continue; - return -1; - } - if (ret == 0) - break; - - total += ret; - size -= ret; - buffer = (char *)buffer + ret; - } - - return total; -} diff --git a/lib/util/read_retry.c b/lib/util/read_retry.c new file mode 100644 index 0000000..d8f78bb --- /dev/null +++ b/lib/util/read_retry.c @@ -0,0 +1,26 @@ +#include +#include + +#include "util/util.h" + +ssize_t read_retry(int fd, void *buffer, size_t size) +{ + ssize_t ret, total = 0; + + while (size > 0) { + ret = read(fd, buffer, size); + if (ret < 0) { + if (errno == EINTR) + continue; + return -1; + } + if (ret == 0) + break; + + total += ret; + size -= ret; + buffer = (char *)buffer + ret; + } + + return total; +} diff --git a/lib/util/write_retry.c b/lib/util/write_retry.c new file mode 100644 index 0000000..402c4b9 --- /dev/null +++ b/lib/util/write_retry.c @@ -0,0 +1,26 @@ +#include +#include + +#include "util/util.h" + +ssize_t write_retry(int fd, void *data, size_t size) +{ + ssize_t ret, total = 0; + + while (size > 0) { + ret = write(fd, data, size); + if (ret == 0) + break; + if (ret < 0) { + if (errno == EINTR) + continue; + return -1; + } + + data = (char *)data + ret; + size -= ret; + total += ret; + } + + return total; +}