From cberry at tajo.ucsd.edu  Sat Nov 27 23:58:33 2010
From: cberry at tajo.ucsd.edu (Charles C. Berry)
Date: Sat, 27 Nov 2010 14:58:33 -0800
Subject: [Rd] Bug in parseNamespaceFile or switch( , ... ) ?
Message-ID: <Pine.LNX.4.64.1011271448140.23931@tajo.ucsd.edu>


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.

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
cberry at tajo.ucsd.edu			    UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901



[Rd] Bug in parseNamespaceFile or switch( , ... ) ?
Charles C. Berry