Skip to content

example() leaves console prompting to press Enter for new graphs

3 messages · Michael Friendly, Duncan Murdoch, David Winsemius

#
Env: Win XP, R 2.9.2]

It's a minor annoyance, but I find that after I run example(), the 
console state of prompting to press Enter for
each new graph remains as it is under example.  It's more annoying that 
it seems difficult to turn this behavior
off!

In a fresh session:
 >  getOption("example.ask")
[1] "default"

Run an example:
 > example(plot)
plot> require(stats)

plot> plot(cars)
Waiting to confirm page change...
...

 > getOption("example.ask")
[1] "default"

# do another plot:
 > plot(sin, -pi, 2*pi)
Waiting to confirm page change...
 >

# reset option to FALSE
 > options("example.ask"=FALSE)
 > plot(sin, -pi, 2*pi)
Waiting to confirm page change...

# try resetting devAskNewPage
 > devAskNewPage(ask = NULL)
[1] TRUE
 > plot(sin, -pi, 2*pi)
Waiting to confirm page change...
 >

There does seem to be code in example to reset this state on exit, and 
I'm baffled why it doesn't actually
do it

   ...
    if (ask == "default")
        ask <- echo && grDevices::dev.interactive(orNone = TRUE)
    if (ask) {
        if (.Device != "null device") {
            oldask <- grDevices::devAskNewPage(ask = TRUE)
            if (!oldask)
                on.exit(grDevices::devAskNewPage(oldask), add = TRUE)
        }
        op <- options(device.ask.default = TRUE)
        on.exit(options(op), add = TRUE)
    }
   ...

So, how can I restore the previous state of plotting w/out prompting?
#
On 11/01/2010 9:28 AM, Michael Friendly wrote:
It's not the console state that is left that way, it's the graphics 
window.  If you close it, the next window you open will have the state 
you wanted.  If you had had a window open before you called example, it 
would have been restored. 

Duncan Murdoch
#
On Jan 11, 2010, at 9:28 AM, Michael Friendly wrote:

            
I have had the same annoyance when I interrupted a sequence of  
examples with ctrl-C and this prevented the restoration of the initial  
state. You could try:

options(device.ask.default = FALSE)      # and / or

grDevices::devAskNewPage(ask=FALSE)

Changing the first one on my machine did nothing, but the second one  
was effective,