yep sure can, I don't need the new bells and whistles in R 3.0.0.
I'd still have a look at line 23 in AFNIio.R since it returns true regardless of whether the R_io.so loads successfully or not.
For example consider the following:
R version 2.15.3 (2013-03-01) -- "Security Blanket"
Copyright (C) 2013 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> find.in.path <- function(file) { #Pretty much same as first.in.path
+ ff <- paste(strsplit(Sys.getenv('PATH'),':')[[1]],'/', file, sep='')
+ ff <- ff[lapply(ff,file.exists)==TRUE];
+ aa <- gsub('//','/',ff[1], fixed=TRUE)
+ if (is.na(aa)) aa <- NULL
+ return(aa)
+ }
> ll <- find.in.path('R_io.so')
> dd <- try(dyn.load(ll), silent=TRUE)
> dd
DLL name: R_io
Filename: /Volumes/opt/software/afni/R_io.so
Dynamic lookup: TRUE
> exists('dd')
[1] TRUE
#### Now try something I know doesn't exist and so will throw an error
> dd <- try(dyn.load(paste(ll, "1", sep="")), silent=TRUE)
> dd
[1] "Error in dyn.load(paste(ll, \"1\", sep = \"\")) : \n unable to load shared object '/Volumes/opt/software/afni/R_io.so1':\n dlopen(/Volumes/opt/software/afni/R_io.so1, 6): image not found\n"
attr(,"class")
[1] "try-error"
attr(,"condition")
<simpleError in dyn.load(paste(ll, "1", sep = "")): unable to load shared object '/Volumes/opt/software/afni/R_io.so1':
dlopen(/Volumes/opt/software/afni/R_io.so1, 6): image not found>
> exists('dd')
[1] TRUE