#include "utils.h" #include "fm.h" #include "log.h" #include #include int get_input(const char *prompt, char *buf) { if (!prompt || !buf) return -1; int ch; int i = 0; curs_set(1); werase(status_window->win); mvwprintw(status_window->win, 0, 0, "%s", prompt); wrefresh(status_window->win); while ((ch = getch())) { werase(status_window->win); if (i < 0) i = 0; if (ch >= 32 && ch <= 126) { buf[i++] = ch; } else if (ch == KEY_BACKSPACE || ch == 127 || ch == '\b') { buf[--i] = '\0'; } else if (ch == 27) { werase(status_window->win); curs_set(0); return 0; } else if (ch == KEY_ENTER || ch == '\n' || ch == '\r') { if (i < PATH_MAX) { buf[++i] = '\0'; curs_set(0); return 0; } else { return -1; } } mvwprintw(status_window->win, 0, 0, "%s%s", prompt, buf); wrefresh(status_window->win); LOG_WRITE_INFO("%s", buf); } curs_set(0); return 0; }