]> git.siccegge.de Git - frida/frida.git/blobdiff - src/gui/widgets/ScriptingDock.cxx
Add guile scripting
[frida/frida.git] / src / gui / widgets / ScriptingDock.cxx
diff --git a/src/gui/widgets/ScriptingDock.cxx b/src/gui/widgets/ScriptingDock.cxx
new file mode 100644 (file)
index 0000000..b354570
--- /dev/null
@@ -0,0 +1,15 @@
+#include "ScriptingDock.hxx"
+
+void ScriptingDock::doEvaluate() {
+    QString text = line->text();
+    line->clear();
+    LOG4CXX_INFO(logger, "Evaluating String \"" << text.toStdString() << "\"");
+    browser->append(QString("> ") + text);
+    
+    SCM result_obj = scm_c_eval_string(text.toStdString().c_str());
+    SCM result_str = scm_object_to_string(result_obj, SCM_UNDEFINED);
+
+    SCM output = scm_get_output_string(guile_output_port);
+    browser->append(scm_to_locale_string(output));
+    browser->append(scm_to_locale_string(result_str));
+}