zsh-workers
 help / color / mirror / code / Atom feed
From: Andrew Main <zefram@tao.co.uk>
To: zsh-workers@math.gatech.edu
Subject: ZLE suffix removal system
Date: Tue, 8 Jul 1997 09:20:02 +0100	[thread overview]
Message-ID: <199707080820.JAA27530@taos.demon.co.uk> (raw)

-----BEGIN PGP SIGNED MESSAGE-----

I have been off-net for the past week, due to moving house.  Can someone
let me know where the list archives are, or alternatively summarise
any important events since the 27th of June?  Please note the new email
address: my Warwick address will shortly disappear.

Here is a rewrite of ZLE's removable suffix mechanism.  Instead of
the old ad hoc mechanism, the new system maintains a table of suffix
lengths that should be removed for each character that might be inserted.
In zle_tricky.c, I simplified the logic considerably, removing a lot of
special cases.

There are some changes in behaviour, most noticeably for parameter
name completion.  The most complex case, with all useful options on,
looks like this:

% echo ${HOM_         press <tab>
% echo ${HOME}/_      then either:
% echo ${HOME:_       `:', or
% echo ${HOME}_       `}', or
% echo ${HOME} _      ` ', or
% echo ${HOME}/_      `/'

I have tested this extensively, and do not expect there to be any bugs
in it.  I think all parts of the new logic have been exercised.

 -zefram

begin 644 suffix_patch.gz
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
EFDWI$G2[:G!QFWJU3CW+QZQV<_7O;C1NX#[+^S<8F=F%!%$`````
`
end

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: ascii

iQEVAwUBM75G0Jmk9GeOHh7BAQFHIwf8CgO3cavv2rLUniLYipxhrOOi7M/1Z6Hv
wc4F6zRp+xNu24A+L6mGkArBMWaC1dbaGw7drFopvD68uYyhyHk9YR/sFE7DUUGf
nB5ap82TsGAhal+gucXq8FTPNgE/7UmdZn9m5+OsZ/FH7MvVxvy6vMSkhlWz96pN
DMqsgomMHL0JhnLyeCpgvn1ck8Ffw42L9X58Yut8t3LvHIPNW4oiNGEIYc5yXmGJ
TvAPQa5HdFGbVYs88YXzWn1vfThjVdF5umxcTsxxMrSXufTLcVc10r2+x7qY7nFK
YPx7ZaZpparIkimLqcRLbt9VlhbIHfFLX+GFJhjyps+ZAskwebGlcA==
=2gRc
-----END PGP SIGNATURE-----


             reply	other threads:[~1997-07-08  8:34 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-07-08  8:20 Andrew Main [this message]
1997-07-08 10:01 ` Zsh archives Geoff Wing
1997-07-08 17:33   ` Bart Schaefer

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=199707080820.JAA27530@taos.demon.co.uk \
    --to=zefram@tao.co.uk \
    --cc=zsh-workers@math.gatech.edu \
    /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).