2018-01-16 17:51 GMT-03:00 Jonathan de Boyne Pollard: > > Charlie Brady: > >> /usr/include/curses.h:843:31: error: initializing argument 1 of 'char* >> tigetstr(char*)' [-fpermissive] >> >> service-status.cpp:148:21: error: invalid conversion from 'const char*' to >> 'char*' [-fpermissive] >> s = tigetstr(setaf); > > This is a problem that I thought was confined to OpenBSD, and its > not-|const|-correct ncurses library. Certainly this has never been a > problem on Debian nor on FreeBSD, and M. Caravia did not report any lack of > |const|-correctness on Arch Linux.
Neither has been a problem on Gentoo. However... > What does line 843 of your > |/usr/include/curses.h| actually say? Because that's not the location of > that function declaration in that header in either Dickey ncurses or Acton > pdcurses as far as I can see. So what curses are you actually using? Dickey ncurses' 'configure' script has options --enable-const and --disable-const. When ncurses is built with --disable-const, tigetstr()'s parameter has type char *, when built with --enable-const, it has type const char *. When neither is specified, default is --disable-const for ncurses 5, and --enable-const for ncurses 6. On my computer: $ grep -E '(define NCURSES_CONST|tigetstr)' /usr/include/curses.h #define NCURSES_CONST const extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *); /* implemented */ I can't check what is the case for CentOS, asuming it ships Dickey ncurses, but I could bet... G.