[Rd] warnings() generates error if there never were any (PR#4389)
maechler at stat.math.ethz.ch
maechler at stat.math.ethz.ch
Thu Oct 2 10:55:09 MEST 2003
>>>>> "Greg" == gregory r warnes <gregory_r_warnes at groton.pfizer.com>
>>>>> on Thu, 2 Oct 2003 08:46:09 +0200 (MET DST) writes:
Greg> This message is in MIME format. Since your mail reader does not understand
Greg> this format, some or all of this message may not be legible.
Greg> ------_=_NextPart_000_01C388B0.D441A780
Greg> Content-Type: text/plain; charset="iso-8859-1"
[ please *never* attach anything for bug reports.
The current bug-management system messes up the MIME ]
Greg> In debugging a long-running function where I
Greg> occasionally call warnings() to write out any warnings
Greg> that have occurred, I discovered that calling
Greg> warnings() before any warnings have ever been
Greg> generated causes an error:
>> warnings()
Greg> Error in warnings() : Object "last.warning" not found
Greg> The problem is that warnings() attemts to check the
Greg> length of the variable 'last.warning' without first
Greg> checking for its existance.
Greg> This problem exists in R 1.7.1 as well as in the new 1.8.0 beta code.
Greg> A simple patch fixes the problem:
Greg> --- warnings.R.orig 2003-10-02 02:35:04.359451000 -0400
Greg> +++ warnings.R 2003-10-02 02:42:08.900717000 -0400
Greg> @@ -1,6 +1,6 @@
Greg> warnings <- function(...)
Greg> {
Greg> - if(!(n <- length(last.warning)))
Greg> + if(!exists("last.warning") || !(n <- length(last.warning)))
Greg> return()
Greg> names <- names(last.warning)
Greg> cat("Warning message", if(n > 1)"s", ":\n", sep="")
Thank you Greg!
Fortunately, this falls into the category of "trivial bug fix"
(it cannot break anything), and hence still goes into 1.8.0
Martin Maechler <maechler at stat.math.ethz.ch> http://stat.ethz.ch/~maechler/
Seminar fuer Statistik, ETH-Zentrum LEO C16 Leonhardstr. 27
ETH (Federal Inst. Technology) 8092 Zurich SWITZERLAND
phone: x-41-1-632-3408 fax: ...-1228 <><
More information about the R-devel
mailing list