From a8ff61a0ff7ea3054124a2d2b5460cc6f9537b72 Mon Sep 17 00:00:00 2001 From: onefang Date: Sat, 24 Jul 2021 00:56:53 +1000 Subject: Rejig how the tmux interfaces work. --- src/sledjchisl/sledjchisl.c | 45 ++++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/sledjchisl/sledjchisl.c b/src/sledjchisl/sledjchisl.c index 6224e70..2000f57 100644 --- a/src/sledjchisl/sledjchisl.c +++ b/src/sledjchisl/sledjchisl.c @@ -620,28 +620,38 @@ void PrintTable(lua_State *L) } -int sendTmuxKeys(char *dest, char *keys) +void doTmuxCmd(char *format, ...) { - int ret = 0, i; - char *c = xmprintf("%s %s/%s send-keys -t %s:%s '%s'", Tcmd, scRun, Tsocket, Tconsole, dest, keys); + va_list va, va2; + int len; + char *ret; + + va_start(va, format); + va_copy(va2, va); + // How long is it? + len = vsnprintf(0, 0, format, va); + len++; + va_end(va); + // Allocate and do the sprintf() + ret = xmalloc(len); + vsnprintf(ret, len, format, va2); + va_end(va2); - i = system(c); - if (!WIFEXITED(i)) - E("tmux send-keys command failed!"); + char *c = xmprintf("%s %s/%s %s", Tcmd, scRun, Tsocket, ret); + free(ret); + if (!WIFEXITED(system(c))) + E("tmux command failed! %s", c); free(c); - return ret; } -int sendTmuxCmd(char *dest, char *cmd) +void sendTmuxCmd(char *dest, char *cmd) { - int ret = 0, i; - char *c = xmprintf("%s %s/%s send-keys -t %s:'%s' '%s' Enter", Tcmd, scRun, Tsocket, Tconsole, dest, cmd); + doTmuxCmd("send-keys -t %s:'%s' '%s' Enter", Tconsole, dest, cmd); +} - i = system(c); - if (!WIFEXITED(i)) - E("tmux send-keys command failed!"); - free(c); - return ret; +void sendTmuxKeys(char *dest, char *keys) +{ + doTmuxCmd("send-keys -t %s:%s '%s'", Tconsole, dest, keys); } void waitTmuxText(char *dest, char *text) @@ -7534,10 +7544,7 @@ T("ARGS - %i |%s| |%s|", currentMode, toys.optargs[0], target); c = xmprintf("mono Robust.exe -inidirectory=%s/config/ROBUST", scRoot); sendTmuxCmd(d, c); free(c); - c = xmprintf("%s %s/%s select-pane -t 1 -T 'ROBUST'", Tcmd, scRun, Tsocket); - i = system(c); - if (!WIFEXITED(i)) - E("tmux select-pane command failed!"); + doTmuxCmd("select-pane -t 0 -T 'ROBUST'", Tcmd, scRun, Tsocket); waitTmuxText(d, "INITIALIZATION COMPLETE FOR ROBUST"); I("ROBUST is done starting up."); // la = waitLoadAverage(la, loadAverageInc / 3.0, simTimeOut / 3); -- cgit v1.1