From ad57a17f48c897aa6e315a4391a5cb6b036ffe8d Mon Sep 17 00:00:00 2001 From: Giacomo Fiorin <giacomo.fiorin@gmail.com> Date: Mon, 24 Oct 2016 16:48:20 -0400 Subject: [PATCH] Add C-linkage wrapper for colvarscript (useful with ctypes) --- lib/colvars/colvarscript.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/lib/colvars/colvarscript.cpp b/lib/colvars/colvarscript.cpp index 86b52ac819..a43907b07d 100644 --- a/lib/colvars/colvarscript.cpp +++ b/lib/colvars/colvarscript.cpp @@ -14,6 +14,36 @@ colvarscript::colvarscript(colvarproxy *p) { } + +extern "C" { + + // Generic hooks; NAMD and VMD have Tcl-specific versions in the respective proxies + + int run_colvarscript_command(int argc, const char **argv) + { + colvarproxy *cvp = cvm::proxy; + if (!cvp) { + return -1; + } + if (!cvp->script) { + cvm::error("Called run_colvarscript_command without a script object initialized.\n"); + return -1; + } + return cvp->script->run(argc, argv); + } + + const char * get_colvarscript_result() + { + colvarproxy *cvp = cvm::proxy; + if (!cvp->script) { + cvm::error("Called run_colvarscript_command without a script object initialized.\n"); + return ""; + } + return cvp->script->result.c_str(); + } +} + + /// Run method based on given arguments int colvarscript::run(int argc, char const *argv[]) { -- GitLab