summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/libunix.cc
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-18 11:45:43 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-18 11:45:43 +0000
commit8f6cfc7dc436f084353cadb8ec1358257947eeea (patch)
treea79d211a16707895fcf659fbb914c5a4f8445148 /crawl-ref/source/libunix.cc
parent35b66c2f1cc59a4cb48419c10905d61197806f32 (diff)
downloadcrawl-ref-8f6cfc7dc436f084353cadb8ec1358257947eeea.tar.gz
crawl-ref-8f6cfc7dc436f084353cadb8ec1358257947eeea.zip
Limit crash handling recursion to being commented upon just once.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8544 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/libunix.cc')
-rw-r--r--crawl-ref/source/libunix.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/crawl-ref/source/libunix.cc b/crawl-ref/source/libunix.cc
index 4770ac961e..8c26e5842b 100644
--- a/crawl-ref/source/libunix.cc
+++ b/crawl-ref/source/libunix.cc
@@ -1145,12 +1145,17 @@ extern "C" {
/////////////////////////////////////////////////////////////////////////////
// Code for printing out debugging info on a crash.
////////////////////////////////////////////////////////////////////////////
-static int _crash_signal = 0;
+static int _crash_signal = 0;
+static int _recursion_depth = 0;
static void _crash_signal_handler(int sig_num)
{
if (crawl_state.game_crashed)
{
+ if (_recursion_depth > 0)
+ return;
+ _recursion_depth++;
+
fprintf(stderr, "Recursive crash." EOL);
std::string dir = (!Options.morgue_dir.empty() ? Options.morgue_dir :