From: Tom Lane Date: Sat, 12 Mar 2016 23:16:24 +0000 (-0500) Subject: Get rid of scribbling on a const variable in psql's print.c. X-Git-Tag: REL9_5_2~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1598dc15bab35a9fd061babbae716777259d3147;p=postgresql Get rid of scribbling on a const variable in psql's print.c. Commit a2dabf0e1dda93c8 had the bright idea that it could modify a "const" global variable if it merely casted away const from a pointer. This does not work on platforms where the compiler puts "const" variables into read-only storage. Depressingly, we evidently have no such platforms in our buildfarm ... an oversight I have now remedied. (The one platform that is known to catch this is recent OS X with -fno-common.) Per report from Chris Ruprecht. Back-patch to 9.5 where the bogus code was introduced. --- diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index 05d4b3162c..c08d5af6bb 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -98,7 +98,7 @@ const printTextFormat pg_asciiformat_old = }; /* Default unicode linestyle format */ -const printTextFormat pg_utf8format; +printTextFormat pg_utf8format; typedef struct unicodeStyleRowFormat { @@ -3410,7 +3410,7 @@ get_line_style(const printTableOpt *opt) void refresh_utf8format(const printTableOpt *opt) { - printTextFormat *popt = (printTextFormat *) &pg_utf8format; + printTextFormat *popt = &pg_utf8format; const unicodeStyleBorderFormat *border; const unicodeStyleRowFormat *header; diff --git a/src/bin/psql/print.h b/src/bin/psql/print.h index fd56598426..15a365e7d2 100644 --- a/src/bin/psql/print.h +++ b/src/bin/psql/print.h @@ -164,7 +164,7 @@ typedef struct printQueryOpt extern const printTextFormat pg_asciiformat; extern const printTextFormat pg_asciiformat_old; -extern const printTextFormat pg_utf8format; +extern printTextFormat pg_utf8format; /* ideally would be const, but... */ extern void disable_sigpipe_trap(void);