[Rd] Problem in setRepositories() logic

2009-07-29 Thread Richard Calaway

Hi, all--

I was playing around with the Packages menu in the Windows RGui, and  
noticed that when I chose Select  repositories and clicked Cancel,  
instead of being returned to the R prompt I was faced with a text  
version of the menu. I think the text menu should only appear
if graphics=FALSE, and should explicitly say how to cancel, as well.  
The following changes make that happen:


Index: packages.R
===
--- packages.R  (revision 49021)
+++ packages.R  (working copy)
@@ -654,7 +654,7 @@
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)
@@ -662,12 +662,12 @@
   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


[Rd] Oops...a better (working, this time) patch for setRepositories

2009-07-29 Thread Richard Calaway
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