On 27/11/2010 6:50 PM, Duncan Murdoch wrote:
On 27/11/2010 5:58 PM, Charles C. Berry wrote:

parseNamespaceFile() doesn't seem to detect misspelled directives. Looking
at its code I see

        switch(as.character(e[[1L]]),

        <lots of args omitted here>,

        stop(gettextf("unknown namespace directive: %s",
                   deparse(e)), call. = FALSE, domain = NA))

but this doesn't seem to function as I expect, viz. to stop with an error
if I type a wrong directive.

You're right, there was a typo in parseNamespaceFile.  (The typo was in
this line:

                 "=", "<-" = {

This should have been

                 "=" =, "<-" = {

Without the extra = sign, the "=" was taken as the default value of the
switch, and the stop() was never reached.

Conceivably switch() should complain if it is called with more than one
default.

I suspect when I fix this it's going to flush out some typos in packages on CRAN...

Duncan Murdoch


Duncan Murdoch


Details:
# create dummy NAMESPACE file with two bad / one good directives
cat("blah( nada )\nblee( nil )\nexport( outDS )\n",file="NAMESPACE")
readLines("NAMESPACE")
[1] "blah( nada )"    "blee( nil )"     "export( outDS )"
parseNamespaceFile("",".") # now parse it
$imports
list()

$exports
[1] "outDS"

$exportPatterns
character(0)

$importClasses
list()

$importMethods
list()

$exportClasses
character(0)

$exportMethods
character(0)

$exportClassPatterns
character(0)

$dynlibs
character(0)

$nativeRoutines
list()

$S3methods
        [,1] [,2] [,3]



So, it picked up 'export' and ignored the other two lines.


Chuck

p.s.

sessionInfo()
R version 2.12.0 (2010-10-15)
Platform: i386-apple-darwin9.8.0/i386 (32-bit)

locale:
[1] C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base






Charles C. Berry                            Dept of Family/Preventive Medicine
cbe...@tajo.ucsd.edu                        UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to