diff options
-rw-r--r-- | sim/common/ChangeLog | 6 | ||||
-rw-r--r-- | sim/common/sim-options.c | 22 | ||||
-rw-r--r-- | sim/common/sim-options.h | 4 |
3 files changed, 31 insertions, 1 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index e815aea..0b1c666 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,5 +1,11 @@ 2021-01-04 Mike Frysinger <vapier@gentoo.org> + * sim-options.c (standard_option_handler): Call sim_print_version. + (sim_print_version): New function. + * sim-options.h (sim_print_version): New prototype. + +2021-01-04 Mike Frysinger <vapier@gentoo.org> + * sim-config.c (print_sim_config): Rename to ... (sim_print_config): ... this. * sim-config.h: Likewise. diff --git a/sim/common/sim-options.c b/sim/common/sim-options.c index 3064dfc..1d8abda 100644 --- a/sim/common/sim-options.c +++ b/sim/common/sim-options.c @@ -388,7 +388,7 @@ standard_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt, break; case OPTION_VERSION: - sim_io_printf (sd, "GNU simulator %s%s\n", PKGVERSION, version); + sim_print_version (sd, is_command); if (STATE_OPEN_KIND (sd) == SIM_OPEN_STANDALONE) exit (0); break; @@ -817,6 +817,26 @@ sim_print_help (SIM_DESC sd, int is_command) } } +/* Print version information. */ + +void +sim_print_version (SIM_DESC sd, int is_command) +{ + sim_io_printf (sd, "GNU simulator %s%s\n", PKGVERSION, version); + + sim_io_printf (sd, "Copyright (C) 2021 Free Software Foundation, Inc.\n"); + + /* Following the copyright is a brief statement that the program is + free software, that users are free to copy and change it on + certain conditions, that it is covered by the GNU GPL, and that + there is no warranty. */ + + sim_io_printf (sd, "\ +License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>\ +\nThis is free software: you are free to change and redistribute it.\n\ +There is NO WARRANTY, to the extent permitted by law.\n"); +} + /* Utility of sim_args_command to find the closest match for a command. Commands that have "-" in them can be specified as separate words. e.g. sim memory-region 0x800000,0x4000 diff --git a/sim/common/sim-options.h b/sim/common/sim-options.h index 0f3f3c0..84eb3d8 100644 --- a/sim/common/sim-options.h +++ b/sim/common/sim-options.h @@ -141,6 +141,10 @@ SIM_RC sim_parse_args (SIM_DESC sd, char * const *argv); this function is called from the command line interpreter. */ void sim_print_help (SIM_DESC sd, int is_command); +/* Print version information for the program. IS_COMMAND is non-zero when + this function is called from the command line interpreter. */ +void sim_print_version (SIM_DESC sd, int is_command); + /* Try to parse the command as if it is an option, Only fail when totally unsuccessful */ SIM_RC sim_args_command (SIM_DESC sd, const char *cmd); |