X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbasic%2Ffileio.c;h=3bb1d3e036dd3b10796ef99c3bb3a4fbf865b2aa;hp=388bc1825eddfc7800b4899347fe9a30c7776eae;hb=3389adca4a8f7dec9885fc8ce034e3302812e436;hpb=c5729796b4ec5e5f4800bfe6bd9ceb5c2da81fbe
diff --git a/src/basic/fileio.c b/src/basic/fileio.c
index 388bc1825..3bb1d3e03 100644
--- a/src/basic/fileio.c
+++ b/src/basic/fileio.c
@@ -1,5 +1,3 @@
-/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-
/***
This file is part of systemd.
@@ -19,6 +17,15 @@
along with systemd; If not, see .
***/
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
#include
#include "alloc-util.h"
@@ -28,15 +35,17 @@
#include "fileio.h"
#include "fs-util.h"
#include "hexdecoct.h"
+//#include "log.h"
+//#include "macro.h"
#include "parse-util.h"
#include "path-util.h"
#include "random-util.h"
#include "stdio-util.h"
#include "string-util.h"
#include "strv.h"
+//#include "time-util.h"
#include "umask-util.h"
#include "utf8.h"
-#include "util.h"
int write_string_stream(FILE *f, const char *line, bool enforce_newline) {
@@ -154,7 +163,7 @@ int read_one_line_file(const char *fn, char **line) {
if (!fgets(t, sizeof(t), f)) {
if (ferror(f))
- return errno ? -errno : -EIO;
+ return errno > 0 ? -errno : -EIO;
t[0] = 0;
}
@@ -636,6 +645,7 @@ int parse_env_file(
return r < 0 ? r : n_pushed;
}
+#if 0 /// UNNEEDED by elogind
static int load_env_file_push(
const char *filename, unsigned line,
const char *key, char *value,
@@ -691,8 +701,6 @@ int load_env_file(FILE *f, const char *fname, const char *newline, char ***rl) {
return 0;
}
-/// UNNEDED by elogind
-#if 0
static int load_env_file_push_pairs(
const char *filename, unsigned line,
const char *key, char *value,
@@ -751,7 +759,6 @@ int load_env_file_pairs(FILE *f, const char *fname, const char *newline, char **
*rl = m;
return 0;
}
-#endif // 0
static void write_env_var(FILE *f, const char *v) {
const char *p;
@@ -813,7 +820,6 @@ int write_env_file(const char *fname, char **l) {
return r;
}
-#if 0 /// UNNEEDED by elogind
int executable_is_script(const char *path, char **interpreter) {
int r;
_cleanup_free_ char *line = NULL;
@@ -936,6 +942,7 @@ DIR *xopendirat(int fd, const char *name, int flags) {
return d;
}
+#if 0 /// UNNEEDED by elogind
static int search_and_fopen_internal(const char *path, const char *mode, const char *root, char **search, FILE **_f) {
char **i;
@@ -996,7 +1003,6 @@ int search_and_fopen(const char *path, const char *mode, const char *root, const
return search_and_fopen_internal(path, mode, root, copy, _f);
}
-#if 0 /// UNNEEDED by elogind
int search_and_fopen_nulstr(const char *path, const char *mode, const char *root, const char *search, FILE **_f) {
_cleanup_strv_free_ char **s = NULL;
@@ -1060,7 +1066,7 @@ int fflush_and_check(FILE *f) {
fflush(f);
if (ferror(f))
- return errno ? -errno : -EIO;
+ return errno > 0 ? -errno : -EIO;
return 0;
}
@@ -1139,6 +1145,7 @@ int tempfn_xxxxxx(const char *p, const char *extra, char **ret) {
return 0;
}
+#if 0 /// UNNEEDED by elogind
int tempfn_random(const char *p, const char *extra, char **ret) {
const char *fn;
char *t, *x;
@@ -1181,7 +1188,6 @@ int tempfn_random(const char *p, const char *extra, char **ret) {
return 0;
}
-#if 0 /// UNNEEDED by elogind
int tempfn_random_child(const char *p, const char *extra, char **ret) {
char *t, *x;
uint64_t u;
@@ -1250,4 +1256,33 @@ int read_timestamp_file(const char *fn, usec_t *ret) {
*ret = (usec_t) t;
return 0;
}
+
+int fputs_with_space(FILE *f, const char *s, const char *separator, bool *space) {
+ int r;
+
+ assert(s);
+
+ /* Outputs the specified string with fputs(), but optionally prefixes it with a separator. The *space parameter
+ * when specified shall initially point to a boolean variable initialized to false. It is set to true after the
+ * first invocation. This call is supposed to be use in loops, where a separator shall be inserted between each
+ * element, but not before the first one. */
+
+ if (!f)
+ f = stdout;
+
+ if (space) {
+ if (!separator)
+ separator = " ";
+
+ if (*space) {
+ r = fputs(separator, f);
+ if (r < 0)
+ return r;
+ }
+
+ *space = true;
+ }
+
+ return fputs(s, f);
+}
#endif // 0