All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Marek <mmarek@suse.cz>
To: Arnaud Lacombe <lacombar@gmail.com>
Cc: Sam Ravnborg <sam@ravnborg.org>,
	linux-kbuild <linux-kbuild@vger.kernel.org>
Subject: Re: [PATCH] kbuild: implement the `mainmenu' directive
Date: Tue, 17 Aug 2010 13:24:23 +0200	[thread overview]
Message-ID: <4C6A7167.3060608@suse.cz> (raw)
In-Reply-To: <1282023725-20428-1-git-send-email-lacombar@gmail.com>

On 17.8.2010 07:42, Arnaud Lacombe wrote:
> note: the prompt is voluntarily still a bare `const char *'. It may need
> to be represented in a more detailled way, say a `struct property'.
> 
> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> 
> ---
>  scripts/kconfig/lkc.h   |    2 ++
>  scripts/kconfig/menu.c  |   23 +++++++++++++++++++++++
>  scripts/kconfig/zconf.y |    9 ++++++++-
>  3 files changed, 33 insertions(+), 1 deletions(-)
> 
> diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
> index bdf71bd..f00854f 100644
> --- a/scripts/kconfig/lkc.h
> +++ b/scripts/kconfig/lkc.h
> @@ -94,6 +94,8 @@ static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
>  void kconfig_load(void);
>  
>  /* menu.c */
> +void mainmenu_set_prompt(char *);
> +const char *mainmenu_get_prompt(void);
>  void _menu_init(void);
>  void menu_warn(struct menu *menu, const char *fmt, ...);
>  struct menu *menu_add_menu(void);
> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
> index 4fb5902..6aa219e 100644
> --- a/scripts/kconfig/menu.c
> +++ b/scripts/kconfig/menu.c
> @@ -38,6 +38,29 @@ static void prop_warn(struct property *prop, const char *fmt, ...)
>  	va_end(ap);
>  }
>  
> +static const char *mainmenu_prompt = NULL;

Keep the "Linux Kernel Configuration" default here.

> +
> +void mainmenu_set_prompt(char *prompt)
> +{
> +	if (mainmenu_prompt != NULL)
> +		fprintf(stderr, "%s:%d:warning: mainmenu redefined\n",
> +		    current_file->name, zconf_lineno());

... and do not warn here.

> +
> +	if (isspace(*prompt)) {
> +		fprintf(stderr, "%s:%d:warning: leading whitespace ignored\n",
> +		    current_file->name, zconf_lineno());
> +		while (isspace(*prompt))
> +			prompt++;
> +	}

The lexer already eats whitespace I think, so this might not be necessary.

Michal

> +
> +	mainmenu_prompt = prompt;
> +}
> +
> +const char *mainmenu_get_prompt(void)
> +{
> +	return mainmenu_prompt;
> +}
> +
>  void _menu_init(void)
>  {
>  	current_entry = current_menu = &rootmenu;
> diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
> index 23dfd3b..18c9a28 100644
> --- a/scripts/kconfig/zconf.y
> +++ b/scripts/kconfig/zconf.y
> @@ -111,7 +111,7 @@ stmt_list:
>  	| stmt_list common_stmt
>  	| stmt_list choice_stmt
>  	| stmt_list menu_stmt
> -	| stmt_list T_MAINMENU prompt nl
> +	| stmt_list mainmenu_stmt
>  	| stmt_list end			{ zconf_error("unexpected end statement"); }
>  	| stmt_list T_WORD error T_EOL	{ zconf_error("unknown statement \"%s\"", $2); }
>  	| stmt_list option_name error T_EOL
> @@ -342,6 +342,13 @@ if_block:
>  	| if_block choice_stmt
>  ;
>  
> +/* mainmenu entry */
> +
> +mainmenu_stmt: T_MAINMENU prompt nl
> +{
> +	mainmenu_set_prompt($2);
> +};
> +
>  /* menu entry */
>  
>  menu: T_MENU prompt T_EOL


  parent reply	other threads:[~2010-08-17 11:27 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-16  4:54 [RFC 0/2] Factor Kconfig's prefix and package name Arnaud Lacombe
2010-08-16  4:54 ` [RFC 1/2] kbuild: genericizes " Arnaud Lacombe
2010-08-16 11:57   ` Michal Marek
2010-08-16 12:23     ` Michal Marek
2010-08-16 17:26       ` Sam Ravnborg
2010-08-16 20:05         ` Michal Marek
2010-08-16  4:54 ` [RFC 2/2] kbuild: genericizes kbuild's config prefix Arnaud Lacombe
2010-08-16 12:36 ` [RFC 0/2] Factor Kconfig's prefix and package name Sam Ravnborg
2010-08-16 21:42   ` Arnaud Lacombe
2010-08-16 21:50     ` Sam Ravnborg
2010-08-17  1:12   ` Arnaud Lacombe
2010-08-17  2:19     ` Sam Ravnborg
2010-08-17  2:56       ` Arnaud Lacombe
2010-08-17  5:42         ` [PATCH] kbuild: implement the `mainmenu' directive Arnaud Lacombe
2010-08-17  5:44           ` [PATCH] kbuild: delay rootmenu prompt initialization Arnaud Lacombe
2010-08-17  5:52           ` [PATCH] kbuild: implement the `mainmenu' directive Arnaud Lacombe
2010-08-17 11:24           ` Michal Marek [this message]
2010-08-17 20:26             ` Sam Ravnborg
2010-08-18  2:28               ` Arnaud Lacombe
2010-08-17 20:34           ` Sam Ravnborg
2010-08-17 20:44             ` Arnaud Lacombe
2010-08-17 20:51               ` Sam Ravnborg
2010-08-17  6:15   ` [RFC 0/2] Factor Kconfig's prefix and package name Arnaud Lacombe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C6A7167.3060608@suse.cz \
    --to=mmarek@suse.cz \
    --cc=lacombar@gmail.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=sam@ravnborg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.