]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
kconfig: nconf: refactor in print_in_middle()
authorMasahiro Yamada <masahiroy@kernel.org>
Mon, 12 Apr 2021 01:12:27 +0000 (10:12 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Wed, 14 Apr 2021 06:25:43 +0000 (15:25 +0900)
This helper is the same as the sample code in the NCURSES HOWTO [1],
but it is over-engineering to be used for nconf.

I do not see any good reason to use the 'float' type just for the
division by 2.

All the call-sites pass a non-NULL pointer to the first argument,
so 'if (win == NULL) win = stdscr;' is dead code.

'if (startx != 0) x = startx;' is dead code because 'x' will be
overridden some lines below, by 'x = startx + (int)temp;'.

All the call-sites pass a non-zero value to the second argument,
so 'if (starty != 0)' is always true.

getyx(win, y, x) is also dead-code because both 'y' and 'x' are
overridden.

All the call-sites pass 0 to the third parameter, so 'startx' can
be removed.

All the call-sites pass a non-zero value to the fourth parameter,
so 'if (width == 0) width = 80;' is dead code.

The window will be refreshed later, so there is no need to call
refresh() in this function.

Change the type of the last parameter from 'chtype' to 'int' to be
aligned with the prototype, 'int wattrset(WINDOW *win, int attrs);'

I also slightly cleaned up the indentation style.

[1]: https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/color.html

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/kconfig/nconf.c
scripts/kconfig/nconf.gui.c
scripts/kconfig/nconf.h

index 5209a18eeacba611a2b13ced202060ca557b95dc..b11b75f83f7e1fbe1aedb861a551f5349e7c7d31 100644 (file)
@@ -953,7 +953,7 @@ static void show_menu(const char *prompt, const char *instructions,
        current_instructions = instructions;
 
        clear();
-       print_in_middle(stdscr, 1, 0, getmaxx(stdscr),
+       print_in_middle(stdscr, 1, getmaxx(stdscr),
                        menu_backtitle,
                        attr_main_heading);
 
index e747590cee17c8469870da634cd44aeeabb79c10..9aedf40f1dc033552adb6e4c14e394f70283641e 100644 (file)
@@ -117,32 +117,10 @@ void set_colors(void)
 }
 
 /* this changes the windows attributes !!! */
-void print_in_middle(WINDOW *win,
-               int starty,
-               int startx,
-               int width,
-               const char *string,
-               chtype color)
-{      int length, x, y;
-       float temp;
-
-
-       if (win == NULL)
-               win = stdscr;
-       getyx(win, y, x);
-       if (startx != 0)
-               x = startx;
-       if (starty != 0)
-               y = starty;
-       if (width == 0)
-               width = 80;
-
-       length = strlen(string);
-       temp = (width - length) / 2;
-       x = startx + (int)temp;
-       wattrset(win, color);
-       mvwprintw(win, y, x, "%s", string);
-       refresh();
+void print_in_middle(WINDOW *win, int y, int width, const char *str, int attrs)
+{
+       wattrset(win, attrs);
+       mvwprintw(win, y, (width - strlen(str)) / 2, "%s", str);
 }
 
 int get_line_no(const char *text)
@@ -577,7 +555,6 @@ void show_scroll_win(WINDOW *main_window,
                                text_cols, 0);
                print_in_middle(win,
                                text_lines+2,
-                               0,
                                text_cols,
                                "<OK>",
                                attr_dialog_menu_fore);
index 90a1ae33187842b99ea3e369e6cb5c298c695bd4..6f925bc74eb3d0d05283f7bb4b9f9ee8eb25d033 100644 (file)
@@ -68,12 +68,7 @@ typedef enum {
 void set_colors(void);
 
 /* this changes the windows attributes !!! */
-void print_in_middle(WINDOW *win,
-               int starty,
-               int startx,
-               int width,
-               const char *string,
-               chtype color);
+void print_in_middle(WINDOW *win, int y, int width, const char *str, int attrs);
 int get_line_length(const char *line);
 int get_line_no(const char *text);
 const char *get_line(const char *text, int line_no);