From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4853 invoked by alias); 2 Mar 2017 14:31:45 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 40702 Received: (qmail 6270 invoked from network); 2 Mar 2017 14:31:45 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.12):SA:0(-5.0/5.0):. Processed in 1.43696 secs); 02 Mar 2017 14:31:45 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at samsung.com does not designate permitted sender hosts) X-AuditID: cbfec7ef-f79d26d00000420c-d8-58b82ccc40c7 Date: Thu, 02 Mar 2017 14:31:33 +0000 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: [PATCH] Include number of chars in zle unget mechanism in $PENDING calculation Message-id: <20170302143133.2897cf65@pwslap01u.europe.root.pri> In-reply-to: Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRmVeSWpSXmKPExsWy7djPc7pndHZEGLx9LWlxsPkhkwOjx6qD H5gCGKO4bFJSczLLUov07RK4Mua9Oc1e8Fe4onfzEtYGxo0CXYycHBICJhLtvVPYIWwxiQv3 1rN1MXJxCAksY5To3rUXyullkrjb0sIK09G3sJ0FrmrV3zOMEM40Jomf834wQTinGSUeHloL lTnDKPF8ySQmkH4WAVWJu23vwTayCRhKTN00mxHEFhEQlzi79jwLiC0sECuxZvJFsH28AvYS 1yZsA+vlFAiW6DuxAayeX0Bf4urfT0wQN9lLzLxyhhGiXlDix+R7YHOYBXQktm17zA5hy0ts XvOWGeQgCYFmdonN3TuBHA4gR1Zi0wFmiDkuEt0ffkPZwhKvjm+BhoyMRGfHQahd/YwST7p9 IebMYJQ4fWYHG0TCWqLv9kVGiGV8EpO2TYeazyvR0SYEYXpITNuUBGE6Siw+xj6BUXEWkqNn ITl6FpKjFzAyr2IUSS0tzk1PLTbUK07MLS7NS9dLzs/dxAhMA6f/HX+/g/Fpc8ghRgEORiUe 3gNM2yOEWBPLiitzDzFKcDArifDKieyIEOJNSaysSi3Kjy8qzUktPsQozcGiJM67d8GVcCGB 9MSS1OzU1ILUIpgsEwenVAOjvVhCd9whCf6FBqd3dMhs6/1svmK3yOQ8VzHvF86qDBd+Sr9T nVQvVuAxuaHu1A2VNRrXVKVVlLXtVJ9O3u3ud7F15QGrUw/9Emf4+f9c6xvAzXPzVG3kC7E9 gR1R0606t3wwNe6/Mdk73t5Kqyr8y2v9/TO4Tf7Z/uYR+ZV83C21/3/hZQ4lluKMREMt5qLi RAC8ybYv/wIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOIsWRmVeSWpSXmKPExsVy+t/xq7qqujsiDJ59Zbc42PyQyYHRY9XB D0wBjFFuNhmpiSmpRQqpecn5KZl56bZKoSFuuhZKCnmJuam2ShG6viFBSgpliTmlQJ6RARpw cA5wD1bSt0twy5j35jR7wV/hit7NS1gbGDcKdDFyckgImEj0LWxngbDFJC7cW8/WxcjFISSw hFFiwslbjBDODCaJeUcnQDmnGSWOPFjNDOGcYZR4tPMhM0g/i4CqxN229+wgNpuAocTUTbMZ QWwRAXGJs2vPg+0QFoiVmPzjCpjNK2AvcW3CNiYQm1MgWGJR8wlWiKEtTBK3jrSDJfgF9CWu /v3EBHGgvcTMK2cYIZoFJX5Mvgc2iFlAS2LztiZWCFteYvOat2AHCQmoS9y4u5t9AqPwLCQt s5C0zELSsoCReRWjSGppcW56brGhXnFibnFpXrpecn7uJkZgJG079nPzDsZLG4MPMQpwMCrx 8B5g2h4hxJpYVlyZe4hRgoNZSYRXTmRHhBBvSmJlVWpRfnxRaU5q8SFGU2DITGSWEk3OB0Z5 Xkm8oYmhuaWhkbGFhbmRkZI4b8mHK+FCAumJJanZqakFqUUwfUwcnFINjFpneyfcKC99kvN3 06mA3ZaqSYzP7jZvfPL5BXdwGrc2z6tTl84GSwvwzOl9GPd8N8tH+yMCEjXbNTV57yYetuoQ /vmJ0483bNKzgvJ8Z5musOrlO50venpv8mPctMXGwPPZkZlz//64tCZhzb7fLEd6nny2fsBl 3Bxrwdm3+fjuL+565VeO3FJiKc5INNRiLipOBAAdu+31ugIAAA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170302143137eucas1p16792b4ff6637d2ce7bd064a5b01c0eb3 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUb?= =?UTF-8?B?7IK87ISx7KCE7J6QG1ByaW5jaXBhbCBFbmdpbmVlciwgU29mdHdhcmU=?= X-Global-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUbU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtQcmluY2lwYWwgRW5naW5lZXIsIFNvZnR3YXJl?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDA1Q0QwNTAwNTg=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170302125822epcas4p445a1627b51bb174f10e49d8c78eb3282 X-RootMTR: 20170302125822epcas4p445a1627b51bb174f10e49d8c78eb3282 References: <20170301012534.67145-1-ericdfreese@gmail.com> <170228185233.ZM9032@torch.brasslantern.com> On Tue, 28 Feb 2017 20:51:32 -0700 Eric Freese wrote: > Ok. How about a separate parameter that just returns kungetct? How about... pws diff --git a/Doc/Zsh/zle.yo b/Doc/Zsh/zle.yo index d68365b..b65e3be 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 1e4c5b8..0a922d2 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 }, @@ -458,6 +462,13 @@ get_keys(UNUSED(Param pm)) } /**/ +static zlong +get_keys_queued_count(UNUSED(Param pm)) +{ + return kungetct; +} + +/**/ static void set_numeric(UNUSED(Param pm), zlong x) {