| Age | Commit message (Collapse) | Author |
|
|
|
Largely paid work, and it's copied into Zephyr, so it was a request.
All other source files are still copyright me.
Nothing changes in practice. I went for shared copyright to make sure
the ISC license can never be changed.
|
|
Base 10 is the default.
|
|
This commit fixes an issue when user searches for a nonexistent object
(e.g. adsdsaasda) and presses enter.
Having all the key checks in one continuous if statement makes sure that
the very last 'else' statement does not get executed when enter is
pressed.
Note - backported from:
https://github.com/zephyrproject-rtos/zephyr/pull/8332
|
|
Ctrl-F (Ctrl-H clashes with backspace) brings up the information dialog
for the selected item in the jump-to dialog.
Since it's now possible to jump directly from the information dialog to
the jump-to dialog and vice versa, recursive invocation becomes
possible. Work around it with a flag to _info_dialog() that makes '/'
return if the information dialog was launched from within the jump-to
dialog. (Recursive invocations work code-wise, but act in a confusing
way.)
|
|
It's annoying to have to leave the information dialog just to do a
search related to something you saw in the information dialog.
Stay in the information dialog if the search is canceled.
|
|
Everything's ISC.
|
|
cached_search_strings was renamed to cached_search_nodes.
|
|
Removes repeated KCONFIG_CONFIG boilerplate.
Also make allyesconfig use KCONFIG_CONFIG when writing (oversight), and
document the sys.exit() behavior for standard_kconfig().
|
|
standard_kconfig() gets the top-level Kconfig file from the first
command-line argument, defaulting to "Kconfig". This removes some
boilerplate from tools.
|
|
An output file should still be generated if you're happy with the
default settings.
|
|
Had missed sys.exit(msg).
|
|
setuptools' 'entry_points' gives nice behavior on Windows. It requires
that the module has an entry point function. Create one and move the
command line argument handling to it.
|
|
It's easy to miss at the top, especially as it's centered. Have a
generic 'Symbol information', 'Choice information', etc., title instead.
|
|
The name is always shown for items without prompts (which are always
promptless symbols). Only show-name mode needs the symbol/choice check.
|
|
Pressing 'c' toggles show-name mode, where names of symbols are
displayed before their prompt.
|
|
Only show "real" (non-indented) menus, like in the menu path at the top.
|
|
This is consistent with how they're shown in the info dialog. Looks less
confusing for empty strings too.
|
|
Makes it double as a quick way to check if something is enabled.
Suggested by Randy Dunlap.
|
|
This gets rid of some slight input jerkiness while inputting e.g.
'.*debug' on my machine (though the '.*' is redundant there), due to
faster matching. The '.*' probably has bad interactions with
re.search(), which matches anywhere in the string.
A plain "debug" matches about 70% faster, though it's fast enough to
feel instant anyway.
|
|
|
|
|
|
Instead of doing a single search of the '<symbol name> "<prompt>"'
string. This avoids gotchas like '_DEBUG$' not matching FOO_DEBUG if
FOO_DEBUG has a prompt.
|
|
|
|
re.error.msg was added in Python 3.5. Show a generic error message when
it isn't available.
|
|
This makes it clearer when an edit box is scrolled, especially when
backspacing. The cursor will now only go to the far left/right of the
edit box at the start/end of the string.
Reuse _SCROLL_OFFSET to specify the scroll offset.
|
|
List the working directory, which might not be obvious, and support
referring to the home directory with ~.
Support for multiple lines of help text in input dialogs was added as
well.
|
|
The Kconfig definition already lists the location and menu path, and now
shows up at the top.
|
|
Automatically turn on show-all mode if the currently selected node
becomes invisible after loading the new configuration.
Show an are-you-sure dialog if there are unsaved changes.
A wart here is that there currently isn't a way to get 'errno' and
'strerror' from the IOError exception returned by load_config(). Hack
around it by opening the configuration file separately with open()
first, just to catch any obvious errors.
|
|
Don't show A in the menu path at the top when entering the menu "B"
below, which will be indented relative to A. It looks confusing, and can
lead to really long menu paths.
config A
bool "A"
menu "B"
depends on A
...
|
|
This allows accurate documentation to be generated for symbols and
choices defined in multiple locations. There are now MenuNode.defaults,
MenuNode.selects, etc., lists that mirror the corresponding
Symbol/Choice lists.
Symbol/Choice.__str__() now correctly show property locations as well,
by simply concatenating the strings returned by MenuNode.__str__() for
each node.
_parse_properties() was modified to add all properties directly to the
menu node instead of adding them to the contained symbol or choice. The
properties are then copied up to symbols and choices in
_finalize_tree(). Dependency propagation is handled at the same time.
As a side effect, this cleans up the code a bit and de-bloats
_parse_properties().
Update the menuconfig implementation to use the new functionality. It
now lists the menu nodes for symbols and choices with the correct
properties for each node (previously, all defaults, selects, implies,
and ranges appeared on the first definition).
|
|
Was using an older name.
|
|
Works like in readline/Vim.
|
|
|
|
|
|
|
|
|
|
The cache was broken due to using an old variable name.
Piggyback a neat trick for storing globals in default arguments that I
had missed until now.
|
|
Search and display prompts for menu nodes that have them. They often
contain useful strings.
Add a pre-search pass that generates a string to search/display for each
menu node, to allow the search regex(es) to run over a single string.
That also makes 'foo bar' match for a symbol that has 'FOO' in its name
and 'bar' in its prompt, which is handy.
Remove the '(in menu X)' string that was added previously for symbols
defined in multiple locations. You'd usually be able to tell which menu
node is which from the (lack of) prompt.
|
|
A search like 'host usb' now finds all symbol names that match both
'host' and 'usb' (as regular expressions), including e.g. USB_MTU3_HOST.
This saves typing a bunch of '.*' and makes it easier to find symbols
when you aren't sure what order the components appear in.
|
|
Cleaner to do it in _menuconfig(), as it makes the fullscreen dialogs
fully independent. Saves some code too.
|
|
Might have made it sound like _parent_menu() returns a list.
|
|
Air some long conditionals out a bit. Be more consistent with format().
|
|
Can't get { } since {} implies n isn't assignable.
|
|
The horizontal scroll (hscroll) wasn't initialized properly when the
initial (prefilled) contents of an edit box was longer than the edit box
itself (e.g. when saving with a long path in KCONFIG_CONFIG). Things
snapped back into place once a key was pressed.
Initialize hscroll properly to fix the initial rendering.
|
|
If LC_CTYPE is set to the C locale, try to convert it to a UTF-8 locale.
Use a list of commonly available UTF-8 locales. Give up and use the C
locale if none of them are available.
This fixes curses Unicode I/O issues on systems with bad defaults:
ncurses configures itself from the locale settings, and the C locale
implies ASCII.
The logic mirrors https://www.python.org/dev/peps/pep-0538/. I took the
list of locales to try from the CPython code (in Python/pylifecycle.c).
|
|
Makes it easier to see the menu structure.
Make the indent configurable via a _SUBMENU_INDENT configuration
variable.
|
|
Pressing [/] brings up a dialog with an edit box where a regex can be
entered. The list of matching symbols is always shown below it.
Selecting a symbol and pressing [Enter] jumps directly to it in the menu
tree. If the symbol is invisible, show-all mode is turned on
automatically.
This commit also includes a bunch of more-or-less unrelated changes from
poking around with the code:
- Some redundant styles were merged. Probably wouldn't want to have a
different style for each separator line, for example...
- [ESC] in the top menu now works like [Q]
- Returning to a parent menu now makes sure that the selected row is
visible, even if the terminal was shrunk between entering the child
menu and leaving it.
- A _max_scroll() helper was factored out to reduce code duplication.
It takes a list of items and a window in which the list is
displayed, with one row per item, and returns the minimum scroll
value that will make the final item visible.
- The save dialog now pops up a message to confirm that the save was
successful.
- Lots of minor code nits all over (renamings, etc.)
|
|
Previously, the title of the current menu disappeared off the right edge
of the terminal for long menu paths. Scroll the menu path to the right
if needed to make sure it is always shown.
|
|
Don't bother to show the save-and-quit dialog.
Also quit immediately if the configuration hasn't been changed since the
last time it was explicitly saved with the save dialog.
Rename _set_node() to _set_node_tri_val(), as the old name gets
confusing with the new _set_val() function.
|