diff --git a/llvm/include/llvm/LineEditor/LineEditor.h b/llvm/include/llvm/LineEditor/LineEditor.h index 29fdf9f85c6f..ca0312bf6297 100644 --- a/llvm/include/llvm/LineEditor/LineEditor.h +++ b/llvm/include/llvm/LineEditor/LineEditor.h @@ -41,6 +41,7 @@ public: void saveHistory(); void loadHistory(); + void setHistorySize(int size); static std::string getDefaultHistoryPath(StringRef ProgName); diff --git a/llvm/lib/LineEditor/LineEditor.cpp b/llvm/lib/LineEditor/LineEditor.cpp index d0d138bb1f9d..c7d5fd7dcf8a 100644 --- a/llvm/lib/LineEditor/LineEditor.cpp +++ b/llvm/lib/LineEditor/LineEditor.cpp @@ -17,6 +17,7 @@ #include #ifdef HAVE_LIBEDIT #include +constexpr int DefaultHistorySize = 800; #endif using namespace llvm; @@ -220,8 +221,8 @@ LineEditor::LineEditor(StringRef ProgName, StringRef HistoryPath, FILE *In, NULL); // Fix the delete key. ::el_set(Data->EL, EL_CLIENTDATA, Data.get()); + setHistorySize(DefaultHistorySize); HistEvent HE; - ::history(Data->Hist, &HE, H_SETSIZE, 800); ::history(Data->Hist, &HE, H_SETUNIQUE, 1); loadHistory(); } @@ -248,6 +249,11 @@ void LineEditor::loadHistory() { } } +void LineEditor::setHistorySize(int size) { + HistEvent HE; + ::history(Data->Hist, &HE, H_SETSIZE, size); +} + std::optional LineEditor::readLine() const { // Call el_gets to prompt the user and read the user's input. int LineLen = 0; @@ -291,6 +297,7 @@ LineEditor::~LineEditor() { void LineEditor::saveHistory() {} void LineEditor::loadHistory() {} +void LineEditor::setHistorySize(int size) {} std::optional LineEditor::readLine() const { ::fprintf(Data->Out, "%s", Prompt.c_str());