diff --git a/R/has-devel.r b/R/has-devel.r index 02678e88d..fbd0b4726 100644 --- a/R/has-devel.r +++ b/R/has-devel.r @@ -1,6 +1,6 @@ #' Check if you have a development environment installed. #' -#' Thanks to the suggestion of Simon Urbanek. +#' Thanks to the suggestion of Simon Urbanek. #' #' @return TRUE if your development environment is correctly set up, otherwise #' returns an error. @@ -9,17 +9,17 @@ #' has_devel() has_devel <- function() { foo_path <- file.path(tempdir(), "foo.c") - + cat("void foo(int *bar) { *bar=1; }\n", file = foo_path) on.exit(unlink(foo_path)) - + R("CMD SHLIB foo.c", tempdir()) dylib <- file.path(tempdir(), paste("foo", .Platform$dynlib.ext, sep='')) on.exit(unlink(dylib), add = TRUE) - - dyn.load(dylib) + + dll <- dyn.load(dylib) on.exit(dyn.unload(dylib), add = TRUE) - stopifnot(do.call(".C", list("foo",0L))[[1]] == 1L) + stopifnot(.C(dll$foo, 0L)[[1]] == 1L) TRUE }