Lines Matching +full:left +full:-
36 return c->left_start->pos; in diff_chunk_get_left_start_pos()
42 return c->right_start->pos; in diff_chunk_get_right_start_pos()
48 return diff_range_empty(&cc->chunk); in diff_chunk_context_empty()
55 int left_start = diff_atom_root_idx(r->left, c->left_start); in diff_chunk_get_left_start()
56 return MAX(0, left_start - context_lines); in diff_chunk_get_left_start()
64 return MIN(r->left->atoms.len, in diff_chunk_get_left_end()
65 left_start + c->left_count + context_lines); in diff_chunk_get_left_end()
72 int right_start = diff_atom_root_idx(r->right, c->right_start); in diff_chunk_get_right_start()
73 return MAX(0, right_start - context_lines); in diff_chunk_get_right_start()
81 return MIN(r->right->atoms.len, in diff_chunk_get_right_end()
82 right_start + c->right_count + context_lines); in diff_chunk_get_right_end()
88 return &r->chunks.head[chunk_idx]; in diff_chunk_get()
94 return c->left_count; in diff_chunk_get_left_count()
100 return c->right_count; in diff_chunk_get_right_count()
107 const struct diff_chunk *c = &r->chunks.head[chunk_idx]; in diff_chunk_context_get()
118 .left = { in diff_chunk_context_get()
133 return diff_ranges_touch(&cc->chunk, &other->chunk) in diff_chunk_contexts_touch()
134 || diff_ranges_touch(&cc->left, &other->left) in diff_chunk_contexts_touch()
135 || diff_ranges_touch(&cc->right, &other->right); in diff_chunk_contexts_touch()
142 diff_ranges_merge(&cc->chunk, &other->chunk); in diff_chunk_contexts_merge()
143 diff_ranges_merge(&cc->left, &other->left); in diff_chunk_contexts_merge()
144 diff_ranges_merge(&cc->right, &other->right); in diff_chunk_contexts_merge()
160 for (i = start_chunk_idx; i < result->chunks.len; i++) { in diff_chunk_context_load_change()
161 struct diff_chunk *chunk = &result->chunks.head[i]; in diff_chunk_context_load_change()
223 state->header_printed = false; in diff_output_unidiff_state_reset()
224 memset(state->prototype, 0, sizeof(state->prototype)); in diff_output_unidiff_state_reset()
225 state->last_prototype_idx = 0; in diff_output_unidiff_state_reset()
246 if (diff_range_empty(&cc->left) && diff_range_empty(&cc->right)) in output_unidiff_chunk()
249 if (outinfo && outinfo->line_offsets.len > 0) { in output_unidiff_chunk()
250 unsigned int idx = outinfo->line_offsets.len - 1; in output_unidiff_chunk()
251 outoff = outinfo->line_offsets.head[idx]; in output_unidiff_chunk()
254 if (print_header && !(state->header_printed)) { in output_unidiff_chunk()
255 rc = fprintf(dest, "--- %s\n", in output_unidiff_chunk()
260 ARRAYLIST_ADD(offp, outinfo->line_offsets); in output_unidiff_chunk()
265 ARRAYLIST_ADD(typep, outinfo->line_types); in output_unidiff_chunk()
275 ARRAYLIST_ADD(offp, outinfo->line_offsets); in output_unidiff_chunk()
280 ARRAYLIST_ADD(typep, outinfo->line_types); in output_unidiff_chunk()
285 state->header_printed = true; in output_unidiff_chunk()
288 left_len = cc->left.end - cc->left.start; in output_unidiff_chunk()
289 if (result->left->atoms.len == 0) in output_unidiff_chunk()
291 else if (left_len == 0 && cc->left.start > 0) in output_unidiff_chunk()
292 left_start = cc->left.start; in output_unidiff_chunk()
294 left_start = cc->left.start + 1; in output_unidiff_chunk()
296 right_len = cc->right.end - cc->right.start; in output_unidiff_chunk()
297 if (result->right->atoms.len == 0) in output_unidiff_chunk()
299 else if (right_len == 0 && cc->right.start > 0) in output_unidiff_chunk()
300 right_start = cc->right.start; in output_unidiff_chunk()
302 right_start = cc->right.start + 1; in output_unidiff_chunk()
305 * of the interesting (non-context) chunk. in output_unidiff_chunk()
308 * It is guaranteed to be only context lines where left == right, so it in output_unidiff_chunk()
309 * suffices to look on the left. */ in output_unidiff_chunk()
312 first_chunk = &result->chunks.head[cc->chunk.start]; in output_unidiff_chunk()
313 chunk_start_line = diff_atom_root_idx(result->left, in output_unidiff_chunk()
314 first_chunk->left_start); in output_unidiff_chunk()
316 rc = diff_output_match_function_prototype(state->prototype, in output_unidiff_chunk()
317 sizeof(state->prototype), &state->last_prototype_idx, in output_unidiff_chunk()
324 rc = fprintf(dest, "@@ -%d +%d @@%s%s\n", in output_unidiff_chunk()
326 state->prototype[0] ? " " : "", in output_unidiff_chunk()
327 state->prototype[0] ? state->prototype : ""); in output_unidiff_chunk()
329 rc = fprintf(dest, "@@ -%d +%d,%d @@%s%s\n", in output_unidiff_chunk()
331 state->prototype[0] ? " " : "", in output_unidiff_chunk()
332 state->prototype[0] ? state->prototype : ""); in output_unidiff_chunk()
334 rc = fprintf(dest, "@@ -%d,%d +%d @@%s%s\n", in output_unidiff_chunk()
336 state->prototype[0] ? " " : "", in output_unidiff_chunk()
337 state->prototype[0] ? state->prototype : ""); in output_unidiff_chunk()
339 rc = fprintf(dest, "@@ -%d,%d +%d,%d @@%s%s\n", in output_unidiff_chunk()
341 state->prototype[0] ? " " : "", in output_unidiff_chunk()
342 state->prototype[0] ? state->prototype : ""); in output_unidiff_chunk()
347 ARRAYLIST_ADD(offp, outinfo->line_offsets); in output_unidiff_chunk()
352 ARRAYLIST_ADD(typep, outinfo->line_types); in output_unidiff_chunk()
358 if (cc->left.start < chunk_start_line) { in output_unidiff_chunk()
360 &result->left->atoms.head[cc->left.start], in output_unidiff_chunk()
361 chunk_start_line - cc->left.start); in output_unidiff_chunk()
368 for (c_idx = cc->chunk.start; c_idx < cc->chunk.end; c_idx++) { in output_unidiff_chunk()
369 const struct diff_chunk *c = &result->chunks.head[c_idx]; in output_unidiff_chunk()
371 if (c->left_count && c->right_count) in output_unidiff_chunk()
373 c->solved ? " " : "?", in output_unidiff_chunk()
374 c->left_start, c->left_count); in output_unidiff_chunk()
375 else if (c->left_count && !c->right_count) in output_unidiff_chunk()
377 c->solved ? "-" : "?", in output_unidiff_chunk()
378 c->left_start, c->left_count); in output_unidiff_chunk()
379 else if (c->right_count && !c->left_count) in output_unidiff_chunk()
381 c->solved ? "+" : "?", in output_unidiff_chunk()
382 c->right_start, c->right_count); in output_unidiff_chunk()
386 if (cc->chunk.end == result->chunks.len) { in output_unidiff_chunk()
396 last_chunk = &result->chunks.head[cc->chunk.end - 1]; in output_unidiff_chunk()
397 chunk_end_line = diff_atom_root_idx(result->left, in output_unidiff_chunk()
398 last_chunk->left_start in output_unidiff_chunk()
399 + last_chunk->left_count); in output_unidiff_chunk()
400 if (cc->left.end > chunk_end_line) { in output_unidiff_chunk()
402 &result->left->atoms.head[chunk_end_line], in output_unidiff_chunk()
403 cc->left.end - chunk_end_line); in output_unidiff_chunk()
407 if (cc->left.end == result->left->atoms.len) { in output_unidiff_chunk()
409 &result->chunks.head[result->chunks.len - 1]); in output_unidiff_chunk()
426 int flags = (result->left->root->diff_flags | in diff_output_unidiff_chunk()
427 result->right->root->diff_flags); in diff_output_unidiff_chunk()
450 int atomizer_flags = (result->left->atomizer_flags| in diff_output_unidiff()
451 result->right->atomizer_flags); in diff_output_unidiff()
452 int flags = (result->left->root->diff_flags | in diff_output_unidiff()
453 result->right->root->diff_flags); in diff_output_unidiff()
463 if (result->rc != DIFF_RC_OK) in diff_output_unidiff()
464 return result->rc; in diff_output_unidiff()
474 for (i = 0; i < result->chunks.len; i++) { in diff_output_unidiff()
475 struct diff_chunk *c = &result->chunks.head[i]; in diff_output_unidiff()
481 if (outinfo && outinfo->line_offsets.len > 0) { in diff_output_unidiff()
483 outinfo->line_offsets.len - 1; in diff_output_unidiff()
484 outoff = outinfo->line_offsets.head[idx]; in diff_output_unidiff()
491 ARRAYLIST_ADD(offp, outinfo->line_offsets); in diff_output_unidiff()
496 ARRAYLIST_ADD(typep, outinfo->line_types); in diff_output_unidiff()
520 for (i = 0; i < result->chunks.len; i++) { in diff_output_unidiff()
521 struct diff_chunk *c = &result->chunks.head[i]; in diff_output_unidiff()
528 c->left_count, in diff_output_unidiff()
529 c->right_count, in diff_output_unidiff()
530 c->left_start ? diff_atom_root_idx(result->left, c->left_start) : -1, in diff_output_unidiff()
531 c->right_start ? diff_atom_root_idx(result->right, c->right_start) : -1); in diff_output_unidiff()
532 assert(check_left_pos == diff_atom_root_idx(result->left, c->left_start)); in diff_output_unidiff()
533 assert(check_right_pos == diff_atom_root_idx(result->right, c->right_start)); in diff_output_unidiff()
534 check_left_pos += c->left_count; in diff_output_unidiff()
535 check_right_pos += c->right_count; in diff_output_unidiff()
538 assert(check_left_pos == result->left->atoms.len); in diff_output_unidiff()
539 assert(check_right_pos == result->right->atoms.len); in diff_output_unidiff()
542 for (i = 0; i < result->chunks.len; i++) { in diff_output_unidiff()
543 struct diff_chunk *c = &result->chunks.head[i]; in diff_output_unidiff()
557 " chunk %d-%d left %d-%d right %d-%d\n", in diff_output_unidiff()
559 cc.left.start, cc.left.end, in diff_output_unidiff()
568 " chunk %d-%d left %d-%d right %d-%d\n", in diff_output_unidiff()
570 next.left.start, next.left.end, in diff_output_unidiff()
578 " now: left %d-%d right %d-%d\n", in diff_output_unidiff()
579 cc.left.start, cc.left.end, in diff_output_unidiff()
588 " print left %d-%d right %d-%d\n", in diff_output_unidiff()
589 cc.left.start, cc.left.end, cc.right.start, cc.right.end); in diff_output_unidiff()
593 debug("new unprinted chunk is left %d-%d right %d-%d\n", in diff_output_unidiff()
594 cc.left.start, cc.left.end, cc.right.start, cc.right.end); in diff_output_unidiff()