From f043ca43c1ae354346f72dc5826d820d5619f0b2 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 12 Apr 2006 02:21:25 +0200 Subject: [PATCH] Enhancing accessibility of lxdialog For easily getting fairly good accessibility, the TTY cursor should always be left at the focus location. This patch fixes the checklist by just having the list refreshed after the dialog box (hence the cursor position remains in the list). Signed-off-by: Samuel Thibault Signed-off-by: Linus Torvalds --- scripts/kconfig/lxdialog/checklist.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'scripts') diff --git a/scripts/kconfig/lxdialog/checklist.c b/scripts/kconfig/lxdialog/checklist.c index db07ae73e051..be0200e9cdaf 100644 --- a/scripts/kconfig/lxdialog/checklist.c +++ b/scripts/kconfig/lxdialog/checklist.c @@ -196,8 +196,8 @@ int dialog_checklist(const char *title, const char *prompt, int height, print_buttons(dialog, height, width, 0); - wnoutrefresh(list); wnoutrefresh(dialog); + wnoutrefresh(list); doupdate(); while (key != ESC) { @@ -225,12 +225,11 @@ int dialog_checklist(const char *title, const char *prompt, int height, } scroll--; print_item(list, items[scroll * 3 + 1], status[scroll], 0, TRUE); - wnoutrefresh(list); - print_arrows(dialog, choice, item_no, scroll, box_y, box_x + check_x + 5, list_height); - wrefresh(dialog); + wnoutrefresh(dialog); + wrefresh(list); continue; /* wait for another key press */ } else @@ -252,12 +251,12 @@ int dialog_checklist(const char *title, const char *prompt, int height, scroll++; print_item(list, items[(scroll + max_choice - 1) * 3 + 1], status[scroll + max_choice - 1], max_choice - 1, TRUE); - wnoutrefresh(list); print_arrows(dialog, choice, item_no, scroll, box_y, box_x + check_x + 5, list_height); - wrefresh(dialog); + wnoutrefresh(dialog); + wrefresh(list); continue; /* wait for another key press */ } else @@ -271,8 +270,8 @@ int dialog_checklist(const char *title, const char *prompt, int height, choice = i; print_item(list, items[(scroll + choice) * 3 + 1], status[scroll + choice], choice, TRUE); - wnoutrefresh(list); - wrefresh(dialog); + wnoutrefresh(dialog); + wrefresh(list); } continue; /* wait for another key press */ } @@ -306,8 +305,8 @@ int dialog_checklist(const char *title, const char *prompt, int height, print_item(list, items[(scroll + i) * 3 + 1], status[scroll + i], i, i == choice); } - wnoutrefresh(list); - wrefresh(dialog); + wnoutrefresh(dialog); + wrefresh(list); for (i = 0; i < item_no; i++) if (status[i]) -- cgit v1.2.3 From 5ecdd0f67c624714ccd5358e1cc88324f86f0e10 Mon Sep 17 00:00:00 2001 From: Sam Ravnborg Date: Fri, 14 Apr 2006 23:54:13 +0200 Subject: kbuild: fix false section mismatch warnings Darren Jenkins pointed out a number of false positives where we referenced variables from a _driver variable. Fix it by check for that pattern and ignore it. Randy.Dunlap pointed out a similar set of warnings for a number of scsi drivers. In scsi world they misname their variables *_template or *_sht so add these to list of variables that may have references to .init.text with no warning. Randy.Dunlap also pointed out a scsi driver with many references to .exit.text from .rodata. This is compiler generated references and we already ignore these for .init.text, so ignore them for .exit.text also. Signed-off-by: Sam Ravnborg --- scripts/mod/modpost.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'scripts') diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 7e8079a34adf..cd00e9f07589 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -492,17 +492,19 @@ static int strrcmp(const char *s, const char *sub) * These functions may often be marked __init and we do not want to * warn here. * the pattern is identified by: - * tosec = .init.text | .exit.text + * tosec = .init.text | .exit.text | .init.data * fromsec = .data - * atsym = *_driver, *_ops, *_probe, *probe_one + * atsym = *_driver, *_template, *_sht, *_ops, *_probe, *probe_one **/ static int secref_whitelist(const char *tosec, const char *fromsec, - const char *atsym) + const char *atsym) { int f1 = 1, f2 = 1; const char **s; const char *pat2sym[] = { "_driver", + "_template", /* scsi uses *_template a lot */ + "_sht", /* scsi also used *_sht to some extent */ "_ops", "_probe", "_probe_one", @@ -522,7 +524,8 @@ static int secref_whitelist(const char *tosec, const char *fromsec, /* Check for pattern 2 */ if ((strcmp(tosec, ".init.text") != 0) && - (strcmp(tosec, ".exit.text") != 0)) + (strcmp(tosec, ".exit.text") != 0) && + (strcmp(tosec, ".init.data") != 0)) f2 = 0; if (strcmp(fromsec, ".data") != 0) f2 = 0; @@ -820,6 +823,7 @@ static int exit_section(const char *name) * For our future {in}sanity, add a comment that this is the ppc .opd * section, not the ia64 .opd section. * ia64 .opd should not point to discarded sections. + * [.rodata] like for .init.text we ignore .rodata references -same reason **/ static int exit_section_ref_ok(const char *name) { @@ -829,6 +833,7 @@ static int exit_section_ref_ok(const char *name) ".exit.text", ".exit.data", ".init.text", + ".rodata", ".opd", /* See comment [OPD] */ ".toc1", /* used by ppc64 */ ".altinstructions", -- cgit v1.2.3