| Age | Commit message (Collapse) | Author |
|
New completion entry functions for readline specific code:
- compl_var for variables
- compl_fn for functions
- compl_builtin for builtins
- compl_extcmd for external commands in path
- compl_command, which combines the last three
The first three are simple wrappers for compl_name, which iterates over a
typical rc table (an array of structs) yielding the name fields.
The appropriate completion entry function is chosen based on the
character/token that preceeds the word to complete: '$' for variable,
beginning of line or one of [`@|&(){;] for command. Otherwise the shell falls
back to readline's default completion, which it also does, if the chosen
completion entry function finds no match.
|
|
fn f1 { v=x { }}
fn f2 { f1 1; f1 2 }
f2
whatis
Valgrind stack:
==10068== Invalid read of size 8
==10068== at 0x40EFB1: varlookup (var.c:84)
==10068== by 0x407B04: whatare_all_vars (hash.c:311)
==10068== by 0x401E60: b_whatis (builtins.c:323)
==10068== by 0x402E32: exec (exec.c:92)
==10068== by 0x40F997: walk (walk.c:39)
The reason is that vp[h].p is freed in delete_var(), but the pointer is kept.
Later the pointer is found to be non-null and dereferenced causing the crash.
|
|
|
|
from its default value. Same for $prompt.
|
|
Bug: make $bqstatus and $status not exportable.
|
|
|
|
it's virtually impossible for a child `rc' process to inherit `path'
(which I consider a bug, but it's not going to be fixed now), simply
don't export `path'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|