Avoid using EL_GETFP.

This should fix the build against old versions of libedit.

llvm-svn: 200794
This commit is contained in:
Peter Collingbourne 2014-02-04 20:04:46 +00:00
parent 7fe6441cc3
commit 45b4c4995e
1 changed files with 5 additions and 10 deletions

View 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() {