kwo pushed a commit to branch master. http://git.enlightenment.org/e16/e16.git/commit/?id=8b106100954c36cd1fb221ec9afc4292926bdc99
commit 8b106100954c36cd1fb221ec9afc4292926bdc99 Author: Kim Woelders <k...@woelders.dk> Date: Fri May 1 04:02:56 2020 +0200 Espawn(): Use variable argument list --- src/E.h | 4 ++-- src/actions.c | 12 +++++++++--- src/main.c | 8 ++------ src/snaps.c | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/E.h b/src/E.h index dd90bfa4..99bedd65 100644 --- a/src/E.h +++ b/src/E.h @@ -3,7 +3,7 @@ /*****************************************************************************/ /* * Copyright (C) 2000-2007 Carsten Haitzler, Geoff Harrison and various contributors - * Copyright (C) 2004-2018 Kim Woelders + * Copyright (C) 2004-2020 Kim Woelders * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -447,7 +447,7 @@ void About(void); #define EXEC_SET_STARTUP_ID 0x02 void Eexec(const char *cmd); int EspawnApplication(const char *params, int flags); -void Espawn(const char *cmd); +void Espawn(const char *fmt, ...); int __PRINTF__ Esystem(const char *fmt, ...); /* config.c */ diff --git a/src/actions.c b/src/actions.c index 8d5dd573..1252f1d4 100644 --- a/src/actions.c +++ b/src/actions.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2000-2007 Carsten Haitzler, Geoff Harrison and various contributors - * Copyright (C) 2004-2017 Kim Woelders + * Copyright (C) 2004-2020 Kim Woelders * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -211,12 +211,18 @@ _Espawn(int argc __UNUSED__, char **argv) } void -Espawn(const char *cmd) +Espawn(const char *fmt, ...) { + va_list args; + char buf[FILEPATH_LEN_MAX]; int argc; char **argv; - argv = StrlistDecodeEscaped(cmd, &argc); + va_start(args, fmt); + vsnprintf(buf, sizeof(buf), fmt, args); + va_end(args); + + argv = StrlistDecodeEscaped(buf, &argc); _Espawn(argc, argv); StrlistFree(argv, argc); } diff --git a/src/main.c b/src/main.c index f8b22c41..58033629 100644 --- a/src/main.c +++ b/src/main.c @@ -471,17 +471,13 @@ RunDocBrowser(void) if (!canread(buf)) return; - Esnprintf(buf, sizeof(buf), "%s/edox %s/E-docs", EDirBin(), EDirRoot()); - Espawn(buf); + Espawn("%s/edox %s/E-docs", EDirBin(), EDirRoot()); } static void RunMenuGen(void) { - char buf[FILEPATH_LEN_MAX]; - - Esnprintf(buf, sizeof(buf), "%s/scripts/e_gen_menu", EDirRoot()); - Espawn(buf); + Espawn("%s/scripts/e_gen_menu", EDirRoot()); } static void diff --git a/src/snaps.c b/src/snaps.c index 369d68f5..9c801bfe 100644 --- a/src/snaps.c +++ b/src/snaps.c @@ -1170,7 +1170,7 @@ SnapshotsSpawn(void) !sn->used && !(sn->match_flags & SNAP_MATCH_MULTIPLE)) { sn->startup_id = ++Mode.apps.startup_id; - Espawn(sn->cmd); + Espawn("%s", sn->cmd); } } } --