2006-09-30 Hans-Bernhard Broeker * src/fscanner.l (wsnl): Expand set of allowed characters to make scanner more tolerant of non-Unix linebreaks (should fix SF Bug #1563459) * src/Makefile.am (CLEANFILES, dist-hook): Commented out, to reduce number of user reports from people without lex. * configure.in: Change from AC_PROG_LEX to AM_PROG_LEX. * src/Makefile.am (cscope_SOURCES): Added alloc.h. Reindented. * src/invlib.c (invnewterm): Correct loop test to account for maxback being unsigned (should fix SF bug #1559495). * src/Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES, to quench an automake warning. * configure.in: Modernized via autoupdate. Fixed several 'underquoted' warnings from aclocal. Use a more telling source file name in AC_CONFIG_SRCDIR. * configure, aclocal.m4, Makefile.in, contrib/Makefile.in, doc/Makefile.in, src/Makefile.in: Regenerated. 2006-08-20 Hans-Bernhard Broeker * src/find.c (findsymbol): Missed one place where s_len had to be initialized. * src/main.c (tempstring): Parametrize length by new macro TEMPSTRING_LEN. (main): Check against too long -f file name. (main): Put explicit %s field widths into fscanf() call. (main): Replace some fscanf() calls by fgets(). * src/input.c (shellpath): Limit size of strings copied from environment. * src/edit.c (editref, editall): Put explicit %s field widths into fscanf() calls. * src/display.c (display): Put explicit %s field widths into fscanf() call. * src/dir.c (makefilelist): Put explicit %s field width into sscanf() call. * src/constants.h (TEMPSTRING_LEN): New macro, needed to parametrize a fscanf() call. (STRINGIZE): New macro used to build the following. (PATLEN_STR, PATHLEN_STR, NUMLEN_STR, TEMPSTRING_LEN_STR): Buffer lengths (minus 1) expressed as a string literal, to be used in as field widths in {f,s}scanf() calls. * src/command.c (changestring): Put explicit %s field widths into fscanf() call. * src/build.c (samelist, build): fgets() replaces fscanf(). (build): Put explicit %s field widths into fscanf() call. 2006-07-23 Hans-Bernhard Broeker * src/global.h: Rename putstring() to fetch_string_from_dbase(), add a parameter. * src/find.c: Add #include (fetch_string_from_dbase): Renamed from misleading name putstring(). Add new parameter, and use it to avoid overflowing the output buffer. (findsymbol): New local: s_len. Rename calls to putstring(). Add new argument, some of them from s_len. (finddef, findallfcns, findcalling, findinclude, match, findcalledby, putpostingref): Rename calls to putstring(). Add new argument. * src/constants.h (MSGLEN): Add safety parentheses. * src/library.h: Remove prototypes of alloc.c functions. * src/alloc.h: New file. Moved prototypes of alloc.c functions in here, out of library.h. * src/alloc.c: Include new header file from here. (my_strdup): Changed name from misleading stralloc(). Remove incorrect cast. * src/build.c: Add #include "alloc.h". (fetch_include_from_dbase): Renamed from misleading name putinclude(). Add length of target string as an argument. (setup_build_filenames): Rename calls of stralloc(). (getoldfile, copyinverted): Rename calls of putstring(). Add new argument. (copydata, coypinverted): Rename calls of putinclude(). Add new argument. * src/vpinit.c: Add #include "alloc.h" (vpinit): Rename calls of stralloc(). * src/main.c: Add #include "alloc.h". (main): Rename calls of stralloc(). * src/history.c: Add #include "alloc.h". (addcmd): Rename call of stralloc(). * src/fscanner.l: Add #include "alloc.h". * src/display.c: Add #include "alloc.h". * src/dir.c: Add #include "alloc.h". Move project includes above system headers. (sourcedir, addsrcdir, includedir, addincdir, addsrcfile): Rename calls to stralloc(). * src/crossref.c: Add #include "alloc.h" * src/command.c: Add #include "alloc.h". 2006-05-06 Hans-Bernhard Broeker * src/fscanner.l: Accept numeric literals inside fcn definitions and calls. 2006-04-21 Hans-Bernhard Broeker Make source clean under -Wsign-compare. * src/main.c (fileargc): Make counter unsigned. (main): Make local counter unsigned. (main): Fixed two sprintf() excess arguments. * src/lookup.c (initsymtab): Make local counters unsigned. * src/invlib.c (LINEMAX): Removed. (invmake): Change length of local variable "line" to TERMMAX. (numpost, numlogblk, amtused, nextpost, lastinblk, numinvitems): Make counters unsigned. (invnewterm): Make local counters unsigned. * src/input.c (mygetline): Make local counters unsigned. * src/find.c (findregexp, findfile): Make local counters unsigned. * src/egrep.y (line, left, right, parent): Make unsigned. (enter, cclenter): Return unsigned. (follow): Make argument unsigned. (cclenter, cfoll, cgotofn, member, add, follow): Make local counters unsigned. (cgotofn, member): Cast char to unsigned char, not unsigned int, for use as an index. * src/display.c (disprefs, mdisprefs, nextline, topline, totallines): Make unsigned. (search): Removed unused locals. (seekline): Make argument unsigned. * src/dir.c (nincdirs, nsrcdirs, nsrcfiles, msrcfiles, mincdirs, msrcdirs, nvpsrcdirs): Make unsigned long. (sourcedir, includedir, makefilelist, incfile, inviewpath): Make local counters unsigned. * src/crossref.c (symbols, msymbols): Make unsigned long. (struct symbol): Make elements first, last, length and fcn_level unsigned. (crossref, putcrossref): Make local counters unsigned. * src/command.c (curdispline): Make unsigned. (mark): Make argument and local counter unsigned. (command): Make KEY_LL conditional on KEY_LL, not KEY_HOME. (changestring): Made local counter unsigned. * src/build.c (build): Change several local ints to unsigned longs. * src/global.h: Updated lots of declarations to match the above. * src/alloc.c (mymalloc, mycalloc, myrealloc): Make size arguments size_t. Remove pointless casts in several of their callers. * src/library.h (mymalloc, mycalloc, myrealloc): Updated prototoypes. 2006-04-20 Hans-Bernhard Broeker * src/input.c (askforreturn): If curses is handling the display, redraw the screen before returning, to keep error messages from permanently scrambling the display. * configure.in: Add test for . * configure, config.h.in: Regenerated. * src/mypopen.c [HAVE_IO_H]: #include it, for the setmode() declaration. 2006-04-19 Hans-Bernhard Broeker General change: indentation width of touched areas changed to 4 spaces, open braces not on lines of their own, single-line "else if", get rid of (void) casts of unused function return values. * src/global.h (select_large): Removed declaration. * src/main.c (select_large, main): Removed long unused global. * src/dir.c (scan_dir): Get rid of d_ino check --- this field is not reliably present in struct dirent, and doesn't achieve enough to be worth autoconf-ing around. Works around problems compiling on Cygwin release 1.5.19. * Makefile.in, aclocal.m4, configure, contrib/Makefile.in, doc/Makefile.in, src/Makefile.in: Regenerated with current auto tools (autoconf-2.59, automake 1.9.6). 2006-02-21 Hans-Bernhard Broeker * src/vpinit.c (vpinit): Fix handling of slightly malformed VPATH environment variable contents. 2005-11-22 Hans-Bernhard Broeker * src/dir.c (issrcfile): Finally added auto-searching for three-letter C++ file extensions *.tcc, *.cpp, *.cxx. Test all matches to be regular files, not just those with two- and three-character extensions. * src/invlib.c: Some cleanup. Replace 0 third argument to fseek by proper SEEK_SET. Got rid of (void) result casts and some function argument casts. (invmake): Fix one sizeof(long)==4 assumption. 2005-08-16 Hans-Bernhard Broeker * src/main.c: Uncluttered by removing nitpicky (void) casts. (longusage): Reworked for source legibility even on 80-column displays. (main): If in verbose linemode, print number of references found, first off. Patch from Elad Lahav, for Kscope 2005-07-08 Hans-Bernhard Broeker * src/build.c (invname_buf, invpost_buf, reffile_buf): Make modifiable copies of the default file names. (invname, invpost, reffile): Initialize pointers to modifiable copies, rather than to string literals. * packages/MSDOS/djmake.bat: Adapt to modern position of ylwrap script. * src/command.c (command) [KEY_RESIZE]: Protect by !defined(__DJGPP__). That platform doesn't have sigaction() and associated machinery, nor does it really support terminal size changes to begin with. * src/main.c (sigwinch_handler): Likewise. (main): Likewise. 2005-04-29 Hans-Bernhard Broeker * src/command.c (command): Additional hotkey mapping of Ctrl-A to same function as Ctrl-Y, like AT&T cscope, to evade Ctrl-Y occupied as the DSUSP signal key on BSD'ish platforms. * src/help.c (help): Document additonal hotkey ^A. Mention possible unavailability of some Ctrl keys because of terminal settings. 2005-03-14 Hans-Bernhard Broeker * src/input.c (getline): Removed. Was just a minimally simplified copy of mygetline() anyway, and it threatened to collide with a like-named routine in libc. * src/global.h (getline): Removed prototype. * src/command.c (command): Changed all calls of getline() to mygetline() with an empty string as the first argument. * src/egrep.y (memset): Changed #if condition around fallback implementation to match that of the prototype in global.h. Should fix SF bug #1163104 (build failure on FreeBSD). 2005-02-16 Neil Horman * src/command.c (command): Added ifdef KEY_RESIZE around KEY_RESIZE case in switch statement to allow curses libraries which don't support resize events to build * src/main.c (main): Added ifdef KEY_RESIZE around SIGWINCH handler and signal registration logic to remove resize code from cscope when building with curses libraries that don't support resize events 2005-02-04 Neil Horman * src/command.c (command): Added KEY_RESIZE event case to command switch to handle window re-drawing when a resize event was received. * src/input.c (mygetch): Added error checking of return code to restart call to getch in the event it returned early due to a signal being delivered. * src/main.c (main): Registered a signal handler for the SIGWINCH handler which is delivered when a terminal is resized. Handler pushes a KEY_RESIZE event onto the head of the command input queue. 2005-02-01 Hans-Bernhard Broeker * src/build.c (build): Keep interactive mode on, even if on a terminal, if verbose mode (-v) was turned on. 2005-01-31 Hans-Bernhard Broeker * src/scanner.h: Declare yytext signed on AIX (without stating a version number, for now). 2005-01-30 Hans-Bernhard Broeker * src/mypopen.c (mypopen): Make closing argument to execlp() a manifest null pointer, not just a zero. 2004-12-08 Neil Horman * src/dir.c: Fix to dissallow unreadable files from srcfiles list (sourceforge bug number 1040690) 2004-12-06 Neil Horman * src/main.c: Fix for temp file security bug (sourceforge bug number 1062807 / CAN-2004-0970) 2004-11-22 Hans-Bernhard Broeker * doc/cscope.1: Make ESR happy: change man page summary section to avoid [0-9] syntax. 2004-10-27 Hans-Bernhard Broeker * src/display.c (search): Replace duplicated code by a call to countrefs(). Duplicate lacked adjustment of column widths in case of very long function/file names. Thanks to Darlene Wong for spotting this. * src/global.h (countrefs): Prototype added. * src/command.c (countrefs): Made globally available. 2004-06-23 Hans-Bernhard Broeker * src/dir.c (makefilelist): Fix broken movement of point_in_line when parsing quoted names. Simplify structure by moving default handling upward. 2004-06-21 Hans-Bernhard Broeker * contrib/ocs (SYSDIR): Only set to /usr/local/lib/cs if not already set in outside environment. Check that $(SYSDIR) exists before proceeding. From SF patch #976788 by Neil Horman. 2004-04-30 Hans-Bernhard Broeker * src/vpinit.c (vpinit): Renamed argument currentdir to current_dir to avoid name clash with same-named global. * src/command.c (Pattern): Renamed from "pattern", to avoid multitute of compiler warnings about shadowing by locally defined variables of the same name. Changed all usages of this variable, too. (command): Test for individual KEY_* macros instead of TERMINFO whenever one of the KEY_* macros is referenced. This should reduce the TERMINFO mess a little. * src/find.c (read_block): Renamed from "readblock", to avoid name clash with QNX system function of that name. Calls changed accordingly, all over the place. * src/display.c: Fix fall-back definition of sigjmp_buf. * src/constants.h: Activate TERMINFO for FreeBSD. * src/input.c (mygetline): New function. Poor-man's readline imitation. From SF Patch #937310. * src/global.h (mygetline): Prototype added. * src/command.c (command): Use mygetline() instead of letting ncsurses doing it all. Make Ctrl-B/F special hotkeys that are handled here instead of in mygetline(), to preserve their meaning. * packages/cscope.spec: Updated by SF patch #920586 to be more compatible with current expectations. 2004-02-24 Hans-Bernhard Broeker * configure.in (AC_CHECK_HEADERS): Added check for NSK-Tandem special magic header file . * src/global.h [HAVE_FLOSS_H]: Added #include if it exists. 2004-02-14 Hans-Bernhard Broeker * src/command.c (countrefs): Fix off-by-one length specification of %s format. Thanks to for spotting it. 2004-02-12 Hans-Bernhard Broeker Fix SF bug #892731: Ctrl-C interruption of search works only once per session. * configure.in (sigsetjmp): Added test for presence of this function. * src/display.c (sigsetjmp) [!HAVE_SIGSETJMP]: Provide fallback definitions for functions sigsetjmp, siglongjmp and type sigjmp_buf. (search): Move call to signal() above that to setjmp(). Call sigsetjmp() instead of setjmp(). * configure, config.h.in: Regenerated. * Makefile.in, src/Makefile.in, contrib/Makefile.in, doc/Makefile.in, aclocal.m4: Rebuilt by automake-1.7.9. 2004-02-11 Hans-Bernhard Broeker * configure.in (signal.h) Check added. (sighandler_t): Check for this type. Should be defined on POSIX platforms, but is treated as a GNU extension sometimes. * src/global.h (sighandler_t) [!HAVE_SIGHANDLER_T]: Provide fallback definition of function pointer typedef for signal handlers if doesn't provide it. Simplifies cscope's work when working on its own source code --- function pointers confuse it quite badly, so it's best to minimize their visibility. * src/input.c (mygetch): Type of local variable savesig written using sighandler_t. * src/display.c (search): Type of local variable savesig written using sighandler_t. * src/exec.c (oldsigtstp): Renamed, from oldsigstp. (oldsigtstp,oldsighup,oldsigquit): Changed from function pointer type to new typedef name sighandler_t. 2004-02-05 Hans-Bernhard Broeker * src/global.h (tolower) [BSD]: Fix stupid typo in overrides for toupper and tolower. 2004-01-08 Hans-Bernhard Broeker * src/display.c (clearmsg): New function. Does essentially the same thing previously achieved by a rather more cryptic postmsg(""). (postfatal): New function to printout a fatal error message and terminate the program. Works like posterr(), but exits curses first, so the message should end up visible after the program exits. Using this instead of posterr()+myexit() fixes SF bug #419510. (dispinit): Use postfatal:(). (postmsg): Use clearmsg(). (postmsg2): Call curses refresh() after change. * src/global.h: Add prototypes for new functions clearmsg() and postfatal(). * src/find.c (putsource): Use postfatal(). * src/main.c (main, skiplist): Use postfatal() and clearmsg(). * src/command.c (command): Use clearmsg(). * src/build.c (build, seek_to_trailer, movefile): Use postfatal(). * src/alloc.c (alloctest): Use postfatal(). * src/display.c (jumpback): Re-instate signal handler, in an attempt to fix problems reported with the general behaviour of signal handlers in cscope. * src/scanner.l (ws, wsnl): Two new predefined patterns to catch not only blanks and tabs, but all generally allowed white-space characters in source files: form feeds, vertical tabs, carriage returns. Replaced most occurence of [ \t] and [ \t\n] by these. This is a back-port from fscanner.l. Should fix SF bug #508060. Wed Oct 15 16:05:46 2003 Hans-Bernhard Broeker * src/dir.c (scan_dir): Don't reduce path to basename before calling issrcfile. (issrcfile): Use either basename or full path, as necessary for the individual tests. Reorganized to reduce nesting. Mon Sep 15 12:34:46 2003 Hans-Bernhard Broeker * src/egrep.y (yylex, member, egrep, cgotofn): Reindented. Fixed implicit int declarations and casts. * src/global.h (tolower, tolower) [BSD]: Fix override definitions for these so they don't mung non-alphabetic input. Fri Sep 12 09:33:19 2003 Hans-Bernhard Broeker * src/vp.h: Add #include of to fix problem on Solaris. Fri Sep 12 09:33:19 2003 Hans-Bernhard Broeker I'm finally starting a new, GNU-format ChangeLog file. The format of the previous was too terse to be really useful. This begins with the first changes after release 15.5. * ChangeLog.old: New file. Renamed copy of old-format ChangeLog file. * ChangeLog: Started from scratch.