1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-21 02:27:10 +03:00
mal/cpp/ReadLine.cpp
Stephen Thirlwall 9ddaa0b91b c++11: step 0
2015-03-27 20:44:42 +11:00

35 lines
667 B
C++

#include "ReadLine.h"
#include "String.h"
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <readline/readline.h>
#include <readline/history.h>
#include <readline/tilde.h>
ReadLine::ReadLine(const String& historyFile)
: m_historyPath(copyAndFree(tilde_expand(historyFile.c_str())))
{
read_history(m_historyPath.c_str());
}
ReadLine::~ReadLine()
{
}
bool ReadLine::get(const String& prompt, String& out)
{
char *line = readline(prompt.c_str());
if (line == NULL) {
return false;
}
add_history(line); // Add input to in-memory history
append_history(1, m_historyPath.c_str());
out = line;
return true;
}