@@ -249,3 +249,42 @@ void test_merge_files__automerge_whitespace_change(void)
249
249
250
250
git_merge_file_result_free (& result );
251
251
}
252
+
253
+ void test_merge_files__doesnt_add_newline (void )
254
+ {
255
+ git_merge_file_input ancestor = GIT_MERGE_FILE_INPUT_INIT ,
256
+ ours = GIT_MERGE_FILE_INPUT_INIT ,
257
+ theirs = GIT_MERGE_FILE_INPUT_INIT ;
258
+ git_merge_file_options opts = GIT_MERGE_FILE_OPTIONS_INIT ;
259
+ git_merge_file_result result = {0 };
260
+ const char * expected = "Zero\n1\n2\n3\n4\n5 XXX\n6 YYY\n7\n8\n9\nTen" ;
261
+
262
+ ancestor .ptr = "0\n1\n2\n3\n4\n5 XXX\n6YYY\n7\n8\n9\n10" ;
263
+ ancestor .size = strlen (ancestor .ptr );
264
+ ancestor .path = "testfile.txt" ;
265
+ ancestor .mode = 0100755 ;
266
+
267
+ ours .ptr = "Zero\n1\n2\n3\n4\n5 XXX\n6 YYY\n7\n8\n9\n10" ;
268
+ ours .size = strlen (ours .ptr );
269
+ ours .path = "testfile.txt" ;
270
+ ours .mode = 0100755 ;
271
+
272
+ theirs .ptr = "0\n1\n2\n3\n4\n5 XXX\n6 YYY\n7\n8\n9\nTen" ;
273
+ theirs .size = strlen (theirs .ptr );
274
+ theirs .path = "testfile.txt" ;
275
+ theirs .mode = 0100755 ;
276
+
277
+ opts .flags |= GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE ;
278
+ cl_git_pass (git_merge_file (& result , & ancestor , & ours , & theirs , & opts ));
279
+
280
+ cl_assert_equal_i (1 , result .automergeable );
281
+
282
+ cl_assert_equal_s ("testfile.txt" , result .path );
283
+ cl_assert_equal_i (0100755 , result .mode );
284
+
285
+ cl_assert_equal_i (strlen (expected ), result .len );
286
+ cl_assert_equal_strn (expected , result .ptr , result .len );
287
+
288
+ git_merge_file_result_free (& result );
289
+ }
290
+
0 commit comments