diff options
Diffstat (limited to 'mixlib')
| -rw-r--r-- | mixlib/xmix_vm_handlers.c | 100 | 
1 files changed, 50 insertions, 50 deletions
| diff --git a/mixlib/xmix_vm_handlers.c b/mixlib/xmix_vm_handlers.c index 7a6c3d1..4d0285f 100644 --- a/mixlib/xmix_vm_handlers.c +++ b/mixlib/xmix_vm_handlers.c @@ -1,24 +1,24 @@  /* -*-c-*- -------------- xmix_vm_handlers.c :   * Implementation of the functions declared in xmix_vm_handlers.h   * ------------------------------------------------------------------ - * $Id: xmix_vm_handlers.c,v 1.6 2002/04/09 23:54:32 jao Exp $ + * $Id: xmix_vm_handlers.c,v 1.7 2003/01/11 22:43:13 jao Exp $   * ------------------------------------------------------------------ - * Copyright (C) 2001, 2002 Free Software Foundation, Inc. - *   + * Copyright (C) 2001, 2002, 2003 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. - *   + *   */ @@ -37,25 +37,25 @@ mix_vm_command_info_t commands_[] = {    { "pasm", cmd_pasm_, N_("Print the compile command"), "pasm"},    { "sasm", cmd_sasm_, N_("Set the compile command"),      "sasm COMMAND (e.g. mixasm -g -l %s)"}, -  { "run", cmd_run_, N_("Run loaded or given MIX code file"),  +  { "run", cmd_run_, N_("Run loaded or given MIX code file"),      "run [FILENAME]"}, -  { "next", cmd_next_, N_("Execute next instruction(s)"),  +  { "next", cmd_next_, N_("Execute next instruction(s)"),      "next [NO_OF_INS]"},    { "pstat", cmd_pstat_, N_("Print current vm status"), "pstat"},    { "pc", cmd_pc_, N_("Print program counter value"), "pc" },    { "psym", cmd_psym_, N_("Print symbol value"), "psym [SYMBOLNAME]"}, -  { "preg", cmd_preg_, N_("Print register value"),  +  { "preg", cmd_preg_, N_("Print register value"),      "preg [A | X | J | I[1-6]]"}, -  { "pflags", cmd_pflags_, N_("Print comparison and overflow flags"),  +  { "pflags", cmd_pflags_, N_("Print comparison and overflow flags"),      "pflags"},    { "pall", cmd_pall_, N_("Print all registers and flags"), "pall"}, -  { "pmem", cmd_pmem_, N_("Print memory contents in address range"),  +  { "pmem", cmd_pmem_, N_("Print memory contents in address range"),      "pmem FROM[-TO]"}, -  { "sreg", cmd_sreg_, N_("Set register value"),  -    "preg A | X | J | I[1-6] VALUE"}, +  { "sreg", cmd_sreg_, N_("Set register value"), +    "sreg A | X | J | I[1-6] VALUE"},    { "scmp", cmd_scmp_, N_("Set comparison flag value"), "scmp L | E | G"},    { "sover", cmd_sover_, N_("Set overflow flag value"), "sover T | F" }, -  { "smem", cmd_smem_, N_("Set memory contents in given address"),  +  { "smem", cmd_smem_, N_("Set memory contents in given address"),      "smem ADDRESS VALUE"},    { "ssym", cmd_ssym_, N_("Set a symbol\'s value"), "ssym SYMBOL WEXPR"},    { "sbp", cmd_sbp_, N_("Set break point at given line"), "sbp LINENO"}, @@ -107,7 +107,7 @@ trace_ (mix_vm_cmd_dispatcher_t *dis)  {    enum {BUFFER_LEN = 128};    static gchar STRINS[BUFFER_LEN]; -   +    if (wants_logs_ (dis))      {        const mix_src_file_t *file = mix_vm_get_src_file (dis->vm); @@ -117,13 +117,13 @@ trace_ (mix_vm_cmd_dispatcher_t *dis)        mix_ins_t fins;        mix_word_to_ins_uncheck (ins, fins);        mix_ins_to_string_in_buffer (&fins, STRINS, BUFFER_LEN); -       +        if (file != NULL)  	{  	  gulong b = mix_vm_get_break_lineno (dis->vm);  	  if (b > 0) line = mix_src_file_get_line (file, b);  	} -       +        log_message_ (dis, "%d: [%-15s]\t%s", (gint)loc, STRINS, line);      }  } @@ -230,7 +230,7 @@ cmd_load_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)    if (wants_logs_ (dis))      log_message_ (dis, _("Program loaded. Start address: %d"),  		  mix_vm_get_prog_count (dis->vm)); -   +    dis->laptime = dis->progtime = 0;    return TRUE;  } @@ -288,11 +288,11 @@ cmd_compile_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)  gboolean  cmd_run_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)  { -  if (arg != NULL && *arg != '\0' && cmd_load_ (dis, arg) != TRUE)  +  if (arg != NULL && *arg != '\0' && cmd_load_ (dis, arg) != TRUE)      return FALSE; -   +    if (mix_vm_is_halted (dis->vm)) cmd_load_ (dis, dis->program); -     +    if (wants_logs_ (dis)) log_message_ (dis, _("Running ..."));    switch (run_and_trace_ (dis)) @@ -306,7 +306,7 @@ cmd_run_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)  	  gulong line = mix_vm_get_break_lineno (dis->vm);  	  if (line != 0)  	    log_message_ -	      (dis, _("... stopped: breakpoint at line %ld (address %d)"),  +	      (dis, _("... stopped: breakpoint at line %ld (address %d)"),  	       line, mix_vm_get_prog_count (dis->vm));  	  else  	    log_message_ (dis, _("... stopped: breakpoint at address %d"), @@ -359,7 +359,7 @@ cmd_next_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)      }    if (mix_vm_is_halted (dis->vm)) cmd_load_ (dis, dis->program); -     +    while ( ins_no-- > 0 )      {        if (dis->trace) trace_ (dis); @@ -414,7 +414,7 @@ cmd_psym_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)        mix_symbol_table_print (table, MIX_SYM_ROWS, dis->out, TRUE);        result = TRUE;      } -       +    return result;  } @@ -443,7 +443,7 @@ cmd_preg_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)  	  {  	    static gint32 opt[] = { MIX_DUMP_rI1, MIX_DUMP_rI2,  				    MIX_DUMP_rI3, MIX_DUMP_rI4, -				    MIX_DUMP_rI5, MIX_DUMP_rI6  +				    MIX_DUMP_rI5, MIX_DUMP_rI6  	    };  	    int i = arg[1] - '1';  	    if ( i < 0 || i > 5 ) @@ -486,7 +486,7 @@ cmd_pmem_ (mix_vm_cmd_dispatcher_t *dis, const gchar *carg)    int i = 0;    gboolean error = FALSE;    gchar *arg = NULL; -   +    if ( strlen (carg) == 0 )      {        log_error_ (dis, _("Missing memory address")); @@ -510,14 +510,14 @@ cmd_pmem_ (mix_vm_cmd_dispatcher_t *dis, const gchar *carg)  	i++;        while (isspace (narg[i]))  	i++; -      if (narg[i] != '\0')  +      if (narg[i] != '\0')  	error = TRUE; -      else  +      else  	end = atol (narg);      }    else      error = TRUE; -   +    if (error)      {        log_error_ (dis, _("Invalid argument: %s"), arg); @@ -545,7 +545,7 @@ cmd_sreg_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)    char reg = arg[0];    gboolean ok = TRUE;    long value; -   +    i = (reg == 'I') ? 2 : 1;    ok = strlen (arg) > 2 && isspace (arg[i]);    if (ok) @@ -576,7 +576,7 @@ cmd_sreg_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)  	      case 'I':  		{  		  guint k = arg[1] - '0'; -		  if ( k < 7 )  +		  if ( k < 7 )  		    mix_vm_set_rI (dis->vm, k, mix_short_new (value));  		  else  		    ok = FALSE; @@ -591,7 +591,7 @@ cmd_sreg_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)      {        log_error_ (dis, _("Invalid argument: %s"), arg);      } -     +    return ok;  } @@ -617,7 +617,7 @@ cmd_scmp_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)      {        log_error_ (dis, _("Invalid argument: %s"), arg);      } -   +    return ok;  } @@ -640,7 +640,7 @@ cmd_sover_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)      {        log_error_ (dis, _("Invalid argument: %s"), arg);      } -   +    return ok;  } @@ -652,7 +652,7 @@ cmd_smem_ (mix_vm_cmd_dispatcher_t *dis, const gchar *carg)    glong value = 0;    int k = 0;    gchar *arg = NULL; -   +    if (ok)      {        arg = g_strdup (carg); @@ -682,7 +682,7 @@ cmd_smem_ (mix_vm_cmd_dispatcher_t *dis, const gchar *carg)        log_error_ (dis, _("Invalid argument: %s"), arg);      }    if (arg) g_free (arg); -   +    return ok;  } @@ -859,7 +859,7 @@ cmd_weval_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)        log_error_ (dis, _("Missing expression"));        return FALSE;      } -   +    if (mix_eval_expression_with_loc (dis->eval, arg,  				    mix_vm_get_prog_count (dis->vm)) ==        MIX_EVAL_OK) @@ -891,7 +891,7 @@ cmd_w2d_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)        log_error_ (dis, _("Missing expression"));        return FALSE;      } -  else  +  else      {        gchar *cp = g_strdup (arg), *a = cp;        mix_byte_t bytes[5] = {0, 0, 0, 0, 0}; @@ -914,7 +914,7 @@ cmd_w2d_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)  	      b = strtok (NULL, " \t");  	    }  	} -      if (success)  +      if (success)  	{  	  if (strtok (NULL, "\t") != NULL)  	    { @@ -930,7 +930,7 @@ cmd_w2d_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)  	    }  	}        g_free (cp); -   +        return success;      }  } @@ -954,7 +954,7 @@ cmd_strace_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)        dis->trace = FALSE;        if (dis->config) mix_config_update (dis->config, TRACING_KEY_, OFF);      } -  else  +  else      log_error_ (dis, _("Wrong argument: "), arg);    return TRUE;  } @@ -978,11 +978,11 @@ cmd_stime_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)        dis->printtime = FALSE;        if (dis->config) mix_config_update (dis->config, TIMING_KEY_, OFF);      } -  else  +  else      log_error_ (dis, _("Wrong argument: "), arg);    return TRUE;  } -   +  gboolean  cmd_ptime_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)  { @@ -1058,7 +1058,7 @@ static mix_predicate_type_t  get_reg_pred_ (const gchar *arg)  {    mix_predicate_type_t pred = INVALID_REG_; -   +    switch (*arg)      {      case 'A': @@ -1302,7 +1302,7 @@ cmd_slog_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)        dis->log_msg = FALSE;        if (dis->config) mix_config_update (dis->config, LOGGING_KEY_, OFF);      } -  else  +  else      log_error_ (dis, _("Wrong argument: "), arg);    return TRUE;  } @@ -1338,19 +1338,19 @@ cmd_pline_ (mix_vm_cmd_dispatcher_t *dis, const gchar *arg)        log_error_ (dis, _("Invalid argument"));        return FALSE;      } -   +    if (line == 0)      line = mix_vm_cmd_dispatcher_get_src_file_lineno (dis); -   +    if (line == 0)      txt = "No such line (debug info not available)\n";    else      txt = mix_vm_cmd_dispatcher_get_src_file_line (dis, line, FALSE); -   +    if (txt == NULL || strlen (txt) == 0) txt = "No such line\n"; -   +    fprintf (dis->out, "Line %ld: %s\n", line, txt); -	 +    return TRUE;  } | 
