提交 dd136052 编写于 作者: P Peter Eisentraut

Strip file names reported in error messages in vpath builds

In vpath builds, the __FILE__ macro that is used in verbose error
reports contains the full absolute file name, which makes the error
messages excessively verbose.  So keep only the base name, thus
matching the behavior of non-vpath builds.
上级 be2f9092
......@@ -343,7 +343,14 @@ errstart(int elevel, const char *filename, int lineno,
edata->elevel = elevel;
edata->output_to_server = output_to_server;
edata->output_to_client = output_to_client;
edata->filename = filename;
if (filename)
{
const char *slash;
/* keep only base name, useful especially for vpath builds */
slash = strrchr(filename, '/');
edata->filename = slash ? slash + 1 : filename;
}
edata->lineno = lineno;
edata->funcname = funcname;
/* the default text domain is the backend's */
......@@ -1142,7 +1149,14 @@ elog_start(const char *filename, int lineno, const char *funcname)
}
edata = &errordata[errordata_stack_depth];
edata->filename = filename;
if (filename)
{
const char *slash;
/* keep only base name, useful especially for vpath builds */
slash = strrchr(filename, '/');
edata->filename = slash ? slash + 1 : filename;
}
edata->lineno = lineno;
edata->funcname = funcname;
/* errno is saved now so that error parameter eval can't change it */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册