From 5c34ed2e10f291794b10bc21a2a81bf0d8e609b6 Mon Sep 17 00:00:00 2001 From: Brad King <brad.king@kitware.com> Date: Tue, 5 Feb 2013 08:28:15 -0500 Subject: [PATCH] SystemTools: Do not abort with no current directory Remove the abort() from the internal Getcwd implementation. All callers check the return value already. Fix one caller's "else" behavior to avoid crashing. Change-Id: I3450c4942ffa108b2313877c9472820f6b465baa --- SystemTools.cxx | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/SystemTools.cxx b/SystemTools.cxx index 881c49a3..22bf193b 100644 --- a/SystemTools.cxx +++ b/SystemTools.cxx @@ -196,18 +196,16 @@ inline int Rmdir(const char* dir) } inline const char* Getcwd(char* buf, unsigned int len) { - const char* ret = _getcwd(buf, len); - if(!ret) + if(const char* ret = _getcwd(buf, len)) { - fprintf(stderr, "No current working directory.\n"); - abort(); - } - // make sure the drive letter is capital - if(strlen(buf) > 1 && buf[1] == ':') - { - buf[0] = toupper(buf[0]); + // make sure the drive letter is capital + if(strlen(buf) > 1 && buf[1] == ':') + { + buf[0] = toupper(buf[0]); + } + return ret; } - return ret; + return 0; } inline int Chdir(const char* dir) { @@ -245,13 +243,7 @@ inline int Rmdir(const char* dir) } inline const char* Getcwd(char* buf, unsigned int len) { - const char* ret = getcwd(buf, len); - if(!ret) - { - fprintf(stderr, "No current working directory\n"); - abort(); - } - return ret; + return getcwd(buf, len); } inline int Chdir(const char* dir) @@ -3089,7 +3081,7 @@ kwsys_stl::string SystemTools::CollapseFullPath(const char* in_path, } else { - // ?? + base_components.push_back(""); } } -- GitLab