Re: Data directory with trailing [back]slash

Andrew Dunstan <[email protected]>
Newsgroups gmane.comp.db.postgresql.devel.win32
Message-ID <[email protected]>
Why isn't the path being canonicalised, which should remove the trailing 
slash.

cheers

andrew

Magnus Hagander wrote:

>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
>
>---------------------------(end of broadcast)---------------------------
>TIP 5: Have you checked our extensive FAQ?
>
>               http://www.postgresql.org/docs/faqs/FAQ.html
>
>  
>

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.