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