From: Lennart Poettering Date: Sun, 14 Feb 2010 00:05:55 +0000 (+0100) Subject: execute: simplify appending to execution list X-Git-Tag: v1~697 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=a6a80b4f440bcc1c6087572503c08a72ee674075 execute: simplify appending to execution list --- diff --git a/execute.c b/execute.c index 8720af9e2..4c6aa4eea 100644 --- a/execute.c +++ b/execute.c @@ -749,6 +749,20 @@ void exec_command_dump_list(ExecCommand *c, FILE *f, const char *prefix) { exec_command_dump(c, f, prefix); } +void exec_command_append_list(ExecCommand **l, ExecCommand *e) { + ExecCommand *end; + + assert(l); + assert(e); + + if (*l) { + /* It's kinda important that we keep the order here */ + LIST_FIND_TAIL(ExecCommand, command, *l, end); + LIST_INSERT_AFTER(ExecCommand, command, *l, end, e); + } else + *l = e; +} + static const char* const exec_output_table[_EXEC_OUTPUT_MAX] = { [EXEC_OUTPUT_CONSOLE] = "console", [EXEC_OUTPUT_NULL] = "null", diff --git a/execute.h b/execute.h index 737973dad..3e332105c 100644 --- a/execute.h +++ b/execute.h @@ -154,6 +154,7 @@ void exec_command_free_array(ExecCommand **c, unsigned n); char *exec_command_line(ExecCommand *c); void exec_command_dump(ExecCommand *c, FILE *f, const char *prefix); void exec_command_dump_list(ExecCommand *c, FILE *f, const char *prefix); +void exec_command_append_list(ExecCommand **l, ExecCommand *e); void exec_context_init(ExecContext *c); void exec_context_done(ExecContext *c); diff --git a/load-fragment.c b/load-fragment.c index 4183b5c8f..9bc9b2b6a 100644 --- a/load-fragment.c +++ b/load-fragment.c @@ -328,7 +328,7 @@ static int config_parse_exec( void *data, void *userdata) { - ExecCommand **e = data, *ee, *nce = NULL; + ExecCommand **e = data, *nce = NULL; char **n; char *w; unsigned k; @@ -367,12 +367,7 @@ static int config_parse_exec( if (!(nce->path = strdup(n[0]))) goto fail; - if (*e) { - /* It's kinda important that we keep the order here */ - LIST_FIND_TAIL(ExecCommand, command, *e, ee); - LIST_INSERT_AFTER(ExecCommand, command, *e, ee, nce); - } else - *e = nce; + exec_command_append_list(e, nce); return 0;