35 # include <sys/types.h>
56 : logger(
"ProfileManager", std::cerr)
94 message =
"Loaded profile: " + filename;
103 message =
"Failed to load profile: " + filename;
115 std::list<std::string> profiles;
131 if (! profilename.empty()) {
132 profiles.push_back(profilename);
138 for (std::list<std::string>::const_iterator it = profiles.begin();
139 it != profiles.end();
163 res = RegOpenKeyExA (HKEY_CURRENT_USER,
"Software\\Presage", 0,
166 if (res == ERROR_SUCCESS)
169 dst = (
char*) malloc (size);
171 res = RegQueryValueExA (reg_key,
"", 0, &type,
172 (LPBYTE) dst, &size);
173 if (res == ERROR_MORE_DATA && type == REG_SZ) {
174 char* tmp_dst = (
char*) realloc (dst, size);
175 if (tmp_dst != NULL) {
180 dst = (
char*) malloc (size);
186 res = RegQueryValueExA (reg_key,
"", 0,
191 if (type != REG_SZ || res != ERROR_SUCCESS)
203 RegCloseKey (reg_key);
219 const char* USERPROFILE =
"USERPROFILE";
220 char* value = getenv(USERPROFILE);
228 struct passwd *my_passwd;
231 my_passwd = getpwuid (me);
235 result = my_passwd->pw_dir;
239 # endif // HAVE_PWD_H
241 const char*
HOME =
"HOME";
242 char* value = getenv(HOME);
266 logger << ERROR <<
"Failed to save configuration to profile " <<
endl;