diff options
author | Daniel Mack <daniel@zonque.org> | 2015-07-06 17:31:44 -0400 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2017-03-14 10:05:56 +0100 |
commit | ce5792dac67c5ae5656f1f9665b777d44af4cb35 (patch) | |
tree | fd1dffb820e69e3b046211dc4e9a95fc7ceb5f24 /src | |
parent | 1818b3de53f8268eaf4bbbe57186c13d86b62578 (diff) |
fileio: add 'enforce_newline' argument to write_string_stream()
Add a flag to control whether write_string_stream() should always enforce a
trailing newline character in the file.
Diffstat (limited to 'src')
-rw-r--r-- | src/shared/fileio.c | 10 | ||||
-rw-r--r-- | src/shared/fileio.h | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/shared/fileio.c b/src/shared/fileio.c index 00fb6f8b5..82b40aa7d 100644 --- a/src/shared/fileio.c +++ b/src/shared/fileio.c @@ -27,14 +27,14 @@ #include "ctype.h" #include "fileio.h" -int write_string_stream(FILE *f, const char *line) { +int write_string_stream(FILE *f, const char *line, bool enforce_newline) { assert(f); assert(line); errno = 0; fputs(line, f); - if (!endswith(line, "\n")) + if (enforce_newline && !endswith(line, "\n")) fputc('\n', f); fflush(f); @@ -55,7 +55,7 @@ int write_string_file(const char *fn, const char *line) { if (!f) return -errno; - return write_string_stream(f, line); + return write_string_stream(f, line, true); } int write_string_file_no_create(const char *fn, const char *line) { @@ -77,7 +77,7 @@ int write_string_file_no_create(const char *fn, const char *line) { return -errno; } - return write_string_stream(f, line); + return write_string_stream(f, line, true); } int write_string_file_atomic(const char *fn, const char *line) { @@ -94,7 +94,7 @@ int write_string_file_atomic(const char *fn, const char *line) { fchmod_umask(fileno(f), 0644); - r = write_string_stream(f, line); + r = write_string_stream(f, line, true); if (r >= 0) { if (rename(p, fn) < 0) r = -errno; diff --git a/src/shared/fileio.h b/src/shared/fileio.h index 91d4a0d2d..989b904c2 100644 --- a/src/shared/fileio.h +++ b/src/shared/fileio.h @@ -25,7 +25,7 @@ #include "macro.h" -int write_string_stream(FILE *f, const char *line); +int write_string_stream(FILE *f, const char *line, bool enforce_newline); int write_string_file(const char *fn, const char *line); int write_string_file_no_create(const char *fn, const char *line); int write_string_file_atomic(const char *fn, const char *line); |