zsh-workers
 help / color / mirror / code / Atom feed
From: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
To: zsh-workers@sunsite.dk
Subject: Re: Bug in _approximate with ~/
Date: Fri, 17 Aug 2001 11:16:26 +0200	[thread overview]
Message-ID: <15228.57578.582005.656806@gargle.gargle.HOWL> (raw)
In-Reply-To: <1010816174501.ZM12190@candle.brasslantern.com>


Bart Schaefer wrote:

> ...
> 
> This results in a PREFIX that looks like `(#a1)~/test/f'.  _path_files
> does the right thing with this -- it peels off the (#a1), expands the
> tilde, and then applies (#a1) to each path element.  However, none of
> the other completions that are attempted in command position are this
> intelligent -- they all interpret `(#a1)~/test/f' as `(#a1)()~/test/f',
> that is, allow one correction to the empty string as long as that does
> not match `/test/f'.  Consequently you get all the one-letter commands,
> parameters, reserved words, etc.
> 
> You're right, this is a bug.

Hmhm.  To be fixed in C-code where the globbing flags are moved
farther into the prefix if needed.


This also made me notice a slightly wrong test in _path_files.


Bye
  Sven

Index: Completion/Unix/Type/_path_files
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Type/_path_files,v
retrieving revision 1.10
diff -u -r1.10 _path_files
--- Completion/Unix/Type/_path_files	2001/08/13 10:57:44	1.10
+++ Completion/Unix/Type/_path_files	2001/08/17 09:13:31
@@ -653,7 +653,7 @@
 
 if zstyle -t ":completion:${curcontext}:paths" expand prefix &&
    [[ nm -eq compstate[nmatches] && $#exppaths -ne 0 &&
-      "$exppaths" != "$eorig" ]]; then
+      "$linepath$exppaths" != "$eorig" ]]; then
   PREFIX="${opre}"
   SUFFIX="${osuf}"
   compadd -Q "$mopts[@]" -S '' -M "r:|/=* r:|=*" -p "$linepath" -a exppaths
Index: Src/Zle/compcore.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/compcore.c,v
retrieving revision 1.48
diff -u -r1.48 compcore.c
--- Src/Zle/compcore.c	2001/07/25 10:45:59	1.48
+++ Src/Zle/compcore.c	2001/08/17 09:13:32
@@ -1782,21 +1782,23 @@
 	} else
 	    lsl = 0;
 	if (dat->aflags & CAF_MATCH) {
-	    int ml, gfl = 0;
+	    int ml, gfl = 0, tildepat = 0;
 	    char *globflag = NULL;
 
 	    if (comppatmatch && *comppatmatch &&
-		dat->ppre && lpre[0] == '(' && lpre[1] == '#') {
+		lpre[0] == '(' && lpre[1] == '#') {
 		char *p;
 
 		for (p = lpre + 2; *p && *p != ')'; p++);
 
-		if (*p == ')') {
+		if (*p == ')' && (dat->ppre || p[1] == '~')) {
 		    char sav = p[1];
 
 		    p[1] = '\0';
 		    globflag = dupstring(lpre);
 		    gfl = p - lpre + 1;
+                    if (!dat->ppre)
+                        tildepat = 1;
 		    p[1] = sav;
 
 		    lpre = p + 1;
@@ -1859,7 +1861,11 @@
 		int is = (*comppatmatch == '*');
 		char *tmp = (char *) zhalloc(2 + llpl + llsl + gfl);
 
-		if (gfl) {
+		if (tildepat) {
+                    tmp[0] = '~';
+                    strcpy(tmp + 1, globflag);
+                    strcat(tmp, lpre + 1);
+                } else if (gfl) {
 		    strcpy(tmp, globflag);
 		    strcat(tmp, lpre);
 		} else

-- 
Sven Wischnowsky                    wischnow@informatik.hu-berlin.de


  reply	other threads:[~2001-08-17  9:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-16 15:54 martin.ebourne
2001-08-16 17:45 ` Bart Schaefer
2001-08-17  9:16   ` Sven Wischnowsky [this message]
2001-08-17 14:36     ` Bart Schaefer
2001-08-20 13:11       ` Sven Wischnowsky

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=15228.57578.582005.656806@gargle.gargle.HOWL \
    --to=wischnow@informatik.hu-berlin.de \
    --cc=zsh-workers@sunsite.dk \
    /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).