Commit Diff


commit - 11caa5ccb607f41d22b4d2a7630952c0cdd08336
commit + 24b5052ac04dc722cd86b4cd6f4a7142542edb74
blob - 7dfc84fa74faeb29413f4a7aacd57215ba15277a
blob + b5512c4033d6e6b00e24ff6df424e84189c5a61c
--- include/diff/diff_output.h
+++ include/diff/diff_output.h
@@ -45,3 +45,11 @@ void diff_output_unidiff_chunk(FILE *dest,
 int diff_output_info(FILE *dest, const struct diff_input_info *info);
 int diff_output_lines(FILE *dest, const char *prefix,
 		       struct diff_atom *start_atom, unsigned int count);
+void diff_output_chunk_left_version(FILE *dest,
+			       const struct diff_input_info *info,
+			       const struct diff_result *result,
+			       const struct diff_chunk_context *cc);
+void diff_output_chunk_right_version(FILE *dest,
+				const struct diff_input_info *info,
+				const struct diff_result *result,
+				const struct diff_chunk_context *cc);
blob - 03a4042d7c614b8d5565ce69f13d39b81da33884
blob + 8ac957ca5b3d57def908e535c7400599c2fd52f8
--- lib/diff_output.c
+++ lib/diff_output.c
@@ -92,3 +92,46 @@ diff_output_lines(FILE *dest, const char *prefix, stru
 
 	return 0;
 }
+
+void
+diff_output_chunk_left_version(FILE *dest,
+			       const struct diff_input_info *info,
+			       const struct diff_result *result,
+			       const struct diff_chunk_context *cc)
+{
+	int c_idx;
+
+	if (diff_range_empty(&cc->left))
+		return;
+
+	/* Write out all chunks on the left side. */
+	for (c_idx = cc->chunk.start; c_idx < cc->chunk.end; c_idx++) {
+		const struct diff_chunk *c = &result->chunks.head[c_idx];
+
+		if (c->left_count)
+			diff_output_lines(dest, "", c->left_start,
+			    c->left_count);
+	}
+}
+
+void
+diff_output_chunk_right_version(FILE *dest,
+				const struct diff_input_info *info,
+				const struct diff_result *result,
+				const struct diff_chunk_context *cc)
+{
+	int c_idx;
+
+	if (diff_range_empty(&cc->right))
+		return;
+
+	/* Write out all chunks on the right side. */
+	for (c_idx = cc->chunk.start; c_idx < cc->chunk.end; c_idx++) {
+		const struct diff_chunk *c = &result->chunks.head[c_idx];
+
+		if (c->right_count)
+			diff_output_lines(dest, "", c->right_start,
+			    c->right_count);
+	}
+}
+