projects
/
shibboleth
/
cpp-xmltooling.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fe5c0a2
)
Workaround for missing APPDATA on Windows XP
author
Scott Cantor
<cantor.2@osu.edu>
Thu, 7 Jun 2012 01:56:04 +0000
(
01:56
+0000)
committer
Scott Cantor
<cantor.2@osu.edu>
Thu, 7 Jun 2012 01:56:04 +0000
(
01:56
+0000)
xmltooling/util/PathResolver.cpp
patch
|
blob
|
history
diff --git
a/xmltooling/util/PathResolver.cpp
b/xmltooling/util/PathResolver.cpp
index
4ca48ec
..
f6e3ec7
100644
(file)
--- a/
xmltooling/util/PathResolver.cpp
+++ b/
xmltooling/util/PathResolver.cpp
@@
-104,6
+104,10
@@
const string& PathResolver::resolve(string& s, file_type_t filetype, const char*
#ifdef WIN32
// Check for possible environment variable(s).
if (s.find('%') != string::npos) {
#ifdef WIN32
// Check for possible environment variable(s).
if (s.find('%') != string::npos) {
+ // This is an ugly workaround for Windows XP, which doesn't support the APPDATA variable.
+ if (!getenv("APPDATA") && s.find("%APPDATA%") != string::npos) {
+ s.replace(s.find("%APPDATA%"), 9, "%ALLUSERSPROFILE%\\Application Data");
+ }
char expbuf[MAX_PATH + 2];
DWORD cnt = ExpandEnvironmentStrings(s.c_str(), expbuf, sizeof(expbuf));
if (cnt != 0 && cnt <= sizeof(expbuf))
char expbuf[MAX_PATH + 2];
DWORD cnt = ExpandEnvironmentStrings(s.c_str(), expbuf, sizeof(expbuf));
if (cnt != 0 && cnt <= sizeof(expbuf))