From: Braden M. <br...@us...> - 2006-12-05 21:16:28
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv6415/src/libopenvrml/openvrml Modified Files: 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.195 retrieving revision 1.196 diff -C2 -d -r1.195 -r1.196 *** browser.cpp 22 Nov 2006 00:05:18 -0000 1.195 --- browser.cpp 5 Dec 2006 21:16:21 -0000 1.196 *************** *** 3537,3544 **** # 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>(), '\\'), '/'); --- 3537,3550 ---- # 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>(), '\\'), '/'); *************** *** 3559,3563 **** } ! return relative_uri.resolve_against(uri(base_uri.str())); } } // namespace --- 3565,3570 ---- } ! const uri result = relative_uri.resolve_against(uri(base_uri.str())); ! return result; } } // namespace |