mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-22 13:02:44 +01:00
client: Preserve command history in between the instances
This also limits the number of entries in history to 24.
This commit is contained in:
parent
202f65be69
commit
44fcb2b1d7
@ -594,10 +594,23 @@ static void signal_handler(void *user_data)
|
|||||||
display_refresh_reset();
|
display_refresh_reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *history_path;
|
||||||
|
|
||||||
void display_init(void)
|
void display_init(void)
|
||||||
{
|
{
|
||||||
|
const char *home_path;
|
||||||
|
|
||||||
display_refresh.redo_entries = l_queue_new();
|
display_refresh.redo_entries = l_queue_new();
|
||||||
|
|
||||||
|
stifle_history(24);
|
||||||
|
|
||||||
|
home_path = getenv("HOME");
|
||||||
|
if (home_path)
|
||||||
|
history_path = l_strdup_printf("%s/%s", home_path,
|
||||||
|
".iwctl_history");
|
||||||
|
|
||||||
|
read_history(history_path);
|
||||||
|
|
||||||
setlinebuf(stdout);
|
setlinebuf(stdout);
|
||||||
|
|
||||||
resize_signal = l_signal_create(SIGWINCH, signal_handler, NULL, NULL);
|
resize_signal = l_signal_create(SIGWINCH, signal_handler, NULL, NULL);
|
||||||
@ -609,6 +622,7 @@ void display_init(void)
|
|||||||
rl_erase_empty_line = 1;
|
rl_erase_empty_line = 1;
|
||||||
rl_callback_handler_install("Waiting for IWD to appear...",
|
rl_callback_handler_install("Waiting for IWD to appear...",
|
||||||
readline_callback);
|
readline_callback);
|
||||||
|
|
||||||
rl_redisplay();
|
rl_redisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -631,5 +645,8 @@ void display_exit(void)
|
|||||||
|
|
||||||
l_signal_remove(resize_signal);
|
l_signal_remove(resize_signal);
|
||||||
|
|
||||||
|
write_history(history_path);
|
||||||
|
l_free(history_path);
|
||||||
|
|
||||||
display_quit();
|
display_quit();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user