Avoid using EL_GETFP.
authorPeter Collingbourne <peter@pcc.me.uk>
Tue, 4 Feb 2014 20:04:46 +0000 (20:04 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Tue, 4 Feb 2014 20:04:46 +0000 (20:04 +0000)
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

index 80c8080020239439e99bc00d1b1f4efd27004cd4..a50ccc388f154a2c22235fb65cd3be6a8d2f54dd 100644 (file)
@@ -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() {