static retCode cmdComplete(bufferPo b, void *cl, integer cx) { integer bLen; char *content = getTextFromBuffer(b, &bLen); if (bLen == 0) return Eof; else { integer pos = 0; codePoint first = nextCodePoint(content, &pos, bLen); debugOptPo opts = (debugOptPo) cl; for (int ix = 0; ix < opts->count; ix++) { if (opts->opts[ix].c == first) { if (opts->opts[ix].complete != Null) return opts->opts[ix].complete(b, cx); else return Eof; } } if (opts->deflt != Null) return opts->deflt(b, cx); else return Eof; } }
static DebugWaitFor cmder(debugOptPo opts, processPo p, methodPo mtd, termPo loc, insWord ins) { static bufferPo cmdBuffer = Null; if (cmdBuffer == Null) cmdBuffer = newStringBuffer(); while (interactive) { dbgPrompt(p); clearBuffer(cmdBuffer); setEditLineCompletionCallback(cmdComplete, (void *) opts); retCode res = (debuggerListener == Null ? consoleInput(cmdBuffer) : inLine(debugInChnnl, cmdBuffer, "\n")); clearEditLineCompletionCallback(); switch (res) { case Eof: return quitDbg; case Ok: { integer cmdLen = 0; char *cmdLine = getTextFromBuffer(cmdBuffer, &cmdLen); cmdLine = defltLine(cmdLine, cmdLen, &cmdLen); codePoint cmd; integer nxt = 0; cmd = nextCodePoint(cmdLine, &nxt, cmdLen); if (isNdChar((codePoint) cmd)) { cmd = 'n'; nxt = 0; } for (int ix = 0; ix < opts->count; ix++) { if (opts->opts[ix].c == cmd) return opts->opts[ix].cmd(&cmdLine[nxt], p, loc, ins, opts->opts[ix].cl); } outMsg(debugOutChnnl, "invalid debugger command: %s\n", cmdLine); } default: for (int ix = 0; ix < opts->count; ix++) outMsg(debugOutChnnl, "%s\n", opts->opts[ix].usage); flushFile(debugOutChnnl); return moreDebug; } } return moreDebug; }
std::string W32ComboBox::text() const { return getTextFromBuffer(myBuffer); }
std::string W32KeyNameEditor::text() const { return getTextFromBuffer(myBuffer); }
static void refreshLine(integer firstPos, bufferPo lineBuf) { integer buffLen; char *content = getTextFromBuffer(lineBuf, &buffLen); refreshFromText(firstPos, bufferOutPos(lineBuf), content, buffLen); }