goto finish;
}
+ if (!endswith(line, "\n"))
+ fputc('\n', f);
+
r = 0;
finish:
fclose(f);
#elif defined(TARGET_DEBIAN)
if (!pretty_name) {
- if ((r = read_one_line_file("/etc/debian_version", &pretty_name)) < 0) {
+ char *version;
+
+ if ((r = read_one_line_file("/etc/debian_version", &version)) < 0) {
if (r != -ENOENT)
log_warning("Failed to read /etc/debian_version: %s", strerror(-r));
- } else
- truncate_nl(pretty_name);
+ } else {
+ truncate_nl(version);
+ pretty_name = strappend("Debian ", version);
+ free(version);
+
+ if (!pretty_name)
+ log_warning("Failed to allocate Debian version string.");
+ }
}
if (!ansi_color)
return false;
}
-DIR *xopendirat(int fd, const char *name) {
- return fdopendir(openat(fd, name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC));
+DIR *xopendirat(int fd, const char *name, int flags) {
+ return fdopendir(openat(fd, name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|flags));
}
int signal_from_string_try_harder(const char *s) {