zsh-workers
 help / color / mirror / code / Atom feed
From: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
To: zsh-workers@sunsite.auc.dk
Subject: Re: PATCH: Problem with _expand, _path_files, and $(command)
Date: Tue, 4 Jul 2000 10:04:59 +0200 (MET DST)	[thread overview]
Message-ID: <200007040804.KAA07882@beta.informatik.hu-berlin.de> (raw)
In-Reply-To: "Bart Schaefer"'s message of Mon, 3 Jul 2000 17:30:03 +0000


Bart Schaefer wrote:

> On Jul 3, 11:01am, Sven Wischnowsky wrote:
> } Subject: Re: PATCH: Problem with _expand, _path_files, and $(command)
> }
> } > } > zagzig[88] echo $(exit 0)
> } > } > zagzig[88] echo \$\*\(exit\ 0Om\)
> } 
> } Maybe just change the patterns in lines 120, 122, 166 and 168
> } from `(?*)' to `(*[^\$])'? (Haven't tried...)
> 
> Not quite; I also had to change the patterns on lines 153 and 154.
> 
> zagzig[95] echo $(exit 0)
> No matches for `file' or `corrections'

Is the eval in line 324 still needed?


I found another one: completion after something like `../$[4+]/'
reported an error because it's a math error and math expressions are
parsed later (after paramsubst() has returned).

Blah. Very ugly. For now I had to add some $(print...)s, does anyone
see a better solution?

Bye
 Sven

Index: Completion/Core/_expand
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Core/_expand,v
retrieving revision 1.24
diff -u -r1.24 _expand
--- Completion/Core/_expand	2000/07/02 17:21:54	1.24
+++ Completion/Core/_expand	2000/07/04 08:04:22
@@ -61,9 +61,9 @@
    zstyle -T ":completion:${curcontext}:" substitute; then
   [[ ! -o ignorebraces && "${#${exp}//[^\{]}" = "${#${exp}//[^\}]}" ]] &&
       eval exp\=\( ${${(q)exp}:gs/\\{/\{/:gs/\\}/\}/} \)
-  exp=( ${${(e)exp//\\[ 	
+  exp=( $(print -r ${${(e)exp//\\[ 	
 ]/ }//(#b)([ 	
-])/\\$match[1]} ) 2>/dev/null
+])/\\$match[1]}) ) 2>/dev/null
 else
   exp=( ${exp:s/\\\$/\$} )
 fi
@@ -95,7 +95,7 @@
 
 zstyle -s ":completion:${curcontext}:" keep-prefix tmp || tmp=changed
 if [[ "$word" = [\~\$]*/* && "$tmp" = (yes|true|on|1|changed) ]]; then
-  epre=( ${(e)~${word%%/*}} )
+  epre=( $(print -r ${(e)~${word%%/*}}) ) 2>/dev/null
   if [[ -n "$epre" && $#epre -eq 1 ]]; then
     opre="${word%%/*}"
     pre="$epre[1]"
Index: Completion/Core/_path_files
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Core/_path_files,v
retrieving revision 1.24
diff -u -r1.24 _path_files
--- Completion/Core/_path_files	2000/07/03 17:45:47	1.24
+++ Completion/Core/_path_files	2000/07/04 08:04:22
@@ -247,10 +247,9 @@
   # after the first slash after the parameter expansion.
   # This fails for things like `f/$foo/b/<TAB>' where the first `f' is
   # meant as a partial path.
-
   linepath="${(M)pre##*\$[^/]##/}"
-  realpath=${(e)~linepath}
-  [[ "$realpath" = "$linepath" ]] && return 1
+  realpath=$(print -r ${(e)~linepath}) 2>/dev/null
+    [[ -z "$realpath" || "$realpath" = "$linepath" ]] && return 1
   pre="${pre#${linepath}}"
   i="${#linepath//[^\\/]}"
   orig="${orig[1,(in:i:)/][1,-2]}"

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


             reply	other threads:[~2000-07-04  8:06 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-07-04  8:04 Sven Wischnowsky [this message]
2000-07-04 17:15 ` Bart Schaefer
  -- strict thread matches above, loose matches on Subject: below --
2000-07-05  6:26 Sven Wischnowsky
2000-07-03  9:01 Sven Wischnowsky
2000-07-03 17:30 ` Bart Schaefer
2000-07-03  8:12 Sven Wischnowsky
2000-07-03  8:51 ` Bart Schaefer
2000-07-02 17:13 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=200007040804.KAA07882@beta.informatik.hu-berlin.de \
    --to=wischnow@informatik.hu-berlin.de \
    --cc=zsh-workers@sunsite.auc.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).