[lldb] Don't save empty expressions in the multiline editor history
authorRaphael Isemann <teemperor@gmail.com>
Tue, 31 Aug 2021 16:12:51 +0000 (18:12 +0200)
committerRaphael Isemann <teemperor@gmail.com>
Tue, 31 Aug 2021 16:51:18 +0000 (18:51 +0200)
commit4f7fb13f87e10bd2cd89ccf2be70b026032237a7
tree46262387efadb02afdfd678c2a7fed3dffc05fb3
parent9c37eda6e4c5bda3ae5f6edcadf7c0f52c3aec03
[lldb] Don't save empty expressions in the multiline editor history

Right now running `expr` to start the multiline expression editor and then
pressing enter causes an empty history empty to be created for the multiline
editor. That doesn't seem very useful for users as pressing the 'up' key will
now also bring up these empty expressions.

I don't think there is ever a use case for recalling a completely empty
expression from the history, so instead don't save those entries to the history
file and make sure we never recall them when navigating over the expression
history.

Note: This is actually a Swift downstream patch that got shipped with Apple's
LLDB for many years. However, this recently started conflicting with upstream
LLDB as D100048 added a test that made sure that empty expression entries don't
crash LLDB. Apple's LLDB was never affected by this crash as it never saved
empty expressions in the first place.

Reviewed By: augusto2112

Differential Revision: https://reviews.llvm.org/D108983
lldb/source/Host/common/Editline.cpp
lldb/test/API/commands/expression/multiline-navigation/TestMultilineNavigation.py