* Return value of _multi_parts
@ 2000-02-28 4:52 Bart Schaefer
0 siblings, 0 replies; 2+ messages in thread
From: Bart Schaefer @ 2000-02-28 4:52 UTC (permalink / raw)
To: zsh-workers
According to the documentation, _multi_parts is supposed to return 0 if
it successfully added any matches. However, there appear to be several
cases where it returns 0 as long as it has called compadd, i.e. without
checking the exit status of compadd.
Am I missing something, or is this incorrect?
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Return value of _multi_parts
@ 2000-02-28 9:06 Sven Wischnowsky
0 siblings, 0 replies; 2+ messages in thread
From: Sven Wischnowsky @ 2000-02-28 9:06 UTC (permalink / raw)
To: zsh-workers
Bart Schaefer wrote:
> According to the documentation, _multi_parts is supposed to return 0 if
> it successfully added any matches. However, there appear to be several
> cases where it returns 0 as long as it has called compadd, i.e. without
> checking the exit status of compadd.
>
> Am I missing something, or is this incorrect?
Ugh. True.
Bye
Sven
diff -ru ../z.old/Completion/Core/_multi_parts Completion/Core/_multi_parts
--- ../z.old/Completion/Core/_multi_parts Mon Feb 28 10:02:58 2000
+++ Completion/Core/_multi_parts Mon Feb 28 10:05:22 2000
@@ -128,9 +128,10 @@
-M "r:|${sep}=* r:|=* $match" - "$tmp1[1]"
fi
fi
- return 0
+ return
fi
elif (( $#tmp1 )); then
+ local ret=1
# More than one match. First we get all strings that match the
# rest from the line.
@@ -164,10 +165,10 @@
if [[ "$i" = *${sep}* ]]; then
compadd "$group[@]" "$expl[@]" -r "$sep" -S "$sep" "$opts[@]" \
-p "$pref" \
- -M "r:|${sep}=* r:|=* $match" - "${i%%${sep}*}"
+ -M "r:|${sep}=* r:|=* $match" - "${i%%${sep}*}" && ret=0
else
compadd "$group[@]" "$expl[@]" -S '' "$opts[@]" -p "$pref" \
- -M "r:|${sep}=* r:|=* $match" - "$i"
+ -M "r:|${sep}=* r:|=* $match" - "$i" && ret=0
fi
done
else
@@ -179,14 +180,14 @@
if [[ "$i" = *${sep}* ]]; then
compadd "$group[@]" "$expl[@]" -r "$sep" -S "$sep" "$opts[@]" \
-p "$pref" -s "${i#*${sep}}" \
- -M "r:|${sep}=* r:|=* $match" - "${i%%${sep}*}"
+ -M "r:|${sep}=* r:|=* $match" - "${i%%${sep}*}" && ret=0
else
compadd "$group[@]" "$expl[@]" -S '' "$opts[@]" -p "$pref" \
- -M "r:|${sep}=* r:|=* $match" - "$i"
+ -M "r:|${sep}=* r:|=* $match" - "$i" && ret=0
fi
done
fi
- return 0
+ return ret
else
# We are here if no string matched what's on the line. In this
# case we insert the expanded prefix we collected if it differs
@@ -205,7 +206,7 @@
compadd "$group[@]" "$expl[@]" -S '' "$opts[@]" \
-M "r:|${sep}=* r:|=* $match" - "$pref$pre"
fi
- return 0
+ return
fi
fi
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2000-02-28 9:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-02-28 4:52 Return value of _multi_parts Bart Schaefer
2000-02-28 9:06 Sven Wischnowsky
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).