////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2013-2024 The Octave Project Developers
//
// See the file COPYRIGHT.md in the top-level directory of this
// distribution or .
//
// 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
// .
//
////////////////////////////////////////////////////////////////////////
#if defined (HAVE_CONFIG_H)
# include "config.h"
#endif
#include
#include "version.h"
static std::string
octave_warranty_statement (const std::string& extra_info = "")
{
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 ? R"()" + url + "" : url;
}
std::string
octave_www_statement (bool html)
{
return "Home page: "
+ format_url (html, "https://octave.org");
}
std::string
octave_contrib_statement (bool html)
{
return "Improve Octave: "
+ format_url (html, "https://octave.org/get-involved");
}
std::string
octave_bugs_statement (bool html)
{
return "Support resources: "
+ format_url (html, "https://octave.org/support");
}
std::string
octave_name_version_and_copyright (bool html)
{
// The GNU coding standards say that on the first line printed by
// --version, the version number should follow the last space on the
// line.
std::string br = (html ? "
\n" : "\n");
return "GNU Octave, version " OCTAVE_VERSION
+ br
+ OCTAVE_COPYRIGHT;
}
std::string
octave_name_version_copyright_copying_and_warranty
(bool html, const std::string& extra_info)
{
std::string br = (html ? "
\n" : "\n");
std::string sep = (html ? "\n
\n\n" : "\n\n");
return octave_name_version_and_copyright (html)
+ br
+ "This is free software; see the source code for copying conditions."
+ br
+ octave_warranty_statement (extra_info)
+ sep
+ R"(Octave was configured for ")"
+ OCTAVE_CANONICAL_HOST_TYPE
+ R"(".)";
}
std::string
octave_name_version_copyright_copying_warranty_and_bugs
(bool html, const std::string& extra_info)
{
std::string sep = (html ? "\n
\n\n" : "\n");
std::string msg =
(html ? "
\n" : "")
+ octave_name_version_copyright_copying_and_warranty (html, extra_info)
+ (html ? "" : "\n") + sep
+ octave_www_statement (html) + sep
+ octave_bugs_statement (html) + sep
+ octave_contrib_statement (html) + sep
+ (html ? "\n
" : "");
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 ? "\n" : "\n");
msg += "For changes from previous versions, type 'news'.";
msg += (html ? "\n
" : "");
return msg;
}