mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
fish: Use guestfs_event_to_string instead of guestfish-specific generated functions.
This commit is contained in:
@@ -112,11 +112,15 @@ do_event_handler (guestfs_h *g,
|
||||
}
|
||||
|
||||
if (pid == 0) { /* Child process. */
|
||||
char *str;
|
||||
|
||||
shell = getenv ("SHELL");
|
||||
if (!shell)
|
||||
shell = "/bin/sh";
|
||||
|
||||
setenv ("EVENT", event_name_of_event_bitmask (event), 1);
|
||||
str = guestfs_event_to_string (event);
|
||||
setenv ("EVENT", str, 1);
|
||||
free (str);
|
||||
|
||||
/* Construct the command and arguments. */
|
||||
i = 0;
|
||||
@@ -244,6 +248,21 @@ run_delete_event (const char *cmd, size_t argc, char *argv[])
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
print_event_set (uint64_t event_bitmask, FILE *fp)
|
||||
{
|
||||
if (event_bitmask == GUESTFS_EVENT_ALL)
|
||||
fputs ("*", fp);
|
||||
else {
|
||||
CLEANUP_FREE char *str = guestfs_event_to_string (event_bitmask);
|
||||
if (!str) {
|
||||
perror ("guestfs_event_to_string");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
fputs (str, fp);
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
list_event (void *x, void *data)
|
||||
{
|
||||
|
||||
@@ -71,8 +71,6 @@ extern void init_event_handlers (void);
|
||||
extern void free_event_handlers (void);
|
||||
|
||||
/* in event-names.c (auto-generated) */
|
||||
extern const char *event_name_of_event_bitmask (uint64_t);
|
||||
extern void print_event_set (uint64_t, FILE *);
|
||||
extern int event_bitmask_of_event_set (const char *arg, uint64_t *);
|
||||
|
||||
/* in alloc.c */
|
||||
|
||||
@@ -1000,48 +1000,6 @@ and generate_fish_event_names () =
|
||||
|
||||
#include \"fish.h\"
|
||||
|
||||
const char *
|
||||
event_name_of_event_bitmask (uint64_t ev)
|
||||
{
|
||||
switch (ev) {
|
||||
";
|
||||
|
||||
List.iter (
|
||||
fun (name, _) ->
|
||||
pr " case GUESTFS_EVENT_%s:\n" (String.uppercase name);
|
||||
pr " return \"%s\";\n" name
|
||||
) events;
|
||||
|
||||
pr " default:
|
||||
abort (); /* should not happen */
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
print_event_set (uint64_t event_bitmask, FILE *fp)
|
||||
{
|
||||
int comma = 0;
|
||||
|
||||
if (event_bitmask == GUESTFS_EVENT_ALL) {
|
||||
fputs (\"*\", fp);
|
||||
return;
|
||||
}
|
||||
|
||||
";
|
||||
|
||||
iteri (
|
||||
fun i (name, _) ->
|
||||
pr " if (event_bitmask & GUESTFS_EVENT_%s) {\n" (String.uppercase name);
|
||||
if i > 0 then
|
||||
pr " if (comma) fputc (',', fp);\n";
|
||||
pr " comma = 1;\n";
|
||||
pr " fputs (\"%s\", fp);\n" name;
|
||||
pr " }\n"
|
||||
) events;
|
||||
|
||||
pr "\
|
||||
}
|
||||
|
||||
int
|
||||
event_bitmask_of_event_set (const char *arg, uint64_t *eventset_r)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user