[Rd] setRepositories() doesn't allow graceful cancellation from GUI menu (PR#13937)
richcalaway at revolution-computing.com
richcalaway at revolution-computing.com
Tue Sep 1 01:45:09 CEST 2009
Full_Name: Richard Calaway
Version: 2.9.2
OS: Windows Vista
Submission from: (NULL) (65.47.30.18)
If you call setRepositories(graphics=TRUE), or, equivalently, choose "Select
repositories..." from RGui's Packages menu, and then click "Cancel", you are
dropped to the command line menu. Choosing "Cancel" should drop you back to the
top-level prompt. Also, the command-line menu doesn't specify how to cancel. The
following patch clears up both problems:
Index: packages.R
===================================================================
--- packages.R (revision 49504)
+++ 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,
"Repositori
es"),
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"]]
More information about the R-devel
mailing list