[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
possible const problem, mvwprintw
From: |
D. Stimits |
Subject: |
possible const problem, mvwprintw |
Date: |
Sun, 15 Jun 2003 18:52:06 -0600 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2b) Gecko/20021018 |
I came up with an interesting dilemma, under ncurses 5.3-4 (RPM package,
RH 7.3).
The prototype in /usr/include/curses.h (a sym link to
/usr/include/ncurses/curses.h) for mvwprintw() has argument 4 properly
prototyped as "const char *". However, when I pass a truly const char*
as this argument, I get an error (I'm actually using g++ with extern "C"
wrapper, many C compilers probably won't burp on it unless the const
char* is actually modified...i.e., at runtime, or possibly if set by
compile flag to act strictly in such cases). The error tells me it can't
convert my const char* to char*, as if the function mvwprintw had been
declared with non-const argument 4.
When I look at /usr/include/ncurses/curses.h, argument 4 is declared
const, so I can't at first see how this error is happening. However, it
looks like "under the covers" this is really a macro, and in
llib-lncursesw, it has this:
#undef mvwprintw
int mvwprintw(
WINDOW *win,
int y,
int x,
char *fmt,
...)
{ return(*(int *)0); }
Apparently mvwprintw is initially a macro. The file naming seems odd to
me, I'd expect a .c or .h. Well, the conclusion here is that the fmt
argument, in this file, is inappropriately changed back from const to
non-const. In fact, there are a lot of non-const char* fmt lines in that
file. How is this non-.c/non-.h file being used? Is awk or some other
tool writing other files after scanning this one? Can these non-const
char* fmt arguments be patched to use const char*? Or am I looking at
something completely irrelevant as the cause to rejecting const char* in
mvwprintw as the fmt?
D. Stimits, stimits AT attbi DOT com
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- possible const problem, mvwprintw,
D. Stimits <=