changeset 291:5b6855d5d089

Fix a portability issue with md_hasclreol(). Some games' implementation of md_hasclreol() poked around in ncurses internals, which does not work for some ncurses build configuration. Most games did not actually call md_hasclreol(), so it was removed. There is a standard terminfo function which can retrieve the value of the clr_eol capability, so this was used for rogue5.
author John "Elwin" Edwards
date Wed, 27 Dec 2017 10:26:06 -0500
parents 2b452dbf0138
children ebf49a933e51
files arogue5/mdport.c rogue3/mdport.c rogue3/mdport.h rogue4/mdport.c rogue5/mdport.c srogue/mdport.c srogue/rogue.h urogue/mdport.c
diffstat 8 files changed, 4 insertions(+), 86 deletions(-) [+]
line wrap: on
line diff
--- a/arogue5/mdport.c	Sun Nov 26 11:34:45 2017 -0500
+++ b/arogue5/mdport.c	Wed Dec 27 10:26:06 2017 -0500
@@ -106,24 +106,6 @@
 #endif
 }
 
-int
-md_hasclreol(void)
-{
-#if defined(clr_eol)
-#ifdef NCURSES_VERSION
-    if (cur_term == NULL)
-	return(0);
-    if (cur_term->type.Strings == NULL)
-	return(0);
-#endif
-    return((clr_eol != NULL) && (*clr_eol != 0));
-#elif defined(__PDCURSES__)
-    return(TRUE);
-#else
-    return((CE != NULL) && (*CE != 0));
-#endif
-}
-
 #ifdef	attron
 # define	_puts(s)	tputs(s, 0, putchar);
 # define	SO		enter_standout_mode
--- a/rogue3/mdport.c	Sun Nov 26 11:34:45 2017 -0500
+++ b/rogue3/mdport.c	Wed Dec 27 10:26:06 2017 -0500
@@ -264,24 +264,6 @@
 #endif
 }
 
-int
-md_hasclreol(void)
-{
-#if defined(clr_eol)
-#ifdef NCURSES_VERSION
-    if (cur_term == NULL)
-	return(0);
-    if (cur_term->type.Strings == NULL)
-	return(0);
-#endif
-    return((clr_eol != NULL) && (*clr_eol != 0));
-#elif defined(__PDCURSES__)
-    return(TRUE);
-#else
-    return((CE != NULL) && (*CE != 0));
-#endif
-}
-
 #ifdef _WIN32
 static int md_standout_mode = 0;
 #endif
--- a/rogue3/mdport.h	Sun Nov 26 11:34:45 2017 -0500
+++ b/rogue3/mdport.h	Wed Dec 27 10:26:06 2017 -0500
@@ -171,7 +171,6 @@
 int	md_shellescape(void);
 void	md_sleep(int s);
 int	md_suspchar(void);
-int	md_hasclreol(void);
 int	md_unlink(char *file);
 int	md_unlink_open_file(const char *file, FILE *inf);
 void	md_tstpsignal(void);
--- a/rogue4/mdport.c	Sun Nov 26 11:34:45 2017 -0500
+++ b/rogue4/mdport.c	Wed Dec 27 10:26:06 2017 -0500
@@ -110,20 +110,6 @@
 #endif
 }
 
-int
-md_hasclreol(void)
-{
-#ifdef CE
-    return((CE != NULL) && (*CE != 0));
-#elif defined (clr_eol)
-    return((clr_eol != NULL) && (*clr_eol != 0));
-#elif !defined(__PDCURSES__)
-    return(clr_eol != NULL);
-#else
-    return(TRUE);
-#endif
-}
-
 static int md_standout_mode = 0;
 
 void
--- a/rogue5/mdport.c	Sun Nov 26 11:34:45 2017 -0500
+++ b/rogue5/mdport.c	Wed Dec 27 10:26:06 2017 -0500
@@ -263,13 +263,13 @@
 int
 md_hasclreol(void)
 {
-#if defined(clr_eol)
 #ifdef NCURSES_VERSION
+    char *cap_str;
     if (cur_term == NULL)
 	return(0);
-    if (cur_term->type.Strings == NULL)
-	return(0);
-#endif
+    cap_str = tigetstr("el");
+    return (cap_str != NULL);
+#elif defined(clr_eol)
     return((clr_eol != NULL) && (*clr_eol != 0));
 #elif defined(__PDCURSES__)
     return(TRUE);
--- a/srogue/mdport.c	Sun Nov 26 11:34:45 2017 -0500
+++ b/srogue/mdport.c	Wed Dec 27 10:26:06 2017 -0500
@@ -260,24 +260,6 @@
 #endif
 }
 
-int
-md_hasclreol(void)
-{
-#if defined(clr_eol)
-#ifdef NCURSES_VERSION
-    if (cur_term == NULL)
-	return(0);
-    if (cur_term->type.Strings == NULL)
-	return(0);
-#endif
-    return((clr_eol != NULL) && (*clr_eol != 0));
-#elif defined(__PDCURSES__)
-    return(TRUE);
-#else
-    return((CE != NULL) && (*CE != 0));
-#endif
-}
-
 #ifdef _WIN32
 static int md_standout_mode = 0;
 #endif
--- a/srogue/rogue.h	Sun Nov 26 11:34:45 2017 -0500
+++ b/srogue/rogue.h	Wed Dec 27 10:26:06 2017 -0500
@@ -67,7 +67,6 @@
 int	md_shellescape(void);
 void	md_sleep(int s);
 int	md_suspchar(void);
-int	md_hasclreol(void);
 int	md_unlink(char *file);
 int	md_unlink_open_file(const char *file, FILE *inf);
 void md_tstpsignal(void);
--- a/urogue/mdport.c	Sun Nov 26 11:34:45 2017 -0500
+++ b/urogue/mdport.c	Wed Dec 27 10:26:06 2017 -0500
@@ -103,18 +103,6 @@
 #endif
 }
 
-int
-md_hasclreol()
-{
-#ifndef	attron
-    return(!CE);
-#elif !defined(__PDCURSES__)
-    return(clr_eol != NULL);
-#else
-    return(TRUE);
-#endif
-}
-
 #ifdef	attron
 # define	_puts(s)	tputs(s, 0, putchar);
 # define	SO		enter_standout_mode