[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGXu5jLJeC4oAagPGSquKi_EVvA9+aZkjtASGwriGMeR_dxwnQ@mail.gmail.com>
Date: Wed, 24 Apr 2019 08:02:45 -0700
From: Kees Cook <keescook@...omium.org>
To: Alexander Popov <alex.popov@...ux.com>
Cc: Masahiro Yamada <yamada.masahiro@...ionext.com>,
Michal Marek <michal.lkml@...kovi.net>,
linux-kbuild <linux-kbuild@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [v2 1/1] kconfig: Terminate menu blocks with a comment in the
generated config
On Wed, Apr 24, 2019 at 5:03 AM Alexander Popov <alex.popov@...ux.com> wrote:
>
> Currently menu blocks start with a pretty header but end with nothing in
> the generated config. So next config options stick together with the
> options from the menu block.
>
> Let's terminate menu blocks in the generated config with a comment and
> a newline if needed. Example:
>
> ...
> CONFIG_BPF_STREAM_PARSER=y
> CONFIG_NET_FLOW_LIMIT=y
>
> #
> # Network testing
> #
> CONFIG_NET_PKTGEN=y
> CONFIG_NET_DROP_MONITOR=y
> # end of Network testing
> # end of Networking options
>
> CONFIG_HAMRADIO=y
> ...
>
> Signed-off-by: Alexander Popov <alex.popov@...ux.com>
Reviewed-by: Kees Cook <keescook@...omium.org>
-Kees
> ---
> scripts/kconfig/confdata.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
> index 08ba146..486b4c7 100644
> --- a/scripts/kconfig/confdata.c
> +++ b/scripts/kconfig/confdata.c
> @@ -819,6 +819,7 @@ int conf_write(const char *name)
> struct menu *menu;
> const char *basename;
> const char *str;
> + bool need_newline = false;
> char dirname[PATH_MAX+1], tmpname[PATH_MAX+22], newname[PATH_MAX+8];
> char *env;
>
> @@ -871,12 +872,16 @@ int conf_write(const char *name)
> "#\n"
> "# %s\n"
> "#\n", str);
> + need_newline = false;
> } else if (!(sym->flags & SYMBOL_CHOICE)) {
> sym_calc_value(sym);
> if (!(sym->flags & SYMBOL_WRITE))
> goto next;
> + if (need_newline) {
> + fprintf(out, "\n");
> + need_newline = false;
> + }
> sym->flags &= ~SYMBOL_WRITE;
> -
> conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
> }
>
> @@ -888,6 +893,11 @@ int conf_write(const char *name)
> if (menu->next)
> menu = menu->next;
> else while ((menu = menu->parent)) {
> + if (!menu->sym && menu_is_visible(menu)) {
> + str = menu_get_prompt(menu);
> + fprintf(out, "# end of %s\n", str);
> + need_newline = true;
> + }
> if (menu->next) {
> menu = menu->next;
> break;
> --
> 2.7.4
>
--
Kees Cook
Powered by blists - more mailing lists