Mercurial > pub > dyncall > bindings
diff R/rdyncall/R/pack.R @ 0:0cfcc391201f
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:26:28 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/R/rdyncall/R/pack.R Thu Mar 19 22:26:28 2015 +0100 @@ -0,0 +1,23 @@ +# Package: rdyncall +# File: R/pack.R +# Description: (un-)packing functions for access to C aggregate (struct/union) data types. + +.pack <- function(x, offset, sigchar, value) +{ + char1 <- substr(sigchar,1,1) + if (char1 == "*") char1 <- "p" + .Call("pack", x, as.integer(offset), char1, value, PACKAGE="rdyncall" ) +} + +.unpack <- function(x, offset, sigchar) +{ + sigchar <- char1 <- substr(sigchar,1,1) + if (char1 == "*") sigchar <- "p" + x <- .Call("unpack", x, as.integer(offset), sigchar, PACKAGE="rdyncall" ) + if (char1 == "*") + { + attr(x,"basetype") <- substr(sigchar,2,nchar(sigchar)) + } + return(x) +} +