summaryrefslogtreecommitdiff
path: root/lib/LineEditor
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2014-02-04 20:04:46 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2014-02-04 20:04:46 +0000
commit767a3dca4c66dffc88c71cd8586679b1c55f22a8 (patch)
treef72cb007716b1a2d0a613b95122d14ad81dd950c /lib/LineEditor
parent051faa2cfa63b5add668592c9e6cc240a876cdb9 (diff)
downloadllvm-767a3dca4c66dffc88c71cd8586679b1c55f22a8.tar.gz
llvm-767a3dca4c66dffc88c71cd8586679b1c55f22a8.tar.bz2
llvm-767a3dca4c66dffc88c71cd8586679b1c55f22a8.tar.xz
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
Diffstat (limited to 'lib/LineEditor')
-rw-r--r--lib/LineEditor/LineEditor.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/lib/LineEditor/LineEditor.cpp b/lib/LineEditor/LineEditor.cpp
index 80c8080020..a50ccc388f 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() {