• Masahiro Yamada's avatar
    kconfig: do not clear SYMBOL_DEF_USER when the value is out of range · ce1fc934
    Masahiro Yamada authored
    When a user-supplied value is out of range, (NEW) and an incorrect default
    value are shown.
    
    [Test Kconfig]
    
      config FOO
              int "foo"
              range 10 20
    
    [Test .config]
    
      CONFIG_FOO=30
    
    [Result without this fix]
    
      $ make config
      *
      * Main menu
      *
      foo (FOO) [10] (NEW)
    
    [Result with this fix]
    
      $ make config
      *
      * Main menu
      *
      foo (FOO) [20]
    
    Currently, the SYMBOL_DEF_USER is cleared if the user input does not
    reside within the range. Kconfig forgets the initial value 30, and
    prints (NEW) and an incorrect default [10].
    
    Kconfig should remember the user's input. The default should be [20]
    because the user's input, 30, is closer to the upper limit of the range.
    
    Please note it will not show up in "make oldconfig" because it is no
    longer considered as a new symbol. It also fixes the inconsistent
    behavior in listnewconfig/helpnewconfig.
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    ce1fc934
confdata.c 25.3 KB