sim: common: add a version output helper w/copyright+license info

This mirrors the existing sim_print_help function, and the behavior
of all other GNU tools with their --version.
This commit is contained in:
Mike Frysinger 2021-01-03 02:52:11 -05:00
parent dbed468bcb
commit 19b1c38562
3 changed files with 31 additions and 1 deletions

View File

@ -1,3 +1,9 @@
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 ...

View File

@ -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

View File

@ -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);