| 117 | } |
| 118 | |
| 119 | int |
| 120 | SourcePos::error(const char* fmt, ...) const |
| 121 | { |
| 122 | int retval=0; |
| 123 | char buf[1024]; |
| 124 | va_list ap; |
| 125 | va_start(ap, fmt); |
| 126 | retval = vsnprintf(buf, sizeof(buf), fmt, ap); |
| 127 | va_end(ap); |
| 128 | char* p = buf + retval - 1; |
| 129 | while (p > buf && *p == '\n') { |
| 130 | *p = '\0'; |
| 131 | p--; |
| 132 | } |
| 133 | g_errors.push_back(ErrorPos(this->file, this->line, String8(buf), true)); |
| 134 | return retval; |
| 135 | } |
| 136 | |
| 137 | int |
| 138 | SourcePos::warning(const char* fmt, ...) const |