Commit d72681d7 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild

Pull kconfig changes from Michal Marek:
 - xconfig stores its setting in a meaningful path
   (~/.config/kernel.org/qconf.conf)
 - kconfig symbol search fix
 - documentation fixes
 - cleanup & comment update
 - fix warning when a kconfig symbol is defined with two different types
 - Yann is now officially listed as maintainer of kconfig, but he
   prefers me to send pull requests for now

* 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
  MAINTAINERS: New kconfig maintainer
  xconfig: Fix the filename for GUI settings
  kconfig: fix bug in search results string: use strlen(gstr->s), not gstr->len
  kconfig: remove unused definition from scanner
  kconfig: adjust warning message for conflicting types
  kconfig: fix trivial typos and update mconf documentation
  kconfig: add short explanation to SYMBOL_WRITE
  Documentation/kbuild/kconfig.txt: 'make listnewconfig' replaces: yes "" | make oldconfig
parents 762fb1dd e125096e
...@@ -20,16 +20,9 @@ symbols have been introduced. ...@@ -20,16 +20,9 @@ symbols have been introduced.
To see a list of new config symbols when using "make oldconfig", use To see a list of new config symbols when using "make oldconfig", use
cp user/some/old.config .config cp user/some/old.config .config
yes "" | make oldconfig >conf.new make listnewconfig
and the config program will list as (NEW) any new symbols that have and the config program will list any new symbols, one per line.
unknown values. Of course, the .config file is also updated with
new (default) values, so you can use:
grep "(NEW)" conf.new
to see the new config symbols or you can use diffconfig to see the
differences between the previous and new .config files:
scripts/diffconfig .config.old .config | less scripts/diffconfig .config.old .config | less
......
...@@ -4808,9 +4808,10 @@ S: Maintained ...@@ -4808,9 +4808,10 @@ S: Maintained
F: drivers/staging/ktap/ F: drivers/staging/ktap/
KCONFIG KCONFIG
M: Michal Marek <mmarek@suse.cz> M: "Yann E. MORIN" <yann.morin.1998@free.fr>
L: linux-kbuild@vger.kernel.org L: linux-kbuild@vger.kernel.org
S: Odd Fixes T: git://gitorious.org/linux-kconfig/linux-kconfig
S: Maintained
F: Documentation/kbuild/kconfig-language.txt F: Documentation/kbuild/kconfig-language.txt
F: scripts/kconfig/ F: scripts/kconfig/
......
...@@ -93,7 +93,7 @@ struct symbol { ...@@ -93,7 +93,7 @@ struct symbol {
#define SYMBOL_CHOICEVAL 0x0020 /* used as a value in a choice block */ #define SYMBOL_CHOICEVAL 0x0020 /* used as a value in a choice block */
#define SYMBOL_VALID 0x0080 /* set when symbol.curr is calculated */ #define SYMBOL_VALID 0x0080 /* set when symbol.curr is calculated */
#define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */ #define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */
#define SYMBOL_WRITE 0x0200 /* ? */ #define SYMBOL_WRITE 0x0200 /* write symbol to file (KCONFIG_CONFIG) */
#define SYMBOL_CHANGED 0x0400 /* ? */ #define SYMBOL_CHANGED 0x0400 /* ? */
#define SYMBOL_AUTO 0x1000 /* value from environment variable */ #define SYMBOL_AUTO 0x1000 /* value from environment variable */
#define SYMBOL_CHECKED 0x2000 /* used during dependency checking */ #define SYMBOL_CHECKED 0x2000 /* used during dependency checking */
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
static const char mconf_readme[] = N_( static const char mconf_readme[] = N_(
"Overview\n" "Overview\n"
"--------\n" "--------\n"
"This interface let you select features and parameters for the build.\n" "This interface lets you select features and parameters for the build.\n"
"Features can either be built-in, modularized, or ignored. Parameters\n" "Features can either be built-in, modularized, or ignored. Parameters\n"
"must be entered in as decimal or hexadecimal numbers or text.\n" "must be entered in as decimal or hexadecimal numbers or text.\n"
"\n" "\n"
...@@ -39,15 +39,15 @@ static const char mconf_readme[] = N_( ...@@ -39,15 +39,15 @@ static const char mconf_readme[] = N_(
"\n" "\n"
"To change any of these features, highlight it with the cursor\n" "To change any of these features, highlight it with the cursor\n"
"keys and press <Y> to build it in, <M> to make it a module or\n" "keys and press <Y> to build it in, <M> to make it a module or\n"
"<N> to removed it. You may also press the <Space Bar> to cycle\n" "<N> to remove it. You may also press the <Space Bar> to cycle\n"
"through the available options (ie. Y->N->M->Y).\n" "through the available options (i.e. Y->N->M->Y).\n"
"\n" "\n"
"Some additional keyboard hints:\n" "Some additional keyboard hints:\n"
"\n" "\n"
"Menus\n" "Menus\n"
"----------\n" "----------\n"
"o Use the Up/Down arrow keys (cursor keys) to highlight the item\n" "o Use the Up/Down arrow keys (cursor keys) to highlight the item you\n"
" you wish to change or submenu wish to select and press <Enter>.\n" " wish to change or the submenu you wish to select and press <Enter>.\n"
" Submenus are designated by \"--->\", empty ones by \"----\".\n" " Submenus are designated by \"--->\", empty ones by \"----\".\n"
"\n" "\n"
" Shortcut: Press the option's highlighted letter (hotkey).\n" " Shortcut: Press the option's highlighted letter (hotkey).\n"
...@@ -65,7 +65,7 @@ static const char mconf_readme[] = N_( ...@@ -65,7 +65,7 @@ static const char mconf_readme[] = N_(
" there is a delayed response which you may find annoying.\n" " there is a delayed response which you may find annoying.\n"
"\n" "\n"
" Also, the <TAB> and cursor keys will cycle between <Select>,\n" " Also, the <TAB> and cursor keys will cycle between <Select>,\n"
" <Exit> and <Help>.\n" " <Exit>, <Help>, <Save>, and <Load>.\n"
"\n" "\n"
"o To get help with an item, use the cursor keys to highlight <Help>\n" "o To get help with an item, use the cursor keys to highlight <Help>\n"
" and press <ENTER>.\n" " and press <ENTER>.\n"
...@@ -105,7 +105,7 @@ static const char mconf_readme[] = N_( ...@@ -105,7 +105,7 @@ static const char mconf_readme[] = N_(
"Text Box (Help Window)\n" "Text Box (Help Window)\n"
"--------\n" "--------\n"
"o Use the cursor keys to scroll up/down/left/right. The VI editor\n" "o Use the cursor keys to scroll up/down/left/right. The VI editor\n"
" keys h,j,k,l function here as do <u>, <d>, <SPACE BAR> and <B> for \n" " keys h,j,k,l function here as do <u>, <d>, <SPACE BAR> and <B> for\n"
" those who are familiar with less and lynx.\n" " those who are familiar with less and lynx.\n"
"\n" "\n"
"o Press <E>, <X>, <q>, <Enter> or <Esc><Esc> to exit.\n" "o Press <E>, <X>, <q>, <Enter> or <Esc><Esc> to exit.\n"
...@@ -117,23 +117,21 @@ static const char mconf_readme[] = N_( ...@@ -117,23 +117,21 @@ static const char mconf_readme[] = N_(
"those who, for various reasons, find it necessary to switch\n" "those who, for various reasons, find it necessary to switch\n"
"between different configurations.\n" "between different configurations.\n"
"\n" "\n"
"At the end of the main menu you will find two options. One is\n" "The <Save> button will let you save the current configuration to\n"
"for saving the current configuration to a file of your choosing.\n" "a file of your choosing. Use the <Load> button to load a previously\n"
"The other option is for loading a previously saved alternate\n" "saved alternate configuration.\n"
"configuration.\n"
"\n" "\n"
"Even if you don't use alternate configuration files, but you\n" "Even if you don't use alternate configuration files, but you find\n"
"find during a Menuconfig session that you have completely messed\n" "during a Menuconfig session that you have completely messed up your\n"
"up your settings, you may use the \"Load Alternate...\" option to\n" "settings, you may use the <Load> button to restore your previously\n"
"restore your previously saved settings from \".config\" without\n" "saved settings from \".config\" without restarting Menuconfig.\n"
"restarting Menuconfig.\n"
"\n" "\n"
"Other information\n" "Other information\n"
"-----------------\n" "-----------------\n"
"If you use Menuconfig in an XTERM window make sure you have your\n" "If you use Menuconfig in an XTERM window, make sure you have your\n"
"$TERM variable set to point to a xterm definition which supports color.\n" "$TERM variable set to point to an xterm definition which supports\n"
"Otherwise, Menuconfig will look rather bad. Menuconfig will not\n" "color. Otherwise, Menuconfig will look rather bad. Menuconfig will\n"
"display correctly in a RXVT window because rxvt displays only one\n" "not display correctly in an RXVT window because rxvt displays only one\n"
"intensity of color, bright.\n" "intensity of color, bright.\n"
"\n" "\n"
"Menuconfig will display larger menus on screens or xterms which are\n" "Menuconfig will display larger menus on screens or xterms which are\n"
...@@ -148,8 +146,8 @@ static const char mconf_readme[] = N_( ...@@ -148,8 +146,8 @@ static const char mconf_readme[] = N_(
"\n" "\n"
"Optional personality available\n" "Optional personality available\n"
"------------------------------\n" "------------------------------\n"
"If you prefer to have all of the options listed in a single menu, rather\n" "If you prefer to have all of the options listed in a single menu,\n"
"than the default multimenu hierarchy, run the menuconfig with\n" "rather than the default multimenu hierarchy, run the menuconfig with\n"
"MENUCONFIG_MODE environment variable set to single_menu. Example:\n" "MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
"\n" "\n"
"make MENUCONFIG_MODE=single_menu menuconfig\n" "make MENUCONFIG_MODE=single_menu menuconfig\n"
...@@ -172,7 +170,7 @@ static const char mconf_readme[] = N_( ...@@ -172,7 +170,7 @@ static const char mconf_readme[] = N_(
" mono => selects colors suitable for monochrome displays\n" " mono => selects colors suitable for monochrome displays\n"
" blackbg => selects a color scheme with black background\n" " blackbg => selects a color scheme with black background\n"
" classic => theme with blue background. The classic look\n" " classic => theme with blue background. The classic look\n"
" bluetitle => a LCD friendly version of classic. (default)\n" " bluetitle => an LCD friendly version of classic. (default)\n"
"\n"), "\n"),
menu_instructions[] = N_( menu_instructions[] = N_(
"Arrow keys navigate the menu. " "Arrow keys navigate the menu. "
...@@ -238,24 +236,24 @@ search_help[] = N_( ...@@ -238,24 +236,24 @@ search_help[] = N_(
"Symbol: FOO [=m]\n" "Symbol: FOO [=m]\n"
"Type : tristate\n" "Type : tristate\n"
"Prompt: Foo bus is used to drive the bar HW\n" "Prompt: Foo bus is used to drive the bar HW\n"
" Defined at drivers/pci/Kconfig:47\n"
" Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
" Location:\n" " Location:\n"
" -> Bus options (PCI, PCMCIA, EISA, ISA)\n" " -> Bus options (PCI, PCMCIA, EISA, ISA)\n"
" -> PCI support (PCI [=y])\n" " -> PCI support (PCI [=y])\n"
"(1) -> PCI access mode (<choice> [=y])\n" "(1) -> PCI access mode (<choice> [=y])\n"
" Defined at drivers/pci/Kconfig:47\n"
" Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
" Selects: LIBCRC32\n" " Selects: LIBCRC32\n"
" Selected by: BAR\n" " Selected by: BAR [=n]\n"
"-----------------------------------------------------------------\n" "-----------------------------------------------------------------\n"
"o The line 'Type:' shows the type of the configuration option for\n" "o The line 'Type:' shows the type of the configuration option for\n"
" this symbol (boolean, tristate, string, ...)\n" " this symbol (boolean, tristate, string, ...)\n"
"o The line 'Prompt:' shows the text used in the menu structure for\n" "o The line 'Prompt:' shows the text used in the menu structure for\n"
" this symbol\n" " this symbol\n"
"o The 'Defined at' line tell at what file / line number the symbol\n" "o The 'Defined at' line tells at what file / line number the symbol\n"
" is defined\n" " is defined\n"
"o The 'Depends on:' line tell what symbols needs to be defined for\n" "o The 'Depends on:' line tells what symbols need to be defined for\n"
" this symbol to be visible in the menu (selectable)\n" " this symbol to be visible in the menu (selectable)\n"
"o The 'Location:' lines tell where in the menu structure this symbol\n" "o The 'Location:' lines tells where in the menu structure this symbol\n"
" is located\n" " is located\n"
" A location followed by a [=y] indicates that this is a\n" " A location followed by a [=y] indicates that this is a\n"
" selectable menu item - and the current value is displayed inside\n" " selectable menu item - and the current value is displayed inside\n"
...@@ -263,9 +261,9 @@ search_help[] = N_( ...@@ -263,9 +261,9 @@ search_help[] = N_(
" Press the key in the (#) prefix to jump directly to that\n" " Press the key in the (#) prefix to jump directly to that\n"
" location. You will be returned to the current search results\n" " location. You will be returned to the current search results\n"
" after exiting this new menu.\n" " after exiting this new menu.\n"
"o The 'Selects:' line tell what symbol will be automatically\n" "o The 'Selects:' line tells what symbols will be automatically\n"
" selected if this symbol is selected (y or m)\n" " selected if this symbol is selected (y or m)\n"
"o The 'Selected by' line tell what symbol has selected this symbol\n" "o The 'Selected by' line tells what symbol has selected this symbol\n"
"\n" "\n"
"Only relevant lines are shown.\n" "Only relevant lines are shown.\n"
"\n\n" "\n\n"
......
...@@ -119,9 +119,10 @@ void menu_set_type(int type) ...@@ -119,9 +119,10 @@ void menu_set_type(int type)
sym->type = type; sym->type = type;
return; return;
} }
menu_warn(current_entry, "type of '%s' redefined from '%s' to '%s'", menu_warn(current_entry,
sym->name ? sym->name : "<choice>", "ignoring type redefinition of '%s' from '%s' to '%s'",
sym_type_name(sym->type), sym_type_name(type)); sym->name ? sym->name : "<choice>",
sym_type_name(sym->type), sym_type_name(type));
} }
struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep) struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep)
...@@ -583,7 +584,7 @@ static void get_prompt_str(struct gstr *r, struct property *prop, ...@@ -583,7 +584,7 @@ static void get_prompt_str(struct gstr *r, struct property *prop,
for (j = 4; --i >= 0; j += 2) { for (j = 4; --i >= 0; j += 2) {
menu = submenu[i]; menu = submenu[i];
if (head && location && menu == location) if (head && location && menu == location)
jump->offset = r->len - 1; jump->offset = strlen(r->s);
str_printf(r, "%*c-> %s", j, ' ', str_printf(r, "%*c-> %s", j, ' ',
_(menu_get_prompt(menu))); _(menu_get_prompt(menu)));
if (menu->sym) { if (menu->sym) {
...@@ -597,7 +598,7 @@ static void get_prompt_str(struct gstr *r, struct property *prop, ...@@ -597,7 +598,7 @@ static void get_prompt_str(struct gstr *r, struct property *prop,
} }
/* /*
* get peoperty of type P_SYMBOL * get property of type P_SYMBOL
*/ */
static struct property *get_symbol_prop(struct symbol *sym) static struct property *get_symbol_prop(struct symbol *sym)
{ {
......
...@@ -69,6 +69,11 @@ static inline QString qgettext(const QString& str) ...@@ -69,6 +69,11 @@ static inline QString qgettext(const QString& str)
return QString::fromLocal8Bit(gettext(str.latin1())); return QString::fromLocal8Bit(gettext(str.latin1()));
} }
ConfigSettings::ConfigSettings()
: QSettings("kernel.org", "qconf")
{
}
/** /**
* Reads a list of integer values from the application settings. * Reads a list of integer values from the application settings.
*/ */
......
...@@ -32,6 +32,7 @@ class ConfigMainWindow; ...@@ -32,6 +32,7 @@ class ConfigMainWindow;
class ConfigSettings : public QSettings { class ConfigSettings : public QSettings {
public: public:
ConfigSettings();
Q3ValueList<int> readSizes(const QString& key, bool *ok); Q3ValueList<int> readSizes(const QString& key, bool *ok);
bool writeSizes(const QString& key, const Q3ValueList<int>& value); bool writeSizes(const QString& key, const Q3ValueList<int>& value);
}; };
......
...@@ -1047,7 +1047,7 @@ struct symbol **sym_re_search(const char *pattern) ...@@ -1047,7 +1047,7 @@ struct symbol **sym_re_search(const char *pattern)
* When we check for recursive dependencies we use a stack to save * When we check for recursive dependencies we use a stack to save
* current state so we can print out relevant info to user. * current state so we can print out relevant info to user.
* The entries are located on the call stack so no need to free memory. * The entries are located on the call stack so no need to free memory.
* Note inser() remove() must always match to properly clear the stack. * Note insert() remove() must always match to properly clear the stack.
*/ */
static struct dep_stack { static struct dep_stack {
struct dep_stack *prev, *next; struct dep_stack *prev, *next;
......
...@@ -68,7 +68,6 @@ static void alloc_string(const char *str, int size) ...@@ -68,7 +68,6 @@ static void alloc_string(const char *str, int size)
} }
%} %}
ws [ \n\t]
n [A-Za-z0-9_] n [A-Za-z0-9_]
%% %%
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment