فهرست منبع

LibDiff: Flush leftover hunks at the end

This change makes sure that we arrive at the end of the "DP-matrix" and
flush any leftover hunks to get a complete diff result.
Itamar 3 سال پیش
والد
کامیت
4737fc2485
1فایلهای تغییر یافته به همراه10 افزوده شده و 0 حذف شده
  1. 10 0
      Userland/Libraries/LibDiff/Generator.cpp

+ 10 - 0
Userland/Libraries/LibDiff/Generator.cpp

@@ -106,6 +106,16 @@ Vector<Hunk> from_text(StringView old_text, StringView new_text)
             flush_hunk();
             flush_hunk();
         }
         }
     }
     }
+
+    while (i < old_lines.size() && new_lines.size() > 0) {
+        update_hunk(i, new_lines.size() - 1, Direction::Right); // Remove a line
+        ++i;
+    }
+    while (j < new_lines.size() && old_lines.size() > 0) {
+        update_hunk(old_lines.size() - 1, j, Direction::Down); // Add a line
+        ++j;
+    }
+
     flush_hunk();
     flush_hunk();
 
 
     return hunks;
     return hunks;