From f10c25816761c8e4f9bddf85c76a2022ff9730f9 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 23 Jul 2009 08:10:02 -0400 Subject: [PATCH] BUG: Fix get_filename_component ABSOLUTE mode This teaches the command to recognize full windows paths when built on UNIX. CollapseFullPath knows when the input path is relative better than FileIsFullPath because the latter is only meant for paths from the host platform. --- Source/cmGetFilenameComponentCommand.cxx | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/Source/cmGetFilenameComponentCommand.cxx b/Source/cmGetFilenameComponentCommand.cxx index 8502e5738..091b065fd 100644 --- a/Source/cmGetFilenameComponentCommand.cxx +++ b/Source/cmGetFilenameComponentCommand.cxx @@ -78,21 +78,11 @@ bool cmGetFilenameComponentCommand else if (args[2] == "ABSOLUTE" || args[2] == "REALPATH") { + // Collapse the path to its simplest form. // If the path given is relative evaluate it relative to the // current source directory. - if(!cmSystemTools::FileIsFullPath(filename.c_str())) - { - std::string fname = this->Makefile->GetCurrentDirectory(); - if(!fname.empty()) - { - fname += "/"; - fname += filename; - filename = fname; - } - } - - // Collapse the path to its simplest form. - result = cmSystemTools::CollapseFullPath(filename.c_str()); + result = cmSystemTools::CollapseFullPath( + filename.c_str(), this->Makefile->GetCurrentDirectory()); if(args[2] == "REALPATH") { // Resolve symlinks if possible