diff options
Diffstat (limited to 'src/builtins.zig')
| -rw-r--r-- | src/builtins.zig | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/builtins.zig b/src/builtins.zig index edeb7ac8..cb588ba3 100644 --- a/src/builtins.zig +++ b/src/builtins.zig @@ -1140,8 +1140,11 @@ pub const Edit = struct { } if (res.ops.len > 0) { const new = sam.apply(c.p.gpa, f.content, res.ops) catch |err| return c.p.reportError(c.id, "Edit", err); - panes.File.pushUndo(c.p, c.pane); - panes.File.setContent(c.p, f, new); + // `s/a/a/` changes nothing: no undo step, no new revision. + if (std.mem.eql(u8, new, f.content)) c.p.gpa.free(new) else { + panes.File.pushUndo(c.p, c.pane); + panes.File.setContent(c.p, f, new); + } } ninep_pane.setDot(c.pane, sam.moveDot(res.dot, res.ops)); if (res.printed.len > 0) _ = ninep_pane.appendErrors(c.p, c.id, res.printed); |
