/*ARGSUSED*/ static void simCmdCallback(CALLBACK_ARGS) { char s[100]; if (client_data) { XmString xms = XmStringCreateLocalized((char *)client_data); XmListAddItemUnselected(cmdHist, xms, 0); XmListSetBottomPos(cmdHist, 0); XmStringFree(xms); (void)strcpy(prevCmdStr, (char*)client_data); (void)sprintf(s, "%s\n", (char *)client_data); } else { XmCommandCallbackStruct *cbs = (XmCommandCallbackStruct *)call_data; char *cmdStr; (void)XmStringGetLtoR(cbs->value, XmSTRING_DEFAULT_CHARSET, &cmdStr); if (cmdStr[0] == 'X') { XmString msg = XmStringCreateLocalized("Bad command"); XmCommandError(cmd, msg); XmStringFree(msg); } if (cmdStr[0] == '\0' && prevCmdStr != '\0') { (void)strcpy(cmdStr, prevCmdStr); XmStringFree(cbs->value); cbs->value = XmStringCreateLocalized(cmdStr); } (void)strcpy(prevCmdStr, cmdStr); (void)sprintf(s, "%s\n", cmdStr); } if (!cmdExLin(s)) { XmString msg = XmStringCreateLocalized("Bad command"); XmCommandError(cmd, msg); XmStringFree(msg); } (void)XmProcessTraversal(cmd, XmTRAVERSE_CURRENT); }
// Forward Gnuplot error messages to DDD status line static void SetStatusHP(Agent *, void *client_data, void *call_data) { PlotWindowInfo *plot = (PlotWindowInfo *)client_data; DataLength* dl = (DataLength *) call_data; string s(dl->data, dl->length); (void) plot; // Use it #if 0 if (!plot->active) { // Probably an invocation problem post_gdb_message(s); return; } #endif if (plot->command != 0) { string msg = s; strip_space(msg); MString xmsg = tb(msg); XmCommandError(plot->command, xmsg.xmstring()); } while (!s.empty()) { string line; if (s.contains('\n')) line = s.before('\n'); else line = s; s = s.after('\n'); strip_space(line); if (!line.empty()) set_status(line); } }