From: | "Andrew Dunstan" <andrew(at)dunslane(dot)net> |
---|---|
To: | <zirmen(at)shaw(dot)ca> |
Cc: | <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: psql \i handling ~ in specified file name |
Date: | 2003-12-21 15:22:23 |
Message-ID: | 1664.24.211.141.25.1072020143.squirrel@www.dunslane.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Zach Irmen said:
> "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
>> What happens if getenv("HOME") returns NULL?
>
> Yeah, the strdup fails. I'll take it out to fix that.
>
>> You also need to think about Windows
>
> Can I just ifndef WIN32 and not think about it? I'm not sure how that
> would work either.
>
If we are going to have a Windows port I don't think we should treat it as
a poor cousin.
This information is easily discoverable on MSDN in 5 minutes. The answer
is that you need to call NetUserGetInfo at level 11 to get a user's home
directory. See
http://msdn.microsoft.com/library/en-us/dnucmg/html/ucmgch09.asp and
http://msdn.microsoft.com/library/en-us/netmgmt/netmgmt/netusergetinfo.asp
(Thinks: using this requires linking with NetAPI32.dll - is that a legal
or practical problem for us?)
Also, I strongly recommend that the name be canonicalised - see initdb.c
for an example. Doing this reduces platform-specific code a lot. Windows
is quite able to handle filenames with a forward slash.
(Thinks again: when we have WIN32 done we need to trawl through the code
to try to abstract out as much as possible, so that people who
don't/won't/can't do Windows specific code won't have to bother.)
cheers
andrew
From | Date | Subject | |
---|---|---|---|
Next Message | Zach Irmen | 2003-12-21 20:54:40 | Re: psql \i handling ~ in specified file name |
Previous Message | Magnus Hagander | 2003-12-21 15:07:39 | Re: psql \i handling ~ in specified file name |