Use native path separators to pg_ctl in initdb
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 2 Mar 2021 18:39:34 +0000 (15:39 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 2 Mar 2021 18:39:34 +0000 (15:39 -0300)
On Windows, CMD.EXE allegedly does not run a command that uses forward slashes,
so let's convert the path to use backslashes instead.

Backpatch to 10.

Author: Nitin Jadhav <nitinjadhavpostgres@gmail.com>
Reviewed-by: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
Discussion: https://postgr.es/m/CAMm1aWaNDuaPYFYMAqDeJrZmPtNvLcJRS++CcZWY8LT6KcoBZw@mail.gmail.com

src/bin/initdb/initdb.c

index 1b25b89394d83acf81e6471dcf066b6b543d0e82..63da5d29b39908601e093ad0a58515c66692a7f1 100644 (file)
@@ -3255,6 +3255,9 @@ main(int argc, char *argv[])
    /* ... and tag on pg_ctl instead */
    join_path_components(pg_ctl_path, pg_ctl_path, "pg_ctl");
 
+   /* Convert the path to use native separators */
+   make_native_path(pg_ctl_path);
+
    /* path to pg_ctl, properly quoted */
    appendShellString(start_db_cmd, pg_ctl_path);