We would like to use -Wstrict-prototypes for GDB. However, readline headers prevent this.
There are a couple problems I am aware of. First, rltypedefs.h defines some prototype-less typedefs by default, e.g.: typedef int Function (); We would work around this with `#define _FUNCTION_DEF', but I think it would be better for readline to just drop this code. C90 has been widely deployed for a long time now; other GNU projects have unconditionally dropped K&R compatibility quite a while ago. If the workaround stays, I think the symbol should have an `RL' prefix. Second, rl_message is declared without a prototype in some cases: #if defined (USE_VARARGS) && defined (PREFER_STDARG) extern int rl_message (const char *, ...) __attribute__((__format__ (printf, 1, 2))); #else extern int rl_message (); #endif However, I think USE_VARARGS is only defined in config.h, which is not installed. I think best practice for a library is to make an installable config.h where all symbols are given the library prefix. That way it can be included in other projects without danger of symbol clashes. Tom _______________________________________________ Bug-readline mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-readline
