My previous suggested patch worked fine for the text-menu case, but broke the graphics case; the following one, that moves the definition of nc outside of the if...else clauses, works for both:

Index: packages.R
===================================================================
--- packages.R  (revision 49021)
+++ packages.R  (working copy)
@@ -639,7 +639,7 @@
     }

     default <- a[["default"]]
-
+    nc <- length(default)
     if(length(ind)) res <- as.integer(ind)
     else {
         res <- integer(0L)
@@ -654,20 +654,19 @@
multiple = TRUE, "Repositories"),
                              a[, 1L])
         }
-        if(!length(res)) {
+        else {
             ## text-mode fallback
cat(gettext("--- Please select repositories for use in this session ---\n"))
-            nc <- length(default)
             cat("", paste(seq_len(nc), ": ",
                           ifelse(default, "+", " "), " ", a[, 1L],
                           sep=""),
                 "", sep="\n")
- cat(gettext("Enter one or more numbers separated by spaces \n")) + cat(gettext("Enter one or more numbers separated by spaces, or 0 to cancel\n"))
             res <- scan("", what=0, quiet=TRUE, nlines=1L)
-            if(!length(res) || (length(res) == 1L && !res[1L]))
-                return(invisible())
-            res <- res[1 <= res && res <= nc]
         }
+        if(!length(res) || (length(res) == 1L && !res[1L]))
+            return(invisible())
+        res <- res[1 <= res && res <= nc]
     }
     if(length(res)) {
         repos <- a[["URL"]]

Rich Calaway
Documentation Manager
REvolution Computing, Inc.
richcala...@revolution-computing.com
206-577-4778 x3204

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to