Lines Matching defs:pos

236 void srcpos_update(struct srcpos *pos, const char *text, int len)
240 pos->file = current_srcfile;
242 pos->first_line = current_srcfile->lineno;
243 pos->first_column = current_srcfile->colno;
253 pos->last_line = current_srcfile->lineno;
254 pos->last_column = current_srcfile->colno;
258 srcpos_copy(struct srcpos *pos)
263 if (!pos)
267 assert(pos->next == NULL);
268 memcpy(pos_new, pos, sizeof(struct srcpos));
272 memcpy(srcfile_state, pos->file, sizeof(struct srcfile_state));
278 struct srcpos *srcpos_extend(struct srcpos *pos, struct srcpos *newtail)
282 if (!pos)
285 for (p = pos; p->next != NULL; p = p->next);
287 return pos;
290 void srcpos_free(struct srcpos *pos)
294 while (pos) {
295 p_next = pos->next;
296 free(pos);
297 pos = p_next;
302 srcpos_string(struct srcpos *pos)
307 if (pos->file && pos->file->name)
308 fname = pos->file->name;
311 if (pos->first_line != pos->last_line)
313 pos->first_line, pos->first_column,
314 pos->last_line, pos->last_column);
315 else if (pos->first_column != pos->last_column)
317 pos->first_line, pos->first_column,
318 pos->last_column);
321 pos->first_line, pos->first_column);
327 srcpos_string_comment(struct srcpos *pos, bool first_line, int level)
332 if (!pos) {
341 if (!pos->file)
343 else if (!pos->file->name)
346 fname = pos->file->name;
348 fresh_fname = shorten_to_initial_path(pos->file->name);
352 fname = pos->file->name;
357 pos->first_line, pos->first_column,
358 pos->last_line, pos->last_column);
361 first_line ? pos->first_line : pos->last_line);
366 if (pos->next != NULL) {
367 rest = srcpos_string_comment(pos->next, first_line, level);
378 char *srcpos_string_first(struct srcpos *pos, int level)
380 return srcpos_string_comment(pos, true, level);
383 char *srcpos_string_last(struct srcpos *pos, int level)
385 return srcpos_string_comment(pos, false, level);
388 void srcpos_verror(struct srcpos *pos, const char *prefix,
393 srcstr = srcpos_string(pos);
402 void srcpos_error(struct srcpos *pos, const char *prefix,
408 srcpos_verror(pos, prefix, fmt, va);