StuBS
linenoise Namespace Reference

Classes

struct  linenoiseState
 

Typedefs

typedef std::function< void(const char *, std::vector< std::string > &)> CompletionCallback
 

Enumerations

enum  KEY_ACTION {
  KEY_NULL = 0 ,
  CTRL_A = 1 ,
  CTRL_B = 2 ,
  CTRL_C = 3 ,
  CTRL_D = 4 ,
  CTRL_E = 5 ,
  CTRL_F = 6 ,
  CTRL_H = 8 ,
  TAB = 9 ,
  CTRL_K = 11 ,
  CTRL_L = 12 ,
  ENTER = 13 ,
  CTRL_N = 14 ,
  CTRL_P = 16 ,
  CTRL_T = 20 ,
  CTRL_U = 21 ,
  CTRL_W = 23 ,
  ESC = 27 ,
  BACKSPACE = 127
}
 

Functions

void linenoiseAtExit (void)
 
bool AddHistory (const char *line)
 
void refreshLine (struct linenoiseState *l)
 
static int unicodeIsWideChar (unsigned long cp)
 
int unicodeIsCombiningChar (unsigned long cp)
 
int unicodePrevUTF8CharLen (char *buf, int pos)
 
int unicodeUTF8CharLen (char *buf, int buf_len, int pos)
 
int unicodeUTF8CharToCodePoint (const char *buf, int len, int *cp)
 
int unicodeGraphemeLen (char *buf, int buf_len, int pos)
 
int unicodePrevGraphemeLen (char *buf, int pos)
 
int isAnsiEscape (const char *buf, int buf_len, int *len)
 
int unicodeColumnPos (const char *buf, int buf_len)
 
int unicodeColumnPosForMultiLine (char *buf, int buf_len, int pos, int cols, int ini_pos)
 
int unicodeReadUTF8Char (int fd, char *buf, int *cp)
 
void SetMultiLine (bool ml)
 
bool isUnsupportedTerm (void)
 
bool enableRawMode (int fd)
 
void disableRawMode (int fd)
 
int getCursorPosition (int ifd, int ofd)
 
int getColumns (int ifd, int ofd)
 
void linenoiseClearScreen (void)
 
void linenoiseBeep (void)
 
int completeLine (struct linenoiseState *ls, char *cbuf, int *c)
 
void SetCompletionCallback (CompletionCallback fn)
 
void refreshSingleLine (struct linenoiseState *l)
 
void refreshMultiLine (struct linenoiseState *l)
 
int linenoiseEditInsert (struct linenoiseState *l, const char *cbuf, int clen)
 
void linenoiseEditMoveLeft (struct linenoiseState *l)
 
void linenoiseEditMoveRight (struct linenoiseState *l)
 
void linenoiseEditMoveHome (struct linenoiseState *l)
 
void linenoiseEditMoveEnd (struct linenoiseState *l)
 
void linenoiseEditHistoryNext (struct linenoiseState *l, int dir)
 
void linenoiseEditDelete (struct linenoiseState *l)
 
void linenoiseEditBackspace (struct linenoiseState *l)
 
void linenoiseEditDeletePrevWord (struct linenoiseState *l)
 
int linenoiseEdit (int stdin_fd, int stdout_fd, char *buf, int buflen, const char *prompt)
 
bool linenoiseRaw (const char *prompt, std::string &line)
 
bool Readline (const char *prompt, std::string &line)
 
std::string Readline (const char *prompt, bool &quit)
 
std::string Readline (const char *prompt)
 
bool SetHistoryMaxLen (size_t len)
 
bool SaveHistory (const char *path)
 
bool LoadHistory (const char *path)
 
const std::vector< std::string > & GetHistory ()
 

Constants

static const char * unsupported_term [] = {"dumb","cons25","emacs",nullptr}
 
static CompletionCallback completionCallback
 
static struct termios orig_termios
 
static bool rawmode = false
 
static bool mlmode = false
 
static bool atexit_registered = false
 
static size_t history_max_len = LINENOISE_DEFAULT_HISTORY_MAX_LEN
 
static std::vector< std::string > history
 
static unsigned long unicodeWideCharTable [][2]
 
static int unicodeWideCharTableSize = sizeof(unicodeWideCharTable) / sizeof(unicodeWideCharTable[0])
 
static unsigned long unicodeCombiningCharTable []
 
static int unicodeCombiningCharTableSize = sizeof(unicodeCombiningCharTable) / sizeof(unicodeCombiningCharTable[0])
 

Class Documentation

◆ linenoise::linenoiseState

struct linenoise::linenoiseState
Class Members
int ifd
int ofd
char * buf
int buflen
string prompt
int pos
int oldcolpos
int len
int cols
int maxrows
int history_index

Typedef Documentation

◆ CompletionCallback

typedef std::function<void (const char*, std::vector<std::string>&)> linenoise::CompletionCallback

Enumeration Type Documentation

◆ KEY_ACTION

Enumerator
KEY_NULL 
CTRL_A 
CTRL_B 
CTRL_C 
CTRL_D 
CTRL_E 
CTRL_F 
CTRL_H 
TAB 
CTRL_K 
CTRL_L 
ENTER 
CTRL_N 
CTRL_P 
CTRL_T 
CTRL_U 
CTRL_W 
ESC 
BACKSPACE 

Function Documentation

◆ linenoiseAtExit()

void linenoise::linenoiseAtExit ( void  )
inline

◆ AddHistory()

bool linenoise::AddHistory ( const char *  line)
inline

◆ refreshLine()

void linenoise::refreshLine ( struct linenoiseState l)
inline

◆ unicodeIsWideChar()

static int linenoise::unicodeIsWideChar ( unsigned long  cp)
static

◆ unicodeIsCombiningChar()

int linenoise::unicodeIsCombiningChar ( unsigned long  cp)
inline

◆ unicodePrevUTF8CharLen()

int linenoise::unicodePrevUTF8CharLen ( char *  buf,
int  pos 
)
inline

◆ unicodeUTF8CharLen()

int linenoise::unicodeUTF8CharLen ( char *  buf,
int  buf_len,
int  pos 
)
inline

◆ unicodeUTF8CharToCodePoint()

int linenoise::unicodeUTF8CharToCodePoint ( const char *  buf,
int  len,
int *  cp 
)
inline

◆ unicodeGraphemeLen()

int linenoise::unicodeGraphemeLen ( char *  buf,
int  buf_len,
int  pos 
)
inline

◆ unicodePrevGraphemeLen()

int linenoise::unicodePrevGraphemeLen ( char *  buf,
int  pos 
)
inline

◆ isAnsiEscape()

int linenoise::isAnsiEscape ( const char *  buf,
int  buf_len,
int *  len 
)
inline

◆ unicodeColumnPos()

int linenoise::unicodeColumnPos ( const char *  buf,
int  buf_len 
)
inline

◆ unicodeColumnPosForMultiLine()

int linenoise::unicodeColumnPosForMultiLine ( char *  buf,
int  buf_len,
int  pos,
int  cols,
int  ini_pos 
)
inline

◆ unicodeReadUTF8Char()

int linenoise::unicodeReadUTF8Char ( int  fd,
char *  buf,
int *  cp 
)
inline

◆ SetMultiLine()

void linenoise::SetMultiLine ( bool  ml)
inline

◆ isUnsupportedTerm()

bool linenoise::isUnsupportedTerm ( void  )
inline

◆ enableRawMode()

bool linenoise::enableRawMode ( int  fd)
inline

◆ disableRawMode()

void linenoise::disableRawMode ( int  fd)
inline

◆ getCursorPosition()

int linenoise::getCursorPosition ( int  ifd,
int  ofd 
)
inline

◆ getColumns()

int linenoise::getColumns ( int  ifd,
int  ofd 
)
inline

◆ linenoiseClearScreen()

void linenoise::linenoiseClearScreen ( void  )
inline

◆ linenoiseBeep()

void linenoise::linenoiseBeep ( void  )
inline

◆ completeLine()

int linenoise::completeLine ( struct linenoiseState ls,
char *  cbuf,
int *  c 
)
inline

◆ SetCompletionCallback()

void linenoise::SetCompletionCallback ( CompletionCallback  fn)
inline

◆ refreshSingleLine()

void linenoise::refreshSingleLine ( struct linenoiseState l)
inline

◆ refreshMultiLine()

void linenoise::refreshMultiLine ( struct linenoiseState l)
inline

◆ linenoiseEditInsert()

int linenoise::linenoiseEditInsert ( struct linenoiseState l,
const char *  cbuf,
int  clen 
)
inline

◆ linenoiseEditMoveLeft()

void linenoise::linenoiseEditMoveLeft ( struct linenoiseState l)
inline

◆ linenoiseEditMoveRight()

void linenoise::linenoiseEditMoveRight ( struct linenoiseState l)
inline

◆ linenoiseEditMoveHome()

void linenoise::linenoiseEditMoveHome ( struct linenoiseState l)
inline

◆ linenoiseEditMoveEnd()

void linenoise::linenoiseEditMoveEnd ( struct linenoiseState l)
inline

◆ linenoiseEditHistoryNext()

void linenoise::linenoiseEditHistoryNext ( struct linenoiseState l,
int  dir 
)
inline

◆ linenoiseEditDelete()

void linenoise::linenoiseEditDelete ( struct linenoiseState l)
inline

◆ linenoiseEditBackspace()

void linenoise::linenoiseEditBackspace ( struct linenoiseState l)
inline

◆ linenoiseEditDeletePrevWord()

void linenoise::linenoiseEditDeletePrevWord ( struct linenoiseState l)
inline

◆ linenoiseEdit()

int linenoise::linenoiseEdit ( int  stdin_fd,
int  stdout_fd,
char *  buf,
int  buflen,
const char *  prompt 
)
inline

◆ linenoiseRaw()

bool linenoise::linenoiseRaw ( const char *  prompt,
std::string &  line 
)
inline

◆ Readline() [1/3]

bool linenoise::Readline ( const char *  prompt,
std::string &  line 
)
inline

◆ Readline() [2/3]

std::string linenoise::Readline ( const char *  prompt,
bool &  quit 
)
inline

◆ Readline() [3/3]

std::string linenoise::Readline ( const char *  prompt)
inline

◆ SetHistoryMaxLen()

bool linenoise::SetHistoryMaxLen ( size_t  len)
inline

◆ SaveHistory()

bool linenoise::SaveHistory ( const char *  path)
inline

◆ LoadHistory()

bool linenoise::LoadHistory ( const char *  path)
inline

◆ GetHistory()

const std::vector< std::string > & linenoise::GetHistory ( )
inline

Constant Documentation

◆ unsupported_term

const char* linenoise::unsupported_term[] = {"dumb","cons25","emacs",nullptr}
static

◆ completionCallback

CompletionCallback linenoise::completionCallback
static

◆ orig_termios

struct termios linenoise::orig_termios
static

◆ rawmode

bool linenoise::rawmode = false
static

◆ mlmode

bool linenoise::mlmode = false
static

◆ atexit_registered

bool linenoise::atexit_registered = false
static

◆ history_max_len

size_t linenoise::history_max_len = LINENOISE_DEFAULT_HISTORY_MAX_LEN
static

◆ history

std::vector<std::string> linenoise::history
static

◆ unicodeWideCharTable

unsigned long linenoise::unicodeWideCharTable[][2]
static
Initial value:
= {
{ 0x1100, 0x115F }, { 0x2329, 0x232A }, { 0x2E80, 0x2E99, }, { 0x2E9B, 0x2EF3, },
{ 0x2F00, 0x2FD5, }, { 0x2FF0, 0x2FFB, }, { 0x3000, 0x303E, }, { 0x3041, 0x3096, },
{ 0x3099, 0x30FF, }, { 0x3105, 0x312D, }, { 0x3131, 0x318E, }, { 0x3190, 0x31BA, },
{ 0x31C0, 0x31E3, }, { 0x31F0, 0x321E, }, { 0x3220, 0x3247, }, { 0x3250, 0x4DBF, },
{ 0x4E00, 0xA48C, }, { 0xA490, 0xA4C6, }, { 0xA960, 0xA97C, }, { 0xAC00, 0xD7A3, },
{ 0xF900, 0xFAFF, }, { 0xFE10, 0xFE19, }, { 0xFE30, 0xFE52, }, { 0xFE54, 0xFE66, },
{ 0xFE68, 0xFE6B, }, { 0xFF01, 0xFFE6, },
{ 0x1B000, 0x1B001, }, { 0x1F200, 0x1F202, }, { 0x1F210, 0x1F23A, },
{ 0x1F240, 0x1F248, }, { 0x1F250, 0x1F251, }, { 0x20000, 0x3FFFD, },
}

◆ unicodeWideCharTableSize

int linenoise::unicodeWideCharTableSize = sizeof(unicodeWideCharTable) / sizeof(unicodeWideCharTable[0])
static

◆ unicodeCombiningCharTable

unsigned long linenoise::unicodeCombiningCharTable[]
static

◆ unicodeCombiningCharTableSize

int linenoise::unicodeCombiningCharTableSize = sizeof(unicodeCombiningCharTable) / sizeof(unicodeCombiningCharTable[0])
static