From d9d3f6fb359250b1cb6a6a8446bc741c726a8da5 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Fri, 8 Dec 2023 21:58:07 +0100
Subject: [PATCH] 52383: Avoid incompatible pointer types in terminfo global
 variable checks

Origin: Upstream
Upstream-Status: Backport
[ismael@sourcemage.org: Rebased on top of 5.9 and incorporated the final
 configure script changes]
Signed-off-by: Ismael Luceno <ismael@sourcemage.org>
---
 ChangeLog    |  5 +++++
 configure    | 12 ++++++------
 configure.ac | 12 ++++++------
 3 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6d90f81df71f..8c54caede6e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2023-12-13  Oliver Kiddle  <opk@zsh.org>
+
+	* Florian Weimer: 52383: configure.ac: Avoid incompatible pointer
+	types in terminfo global variable checks
+
 2022-09-21  Jun-ichi Takimoto  <takimoto-j@kba.biglobe.ne.jp>
 
 	* Nicholas Vinson: 50641: aczsh.m4, configure.ac: use 'int main()'
diff --git a/configure.ac b/configure.ac
index e68d5e705eae..a959a9f3a2a3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1759,27 +1759,27 @@ if test x$zsh_cv_path_term_header != xnone; then
   fi
 
   AC_MSG_CHECKING(if boolcodes is available)
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = boolcodes; puts(*test);]])],[AC_DEFINE(HAVE_BOOLCODES) boolcodes=yes],[boolcodes=no])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)boolcodes; puts(*test);]])],[AC_DEFINE(HAVE_BOOLCODES) boolcodes=yes],[boolcodes=no])
   AC_MSG_RESULT($boolcodes)
 
   AC_MSG_CHECKING(if numcodes is available)
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = numcodes; puts(*test);]])],[AC_DEFINE(HAVE_NUMCODES) numcodes=yes],[numcodes=no])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)numcodes; puts(*test);]])],[AC_DEFINE(HAVE_NUMCODES) numcodes=yes],[numcodes=no])
   AC_MSG_RESULT($numcodes)
 
   AC_MSG_CHECKING(if strcodes is available)
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = strcodes; puts(*test);]])],[AC_DEFINE(HAVE_STRCODES) strcodes=yes],[strcodes=no])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)strcodes; puts(*test);]])],[AC_DEFINE(HAVE_STRCODES) strcodes=yes],[strcodes=no])
   AC_MSG_RESULT($strcodes)
 
   AC_MSG_CHECKING(if boolnames is available)
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = boolnames; puts(*test);]])],[AC_DEFINE(HAVE_BOOLNAMES) boolnames=yes],[boolnames=no])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)boolnames; puts(*test);]])],[AC_DEFINE(HAVE_BOOLNAMES) boolnames=yes],[boolnames=no])
   AC_MSG_RESULT($boolnames)
 
   AC_MSG_CHECKING(if numnames is available)
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = numnames; puts(*test);]])],[AC_DEFINE(HAVE_NUMNAMES) numnames=yes],[numnames=no])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)numnames; puts(*test);]])],[AC_DEFINE(HAVE_NUMNAMES) numnames=yes],[numnames=no])
   AC_MSG_RESULT($numnames)
 
   AC_MSG_CHECKING(if strnames is available)
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = strnames; puts(*test);]])],[AC_DEFINE(HAVE_STRNAMES) strnames=yes],[strnames=no])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)strnames; puts(*test);]])],[AC_DEFINE(HAVE_STRNAMES) strnames=yes],[strnames=no])
   AC_MSG_RESULT($strnames)
 
   dnl There are apparently defective terminal library headers on some
diff --git a/configure b/configure
index 13a7a19538ca..44ae712073b2 100755
--- a/configure
+++ b/configure
@@ -11439,7 +11439,7 @@ $term_includes
 int
 main (void)
 {
-char **test = boolcodes; puts(*test);
+char **test = (char **)boolcodes; puts(*test);
   ;
   return 0;
 }
@@ -11465,7 +11465,7 @@ $term_includes
 int
 main (void)
 {
-char **test = numcodes; puts(*test);
+char **test = (char **)numcodes; puts(*test);
   ;
   return 0;
 }
@@ -11491,7 +11491,7 @@ $term_includes
 int
 main (void)
 {
-char **test = strcodes; puts(*test);
+char **test = (char **)strcodes; puts(*test);
   ;
   return 0;
 }
@@ -11517,7 +11517,7 @@ $term_includes
 int
 main (void)
 {
-char **test = boolnames; puts(*test);
+char **test = (char **)boolnames; puts(*test);
   ;
   return 0;
 }
@@ -11543,7 +11543,7 @@ $term_includes
 int
 main (void)
 {
-char **test = numnames; puts(*test);
+char **test = (char **)numnames; puts(*test);
   ;
   return 0;
 }
@@ -11569,7 +11569,7 @@ $term_includes
 int
 main (void)
 {
-char **test = strnames; puts(*test);
+char **test = (char **)strnames; puts(*test);
   ;
   return 0;
 }
-- 
2.48.1

