Use native path separators to pg_ctl in initdb
authorAlvaro Herrera
Tue, 2 Mar 2021 18:39:34 +0000 (15:39 -0300)
committerAlvaro Herrera
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 
Reviewed-by: Juan José Santamaría Flecha
Discussion: https://postgr.es/m/CAMm1aWaNDuaPYFYMAqDeJrZmPtNvLcJRS++CcZWY8LT6KcoBZw@mail.gmail.com

src/bin/initdb/initdb.c

index 2b868511c5dbbd1853850799d7062e8184cd0de0..3c1cf78b4f8c51ece7048a25ac5643874d3bd0d2 100644 (file)
@@ -3239,6 +3239,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);