ChangeLog   [plain text]

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

	* src/ (CLEANFILES, dist-hook): Commented out, to
	reduce number of user reports from people without lex.

	* Change from AC_PROG_LEX to AM_PROG_LEX.

	* src/ (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/ (AM_CPPFLAGS): Renamed from INCLUDES, to quench
	an automake warning.

	* Modernized via autoupdate.  Fixed several
	'underquoted' warnings from aclocal.  Use a more telling source
	file name in AC_CONFIG_SRCDIR.

	* configure, aclocal.m4,, contrib/,
	doc/, src/ Regenerated.

2006-08-20  Hans-Bernhard Broeker  <>

	* src/find.c (findsymbol): Missed one place where s_len had to be
	* src/main.c (tempstring): Parametrize length by new macro
	(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

	* 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.
	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 <assert.h>
	(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

	* 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
	(copydata, coypinverted): Rename calls of putinclude().  Add new

	* 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
	(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

	* 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

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.

	* Add test for <io.h>.

	* configure, Regenerated.
	* src/mypopen.c [HAVE_IO_H]: #include <io.h> it, for the setmode()

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.

	*, aclocal.m4, configure, contrib/,
	doc/, src/ 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
	(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

	* 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

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,
	(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  <>

	* (AC_CHECK_HEADERS): Added check for NSK-Tandem
	special magic header file <floss.h>.

	* src/global.h [HAVE_FLOSS_H]: Added #include <floss.h> if it

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.
	* (sigsetjmp): Added test for presence of this

	* src/display.c (sigsetjmp) [!HAVE_SIGSETJMP]: Provide fallback
	definitions for functions sigsetjmp, siglongjmp and type
	(search): Move call to signal() above that to setjmp().  Call
	sigsetjmp() instead of setjmp().

	* configure, Regenerated.

	*, src/, contrib/,
	doc/, aclocal.m4: Rebuilt by automake-1.7.9.
2004-02-11  Hans-Bernhard Broeker  <>

	* (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 <signal.h> 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
	(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
	(dispinit): Use postfatal:().
	(postmsg): Use clearmsg().
	(postmsg2): Call curses refresh() after change.

	* src/global.h: Add prototypes for new functions clearmsg() and

	* 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 <sys/types.h> to fix problem on

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

	* ChangeLog: Started from scratch.