Data directory with trailing [back]slash

From: "Magnus Hagander" <mha(at)sollentuna(dot)net>
To: "PgSql-Win32" <pgsql-hackers-win32(at)postgresql(dot)org>
Subject: Data directory with trailing [back]slash
Date: 2004-06-20 18:53:28
Message-ID: 6BCB9D8A16AC4241919521715F4D8BCE1716BA@algol.sollentuna.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers-win32 pgsql-patches

Hi!

It's not possible to start the postmaster on win32 with:
postmaster -D d:\pgdata\
or
postmaster -D d:/pgdata/

but it does work with
postmaster -D d:\pgdata
or
postmaster -D d:/pgdata/

This is because of the stat() call in postmaster.c in checkDataDir() -
stat() clearly does not work with trainling slash/backslash. I changed
the code to:

strcpy(path, checkdir);
#ifdef WIN32
if (path[strlen(path)-1] == '\\' || path[strlen(path)-1] == '/')
path[strlen(path)-1] = 0;
#endif
if (stat(path, &stat_buf) == -1)
{
if (errno == ENOENT)
ereport(FATAL,
(errcode_for_file_access(),
errmsg("data directory \"%s\"
does not exist",
path)));
else
ereport(FATAL,
(errcode_for_file_access(),
errmsg("could not read permissions of directory
\"%s\": %m",
path)));
}

It seems to work on my system. I'm not sure if this is a good place to
do it, though, or if it should be changed at a different place. (with
this fix it will use duplicate path separators elsewhere, but from what
I can see this appears to work just fine).

If this seems like a good idea, please apply from code above. If not,
please direct me to a better plavce to work :-)

This is all required for the win32 installer, because Windows Installer
automatically adds trailing backslashes to all paths.

//Magnus

Responses

Browse pgsql-hackers-win32 by date

  From Date Subject
Next Message Tom Lane 2004-06-20 19:33:23 Re: Data directory with trailing [back]slash
Previous Message Andreas Pflug 2004-06-20 09:28:26 Re: Compiling libpq with VisualC

Browse pgsql-patches by date

  From Date Subject
Next Message Tom Lane 2004-06-20 19:33:23 Re: Data directory with trailing [back]slash
Previous Message Magnus Hagander 2004-06-20 18:29:14 Re: stderr & win32 admin check