Subject: [patch] avoid duplicate definition of global variable presume_output_tty
From: Hanno Böck <[email-masked]>
To: [email-masked]
Date: Wed, 17 Aug 2016 03:17:52 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

The variable presume_output_tty is defined both in the diff.h header
and the file util.c (which includes diff.h).

The diff.h file makes sure that the variable is declared as external
except when it's included by the main program diff.c. But as it's also
declared in util.c we end up having two non-external declarations of it.

Traditionally gcc has allowed this behavior, which is probably the
reason it has not been spottet before, but it's not correct C. One can
get a more strict behavior here by passing -fno-common to the CFLAGS and
LDFLAGS and then linking will fail.

The solution is simple: Remove the superfluous declaration in util.c,
see attached patch. Please apply.

-- 
Hanno Böck
https://hboeck.de/

mail/jabber: [email-masked]
GPG: FE73757FA60E4E21B937579FA5880072BBB51E42
diff --git a/src/util.c b/src/util.c
index d7b8925..76872cb 100644
--- a/src/util.c
+++ b/src/util.c
@@ -44,8 +44,6 @@
 
 char const pr_program[] = PR_PROGRAM;
 
-bool presume_output_tty;
-
 /* Queue up one-line messages to be printed at the end,
    when -l is specified.  Each message is recorded with a 'struct msg'.  */