>>>>> Ben Bolker <bbol...@gmail.com> >>>>> on Thu, 15 Sep 2011 11:03:26 +0200 writes:
> Inspired by > http://stackoverflow.com/questions/7487778/could-you-tell-me-what-this-error-means > I wrote the following very small (one-line) patch which > returns an *informative* error message when R tries to > load a zero-byte file rather than > Error in if (!grepl("RD[AX]2\n", magic)) { : argument is > of length zero > I would guess that error messages with the word "magic" > in them would be disturbing to new users, who are probably > worried already that R is magic ... :-) indeed... While it would not be a good idea to program around such error messages in general, as each extra if(...) is executed everytime the function is called, i.e. has a (albeit *very small*) penalty for every correct call just for the sake of that message in the erronous call case, I do agree that it is worth here and so have added it (for R-devel only). Thank you, Ben. > Ben Bolker > ---------------------------------------------------------------------- > Index: load.R > =================================================================== > --- load.R (revision 56743) > +++ load.R (working copy) > @@ -25,6 +25,7 @@ > ## Since the connection is not open this opens it in binary mode > ## and closes it again. > magic <- readChar(con, 5L, useBytes = TRUE) > + if (length(magic)==0) stop("empty (zero-byte) file") > if (!grepl("RD[AX]2\n", magic)) { > ## a check while we still know the call to load() > if(grepl("RD[ABX][12]\r", magic)) > > ---------------------------------------------------------------------- ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel