]>
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 | ||
303ee601 | 6 | typedef int (*SpecifierCallback)(char specifier, const void *data, const void *userdata, char **ret); |
9e2f7c11 LP |
7 | |
8 | typedef struct Specifier { | |
9 | const char specifier; | |
10 | const SpecifierCallback lookup; | |
303ee601 | 11 | const void *data; |
9e2f7c11 LP |
12 | } Specifier; |
13 | ||
303ee601 | 14 | int specifier_printf(const char *text, const Specifier table[], const void *userdata, char **ret); |
9e2f7c11 | 15 | |
303ee601 | 16 | int specifier_string(char specifier, const void *data, const void *userdata, char **ret); |
d848b9cb | 17 | |
303ee601 ZJS |
18 | int specifier_machine_id(char specifier, const void *data, const void *userdata, char **ret); |
19 | int specifier_boot_id(char specifier, const void *data, const void *userdata, char **ret); | |
20 | int specifier_host_name(char specifier, const void *data, const void *userdata, char **ret); | |
21 | int specifier_kernel_release(char specifier, const void *data, const void *userdata, char **ret); | |
e82f30d1 | 22 | |
303ee601 ZJS |
23 | int specifier_group_name(char specifier, const void *data, const void *userdata, char **ret); |
24 | int specifier_group_id(char specifier, const void *data, const void *userdata, char **ret); | |
25 | int specifier_user_name(char specifier, const void *data, const void *userdata, char **ret); | |
26 | int specifier_user_id(char specifier, const void *data, const void *userdata, char **ret); | |
27 | int specifier_user_home(char specifier, const void *data, const void *userdata, char **ret); | |
28 | int specifier_user_shell(char specifier, const void *data, const void *userdata, char **ret); | |
36444d22 | 29 | |
303ee601 ZJS |
30 | int specifier_tmp_dir(char specifier, const void *data, const void *userdata, char **ret); |
31 | int specifier_var_tmp_dir(char specifier, const void *data, const void *userdata, char **ret); | |
b294e594 | 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); |