How to reproduce:
1. Set left panel to list mode.
2. Make left panel active.
3. Change left panel to info mode.
Result: segmentation fault.
(widget_replace): fix search of the next focusable widget.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
DOT is a graph description language, described at
<https://graphviz.org/doc/info/lang.html>. The new syntax file
recognizes the basic language keywords and syntax; known node,
edge, graph, etc. properties; comments; character strings.
The syntax file seems to work well with various DOT files found
in the Linux kernel sources as well as with the MNT Reform 2.0D-4
System Diagram.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Since .endc was defined both as the context end delimiter and a context
keyword, it was not recognized as the former and the control script
context, once started, would never be finished. This issue can be
noticed, for example, in wrong syntax highlighting of the .end command
if it was preceded by a control script.
Fix the issue by making the control script context exclusive and
highlighting the .control and .endc keywords in the default context
instead.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Add basic support for highlighting Ngspice/SPICE (http://ngspice.sourceforge.net/)
circuit description files syntax. Two main contexts are defined:
- the default context, where the circuit is described,
- the control script context (between .control and .endc).
The default context highlights dot commands, circuit element instance
names and model types. The control script context highlights supported
functions/commands and known variables. Both contexts highlight comments
and line continuation marks.
Other than two FIXMEs, it is a known issue the first line of the file is
part of the default context, while in most cases it would contain the
file title.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* 4270_cleanup: (33 commits)
Upate po/*.po files.
mc.lib: move xterm alt-shift-arrow definitions to lib/tty/key.c.
mc.lib: [terminal:linux] is same as [terminal:console].
(delete_region, copy_region): rename arguments.
src/editor/editwidget.c: grammar.
mceditor: use MB_LEN_MAX constant.
(string_file_name): use mc_g_string_copy.
(complete_engine, insert_text): don't calculate text length twice.
lib/strutil/strutilutf8.c: use MB_LEN_MAX constant.
Remove get_process_stats() test.
Use g_get_monotonic_time() instead of g_get_real_time().
(learn_key): return NULL if buffer is empty.
(learn_key): use g_get_real_time () to simplify time comparision.
(get_key_code): use g_get_real_time () to simplify time comparision.
(xmouse_get_event): use g_get_real_time () to simplify time comparision.
lib/tty/key.c: use named constants for time intervals.
(file_mask_dialog): indentation.
Reimplement compiler options checking.
lib/util.c: remove unneeded include.
lib/keybind.h: remove unneeded includes.
...
(copy_cmd, copy_cmd_local, rename_cmd, rename_cmd_local, delete_cmd,
delete_cmd_local): move same code to panel_operate(), make inline.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>