From 4fd97a9fce699269ef44adf0ff64985742cd8d10 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Thu, 7 Jun 2012 01:56:04 +0000 Subject: [PATCH] Workaround for missing APPDATA on Windows XP --- xmltooling/util/PathResolver.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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)) -- 2.1.4