Mercurial > hg > octave-nkf
changeset 17510:7542f4496974
eliminate some macros in version.h
* version.cc: New file.
* Makefile.am (DIST_SRC, liboctinterp_la_SOURCES): Add it to the lists.
* version.cc, version.in.h (octave_www_statement,
octave_contrib_statement, octave_bugs_statement,
octave_name_version_and_copyright,
octave_name_version_copyright_copying_and_warranty,
octave_name_version_copyright_copying_warranty_and_bugs,
octave_startup_message): New functions.
* version.cc (octave_warranty_statement, format_url):
New static functions.
* version.in.h (OCTAVE_API_VERSION_NUMBER, OCTAVE_NAME_AND_VERSION,
OCTAVE_CONFIG_STATEMENT, OCTAVE_COPYING_STATEMENT,
X_OCTAVE_WARRANTY_STATEMENT, OCTAVE_WARRANTY_STATEMENT,
OCTAVE_WWW_STATEMENT, OCTAVE_CONTRIB_STATEMENT OCTAVE_BUGS_STATEMENT
OCTAVE_NAME_VERSION_AND_COPYRIGHT,
OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY,
X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY,
X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS,
OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS,
OCTAVE_STARTUP_MESSAGE): Delete macros.
Change all uses to new functions.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 28 Sep 2013 15:04:14 -0400 |
parents | d0fa3568eb5d |
children | 2298f8c7c615 |
files | libgui/src/main-window.cc libinterp/Makefile.am libinterp/corefcn/toplev.cc libinterp/octave.cc libinterp/version.cc libinterp/version.in.h |
diffstat | 6 files changed, 160 insertions(+), 62 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/main-window.cc +++ b/libgui/src/main-window.cc @@ -542,9 +542,11 @@ void main_window::show_about_octave (void) { - QString message = OCTAVE_STARTUP_MESSAGE; + std::string message + = octave_name_version_copyright_copying_warranty_and_bugs (true); - QMessageBox::about (this, tr ("About Octave"), message); + QMessageBox::about (this, tr ("About Octave"), + QString::fromStdString (message)); } void
--- a/libinterp/Makefile.am +++ b/libinterp/Makefile.am @@ -124,6 +124,7 @@ DIST_SRC = \ octave.cc \ + version.cc \ $(OCTAVE_VALUE_SRC) \ $(PARSE_TREE_SRC) \ $(PARSER_SRC) \ @@ -154,6 +155,7 @@ liboctinterp_la_SOURCES = \ octave.cc \ + version.cc \ $(OPERATORS_SRC) \ $(TEMPLATE_INST_SRC)
--- a/libinterp/corefcn/toplev.cc +++ b/libinterp/corefcn/toplev.cc @@ -810,8 +810,7 @@ { octave_value_list retval; - octave_stdout << "\n" \ - OCTAVE_NAME_VERSION_AND_COPYRIGHT "\n\ + octave_stdout << "\n" << octave_name_version_and_copyright () << "\n\ \n\ GNU Octave free software; you can redistribute it and/or modify\n\ it under the terms of the GNU General Public License as published by\n\
--- a/libinterp/octave.cc +++ b/libinterp/octave.cc @@ -516,7 +516,8 @@ static void verbose_usage (void) { - std::cout << OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY "\n\ + std::cout << octave_name_version_copyright_copying_and_warranty () + << "\n\ \n\ Usage: octave [options] [FILE]\n\ \n\ @@ -556,11 +557,12 @@ FILE Execute commands from FILE. Exit when done\n\ unless --persist is also specified.\n\ \n" -OCTAVE_WWW_STATEMENT "\n\ -\n" -OCTAVE_CONTRIB_STATEMENT "\n\ -\n" -OCTAVE_BUGS_STATEMENT "\n"; + << octave_www_statement () + << "\n\n" + << octave_contrib_statement () + << "\n\n" + << octave_bugs_statement () + << "\n"; exit (0); } @@ -577,7 +579,8 @@ static void print_version_and_exit (void) { - std::cout << OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS "\n"; + std::cout << octave_name_version_copyright_copying_warranty_and_bugs () + << "\n"; exit (0); } @@ -941,7 +944,7 @@ octave_execute_interpreter (void) { if (! inhibit_startup_message) - std::cout << OCTAVE_STARTUP_MESSAGE "\n" << std::endl; + std::cout << octave_startup_message () << "\n" << std::endl; execute_startup_files ();
new file mode 100644 --- /dev/null +++ b/libinterp/version.cc @@ -0,0 +1,131 @@ +/* + +Copyright (C) 2013 John W. Eaton + +This file is part of Octave. + +Octave 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 3 of the License, or (at your +option) any later version. + +Octave 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 Octave; see the file COPYING. If not, see +<http://www.gnu.org/licenses/>. + +*/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <string> + +#include "defaults.h" +#include "version.h" + +static std::string +octave_warranty_statement (const std::string& extra_info = std::string ()) +{ + return "There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or\n\ +FITNESS FOR A PARTICULAR PURPOSE." + + extra_info; +} + +static std::string +format_url (bool html, const std::string& url) +{ + return html ? "<a href=\"" + url + "\">" + url + "</a>" : url; +} + +std::string +octave_www_statement (bool html) +{ + return "Additional information about Octave is available at " + + format_url (html, "http://www.octave.org."); +} + +std::string +octave_contrib_statement (bool html) +{ + return "Please contribute if you find this software useful.\n\ +For more information, visit " + + format_url (html, "http://www.octave.org/get-involved.html"); +} + +std::string +octave_bugs_statement (bool html) +{ + return "Read " + format_url (html, "http://www.octave.org/bugs.html") + + " to learn how to submit bug reports."; +} + +std::string +octave_name_version_and_copyright (void) +{ + // The GNU coding standards say that on the first line printed by + // --version, the version number should follow the last space on the + // line. + + return "GNU Octave, version " OCTAVE_VERSION "\n" OCTAVE_COPYRIGHT; +} + +std::string +octave_name_version_copyright_copying_and_warranty + (bool html, const std::string& extra_info) +{ + std::string br = html ? "<br>\n" : "\n"; + std::string sep = html ? "\n</p>\n<p>\n" : "\n\n"; + + return octave_name_version_and_copyright () + + br + + "This is free software; see the source code for copying conditions." + + br + + octave_warranty_statement (extra_info) + + sep + + "Octave was configured for \"" OCTAVE_CANONICAL_HOST_TYPE "\"."; +} + +std::string +octave_name_version_copyright_copying_warranty_and_bugs + (bool html, const std::string& extra_info) +{ + std::string sep = html ? "\n</p>\n<p>\n" : "\n\n"; + + std::string msg; + + if (html) + msg = "<p>\n"; + + msg += octave_name_version_copyright_copying_and_warranty (html, extra_info) + + sep + + octave_www_statement (html) + + sep + + octave_contrib_statement (html) + + sep + + octave_bugs_statement (html) + + (html ? "\n</p>" : ""); + + return msg; +} + +std::string +octave_startup_message (bool html) +{ + std::string msg + = octave_name_version_copyright_copying_warranty_and_bugs + (html, " For details, type 'warranty'."); + + msg += (html ? "<p>\n" : "\n"); + + msg += "For information about changes from previous versions, type 'news'."; + + msg += (html ? "\n</p>" : ""); + + return msg; +}
--- a/libinterp/version.in.h +++ b/libinterp/version.in.h @@ -26,67 +26,28 @@ #define OCTAVE_VERSION %OCTAVE_VERSION% -#define OCTAVE_API_VERSION_NUMBER %OCTAVE_API_VERSION_NUMBER% - #define OCTAVE_API_VERSION %OCTAVE_API_VERSION% #define OCTAVE_RELEASE_DATE %OCTAVE_RELEASE_DATE% #define OCTAVE_COPYRIGHT %OCTAVE_COPYRIGHT% -// This is the first line printed by --version. The GNU coding -// standards say that the version number should follow the last space -// on the line. - -#define OCTAVE_NAME_AND_VERSION "GNU Octave, version " OCTAVE_VERSION +extern std::string octave_www_statement (bool html = false); -#define OCTAVE_CONFIG_STATEMENT \ - "Octave was configured for \"" OCTAVE_CANONICAL_HOST_TYPE "\"." - -#define OCTAVE_COPYING_STATEMENT \ - "This is free software; see the source code for copying conditions." +extern std::string octave_contrib_statement (bool html = false); -#define X_OCTAVE_WARRANTY_STATEMENT(ARG) \ - "There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or\n\ -FITNESS FOR A PARTICULAR PURPOSE." ARG - -#define OCTAVE_WARRANTY_STATEMENT \ - X_OCTAVE_WARRANTY_STATEMENT ("") +extern std::string octave_bugs_statement (bool html = false); -#define OCTAVE_WWW_STATEMENT \ - "Additional information about Octave is available at http://www.octave.org." - -#define OCTAVE_CONTRIB_STATEMENT \ - "Please contribute if you find this software useful.\n\ -For more information, visit http://www.octave.org/get-involved.html" +extern std::string octave_name_version_and_copyright (void); -#define OCTAVE_BUGS_STATEMENT \ - "Read http://www.octave.org/bugs.html to learn how to submit bug reports." - -#define OCTAVE_NAME_VERSION_AND_COPYRIGHT \ - OCTAVE_NAME_AND_VERSION "\n" \ - OCTAVE_COPYRIGHT - -#define OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY \ - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY("") \ +extern std::string +octave_name_version_copyright_copying_and_warranty + (bool html = false, const std::string& extra_info = std::string ()); -#define X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY(ARG) \ - OCTAVE_NAME_VERSION_AND_COPYRIGHT "\n" \ - OCTAVE_COPYING_STATEMENT "\n" \ - X_OCTAVE_WARRANTY_STATEMENT (ARG) "\n\n" \ - OCTAVE_CONFIG_STATEMENT +extern std::string +octave_name_version_copyright_copying_warranty_and_bugs + (bool html = false, const std::string& extra_info = std::string ()); -#define X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS(ARG) \ - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY(ARG) "\n\n" \ - OCTAVE_WWW_STATEMENT "\n\n" \ - OCTAVE_CONTRIB_STATEMENT "\n\n" \ - OCTAVE_BUGS_STATEMENT +extern std::string octave_startup_message (bool html = false); -#define OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS \ - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS ("") - -#define OCTAVE_STARTUP_MESSAGE \ - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS \ - (" For details, type 'warranty'.") "\n\n" \ - "For information about changes from previous versions, type 'news'." #endif