9.10.2011 - stable backup commit
This commit is contained in:
@@ -27,11 +27,11 @@ PIConsole::~PIConsole() {
|
||||
if (isRunning())
|
||||
stop();
|
||||
clearTabs(false);
|
||||
delete listener;
|
||||
#ifdef WINDOWS
|
||||
SetConsoleMode(hOut, smode);
|
||||
SetConsoleTextAttribute(hOut, dattr);
|
||||
#endif
|
||||
delete listener;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ int PIConsole::addTab(const PIString & name, char bind_key) {
|
||||
|
||||
void PIConsole::removeTab(uint index) {
|
||||
if (index >= tabs.size()) return;
|
||||
tabs.erase(vector<Tab>::iterator(&tabs[index]));
|
||||
tabs.remove(index);
|
||||
if (cur_tab >= tabs.size()) cur_tab = tabs.size() - 1;
|
||||
}
|
||||
|
||||
@@ -211,12 +211,12 @@ PIString PIConsole::fstr(PIFlags<PIConsole::Format> f) {
|
||||
#define siprint(x) switch (num_format) {case (1): return printf("0x%.4hX", x); break; case (2): return printf("%o", x); break; default: return printf("%hd", x); break;}
|
||||
#define iprint(x) switch (num_format) {case (1): return printf("0x%.8X", x); break; case (2): return printf("%o", x); break; default: return printf("%d", x); break;}
|
||||
#define liprint(x) switch (num_format) {case (1): return printf("0x%.16lX", x); break; case (2): return printf("%lo", x); break; default: return printf("%ld", x); break;}
|
||||
#define lliprint(x) switch (num_format) {case (1): return printf("0x%.16LX", x); break; case (2): return printf("%Lo", x); break; default: return printf("%Ld", x); break;}
|
||||
#define lliprint(x) switch (num_format) {case (1): return printf("0x%.16llX", x); break; case (2): return printf("%llo", x); break; default: return printf("%lld", x); break;}
|
||||
#define cuprint(x) switch (num_format) {case (1): return printf("0x%.2X", x); break; case (2): return printf("%o", x); break; default: return printf("%u", x); break;}
|
||||
#define suprint(x) switch (num_format) {case (1): return printf("0x%.4hX", x); break; case (2): return printf("%o", x); break; default: return printf("%hd", x); break;}
|
||||
#define uprint(x) switch (num_format) {case (1): return printf("0x%.8X", x); break; case (2): return printf("%o", x); break; default: return printf("%u", x); break;}
|
||||
#define luprint(x) switch (num_format) {case (1): return printf("0x%.16lX", x); break; case (2): return printf("%lo", x); break; default: return printf("%lu", x); break;}
|
||||
#define lluprint(x) switch (num_format) {case (1): return printf("0x%.16LX", x); break; case (2): return printf("%Lo", x); break; default: return printf("%Lu", x); break;}
|
||||
#define lluprint(x) switch (num_format) {case (1): return printf("0x%.16llX", x); break; case (2): return printf("%llo", x); break; default: return printf("%llu", x); break;}
|
||||
#define fprint(x) switch (num_format) {case (3): return printf("%e", x); break; default: return printf("%.5g", x); break;}
|
||||
#define dprint(x) switch (num_format) {case (3): return printf("%le", x); break; default: return printf("%.5lg", x); break;}
|
||||
|
||||
@@ -271,7 +271,7 @@ void PIConsole::run() {
|
||||
cx = col_wid * i;
|
||||
toUpperLeft();
|
||||
if (my < vars()[i].size()) my = vars()[i].size();
|
||||
piForeachCA (tv, vars()[i]) {
|
||||
piForeachC (Variable & tv, vars()[i]) {
|
||||
moveRight(cx);
|
||||
if (tv.type == 0 && tv.s == 0) {
|
||||
newLine();
|
||||
@@ -279,20 +279,20 @@ void PIConsole::run() {
|
||||
}
|
||||
moveRight(tv.offset);
|
||||
switch (tv.type) {
|
||||
case 0: clen = printValue(*tv.s, tv.format); break;
|
||||
case 1: clen = printValue(*tv.b, tv.format); break;
|
||||
case 2: clen = printValue(*tv.i, tv.format); break;
|
||||
case 3: clen = printValue(*tv.l, tv.format); break;
|
||||
case 4: clen = printValue(*tv.c, tv.format); break;
|
||||
case 5: clen = printValue(*tv.f, tv.format); break;
|
||||
case 6: clen = printValue(*tv.d, tv.format); break;
|
||||
case 7: clen = printValue(*tv.sh, tv.format); break;
|
||||
case 8: clen = printValue(*tv.ui, tv.format); break;
|
||||
case 9: clen = printValue(*tv.ul, tv.format); break;
|
||||
case 10: clen = printValue(*tv.ush, tv.format); break;
|
||||
case 11: clen = printValue(*tv.uc, tv.format); break;
|
||||
case 12: clen = printValue(*tv.ll, tv.format); break;
|
||||
case 13: clen = printValue(*tv.ull, tv.format); break;
|
||||
case 0: clen = printValue(tv.s != 0 ? *tv.s : "", tv.format); break;
|
||||
case 1: clen = printValue(tv.b != 0 ? *tv.b : false, tv.format); break;
|
||||
case 2: clen = printValue(tv.i != 0 ? *tv.i : 0, tv.format); break;
|
||||
case 3: clen = printValue(tv.l != 0 ? *tv.l : 0l, tv.format); break;
|
||||
case 4: clen = printValue(tv.c != 0 ? *tv.c : 0, tv.format); break;
|
||||
case 5: clen = printValue(tv.f != 0 ? *tv.f : 0.f, tv.format); break;
|
||||
case 6: clen = printValue(tv.d != 0 ? *tv.d : 0., tv.format); break;
|
||||
case 7: clen = printValue(tv.sh != 0 ? *tv.sh : 0, tv.format); break;
|
||||
case 8: clen = printValue(tv.ui != 0 ? *tv.ui : 0u, tv.format); break;
|
||||
case 9: clen = printValue(tv.ul != 0 ? *tv.ul : 0ul, tv.format); break;
|
||||
case 10: clen = printValue(tv.ush != 0 ? *tv.ush : 0u, tv.format); break;
|
||||
case 11: clen = printValue(tv.uc != 0 ? *tv.uc : 0u, tv.format); break;
|
||||
case 12: clen = printValue(tv.ll != 0 ? *tv.ll : 0l, tv.format); break;
|
||||
case 13: clen = printValue(tv.ull != 0 ? *tv.ull : 0ull, tv.format); break;
|
||||
case 14: clen = printValue(bitsValue(tv.ptr, tv.bitFrom, tv.bitCount), tv.format); break;
|
||||
}
|
||||
if (clen + tv.offset < (uint)col_wid) {
|
||||
@@ -443,27 +443,21 @@ void PIConsole::addEmptyLine(int column, uint count) {
|
||||
PIString PIConsole::getString(int x, int y) {
|
||||
bool run = isRunning();
|
||||
if (run) PIThread::stop(true);
|
||||
listener->terminate();
|
||||
msleep(10);
|
||||
listener->setActive(false);
|
||||
moveTo(x, y);
|
||||
showCursor();
|
||||
PIByteArray ba(4096);
|
||||
fflush(0);
|
||||
scanf("%s", ba.data());
|
||||
//fflush(0);
|
||||
listener->start();
|
||||
msleep(10);
|
||||
if (run) start();
|
||||
msleep(10);
|
||||
int ret = scanf(" %s", ba.data());
|
||||
listener->setActive(true);
|
||||
return PIString(ba);
|
||||
if (run) start();
|
||||
if (ret >= 1) return PIString(ba);
|
||||
else return PIString();
|
||||
}
|
||||
|
||||
|
||||
PIString PIConsole::getString(const PIString & name) {
|
||||
piForeachCA (i, tabs[cur_tab].variables)
|
||||
piForeachCA (j, i)
|
||||
piForeachC (PIVector<Variable> & i, tabs[cur_tab].variables)
|
||||
piForeachC (Variable & j, i)
|
||||
if (j.name == name)
|
||||
return getString(j.nx + 1, j.ny);
|
||||
return PIString();
|
||||
|
||||
Reference in New Issue
Block a user