Skip to content

Commit

Permalink
Only commit undo groups when buffer was modified
Browse files Browse the repository at this point in the history
This fixes an interaction with kak-lsp that would trigger undo group
commit when setting a buffer option value.
  • Loading branch information
mawww committed Sep 12, 2018
1 parent beb5d00 commit d3be78c
Showing 6 changed files with 12 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/context.cc
Original file line number Diff line number Diff line change
@@ -211,7 +211,11 @@ Vector<String> Context::selections_content() const
void Context::begin_edition()
{
if (m_edition_level >= 0)
{
if (m_edition_level == 0)
m_edition_timestamp = buffer().timestamp();
++m_edition_level;
}
}

void Context::end_edition()
@@ -220,7 +224,8 @@ void Context::end_edition()
return;

kak_assert(m_edition_level != 0);
if (m_edition_level == 1)
if (m_edition_level == 1 and
buffer().timestamp() != m_edition_timestamp)
buffer().commit_undo_group();

--m_edition_level;
1 change: 1 addition & 0 deletions src/context.hh
Original file line number Diff line number Diff line change
@@ -134,6 +134,7 @@ private:
void begin_edition();
void end_edition();
int m_edition_level = 0;
size_t m_edition_timestamp = 0;

friend struct ScopedEdition;

1 change: 1 addition & 0 deletions test/regression/0-spurious-undo-group-on-external/cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Abarbaz<esc>u
1 change: 1 addition & 0 deletions test/regression/0-spurious-undo-group-on-external/in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
foo
1 change: 1 addition & 0 deletions test/regression/0-spurious-undo-group-on-external/out
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
foo
2 changes: 2 additions & 0 deletions test/regression/0-spurious-undo-group-on-external/rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
decl int my_option
hook global InsertChar r %{ eval -buffer %val{buffile} %{ eval "set buffer my_option 1" } }

0 comments on commit d3be78c

Please sign in to comment.