aboutsummaryrefslogtreecommitdiffstats
path: root/libparc/parc/algol/parc_Environment.c
diff options
context:
space:
mode:
authorAngelo Mantellini <manangel@cisco.com>2019-02-05 08:50:26 +0100
committerAngelo Mantellini <manangel@cisco.com>2019-02-06 16:23:04 +0100
commit9f68541e0f55495d61dd9e583bec38740a247597 (patch)
tree55519e34159ac1eb691e080e4c1eab5b0e4847bd /libparc/parc/algol/parc_Environment.c
parentb77148ddc3def71e6c412c3afb5f1c20be2d77cd (diff)
[HICN-26] Windows compatibilty for libparc
Change-Id: I6ebff82a81a2bf42fa3bf210ff0e6e530ce21915 Signed-off-by: Angelo Mantellini <manangel@cisco.com>
Diffstat (limited to 'libparc/parc/algol/parc_Environment.c')
-rw-r--r--libparc/parc/algol/parc_Environment.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/libparc/parc/algol/parc_Environment.c b/libparc/parc/algol/parc_Environment.c
index 2955a139..2ca11b4d 100644
--- a/libparc/parc/algol/parc_Environment.c
+++ b/libparc/parc/algol/parc_Environment.c
@@ -13,15 +13,15 @@
* limitations under the License.
*/
-/**
- */
-#include <config.h>
-#include <sys/types.h>
-#include <pwd.h>
-#include <stdlib.h>
+#ifndef _WIN32
#include <unistd.h>
+#include <pwd.h>
+#endif
+#include <config.h>
+#include <sys/types.h>
+#include <stdlib.h>
#include <parc/algol/parc_Environment.h>
#include <parc/algol/parc_File.h>
@@ -35,11 +35,23 @@ parcEnvironment_GetHomeDirectory(void)
PARCFile *
parcEnvironment_HomeDirectory(void)
{
- char *path;
+#ifdef _WIN32
+ char *pValue;
+ size_t len;
+ errno_t err = _dupenv_s(&pValue, &len, "USERPROFILE");
+ if (err != 0) {
+ return parcFile_Create(pValue);
+ }
+ else {
+ return NULL;
+ }
+#else
+ char *path;
if ((path = getenv("HOME")) == NULL) {
path = getpwuid(getuid())->pw_dir;
}
-
return parcFile_Create(path);
+#endif
+
}