## This file is sourced when R starts and `load.ESSR` is called. See
|
|
## inferior-ess-r-load-ESSR--local.
|
|
## Do not use _ in names, nor :: as they cannot be parsed in old R versions
|
|
|
|
## load .base.R and all other files into ESSR environment; then attach ESSR
|
|
.ess.load.ESSR <- function(dir) {
|
|
.source <-
|
|
if(any("keep.source" == names(formals(sys.source))))
|
|
sys.source
|
|
else
|
|
function(..., keep.source) sys.source(...)
|
|
|
|
Rver <- if(exists("getRversion", mode="function")) getRversion()
|
|
else paste(R.version$major, R.version$minor, sep=".")
|
|
oldR <- Rver <= "1.3.0"
|
|
|
|
ESSR <-
|
|
if(oldR) ## really old library() revert order a bit
|
|
attach(NULL, name = "ESSR")
|
|
else if(length(nn <- names(formals(new.env))) && any(nn == "parent"))
|
|
new.env(parent =
|
|
if(Rver >= "1.9.0") getNamespace("utils")
|
|
else .BaseNamespaceEnv)
|
|
else
|
|
new.env()
|
|
|
|
assign(".ess.Rversion", Rver, envir = ESSR)
|
|
|
|
## updated by make !!
|
|
VERSION <- "1.5"
|
|
assign(".ess.ESSRversion", VERSION, envir = ESSR)
|
|
|
|
|
|
## .basic.R:
|
|
try(.source(paste(dir,'/.basic.R', sep = ""), envir = ESSR, keep.source = FALSE))
|
|
|
|
## all others try(*) as it will fail in old R
|
|
if(!oldR) # no sense if(oldR)
|
|
for( f in dir(dir, pattern='\\.R$', full.names=TRUE) )
|
|
try(.source(f, envir = ESSR, keep.source = FALSE))
|
|
|
|
if(Rver >= "2.4.0")
|
|
attach(ESSR)
|
|
else if(!oldR) { ## borrow from older library()
|
|
e <- attach(NULL, name = "ESSR")
|
|
.Internal(lib.fixup(ESSR, e))
|
|
} else { ## if(oldR), use as in that old library():
|
|
.Internal(lib.fixup(ESSR, .GlobalEnv))
|
|
}
|
|
|
|
## BUILDESSR needs this:
|
|
invisible(ESSR)
|
|
}
|