Strip file names reported in error messages on Windows, too.
authorTom Lane
Fri, 2 Apr 2021 14:43:54 +0000 (10:43 -0400)
committerTom Lane
Fri, 2 Apr 2021 14:43:54 +0000 (10:43 -0400)
Commit dd136052b established a policy that error message FILE items
should include only the base name of the reporting source file, for
uniformity and succinctness.  We now observe that some Windows compilers
use backslashes in __FILE__ strings, so truncate at backslashes as well.

This is expected to fix some platform variation in the results of the
new libpq_pipeline test module.

Discussion: https://postgr.es/m/3650140.1617372290@sss.pgh.pa.us

src/backend/utils/error/elog.c

index 423df2f3006d5d711f0d1e4d9d75d7debfa7f176..12de4b38cbac285c50061bf2d70e8ef2a0e48bf1 100644 (file)
@@ -529,6 +529,10 @@ errfinish(const char *filename, int lineno, const char *funcname)
        slash = strrchr(filename, '/');
        if (slash)
            filename = slash + 1;
+       /* Some Windows compilers use backslashes in __FILE__ strings */
+       slash = strrchr(filename, '\\');
+       if (slash)
+           filename = slash + 1;
    }
 
    edata->filename = filename;