From 2d7e4573fc6b9ce6b34f97e673a469d07763ce90 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Sat, 19 Feb 2022 13:57:48 +0100 Subject: fix a compiler warning with (Net)BSD curses Some curses implementations have tparm(char *) (BSD and older ncurses), some have tparm(const char *). The older POSIX specification had: tparm(char *): https://pubs.opengroup.org/onlinepubs/7908799/xcurses/term.h.html Just cast it to char *. The terminfo variables are defined elsewhere so it should be safe. Also remove an unnecesary cast in minicurses. Hopefully this satisfies all curses variants and versions now. --- minicurses.h | 30 +++++++++++++++--------------- sfeed_curses.c | 7 ++++--- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/minicurses.h b/minicurses.h index 3e01e80..ad24b5e 100644 --- a/minicurses.h +++ b/minicurses.h @@ -3,20 +3,20 @@ #undef OK #define OK (0) -char *clr_eol = "\x1b[K"; -char *clear_screen = "\x1b[H\x1b[2J"; -char *cursor_address = "\x1b[%ld;%ldH"; -char *cursor_normal = "\x1b[?25h"; /* DECTCEM (in)Visible cursor */ -char *cursor_invisible = "\x1b[?25l"; /* DECTCEM (in)Visible cursor */ -char *eat_newline_glitch = (void *)1; -char *enter_ca_mode = "\x1b[?1049h"; /* smcup */ -char *exit_ca_mode = "\x1b[?1049l"; /* rmcup */ -char *save_cursor = "\x1b""7"; -char *restore_cursor = "\x1b""8"; -char *exit_attribute_mode = "\x1b[0m"; -char *enter_bold_mode = "\x1b[1m"; -char *enter_dim_mode = "\x1b[2m"; -char *enter_reverse_mode = "\x1b[7m"; +const char *clr_eol = "\x1b[K"; +const char *clear_screen = "\x1b[H\x1b[2J"; +const char *cursor_address = "\x1b[%ld;%ldH"; +const char *cursor_normal = "\x1b[?25h"; /* DECTCEM (in)Visible cursor */ +const char *cursor_invisible = "\x1b[?25l"; /* DECTCEM (in)Visible cursor */ +const char *eat_newline_glitch = (void *)1; +const char *enter_ca_mode = "\x1b[?1049h"; /* smcup */ +const char *exit_ca_mode = "\x1b[?1049l"; /* rmcup */ +const char *save_cursor = "\x1b""7"; +const char *restore_cursor = "\x1b""8"; +const char *exit_attribute_mode = "\x1b[0m"; +const char *enter_bold_mode = "\x1b[1m"; +const char *enter_dim_mode = "\x1b[2m"; +const char *enter_reverse_mode = "\x1b[7m"; int setupterm(char *term, int fildes, int *errret) @@ -34,5 +34,5 @@ tparm(char *s, long p1, long p2, ...) return buf; } - return (char *)s; + return s; } diff --git a/sfeed_curses.c b/sfeed_curses.c index 4087369..d12f170 100644 --- a/sfeed_curses.c +++ b/sfeed_curses.c @@ -265,14 +265,15 @@ estrdup(const char *s) return p; } -/* Wrapper for tparm which allows NULL parameter for str. */ +/* Wrapper for tparm() which allows NULL parameter for str. */ char * -tparmnull(char *str, long p1, long p2, long p3, long p4, long p5, long p6, +tparmnull(const char *str, long p1, long p2, long p3, long p4, long p5, long p6, long p7, long p8, long p9) { if (!str) return NULL; - return tparm(str, p1, p2, p3, p4, p5, p6, p7, p8, p9); + /* some tparm() implementations have char *, some have const char * */ + return tparm((char *)str, p1, p2, p3, p4, p5, p6, p7, p8, p9); } /* Counts column width of character string. */ -- cgit v1.2.3