forked from OSchip/llvm-project
Avoid using EL_GETFP.
This should fix the build against old versions of libedit. llvm-svn: 200794
This commit is contained in:
parent
7fe6441cc3
commit
45b4c4995e
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue