[PATCH v3] Add a Windows-specific fallback to getenv("HOME");

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Johannes Schindelin <johannes.schindelin@xxxxxx>
Date: Wed, 2 Jun 2010 00:41:33 +0200

If HOME is not set, use $HOMEDRIVE$HOMEPATH

Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx>
Signed-off-by: Stepan Kasal <kasal@xxxxxx>
---

On Thu, Jun 05, 2014 at 10:32:44AM +0200, Torsten Bögershausen wrote:
> > +		strbuf_addf(&buf, "%s%s", getenv_cs("HOMEDRIVE"), getenv_cs("HOMEPATH"));
> should we have a NULL pointer check here?

You are right, of course.

> If HOMEDRIVE is set, but not HOMEPATH, we can fall back into the root of HOMEDRIVE:

Indeed, but it means setting homepath="\\";

Updated according to your comments.  Thanks,
	Stepan

 compat/mingw.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/compat/mingw.c b/compat/mingw.c
index a0e13bc..14af013 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -1181,6 +1181,17 @@ char *mingw_getenv(const char *name)
 		if (!result)
 			result = getenv_cs("TEMP");
 	}
+	if (!result && !strcmp(name, "HOME")) {
+		const char *homedrive = getenv_cs("HOMEDRIVE");
+		const char *homepath = getenv_cs("HOMEPATH");
+		if (homedrive) {
+			struct strbuf buf = STRBUF_INIT;
+			if (!homepath)
+				homepath = "\\";
+			strbuf_addf(&buf, "%s%s", homedrive, homepath);
+			result = strbuf_detach(&buf, NULL);
+		}
+	}
 	return result;
 }
 
-- 
2.0.0.9635.g0be03cb

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]