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
|