From: SourceForge.net <no...@so...> - 2005-02-16 17:09:18
|
Bugs item #1123741, was opened at 2005-02-16 09:01 Message generated for change (Comment added) made by broeker You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104664&aid=1123741&group_id=4664 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Neil Horman (nhorman) Summary: [Solaris 9 x386] no KEY_RESIZE in curses.h Initial Comment: Cscope does not compile with following error : ... make[2]: Entering directory `/usr/cscope/src' if gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -MT command.o -MD -MP -MF ".deps/command.Tpo" -c -o command.o `test -f 'command.c' || echo './'`command.c; then mv -f ".deps/command.Tpo" ".deps/command.Po"; else rm -f ".deps/command.Tpo"; exit 1; fi command.c: In function `command': command.c:414: error: `KEY_RESIZE' undeclared (first use in this function) command.c:414: error: (Each undeclared identifier is reported only once command.c:414: error: for each function it appears in.) make[2]: *** [command.o] Error 1 make[2]: Leaving directory `/usr/cscope/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/cscope' make: *** [all] Error 2 uname -a SunOS moscou 5.9 Generic_117172-12 i86pc i386 i86pc REMARK : After defining KEY_RESIZE to a dummy value (0403) in constant.h and main.c, everything works fine (except resizing I don't want to test). But, I don't know to which value it should be set on a PC... ---------------------------------------------------------------------- >Comment By: Hans-Bernhard Broeker (broeker) Date: 2005-02-16 18:09 Message: Logged In: YES user_id=27517 Just some cosmetic/technical changes I would like to see before this can go to CVS: *) I'm a bit uncomfortable with AC_EGREP_RAW --- is there really no predefined autoconf macro you could use instead of rolling your own? *) The test macro should be renamed to HAVE_KEY_RESIZE, to match the usual auto-foo naming scheme. *) patching config.h.in is pointless --- it's a generated file. And one other thing I noticed only now: you used sigaction() and friends to install your signal handler, but all the rest of cscope still makes do with plain old signal(). This could hamper portability quite a bit. In particular, I'm worried about the DJGPP port. ---------------------------------------------------------------------- Comment By: Neil Horman (nhorman) Date: 2005-02-16 17:30 Message: Logged In: YES user_id=827328 heres a first stab at a patch to fix this break. When configure finds an (n)curses header it greps it for KEY_RESIZE. If found it sets HAS_KEY_RESIZE in config.h. This in turn can be tested from the appropriate places in the code to see if we can support window resizing. I tested it here by removing KEY_RESIZE from my ncurses.h file, and building/runing. Works fine for me, but I'd rather have the bug reported give it a test as well if possible. Hans, any thoughts from you? ---------------------------------------------------------------------- Comment By: Neil Horman (nhorman) Date: 2005-02-16 14:22 Message: Logged In: YES user_id=827328 I agree that proposal (b) is not a great idea, and that some variant of (a) is probably the best way to fix this. I'll work up a patch for and post it here ---------------------------------------------------------------------- Comment By: Hans-Bernhard Broeker (broeker) Date: 2005-02-16 13:45 Message: Logged In: YES user_id=27517 > Interestingly, both the versions of ncurses.h and the > version of curses.h that I have define KEY_RESIZE Odds are that's because they're the same file ;-) That's the usual situation on Linux boxes. As to proposal b): that's a bad idea, I think. We have no way of knowing whether 0632 is already used by some other random implementation of curses or not. It may be worth considering a configure test for KEY_RESIZE itself, rather than assuming USE_NCURSES --> HAVE_KEY_RESIZE. ---------------------------------------------------------------------- Comment By: Neil Horman (nhorman) Date: 2005-02-16 13:24 Message: Logged In: YES user_id=827328 Crud. Well, the easies thing to do I suppose teh best way to go here is to either: a) put a USE_NCURSES ifdef around the KEY_RESIZE case in command, and in around the signal registration code. b)add a #ifndef KEY_RESIZE #define KEY_RESIZE 0632 #endif to the globals header file so that this will all just work. Interestingly, both the versions of ncurses.h and the version of curses.h that I have define KEY_RESIZE. This may also be nothing more than than an old version of curses which has not yet defined KEY_RESIZE. To the bug reporter: can you send in your config.log? ---------------------------------------------------------------------- Comment By: Hans-Bernhard Broeker (broeker) Date: 2005-02-16 12:14 Message: Logged In: YES user_id=27517 Sorry, that "Zoran:" was of course directed to the poster of this bug (anonymous). Confusion by too many projects in parallel. ---------------------------------------------------------------------- Comment By: Hans-Bernhard Broeker (broeker) Date: 2005-02-16 12:09 Message: Logged In: YES user_id=27517 Well, Neil, looks like my hesitation about the SIGWINCH handling stuff being ncurses-only was correct ... Zoran: could you please add some details to this report? Most importantly, I think we need to know what your curses library is (the relevant part of "config.log" should be helpful). We may just get away with flatly disabling this part of the code, but that might bring you back the bug this was intended to fix. So please check: does resizing your xterm with the newly built cscope running in it (in full-screen curses mode) crash you out of cscope? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-02-16 09:11 Message: Logged In: NO I forgot to tell that : cscope: version 16.0a ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-02-16 09:09 Message: Logged In: NO Ooops, I forgot to tell that I downloaded cscope today via CVS, so my version is : cscope: version 16.0a ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104664&aid=1123741&group_id=4664 |