Compare commits

...

6 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
6687b34c07 Do not handle special case where buffer == NULL
If it is so, we have already crashed in isBranchSelected() above.

(and hopefully, buffer_ is never null these days).

Spotted by Coverity scan.
2024-09-09 15:52:01 +02:00
Jean-Marc Lasgouttes
ffde470363 Do not access current_view_ if it is NULL
Spotted by Coverity scan.
2024-09-09 15:35:57 +02:00
Jean-Marc Lasgouttes
3d323412ad Initialize client's name in main()
Initializing clientName at declaration time is not a good idea.

Spotted by Coverity scan.
2024-09-09 15:33:02 +02:00
Jean-Marc Lasgouttes
12d771c43f Fixup b8cdfd1e1d: fix thinko
Spotted by Coverity.
2024-09-09 15:19:25 +02:00
Jean-Marc Lasgouttes
ed291f0d4f Do not use lyxerr in from_ascii(char const *)
This function is used a lot to initialize static docstrings. This is
an issue in theory because lyxerr may not have been initialized in
time.

In practice of course, lyxerr will only be used when there is a
non-ascii character in the parameter, which is really not supposed to
happen.

This gets rid of 75 coverity reports.
2024-09-09 15:08:36 +02:00
Juergen Spitzmueller
f725abea05 adapt tex2lyx to 0beb790a6a 2024-09-09 08:29:24 +02:00
8 changed files with 33 additions and 12 deletions

View File

@ -495,7 +495,7 @@ docstring KeyMap::printBindings(FuncRequest const & func,
if (!firstone)
res << ", ";
res << key.print(format, untranslated);
firstone = true;
firstone = false;
}
return res.str();
}

View File

@ -460,8 +460,7 @@ int h(vector<docstring> const &)
}
docstring clientName =
from_ascii(to_string(::getppid()) + ">" + to_string(::getpid()));
docstring clientName;
int n(vector<docstring> const & arg)
{
@ -710,9 +709,12 @@ int LyXClientApp::run()
int main(int argc, char * argv[])
{
lyx::lyxerr.setStream(cerr);
using namespace lyx;
lyxerr.setStream(cerr);
cmdline::clientName =
from_ascii(to_string(::getppid()) + ">" + to_string(::getpid()));
lyx::LyXClientApp app(argc, argv);
LyXClientApp app(argc, argv);
return app.exec();
}

View File

@ -1902,7 +1902,8 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr)
// set default
arg = "templates";
if (arg != "templates" && arg != "examples") {
current_view_->message(_("Wrong argument. Must be 'examples' or 'templates'."));
if (current_view_)
current_view_->message(_("Wrong argument. Must be 'examples' or 'templates'."));
break;
}
lyx::dispatch(FuncRequest(LFUN_DIALOG_SHOW, "lyxfiles " + arg));

View File

@ -121,10 +121,6 @@ docstring const InsetBranch::buttonLabel(BufferView const &) const
if (decoration() == InsetDecoration::MINIMALISTIC)
return symb + inv_symb + params_.branch;
if (!buffer_) {
return symb + inv_symb + _("Branch (undefined): ")
+ params_.branch;
}
bool const has_layout =
buffer().params().documentClass().hasInsetLayout(layoutName());
if (has_layout) {

View File

@ -40,7 +40,7 @@ docstring const from_ascii(char const * ascii)
char_type *d = &s[0];
while (--n >= 0) {
d[n] = ascii[n];
LATTEST(static_cast<unsigned char>(ascii[n]) < 0x80);
LATTEST_STATIC(static_cast<unsigned char>(ascii[n]) < 0x80);
}
}
return s;

View File

@ -22,6 +22,7 @@
#include <boost/assert.hpp>
#include <iostream>
#ifdef LYX_CALLSTACK_PRINTING
#include <cstdio>
@ -55,6 +56,13 @@ void doAssert(char const * expr, char const * file, long line)
}
void doAssertStatic(char const * expr, char const * file, long line)
{
cerr << "ASSERTION " << expr << " VIOLATED IN " << file << ":" << line << endl;
BOOST_ASSERT(false);
}
docstring formatHelper(docstring const & msg,
char const * expr, char const * file, long line)
{

View File

@ -34,6 +34,11 @@ LATTEST(expr)
continue with the usual program flow, but failure of expr still means that
there is something that needs to be fixed.
LATTEST_STATIC(expr)
This is the same as macro LATTEST above, except
that it does not use lyxerr, so that it is suitable in static
variables initialization.
LASSERT(expr, escape)
This macro should be used when a failure of expr is not compatible with
continuing the ordinary program flow, but is something from which we can
@ -61,6 +66,7 @@ LAPPERR(expr)
void doAssert(char const * expr, char const * file, long line);
void doAssertStatic(char const * expr, char const * file, long line);
void doWarnIf(char const * expr, char const * file, long line);
void doBufErr(char const * expr, char const * file, long line);
void doAppErr(char const * expr, char const * file, long line);
@ -76,6 +82,9 @@ docstring printCallStack();
#define LATTEST(expr) \
if (expr) {} else { lyx::doAssert(#expr, __FILE__, __LINE__); }
#define LATTEST_STATIC(expr) \
if (expr) {} else { lyx::doAssertStatic(#expr, __FILE__, __LINE__); }
#define LASSERT(expr, escape) \
if (expr) {} else { lyx::doAssert(#expr, __FILE__, __LINE__); escape; }

View File

@ -4574,7 +4574,12 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
os << "reference \"";
os << known_refstyle_prefixes[where - known_refstyle_commands]
<< ":";
os << convert_literate_command_inset_arg(p.getArg('{', '}'))
string arg = p.getArg('{', '}');
// with refstyle, labels containing blanks are grouped
// remove the grouping
if (contains(arg, ' '))
arg = ltrim(rtrim(arg, "}"), "{");
os << convert_literate_command_inset_arg(arg)
<< "\"\n";
os << "plural \"" << plural << "\"\n";
os << "caps \"" << cap << "\"\n";