From 767a3dca4c66dffc88c71cd8586679b1c55f22a8 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Tue, 4 Feb 2014 20:04:46 +0000 Subject: [PATCH] Avoid using EL_GETFP. This should fix the build against old versions of libedit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200794 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/LineEditor/LineEditor.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/LineEditor/LineEditor.cpp b/lib/LineEditor/LineEditor.cpp index 80c80800202..a50ccc388f1 100644 --- a/lib/LineEditor/LineEditor.cpp +++ b/lib/LineEditor/LineEditor.cpp @@ -102,6 +102,8 @@ struct LineEditor::InternalData { unsigned PrevCount; std::string ContinuationOutput; + + FILE *Out; }; static const char *ElGetPromptFn(EditLine *EL) { @@ -120,9 +122,7 @@ static unsigned char ElCompletionFn(EditLine *EL, int ch) { if (el_get(EL, EL_CLIENTDATA, &Data) == 0) { if (!Data->ContinuationOutput.empty()) { // This is the continuation of the AK_ShowCompletions branch below. - FILE *Out; - if (::el_get(EL, EL_GETFP, 1, &Out) != 0) - return CC_ERROR; + FILE *Out = Data->Out; // Print the required output (see below). ::fwrite(Data->ContinuationOutput.c_str(), @@ -198,6 +198,7 @@ LineEditor::LineEditor(StringRef ProgName, StringRef HistoryPath, FILE *In, this->HistoryPath = getDefaultHistoryPath(ProgName); Data->LE = this; + Data->Out = Out; Data->Hist = ::history_init(); assert(Data->Hist); @@ -228,15 +229,9 @@ LineEditor::LineEditor(StringRef ProgName, StringRef HistoryPath, FILE *In, LineEditor::~LineEditor() { saveHistory(); - FILE *Out; - if (::el_get(Data->EL, EL_GETFP, 1, &Out) != 0) - Out = 0; - ::history_end(Data->Hist); ::el_end(Data->EL); - - if (Out) - ::fwrite("\n", 1, 1, Out); + ::fwrite("\n", 1, 1, Data->Out); } void LineEditor::saveHistory() { -- 2.34.1