about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Completion/X/Command/_netscape5
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index ee9e110a1..310405d26 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2002-01-07  Sven Wischnowsky  <wischnow@zsh.org>
 
+	* 16407: Completion/X/Command/_netscape: fix nested _tags-loops
+	by re-initialising the outer one when leaving the inner one
+
 	* 16406: Completion/Base/Completer/_approximate,
 	Completion/Unix/Type/_signals, Completion/X/Command/_netscape,
 	Completion/Zsh/Command/_kill, Doc/Zsh/builtins.yo: fixes for
diff --git a/Completion/X/Command/_netscape b/Completion/X/Command/_netscape
index 48b3fab7b..617ec37de 100644
--- a/Completion/X/Command/_netscape
+++ b/Completion/X/Command/_netscape
@@ -1,6 +1,6 @@
 #compdef netscape
 
-local curcontext="$curcontext" state line ret=1 suf
+local curcontext="$curcontext" state line ret=1 suf files
 typeset -A opt_args
 
 _x_arguments -C \
@@ -68,7 +68,7 @@ fi
 if [[ "$state" = "urls" ]]; then
   _tags files urls
   while _tags; do
-    _requested files expl 'file' _files "$@" && ret=0
+    _requested files expl 'file' _files "$@" && files=yes ret=0
     if _requested urls; then
       # Complete netscape urls
       if compset -P about: ; then
@@ -87,6 +87,7 @@ if [[ "$state" = "urls" ]]; then
 	  done
 	  (( ret )) || return 0
 	done
+        [[ -z "$files" ]] && _tags files
       fi
     fi
     (( ret )) || return 0