unix: Support readline history saving to file, improves interactive usage.
This commit is contained in:
parent
143c34109c
commit
1129de5ac0
13
unix/input.c
13
unix/input.c
|
@ -35,6 +35,7 @@
|
|||
#if MICROPY_USE_READLINE
|
||||
#include <readline/readline.h>
|
||||
#include <readline/history.h>
|
||||
#include <readline/tilde.h>
|
||||
#endif
|
||||
|
||||
char *prompt(char *p) {
|
||||
|
@ -62,6 +63,18 @@ char *prompt(char *p) {
|
|||
return line;
|
||||
}
|
||||
|
||||
void prompt_read_history(void) {
|
||||
#if MICROPY_USE_READLINE_HISTORY
|
||||
read_history(tilde_expand("~/.micropython.history"));
|
||||
#endif
|
||||
}
|
||||
|
||||
void prompt_write_history(void) {
|
||||
#if MICROPY_USE_READLINE_HISTORY
|
||||
write_history(tilde_expand("~/.micropython.history"));
|
||||
#endif
|
||||
}
|
||||
|
||||
STATIC mp_obj_t mp_builtin_input(uint n_args, const mp_obj_t *args) {
|
||||
if (n_args == 1) {
|
||||
mp_obj_print(args[0], PRINT_STR);
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
char *prompt(char *p);
|
||||
|
||||
void prompt_read_history(void);
|
||||
void prompt_write_history(void);
|
||||
|
|
|
@ -301,6 +301,8 @@ STATIC void set_sys_argv(char *argv[], int argc, int start_arg) {
|
|||
#endif
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
prompt_read_history();
|
||||
|
||||
mp_stack_set_limit(32768);
|
||||
|
||||
pre_process_options(argc, argv);
|
||||
|
@ -477,6 +479,7 @@ int main(int argc, char **argv) {
|
|||
#endif
|
||||
|
||||
//printf("total bytes = %d\n", m_get_total_bytes_allocated());
|
||||
prompt_write_history();
|
||||
return ret & 0xff;
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#define MICROPY_MALLOC_USES_ALLOCATED_SIZE (1)
|
||||
#define MICROPY_MEM_STATS (1)
|
||||
#define MICROPY_DEBUG_PRINTERS (1)
|
||||
#define MICROPY_USE_READLINE_HISTORY (1)
|
||||
#define MICROPY_HELPER_REPL (1)
|
||||
#define MICROPY_HELPER_LEXER_UNIX (1)
|
||||
#define MICROPY_ENABLE_SOURCE_LINE (1)
|
||||
|
|
Loading…
Reference in New Issue