From 8cecf0ae927eae1dfb5ab2eef78f55e8e162a7f9 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Sat, 7 Jul 2001 23:34:55 +0000 Subject: use of devdir command --- mixutils/mixvm_loop.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'mixutils/mixvm_loop.c') diff --git a/mixutils/mixvm_loop.c b/mixutils/mixvm_loop.c index 89a3953..ad49829 100644 --- a/mixutils/mixvm_loop.c +++ b/mixutils/mixvm_loop.c @@ -23,6 +23,10 @@ #include #include +#include +#include +#include +#include #include "mixvm_command.h" #ifdef HAVE_LIBHISTORY @@ -46,7 +50,9 @@ readline (char *prompt) /* A static variable for holding the line. */ static char *line_read = (char *)NULL; + static const char *PROMPT = N_("MIX > "); +static const char *CONFIG_FILE_ = "mixvm.config"; /* Read a string, and return a pointer to it. Returns NULL on EOF. */ static char * @@ -75,9 +81,31 @@ rl_gets () void mix_vmloop (const gchar *file, gboolean use_emacs) { - mixvm_cmd_init ((char *)file, use_emacs); + mix_config_t *config = mix_config_new (NULL, CONFIG_FILE_); + mix_config_set_autosave (config, TRUE); + mixvm_cmd_init (config, (char *)file, use_emacs); while ( mixvm_cmd_exec (rl_gets ()) ) ; + if (config) mix_config_delete (config); } - +/* run a program and exit */ +void +mix_vmrun (const gchar *code_file, gboolean dump) +{ + mix_vm_t *vm = mix_vm_new (); + if (!mix_vm_load_file (vm, code_file)) { + fprintf (stderr, _("Error loading %s file\n"), code_file); + return; + } + mix_vm_run (vm); + printf (_("** Execution time: %ld\n"), mix_vm_get_uptime (vm)); + if (dump) { + mix_dump_context_t *dc = mix_dump_context_new (MIX_DUMP_DEF_CHANNEL, + 0, 0, + MIX_DUMP_ALL_NOMEM); + mix_vm_dump (vm, dc); + mix_dump_context_delete (dc); + } + mix_vm_delete (vm); +} -- cgit v1.2.3