diff
Text diff and patch. Compare two texts line-by-line, format as unified diff, and apply patches.
Install
ppm install diff
Usage Example
uses diff;
// Compare strings
var d := Diff(oldText, newText);
WriteLn(FormatUnified(d));
// Compare files
var fileDiff := DiffFiles('v1.txt', 'v2.txt');
for var line in fileDiff do
if line.Op = '+' then
WriteLn('+ ' + line.Text)
else if line.Op = '-' then
WriteLn('- ' + line.Text);
// Apply patch
var original := file_utils.ReadFile('original.txt');
var patched := Apply(original, fileDiff);
file_utils.WriteFile('patched.txt', patched);
Features
LCS-based line-by-line diff
Unified diff format output
File diff with DiffFiles()
Patch application with Apply()
Added/removed/unchanged tagging