Lines Matching defs:positions
207 /* Self describing stricture for positions */
214 static struct pos_sds *positions;
354 /* Inits positions sds. 0 means everything went OK, -1 for errors */
358 int init_size = 32; /* Initial size of the positions array */
360 positions = (struct pos_sds *) malloc(sizeof (struct pos_sds) +
363 if (positions == NULL) {
368 positions->size = init_size;
369 positions->last = 0;
373 /* Free the positions array */
378 for (i = 0; i < positions->last; i++) {
379 if (positions->pos[i] == NULL)
381 free(positions->pos[i]->line);
382 free(positions->pos[i]);
384 free(positions);
386 positions = NULL;
390 * Add another position to the positions array. 0 means everything
396 if (positions->last >= positions->size) {
397 positions->size *= 2;
398 positions = (struct pos_sds *)realloc(positions,
400 (positions->size - 1) * sizeof (cmd_pos_t *));
401 if (positions == NULL)
406 positions->pos[positions->last] = NULL;
408 positions->pos[positions->last] = (cmd_pos_t *)calloc(1,
410 if (positions->pos[positions->last] == NULL)
413 *positions->pos[positions->last] = *pos;
414 positions->pos[positions->last]->line = strdup(pos->line);
415 if (positions->pos[positions->last]->line == NULL)
419 positions->last++;
543 reported_pos = positions->pos[failpos];