| 229 | } |
| 230 | |
| 231 | void Log_ErrorArgList(const char* format, va_list args, const char* filename, uint32_t line) |
| 232 | { |
| 233 | va_list tmp; |
| 234 | va_copy(tmp, args); |
| 235 | |
| 236 | // Not thread-safe |
| 237 | static std::string buffer; |
| 238 | buffer.clear(); |
| 239 | String_PrintfArgList(buffer, format, tmp); |
| 240 | |
| 241 | // TODO: this doesn't work on Win/Android |
| 242 | // use a real log abstraction to ODS/etc from Kram |
| 243 | if (filename) |
| 244 | fprintf(stderr, "%s:%d: error: %s", filename, line, buffer.c_str()); |
| 245 | else |
| 246 | fprintf(stderr, "error: %s", buffer.c_str()); |
| 247 | |
| 248 | va_end(tmp); |
| 249 | } |
| 250 | |
| 251 | // Engine/StringPool.cpp |
| 252 | |