| 135 | } |
| 136 | |
| 137 | int |
| 138 | SourcePos::warning(const char* fmt, ...) const |
| 139 | { |
| 140 | int retval=0; |
| 141 | char buf[1024]; |
| 142 | va_list ap; |
| 143 | va_start(ap, fmt); |
| 144 | retval = vsnprintf(buf, sizeof(buf), fmt, ap); |
| 145 | va_end(ap); |
| 146 | char* p = buf + retval - 1; |
| 147 | while (p > buf && *p == '\n') { |
| 148 | *p = '\0'; |
| 149 | p--; |
| 150 | } |
| 151 | ErrorPos(this->file, this->line, String8(buf), false).print(stderr); |
| 152 | return retval; |
| 153 | } |
| 154 | |
| 155 | bool |
| 156 | SourcePos::hasErrors() |