From: Braden M. <br...@us...> - 2006-12-05 21:15:22
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv5598/src/libopenvrml/openvrml Modified Files: Tag: OpenVRML-0_16-BRANCH browser.cpp Log Message: Fixed relative URI resolution on Windows. Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.190.2.3 retrieving revision 1.190.2.4 diff -C2 -d -r1.190.2.3 -r1.190.2.4 *** browser.cpp 17 Nov 2006 06:47:06 -0000 1.190.2.3 --- browser.cpp 5 Dec 2006 21:15:10 -0000 1.190.2.4 *************** *** 3535,3542 **** # ifdef _WIN32 std::vector<char> cwd_buf(_MAX_PATH); ! while (!_getcwd(&cwd_buf.front(), cwd_buf.size()) && errno == ERANGE) { cwd_buf.resize(cwd_buf.size() * 2); } ! std::replace_if(cwd_buf.begin(), cwd_buf.begin() + strlen(&cwd_buf.front()) + 1, std::bind2nd(std::equal_to<char>(), '\\'), '/'); --- 3535,3548 ---- # ifdef _WIN32 std::vector<char> cwd_buf(_MAX_PATH); ! // ! // Path must begin with a slash. _getcwd returns something that ! // begins with a drive letter. ! // ! cwd_buf[0] = '/'; ! while (!_getcwd(&cwd_buf.front() + 1, cwd_buf.size()) ! && errno == ERANGE) { cwd_buf.resize(cwd_buf.size() * 2); } ! std::replace_if(cwd_buf.begin() + 1, cwd_buf.begin() + strlen(&cwd_buf.front()) + 1, std::bind2nd(std::equal_to<char>(), '\\'), '/'); *************** *** 3557,3561 **** } ! return relative_uri.resolve_against(uri(base_uri.str())); } } // namespace --- 3563,3568 ---- } ! const uri result = relative_uri.resolve_against(uri(base_uri.str())); ! return result; } } // namespace |