summary refs log tree commit diff
path: root/Completion/X
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/X')
-rw-r--r--Completion/X/Command/_netscape46
1 files changed, 25 insertions, 21 deletions
diff --git a/Completion/X/Command/_netscape b/Completion/X/Command/_netscape
index 99d6ee45c..be38e0c85 100644
--- a/Completion/X/Command/_netscape
+++ b/Completion/X/Command/_netscape
@@ -24,9 +24,6 @@ _x_arguments -C \
   -{component-bar,composer,edit,messenger,mail,discussions,news} \
   '*:location:->urls' && ret=0
 
-[[ "$state" = "urls" ]] &&
-  _files "$@" && return 0
-
 # Handle netscape remote commands
 if [[ "$state" = "remote" ]]; then  
   local -a remote_commands
@@ -69,24 +66,31 @@ if [[ "$state" = "remote" ]]; then
 fi
 
 if [[ "$state" = "urls" ]]; then
-  # Complete netscape urls
-  if compset -P about: ; then
-    _wanted values expl 'about what' \
-        compadd "$@" authors blank cache document fonts global hype image-cache \
-            license logo memory-cache mozilla plugins && ret=0
-  elif compset -P news: ; then
-    _newsgroups "$@" && ret=0
-  else
-    _tags prefixes
-    while _tags; do
-      while _next_label prefixes expl 'URL prefix' "$@"; do
-        _urls "$expl[@]" && ret=0
-	compset -S '[^:]*'
-        compadd -S '' "$expl[@]" about: news: mocha: javascript: && ret=0
-      done
-      (( ret )) || return 0
-    done
-  fi
+  _tags files urls
+  while _tags; do
+    _requested files expl 'file' _files "$@" && ret=0
+    if _requested urls; then
+      # Complete netscape urls
+      if compset -P about: ; then
+	_wanted values expl 'about what' \
+            compadd "$@" authors blank cache document fonts global hype \
+	    	image-cache license logo memory-cache mozilla plugins && ret=0
+      elif compset -P news: ; then
+	_newsgroups "$@" && ret=0
+      else
+	_tags prefixes
+	while _tags; do
+	  while _next_label prefixes expl 'URL prefix' "$@"; do
+            _urls "$expl[@]" && ret=0
+	    compset -S '[^:]*'
+            compadd -S '' "$expl[@]" about: news: mocha: javascript: && ret=0
+	  done
+	  (( ret )) || return 0
+	done
+      fi
+    fi
+    (( ret )) || return 0
+  done
 fi
 
 return ret