diff --git a/session-manager/src/nsm-proxy-gui.C b/session-manager/src/nsm-proxy-gui.C index e514c76..778444e 100644 --- a/session-manager/src/nsm-proxy-gui.C +++ b/session-manager/src/nsm-proxy-gui.C @@ -105,6 +105,9 @@ handle_kill ( Fl_Widget *o, void *v ) void handle_start ( Fl_Widget *o, void *v ) { + lo_send_from( nsmp_addr, losrv, LO_TT_IMMEDIATE, "/nsm/proxy/label", "s", + ui->label_input->value() ); + lo_send_from( nsmp_addr, losrv, LO_TT_IMMEDIATE, "/nsm/proxy/start", "ss", ui->executable_input->value(), ui->arguments_input->value() ); diff --git a/session-manager/src/nsm-proxy.C b/session-manager/src/nsm-proxy.C index 6e01edb..d1d5c71 100644 --- a/session-manager/src/nsm-proxy.C +++ b/session-manager/src/nsm-proxy.C @@ -87,7 +87,11 @@ public: free( _arguments ); _executable = strdup( executable ); - _arguments = strdup( arguments ); + + if ( arguments ) + _arguments = strdup( arguments ); + else + _arguments = NULL; return start(); } @@ -106,7 +110,10 @@ public: // char *args[] = { strdup( executable ), NULL }; char *cmd; - asprintf( &cmd, "exec %s %s", _executable, _arguments ); + if ( _arguments ) + asprintf( &cmd, "exec %s %s", _executable, _arguments ); + else + asprintf( &cmd, "exec %s", _executable ); char *args[] = { _executable, "-c", cmd, NULL };