diff options
Diffstat (limited to 'mixutils')
| -rw-r--r-- | mixutils/mixasm.c | 6 | ||||
| -rw-r--r-- | mixutils/mixvm.c | 21 | ||||
| -rw-r--r-- | mixutils/mixvm_loop.c | 16 | 
3 files changed, 28 insertions, 15 deletions
diff --git a/mixutils/mixasm.c b/mixutils/mixasm.c index 3f21b02..4e682ef 100644 --- a/mixutils/mixasm.c +++ b/mixutils/mixasm.c @@ -1,9 +1,9 @@  /* -*-c-*- -------------- mixasm.c:   * Main function of mixasm, the mix assembler   * ------------------------------------------------------------------ - *  $Id: mixasm.c,v 1.3 2001/09/28 23:10:45 jao Exp $ + *  $Id: mixasm.c,v 1.4 2002/03/20 01:30:11 jao Exp $   * ------------------------------------------------------------------ - * Copyright (C) 2000, 2001 Free Software Foundation, Inc. + * Copyright (C) 2000, 2001, 2002 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 @@ -56,7 +56,7 @@ static struct option long_options_[] =  };  static const gchar *USAGE_ =  -N_("Usage: %s [-vhulg] [-o OUTPUT_FILE] [--version] [--help]\n" +N_("Usage: %s [-vhultg] [-o OUTPUT_FILE] [--version] [--help]\n"     "\t[--usage] [--debug] [--output=OUTPUT_FILE] [--list[=LIST_FILE]] file\n"); diff --git a/mixutils/mixvm.c b/mixutils/mixvm.c index 8c02095..4cb589f 100644 --- a/mixutils/mixvm.c +++ b/mixutils/mixvm.c @@ -1,9 +1,9 @@  /* -*-c-*- -------------- mixvm.c :   * Main function for mixvm, the mix vm simulator   * ------------------------------------------------------------------ - *  $Id: mixvm.c,v 1.6 2001/09/28 23:10:45 jao Exp $ + *  $Id: mixvm.c,v 1.7 2002/03/20 01:30:11 jao Exp $   * ------------------------------------------------------------------ - * Copyright (C) 2000, 2001 Free Software Foundation, Inc. + * Copyright (C) 2000, 2001, 2002 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 @@ -41,7 +41,7 @@ mix_vmloop (int argc, char *argv[], gboolean initfile,  	    const gchar *code_file, gboolean use_emacs);  extern void -mix_vmrun (const gchar *code_file, gboolean dump); +mix_vmrun (const gchar *code_file, gboolean dump, gboolean ptime);  enum {    VER_OPT = 'v', @@ -49,11 +49,12 @@ enum {    USAGE_OPT = 'u',    RUN_OPT = 'r',    DUMP_OPT = 'd', +  TIME_OPT = 't',    EMACS_OPT = 'e',	/* used by mixvm-gud only */    NOINIT_OPT = 'q'  }; -static const char *options_ = "vhurd"; /* no short opt for --emacs */ +static const char *options_ = "vhurdt"; /* no short opt for --emacs */  static struct option long_options_[] =  { @@ -62,6 +63,7 @@ static struct option long_options_[] =    {"usage", no_argument, 0, USAGE_OPT},    {"run", required_argument, 0, RUN_OPT},    {"dump", no_argument, 0, DUMP_OPT}, +  {"time", no_argument, 0, TIME_OPT},    /* pek: yo! */    {"emacs", no_argument, 0, EMACS_OPT},    {"noinit", no_argument, 0, NOINIT_OPT}, @@ -69,7 +71,8 @@ static struct option long_options_[] =  };  static const gchar *USAGE_ =  -N_("Usage: %s [-vhurdq] [--version] [--help] [--noinit] [--usage] [--run] [--dump] [MIX_FILE]\n"); +N_("Usage: %s [-vhurdqt] [--version] [--help] [--noinit] [--usage]" +   "\n\t[--run] [--dump] [--time] [MIX_FILE]\n");  int  main (int argc, char **argv) @@ -81,7 +84,8 @@ main (int argc, char **argv)    gboolean dump = FALSE;    gboolean emacs = FALSE;    gboolean initfile = TRUE; -       +  gboolean ptime = FALSE; +      setlocale (LC_ALL, "");    bindtextdomain (PACKAGE, LOCALEDIR);    textdomain (PACKAGE); @@ -109,6 +113,9 @@ main (int argc, char **argv)  	case DUMP_OPT:  	  dump = TRUE;  	  break; +	case TIME_OPT: +	  ptime = TRUE; +	  break;       	case '?':  	  /* getopt already handles the output of a warning message */  	  fprintf (stderr, _("(Try: %s -h)\n"), prog_name); @@ -134,7 +141,7 @@ main (int argc, char **argv)    mix_init_lib (); -  if (run) mix_vmrun(in, dump); +  if (run) mix_vmrun(in, dump, ptime);    else mix_vmloop (argc, argv, initfile, in, emacs);    mix_release_lib (); diff --git a/mixutils/mixvm_loop.c b/mixutils/mixvm_loop.c index 74ea8f8..a158427 100644 --- a/mixutils/mixvm_loop.c +++ b/mixutils/mixvm_loop.c @@ -1,9 +1,9 @@  /* -*-c-*- -------------- mixvm_loop.c :   * Implementation of mix vm command loop.   * ------------------------------------------------------------------ - *  $Id: mixvm_loop.c,v 1.7 2001/09/24 23:27:02 jao Exp $ + *  $Id: mixvm_loop.c,v 1.8 2002/03/20 01:30:11 jao Exp $   * ------------------------------------------------------------------ - * Copyright (C) 2000, 2001 Free Software Foundation, Inc. + * Copyright (C) 2000, 2001, 2002 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 @@ -127,12 +127,18 @@ mix_vmloop (int argc, char *argv[], gboolean initfile,  /* run a program and exit */  void -mix_vmrun (const gchar *code_file, gboolean dump)  +mix_vmrun (const gchar *code_file, gboolean dump, gboolean ptime)   { +  gchar *time_cmd = ptime? g_strdup("stime on") : g_strdup("stime off"); +  gchar *run_cmd = g_strdup("run"); +  gchar *dump_cmd = dump? g_strdup("pall") : NULL;    gboolean result;    init_mixvm_ (code_file, FALSE); -  result = mixvm_cmd_exec (g_strdup ("run")); -  if (result && dump) mixvm_cmd_exec (g_strdup ("pall")); +  result = mixvm_cmd_exec (time_cmd) && mixvm_cmd_exec (run_cmd); +  if (result && dump) mixvm_cmd_exec (dump_cmd);    mix_config_delete (config_); +  g_free(time_cmd); +  g_free(run_cmd); +  if (dump_cmd) g_free(dump_cmd);  }  | 
