From 3ec4a23f50e12b2e7d780543bc87744d1b4a00b4 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Tue, 21 Mar 2006 15:47:24 +0000
Subject: [PATCH] show the function in which the assert failure occured if the
 compiler supports it

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/app.tex | 11 +++++++----
 include/wx/app.h      | 13 +++++++++++--
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/docs/latex/wx/app.tex b/docs/latex/wx/app.tex
index b0ad4a4595..b96f27b08d 100644
--- a/docs/latex/wx/app.tex
+++ b/docs/latex/wx/app.tex
@@ -268,16 +268,16 @@ Returns 0 under X, and the wParam of the WM\_QUIT message under Windows.
 %%\helpref{wxWindow::OnCharHook}{wxwindowoncharhook}, \helpref{wxDialog::OnCharHook}{wxdialogoncharhook}
 
 
-\membersection{wxApp::OnAssert}\label{wxapponassert}
+\membersection{wxApp::OnAssertFailure}\label{wxapponassertfailure}
 
-\func{void}{OnAssert}{\param{const wxChar }{*file}, \param{int }{line}, \param{const wxChar }{*cond}, \param{const wxChar }{*msg}}
+\func{void}{OnAssertFailure}{\param{const wxChar }{*file}, \param{int }{line}, \param{const wxChar }{*func}, \param{const wxChar }{*cond}, \param{const wxChar }{*msg}}
 
 This function is called when an assert failure occurs, i.e. the condition
 specified in \helpref{wxASSERT}{wxassert} macro evaluated to {\tt false}.
 It is only called in debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) as
 asserts are not left in the release code at all.
 
-The base class version show the default assert failure dialog box proposing to
+The base class version shows the default assert failure dialog box proposing to
 the user to stop the program, continue or ignore all subsequent asserts.
 
 \wxheading{Parameters}
@@ -286,7 +286,10 @@ the user to stop the program, continue or ignore all subsequent asserts.
 
 \docparam{line}{the line number in this file where the assert occurred}
 
-\docparam{cond}{the condition of the failed assert in string form}
+\docparam{func}{the name of the function where the assert occurred, may be
+empty if the compiler doesn't support C99 \texttt{\_\_FUNCTION\_\_}}
+
+\docparam{cond}{the condition of the failed assert in text form}
 
 \docparam{msg}{the message specified as argument to 
 \helpref{wxASSERT\_MSG}{wxassertmsg} or \helpref{wxFAIL\_MSG}{wxfailmsg}, will
diff --git a/include/wx/app.h b/include/wx/app.h
index 8b813caa33..02e57755fa 100644
--- a/include/wx/app.h
+++ b/include/wx/app.h
@@ -245,13 +245,22 @@ public:
     // debugging support
     // -----------------
 
+#ifdef __WXDEBUG__
     // this function is called when an assert failure occurs, the base class
     // version does the normal processing (i.e. shows the usual assert failure
     // dialog box)
     //
-    // the arguments are the place where the assert occurred, the text of the
+    // the arguments are the location of the failed assert (func may be empty
+    // if the compiler doesn't support C99 __FUNCTION__), the text of the
     // assert itself and the user-specified message
-#ifdef __WXDEBUG__
+    virtual void OnAssertFailure(const wxChar *file,
+                                 int line,
+                                 const wxChar *func,
+                                 const wxChar *cond,
+                                 const wxChar *msg);
+
+    // old version of the function without func parameter, for compatibility
+    // only, override OnAssertFailure() in the new code
     virtual void OnAssert(const wxChar *file,
                           int line,
                           const wxChar *cond,
-- 
2.50.0

