OSDN Git Service

Fix a crash problem when the Diff algorithm is set to something other than default...
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 7 Oct 2023 09:44:16 +0000 (18:44 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 7 Oct 2023 09:44:16 +0000 (18:44 +0900)
Src/xdiff_gnudiff_compat.cpp

index d1f5969..f056749 100644 (file)
@@ -182,9 +182,13 @@ struct change * diff_2_files_xdiff (struct file_data filevec[], int* bin_status,
        {\r
                script = diff_2_buffers_xdiff(\r
                        filevec[0].prefix_end,\r
-                       filevec[0].suffix_begin - filevec[0].prefix_end,\r
+                       filevec[0].suffix_begin - filevec[0].prefix_end - \r
+                               ((filevec[0].suffix_begin == filevec[0].buffer + filevec[0].buffered_chars)\r
+                                       ? filevec[0].missing_newline : 0),\r
                        filevec[1].prefix_end,\r
-                       filevec[1].suffix_begin - filevec[1].prefix_end,\r
+                       filevec[1].suffix_begin - filevec[1].prefix_end - \r
+                               ((filevec[1].suffix_begin == filevec[1].buffer + filevec[1].buffered_chars)\r
+                                       ? filevec[1].missing_newline : 0),\r
                        xdl_flags);\r
                if (bMoved_blocks_flag)\r
                        moved_block_analysis(&script, filevec);\r