On 12-01-11 3:54 PM, Mark.Bravington at csiro.au wrote:
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.
Actually, it preserved the "source" attribute of the function if it
could, but didn't add a srcref. Sometimes it would fail, giving a
message like
Error in parse(textConnection(texto)) :
function is too long to keep source (at line 8812)
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
})
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.
Yes, that does sound like a good idea.