1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-02-24 11:51:19 +01:00

users/10172: new zle command read-command

This commit is contained in:
Peter Stephenson 2006-04-23 23:13:47 +00:00
parent 9b844cfe73
commit 85f25bb845
4 changed files with 37 additions and 0 deletions

View file

@ -1,3 +1,10 @@
2006-04-24 Peter Stephenson <p.w.stephenson@ntlworld.com>
* zsh-users/10172: Doc/Zsh/zle.yo, Src/Zle/iwidgets.list,
Src/Zle/zle_keymap.c: read-command reads a key sequence as
in normal zle operation but sets REPLY to the result instead
of executing it.
2006-04-23 Peter Stephenson <p.w.stephenson@ntlworld.com>
* unposted: Functions/Misc/zmathfuncdef: improve recognition

View file

@ -103,6 +103,12 @@ This input can itself invoke further replacement strings, but in order to
detect loops the process will be stopped if there are twenty such replacements
without a real command being read.
A key sequence typed by the user can be turned into a command name for use
in user-defined widgets with the tt(read-command) widget, described
ifzman(below)\
ifnzman(in noderef(Miscellaneous) below)\
.
texinode(Zle Builtins)(Zle Widgets)(Keymaps)(Zsh Line Editor)
sect(Zle Builtins)
cindex(zle, builtin commands)
@ -1767,6 +1773,16 @@ At a secondary (tt(PS2)) prompt, move the entire current multiline
construct into the editor buffer.
The latter is equivalent to tt(push-input) followed by tt(get-line).
)
tindex(read-command)
item(tt(read-command))(
Only useful from a user-defined widget. A keystroke is read just as in
normal operation, but instead of the command being executed the name
of the command that would be executed is stored in the shell parameter
tt(REPLY). This can be used as the argument of a future tt(zle)
command. If the key sequence is not bound, status 1 is returned;
typically, however, tt(REPLY) is set to tt(undefined-key) to indicate
a useless key sequence.
)
tindex(recursive-edit)
item(tt(recursive-edit))(
Only useful from a user-defined widget. At this point in the function,

View file

@ -86,6 +86,7 @@
"quoted-insert", quotedinsert, ZLE_MENUCMP | ZLE_KEEPSUFFIX
"quote-line", quoteline, 0
"quote-region", quoteregion, 0
"read-command", readcommand, 0
"recursive-edit", recursiveedit, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_LASTCOL
"redisplay", redisplay, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_LASTCOL
"redo", redo, ZLE_KEEPSUFFIX

View file

@ -1441,3 +1441,16 @@ zlesetkeymap(int mode)
return;
linkkeymap(km, "main", 0);
}
/**/
mod_export int
readcommand(UNUSED(char **args))
{
Thingy thingy = getkeycmd();
if (!thingy)
return 1;
setsparam("REPLY", ztrdup(thingy->nam));
return 0;
}