Hi Michael,

I spend spend time look into the patch. Good catch, I am also surprised to
see that current Windows install script don’t support spaces in the path.
Please see my findings as following i.e.

*Without the patch*

1.

> C:\PG\postgresql\src\tools\msvc>install "C:\PG\postgresql\inst with space
> without patch"
> with was unexpected at this time.
>

2.

> C:\PG\postgresql\src\tools\msvc>install
> Invalid command line options.
> Usage: "install.bat <path>"
>

3.

> C:\PG\postgresql\src\tools\msvc>install /?
> Installing version 9.5 for release in /?
> Copying build output files...Could not copy release\postgres\postgres.exe
> to /?\bin\postgres.exe
> at Install.pm line 40
> Install::lcopy('release\postgres\postgres.exe', '/?\bin\postgres.exe')
> called at Install.pm line 324
> Install::CopySolutionOutput('release', '/?') called at Install.pm line 93
> Install::Install('/?', undef) called at install.pl line 13


*With the patch*

1.

> C:\PG\postgresql\src\tools\msvc>install "C:\PG\postgresql\inst with space
> without patch"
> Works fine.
>

2.

> C:\PG\postgresql\src\tools\msvc>install
> Usage: install.pl <targetdir> [installtype]
> installtype: client
>

3.

> C:\PG\postgresql\src\tools\msvc>install /?
> Invalid command line options.
> Usage: "install.bat <path>"


Following change looks confusing to me i.e.

> -if NOT "%1"=="" GOTO RUN_INSTALL
> +if NOT [%1]==[/?] GOTO RUN_INSTALL


Along with fixing the space in installation path, it is also changing the
behavior of install script, why not just "if NOT [%1]==[] GOTO
RUN_INSTALL", checking for "/?" seems good for help message but it seem not
well handled in the script, it is still saying “Invalid command line
options.”, along with this, option "/?" seems not handled by any other .bat
build script. Other than this, with the patch applied, is it an acceptable
behavior that (2) shows usage message as 'Usage:* install.pl
<http://install.pl>* <targetdir> [installtype]' but (3) shows usage message
as 'Usage: "*install.bat* <path>"'. Thanks.

Regards,
Muhammad Asif Naeem

On Mon, Mar 2, 2015 at 9:27 AM, Michael Paquier <michael.paqu...@gmail.com>
wrote:

> Hi all,
>
> When using install.bat with a path containing spaces, I got surprised
> by a couple of errors.
> 1) First with this path:
> $ install "c:\Program Files\pgsql"
> I am getting the following error:
> Files\pgsql""=="" was unexpected at this time.
> This is caused by an incorrect evaluation of the first parameter in
> install.bat.
> 2) After correcting the first error, the path is truncated to
> c:\Program because first argument value does not seem to be correctly
> parsed when used with install.pl.
>
> Attached is a patch fixing both problems. I imagine that it would be
> good to get that backpatched.
> Regards,
> --
> Michael
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>
>

Reply via email to