diff options
Diffstat (limited to 'crawl-ref/source/chardump.cc')
-rw-r--r-- | crawl-ref/source/chardump.cc | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/crawl-ref/source/chardump.cc b/crawl-ref/source/chardump.cc index 51e2dc6d59..e6396ba90d 100644 --- a/crawl-ref/source/chardump.cc +++ b/crawl-ref/source/chardump.cc @@ -958,6 +958,18 @@ const char *hunger_level(void) (you.hunger < 11000) ? "full" : "completely stuffed"); } +static std::string morgue_directory() +{ + std::string dir = + !SysEnv.morgue_dir.empty()? SysEnv.morgue_dir : + SysEnv.crawl_dir ? SysEnv.crawl_dir : ""; + + if (!dir.empty() && !dir[dir.length() - 1] == FILE_SEPARATOR) + dir += FILE_SEPARATOR; + + return (dir); +} + static bool write_dump( const std::string &fname, const std::string &text, @@ -965,9 +977,7 @@ static bool write_dump( { bool succeeded = false; - std::string file_name; - if (SysEnv.crawl_dir) - file_name += SysEnv.crawl_dir; + std::string file_name = morgue_directory(); file_name += strip_filename_unsafe_chars(fname); |