Commit Diff


commit - 2c20a3ed9d3c979c38e927387d4ea488e4dd631b
commit + 8cba9b5e693b0da4da8e2f83b51ab6ad42430851
blob - 823cce7950430e64d7aba91ed37f484972e5f568
blob + ef073fa60e05e919ff3a03ae8837019c276589fe
--- lib/diff_output.c
+++ lib/diff_output.c
@@ -123,7 +123,7 @@ diff_output_chunk_left_version(struct diff_output_info
 			       const struct diff_result *result,
 			       const struct diff_chunk_context *cc)
 {
-	int c_idx;
+	int rc, c_idx;
 	struct diff_output_info *outinfo = NULL;
 
 	if (diff_range_empty(&cc->left))
@@ -141,8 +141,10 @@ diff_output_chunk_left_version(struct diff_output_info
 		const struct diff_chunk *c = &result->chunks.head[c_idx];
 
 		if (c->left_count)
-			diff_output_lines(outinfo, dest, "", c->left_start,
-			    c->left_count);
+			rc = diff_output_lines(outinfo, dest, "",
+			    c->left_start, c->left_count);
+			if (rc)
+				return rc;
 	}
 
 	return DIFF_RC_OK;
@@ -155,7 +157,7 @@ diff_output_chunk_right_version(struct diff_output_inf
 				const struct diff_result *result,
 				const struct diff_chunk_context *cc)
 {
-	int c_idx;
+	int rc, c_idx;
 	struct diff_output_info *outinfo = NULL;
 
 	if (diff_range_empty(&cc->right))
@@ -172,9 +174,12 @@ diff_output_chunk_right_version(struct diff_output_inf
 	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(outinfo, dest, "", c->right_start,
+		if (c->right_count) {
+			rc = diff_output_lines(outinfo, dest, "", c->right_start,
 			    c->right_count);
+			if (rc)
+				return rc;
+		}
 	}
 
 	return DIFF_RC_OK;
blob - 86535a9ca5c0f5f6702c617b1158a45dae70cf89
blob + 76f3831e2f6844dc51a9dc5e98f69b52ac40b18e
--- lib/diff_output_plain.c
+++ lib/diff_output_plain.c
@@ -33,7 +33,7 @@ diff_output_plain(struct diff_output_info **output_inf
 		 const struct diff_result *result)
 {
 	struct diff_output_info *outinfo = NULL;
-	int i;
+	int i, rc;
 
 	if (!result)
 		return EINVAL;
@@ -50,17 +50,19 @@ diff_output_plain(struct diff_output_info **output_inf
 	for (i = 0; i < result->chunks.len; i++) {
 		struct diff_chunk *c = &result->chunks.head[i];
 		if (c->left_count && c->right_count)
-			diff_output_lines(outinfo, dest,
+			rc = diff_output_lines(outinfo, dest,
 					  c->solved ? " " : "?",
 					  c->left_start, c->left_count);
 		else if (c->left_count && !c->right_count)
-			diff_output_lines(outinfo, dest,
+			rc = diff_output_lines(outinfo, dest,
 					  c->solved ? "-" : "?",
 					  c->left_start, c->left_count);
 		else if (c->right_count && !c->left_count)
-			diff_output_lines(outinfo, dest,
+			rc = diff_output_lines(outinfo, dest,
 					  c->solved ? "+" : "?",
 					  c->right_start, c->right_count);
+		if (rc)
+			return rc;
 	}
 	return DIFF_RC_OK;
 }