8.12.2010 - bug fixes

This commit is contained in:
peri4
2010-12-08 16:56:14 +03:00
parent 66d998f289
commit 480eb64f62
3 changed files with 91 additions and 85 deletions

View File

@@ -125,7 +125,8 @@ void PIConsole::key_event(void * t, char key) {
PIString PIConsole::fstr(Flags<PIConsole::Format> f) {
if (f[PIConsole::Dec]) num_format = 0;
if (f[PIConsole::Hex]) num_format = 1;
if (f[PIConsole::Oct]) num_format = 2;
if (f[PIConsole::Oct]) num_format = 2;
if (f[PIConsole::Scientific]) num_format = 3;
#ifdef WINDOWS
@@ -152,9 +153,9 @@ PIString PIConsole::fstr(Flags<PIConsole::Format> f) {
if (f[PIConsole::Bold]) attr |= FOREGROUND_INTENSITY;
SetConsoleTextAttribute(hOut, attr);
return "";
return PIString();
#else
PIString ts = "\e[0";
PIString ts("\e[0");
if (f[PIConsole::Bold]) ts += ";1";
if (f[PIConsole::Faint]) ts += ";2";
@@ -187,21 +188,21 @@ PIString PIConsole::fstr(Flags<PIConsole::Format> f) {
#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;}
inline int PIConsole::couts(PIString v) {return printf("%s", v.data());}
inline int PIConsole::couts(char * v) {return printf("%s", v);}
inline int PIConsole::couts(bool v) {return (v ? printf("true") : printf("false"));}
inline int PIConsole::couts(char v) {return printf("%c", v);}
inline int PIConsole::couts(short v) {siprint(v);}
inline int PIConsole::couts(int v) {iprint(v);}
inline int PIConsole::couts(long v) {liprint(v);}
inline int PIConsole::couts(llong v) {lliprint(v);}
inline int PIConsole::couts(uchar v) {uprint(v);}
inline int PIConsole::couts(ushort v) {suprint(v);}
inline int PIConsole::couts(uint v) {uprint(v);}
inline int PIConsole::couts(ulong v) {luprint(v);}
inline int PIConsole::couts(ullong v) {lluprint(v);}
inline int PIConsole::couts(float v) {fprint(v);}
inline int PIConsole::couts(double v) {dprint(v);}
inline int PIConsole::couts(const string v) {return printf("%s", v.c_str());}
inline int PIConsole::couts(const char * v) {return printf("%s", v);}
inline int PIConsole::couts(const bool v) {return (v ? printf("true") : printf("false"));}
inline int PIConsole::couts(const char v) {return printf("%c", v);}
inline int PIConsole::couts(const short v) {siprint(v);}
inline int PIConsole::couts(const int v) {iprint(v);}
inline int PIConsole::couts(const long v) {liprint(v);}
inline int PIConsole::couts(const llong v) {lliprint(v);}
inline int PIConsole::couts(const uchar v) {uprint(v);}
inline int PIConsole::couts(const ushort v) {suprint(v);}
inline int PIConsole::couts(const uint v) {uprint(v);}
inline int PIConsole::couts(const ulong v) {luprint(v);}
inline int PIConsole::couts(const ullong v) {lluprint(v);}
inline int PIConsole::couts(const float v) {fprint(v);}
inline int PIConsole::couts(const double v) {dprint(v);}
void PIConsole::begin() {
@@ -383,30 +384,35 @@ void PIConsole::addEmptyLine(int column) {
tv.name = ""; tv.type = 0; tv.d = 0; tv.format = Normal;
checkColumn(column); vars()[column - 1].push_back(tv);}
#define PRINT_VAR_BODY couts(fstr(format)); int ret = couts(value); fstr(PIConsole::Dec); return ret;
#define PRINT_VAR_BODY couts(fstr(format).stdString()); int ret = couts(value); fstr(PIConsole::Dec); return ret;
void PIConsole::printLine(PIString value, int dx, Flags<PIConsole::Format> format) {
inline void PIConsole::printLine(const PIString & value, int dx, Flags<PIConsole::Format> format) {
int i = width - value.length() - dx;
#ifdef QNX
--i;
#endif
couts(fstr(format));
if (i >= 0) couts(value + PIString(i, ' '));
else couts(value.left(value.length() + i));
couts(fstr(Dec));
couts(fstr(format).stdString());
if (i >= 0) couts((value + PIString(i, ' ')).stdString());
else couts(value.left(value.size() + i).stdString());
couts(fstr(Dec).stdString());
}
int PIConsole::printValue(PIString value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(char * value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(bool value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(int value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(long value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(llong value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(float value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(double value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(char value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(short value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(uchar value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(ushort value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(uint value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(ulong value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
int PIConsole::printValue(ullong value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const PIString & value, Flags<PIConsole::Format> format) {
couts(fstr(format).stdString());
int ret = couts(value.stdString());
fstr(PIConsole::Dec);
return ret;
}
inline int PIConsole::printValue(const char * value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const bool value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const int value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const long value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const llong value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const float value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const double value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const char value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const short value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const uchar value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const ushort value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const uint value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const ulong value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}
inline int PIConsole::printValue(const ullong value, Flags<PIConsole::Format> format) {PRINT_VAR_BODY}