]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/shared/specifier.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 This file is part of systemd.
7 Copyright 2010 Lennart Poettering
10 #include "string-util.h"
12 typedef int (*SpecifierCallback
)(char specifier
, void *data
, void *userdata
, char **ret
);
14 typedef struct Specifier
{
16 const SpecifierCallback lookup
;
20 int specifier_printf(const char *text
, const Specifier table
[], void *userdata
, char **ret
);
22 int specifier_string(char specifier
, void *data
, void *userdata
, char **ret
);
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
);
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
);
34 static inline char* specifier_escape(const char *string
) {
35 return strreplace(string
, "%", "%%");
38 int specifier_escape_strv(char **l
, char ***ret
);