Lines Matching refs:pos
232 void srcpos_update(struct srcpos *pos, const char *text, int len)
236 pos->file = current_srcfile;
238 pos->first_line = current_srcfile->lineno;
239 pos->first_column = current_srcfile->colno;
249 pos->last_line = current_srcfile->lineno;
250 pos->last_column = current_srcfile->colno;
254 srcpos_copy(struct srcpos *pos)
259 if (!pos)
263 assert(pos->next == NULL);
264 memcpy(pos_new, pos, sizeof(struct srcpos));
268 memcpy(srcfile_state, pos->file, sizeof(struct srcfile_state));
274 struct srcpos *srcpos_extend(struct srcpos *pos, struct srcpos *newtail)
278 if (!pos)
281 for (p = pos; p->next != NULL; p = p->next);
283 return pos;
287 srcpos_string(struct srcpos *pos)
292 if (pos->file && pos->file->name)
293 fname = pos->file->name;
296 if (pos->first_line != pos->last_line)
298 pos->first_line, pos->first_column,
299 pos->last_line, pos->last_column);
300 else if (pos->first_column != pos->last_column)
302 pos->first_line, pos->first_column,
303 pos->last_column);
306 pos->first_line, pos->first_column);
312 srcpos_string_comment(struct srcpos *pos, bool first_line, int level)
317 if (!pos) {
326 if (!pos->file)
328 else if (!pos->file->name)
331 fname = pos->file->name;
333 fname = shorten_to_initial_path(pos->file->name);
337 fname = pos->file->name;
342 pos->first_line, pos->first_column,
343 pos->last_line, pos->last_column);
346 first_line ? pos->first_line : pos->last_line);
351 if (pos->next != NULL) {
352 rest = srcpos_string_comment(pos->next, first_line, level);
363 char *srcpos_string_first(struct srcpos *pos, int level)
365 return srcpos_string_comment(pos, true, level);
368 char *srcpos_string_last(struct srcpos *pos, int level)
370 return srcpos_string_comment(pos, false, level);
373 void srcpos_verror(struct srcpos *pos, const char *prefix,
378 srcstr = srcpos_string(pos);
387 void srcpos_error(struct srcpos *pos, const char *prefix,
393 srcpos_verror(pos, prefix, fmt, va);