--- einstein-2.0/convert.h~ 2005-08-14 04:40:58.000000000 +0200 +++ einstein-2.0/convert.h 2009-01-02 14:15:08.000000000 +0100 @@ -5,6 +5,7 @@ #include #include #include +#include #include "exceptions.h" #include "unicode.h" --- einstein-2.0/unicode.cpp~ 2005-08-14 04:40:58.000000000 +0200 +++ einstein-2.0/unicode.cpp 2009-01-02 14:16:51.000000000 +0100 @@ -5,6 +5,7 @@ #endif #include "unicode.h" #include "exceptions.h" +#include /// Returns length of wide character in utf-8 --- einstein-2.0/formatter.cpp~ 2005-08-14 04:40:58.000000000 +0200 +++ einstein-2.0/formatter.cpp 2009-01-02 22:29:07.209885720 +0100 @@ -58,7 +58,7 @@ if ((c.type == INT_ARG) || (c.type == STRING_ARG) || (c.type == FLOAT_ARG) || (c.type == DOUBLE_ARG)) { - int no = (int)c.data; + long int no = (long int)c.data; args[no - 1] = c.type; } } @@ -123,7 +123,7 @@ std::wstring Formatter::format(std::vector &argValues) const { std::wstring s; - int no; + long int no; for (int i = 0; i < commandsCnt; i++) { Command *cmd = &commands[i]; @@ -135,8 +135,8 @@ case STRING_ARG: case INT_ARG: - no = (int)cmd->data - 1; - if (no < (int)argValues.size()) + no = (long int)cmd->data - 1; + if (no < (long int)argValues.size()) s += argValues[no]->format(cmd); break;