From mschwartz at medanalytics.com  Mon May 12 16:47:07 2003
From: mschwartz at medanalytics.com (Marc Schwartz)
Date: Mon May 12 22:47:31 2003
Subject: [Rd] on.exit(par(old.par)) warnings
In-Reply-To: <3EC004EB.C447E1B7@bank-banque-canada.ca>
Message-ID: <00ef01c318c7$a804c7f0$0201a8c0@MARC>

>-----Original Message-----
>From: r-devel-bounces@stat.math.ethz.ch 
>[mailto:r-devel-bounces@stat.math.ethz.ch] On Behalf Of Paul Gilbert
>Sent: Monday, May 12, 2003 3:33 PM
>To: R-devel@stat.math.ethz.ch
>Subject: [Rd] on.exit(par(old.par)) warnings
>
>
>I often use something like
>
>  old.par <- par(set someting)
>  on.exit(par(old.par))
>
>but in R 1.7.0. I now get warnings:               
>          
>> old.par <- par()
>> par(old.par)
>Warning messages: 
>1: parameter "cin" can't be set in: par(args) 
>2: parameter "cra" can't be set in: par(args) 
>3: parameter "csi" can't be set in: par(args) 
>4: parameter "cxy" can't be set in: par(args) 
>5: parameter "din" can't be set in: par(args) 
>6: gamma cannot be modified on this device in: par(args) 
>
>Is this a mistake or a new feature? If it is a new feature, is 
>there a simple
>way to avoid the warnings?
>
>Thanks,
>Paul Gilbert


Paul,

You should be using:

old.par <- par(no.readonly=TRUE)
on.exit(par(old.par))

Without the  'no.readonly=TRUE' in the first call, you will store and
then try to set non-user adjustable (read only) parameters, hence the
warning.

HTH,

Marc Schwartz


[Rd] on.exit(par(old.par)) warnings
Marc Schwartz