* Re: Problem with completion after a variable with globcomplete
@ 2000-02-08 10:07 Sven Wischnowsky
2000-02-08 13:59 ` Oliver Kiddle
0 siblings, 1 reply; 4+ messages in thread
From: Sven Wischnowsky @ 2000-02-08 10:07 UTC (permalink / raw)
To: zsh-workers
Oliver Kiddle wrote:
> zsh -f
> autoload -U compinit
> compinit
> setopt globcomplete
> f=/home
> cd $f/okiddle/<tab>
>
> Here the tab, inserts a space when I would expect it to list directories
> in my home. It seems to be that completion stops working for the second
> directory after a variable reference.
The test if we had a pattern went wrong.
Bye
Sven
diff -ru ../z.old/Completion/Core/_path_files Completion/Core/_path_files
--- ../z.old/Completion/Core/_path_files Tue Feb 8 10:16:39 2000
+++ Completion/Core/_path_files Tue Feb 8 11:06:02 2000
@@ -452,7 +452,7 @@
if (( $#tmp4 )) ||
[[ -n "$compstate[pattern_match]" &&
- "$PREFIX$SUFFIX" != "${(q)PREFIX}${(q)SUFFIX}" ]]; then
+ "${PREFIX:s/$//}${SUFFIX:s/$//}" != "${(q)PREFIX:s/$//}${(q)SUFFIX:s/$//}" ]]; then
# It is. For menucompletion we now add the possible completions
# for this component with the unambigous prefix we have built
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Problem with completion after a variable with globcomplete
2000-02-08 10:07 Problem with completion after a variable with globcomplete Sven Wischnowsky
@ 2000-02-08 13:59 ` Oliver Kiddle
0 siblings, 0 replies; 4+ messages in thread
From: Oliver Kiddle @ 2000-02-08 13:59 UTC (permalink / raw)
To: Zsh workers
Sven Wischnowsky wrote:
>
> Oliver Kiddle wrote:
>
> > zsh -f
> > autoload -U compinit
> > compinit
> > setopt globcomplete
> > f=/home
> > cd $f/okiddle/<tab>
> >
> > Here the tab, inserts a space when I would expect it to list directories
> > in my home. It seems to be that completion stops working for the second
> > directory after a variable reference.
>
> The test if we had a pattern went wrong.
Thanks, this fixes it for the case above but I noticed that the problem
is still there for arrays. I've also found that the problem also exists
for tilde expansion - using ${(q)...) quotes a tilde and square
brackets.
> - "$PREFIX$SUFFIX" != "${(q)PREFIX}${(q)SUFFIX}" ]]; then
> + "${PREFIX:s/$//}${SUFFIX:s/$//}" != "${(q)PREFIX:s/$//}${(q)SUFFIX:s/$//}"
I can send a patch which as far as I know fixes the problem by extending
your logic there to take out tildes and square brackets but I don't
really understand the context in which that line has been used (and why
the globcomplete option should affect it) and so I'm not sure that it
wouldn't break anything else in the process. The condition seems to be
checking for any characters which might need to be quoted in $PREFIX and
$SUFFIX. I would have thought that any character could appear as part of
the command-line.
Oliver
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Problem with completion after a variable with globcomplete
@ 2000-02-08 14:28 Sven Wischnowsky
0 siblings, 0 replies; 4+ messages in thread
From: Sven Wischnowsky @ 2000-02-08 14:28 UTC (permalink / raw)
To: zsh-workers
Oliver Kiddle wrote:
> Sven Wischnowsky wrote:
> >
> > Oliver Kiddle wrote:
> >
> > > zsh -f
> > > autoload -U compinit
> > > compinit
> > > setopt globcomplete
> > > f=/home
> > > cd $f/okiddle/<tab>
> > >
> > > Here the tab, inserts a space when I would expect it to list directories
> > > in my home. It seems to be that completion stops working for the second
> > > directory after a variable reference.
> >
> > The test if we had a pattern went wrong.
>
> Thanks, this fixes it for the case above but I noticed that the problem
> is still there for arrays. I've also found that the problem also exists
> for tilde expansion - using ${(q)...) quotes a tilde and square
> brackets.
>
> > - "$PREFIX$SUFFIX" != "${(q)PREFIX}${(q)SUFFIX}" ]]; then
> > + "${PREFIX:s/$//}${SUFFIX:s/$//}" != "${(q)PREFIX:s/$//}${(q)SUFFIX:s/$//}"
>
> I can send a patch which as far as I know fixes the problem by extending
> your logic there to take out tildes and square brackets but I don't
> really understand the context in which that line has been used (and why
> the globcomplete option should affect it) and so I'm not sure that it
> wouldn't break anything else in the process. The condition seems to be
> checking for any characters which might need to be quoted in $PREFIX and
> $SUFFIX. I would have thought that any character could appear as part of
> the command-line.
The line was added in 9454 -- trying to make the interaction with the
_match completer a bit smoother (there is almost no real reason to use
GLOB_COMPLETE nowadays, the _match completer should be better -- and
configurable).
If GLOB_COMPLETE is set, then `$compstate[pattern_match]' is set to
`*' by the completion code (compatibility).
Ok, the patch below changes the test to not look at the components
already processed.
Bye
Sven
diff -ru ../z.old/Completion/Core/_path_files Completion/Core/_path_files
--- ../z.old/Completion/Core/_path_files Tue Feb 8 14:12:36 2000
+++ Completion/Core/_path_files Tue Feb 8 15:22:19 2000
@@ -445,15 +445,15 @@
if [[ "$tpre" = */* ]]; then
PREFIX="${donepath}${linepath}${cpre}${tpre%%/*}"
SUFFIX="/${tsuf#*/}"
+ tmp2="${cpre}${tpre%%/*}"
else
PREFIX="${donepath}${linepath}${cpre}${tpre}"
SUFFIX="${tsuf}"
+ tmp2="${cpre}${tpre}"
fi
if (( $#tmp4 )) ||
- [[ -n "$compstate[pattern_match]" &&
- "${PREFIX:s/$//}${SUFFIX:s/$//}" != "${(q)PREFIX:s/$//}${(q)SUFFIX:s/$//}" ]]; then
-
+ [[ -n "$compstate[pattern_match]" && "$tmp2" != "${(q)tmp2}" ]]; then
# It is. For menucompletion we now add the possible completions
# for this component with the unambigous prefix we have built
# and the rest of the string from the line as the suffix.
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
^ permalink raw reply [flat|nested] 4+ messages in thread
* Problem with completion after a variable with globcomplete
@ 2000-02-07 14:39 Oliver Kiddle
0 siblings, 0 replies; 4+ messages in thread
From: Oliver Kiddle @ 2000-02-07 14:39 UTC (permalink / raw)
To: Zsh workers
zsh -f
autoload -U compinit
compinit
setopt globcomplete
f=/home
cd $f/okiddle/<tab>
Here the tab, inserts a space when I would expect it to list directories
in my home. It seems to be that completion stops working for the second
directory after a variable reference.
Oliver Kiddle
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2000-02-08 14:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-02-08 10:07 Problem with completion after a variable with globcomplete Sven Wischnowsky
2000-02-08 13:59 ` Oliver Kiddle
-- strict thread matches above, loose matches on Subject: below --
2000-02-08 14:28 Sven Wischnowsky
2000-02-07 14:39 Oliver Kiddle
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).