mirror of
https://github.com/troglobit/editline.git
synced 2025-07-21 20:21:12 +08:00
Add support for el_no_hist to disable access to and auto-save of history.
This commit adds a new global variable 'el_no_hist' which can be used to disable auto-save of history as well as access to history using prev and next keybindings (up/down arrows). Signed-off-by: Mattias Walström <lazzer@gmail.com> Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
parent
f7432fbfbd
commit
7cd7fc4b61
@ -72,7 +72,8 @@ extern char *rl_line_buffer;
|
|||||||
extern const char *rl_readline_name;
|
extern const char *rl_readline_name;
|
||||||
extern FILE *rl_instream; /* The stdio stream from which input is read. Defaults to stdin if NULL - Not supported yet! */
|
extern FILE *rl_instream; /* The stdio stream from which input is read. Defaults to stdin if NULL - Not supported yet! */
|
||||||
extern FILE *rl_outstream; /* The stdio stream to which output is flushed. Defaults to stdout if NULL - Not supported yet! */
|
extern FILE *rl_outstream; /* The stdio stream to which output is flushed. Defaults to stdout if NULL - Not supported yet! */
|
||||||
extern int el_no_echo; /* e.g under emacs, don't echo except prompt */
|
extern int el_no_echo; /* E.g under emacs, don't echo except prompt */
|
||||||
|
extern int el_no_hist; /* Disable auto-save of and access to history -- e.g. for password prompts or wizards */
|
||||||
extern int el_hist_size; /* size of history scrollback buffer, default: 15 */
|
extern int el_hist_size; /* size of history scrollback buffer, default: 15 */
|
||||||
|
|
||||||
extern void rl_initialize(void);
|
extern void rl_initialize(void);
|
||||||
|
@ -107,6 +107,7 @@ static int tty_cols = SCREEN_COLS;
|
|||||||
static int tty_rows = SCREEN_ROWS;
|
static int tty_rows = SCREEN_ROWS;
|
||||||
|
|
||||||
int el_no_echo = 0; /* e.g., under Emacs */
|
int el_no_echo = 0; /* e.g., under Emacs */
|
||||||
|
int el_no_hist = 0;
|
||||||
int rl_point;
|
int rl_point;
|
||||||
int rl_mark;
|
int rl_mark;
|
||||||
int rl_end;
|
int rl_end;
|
||||||
@ -547,11 +548,17 @@ static el_status_t do_hist(const char *(*move)(void))
|
|||||||
|
|
||||||
static el_status_t h_next(void)
|
static el_status_t h_next(void)
|
||||||
{
|
{
|
||||||
|
if (el_no_hist)
|
||||||
|
return CSstay;
|
||||||
|
|
||||||
return do_hist(next_hist);
|
return do_hist(next_hist);
|
||||||
}
|
}
|
||||||
|
|
||||||
static el_status_t h_prev(void)
|
static el_status_t h_prev(void)
|
||||||
{
|
{
|
||||||
|
if (el_no_hist)
|
||||||
|
return CSstay;
|
||||||
|
|
||||||
return do_hist(prev_hist);
|
return do_hist(prev_hist);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1210,8 +1217,8 @@ char *readline(const char *prompt)
|
|||||||
free(Screen);
|
free(Screen);
|
||||||
free(H.Lines[--H.Size]);
|
free(H.Lines[--H.Size]);
|
||||||
|
|
||||||
/* Add to history, unless no-echo mode ... */
|
/* Add to history, unless no-echo or no-history mode ... */
|
||||||
if (!el_no_echo) {
|
if (!el_no_echo && !el_no_hist) {
|
||||||
if (line != NULL && *line != '\0')
|
if (line != NULL && *line != '\0')
|
||||||
hist_add(line);
|
hist_add(line);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user