#include <linux/btrfs.h>
#include <sys/ioctl.h>
+#include "alloc-util.h"
#include "btrfs.h"
#include "errno-util.h"
#include "fd-util.h"
#include "fs-util.h"
#include "path-util.h"
+#include "string-util.h"
int btrfs_validate_subvolume_name(const char *name) {
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include "alloc-util.h"
#include "capsule-util.h"
#include "path-util.h"
#include "user-util.h"
#include "log.h"
#include "path-util.h"
#include "string-util.h"
+#include "strv.h"
#include "user-util.h"
bool unsafe_transition(const struct stat *a, const struct stat *b) {
#include <string.h>
#include <sys/stat.h>
+#include "alloc-util.h"
#include "chase.h"
#include "devnum-util.h"
#include "parse-util.h"
#include "socket-util.h"
#include "stdio-util.h"
#include "string-util.h"
+#include "strv.h"
#include "sync-util.h"
#include "terminal-util.h"
#include "tmpfile-util.h"
#include "strv.h"
#include "time-util.h"
+bool is_path(const char *p) {
+ if (!p) /* A NULL pointer is definitely not a path */
+ return false;
+
+ return strchr(p, '/');
+}
+
int path_split_and_make_absolute(const char *p, char ***ret) {
_cleanup_strv_free_ char **l = NULL;
int r;
return strv_uniq(l);
}
+char* skip_leading_slash(const char *p) {
+ return skip_leading_chars(p, "/");
+}
+
char* path_simplify_full(char *path, PathSimplifyFlags flags) {
bool add_slash = false, keep_trailing_slash, absolute, beginning = true;
char *f = path;
return path;
}
+int path_simplify_alloc(const char *path, char **ret) {
+ assert(ret);
+
+ if (!path) {
+ *ret = NULL;
+ return 0;
+ }
+
+ char *t = strdup(path);
+ if (!t)
+ return -ENOMEM;
+
+ *ret = path_simplify(t);
+ return 0;
+}
+
char* path_startswith_full(const char *path, const char *prefix, bool accept_dot_dot) {
assert(path);
assert(prefix);
return path_equal(path, "/");
}
+const char* empty_to_root(const char *path) {
+ return isempty(path) ? "/" : path;
+}
+
bool path_strv_contains(char * const *l, const char *path) {
assert(path);
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <alloca.h>
#include <stdbool.h>
#include <stddef.h>
#include "macro.h"
-#include "stat-util.h"
-#include "string-util.h"
-#include "strv.h"
#include "time-util.h"
#define PATH_SPLIT_BIN(x) x "sbin:" x "bin"
#endif
}
-static inline bool is_path(const char *p) {
- if (!p) /* A NULL pointer is definitely not a path */
- return false;
-
- return strchr(p, '/');
-}
+bool is_path(const char *p) _pure_;
static inline bool path_is_absolute(const char *p) {
if (!p) /* A NULL pointer is definitely not an absolute path */
#define path_extend(x, ...) path_extend_internal(x, __VA_ARGS__, POINTER_MAX)
#define path_join(...) path_extend_internal(NULL, __VA_ARGS__, POINTER_MAX)
-static inline char* skip_leading_slash(const char *p) {
- return skip_leading_chars(p, "/");
-}
+char* skip_leading_slash(const char *p) _pure_;
typedef enum PathSimplifyFlags {
PATH_SIMPLIFY_KEEP_TRAILING_SLASH = 1 << 0,
return path_simplify_full(path, 0);
}
-static inline int path_simplify_alloc(const char *path, char **ret) {
- assert(ret);
-
- if (!path) {
- *ret = NULL;
- return 0;
- }
-
- char *t = strdup(path);
- if (!t)
- return -ENOMEM;
-
- *ret = path_simplify(t);
- return 0;
-}
+int path_simplify_alloc(const char *path, char **ret);
/* Note: the search terminates on the first NULL item. */
#define PATH_IN_SET(p, ...) path_strv_contains(STRV_MAKE(__VA_ARGS__), p)
}
bool empty_or_root(const char *path);
-static inline const char* empty_to_root(const char *path) {
- return isempty(path) ? "/" : path;
-}
+const char* empty_to_root(const char *path) _pure_;
bool path_strv_contains(char * const *l, const char *path);
bool prefixed_path_strv_contains(char * const *l, const char *path);
#include <fcntl.h>
#include <sys/stat.h>
+#include "alloc-util.h"
#include "errno-util.h"
#include "fd-util.h"
#include "fs-util.h"
#include "log.h"
#include "path-util.h"
+#include "string-util.h"
#include "sync-util.h"
int fsync_directory_of_file(int fd) {
#include <unistd.h>
#include "af-list.h"
+#include "alloc-util.h"
#include "fd-util.h"
#include "fileio.h"
#include "log.h"
#include "alloc-util.h"
#include "glob-util.h"
+#include "hash-funcs.h"
#include "hexdecoct.h"
#include "log.h"
#include "memory-util.h"
#include "dirent-util.h"
#include "env-util.h"
#include "errno-util.h"
+#include "extract-word.h"
#include "fd-util.h"
#include "fileio.h"
#include "log.h"
#include "parse-util.h"
#include "path-util.h"
#include "pretty-print.h"
+#include "strv.h"
#include "sync-util.h"
#include "terminal-util.h"
#include "verbs.h"
#include "log.h"
#include "nulstr-util.h"
#include "path-util.h"
+#include "strv.h"
#define IPE_SECFS_DIR "/sys/kernel/security/ipe"
#define IPE_SECFS_NEW_POLICY IPE_SECFS_DIR "/new_policy"
#include "process-util.h"
#include "stat-util.h"
#include "string-table.h"
+#include "strv.h"
#include "terminal-util.h"
#include "tpm2-pcr.h"
#include "tpm2-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include "alloc-util.h"
#include "catalog.h"
#include "journalctl.h"
#include "journalctl-catalog.h"
#include "logs-show.h"
#include "missing_sched.h"
#include "path-util.h"
+#include "strv.h"
#include "unit-name.h"
static int add_invocation(sd_journal *j) {
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include "alloc-util.h"
#include "dirent-util.h"
#include "fd-util.h"
#include "format-table.h"
#include "journalctl-util.h"
#include "log.h"
#include "logs-show.h"
+#include "strv.h"
#include "syslog-util.h"
int action_print_header(void) {
#include "process-util.h"
#include "selinux-util.h"
#include "socket-util.h"
+#include "stat-util.h"
#include "string-util.h"
#include "strv.h"
#include "unaligned.h"
#include "device-filter.h"
#include "path-util.h"
+#include "strv.h"
int update_match_strv(Hashmap **match_strv, const char *key, const char *value, bool clear_on_null) {
char **strv;
#include "stat-util.h"
#include "string-table.h"
#include "string-util.h"
+#include "strv.h"
#include "strxcpyx.h"
#include "time-util.h"
#include "parse-util.h"
#include "path-util.h"
#include "process-util.h"
+#include "stat-util.h"
#include "string-util.h"
+#include "strv.h"
#include "syslog-util.h"
#include "user-util.h"
#include "rm-rf.h"
#include "selinux-util.h"
#include "smack-util.h"
+#include "stat-util.h"
#include "stdio-util.h"
#include "string-util.h"
#include "strv.h"
#include "path-util.h"
#include "pretty-print.h"
#include "selinux-util.h"
+#include "stat-util.h"
#include "string-table.h"
#include "strv.h"
#include "virt.h"
#include "path-util.h"
#include "recurse-dir.h"
#include "rm-rf.h"
+#include "strv.h"
#include "user-util.h"
#include "userns-registry.h"
#include "recovery-key.h"
#include "sort-util.h"
#include "string-table.h"
+#include "strv.h"
#include "terminal-util.h"
#include "tpm2-util.h"
#include "unaligned.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include "alloc-util.h"
#include "boot-entry.h"
#include "chase.h"
#include "fd-util.h"
#include "path-util.h"
#include "string-table.h"
#include "string-util.h"
+#include "strv.h"
#include "utf8.h"
bool boot_entry_token_valid(const char *p) {
#include "sd-event.h"
#include "sd-id128.h"
+#include "alloc-util.h"
#include "bus-common-errors.h"
#include "bus-internal.h"
#include "bus-label.h"
#include "socket-util.h"
#include "stdio-util.h"
#include "string-table.h"
+#include "strv.h"
#include "uid-classification.h"
static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
#include "mkdir-label.h"
#include "nulstr-util.h"
#include "path-util.h"
+#include "stat-util.h"
#include "terminal-util.h"
#include "umask-util.h"
#include "user-util.h"
#include "sort-util.h"
#include "stat-util.h"
#include "string-util.h"
+#include "strv.h"
#include "strxcpyx.h"
#include "terminal-util.h"
#include "time-util.h"
#include <pthread.h>
#include <unistd.h>
+#include "alloc-util.h"
#include "chattr-util.h"
#include "copy.h"
#include "errno-util.h"
#include "parse-util.h"
#include "stdio-util.h"
#include "string-table.h"
+#include "string-util.h"
bool numa_policy_is_valid(const NUMAPolicy *policy) {
assert(policy);
#include <fcntl.h>
+#include "alloc-util.h"
#include "escape.h"
#include "extract-word.h"
#include "fd-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include "alloc-util.h"
#include "format-table.h"
#include "log.h"
#include "parse-argument.h"
#include <sys/socket.h>
#include "af-list.h"
+#include "alloc-util.h"
#include "extract-word.h"
#include "ip-protocol-list.h"
#include "log.h"
#include "parse-helpers.h"
#include "parse-util.h"
#include "path-util.h"
+#include "string-util.h"
#include "utf8.h"
static bool validate_api_vfs(const char *path, PathSimplifyWarnFlags flags) {
#include "path-util.h"
#include "selinux-util.h"
#include "stdio-util.h"
+#include "string-util.h"
#include "time-util.h"
#if HAVE_SELINUX
#include <sys/statvfs.h>
#include "acl-util.h"
+#include "alloc-util.h"
#include "dirent-util.h"
#include "fd-util.h"
#include "fileio.h"
#include "parse-util.h"
#include "path-util.h"
#include "recurse-dir.h"
+#include "string-util.h"
+#include "strv.h"
#include "vpick.h"
void pick_result_done(PickResult *p) {
#include "io-util.h"
#include "path-util.h"
#include "string-util.h"
+#include "strv.h"
#include "terminal-util.h"
#include "user-util.h"
#include "utmp-wtmp.h"
#include "path-util.h"
#include "ratelimit.h"
#include "string-util.h"
+#include "strv.h"
#include "time-util.h"
#include "watchdog.h"
#include "proc-cmdline.h"
#include "special.h"
#include "string-util.h"
+#include "strv.h"
#include "unit-file.h"
/*
#include "fd-util.h"
#include "path-util.h"
#include "process-util.h"
+#include "stat-util.h"
#include "string-util.h"
#include "tests.h"
#include "mountpoint-util.h"
#include "path-util.h"
#include "rm-rf.h"
+#include "stat-util.h"
#include "string-util.h"
#include "tests.h"
#include "tmpfile-util.h"
#include "macro.h"
#include "path-util.h"
#include "process-util.h"
+#include "stat-util.h"
#include "strv.h"
#include "terminal-util.h"
#include "tests.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include "alloc-util.h"
#include "chase.h"
#include "fd-util.h"
#include "log.h"
#include "offline-passwd.h"
#include "path-util.h"
+#include "strv.h"
#include "user-util.h"
DEFINE_PRIVATE_HASH_OPS_WITH_KEY_DESTRUCTOR(uid_gid_hash_ops, char, string_hash_func, string_compare_func, free);
#include "log.h"
#include "path-util.h"
#include "string-table.h"
+#include "strv.h"
#include "udev-ctrl.h"
#include "udev-rules.h"
#include "udev-varlink.h"
#include "path-util.h"
#include "pretty-print.h"
#include "process-util.h"
+#include "strv.h"
#include "terminal-util.h"
#include "varlink-idl-util.h"
#include "varlink-util.h"
#include "proc-cmdline.h"
#include "specifier.h"
#include "string-util.h"
+#include "strv.h"
#include "unit-name.h"
static const char *arg_dest = NULL;
#include "macro.h"
#include "parse-argument.h"
#include "path-util.h"
+#include "stat-util.h"
#include "string-util.h"
#include "vmspawn-mount.h"