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 <[email protected]>
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 ([email protected])
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>
>