zsh-workers
 help / color / mirror / code / Atom feed
From: Roman Perepelitsa <roman.perepelitsa@gmail.com>
To: Oliver Kiddle <opk@zsh.org>
Cc: Zsh Workers <zsh-workers@zsh.org>
Subject: Re: one time in 20 error
Date: Tue, 6 Dec 2022 14:21:05 +0100	[thread overview]
Message-ID: <CAN=4vMrwRi40x704ii02KP=74dcXAn--9GfJ+78fauRCbvUU1g@mail.gmail.com> (raw)
In-Reply-To: <45486-1670284091.713245@QrNT.Ugrc.e_6U>

On Tue, Dec 6, 2022 at 12:48 AM Oliver Kiddle <opk@zsh.org> wrote:
>
> On 29 Nov, Roman Perepelitsa wrote:
> > I have the following in my .zshrc:
> >
> >     function skip-csi-sequence() {
> >      local key
> >      while read -sk key && (( $((#key)) < 0x40 || $((#key)) > 0x7E )); do
> >        # empty body
> >      done
> >     }
> >
> >     zle -N skip-csi-sequence
> >     bindkey '\e[' skip-csi-sequence
> >
> > With this binding a buggy script that leaks mouse events into zle
> > won't have any effect.
>
> This is a nice idea. I've occasionally had unwanted effects from
> unintentionally hitting a function key.

That's its intended purpose. I learned about readline's
skip-csi-sequence here: https://www.reddit.com/r/zsh/comments/yzhx3l.
Docs: https://www.gnu.org/software/bash/manual/html_node/Miscellaneous-Commands.html#index-skip_002dcsi_002dsequence-_0028_0029

"""
skip-csi-sequence ()

Read enough characters to consume a multi-key sequence such as those
defined for keys like Home and End. Such sequences begin with a
Control Sequence Indicator (CSI), usually ESC-[. If this sequence is
bound to "\e[", keys producing such sequences will have no effect
unless explicitly bound to a Readline command, instead of inserting
stray characters into the editing buffer. This is unbound by default,
but usually bound to ESC-[.
"""

> The patch below tries the widget approach. Rather than look for the
> termination character, I thought it better to bail out given any
> out-of-range parameter byte [...]

Good idea. This is also how readline does it.

> [...] or KEYTIMEOUT being exceeded

Probably also a good idea, although readline doesn't have a timeout.

Is there an advantage to implementing this widget in C rather than zsh?

Roman.


  parent reply	other threads:[~2022-12-06 13:21 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <f29162cd-28d1-85ed-6a3c-9bec1fb2e13a@eastlink.ca>
     [not found] ` <CAA-Ti-hhbwZD3-aeMvy_tm5f7SKHw7XN4muJn8ymez1q7rAE_A@mail.gmail.com>
     [not found]   ` <CAN=4vMpCUNgKYgSR+4rmREpA25v_sLHYcS4nfTk8EQ_0Cg5yyw@mail.gmail.com>
     [not found]     ` <5d0c4e22-80b0-2fd2-ee75-6902da52d121@eastlink.ca>
     [not found]       ` <CAH+w=7aeERdOcpPzTmKVQFK7HLduh2s1J9VFzumCh6W0SJFqpg@mail.gmail.com>
     [not found]         ` <57e8e248-bb1a-663a-8557-e3fc13f671d4@eastlink.ca>
     [not found]           ` <CAH+w=7aW9meLuEKSGsKiZMXoAd7KBc9fgakXZnB_t2iphq=BPQ@mail.gmail.com>
     [not found]             ` <e35c2f14-abda-93d7-bf2c-6823d6d3215d@eastlink.ca>
     [not found]               ` <CAN=4vMrZzxYVjc63DwU=Scks39FhzmK+E57XerOwusmd64QOjw@mail.gmail.com>
     [not found]                 ` <c2f348d1-8982-d4a4-2c78-a0dd67319b8c@eastlink.ca>
     [not found]                   ` <CAGdYchv9T6ByD7meADqWzdJwAF2SG2YXhasT0=+AQvV+08ZRrA@mail.gmail.com>
2022-12-01 16:30                     ` ERR_RETURN doc Bart Schaefer
2022-12-01 19:30                       ` Philippe Altherr
2022-12-01 20:05                         ` Bart Schaefer
2022-12-01 22:52                           ` Philippe Altherr
2022-12-10 11:33                         ` Daniel Shahaf
2022-12-10 14:06                           ` Philippe Altherr
2022-12-11  1:24                             ` Bart Schaefer
2022-12-12 23:35                               ` Philippe Altherr
2022-12-05 23:48     ` one time in 20 error Oliver Kiddle
2022-12-06  0:13       ` Bart Schaefer
2022-12-06 13:21       ` Roman Perepelitsa [this message]
2022-12-10  1:04         ` Oliver Kiddle
2022-12-10  9:23           ` Roman Perepelitsa
2022-12-15  1:32           ` Oliver Kiddle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAN=4vMrwRi40x704ii02KP=74dcXAn--9GfJ+78fauRCbvUU1g@mail.gmail.com' \
    --to=roman.perepelitsa@gmail.com \
    --cc=opk@zsh.org \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).