diff options
Diffstat (limited to 'lldb/source/Host/common/Editline.cpp')
| -rw-r--r-- | lldb/source/Host/common/Editline.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lldb/source/Host/common/Editline.cpp b/lldb/source/Host/common/Editline.cpp index ed67d0c2c2b..d49dc8f7e2e 100644 --- a/lldb/source/Host/common/Editline.cpp +++ b/lldb/source/Host/common/Editline.cpp @@ -886,8 +886,11 @@ Editline::FixIndentationCommand (int ch) } else if (indent_correction < 0) { - info->cursor = info->buffer - indent_correction; - el_wdeletestr (m_editline, -indent_correction); + // Delete characters for the unindentation AND including the character we just added. + el_wdeletestr (m_editline, -indent_correction + 1); + + // Rewrite the character that caused the unindentation. + el_winsertstr (m_editline, inserted); } info->cursor = info->buffer + cursor_position + indent_correction; return CC_REFRESH; |

