diff --git a/client/cmdhw.c b/client/cmdhw.c index 5a1e7db1d..b713af412 100644 --- a/client/cmdhw.c +++ b/client/cmdhw.c @@ -249,13 +249,17 @@ int CmdTune(const char *Cmd) return CmdTuneSamples(Cmd); } -int CmdVersion(const char *Cmd) -{ - clearCommandBuffer(); +int CmdVersion(const char *Cmd) { + + bool silent = (Cmd[0] == 's' || Cmd[0] == 'S'); + if ( silent ) + return 0; + UsbCommand c = {CMD_VERSION}; static UsbCommand resp = {0, {0, 0, 0}}; if (resp.arg[0] == 0 && resp.arg[1] == 0) { // no cached information available + clearCommandBuffer(); SendCommand(&c); if (WaitForResponseTimeout(CMD_ACK, &resp, 1000)) { #ifdef __WIN32 diff --git a/client/proxmark3.c b/client/proxmark3.c index 1e7da269d..26ef3dd75 100644 --- a/client/proxmark3.c +++ b/client/proxmark3.c @@ -160,7 +160,10 @@ void main_loop(char *script_cmds_file, char *script_cmd, bool usb_present) { rarg.run = 1; pthread_create(&reader_thread, NULL, &uart_receiver, &rarg); // cache Version information now: - CmdVersion( (script_cmds_file) ? "s" : NULL ); + if ( execCommand || script_cmds_file || stdinOnPipe) + CmdVersion("s"); + else + CmdVersion(""); } if (script_cmds_file) { @@ -186,7 +189,10 @@ void main_loop(char *script_cmds_file, char *script_cmd, bool usb_present) { rarg.run = 1; pthread_create(&reader_thread, NULL, &uart_receiver, &rarg); // cache Version information now: - CmdVersion( (script_cmds_file) ? "s" : NULL ); + if ( execCommand || script_cmds_file || stdinOnPipe) + CmdVersion("s"); + else + CmdVersion(""); } }