From fc7a9dfddb073a55a226778acd6a9b3f5ea2e626 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 12 Mar 2016 18:16:24 -0500 Subject: [PATCH] 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. --- src/bin/psql/print.c | 4 ++-- src/bin/psql/print.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index 85dbd300d8d..f25a66eb36f 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 { @@ -3412,7 +3412,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 005ba15e983..9033c4bce38 100644 --- a/src/bin/psql/print.h +++ b/src/bin/psql/print.h @@ -163,7 +163,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); -- 2.39.5