From: Scott Cantor Date: Thu, 7 Jun 2012 01:56:04 +0000 (+0000) Subject: Workaround for missing APPDATA on Windows XP X-Git-Tag: 1.5.0~14 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-xmltooling.git;a=commitdiff_plain;h=4fd97a9fce699269ef44adf0ff64985742cd8d10 Workaround for missing APPDATA on Windows XP --- diff --git a/xmltooling/util/PathResolver.cpp b/xmltooling/util/PathResolver.cpp index 4ca48ec..f6e3ec7 100644 --- 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) { + // 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))