diff options
author | Steve Bennett <steveb@workware.net.au> | 2016-09-04 09:22:16 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2016-09-05 09:40:26 +1000 |
commit | c672379dca1fe3fa7b89e1d8c6b1a1e570bb4043 (patch) | |
tree | 12c0ac296a85e2c567e84d1aad52ba8372181082 /linenoise.h | |
parent | 1b79972ccb35d9fe6174c5c6f045a9b2fcbe0af8 (diff) | |
download | jimtcl-c672379dca1fe3fa7b89e1d8c6b1a1e570bb4043.zip jimtcl-c672379dca1fe3fa7b89e1d8c6b1a1e570bb4043.tar.gz jimtcl-c672379dca1fe3fa7b89e1d8c6b1a1e570bb4043.tar.bz2 |
Update linenoise to the latest version
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'linenoise.h')
-rw-r--r-- | linenoise.h | 73 |
1 files changed, 67 insertions, 6 deletions
diff --git a/linenoise.h b/linenoise.h index cf8f16f..ba1b041 100644 --- a/linenoise.h +++ b/linenoise.h @@ -37,28 +37,89 @@ #ifndef __LINENOISE_H #define __LINENOISE_H -/* Currently never enable completion */ -#define NO_COMPLETION - #ifndef NO_COMPLETION typedef struct linenoiseCompletions { size_t len; char **cvec; } linenoiseCompletions; -typedef void(linenoiseCompletionCallback)(const char *, linenoiseCompletions *); -void linenoiseSetCompletionCallback(linenoiseCompletionCallback *); -void linenoiseAddCompletion(linenoiseCompletions *, const char *); +/* + * The callback type for tab completion handlers. + */ +typedef void(linenoiseCompletionCallback)(const char *prefix, linenoiseCompletions *comp, void *userdata); + +/* + * Sets the current tab completion handler and returns the previous one, or NULL + * if no prior one has been set. + */ +linenoiseCompletionCallback * linenoiseSetCompletionCallback(linenoiseCompletionCallback *comp, void *userdata); + +/* + * Adds a copy of the given string to the given completion list. The copy is owned + * by the linenoiseCompletions object. + */ +void linenoiseAddCompletion(linenoiseCompletions *comp, const char *str); #endif +/* + * Prompts for input using the given string as the input + * prompt. Returns when the user has tapped ENTER or (on an empty + * line) EOF (Ctrl-D on Unix, Ctrl-Z on Windows). Returns either + * a copy of the entered string (for ENTER) or NULL (on EOF). The + * caller owns the returned string and must eventually free() it. + */ char *linenoise(const char *prompt); + +/** + * Clear the screen. + */ +void linenoiseClearScreen(void); + +/* + * Adds a copy of the given line of the command history. + */ int linenoiseHistoryAdd(const char *line); + +/* + * Sets the maximum length of the command history, in lines. + * If the history is currently longer, it will be trimmed, + * retaining only the most recent entries. If len is 0 or less + * then this function does nothing. + */ int linenoiseHistorySetMaxLen(int len); + +/* + * Returns the current maximum length of the history, in lines. + */ int linenoiseHistoryGetMaxLen(void); + +/* + * Saves the current contents of the history to the given file. + * Returns 0 on success. + */ int linenoiseHistorySave(const char *filename); + +/* + * Replaces the current history with the contents + * of the given file. Returns 0 on success. + */ int linenoiseHistoryLoad(const char *filename); + +/* + * Frees all history entries, clearing the history. + */ void linenoiseHistoryFree(void); + +/* + * Returns a pointer to the list of history entries, writing its + * length to *len if len is not NULL. The memory is owned by linenoise + * and must not be freed. + */ char **linenoiseHistory(int *len); + +/* + * Returns the number of display columns in the current terminal. + */ int linenoiseColumns(void); #endif /* __LINENOISE_H */ |