| Age | Commit message (Collapse) | Author |
|
Adds commit 2a6ac31 ("Return a message from Kconfig.write_autoconf()").
|
|
Like for Kconfig.write_config() and Kconfig.write_min_config(), return a
string from Kconfig.write_autoconf() with a message saying that the
header got saved, or that there were no changes to it. Can be handy in
tools.
Also make the "no change" message for the various files more specific,
by mentioning what type of file it is (configuration, header, etc.)
Return True/False from Kconfig._write_if_changed() to indicate if the
file was updated. This also allows it to be reused in
Kconfig.write_min_config().
|
|
Adds commit 9e0a8d2 ("Use 'python3' instead of 'python' in hashbangs").
This has some breakage potential on older systems (though not when
installing via 'pip'), so the major version is increased to 14.
|
|
It's not obligatory for distributions to have a 'python' binary these
days, but 'python3' is likely to be available:
https://www.python.org/dev/peps/pep-0394/#for-python-runtime-distributors.
Change all hashbangs to point to 'python3'.
This will break running
$ ./script.py
on *nix systems that don't have a 'python3' executable. Changing it to
$ python script.py
is pretty painless at least.
This change won't break Python 2 when installing via 'pip', because
entry_points creates bounce scripts with their own hashbangs.
The major version will be increased, in case someone looks at the major
version but doesn't install via 'pip'.
Fixes: #89
|
|
Adds commit 68bcecd ("menuconfig: Work around crash on resize on some
macOS systems").
|
|
get_wch() has started raising curses.error when resizing the terminal on
some macOS Python installations. Work around for now by falling back on
getch(), which still works.
See https://github.com/ulfalizer/Kconfiglib/issues/84. Needs more
investigation, but I don't have a Mac handy.
Based on https://github.com/ulfalizer/Kconfiglib/pull/85, but with some
more comments.
|
|
It's not the 'next' attribute of the node that's added that's set, but
the 'next' attribute of the node before it.
|
|
No longer links to a heavy page after the reference was split up.
|
|
Makes it consistent with menuconfig.py.
|
|
Say 'top-level' instea of 'base'.
|
|
Clear enough with the comment style. Shortens things a bit.
|
|
Shortens things a bit.
|
|
Adds commit 87fab02 ("Add "error: " to the error message for a missing
endchoice/endif/endmenu").
|
|
A node already gets its .next pointer set in _parse_block() if it is
either
1. followed by another node, or
2. the last node in a menu, choice, or if.
This also works for nodes from 'source'd files, so there's no need to
special-case the ends of them. Remove the 'node.next = None' assignment
for ends of files.
Instead, special-case just the last node in all files, and set its .next
to None in Kconfig._init().
Unlikely to give a noticeable performance improvement. Just tightens up
the chaining logic a bit.
|
|
Makes it consistent with other parse errors and easier to find in logs,
etc.
|
|
|
|
Adds commit 456f821 ("menuconfig: Improve look and readability of the
aquatic theme").
|
|
Cyan-on-blue for the path/help text is hard to read, especially on some
terminals.
Also remove bold, which looks a bit cleaner at a glance.
|
|
'node' isn't needed. Shaves some lookups.
|
|
Adds commit 24a0204 ("Include sys.argv[0] in error messages when
suppress_traceback=True").
|
|
Handy to have the script name appear in logs.
|
|
Oversight.
|
|
Shorter, clear in context.
|
|
Shorter, clear in context.
|
|
Move it into the step-by-step getting started instructions.
|
|
Error reporting improvements:
- Commit 1ec9170 ("Add Kconfig.__init__() helper flag for suppressing
tracebacks")
- Commit 2122d5d ("Include "error: " in parsing error messages")
listnewconfig improvement:
- Commit 7e6b9cf ("listnewconfig: Add option for showing help texts")
Also includes a load_allconfig() API improvement:
- Commit c2414bd ("Add a member function version of load_allconfig()")
|
|
Show the help text for each new symbol if --show-help/-l is passed (-h
might be confused for --help).
Copycat of commit 5d8b42aa7ccb ("kconfig: Add option to get the full
help text with listnewconfig") to the C tools, but with a slightly more
compact output format (indented help text instead of separators).
|
|
Tweak messages and variable names to match.
|
|
Oversight. Makes them easier to find in logs.
|
|
Tools that don't use standard_kconfig() currently generate spammy
tracebacks for e.g. syntax errors.
Add a suppress_traceback flag to Kconfig.__init__() for catching
"expected" exceptions and printing them to stderr and exiting with
status 1. Use it to make all tools consistently hide tracebacks.
|
|
There was no great reason for this function to be a global function to
begin with. Having it as a member function simplifies callers.
load_allconfig() is a bit special in that it fails with sys.exit(),
which is helpful for tools, but that probably doesn't influence where it
belongs.
Keep the global function for backwards compatibility. A deprecation
warning might be added at some point.
|
|
|
|
Moved in Zephyr.
|
|
Adds two small menuconfig robustness improvements:
- Commit 7020b86 ("menuconfig: Ignore MENUCONFIG_STYLE on non-color
terminals")
- Commit 4ea8b2b ("menuconfig: Ignore errors from
use_default_colors()")
|
|
Checking has_colors() isn't enough with with the winpty/msys2 setup in
https://github.com/msys2/MINGW-packages/issues/5823, though it seems a
bit broken.
ncurses looks for either the orig_pair or the orig_color terminal
capability, which is different from what has_colors() checks, so
probably shouldn't assume use_default_colors() work on color terminals
at least.
|
|
Clearer.
|
|
No need to check both os.name and sys.platform.
|
|
Assume that the environment is non-standard/broken on terminals that
don't support color, and that any custom styling applied to the
'monochrome' theme is likely to mess things up (though any colors will
be ignored).
The menuconfig really needs more than two colors to not look ugly
anyway, because of the borderless design.
|
|
Adds a menuconfig fix for ANSI-only color terminals and a robustness
tweak for the aquatic theme:
- Commit 7a98bc7 ("menuconfig: Check that bright named colors are
< curses.COLORS")
- Commit 1ad02f5 ("menuconfig: Avoid the non-ANSI 'brightwhite' color
in the aquatic theme")
|
|
Not available with TERM=xterm (as opposed to xterm-256color).
Use fg:white instead of fg:brightwhite for dialog box bodies. Not a huge
difference.
Came up in https://github.com/espressif/esp-idf/issues/4387.
|
|
The bright colors in the range 8-15 are not ANSI and are not guaranteed
to be available.
Previously, the code assumed that all named colors are always available
on color terminals, and skipped the check against curses.COLORS. This
led to this error e.g. with TERM=xterm (as opposed to xterm-256color)
and the aquatic theme, which uses 'brightwhite':
_curses.error: init_pair() returned ERR
Fix it by checking the number returned for named colors against
curses.COLORS as well.
Came up in https://github.com/espressif/esp-idf/issues/4387.
|
|
Handy for KCONFIG_{CONFIG,AUTOHEADER}_HEADER.
|
|
Adds two new features:
- Commit bb3be6e ("Support giving the header path in
KCONFIG_AUTOHEADER")
- Commit de45874 ("Make header strings customizable via the
environment")
|
|
This environment variable is used by the C tools. Use it when
filename=None is passed to write_autoconf(), and default to
include/generated/autoconf.h for compatibility.
Also update genconfig.py to use KCONFIG_AUTOHEADER if set when no
--header-path is passed. If KCONFIG_AUTOHEADER isn't set, keep
defaulting to 'config.h' for backwards compatibility. It's probably a
saner default for tools as well.
|
|
If no header string is specified in write_(min_)config() or
write_autoconf(), use the values of the environment variables
KCONFIG_CONFIG_HEADER and KCONFIG_AUTOHEADER_HEADER, respectively, if
set. KCONFIG_AUTOHEADER_HEADER is consistent with KCONFIG_AUTOHEADER
(the header path), which will be added soon.
Using environment variables avoids having to add separate flags to each
tool that writes configuration files or headers.
Like for $prefix and $CONFIG_, store the values of the environment
variables when the Kconfig instance is created, and expose them via
Kconfig.config_header and Kconfig.header_header. This if flexible and
avoids gotchas when working with multiple Kconfig instances.
Also remove the old default header and make the default no header. Less
advertising, but it felt a bit silly to add workarounds to keep it.
Came up in https://github.com/ulfalizer/Kconfiglib/pull/80.
|
|
Adds a helper that's handy for messages involving symbols/choices, and a
small documentation fix.
- Commit e1ccf19 ("Add public helpers for generating "<name> (defined
at ...)" strings").
- Commit 2d1cb7e ("Add missing Choice.str_value documentation")
|
|
Have Symbol/Choice.name_and_loc return strings like
"MY_SYM (defined at foo:1, bar:2)"
"<choice> (defined at foo:4)"
I've added a function like that in at least four different scripts now,
so that's probably a sign that it's a worthwhile helper.
Clean up the tests/Klocation tests a bit while adding tests.
|
|
Oversight. It's just a string version of Choice.tri_value, like for
Symbol.tri_value vs. Symbol.str_value.
Also rearrange the property documentation to put user_value next to
tri_value and str_value in the Symbol and Choice docstrings.
|
|
The Linux docs were updated from plain text to RST.
|
|
Adds a small fix for some just-rewritten documentation, in commit
4de95f4 ("Mention that standard_kconfig() returns the Kconfig
instance").
|