From fb2b83a19b6466b18892be348f90de2d6c2d0a58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Arroyo=20Torrens?= Date: Tue, 23 Aug 2016 21:17:05 +0200 Subject: icetime: support PREFIX expansion for win32 --- icetime/icetime.cc | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'icetime') diff --git a/icetime/icetime.cc b/icetime/icetime.cc index affc56d..252d820 100644 --- a/icetime/icetime.cc +++ b/icetime/icetime.cc @@ -276,8 +276,24 @@ void read_chipdb() { char buffer[1024]; - if (PREFIX[0] == '~' && PREFIX[1] == '/') - snprintf(buffer, 1024, "%s%s/share/icebox/chipdb-%s.txt", getenv("HOME"), PREFIX+1, config_device.c_str()); + if (PREFIX[0] == '~' && PREFIX[1] == '/') { + std::string homedir; +#ifdef _WIN32 + if (getenv("USERPROFILE") != nullptr) { + homedir += getenv("USERPROFILE"); + } + else { + if (getenv("HOMEDRIVE") != nullptr && + getenv("HOMEPATH") != nullptr) { + homedir += getenv("HOMEDRIVE"); + homedir += getenv("HOMEPATH"); + } + } +#else + homedir += getenv("HOME"); +#endif + snprintf(buffer, 1024, "%s%s/share/icebox/chipdb-%s.txt", homedir.c_str(), PREFIX+1, config_device.c_str()); + } else snprintf(buffer, 1024, "%s/share/icebox/chipdb-%s.txt", PREFIX, config_device.c_str()); -- cgit v1.2.3