/******************************************************************************
-LyX has five different macros that can be used to make assertions. The behave
+LyX has five different macros that can be used to make assertions. They behave
the same way in devel mode: They assert. The differences between them are how
they behave in release mode.
This macro should be used when one just wants to test expr. If devel mode,
this will lead to an assertion. In release mode, we will simply continue. So
LATTEST should be used only if you know, in advance, that it will be safe to
- continue with the usual program flow, but failure of expr still means that
+ continue with the usual program flow, but failure of expr still means that
there is something that needs to be fixed.
LASSERT(expr, escape)
- This macro should be used when a failure of expr is not compatible with
+ 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
recover. This might mean simply returning early from some routine; it might
mean resetting some variables to values known to be sane; it might mean
- taking some other corrective action.
+ taking some other corrective action.
LWARNIF(expr)
This macro should be used when a failure of expr indicates that the current
This macro should be used when a failure of expr indicates a problem with a
Buffer or its related objects, e.g., a Cursor. In release mode, it throws a
BufferException, which will typically result in an emergency save of that
- particular Buffer. The msg will be displayed to the user and so should be
- internationalized.
+ particular Buffer.
LAPPERR(expr)
This macro should be used if a failure of expr is incompatible with LyX
continuing to operate at all. In release mode, this issues an ErrorException,
- which typically results in an emergency shutdown. The msg will be displayed
- to the user and so should be internationalized.
-
+ which typically results in an emergency shutdown.
+
******************************************************************************/
void doBufErr(char const * expr, char const * file, long line);
void doAppErr(char const * expr, char const * file, long line);
+void doAssertWithCallstack(bool value);
+
/// Print demangled callstack to stderr
-void printCallStack();
+docstring printCallStack();
} // namespace lyx