This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: how can I stop Windows setting HOME?


anadem wrote:

Larry Hall (Cygwin) wrote:
Adam Thompson wrote:
2008/6/6 Adam Thompson <adwulf AT gmail DOT com>:
2008/6/6 anadem <anadem AT gmail DOT com>:
Is there any way to permanently unset the HOME env-var in Windows? I
could
run a batch file at startup but afaik that would not be a systemwide
removal
of HOME.

I do not think this is a Windows issue.

Generally speaking, you're right that Windows doesn't set HOME but
rather HOMEDRIVE and HOMEPATH.  If HOME is getting set in the Windows
environment, something else that's installed is setting it and Cygwin
is just going along with it because it's set in the environment.  If
it is not possible to figure out what is setting HOME for Windows, you
can unset it in cygwin.bat, or whatever mechanism Cygwin is started
with, as you noted.  But it would be better to find the source and
squash it.  And although you pointed at the right FAQ entry describing
the hierarchy of rules used for setting HOME within Cygwin's environment,
your interpretation is a bit off.  As the FAQ states, HOME is determined
by one of the following in order of decreasing priority:

    1. HOME from the Windows environment, translated to POSIX form.
    2. The entry in /etc/passwd
    3. HOMEDRIVE and HOMEPATH from the Windows environment
    4. /

Once one of these rules is fulfilled, the remainder are skipped.  So
if HOME is set in the Windows environment, Cygwin will use that (converted
to POSIX form).  If it's not and there's an '/etc/passwd' file with an
entry
for the current user, the home path specified there will be used.
Otherwise,
HOMEDRIVE and HOMEPATH will be used to define HOME in CYGWIN (again,
converted to POSIX form).  And, if for some reason none of these other
rules fire, HOME is set to '/'.

It is highly recommended that one let rule #2 fire, since '/etc/passwd' is
the source of the home path used by Cygwin's telnet, ssh, etc. Consistency
between these utilities and your default Cygwin shell/environment is
very likely to eliminate future brain strains. ;-)



Ah, yes, thanks all, it's possibly MKS Toolset. Now if only I can figure out
HOW it's doing it. There's no autoexec and nothing in Startup. Maybe I'll just adjust
cygwin.bat (plus warn co-workers to unset $HOME before installing cygwin,
and give my strained brain a warm bath.)

On machines I have access to running MKS, I see HOME set to %HOMEDRIVE%%HOMEPATH%. It also sets other environment variables like SHELL, TERM, TERMCAP, TERMINFO, etc. I find these in under System->Advanced->Environment Variables. Looking at two different machines, at least one of which I didn't customize at all, shows me these variables defined here. I'm not sure why you wouldn't see them on your end. But MKS is definitely one source of these variables.

--
Larry Hall                              http://www.rfk.com
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
216 Dalton Rd.                          (508) 893-9889 - FAX
Holliston, MA 01746

_____________________________________________________________________

A: Yes.
> Q: Are you sure?
>> A: Because it reverses the logical flow of conversation.
>>> Q: Why is top posting annoying in email?

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]