]>
Commit | Line | Data |
---|---|---|
53e1b683 | 1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
c2f1db8f | 2 | #pragma once |
9e2f7c11 | 3 | |
e82f30d1 LP |
4 | #include "string-util.h" |
5 | ||
19f6d710 | 6 | typedef int (*SpecifierCallback)(char specifier, void *data, void *userdata, char **ret); |
9e2f7c11 LP |
7 | |
8 | typedef struct Specifier { | |
9 | const char specifier; | |
10 | const SpecifierCallback lookup; | |
11 | void *data; | |
12 | } Specifier; | |
13 | ||
19f6d710 | 14 | int specifier_printf(const char *text, const Specifier table[], void *userdata, char **ret); |
9e2f7c11 | 15 | |
19f6d710 | 16 | int specifier_string(char specifier, void *data, void *userdata, char **ret); |
d848b9cb | 17 | |
19f6d710 LP |
18 | int specifier_machine_id(char specifier, void *data, void *userdata, char **ret); |
19 | int specifier_boot_id(char specifier, void *data, void *userdata, char **ret); | |
20 | int specifier_host_name(char specifier, void *data, void *userdata, char **ret); | |
21 | int specifier_kernel_release(char specifier, void *data, void *userdata, char **ret); | |
e82f30d1 | 22 | |
b75f0c69 DC |
23 | int specifier_group_name(char specifier, void *data, void *userdata, char **ret); |
24 | int specifier_group_id(char specifier, void *data, void *userdata, char **ret); | |
36444d22 LP |
25 | int specifier_user_name(char specifier, void *data, void *userdata, char **ret); |
26 | int specifier_user_id(char specifier, void *data, void *userdata, char **ret); | |
27 | int specifier_user_home(char specifier, void *data, void *userdata, char **ret); | |
28 | int specifier_user_shell(char specifier, void *data, void *userdata, char **ret); | |
29 | ||
b294e594 LP |
30 | int specifier_tmp_dir(char specifier, void *data, void *userdata, char **ret); |
31 | int specifier_var_tmp_dir(char specifier, void *data, void *userdata, char **ret); | |
32 | ||
e82f30d1 LP |
33 | static inline char* specifier_escape(const char *string) { |
34 | return strreplace(string, "%", "%%"); | |
35 | } | |
36 | ||
37 | int specifier_escape_strv(char **l, char ***ret); |