diff --git a/src/include/strings.cpp b/src/include/strings.cpp index ca985a615..4b50b9cb0 100755 --- a/src/include/strings.cpp +++ b/src/include/strings.cpp @@ -1676,12 +1676,21 @@ int TToken_string::get_int(int n) long TToken_string::get_long(int n) { const char* const num = get(n); + return num ? atol(num) : 0L; } +// Certified 99% +real TToken_string::get_real(int n) +{ + const char* const r = get(n); + + return r ? real(r) : ZERO; +} + bool TToken_string::get_bool(int n) { - const TString s = get(n); + const TString & s = get(n); return s == "X"; } @@ -2106,6 +2115,7 @@ TToken_string& get_tmp_string(int len) static int next = 0; TToken_string* str = (TToken_string*)ararar.objptr(next); + if (str == NULL) { str = new TToken_string(max(len,50));