diff options
-rw-r--r-- | mixlib/mix_config.c | 6 | ||||
-rw-r--r-- | mixlib/mix_vm_command.c | 83 | ||||
-rw-r--r-- | mixlib/xmix_vm_command.h | 19 | ||||
-rw-r--r-- | mixlib/xmix_vm_handlers.c | 5 |
4 files changed, 58 insertions, 55 deletions
diff --git a/mixlib/mix_config.c b/mixlib/mix_config.c index cba9c80..c62d527 100644 --- a/mixlib/mix_config.c +++ b/mixlib/mix_config.c @@ -1,7 +1,7 @@ /* -*-c-*- -------------- mix_config.c : * Implementation of the functions declared in mix_config.h * ------------------------------------------------------------------ - * $Id: mix_config.c,v 1.10 2004/06/07 12:18:22 jao Exp $ + * $Id: mix_config.c,v 1.11 2004/06/23 10:46:17 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. * @@ -94,7 +94,7 @@ mix_config_new (const gchar *dirname, const gchar *filename) } autosave = mix_config_get (result, AUTOSAVE_KEY_); - result->autosave = autosave && !g_strcasecmp (autosave, AUTOSAVE_YES_); + result->autosave = autosave && !g_ascii_strcasecmp (autosave, AUTOSAVE_YES_); return result; } @@ -267,7 +267,7 @@ mix_config_set_history_file (mix_config_t *config, const gchar *path) } else { - gchar *base = g_dirname (config->filename); + gchar *base = g_path_get_dirname (config->filename); gchar *hf = g_strconcat (base, G_DIR_SEPARATOR_S, path, NULL); mix_config_update (config, HISTORY_KEY_, hf); g_free (hf); diff --git a/mixlib/mix_vm_command.c b/mixlib/mix_vm_command.c index d99bd6d..55da6a5 100644 --- a/mixlib/mix_vm_command.c +++ b/mixlib/mix_vm_command.c @@ -1,24 +1,24 @@ /* -*-c-*- -------------- mix_vm_command.c : * Implementation of the functions declared in mix_vm_command.h * ------------------------------------------------------------------ - * $Id: mix_vm_command.c,v 1.28 2002/04/10 23:39:40 jao Exp $ + * $Id: mix_vm_command.c,v 1.29 2004/06/23 10:46:17 jao Exp $ * ------------------------------------------------------------------ - * Copyright (C) 2001, 2002 Free Software Foundation, Inc. - * + * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * + * */ @@ -98,7 +98,7 @@ make_completions_ (void) { GList *cmds = NULL; gint k; - + GCompletion *completions = g_completion_new (NULL); for (k = 0; k < MIX_CMD_INVALID; ++k) cmds = g_list_append (cmds, (gpointer) mix_vm_command_to_string (k)); @@ -112,9 +112,9 @@ mix_vm_cmd_dispatcher_new (FILE *out_fd, /* output messages file */ { mix_vm_cmd_dispatcher_t *result = NULL; int k; - + /* g_return_val_if_fail (out_fd && err_fd, NULL); */ - + result = g_new (mix_vm_cmd_dispatcher_t, 1); result->result = TRUE; result->out = out_fd; @@ -127,24 +127,24 @@ mix_vm_cmd_dispatcher_new (FILE *out_fd, /* output messages file */ result->editor = NULL; result->assembler = NULL; result->eval = mix_eval_new (); - result->dump = mix_dump_context_new (out_fd, + result->dump = mix_dump_context_new (out_fd, MIX_SHORT_ZERO, MIX_SHORT_ZERO, MIX_DUMP_ALL); result->vm = mix_vm_new (); result->global_pre = result->global_post = NULL; - + for (k =0; k < MIX_CMD_INVALID; ++k) result->pre_hooks[k] = result->post_hooks[k] = NULL; result->config = NULL; - + for (k = 0; k < PRNO_; ++k) result->preds[k] = mix_predicate_new (k); - + result->mem_preds = g_hash_table_new (NULL, NULL); result->commands = g_hash_table_new (g_str_hash, g_str_equal); result->completions = make_completions_ (); - + return result; } @@ -167,7 +167,8 @@ mix_vm_cmd_dispatcher_new_with_config (FILE *out, FILE *err, val = mix_config_get_devices_dir (result->config); if (!val || !mix_stat_dir (val, "devices")) { - gchar *dirname = g_dirname (mix_config_get_filename (config)); + gchar *dirname = + g_path_get_dirname (mix_config_get_filename (config)); cmd_sddir_ (result, dirname); g_free (dirname); } @@ -189,7 +190,7 @@ mix_vm_cmd_dispatcher_new_with_config (FILE *out, FILE *err, } return result; } - + /* delete (does not close the fds in the constructor) */ static gboolean @@ -220,7 +221,7 @@ mix_vm_cmd_dispatcher_delete (mix_vm_cmd_dispatcher_t *dis) { const gchar *hfile = NULL; gint k; - + g_return_if_fail (dis != NULL); mix_eval_delete (dis->eval); mix_dump_context_delete (dis->dump); @@ -266,10 +267,10 @@ mix_vm_cmd_dispatcher_complete (const mix_vm_cmd_dispatcher_t *dis, { char *cp; GList *result; - + g_return_val_if_fail (dis != NULL, NULL); g_return_val_if_fail (cmd != NULL, NULL); - + cp = g_strdup (cmd); result = g_completion_complete (dis->completions, cp, prefix); g_free (cp); @@ -355,10 +356,10 @@ const gchar * mix_vm_cmd_dispatcher_get_src_file_path (const mix_vm_cmd_dispatcher_t *dis) { static gchar *PATH = NULL; - + const mix_vm_t *vm = mix_vm_cmd_dispatcher_get_vm (dis); const mix_src_file_t *f = mix_vm_get_src_file (vm); - + if (PATH) { g_free (PATH); @@ -367,7 +368,7 @@ mix_vm_cmd_dispatcher_get_src_file_path (const mix_vm_cmd_dispatcher_t *dis) if (f) PATH = mix_file_complete_name (mix_src_file_get_path (f), MIX_SRC_DEFEXT); - + return PATH; } @@ -385,14 +386,14 @@ mix_vm_cmd_dispatcher_pre_hook (mix_vm_cmd_dispatcher_t *dis, mix_vm_cmd_hook_t hook, gpointer data) { hook_ *phook; - + g_return_if_fail (dis != NULL); g_return_if_fail (cmd < MIX_CMD_INVALID); phook = g_new (hook_, 1); phook->func = hook; phook->data = data; - + dis->pre_hooks[cmd] = g_slist_append (dis->pre_hooks[cmd], phook); } @@ -402,14 +403,14 @@ mix_vm_cmd_dispatcher_post_hook (mix_vm_cmd_dispatcher_t *dis, mix_vm_cmd_hook_t hook, gpointer data) { hook_ *phook; - + g_return_if_fail (dis != NULL); g_return_if_fail (cmd < MIX_CMD_INVALID); phook = g_new (hook_, 1); phook->func = hook; phook->data = data; - + dis->post_hooks[cmd] = g_slist_append (dis->post_hooks[cmd], phook); } @@ -419,13 +420,13 @@ mix_vm_cmd_dispatcher_global_pre_hook (mix_vm_cmd_dispatcher_t *dis, gpointer data) { global_hook_ *phook; - + g_return_if_fail (dis != NULL); phook = g_new (global_hook_, 1); phook->func = hook; phook->data = data; - + dis->global_pre = g_slist_append (dis->global_pre, phook); } @@ -435,13 +436,13 @@ mix_vm_cmd_dispatcher_global_post_hook (mix_vm_cmd_dispatcher_t *dis, gpointer data) { global_hook_ *phook; - + g_return_if_fail (dis != NULL); phook = g_new (global_hook_, 1); phook->func = hook; phook->data = data; - + dis->global_post = g_slist_append (dis->global_post, phook); } @@ -451,10 +452,10 @@ mix_vm_cmd_dispatcher_dispatch (mix_vm_cmd_dispatcher_t *dis, mix_vm_command_t cmd, const gchar *arg) { g_return_val_if_fail (dis != NULL, FALSE); - + if (dis->global_pre) exec_global_hook_list_ (dis->global_pre, dis, cmd, arg); - + if (cmd < MIX_CMD_INVALID) { if (dis->pre_hooks[cmd]) @@ -494,10 +495,10 @@ mix_vm_cmd_dispatcher_dispatch_text (mix_vm_cmd_dispatcher_t *dis, { gchar *cp, *arg = ""; int k = 0; - + g_return_val_if_fail (dis != NULL, FALSE); g_return_val_if_fail (text != NULL, FALSE); - + cp = g_strdup (text); while (cp[k] && !isspace (cp[k])) ++k; if (cp[k]) @@ -508,7 +509,7 @@ mix_vm_cmd_dispatcher_dispatch_text (mix_vm_cmd_dispatcher_t *dis, } (void) mix_vm_cmd_dispatcher_dispatch_split_text (dis, cp, arg); - + g_free (cp); return dis->result; @@ -521,12 +522,12 @@ mix_vm_cmd_dispatcher_dispatch_split_text (mix_vm_cmd_dispatcher_t *dis, const gchar *arg) { mix_vm_command_info_t *info; - + g_return_val_if_fail (dis, FALSE); - + if (!command) return FALSE; if (!arg) arg = ""; - + info = (mix_vm_command_info_t *)g_hash_table_lookup (dis->commands, command); if (info) @@ -619,11 +620,11 @@ mix_vm_cmd_dispatcher_get_src_file_line (const mix_vm_cmd_dispatcher_t *dis, { const mix_src_file_t *file; g_return_val_if_fail (dis != NULL, NULL); - + file = mix_vm_get_src_file (dis->vm); - + if (line == 0 || file == NULL) return cr? "" : "\n"; - + if (cr) return mix_src_file_get_line (file, line); else diff --git a/mixlib/xmix_vm_command.h b/mixlib/xmix_vm_command.h index ce3ca5b..8ea1a76 100644 --- a/mixlib/xmix_vm_command.h +++ b/mixlib/xmix_vm_command.h @@ -1,24 +1,24 @@ /* -*-c-*- ---------------- xmix_vm_command.h : * Private type declarations form mix_vm_command * ------------------------------------------------------------------ - * $Id: xmix_vm_command.h,v 1.3 2001/09/16 22:39:41 jao Exp $ + * $Id: xmix_vm_command.h,v 1.4 2004/06/23 10:46:17 jao Exp $ * ------------------------------------------------------------------ - * Copyright (C) 2001 Free Software Foundation, Inc. - * + * Copyright (C) 2001, 2004 Free Software Foundation, Inc. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * + * */ @@ -31,6 +31,7 @@ #include <ctype.h> #include <errno.h> +#include "mix.h" #include "mix_device.h" #include "mix_vm.h" #include "mix_vm_dump.h" @@ -47,13 +48,13 @@ extern const gchar *ASM_KEY_; extern const gchar *LOGGING_KEY_; /* hooks */ -typedef struct +typedef struct { mix_vm_cmd_hook_t func; gpointer data; } hook_; -typedef struct +typedef struct { mix_vm_cmd_global_hook_t func; gpointer data; @@ -61,7 +62,7 @@ typedef struct enum {PRNO_ = MIX_PRED_MEM, HOOKNO_ = MIX_CMD_INVALID}; -struct mix_vm_cmd_dispatcher_t +struct mix_vm_cmd_dispatcher_t { mix_vm_t *vm; /* the virtual machine */ gboolean result; /* last command's outcome */ diff --git a/mixlib/xmix_vm_handlers.c b/mixlib/xmix_vm_handlers.c index a778750..a5ff3da 100644 --- a/mixlib/xmix_vm_handlers.c +++ b/mixlib/xmix_vm_handlers.c @@ -1,7 +1,7 @@ /* -*-c-*- -------------- xmix_vm_handlers.c : * Implementation of the functions declared in xmix_vm_handlers.h * ------------------------------------------------------------------ - * $Id: xmix_vm_handlers.c,v 1.8 2004/06/06 19:54:11 jao Exp $ + * $Id: xmix_vm_handlers.c,v 1.9 2004/06/23 10:46:17 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. * @@ -1276,7 +1276,8 @@ cmd_pbt_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg) gint k = 0, address; guint line; const mix_src_file_t *file = mix_vm_get_src_file (dis->vm); - char *name = file ? g_basename (mix_src_file_get_path (file)) : NULL; + char *name = + file ? g_path_get_basename (mix_src_file_get_path (file)) : NULL; const GSList *add = mix_vm_get_backtrace (dis->vm); while (add && (no == 0 || k < no)) |