From Mark.Bravington at csiro.au  Wed Jan 11 21:54:12 2012
From: Mark.Bravington at csiro.au (Mark.Bravington at csiro.au)
Date: Thu, 12 Jan 2012 07:54:12 +1100
Subject: [Rd] parse( connection) and source-keeping
Message-ID: <3D59DF35E7CF3E42BA70C23BD5CBE6A85F6DA9302F@exvic-mbx04.nexus.csiro.au>

In R <= 2.13.x, calling 'parse( con)' where 'con' is a connection, 'options( keep.source)' is TRUE,  and default 'srcfile' would preserve the source. In R >= 2.14.1, it doesn't. 

> tf <- tempfile()
> options( keep.source=TRUE)
> texto <- c( 'function() { # comment', '}')
> parse( text=texto)
expression(function() { # comment
})
> cat( texto, file=tf, sep='\n')
> parse( file=tf)
expression(function() { # comment
})
> parse( file( tf))
expression(function() {
})
> parse( textConnection( texto))
expression(function() {
})

and yes I didn't bother closing any connections.

My suspicion is that this change is unintentional, and it seems to me that the best option would be for 'connection' to work like 'text' does here, ie to attach a 'srcfilecopy' containing the contents.

I didn't submit a bug report because the documentation (which hasn't changed in this respect) actually doesn't say what 'parse' should do with 'connection' (as opposed to 'text' or 'file') argument when 'getOption( keep.source)' is TRUE and 'srcfile' is NULL. [BTW it's also unstated which argument takes precedence if a non-default 'srcfile' argument is specified.] So some additional explanation is needed there at a minimum, but also a decision as to what the best behaviour would be.

bye
Mark

Mark Bravington
CSIRO CMIS
Marine Lab
Hobart
Australia



[Rd] parse( connection) and source-keeping
Mark.Bravington at csiro.au