build: scripts/config - update to kconfig-v6.6.16
The main goal here is to keep this close to upstream. Changes include: - allow symbols implied by y to become m - make 'imply' obey the direct dependency - allow only 'config', 'comment', and 'if' inside 'choice' - qconf: make search fully work again on split mode - qconf: navigate menus on hyperlinks - remove '---help---' support - qconf: allow to edit "int", "hex", "string" menus in-place - qconf: drop Qt4 support - nconf: fix core dump when searching in empty menu - nconf: stop endless search loops - Create links to main menu items in search - fix segmentation fault in menuconfig search - nconf: Add search jump feature - port qconf to work with Qt6 in addition to Qt5 - fix possible buffer overflow - fix memory leak from range properties Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
This commit is contained in:
committed by
Robert Marko
parent
ff6df9ac9f
commit
65a3eb28d5
@@ -497,10 +497,17 @@ void refresh_all_windows(WINDOW *main_window)
|
||||
refresh();
|
||||
}
|
||||
|
||||
/* layman's scrollable window... */
|
||||
void show_scroll_win(WINDOW *main_window,
|
||||
const char *title,
|
||||
const char *text)
|
||||
{
|
||||
(void)show_scroll_win_ext(main_window, title, (char *)text, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
/* layman's scrollable window... */
|
||||
int show_scroll_win_ext(WINDOW *main_window, const char *title, char *text,
|
||||
int *vscroll, int *hscroll,
|
||||
extra_key_cb_fn extra_key_cb, void *data)
|
||||
{
|
||||
int res;
|
||||
int total_lines = get_line_no(text);
|
||||
@@ -514,6 +521,12 @@ void show_scroll_win(WINDOW *main_window,
|
||||
WINDOW *win;
|
||||
WINDOW *pad;
|
||||
PANEL *panel;
|
||||
bool done = false;
|
||||
|
||||
if (hscroll)
|
||||
start_x = *hscroll;
|
||||
if (vscroll)
|
||||
start_y = *vscroll;
|
||||
|
||||
getmaxyx(stdscr, lines, columns);
|
||||
|
||||
@@ -549,8 +562,7 @@ void show_scroll_win(WINDOW *main_window,
|
||||
panel = new_panel(win);
|
||||
|
||||
/* handle scrolling */
|
||||
do {
|
||||
|
||||
while (!done) {
|
||||
copywin(pad, win, start_y, start_x, 2, 2, text_lines,
|
||||
text_cols, 0);
|
||||
print_in_middle(win,
|
||||
@@ -593,8 +605,18 @@ void show_scroll_win(WINDOW *main_window,
|
||||
case 'l':
|
||||
start_x++;
|
||||
break;
|
||||
default:
|
||||
if (extra_key_cb) {
|
||||
size_t start = (get_line(text, start_y) - text);
|
||||
size_t end = (get_line(text, start_y + text_lines) - text);
|
||||
|
||||
if (extra_key_cb(res, start, end, data)) {
|
||||
done = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (res == 10 || res == 27 || res == 'q' ||
|
||||
if (res == 0 || res == 10 || res == 27 || res == 'q' ||
|
||||
res == KEY_F(F_HELP) || res == KEY_F(F_BACK) ||
|
||||
res == KEY_F(F_EXIT))
|
||||
break;
|
||||
@@ -606,9 +628,14 @@ void show_scroll_win(WINDOW *main_window,
|
||||
start_x = 0;
|
||||
if (start_x >= total_cols-text_cols)
|
||||
start_x = total_cols-text_cols;
|
||||
} while (res);
|
||||
}
|
||||
|
||||
if (hscroll)
|
||||
*hscroll = start_x;
|
||||
if (vscroll)
|
||||
*vscroll = start_y;
|
||||
del_panel(panel);
|
||||
delwin(win);
|
||||
refresh_all_windows(main_window);
|
||||
return res;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user