diff --git a/ChangeLog b/ChangeLog index e4d86124aa..d4be9f622f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2017-03-03 Peter Stephenson + + * 40702: Doc/Zsh/zle.yo, Src/Zle/zle_params.c: add + KEYS_QUEUED_COUNT variable to ZLE parameters. + 2017-03-02 Jun-ichi Takimoto * 40681: Src/Modules/datetime.c: strftime builtin should diff --git a/Doc/Zsh/zle.yo b/Doc/Zsh/zle.yo index d68365b943..b65e3be646 100644 --- a/Doc/Zsh/zle.yo +++ b/Doc/Zsh/zle.yo @@ -864,6 +864,12 @@ vindex(KEYS) item(tt(KEYS) (scalar))( The keys typed to invoke this widget, as a literal string; read-only. ) +vindex(KEYS_QUEUED_COUNT) +item(tt(KEYS_QUEUED_COUNT) (integer))( +The number of bytes pushed back to the input queue and therefore +available for reading immediately before any I/O is done; read-only. +See also tt(PENDING); the two values are distinct. +) vindex(killring) item(tt(killring) (array))( The array of previously killed items, with the most recently killed first. @@ -919,7 +925,8 @@ item(tt(PENDING) (integer))( The number of bytes pending for input, i.e. the number of bytes which have already been typed and can immediately be read. On systems where the shell is not able to get this information, this parameter will always have a -value of zero. Read-only. +value of zero. Read-only. See also tt(KEYS_QUEUED_COUNT); the two +values are distinct. ) vindex(PREBUFFER) item(tt(PREBUFFER) (scalar))( diff --git a/Src/Zle/zle_params.c b/Src/Zle/zle_params.c index 1e4c5b832e..0a922d2d69 100644 --- a/Src/Zle/zle_params.c +++ b/Src/Zle/zle_params.c @@ -85,6 +85,8 @@ static const struct gsu_integer cursor_gsu = { get_cursor, set_cursor, zleunsetfn }; static const struct gsu_integer histno_gsu = { get_histno, set_histno, zleunsetfn }; +static const struct gsu_integer keys_queued_count_gsu = +{ get_keys_queued_count, NULL, zleunsetfn }; static const struct gsu_integer mark_gsu = { get_mark, set_mark, zleunsetfn }; static const struct gsu_integer numeric_gsu = @@ -146,6 +148,8 @@ static struct zleparam { { "HISTNO", PM_INTEGER, GSU(histno_gsu), NULL }, { "KEYMAP", PM_SCALAR | PM_READONLY, GSU(keymap_gsu), NULL }, { "KEYS", PM_SCALAR | PM_READONLY, GSU(keys_gsu), NULL }, + { "KEYS_QUEUED_COUNT", PM_INTEGER | PM_READONLY, GSU(keys_queued_count_gsu), + NULL}, { "killring", PM_ARRAY, GSU(killring_gsu), NULL }, { "LASTABORTEDSEARCH", PM_SCALAR | PM_READONLY, GSU(lastabortedsearch_gsu), NULL }, @@ -457,6 +461,13 @@ get_keys(UNUSED(Param pm)) return keybuf; } +/**/ +static zlong +get_keys_queued_count(UNUSED(Param pm)) +{ + return kungetct; +} + /**/ static void set_numeric(UNUSED(Param pm), zlong x)