"Fossies" - the Fresh Open Source Software Archive

Member "gnats-4.2.0/gnats/ChangeLog" (26 Feb 2015, 142491 Bytes) of package /linux/misc/gnats-4.2.0.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "ChangeLog": 4.1.0_vs_4.2.0.

    1 2015-01-16  Alex Manoussakis <amanou@savannah.gnu.org>
    2 	* gnats/Makefile.am: Add *.sh files to EXTRA_DIST
    3 	so they are picked up during make dist
    4 
    5 2015-01-15  Alex Manoussakis <amanou@savannah.gnu.org>
    6 	* gnats/Makefile.am: Remove reference to obsoleted file getdate.h
    7 
    8 2015-01-10  Alex Manoussakis <amanou@savannah.gnu.org>
    9 	* gnats/dbconfig.in: Change @PKGLIBEXECDIR@ to @pkglibexecdir@
   10 	* gnats/send-pr.conf.in: Change @SYSCONFDIR@ to @sysconfdir@
   11 
   12 2015-01-09  Alex Manoussakis <amanou@savannah.gnu.org>
   13 	* gnats/gnats.h: Add <limits.h> for LONG_MAX (moved from queue-pr.c).
   14 	* gnats/queue-pr.c: Move <limits.h> to better place for it (gnats.h).
   15 	* gnats/send-pr.sh:
   16 	- Add >&2 to recently added options' USAGE messages that missed it.
   17 	- Fix check for missing configuration to use unknown instead of default
   18 	since if we have a default other than unknown it's what we configured.
   19 	- Add count limits in the two while loops that ask for user input, to
   20 	prevent infinite loop that can happen if the script loses the terminal.
   21 	- Escape ampersands in the Synopsis being copied as the Subject because
   22 	they are special to "ed", to avoid things like AT&T changing to A: T.
   23 
   24 2015-01-06  Alex Manoussakis <amanou@savannah.gnu.org>
   25 	* gnats/queue-pr.c: Rearrange the order of #include directives
   26 	to address compilation issues on Solaris 8 and 10.
   27 	* gnats/query-pr.c: add g: to the short option list so that -g is
   28 	recognized.
   29 
   30 2015-01-05  Alex Manoussakis <amanou@savannah.gnu.org>
   31 	* gnats/send-pr.sh: 
   32 	- Fix missing x typo in "x$ORGANIZATION" comparison.
   33 	- Avoid forcing empty SUBMITTER to "unknown"; some sites build gnats
   34 	with ./configure --enable-submitter=" " to make Submitter-Id be input
   35 	by the user like any other field. By default it's "unknown" already.
   36 	- Replace ECHO_N / ECHO_C with the more portable printf, for predictable
   37 	behavior at runtime even when distributing pre-built clients elsewhere.
   38 
   39 2014-12-31  Alex Manoussakis <amanou@savannah.gnu.org>
   40 	* gnats/send-pr.sh: 
   41 	- Put in a hack for allowing PRs to be re-edited upon submission errors.
   42 	- Removed unneeded dependency to fgrep, grep is enough.
   43 	- Replace paste (PR#691) with tr again, this time adding an echo to
   44 	ensure trailing newline. Paste was too slow dealing with many values.
   45 	- send-pr will now check for GNATS_CREATE_TEMPLATE enviornment variable
   46 	and allow users to overload the default send-pr entry template by the
   47 	customized template file indicated by GNATS_CREATE_TEMPLATE.
   48 	- Avoid removing temp file to prevent race condition where someone
   49 	else may replace it with their own, causing the script to read
   50 	possibly malicious data. send-pr deletes temp files at the end anyway.
   51 	- Enhance send-pr to accept (host/port/user/passwd) like edit-pr does.
   52 
   53 2014-12-29  Alex Manoussakis <amanou@savannah.gnu.org>
   54 	* gnats/Makefile.am: Add getdate.c to CLEANFILES since it's generated,
   55 	and correct $(libexec_SCRIPTS) to $(pkglibexec_SCRIPTS).
   56 
   57 2014-12-28  Alex Manoussakis <amanou@savannah.gnu.org>
   58 	Updates that allow building with clang compiler tested on linux and OSX.
   59 
   60 	* gnats/internal.c (get_curr_date): Remove wrong cast and replace 0
   61 	with NULL to fix clang warning: "expression which evaluates to zero
   62 	treated as a null pointer constant of type 'time_t *'"
   63 
   64 2014-12-28  Alex Manoussakis <amanou@savannah.gnu.org>
   65 	Move datastore-specific programs and scripts to the ds-file directory
   66 	further paving the way for multiple datastore support.
   67 
   68 	* gnats/Makefile.am: Add . to SUBDIRS so libgnats.a is build first,
   69 	and add explicit target for query-pr.o so that the datastore-specific
   70 	objects are built before any programs, ensuring both libgnats and
   71 	datastore-specific libraries are available for linking.
   72 	Remove check-db, mkdb, mkcat, rmcat, gen-index, gen-closed-date
   73 	from this file, and move them to gnats/ds-file/Makefile.am
   74 	since they are datastore-specific.
   75 
   76 2014-12-27  Chad Walstrom <chewie@wookimus.net>
   77 	* gnats/Makefile.am: explicit build rules for shell scripts for
   78 	path substitution.
   79 	* gnats/*.sh: Removed *exec/*bin variables and updated the PATH
   80 	environment variable in each script.
   81 	* gnats/dbconfig.in: Update @LIBEXECDIR@ to @PKGLIBEXECDIR@
   82 
   83 2014-12-23  Alex Manoussakis <amanou@savannah.gnu.org>
   84 	* gnats/Makefile.am: Don't set DSLIB_DIR here, we are setting it
   85 	in configure.ac
   86 
   87 2014-12-22  Alex Manoussakis <amanou@savannah.gnu.org>
   88 	These changes allow building with gcc-4.8 without breaking older ones.
   89 
   90 	* gnats/Makefile.am: Use $@ $< variables instead of spelling files
   91 	  by name in the targets we build with -Wno-error. Also remove
   92 	  getdate.o target due to using newer getdate.y, but add gnugetopt.o
   93 	  to avoid its warnings with gcc-4.8 from being fatal.
   94 
   95 	* gnats/getdate.h: Removing file that's no longer needed.
   96 
   97 	* gnats/getdate.y: Replacing with copy from the libarchive-2.6.2
   98 	  library, since the old file had build issues on new systems / gcc-4.8.
   99 	  The replacement builds clean, and adds checks for invalid dates
  100 	  such as 2002-03-32.
  101 
  102 2014-12-22  Alex Manoussakis <amanou@savannah.gnu.org>
  103 
  104 	These changes allow building with -Werror turned back on all the way
  105 	up to gcc-4.7.
  106 
  107 	* gnats/Makefile.am:
  108 	  - Avoid warnings from being fatal for generated code or other
  109 	  libraries by using custom targets for fconfigl.o, getdate.o,
  110 	  gnugetopt1.o, regex.o building them as:
  111 	  $(COMPILE) -Wno-error -c -o file.o file.c
  112 
  113 	* gnats/edit.c (lock_pr): Refactor the code a bit so that the return
  114 	  value of fgets() is used, to avoid compilation warning.
  115 
  116 	* gnats/gnatsd.c
  117 	  (startConnection):
  118 	  - Get rid of unused variable access, and call exit when error is
  119 	  encountered.
  120 	  - Call syslog instead of log_msg, so that the %m sequence will work;
  121 	  it prints strerror(errno) according to syslog(3). This minor
  122 	  change also brings consistency with the other logging in this
  123 	  function which also calls syslog().
  124 
  125 	  (main): Get rid of unused variable dbinfo.
  126 
  127 	* gnats/query.c
  128 	  (process_format): Add missing format specifier "%s" to fprintf
  129 	  statement to avoid compilation warnings.
  130 
  131 	  (parseSimpleQueryExpression): Initialize len variable to avoid
  132 	  compilation warnings.
  133 
  134 	* gnats/queue-pr.c (main): Call usage() upon error, instead of
  135 	  trying to use fprintf with an array of strings in a broken way.
  136 
  137 	* gnats/acconfig.h: Removing deprecated file, not needed anymore
  138 	  since we are using AC_DEFINE with 3 arguments for stuff like
  139 	  HAVE_KERBEROS and HAVE_SOCKLEN_T which generates the templates for
  140 	  them.
  141 
  142 2014-12-21  Alex Manoussakis <amanou@savannah.gnu.org>
  143 
  144 	* gnats/gnats.h: Only define _POSIX_SOURCE if we are on linux, and
  145 	  especially NOT FreeBSD since that macro causes errors with system
  146 	  headers there unless sys/types.h is included earlier, but feature
  147 	  macros are supposed to be defined before any system headers are
  148 	  included.
  149 
  150 2012-01-07  Chad Walstrom  <chewie@wookimus.net>
  151 
  152 	* gnats/Makefile.am: Added in AM_CFLAGS to map in GCC_CFLAGS.
  153 	Added AM_LFLAGS to map in FLEX_LFLAGS.
  154 
  155 	* gnats/acconfig.h: Regenerated.
  156 
  157 	* gnats/fconfigl.l: Added missing function prototypes.
  158 	(Alexandros...)
  159 
  160 	* gnats/fconfigl.l: Added noinput and never-interactive
  161 	options to the lexer. flex does not produce very clean source.
  162 
  163 	* gnats/gnats.h: Added _POSIX_SOURCE = 1 before #include
  164 	<stdio.h> since fileno is not standard C. The feature test
  165 	macro is required.
  166 
  167 	* gnats/regex.c: Added missing prototypes.
  168 
  169 2012-01-07  Alexandros Manoussakis <alex@juniper.net>
  170 
  171 	* gnats/getdate.y: Updated #if macro to include STDC_HEADERS
  172 
  173 2009-12-26  skoot@qi.pl
  174 
  175 	* send-pr.sh: Copy TEMP file back in to request before sending
  176 	'--request-id'. Closes: #484
  177 
  178 2008-02-03  Chad Walstrom  <chewie@wookimus.net>
  179 
  180 	* edit-pr.sh: Exit with error if PR could not be locked.
  181 	Closes: #767
  182 
  183 2008-02-03  Stephane Chazelas  <Stephane@artesyncp.com>
  184 
  185 	* Makefile.am(install-data-hook): Fix call to install default
  186 	configuration files. Closes: #768
  187 
  188 	* query.c(stripWhiteSpace): Fixes failed queries because of
  189 	whitespace stripping.  Closes: #771
  190 
  191 	* edit-pr.sh: Use the email address in the responsible field
  192 	if found, otherwise use the environment settings.  Closed:
  193 	#773
  194 
  195 2007-12-28  Stephane Chazelas  <Stephane@artesyncp.com>
  196 
  197 	* gnatsd.c(startConnection): Test value rather than "defined"
  198 	for HAVE_DECL_AF_INET6.  It is always defined.  Closes: #615
  199 
  200 2007-09-22  Yves Martin  <yves.martin@support.elca.ch>
  201 
  202 	* cmds.c (set_confidential_access): removed spaces in the
  203 	query expression.  Affects versions 4.1.0 forward.
  204 
  205 2007-09-16  Chad Walstrom  <chewie@wookimus.net>
  206 
  207 	* autoconf.h.in: Dropped.  Generated by autoheader, thereby
  208 	doesn't belong in CVS.
  209 
  210 	* Makefile.am (install-data-hook): Conditionally copy in
  211 	configuration files rather than overwrite what might already
  212 	be there.  Fail gracefully when symlinks fail.
  213 
  214 2007-08-08  Chad Walstrom  <chewie@wookimus.net>
  215 
  216 	* Everything: Updated all of the copyright notices to indicate
  217 	GPL version 3 is now the appropriate license.
  218 
  219 	* mit-copyright.h: Noticed that mk_auth.c was without this
  220 	important document.
  221 
  222 2007-04-30  Martin Tournoij  <carpetsmoker@xs4all.nl>
  223 
  224 	* install-sid.sh (usage): The install-sid script wants to be
  225 	executed by /bin/sh, but is a bash script.  Remove "function"
  226 	keyword.  Closes: PR#746
  227 	
  228 2007-03-01  Chad Walstrom  <chewie@wookimus.net>
  229 
  230 	* Makefile.am: Used AM_CONDITIONAL that set in ../acinclude.m4
  231 	to build mk_auth.c intelligently.
  232 
  233 	* mk_auth.c: Removed #ifdef HAVE_KERBEROS...#endif
  234 
  235 	* autoconf.h.in: configure correctly included a new define for
  236 	HAVE_KERBEROS.
  237 
  238 	* client.c(clientConnect): Moved host and server variable
  239 	declaration up so that the Kerberos routines could call them.
  240 
  241 2006-09-29  Stephane Chazelas  <Stephane@artesyncp.com>
  242 
  243 	* gnatsd.c(startConnection): Fixed conditional, moved paren
  244 	outside macro.  Closes: PR#615
  245 
  246 2006-10-04  Chad Walstrom  <chewie@wookimus.net>
  247 
  248 	* autoconf.h.in: configure included a new define for
  249 	HAVE_DECL_AF_INET6.
  250 
  251 	* gnatsd.c(startConnection): Conditionally include AF_INET6 if
  252 	defined as a symbol or preprocessor variable.
  253 	Closes: PR#615
  254 
  255 2006-09-29  Chad Walstrom  <chewie@wookimus.net>
  256 
  257 	* at-pr.sh, check-db.sh, delete-pr.sh, diff-prs.sh,
  258 	edit-pr.sh, file-pr.sh, install-sid.sh, mail-agent.sh,
  259 	mail-query.sh, mkcat.sh, mkdb.sh, rmcat.sh, send-pr.sh: Added
  260 	the path environment variables determined by autoconf to each
  261 	script so that variable substitution works correctly.  Fixed
  262 	some typos. Closes: PR#669
  263 
  264 	* Makefile.am: Removed targets for shell scripts.  Handled by
  265 	../configure.ac now.
  266 
  267 
  268 2006-09-29  Stephane Chazelas  <Stephane@artesyncp.com>
  269 
  270 	* send-pr.sh: Portability problem with sed and tr.  Use paste
  271 	instead.  Closes: PR#691
  272 
  273 	* send-pr.sh: The comments inside <...> are not removed from
  274 	custom templates before submitting the PR as they are when a
  275 	template is not provided.  Some error messages where not sent
  276 	to stderr. Some tidy up in other places as well.  Added a
  277 	$SENDPR_CLEANUP variable that the user might want to define in
  278 	his ~/.send-pr.conf.  Closes: PR#697
  279 
  280 2006-08-06  Stephane Chazelas  <Stephane@artesyncp.com>
  281 
  282 	* mkcat.sh: doesn't take into account the "category-dir-perms"
  283 	parameter in dbconfig when creating category directories.
  284 	Closes: PR#655
  285 
  286 2006-06-30  Stephane Chazelas  <Stephane@artesyncp.com>
  287 
  288 	* edit-pr.sh: missing quote on line 172 (it's OK for the
  289 	Bourne shell and AT&T ksh based sh, but not other shells), and
  290 	the tr syntax, though POSIX is causing trouble with Solaris
  291 	tr.  Closes: PR#613
  292 
  293 2006-05-30  Michael van Elst  <mlelstv@serpens.de>
  294 
  295 	* diff-prs.sh: Speed up diffs-prs.sh. Do not append linebuffers
  296 	but store them in an array and don't bother to compare field
  297 	contents if the number of lines already differs.  Closes: PR#598.
  298 	(Committed by Chad Walstrom).
  299 
  300 2006-05-24  Alexandros Manoussakis  <amm2@andrew.cmu.edu>
  301 
  302 	* gnats/edit.c:  Removed function addAuditEntryP which checked
  303 	globally for an add-audit-trail line in dbconfig. Updated function
  304 	applyChangeActions so that add-audit-trail is checked in the loop
  305 	that goes through the on-change blocks. This makes the on-change
  306 	query-expression be honored, and also allows for on-change blocks
  307 	to have different audit-trail-formats. Also added audit-trail-format
  308 	processing in the global on-change block.
  309 	Closes: PR#551
  310 
  311 2006-05-11  Jonathan Guthrie  <jguthrie@brokersys.com>
  312 
  313 	* gnats/gnatsd.c(get_name): Added a parameter to accept
  314 	address type and make it safe for ipv6 addresses.
  315 
  316 	(startConnection): changed call to get_name and tested for
  317 	AF_INET6 family.  Closes: PR#601
  318 
  319 2006-04-20  Chad C. Walstrom <chewie@wookimus.net>
  320 
  321 	* gnats/gnats.h: Added the global variable global_db_list_file
  322 	so that it can be specified on the command-line.
  323 	
  324 	* database.c(initDatabaseList): Use the global variable
  325 	variable to specify the location of the ``databases'' file.
  326 	
  327 	* gnats/gen-closed-date.c, gen-index.c, getclose.c, gnatsd.c,
  328 	pr-age.c, pr-edit.c, pr-stat.c, query-pr.c, queue-pr.c(main):
  329 	Added long (--global-databases-file) and short option (-g)
  330 	processing for setting the global_db_list_file variable.
  331 	Closes: PR#544
  332 
  333 2005-12-31  Chad C. Walstrom <chewie@wookimus.net>
  334 
  335 	* gnats/Makefile.am: Cleanup. Some files weren't being
  336 	included in the distribution tarball; the shell scripts for
  337 	example.  Added the "dist_" prefix to the emacs lisp file.  No
  338 	need to set shells executable, automake will handle that.
  339 	Switched back to datadir instead of pkgdatadir.  Added
  340 	install-data-hook to create symlinks from default database
  341 	files in the datadir.
  342 
  343 	* gnats/ds-file/Makefile.am: Fixed typo.  EXTRA_DIST_FILES to
  344 	EXTRA_DIST.
  345 
  346 	* gnats/at-pr.sh, gnats/check-db.sh, gnats/delete-pr.sh,
  347 	gnats/edit-pr.sh, gnats/file-pr.sh, gnats/install-sid.sh,
  348 	gnats/mail-query.sh, gnats/mkdb.sh, gnats/send-pr.sh: Updated
  349 	pathname substitution to reflect reality, using @libexecdir@
  350 	instead of @prefix@/lib/, for example.
  351 	
  352 2005-12-22  Chad C. Walstrom  <chewie@wookimus.net>
  353 
  354 	* gnats/*.sh: Replaced xVARx with @VAR@ to simplify build
  355 	substitution.
  356 
  357 2005-11-21  Mel Hatzis <hatzis@juniper.net>
  358 
  359 	* gnats/gnats.el(gnats-process-filter): Bug fix.
  360 	(gnats-menu-build-paned-menu, gnats-request-enum): New feature.
  361 	Build multi-paned menus for some lists (useful if you have
  362 	many categories for example).
  363 
  364 2005-11-21  Mark D Baushke <mdb@gnu.org>
  365 
  366 	* gnats.el (gnats-do-query): Accept a list of PR numbers as an
  367 	alternative to just a gnats query expression. (Originally
  368 	submitted on 2003-10-10.)
  369 
  370 2005-11-07  Oli Möller
  371 
  372 	* gnats/gnats.el (gnats-get-addr-info, query-pr, send-pr,
  373 	edit-pr, view-pr): Patch #1 - Killed Buffers.  Sometimes
  374 	kill-buffer was invoked with nil argument, killing the current
  375 	buffer.
  376 
  377 	(gnats-server-response-ok): Patch #2: Response code 300..351
  378 	considered "ok".
  379 
  380 	(gnats-validate-field, gnats-server-resp-to-string,
  381 	gnats-submit-pr): Patch #3: Edit and submit.  Switch to view
  382 	mode after edit and correctly display server response after
  383 	submit.  It occurred that the user was unsure about the status
  384 	of a submission and unintentionally submitted it again and
  385 	again...
  386 
  387 	(gnats-get-mail-alias) Patch #4: Missing user name in audit
  388 	trail.  Audit trail entries of actions performed via the Emacs
  389 	interface were missing the user name.  Something is wrong with
  390 	the code in `gnats-get-mail-alias'.  This patch is only a
  391 	work-around and ALWAYS uses the username from the server.  The
  392 	real solution would be to find out why (gnats-send-command
  393 	"ADMV" "builtinfield:responsible") returns an empty string.
  394 
  395 	(gnats-view-mode-map) Patch #5: Additional keys for view-mode
  396 
  397 	(gnats-change-database) Patch #6: Fix for PR#508.
  398 
  399 2005-11-07  Alex Manoussakis <amm2@andrew.cmu.edu>
  400 
  401 	* The following changes closes PR#504: "gnatsd crashes when
  402 	trying to lock a nonexistent PR".
  403 
  404 	* gnats/ds-file/index.c, gnats/ds-file/index.h:
  405 	(getCategoryFromIndex, findPrCategoryBinary, findPrCategory)
  406 	Removed. Useless nowdays.
  407 
  408 	* gnats/pr.c (get_pr_path): does nothing when a PR is not found in the
  409 	index, instead of calling getCategoryFromIndex.  Also removed
  410 	the 4th argument from get_pr_path since it's now unneeded.
  411 	get_pr_path will return NULL and the error is handed correctly
  412 	later on. (the user gets the message: "No PR 2 listed in the
  413 	index")
  414 
  415 2005-10-30  Chad C. Walstrom  <chewie@wookimus.net>
  416 
  417 	* gnats/Makefile.in, gnats/aclocal.m4, gnats/configure,
  418 	gnats/configure.in, gnas/getdate.c, gnats/ds-file/Makefile.in
  419 
  420 	* gnats/autoconf.h.in: Updated via autoheader.
  421 
  422 	* gnats/getdate.y: Fixed three typos, missing semicolons.  Builds
  423 	cleanly with GNU Bison 1.35.
  424 
  425 	* gnats/getdate.y: Fixed three typos, missing semicolons.
  426 
  427 	* gnats/gnats-databases.in, gnats/dbconfig.in: Replaced 'xVARIABLEx'
  428 	delimiters with '@VARIABLE@'.
  429 
  430 	* gnats/mk_auth.c: Enclosed entire file in #ifdef HAVE_KERBEROS.
  431 	Should use a more sophisticated conditional expression to determine if
  432 	it will be compiled or not.
  433 
  434 	* gnats/gnats-pwconv.c: Renamed const VERSION to PROGRAM_VERSION
  435 
  436 	* gnats/autoconf.h.in: Apparently, this should be included.
  437 	autoheader generates the file as gnats/autoconf.h.in~ and expects you to
  438 	move it into place for use.
  439 
  440 	* gnats/Makefile.am, gnats/ds-file/Makefile.am:
  441 	New automake configuration files.
  442 
  443 2005-10-20  Chad Walstrom  <chewie@wookimus.net>
  444 
  445 	* getdate.y, getdate.c: Three typos fixed in getdate.y,
  446 	missing semicolons.  Regenerated getdate.c with GNU Bison
  447 	1.35.
  448 
  449 2005-08-19  Malcolm Purvis <malcolmp@aurema.com>
  450 
  451 	* misc.c: implement unsetenv().  Allows builds on Solaris 2.x
  452 	machines.  Closes: PR#495.
  453 
  454 2005-07-15  Chad Walstrom  <chewie@wookimus.net>
  455 
  456 	* Makefile.in (install-gnats-tools, install-gnats-bin): Removed chown
  457 	and chmod entries for setting binaries suid.  CAN-2005-2180 advisory.
  458 	gen-index as setuid root can overwrite any system file.
  459 
  460 2005-02-19  Mel Hatzis  <hatzis@wattes.org>
  461 
  462 	* configure.in: Added the beginnings for supporting multiple
  463 	backend datastores. A lot of the funtionality dealing directly
  464 	with the flat-file datastore has been moved into it's own
  465 	library (libds-file.a) which is pulled in unconditionally for now
  466 	- since there are no alternative backend datastores to configure.
  467 
  468 
  469 	* Makefile.in: Moved most of logic dealing with the flat-file
  470 	backend into a ds-file sub-directory for which we generate a
  471 	libds-file.a library. Modified all binary targets to link
  472 	against this library - the name of the datastore library to link
  473 	with is actually supplied by configure. Note that the index
  474 	file is now part of the flat-file datastore library; GNATS_LIBS
  475 	now includes a $(DS_LIB) macro defined by configure; a ds-libs
  476 	target has been added for building the datastore library; fconfig.y
  477 	is now generated (see the note about fconfig.y below).
  478 
  479 	* ds.mk: New file. Used to generate the Makefile in all datastore
  480 	implementations. Contains all the common elements of a datastore
  481 	Makefile.
  482 
  483 	* aclocal.m4: Regenerated.
  484 
  485 	* autoconf.h.in: Regenerated.
  486 
  487 	* configure: Regenerated.
  488 
  489 	* cmds.c (do_server_query, GNATS_lock, GNATS_unlk, GNATS_edit):
  490 	Function renames for the datastore API - iterate_prs, prExists and
  491 	readPRWithNum renamed to db_query, pr_exists and pr_load_by_id
  492 	respectively. The renames are to conform to a standard naming
  493 	convention used by the datastore API to assist with datastore
  494 	implementation.
  495 	(GNATS_rset): Removed references to the index, which is now only
  496 	relevant when GNATS if configured with the flat-file datastore.
  497 	This change involves a modification to the message accompanying
  498 	the return code when the index is reloaded - since the index is
  499 	no longer always relevant, it makes no sense for the GNATS server
  500 	to refer to it in the client/server protocol.
  501 
  502 	* database.c (struct databaseInfo, newDatabaseInfo): Replaced
  503 	indexDesc with a void ds_private pointer which is intended to cache
  504 	any datastore specific information (such as the indexDesc). The
  505 	indexDesc is now defined and exclusively used in the flat-file
  506 	datastore library and is pulled in via ds_private when needed.
  507 	(getIndexDesc, setIndexDesc, clearIndexDesc): Moved to index.c in
  508 	the flat-file datastore library since this is no longer generically
  509 	relevant.
  510 	(getDatastorePrivate, setDatastorePrivate): New functions. Used for
  511 	managing the datastore specific database elements such as the index
  512 	in the flat-file datastore implementation.
  513 	(loadDatabase): Replaced  all flat-file datastore specific
  514 	functionality with a new "db_init" function which is part of the new
  515 	GNATS datastore API.
  516 	(freeDatabaseInfo): Replaced all references to functions which free
  517 	the index with a call to a new "db_destroy" function which is part of
  518 	the new GNATS datastore API.
  519 
  520 	* database.h (setIndexDesc, setDatastorePrivate): Replaced
  521 	setIndexDesc with setDatastorePrivate - setIndexDesc now declared
  522 	in ds-file/index.h. Any datastore specific configuration elements
  523 	defined in the dbconfig (via ds-file/t-fconfig) are cached in the
  524 	DatabaseInfo struct via setDatastorePrivate.
  525 	(getIndexDesc, getDatastorePrivate): Replaced getIndexDesc with
  526 	getDatastorePrivate - getIndexDesc now declared in ds-file/index.h.
  527 
  528 	* edit.c (processPRChanges): No need to check if the PR has been
  529 	completely read into memory...all callers of this function do so.
  530 	Furthermore, the idea of reading a PR partially is not desirable
  531 	for a generalized backend datastore.
  532 	(rewrite_pr): Moved all the logic associated with reading/writing
  533 	to a PR file and dealing with the index into a new 'pr_update'
  534 	function in ds-file/pr.c.
  535 	(replace_pr): Renamed prExists to pr_exists, readPRWithNum to
  536 	pr_load_by_id and fillInPR with pr_load. These functions are
  537 	all part of the datastore API and have been renamed for clarity.
  538 
  539 	* ds-file/t-fconfig, fconfig.y, fconfig.y.in: fconfig.y renamed to
  540 	fconfig.y.in which no longer contains any datastore specific
  541 	grammar. The datastore specific items are now pulled in from
  542 	a t-fconfig file located in the ds-file directory. The fconfig.y
  543 	file is generated by concatenating fconfig.y.in with t-fconfig.
  544 	To accomodate this, fconfig.y.in now contains a dsDescription
  545 	section which all datastore's must define.
  546 
  547 	* file-pr.c (createNewPRFile): Renamed to createNewPR since we'll 
  548 	eventually be using alternatives to files for the backend. Also,
  549 	moved all the logic associated with reading/writing to a PR file
  550 	dealing with the index into a new 'pr_create' function in
  551 	ds-file/pr.c.
  552 	(run_atpr): Pass in an int for the PR number since we
  553 	no longer refer to a string representation of it in createNewPR.
  554 	(checkIfReply, append_report): Function renames for datastore API.
  555 	(getBugNumber): Moved to ds-file/pr.c - only relevant to flat-file
  556 	datastore.
  557 	(submit_pr): Function rename for multiple backend datastore support.
  558 
  559 	* gnats.h: No longer pull in index.h...this is only used for the
  560 	flat-file datastore.
  561 
  562 	* index.c, index.h, ds-file/index.c, ds-file/index.h: Moved the
  563 	index.[ch] files into the new ds-file sub-directory which implements
  564 	the flat-file backend datastore. The index is now only applicable
  565 	if GNATS is configured with the flat-file backend datastore. All
  566 	references to the index in the DatabaseInfo and PR data structures
  567 	have been replaced with an opaque 'ds_private' field, which is used
  568 	to cache all datastore specific data. The getIndexDesc/setIndexDesc
  569 	function definitions were moved out of database.c into index.c since
  570 	these functions are specific to the flat-file datastore.
  571 
  572 	* pr.c (allocPR): Replaced allocIndex with a call to the new pr_init
  573 	function in the datastore API. The flat-file datastore implementation
  574 	of pr_init is where allocIndex is now called. Also handle the case
  575 	where there are no fields in the dbconfig without corrupting memory.
  576 	(get_pr, get_pr_from_index, get_pr_path, pr_file_readable): These
  577 	functions have been relocated to ds-file/pr.c since they are
  578 	specific to the flat-file datastore.
  579 	(fillInPR): Renamed to pr_load and moved to ds-file/pr.c since the
  580 	implementation of this function is datastore specific.
  581 	(field_value): Replaced the call to indexValue which retrieves the
  582 	field value from the flat-file index with a datastore API function
  583 	call named field_cache_value. This allows for datastore
  584 	implementations to utilize a cache (such as the flat-file index),
  585 	for keeping some field values in memory.
  586 	(free_pr): Replaced calls related to freeing the index with a new
  587 	datastore API function named pr_destroy. The flat-file datastore
  588 	implementation of pr_destroy is where the index is now free'd.
  589 	(prExists): Renamed to pr_exists and moved to ds-file/pr.c since
  590 	the implementation of this function is datastore specific.
  591 	(readPRWithNum): Renamed to pr_load_by_id and moved to ds-file/pr.c
  592 	since the implementation of this function is datastore specific.
  593 	(pr_delete): Moved to ds-file/pr.c since the implementation of this
  594 	function is datastore specific.
  595 
  596 	* pr.h (PR_struct): Replaced the index pointer with an opaque
  597 	pointer to a struct containing datastore specific data. The index
  598 	is now defined within this opaque datastore data structure only when
  599 	GNATS is linked  with the flat-file datastore library.
  600 	(fillInPR): Renamed to pr_load and moved to ds.h.
  601 
  602 	* query.h (index.h): Removed index.h since the index is no longer a
  603 	generic part of the GNATS datastore; index.h is now only pulled in
  604 	when GNATS is configured with the flat-file backend.
  605 	(*QueryItem, SearchItem, *QueryTree, struct queryExpr): Imported
  606 	from query.c since these is required by the datastore library.
  607 	(*QueryFunc): Moved to ds.h since this is an integral part of the
  608 	datastore query functionality from which it is referenced.
  609 	(iterate_prs): Renamed to db_query and moved to ds.h since this is
  610 	now a part of the GNATS backend datastore API. The function was
  611 	renamed to conform to a standard naming convention used by the
  612 	datastore API to assist with datastore implementation.
  613 
  614 	* query.c (*QueryItem, SearchItem, *QueryTree, struct queryExpr):
  615 	Moved to query.h since these are now referenced from the datastore
  616 	library.
  617 	(fieldCompare, process_format): The index is now only relevant when
  618 	GNATS is configured with the flat-file backend. The check for
  619 	whether a PR is only partially in memory or whether we're only
  620 	referencing an indexed field is no longer relevant in all cases.
  621 	The datastore is now responsible for implementing a partial PR
  622 	cache (such as the index).
  623 	(pr_matches_tree): No longer a static - referenced by the datastore
  624 	backend.
  625 	(iterate_prs): Renamed to db_query and moved into the datastore
  626 	library - this is a member of the datastore API.
  627 
  628 	* ds.h: New File. Contains function declarations for all functions
  629 	implementing the GNATS datastore API. All datastore implementations
  630 	are required to define these functions.
  631 
  632 	* ds-file/Makefile.in, ds-file/ds-file.h, ds-file/db.c,
  633 	ds-file/pr.c, ds-file/fld.c: New files. Collectively implement the
  634 	GNATS flat-file datastore.
  635 
  636 	* gen-index.c: We will eventually only build this as part of the
  637 	flat-file datastore. For now, pull in the index include file from
  638 	the ds-file directory.
  639 
  640 	* getclose.c (do_prlist): Reworked so as not to use the flat-file
  641 	index. Use a query to get the relevant PRs for processing.
  642 
  643 	* pr-age.c (main): Function rename for multiple backend datastore.
  644 
  645 	* pr-edit.c (main): Function renames for multiple backend datastore.
  646 
  647 	* query-pr.c (main): Function renames for multiple backend datastore.
  648 
  649 2005-02-19  Mel Hatzis  <hatzis@wattes.org>
  650 
  651 	* adm.c (copy_adm_entry): Handle blank metadata fields by correctly
  652 	assigning the relevant field in the adm struct to NULL - and thereby
  653 	avoid an attempt to xstrdup a NULL value.
  654 
  655 	* file-pr.c (createNewPRFile): Avoid a NULL pointer dereference when
  656 	there's a blank response time field in the submitters file.
  657 
  658 	* gnatsd.c (findUserAccessLevel): Avoid a strlen of NULL when the
  659 	gnatsd.user_access file contains a blank 'database-alias' field.
  660 
  661 	* gnats.h (rewrite_pr): Made it a static function in edit.c - it
  662 	wasn't being used outside this scope anyway.
  663 
  664 	* mail.c (get_responsible_address): Avoid a NULL pointer dereference
  665 	if the responsible file doesn't have an email address for the
  666 	gnats-admin user.
  667 
  668 	* index.c, index.h (getPrevPR, setPrevPR, setNextPR): New functions.
  669 	The index chain is now doubly linked allowing edited PRs to be
  670 	replaced without incurring the overhead of a search through the
  671 	chain. As well as offering significantly better performance, this
  672 	supports a change to the PR edit functionality whereby we now start
  673 	with a copy of the old PR as well as the updated PR instead of
  674 	retrieving the old PR (from the index) in the guts of rewrite_pr.
  675 	The motivation behind this change is to isolate the index
  676 	functionality and move toward a generic backend datastore which
  677 	doesn't require the index.
  678 	(replaceCurrentPRInIndex): Modified signature. Pass in the PR to be
  679 	replaced (as well as the new PR) since we can now use the doubly
  680 	linked index chain to replace the PR without searching for it.
  681 
  682 	* pr.h (lookup_pr_path): Removed. Replaced by a call to the new
  683 	get_pr_from_index () function followed by a call to (a modified)
  684 	get_pr_path (). This change allows a single index search to be done
  685 	once (early on in a given call stack) to retrieve a PR and
  686 	thereafter access the PR file without requiring  more index
  687 	searches.
  688 	(pr_delete): New function. Contains the flat-file specific logic
  689 	related to PR deletions which will be moved out into a flat-file
  690 	backend when the datastore backend is generalized.
  691 
  692 	* pr.c (get_pr_from_index): New function. Retrieve a PR from the
  693 	index.
  694 	(pr_file_readable): New function. Check if a file can be opened for
  695 	reading.
  696 	(pr_delete): New function. Flat-file specific logic for delete.
  697 	(prExists): Now utilize get_pr_from_index () and get_pr_path ()
  698 	instead of the deprecated lookup_pr_path (). 
  699 	(readPRWithNum): Ditto. Also set the PR's next/prev index pointers.
  700 	(get_pr_path): New signature. Take in a PR * instead of searching
  701 	the index.
  702 	(lookup_pr_path): Deprecated.
  703 
  704 	* edit.c (applyChangeActions, processFieldChange, sendAuditMail):
  705 	Repositioned within the file so as not to require prototypes.
  706 	(processPRChanges): Handle NULL values appropriately when undoing
  707 	changes to modified read-only fields.
  708 	(rewrite_pr, replace_pr, edit_field): rewrite_pr now takes in a copy
  709 	of the old pr instead of retrieving it from the index. This is in
  710 	preparation for allowing it to be used with more than just the flat
  711 	file backend datastore. Also moved some error checking out of
  712 	rewrite_pr and simplified it...no need to validate the whole PR
  713 	when editing a single field.
  714 	(deletePR): Moved the file-related logic into a new pr_delete function
  715 	inside pr.c thereby preparing for a general backend datastore.
  716 
  717 2005-02-24  Chad Walstrom  <chewie@wookimus.net>
  718 
  719 	* man/*.man, man/Makefile.in: Removing historical remnants.  Manpages
  720 	  were moved to ../doc/man.
  721 
  722 2005-02-22  Mike M. Volokhov  <mishka@apk.od.ua>
  723 
  724 	* misc.c (xmalloc, xrealloc, xstrdup, basename, asprintf, vasprintf):
  725 	New fault-tolerant functions (x*), rewritten from scratch as
  726 	replacements for libiberty stuff. A basename() and [v]asprintf()
  727 	functions was stolen from libiberty tree to be more consistent
  728 	on various platforms.  The xstrndup() function was strengthen
  729 	when passed length is less than 1; this fixes potential problems
  730 	with other functions which relies on xstrndup(), i.e.:
  731 	strlen(xstrndup(string, 0)).
  732 
  733 	* gnugetopt.c, gnugetopt1.c, gnugetopt.h: Stolen from libiberty
  734 	sources to avoid possible portability problems and was bit
  735 	enreached with GNATS build directives. Contains GNU getopt(),
  736 	getopt_long(), and getopt_long_only() functions (however GNATS
  737 	use getopt_long only, which is now enforced in configure.in).
  738 	Files was renamed to gnu* for more clean selection of getopt sources.
  739 
  740 	* configure, configure.in: The following functions now handled
  741 	by AC_CHECK_FUNC macro - basename, asprintf, vasprintf, getopt,
  742 	getopt_long. See also autoconf.h.in file.
  743 
  744 	* autoconf.h.in: The libiberty stuff was replaced with GNATS own
  745 	HAVE_GETOPT* and HAVE_BASENAME triggers.
  746 
  747 	* ansidecl.h: Stolen from libiberty sources. This generic
  748 	definitions used accross GNATS sources.
  749 
  750 	* gnats.h: Add prototypes for new functions from misc.c. Include
  751 	"ansidecl.h", stored locally. Include getopt_long select logic.
  752 
  753 	* Makefile.in: Remove libiberty stuff, include gnugetopt* sources.
  754 
  755 2004-11-30  Chad Walstrom  <chewie@wookimus.net>
  756 
  757 	* gnatsd.c, gnats-pwconv.c (HAVE_CRYPT_H): Changed HAVE_CRYPT to
  758 	HAVE_CRYPT_H, which is the real define found in autoconf.h.in.
  759 
  760 	* gnats-pwconv.c: Removed extraneous header file #includes.
  761 
  762 	* misc.c (xstrndup): Added sanity check for len parameter, and
  763 	documented the function.
  764 
  765 	* Makefile.in (install-tools-bin): Removed $(srcdir) from install
  766 	command for diff-prs, since it is a generated file from diff-prs.sh.
  767 	This allows builds in directories != srcdir.
  768 
  769 2004-11-18  Pankaj Garg  <gargp@acm.org>
  770 
  771 	* mail.c (getOneAddress): Check addr pointer against addrStart before
  772 	trying to copy a zero-length string.
  773 
  774 2004-11-18  Chad Walstrom  <chewie@wookimus.net>
  775 
  776 	* configure.in: Added conditional define's for HAVE_DECL_GETOPT and
  777 	HAVE_DECL_BASENAME to get around include/getopt.h and
  778 	include/libiberty.h "three-state macro" function declarations of
  779 	getopt() and basename(). Updated Copyright.
  780 
  781 	* configure: regnerated
  782 
  783 	* autoconf.h.in: regenerated
  784 
  785 2004-11-13  Chad Walstrom  <chewie@wookimus.net>
  786 
  787 	* configure.in (--with-lispdir): Added new option to specify lispdir
  788 	rather than have it automatically determined.  Updated version to
  789 	4.1.0.
  790 
  791 	* configure: regenerated
  792 
  793 	* Makefile.in (install-gnats-arch-indep): Added $(DESTDIR) variable to
  794 	test for GNATSD_HOST_ACCESS_FILE
  795 
  796 2004-11-03  Chad Walstrom  <chewie@wookimus.net>
  797 
  798 	* Makefile.in (VERSION): replaced version string with
  799 	@PACKAGE_VERSION@ substitution variable from configure.in.
  800 
  801 	* configure.in (AC_INIT): Updated to use autoconf v2.50 to specify
  802 	PACKAGE_NAME, PACKAGE_VERSION, and PACKAGE_BUG.  Set version to 4.1.
  803 	(AC_CONFIG_FILES, AC_OUTPUT): Updated use of these macros to v2.50
  804 
  805 	* configure: regenerated
  806 
  807 2004-09-06  Hans-Albert Schneider  <Hans-Albert@HA-Schneider.de>
  808 
  809 	* misc.c (gnats_strftime): If we have to interpret %z ourselves,
  810 	avoid a buffer overflow with 10 or more %z in format string.
  811 	(log_msg): Fix format string bug (in calling syslog()) described in
  812 	http://lists.gnu.org/archive/html/bug-gnats/2004-06/msg00028.html
  813 	and in http://www.zone-h.org/advisories/read/id=4889
  814 
  815 	* gnats-pwconv.c: commented out definition of MAXLINE which is not
  816 	used.  gcc -Werror complains about this.
  817 
  818 2004-06-11  Jon Meredith  <jonm@alchemetrics.co.uk>
  819 
  820 	* misc.c (gnats_strftime): added check for +/- at the start of the
  821 	  string to support SCO OpenServer.  The undocumented %z does not have
  822 	  a '+' on for positive offsets, so the return from get_curr_date()
  823 	  cannot be parsed by get_date().  (Closes: patch #1461)
  824 
  825 2004-06-09  Chad Walstrom  <chewie@wookimus.net>
  826 
  827 	* Makefile.in, man/Makefile.in: Prepended the $(DESTDIR) variable to
  828 	  all destination targets. This will help with building distribution
  829 	  packages.  Moved mkinstalldir calls to install targets.
  830 
  831 2003-10-26  Mel Hatzis  <hatzis@juniper.net>
  832 
  833 	* file-pr.c (createNewPRFile): Get builtin originator field rather
  834 	than field named "Originator".
  835 
  836 	* client.c (read_server): Free memory for line to avoid leak.
  837 	
  838 2003-09-21  Yngve Svendsen <yngve.svendsen@sun.com>
  839 
  840 	* configure.in: Add standard check for awk program
  841 	* configure: Regenerated
  842 	* Makefile.in: Substitute AWK in diff-prs.sh.  Add rm of diff-prs
  843 	to domostlyclean target.
  844 	* diff-prs: Renamed to diff-prs.sh.  Add substitution marker for
  845 	awk program
  846 
  847 2003-08-30  Carl Lindberg  <lindberg@clindberg.org>
  848 
  849 	* mail.c (getOneAddress): Fix test for start address when ignoring
  850 	ending white space.
  851 
  852 2003-08-30  Mel Hatzis  <hatzis@juniper.net>, Andrew J. Gray  <andrewg@gnu.org>
  853 
  854 	* client.c (get_reply): Check for outfp being NULL.
  855 	(netSendPRCmd): Add flag to show information received.  All
  856 	callers changed.
  857 	* cmds.c (GNATS_subm): Send PR number for new submission.
  858 	* file-pr.c (submit_pr): Return PR number for new submission.
  859 	* pr-edit.c (long_options, handleNetworkEdit, main): Add
  860 	show_prnum option.
  861 
  862 2003-07-27  Andrew J. Gray  <andrewg@gnu.org>
  863 
  864 	* Makefile.in (VERSION): Increased to 4.0.
  865 
  866 2003-06-23  Yngve Svendsen - Sun Norway  <yngve.svendsen@sun.com>
  867 
  868 	* gnatsd.user_access: Fix a couple of typos.  Thanks to Ben
  869 	Elliston.
  870 
  871 2003-05-01  Yngve Svendsen  <yngve.svendsen@sun.com>
  872 
  873 	* gnatsd.user_access, gnatsd.host_access: Add explanation of why
  874 	wildcard entries must be placed near the end of these files.
  875 
  876 2003-04-27  Andrew J. Gray  <andrewg@gnu.org>
  877 
  878 	* check-db.sh, Makefile.in (check-db): Use BINDIR to find
  879 	query_pr; fixes PR gnats/446.
  880 
  881 2003-03-08  Milan Zamazal  <pdm@zamazal.org>
  882 
  883 	* regex.h: #undef `__restrict_arr' before #defining it.
  884 
  885 2003-03-09  Andrew J. Gray  <andrewg@gnu.org>
  886 
  887 	* file-pr.c (checkIfReply): Change regex so that "PR" must be all
  888 	capitals and "PR#<number>" matches; patch by Lars Henriksen
  889 	<Lars.Henriksen@netman.dk>.
  890 
  891 2003-01-13  Milan Zamazal  <pdm@zamazal.org>
  892 
  893 	* fconfig.y: Missing semicolons added.
  894 	* fconfig.c: Regenerated.
  895 
  896 2002-11-25  Yngve Svendsen <yngve.svendsen@sun.com>
  897 
  898 	* client.c, database.c, edit.c, gen-closed-date.c, mail.c, misc.c,
  899 	  pr.c, query.c: Add cast of argument of isspace to unsigned char.
  900 	  Fixes PR 434.
  901 
  902 2002-11-24  Andrew J. Gray  <andrewg@gnu.org>
  903 
  904 	* Makefile.in (VERSION): Increased to 4.0-beta2.
  905 
  906 2002-11-09  Yngve Svendsen  <yngve.svendsen@sun.com>
  907 
  908 	* delete-pr.sh: Fix usage message.
  909 
  910 2002-11-08  Yngve Svendsen  <yngve.svendsen@sun.com>
  911 
  912 	* client.c (netEditField): Iterate over replies from server until
  913 	CODE_OK.  Otherwise, a required change reason would never get
  914 	submitted properly.  Fixes PR 331.  Fix due to Adrian Ashley.
  915 
  916 2002-11-01  Yngve Svendsen  <yngve.svendsen@sun.com>
  917 
  918 	* file-pr.c (run_atpr): Decrease number of arguments to at-pr by
  919 	one.
  920 	
  921 	* edit-pr.c (main): Provide reason to edit_field().  Fixes PR
  922 	331.
  923 	
  924 	* at-pr.sh, file-pr.c: Remove unused "path to the PR file"
  925 	at-pr parameter.
  926 
  927 	* gnats.h, internal.c: Add database_name parameter to
  928 	gnatsdbHasNetconn.  This allows tools to determine properly
  929 	whether to use network mode or not to access a database.  Patch by
  930 	Mel Hatzis.
  931 
  932 	* (getclose.c, pr-age.c, pr-edit.c, query-pr.c, client.c): Use
  933 	database_name parameter when calling gnatsdbHasNetconn.
  934 
  935 2002-10-31  Yngve Svendsen  <yngve.svendsen@sun.com>
  936 
  937 	* dbconfig.in: Warn people that they may need to set category dir
  938 	permissions to 755 if they have users running query-pr
  939 	etc. locally, i.e. not through gnatsd.
  940 
  941 2002-10-28  Yngve Svendsen  <yngve.svendsen@sun.com>
  942 
  943         * edit.c (applyChangeAction): Use value_is_empty to check not only
  944         for empty fields but also for fields that contain only blanks.
  945         * file-pr.c (missing_required_fields): Ditto
  946 
  947         * lists.c, query.h: Add ListInitialRequiredFields, implementing an
  948         argument InitialRequiredFields to LIST.
  949 
  950 2002-10-27  Hans-Albert Schneider  <Hans-Albert@HA-Schneider.de>
  951 
  952 	* gnatsd.access: Renamed to gnatsd.user_access.
  953 	Fixed reference to gnatsd.conf (now gnatsd.host_access).
  954 
  955 	* Makefile.in, gnatsd.host_access, mkdb.sh: Reflect this renaming.
  956 
  957 2002-10-27  Andrew J. Gray <Andrew.Gray@platypuspartners.com>
  958 
  959 	* adm.c (get_adm_record): Check for fields with no associated adm
  960 	file to avoid deferencing NULL in get_adm_dir.  Fixes PR
  961 	gnats/330.
  962 
  963 2002-10-24  Yngve Svendsen  <yngve.svendsen@sun.com>
  964 
  965 	* dbconfig.in: Use Notify-List in the initial-pr-notification and
  966 	initial-pr-notification-pending mail formats.
  967 
  968 	* dbconfig.in: Add new field Notify-List.  Use it in the
  969 	audit-mail mail format definition.
  970 
  971 2002-10-24  Andrew J. Gray  <Andrew.Gray@platypuspartners.com>
  972 
  973 	* database.c (databaseInfo, newDatabaseInfo)
  974 	(freeDatabaseInfo): Add "require" parameter to
  975 	"initial-entry" fields; patch by Mel Hatzis <hatzis@juniper.net>.
  976         (setRequiredInputFields, getRequiredInputFields): New funtions.
  977 	* file-pr.c (createNewPRFile): Likewise.
  978 	(missing_required_fields): New function.
  979 	* fconfig.y: Likewise.
  980 
  981 	* edit.c (applyChangeAction): Check for empty string in required
  982 	fields; patch by Mel Hatzis <hatsiz@juniper.net>.
  983 
  984 2002-10-24  Yngve Svendsen  <yngve.svendsen@sun.com>
  985 
  986 	* dbconfig.in: Removed Cases, Quarter, Keywords and Date-Required
  987 	  field definitions.  They are documented in the "dbconfig
  988 	  recipes" appendix of the manual for those that need it.
  989 
  990 2002-10-15  Yngve Svendsen  <yngve.svendsen@sun.com>
  991 
  992 	* misc.c (gnats_strftime): Fix a bug seriously affecting systems
  993 	without support for the format code %z.  The dates in PRs would be
  994 	incorrect when the timezone was different from GMT.  The
  995 	brokentime pointer passed to gnats_strftime() would point to
  996 	static data that might be overwritten by calls to (among others)
  997 	gmtime().  Fix due to Lars Henriksen, Lars.Henriksen@netman.dk.
  998 	Fixes PR 414.
  999 
 1000 	* states: Clarify and correct some details.
 1001 
 1002 2002-10-14  Yngve Svendsen  <yngve.svendsen@sun.com>
 1003 
 1004 	* dbconfig.in: Make the `states' field behave as described in the
 1005 	states file, i.e. when changing from one closed state to another,
 1006 	do not touch the Closed-Date field, and reset the Closed-Date
 1007 	field only when changing from a closed state to an non-closed.
 1008 	Patch submitted by Alwin Dieperink.
 1009 
 1010 2002-10-14  Pankaj K. Garg  <garpg@earthlink.net>
 1011 
 1012 	* gnatsd.access: Say a bit more about password encryption methods.
 1013 	Mention empty passwords.  Say that default access level is
 1014 	`listdb', not `edit'.  Change example entry to set blank password
 1015 	for view access.
 1016 	
 1017 	* gnats.texi (gnatsd.user_access): Say a bit more about password
 1018 	encryption methods.  Amend examples to illustrate the use of blank
 1019 	passwords.  Demonstrate the new fall-through mechanism for
 1020 	password matching.
 1021 
 1022 	* gnatsd.c (password_match): Clean up password matching.  Handle
 1023 	blank passwords.
 1024 	(findUserAccessLevel): If the password given during the login is
 1025 	not blank and doesn't match the correct password, deny access.
 1026 	
 1027 	* cmds.c (GNATS_user): Handle case where a blank password has been
 1028 	given by user.  Change usage message to allow for blank passwords.
 1029 	(gnatsdChdb): Handle blank passwords.
 1030 	(GNATS_chdb): Allow for one, two or three arguments to CHDB.
 1031 	(GNATS_help): Amend help text for CHDB and USER.
 1032 	
 1033 2002-10-13  Yngve Svendsen  <yngve.svendsen@sun.com>
 1034 
 1035 	* mail-agent.sh: Redirect mail-agent output to /dev/null.  Fixes
 1036 	PR355.  Fix due to Andrew Gray.
 1037 
 1038 	* file-pr.c (run_atpr): Call at with &> /dev/null.
 1039 
 1040 2002-09-24  Yngve Svendsen  <yngve.svendsen@sun.com>
 1041 
 1042 	* mkdb.sh: Change to use gnatsd.user_access as user access file
 1043 	name.
 1044 	- mkdb.sh (domkdir): Provide -p parameter to mkdir, so that
 1045 	non-existing parent directories are automatically created.  Fixes
 1046 	PR 316.  Both fixes by Pankaj K. Garg.
 1047 	
 1048 	* dbconfig.in: Fix capitalization of the descriptions of the
 1049 	How-To-Repeat and Release fields.
 1050 
 1051 	* mail.c (getOneAddress): Cast the argument of isspace to int.
 1052 	Fixes a problem where GNATS wouldn't compile on Solaris with GCC.
 1053 
 1054 2002-09-01  Milan Zamazal  <pdm@zamazal.org>
 1055 
 1056 	* mail.c (getOneAddress, get_responsible_addr): Handle spaces
 1057 	around mail addresses; patch by Mel Hatzis <hatzis@juniper.net>.
 1058 
 1059 2002-08-12  Milan Zamazal  <pdm@zamazal.org>
 1060 
 1061 	* cmds.c (GNATS_lock): Invalid order of arguments in the help
 1062 	message fixed; thanks to Mel Hatzis.
 1063 
 1064 2002-08-04  Milan Zamazal  <pdm@zamazal.org>
 1065 
 1066 	* gnats.el (gnats-change-database): Offer default values when
 1067 	prompting for the arguments.
 1068 	(gnats-dbconfig-mode): Imenu support added.
 1069 
 1070 	* Makefile.in (mkdb): Substitute GLOBAL_DB_LIST_FILE.
 1071 	* mkdb.sh (DATADIR): Get the value from GLOBAL_DB_LIST_FILE; patch
 1072 	by Lars Henriksen <Lars.Henriksen@netman.dk>.
 1073 
 1074 	* gnatsd.c (get_name): Reference to `host' fixed in
 1075 	`gethostbyaddr'; fixes PR gnats/363.
 1076 
 1077 	* at-pr.sh (QUERY_PR): A mistaken space removed; fixes
 1078 	PR gnats/394.
 1079 
 1080 	* edit.c (validateFieldValue): Don't process an Integer string if
 1081 	`text' is NULL; patch by Mel Hatzis <hatzis@juniper.net>.
 1082 
 1083 2002-07-28  Milan Zamazal  <pdm@zamazal.org>
 1084 
 1085 	* pr-stat.c (long_options): The `--help' option uncommented.
 1086 
 1087 	* queue-pr.c (main): `-m' added to the short options; thanks to
 1088 	Dirk Schenkewitz.
 1089 
 1090 	* gnats-pwconv.c (USAGE): More customization of the messages
 1091 	depending on HAVE_LIBCRYPT.
 1092 	(main): Make OPTSTRING dependent on HAVE_LIBCRYPT.
 1093 	Thanks to Dirk Schenkewitz.
 1094 
 1095 	* cmds.c (gnatsdChdb): Missing `const' qualifier added.
 1096 
 1097 	* gen-closed-date.c (main): The unused and undocumented option
 1098 	`-c' removed.
 1099 	(USAGE): Misaligned text aligned.
 1100 	Thanks to Dirk Schenkewitz.
 1101 
 1102 	* gen-index.c (main): Don't use automatic option variable setting.
 1103 
 1104 2002-07-19  Milan Zamazal  <pdm@zamazal.org>
 1105 
 1106 	* cmds.c (gnatsdChdb): On verification error, be safe against
 1107 	nameOfDb being NULL; based on a patch by Lars Henriksen,
 1108 	fixes PR gnats/380.
 1109 
 1110 2002-07-14  Milan Zamazal  <pdm@zamazal.org>
 1111 
 1112 	* configure.in: pdm's copyright moved to FSF.
 1113 	`gnatsd.access' changed to `gnatsd.user_access'; fixes
 1114 	PR gnats/348.
 1115 	* gnats.h: Likewise.
 1116 
 1117 	* at-pr.sh (RESP_ADDR): Use query-pr instead of pr-addr.
 1118 
 1119 	* gnats-pwconv.c: Copyright changed to FSF.
 1120 	(encrypt_): Don't include the salt in the resulting string; fixes
 1121 	PR gnats/395.
 1122 
 1123 	* client.c (scanEnv): If `database' is NULL and GNATSDB is a local
 1124 	database name, use it instead of "default".  Based on a patch by
 1125 	Mel Hatzis.
 1126 
 1127 2002-05-26  Milan Zamazal  <pdm@zamazal.org>
 1128 
 1129 	* mkdb.sh: Ignore remote databases; fixes PR gnats/384; patch by
 1130 	Lars Henriksen <Lars.Henriksen@netman.dk>.
 1131 
 1132 	* edit-pr.sh: Don't do duplicate actions in traps; remove $new
 1133 	only on success.
 1134 
 1135 2002-05-21  Milan Zamazal  <pdm@zamazal.org>
 1136 
 1137 	* Makefile.in (dodistclean): Remove `#*'.
 1138 
 1139 2002-05-20  Milan Zamazal  <pdm@zamazal.org>
 1140 
 1141 	* edit-pr.sh: Don't delete new files on error signals.
 1142 
 1143 	* gen-index.c (main): Code formatting fix.
 1144 
 1145 	* gnats.el (gnats-get-addr-info): Call `query-pr
 1146 	--print-server-addr' only if server is given.
 1147 
 1148 2002-05-17  Milan Zamazal  <pdm@zamazal.org>
 1149 
 1150 	* file-pr.c (checkIfReply): Regex fixed, use `re_search' instead
 1151 	of `re_match'; patch by Andrew Gray
 1152 	<Andrew.Gray@platypuspartners.com>.
 1153 
 1154 2002-05-15  Milan Zamazal  <pdm@zamazal.org>
 1155 
 1156 	* gnatsd.host_access: Let the default access level is `listdb'.
 1157 
 1158 	* gen-index.c (add_pr): Use numeric_sorting's value implicitly,
 1159 	don't compare it with TRUE.
 1160 
 1161 2002-04-23  Milan Zamazal  <pdm@zamazal.org>
 1162 
 1163 	* gnats.el (gnats-dbconfig-font-lock-keywords):
 1164 	`business-week-days' typo fixed.
 1165 
 1166 2002-03-31  Yngve Svendsen  <yngve.svendsen@sun.com>
 1167 
 1168 	* query-pr.c (USAGE): field-flags, adm-field, adm-subfield and
 1169 	  adm-key added.
 1170 
 1171 	* pr-age.c (main): PR number is argv[optind], not argv[1].  Fixes
 1172 	  PR 362.
 1173 
 1174 2002-03-19  Yngve Svendsen  <yngve.svendsen@sun.com>
 1175 
 1176 	* gen-index.c (main): Add forgotten short options n, e, i to case
 1177 	  structure.  Fixes PR 351.
 1178 
 1179 2002-03-02  Milan Zamazal  <pdm@zamazal.org>
 1180 
 1181 	* gnatsd.c (password_match): DES password handling fixed; patch by
 1182 	Mario Joussen <mario@joussen.org>.
 1183 
 1184 	* Makefile.in (install-tools-arch-indep): Don't depend on
 1185 	`dbconfig'.
 1186 	(all-tools): Depend on `dbconfig'.
 1187 
 1188 2002-02-19  Milan Zamazal  <pdm@zamazal.org>
 1189 
 1190 	* gnats.el (gnats-replace-curr-text, gnats-advertised-undo):
 1191 	Deuglified wrt variable value overriding.
 1192 
 1193 2002-02-10  Milan Zamazal  <pdm@zamazal.org>
 1194 
 1195 	* query.h: `regcmp' -> `gnats_regcmp'.
 1196 	* getclose.c (do_prlist): `regcmp' -> `gnats_regcmp'.
 1197 	* edit.c (validateFieldValue): `regcmp' -> `gnats_regcmp'.
 1198 	* query.c (regcmp): Renamed to `gnats_regcmp'.
 1199 	(iterate_prs): Consider the previous change.
 1200 
 1201 	* file-pr.c (createNewPRFile): Don't always set the default value
 1202 	to the field; based on a patch by Forrest J. Cavalier III
 1203 	<mibsoft@mibsoftware.com>; fixes PR gnats/333.
 1204 
 1205 2002-01-22  Milan Zamazal  <pdm@zamazal.org>
 1206 
 1207 	* gnats.el (unlock-pr): Let `pr' is a string, not a number.
 1208 
 1209 2002-01-13  Milan Zamazal  <pdm@zamazal.org>
 1210 
 1211 	* query-pr.c (USAGE): --print-server-addr added.
 1212 
 1213 	* Makefile.in (LDFLAGS): Use @LDFLAGS@ instead of $(CFLAGS).
 1214 
 1215 	* gnats.el (gnats-show-connection): New command.
 1216 	(unlock-database): New command.
 1217 	(gnats-edit-mode): New argument `quietp'.
 1218 	(gnats-apply-edits): Call gnats-edit-mode with `quietp' set to t.
 1219 
 1220 2002-01-10  Milan Zamazal  <pdm@zamazal.org>
 1221 
 1222 	* gnats.el (gnats-query-mode): RET added to the overrided view
 1223 	mode keys; fixes PR gnats/326.
 1224 
 1225 2002-01-07  Milan Zamazal  <pdm@zamazal.org>
 1226 
 1227 	* gnats.el (query-pr): `edit-buffer' renamed to `query-buffer'.
 1228 	(query-pr): Report the number of the matching PRs.
 1229 	(gnats-query-mode-map): `G' (query-pr) added.
 1230 
 1231 2002-01-06  Milan Zamazal  <pdm@zamazal.org>
 1232 
 1233 	* gnats.h: Include libgen.h if available; fixes PR gnats/319;
 1234 	patch by Noritoshi Demizu <demizu@dd.iij4u.or.jp>.
 1235 	* configure.in: libgen.h added to AC_CHECK_HEADERS; patch by
 1236 	Noritoshi Demizu <demizu@dd.iij4u.or.jp>.
 1237 	* configure: Regenerated.
 1238 	* autoconf.h.in: Regenerated.
 1239 
 1240 	* misc.c (temporary_directory): `tmpdir' is `char *' now; fixes
 1241 	PR gnats/317; patch by Forrest Cavalier <forrest@mibsoftware.com>.
 1242 	(init_logging): With no syslog, put into log_method NOLOG and not
 1243 	NONE; fixes PR gnats/318; patch by Forrest Cavalier
 1244 	<forrest@mibsoftware.com>.
 1245 
 1246 	* Makefile.in (mandir): Removed.
 1247 
 1248 2001-12-27  Milan Zamazal  <pdm@zamazal.org>
 1249 
 1250 	* Makefile.in (VERSION): Increased to 4.0-beta1.
 1251 	(dodistclean): Remove TAGS.
 1252 	(dorealclean): File list updated.
 1253 	(doclean): Don't remove the files generated by lex and yacc.
 1254 	(dorealclean): Remove the files generated by lex and yacc.
 1255 
 1256 2001-12-23  Milan Zamazal  <pdm@zamazal.org>
 1257 
 1258 	* file-pr.c (checkIfReply): Matching changed.
 1259 	
 1260 	* cmds.c (GNATS_help): The EDITADDR command added.
 1261 
 1262 	* gnatsd.c (password_match): Removed the remark about missing
 1263 	manual description.
 1264 
 1265 	* configure.in: Declaration check for `unsetenv' added.
 1266 	* configure: Regenerated.
 1267 	* autoconf.h.in: Regenerated.
 1268 	* gnats.h: `basename' declaration removed, it's already in
 1269 	libiberty.h.
 1270 	Protect `unsetenv' by HAVE_DECL_UNSETENV rather than only
 1271 	HAVE_UNSETENV.
 1272 
 1273 2001-12-15  Milan Zamazal  <pdm@zamazal.org>
 1274 
 1275 	* gnats.el (gnats-change-database): Reset `gnats-password'.
 1276 
 1277 2001-12-11  Milan Zamazal  <pdm@zamazal.org>
 1278 
 1279 	* gnats.el (send-pr): When run with a universal argument, run
 1280 	`gnats-change-database' in advance.
 1281 	(gnats-get-field-info): Replace `\n' by newline; strip off a
 1282 	starting newline from multiline fields.
 1283 
 1284 2001-12-10  Milan Zamazal  <pdm@zamazal.org>
 1285 
 1286 	* regex.c: Updated from current gnulib.
 1287 	* regex.h: Updated from current gnulib.
 1288 
 1289 	* gnatsd.c (match): Cast `tolower' arguments to `int'.
 1290 
 1291 	* gnats-pwconv.c (encrypt_): Make all the parts concerning
 1292 	encryption conditional.
 1293 	(encrypt_): Check for `asprintf' error.
 1294 
 1295 2001-12-08  Milan Zamazal  <pdm@zamazal.org>
 1296 
 1297 	* mail-query.sh: Add the --database argument only if GNATSDB is
 1298 	non-empty. 
 1299 
 1300 2001-12-08  Lars Henriksen  <Lars.Henriksen@netman.dk>
 1301 
 1302 	* Makefile.in (install-tools-bin): Typo in the warning message
 1303 	fixed.
 1304 
 1305 2001-12-08  Milan Zamazal  <pdm@zamazal.org>
 1306 
 1307 	* Makefile.in (install-tools-bin): Don't install `gnats-pwconv'.
 1308 
 1309 	* adm.c (initAdmField): Set field's `default_value' only if it's
 1310 	not set already.
 1311 	* cmds.c (GNATS_lock): Fix the order of arguments in the help
 1312 	string.
 1313 	* fconfig.y (fieldDec, optChangeExpr, multiEnumItem)
 1314 	(multiEnumFileItem, enumFieldMember, auxFlagsList): Added closing
 1315 	semicolon.
 1316 	(startFieldDec): Set field's `default_value' to NULL.
 1317 
 1318 2001-12-07  Milan Zamazal  <pdm@zamazal.org>
 1319 
 1320 	* Makefile.in (install-gnats-bin, uninstall, doclean): Add
 1321 	`gnats-pwconv'.
 1322 
 1323 2001-12-07  Yngve Svendsen  <yngve.svendsen@clustra.com>
 1324 
 1325 	* Makefile.in (install-tools-bin): Install gnats-pwconv in
 1326 	  $(libexecdir)/gnats.
 1327 
 1328 2001-12-06  Milan Zamazal  <pdm@zamazal.org>
 1329 
 1330 	* Makefile.in (all-gnats): `gnats-pwconv' added to targets.
 1331 	(gnats-pwconv): New target.
 1332 	* gnats-pwconv.c: New utility.
 1333 
 1334 	* misc.c (usage): If `exit_code' is zero, print usage to stdout.
 1335 
 1336 2001-12-04  Milan Zamazal  <pdm@zamazal.org>
 1337 
 1338 	* lists.c (listTypeList, getGnatsFile): `listClasses' removed
 1339 	again.
 1340 	* query.h (queryOp): Likewise.
 1341 	* query-pr.c (USAGE): The no longer pertinent `--list-classes'
 1342 	option removed.
 1343 
 1344 2001-12-03  Milan Zamazal  <pdm@zamazal.org>
 1345 
 1346 	* dbconfig.in: Exclude "Originator" from the "audit-mail"
 1347 	recipient list, use FROM fields instead.
 1348 
 1349 2001-12-02  Milan Zamazal  <pdm@zamazal.org>
 1350 
 1351 	* pr-edit.c (USAGE): New option `reason'.
 1352 
 1353 2001-12-02  Dan Martinez  <dfm@juniper.net>
 1354 
 1355 	* pr-edit.c (long_options): New option `reason'.
 1356 	(handleNetworkEdit): New argument `reason'.
 1357 	(main): Process the `reason' option.
 1358 	* gnats.h (get_reply): Returns an int value.
 1359 	(netEditField): New argument `reason'.
 1360 	* client.c (get_reply): Return an int value.
 1361 	(netEditField): Provide the change reason to the server if
 1362 	required.
 1363 
 1364 2001-12-02  Milan Zamazal  <pdm@zamazal.org>
 1365 
 1366 	* mkdb.sh: The argument changed from DATADIR to DATABASE.
 1367 	* mkdb.sh: Run gen-index.
 1368 	* Makefile.in (mkdb): Replace xSYSCONFDIRx too.
 1369 
 1370 2001-12-01  Milan Zamazal  <pdm@zamazal.org>
 1371 
 1372 	* query.c (iterate_prs): Don't report an index error just because
 1373 	there are no PRs, report it only when reading the index finished
 1374 	with an error.
 1375 
 1376 	* gen-index.c (long_options): Moved to `main', cosmetic
 1377 	improvements.
 1378 	(main): Don't handle the flag options "manually", let them be
 1379 	handled by `long_options' flags.
 1380 	(sort_numerical): Renamed to `numeric_sorting'.
 1381 	(add_pr, main): Consider the previous change.
 1382 	(main): Don't open the output file until it's needed (especially
 1383 	all options are processed).
 1384 
 1385 2001-11-14  Yngve Svendsen  <yngve.svendsen@clustra.com>
 1386 
 1387 	* responsible: Add note on how to change the address of the GNATS
 1388 	  admin.
 1389 
 1390 	* categories: Add a couple of words explaining that the first
 1391 	  entry is used as default for PRs that arrive without a set
 1392 	  category.
 1393 
 1394 	* UPGRADING: Details on migrating `config' file settings to GNATS
 1395 	  4 added.
 1396 
 1397 2001-11-12  Milan Zamazal  <pdm@zamazal.org>
 1398 
 1399 	* cmds.c (GNATS_appnOrRepl): Missing arguments to the
 1400 	`daemon*lock*' calls added.
 1401 	* internal.c (lock_gnats): Missing `res' declaration added.
 1402 	(lock_gnats): MAXWAIT and GRANULARITY turned into constant
 1403 	variables.
 1404 	* edit.c (lock_pr): Missing `count' and `fdes' declarations added.
 1405 
 1406 2001-11-09  Lars Henriksen  <Lars.Henriksen@netman.dk>
 1407 
 1408 	* Makefile.in (install-gnats-arch-indep): Don't fail if the
 1409 	installed files can't be chowned, only print a warning.
 1410 	(install-gnats-bin): Use $(GNATS_USER) instead of `gnats' in the
 1411 	printed message.
 1412 
 1413 2001-11-08  Milan Zamazal  <pdm@zamazal.org>
 1414 
 1415 	* pr-edit.c (main): Don't test a "boolean" int value by comparing
 1416 	it with 1.
 1417 
 1418 2001-11-08  Dirk Bergstrom  <dirk@juniper.net>
 1419 
 1420 	* index.c (getFirstPR): Always checkPRChain; this decreases the
 1421 	chances of writing out stale index data.
 1422 	(writeIndex): Check to make sure that index hasn't changed since
 1423 	last read, fail with CODE_INVALID_INDEX if it has.  Also generate
 1424 	email to admin about the problem. Update indexDesc->mtime after
 1425 	writing out new index.
 1426 
 1427 	* cmds.c (GNATS_appnOrRepl): Lock database before editing.
 1428 
 1429 	* pr-edit.c (main): Lock database before --append or --replace in
 1430 	non-network mode.
 1431 
 1432 	* edit.c (lock_pr): Quash a race bug in PR locking.  Use basically
 1433 	the same code as in lock_gnats.  Report lock time if PR is locked.
 1434 
 1435 	* internal.c (lock_gnats): Changed from using creat(path, 0) to
 1436 	atomic open() to eliminate a race in database lock creation.
 1437 
 1438 	* internal.c (punt): Complain to stderr if database is null.
 1439 	queue-pr sometimes calls punt() before defining database, and this
 1440 	way cron will report the error.
 1441 	
 1442 	* edit-pr.sh (lock): Report pid when locking PR.
 1443 	(submit): If there are errors during submission, prompt the user
 1444 	to abort or retry.
 1445 	
 1446 	* queue-pr.c (main, run_gnats): Added new command-line option
 1447 	"max-size"; in --run mode, messages larger than max-size will not
 1448 	be processed, but instead will generate an email to the database
 1449 	admin.
 1450 	(fork_gnats): Fork off pr-edit, instead of file-pr (which is just
 1451 	a shell script wrapper around pr-edit).
 1452 	(USAGE): Add max-size option.
 1453 	(run_gnats): If pr-edit exits with status 2, check to see if file
 1454 	still exists; if not, another queue-pr is probably running.
 1455 	Report file as missing.
 1456 	
 1457 2001-11-06  Yngve Svendsen  <yngve.svendsen@clustra.com>
 1458 
 1459 	* UPGRADING: Details GNATS 3 -> 4 upgrades.  Procedure is
 1460 	  untested, but is believed to work.
 1461 
 1462 2001-11-05  Yngve Svendsen  <yngve.svendsen@clustra.com>
 1463 
 1464 	* UPGRADING: Rename to UPGRADING.old.  We still need it around for
 1465 	  people upgrading from very old GNATS 3 versions to GNATS 4.
 1466 
 1467 	* INSTALL: Rewritten for GNATS 4.
 1468 
 1469 	* PROBLEMS, README: Updated/rewritten for GNATS 4.
 1470 
 1471 2001-11-01  Milan Zamazal  <pdm@zamazal.org>
 1472 
 1473 	* gnats.h (DEFAULT_MULTIENUM_SEPARATOR): New constant.
 1474 	* cmds.c (GNATS_ftypinfo): Use it.
 1475 	* fconfig.y: Likewise.
 1476 
 1477 2001-11-01  Yngve Svendsen  <yngve.svendsen@clustra.com>
 1478 
 1479 	* gnatsd.c (cmds): New command FTYPINFO.
 1480 	* cmds.c (GNATS_help): Document it.
 1481 	* cmds.c (GNATS_ftypinfo): New command function.
 1482 	* gnatsd.h: Declare it.
 1483 	* pcodes.h (CODE_INVALID_FTYPE_PROPERTY): New error code.
 1484 
 1485 2001-10-29  Milan Zamazal  <pdm@zamazal.org>
 1486 
 1487 	* fconfigl.l: The `noyywrap' option added.
 1488 
 1489 2001-10-29  Carl E. Lindberg  <lindberg@clindberg.org>
 1490 
 1491 	* database.c (initDatabaseList): Null the databaseEnt pointers in
 1492 	databaseInfoList; fixes PR gnats/181.
 1493 
 1494 2001-10-28  Milan Zamazal  <pdm@zamazal.org>
 1495 
 1496 	* pr.c (addLineToPR): Don't terminate enum fields on a space.
 1497 
 1498 2001-10-22  Yngve Svendsen  <yngve.svendsen@clustra.com>
 1499 
 1500 	* query-pr.c (USAGE): Split in a few more parts to get rid of GCC
 1501 	2.96 and 3.0 ISO C89 string length warning.
 1502 
 1503 2001-10-17  Milan Zamazal  <pdm@zamazal.org>
 1504 
 1505 	* mail.c (composeMailMessage): If From: address is not given,
 1506 	assign admin's address to `fromAddr'; patch by Yngve Svendsen.
 1507 
 1508 2001-10-16  Milan Zamazal  <pdm@zamazal.org>
 1509 
 1510 	* Makefile.in (sysconfdir): Defined.
 1511 
 1512 	* gnatsd.host_access: access-level description updated; patch by
 1513 	Yngve Svendsen.
 1514 	* gnatsd.access: access-level and password description updated;
 1515 	based on a patch by Yngve Svendsen.	
 1516 
 1517 	* query-pr.c (USAGE): Updated to match the manual; based on a
 1518 	patch by Yngve Svendsen.
 1519 
 1520 	* gnats.el (gnats-query-mode-map): Binding of `send-pr' changed
 1521 	from "a" to "s".
 1522 
 1523 2001-10-15  Milan Zamazal  <pdm@zamazal.org>
 1524 
 1525 	* misc.c (read_line): The type of `default_len' changed to
 1526 	`size_t'; fixes PR gnats/270.
 1527 
 1528 2001-10-14  Milan Zamazal  <pdm@zamazal.org>
 1529 
 1530 	* gnatsd.h (Access_Level): New type; `ACCESS_LISTDB' added.
 1531 	(FLAG_MASK, FLAG_ONE_ARG): Removed.
 1532 	* gnatsd.c (Access_String): New auxiliary structure.
 1533 	(ACCESS_STRINGS): New constant.
 1534 	(access_level, access_level_str): Rewritten.
 1535 	(cmds): The structure of the array elements changed; DBLS's access
 1536 	level lowered to ACCESS_LISTDB.
 1537 	* gnatsd.c: All access level variable types changed from `int' to
 1538 	`Access_Level'.
 1539 	* gnats.h: Likewise.
 1540 	* cmds.c: Likewise.
 1541 
 1542 2001-09-28  Milan Zamazal  <pdm@zamazal.org>
 1543 
 1544 	* gnatsd.access: The description of the `admin' access level
 1545 	fixed; patch by Yngve Svendsen.
 1546 	* gnatsd.host_access: Likewise.
 1547 
 1548 2001-09-23  Milan Zamazal  <pdm@zamazal.org>
 1549 
 1550 	* gnats.el: Unnecessary progns removed.
 1551 	(gnats-fetch-pr): Reset all fields, not only input fields.
 1552 
 1553 2001-09-20  Milan Zamazal  <pdm@zamazal.org>
 1554 
 1555 	* cmds.c (GNATS_help): Missing commands added to the help; patch
 1556 	by Yngve Svendsen from PR gnats/264.
 1557 
 1558 2001-09-19  Milan Zamazal  <pdm@zamazal.org>
 1559 
 1560 	* cmds.c (gnatsdChdb): Reset `queryFormat' if the database is
 1561 	changed; fixes PR gnats/257.
 1562 
 1563 2001-09-07  Milan Zamazal  <pdm@zamazal.org>
 1564 
 1565 	* dbconfig.in (audit-mail): "Category[notify]" and "Originator"
 1566 	added; fixes PR gnats/188.
 1567 
 1568 	* gnats.el (gnats-dbconfig-mode): Made interactive.
 1569 
 1570 2001-09-06  Milan Zamazal  <pdm@zamazal.org>
 1571 
 1572 	* cmds.c (daemon_lock_gnats): New argument `verbose'; if it is
 1573 	FALSE, don't print success message.
 1574 	(daemon_unlock_gnats): Likewise.
 1575 	(GNATS_subm, GNATS_lkdb, GNATS_undb, GNATS_edit): The new argument
 1576 	to `daemon*' calls added.
 1577 
 1578 	* configure.in: AC_CONST removed, it's useless in a subdirectory.
 1579 	New special check for Solaris' const handling added.
 1580 	* configure: Regenerated.
 1581 	
 1582 	* misc.c (read_line): Formatting changes.
 1583 
 1584 2001-09-04  Milan Zamazal  <pdm@zamazal.org>
 1585 
 1586 	* file-pr.c (submit_pr): The Originator check moved to
 1587 	`createNewPRFile' where it belongs to.
 1588 
 1589 	* configure.in: Standard autoconf check for `const' added.
 1590 	* configure: Regenerated.
 1591 
 1592 2001-09-03  Milan Zamazal  <pdm@zamazal.org>
 1593 
 1594 	* edit.c (validateFieldValue): Missing argument to `setError' in
 1595 	the Integer section added.
 1596 
 1597 2001-09-01  Milan Zamazal  <pdm@zamazal.org>
 1598 
 1599 	* configure.in: Help formatting improved.
 1600 	* configure: Regenerated.
 1601 
 1602 2001-08-13  Milan Zamazal  <pdm@zamazal.org>
 1603 
 1604 	* gnats.el (gnats-extend-properties): New function.
 1605 	(gnats-edit-mode): Add it to after-change-functions.
 1606 	(gnats-change-database): Set default values as well.
 1607 	(gnats-change-database): `gnats-server', not `gnats-host'.
 1608 	(gnats-run-modify-command): Turned into a macro and implemented in
 1609 	the right way.
 1610 	(gnats-mark-field-edited): Consider the previous change.
 1611 	(gnats-delete-field, gnats-delete-char): Likewise.
 1612 	(gnats-delete-backward-char, gnats-insert-char): Likewise.
 1613 	(gnats-end-line, gnats-open-line, gnats-kill-line): Likewise.
 1614 	(gnats-submit-pr): Connection buffer killing disabled for
 1615 	debugging purposes, the buffer is killed anyway when the edit
 1616 	buffer is killed.
 1617 	(gnats-fetch-pr): Reset all input fields before parsing the PR.
 1618 
 1619 2001-08-12  Milan Zamazal  <pdm@zamazal.org>
 1620 
 1621 	* cmds.c (get_text_memory): Initialize `buf' to NULL and set it to
 1622 	NULL after freeing it.
 1623 	(get_text_memory): When reading the input, put '\0' at its end
 1624 	only after the buffer is reallocated to a sufficient size.
 1625 
 1626 2001-08-11  Milan Zamazal  <pdm@zamazal.org>
 1627 
 1628 	* gnats.el (gnats-clear-edit-buffer): The previous change undone.
 1629 	(query-pr): Call `gnats-delete-process'.
 1630 	(gnats-dbconfig-mode): New major mode.
 1631 	(gnats-dbconfig-mode-map): New variable.
 1632 	(gnats-dbconfig-mode-syntax-table): New variable.
 1633 	(gnats-dbconfig-mode-hook): New variable.
 1634 	(gnats-dbconfig-mode-abbrev-table): New variable.
 1635 	(gnats-edit-mode): Set paragraph-start and paragraph-separate.
 1636 	(gnats-request-enum): New argument NO-DEFAULT.
 1637 	(gnats-end-line): Use it.
 1638 	(gnats-cycle-enum-value): New function.
 1639 	(gnats-insert-char): Use it and bind it to the space key.
 1640 	(gnats-query-font-lock-keywords): Highlight any line containing
 1641 	`high'.  This is of course wrong but it can't be handled well
 1642 	until new query table formatting is written.
 1643 	(gnats-insert-char): Character notation of \r and \n fixed.
 1644 	(gnats-change-database): New command.
 1645 	(gnats-query-mode-map): Bind it to a key.
 1646 	(gnats-port): Clarify the type of the variable in the docstring.
 1647 
 1648 2001-08-10  Milan Zamazal  <pdm@zamazal.org>
 1649 
 1650 	* pr.c (read_header): Stop processing if you encounter the GNATS
 1651 	field delimiter `>'.
 1652 
 1653 	* file-pr.c (submit_pr): Don't crash when there's no `Originator'
 1654 	field in the database.
 1655 
 1656 	* gnats.el (gnats-get-mail-alias): Send the e-mail address to the
 1657 	daemon; fixes PR gnats/131.
 1658 	(gnats-debug-string): Don't complain if process-buffer is nil.
 1659 	(gnats-delete-process): Kill server buffer.
 1660 	(gnats-default-organization): Transformed into a customizable
 1661 	option.
 1662 	(gnats-default-submitter): Likewise.
 1663 	(gnats-query-mode-map): Key binding `a' for `send-pr' added.
 1664 	(gnats-clear-edit-buffer): Call `gnats-delete-process'.
 1665 
 1666 2001-08-09  Milan Zamazal  <pdm@zamazal.org>
 1667 
 1668 	* gnats.el (gnats-apply-or-submit): Enclosed by save-excursion.
 1669 	(gnats-default-organization): Set the default value to an empty
 1670 	string.
 1671 	(gnats-default-submitter): Likewise.
 1672 	(gnats-submit-pr): The kill-buffer argument fixed.
 1673 	(gnats-edit-server): Don't set default value of gnats-server-conn.
 1674 	(gnats-server-conn): `permanent-local' set to t.
 1675 	(gnats-delete-process): New function.
 1676 	Add it to kill-buffer-hook.
 1677 
 1678 2001-08-04  Milan Zamazal  <pdm@zamazal.org>
 1679 
 1680 	* configure.in: `AM_PATH_LIBDIR' added.
 1681 	* aclocal.m4: Regenerated.
 1682 	* configure: Regenerated.
 1683 	* Makefile.in (EMACS): Removed.
 1684 	(lispdir): Assign it to `@lispdir@' instead of `@LISPDIR@'.
 1685 
 1686 	* misc.c (value_is_empty): Cast the argument of `isspace' to
 1687 	`int'.
 1688 
 1689 2001-08-03  Milan Zamazal  <pdm@zamazal.org>
 1690 
 1691 	* configure.in: Don't continue with configuration if `sendmail' is
 1692 	not available; fixes PR gnats/54.
 1693 	* configure: Regenerated.
 1694 
 1695 2001-08-02  Milan Zamazal  <pdm@zamazal.org>
 1696 
 1697 	* adm.c (getAdmSubfieldValue): Return NULL if `i' is NULL, don't
 1698 	crash.
 1699 
 1700 2001-07-30  Milan Zamazal  <pdm@zamazal.org>
 1701 
 1702 	* mkcat.sh: Protect category names by quotes; fixes PR gnats/41.
 1703 	* rmcat.sh: Likewise.
 1704 	* rmcat.sh: Use `rmcat', not $0, as the program name.
 1705 	* mkcat.sh: Final messsage improved.
 1706 	* rmcat.sh: Messages improved.
 1707 
 1708 	* gnats.el (gnats-get-addr-info): Read password from prompt if not
 1709 	available.
 1710 	(gnats-query-reread): New command.
 1711 	(gnats-query-mode-map): Add a key for it.
 1712 	(gnats-query-mode): Override the key in view-mode-map.
 1713 
 1714 2001-07-28  Milan Zamazal  <pdm@zamazal.org>
 1715 
 1716 	* file-pr.c (append_report): Performance problems fixed; based on
 1717 	a patch by Dirk Bergstrom.
 1718 
 1719 	* check-db.sh: New `--all-databases' option implemented.
 1720 	Indentation level changed to 2.
 1721 
 1722 	* gnats.el (gnats-query-current-pr): Match the string without text
 1723 	properties.
 1724 	(gnats-query-view-pr): Convert the PR number string to a number.
 1725 	(gnats-query-edit-pr): Likewise.
 1726 	(gnats-fetch-pr): Apply `prin1-to-string' on `pr'.
 1727 	
 1728 2001-07-23  Milan Zamazal  <pdm@zamazal.org>
 1729 
 1730 	* fconfig.y: `multiEnumFileContents' added for the new
 1731 	`multi-enumerated-in-file' section.
 1732 
 1733 2001-07-23  Johannes Poehlmann  <jhp@caldera.de>
 1734 
 1735 	* fconfigl.l: `multi-enumerated-in-file' added.
 1736 	* fconfig.y: New token `MULTI_ENUM_IN_FILE'.
 1737 
 1738 2001-07-15  Milan Zamazal  <pdm@zamazal.org>
 1739 
 1740 	* misc.c (value_is_empty): New function.
 1741 	* gnats.h: Declare it.
 1742 
 1743 	* file-pr.c (submit_pr): If `Originator' is not set, try to set it
 1744 	to the value of the `Reply-To:' or `From:' e-mail headers.
 1745 
 1746 	* pr.c (header_name): Use ANSI function argument declaration.
 1747 	(lookup_header): Use `InvalidHeaderName' instead of the numeric
 1748 	code.
 1749 	(find_header_index): Use `lookup_header' instead of duplicating
 1750 	the implementation.
 1751 
 1752 	* mkcat.sh (USAGE): Usage string slightly improved.
 1753 	(prog): Set it uncoditionally.
 1754 	* mkdb.sh (prog): Set it uncoditionally.
 1755 
 1756 2001-07-04  Milan Zamazal  <pdm@zamazal.org>
 1757 
 1758 	* database.c (getDatabaseFieldInfo): Remove the `const' qualifier;
 1759 	fixes: PR gnats/208.
 1760 	* database.h: Likewise.
 1761 	* misc.c (init_gnats): Likewise.
 1762 	* gnats.h: Likewise.
 1763 
 1764 2001-06-24  Milan Zamazal  <pdm@zamazal.org>
 1765 
 1766 	* Makefile.in: Documentation support removed.
 1767 
 1768 2001-06-21  Milan Zamazal  <pdm@zamazal.org>
 1769 
 1770 	* Makefile.in: All man related targets and dependencies removed.
 1771 	* configure.in: Don't generate man/Makefile.
 1772 	* configure: Regenerated.
 1773 	* All Texinfo and man files moved to ../doc/.
 1774 
 1775 2001-06-17  Milan Zamazal  <pdm@zamazal.org>
 1776 
 1777 	* gnats.el (gnats-edit-server): Fix the buffer killing.
 1778 
 1779 2001-06-13  Yngve Svendsen  <yngve.svendsen@clustra.com>
 1780 
 1781 	* misc.c (gnats_strftime): Cast the argument of `isdigit' to
 1782 	`int'.
 1783 	
 1784 	* gnats.texi: Document support for MD5 encrypted passwords in
 1785 	gnatsd.access files. Change location of global gnatsd.access and
 1786 	gnatsd.host_access.
 1787 	p-inst.texi: Change location of global gnatsd.access and
 1788         gnatsd.host_access. Fix some typos.
 1789 
 1790 2001-06-12  Yngve Svendsen  <yngve.svendsen@clustra.com>
 1791 
 1792 	* p-admin.texi, p-inst.texi: Largely rewritten for GNATS 4.
 1793 	gnats.texi: Revise appendixes for GNATS 4.
 1794 
 1795 2001-06-11  Milan Zamazal  <pdm@zamazal.org>
 1796 
 1797 	* configure.in: Default gnatsd access configuration files to
 1798 	$sysconfdir instead of $datadir.
 1799 	* configure: Regenerated.
 1800 
 1801 2001-06-11  Peter Novodvorsky  <nidd@altlinux.ru>
 1802 
 1803 	* check-db.sh: Multiple database support added;
 1804 	fixes: PR gnats/198.
 1805 
 1806 2001-06-10  Milan Zamazal  <pdm@zamazal.org>
 1807 
 1808 	* configure.in: Check for crypt.h added.
 1809 	* autoconf.h.in: Regenerated.
 1810 	* aclocal.m4: Regenerated.
 1811 	* configure: Regenerated.
 1812 	* gnatsd.c: Include crypt.h only if present; fixes PR gnats/200.
 1813 
 1814 	* edit-pr.sh (DATE): Removed.
 1815 
 1816 	* configure.in: Remove the test for strftime (replaced by a
 1817 	run-time check).
 1818 	* misc.c (gnats_strftime): Add run-time check for `%z'.
 1819 
 1820 2001-06-10  Peter Novodvorsky  <nidd@altlinux.ru>
 1821 
 1822 	* lists.c (listTypeList): Classes added; fixes PR gnats/62.
 1823 	(getGnatsFile): Handle ListClasses.
 1824 	* query.h (e_lists): ListClasses added.
 1825 
 1826 2001-06-10  Carl E. Lindberg  <lindberg@clindberg.org>
 1827 
 1828 	* misc.c (gnats_strftime): Handle unsupported `%z' manually.
 1829 	(minutes_gmt_offset): New function.
 1830 	
 1831 2001-05-27  Milan Zamazal  <pdm@zamazal.org>
 1832 
 1833 	* misc.c (gnats_strftime): Didn't work without `%z' support,
 1834 	fixed.
 1835 
 1836 	* at-pr.sh (USAGE): Long options added.
 1837 	(prog): Use the explicit name, not $0.
 1838 
 1839 	* gnats.el (query-pr-history): New variable.
 1840 	(query-pr): Use it.
 1841 	(view-pr): Convert the argument to a string.
 1842 
 1843 2001-05-26  Milan Zamazal  <pdm@zamazal.org>
 1844 
 1845 	* edit-pr.sh (QUERY_PR): Use full path of the `query-pr' command;
 1846 	fixes PR gnats/113.
 1847 	* at-pr.sh (QUERY-PR): New variable, sets full path to the
 1848 	`query-pr' command; fixes PR gnats/115.
 1849 
 1850 	* cmds.c (GNATS_help): Document the USER command in the version
 1851 	without arguments.
 1852 
 1853 	* configure.in: Check for `%z' in `strftime' added.
 1854 	(AC_DIFF_OPT): Commented out (no longer supported by autoconf).
 1855 	(AC_LISPDIR): Likewise.
 1856 	(AC_FIND_PROGRAM): Replaced by AC_PATH_PROG.
 1857 	* acconfig.h: Introduce HAVE_STRFTIME_WITH_Z.
 1858 	Copyright header added.
 1859 	* autoconf.h.in: Regenerated.
 1860 	* aclocal.m4: Regenerated.
 1861 	* configure: Regenerated.
 1862 	* misc.c (gnats_strftime): New function.
 1863 	* gnats.h: Declare it.
 1864 	* query.c (format_pr_field): Use it.
 1865 	* pr.c (write_pr_field): Likewise.
 1866 	* internal.c (get_curr_date): Likewise.
 1867 	* file-pr.c (createNewPRFile): Likewise.
 1868 
 1869 2000-05-26  Steffen Opel  <opel@geekgadgets.org>
 1870 	
 1871 	* cmds.c (GNATS_user): Reenable documented USER access level
 1872 	return value if issued without arguments; fixes PR gnats/108.
 1873 
 1874 	* gnatsd.h (GNATS_nocl): Deleted left over prototype; fixes
 1875 	PR gnats/112.
 1876 	
 1877 	* Makefile.in (edit-pr): Substitute BINDIR.
 1878 	(at-pr): Likewise.
 1879 	(mail-query): Substitute LIBEXECDIR; fixes
 1880 	PR gnats/114.
 1881 	
 1882 	* file-pr.c (run_atpr): Supply --database option; fixes
 1883 	PR gnats/116.
 1884 
 1885 	* cmds.c (gnatsChdb): Default editing users email address; fixes
 1886 	PR gnats/118.
 1887 	
 1888 2001-05-20  Peter Novodvorsky  <nidd@debian.org>
 1889 
 1890 	* gen-index.c (main): Write the number of fields in binary index
 1891 	before data writing starts; PR gnats/189.
 1892 	
 1893 	* cmds.c (set_confidential_access): Typo in the query expression
 1894 	fixed; PR gnats/187.
 1895 
 1896 2001-05-06  Milan Zamazal  <pdm@zamazal.org>
 1897 
 1898 	* file-pr.c (createNewPRFile): Use %z instead of %Z in strftime.
 1899 	* internal.c (get_curr_date): Likewise.
 1900 	* pr.c (write_pr_field): Likewise.
 1901 	* query.c (format_pr_field): Likewise.
 1902 
 1903 	* getdate.y: Updated (taken from tar-1.13.19 sources).
 1904 	* getdate.c: Regenerated.
 1905 
 1906 2001-04-15  Milan Zamazal  <pdm@zamazal.org>
 1907 
 1908 	* gnats.h: Reviewed and made less confused.
 1909 	Merged in things from globals.h and config.h.
 1910 	* globals.h: Removed.
 1911 	* config.h: Move things not belonging here to gnats.h.
 1912 
 1913 	* misc.c (version): Use EXIT_OK instead of number.
 1914 	(initGnats): Renamed to `init_gnats'.
 1915 	(newStringListEnt): Renamed to `new_string_list_ent'.
 1916 	(quoteString): Renamed to `quote_string'.
 1917 	(readLine): Renamed to `read_line'.
 1918 	(init_gnats): Description added.
 1919 	(log_msg): Likewise.
 1920 	Miscellaneous other coding style changes.
 1921 
 1922 	* Makefile.in (mkdb): Replace xSYSCONFDIRx instead of xDATADIRx.
 1923 	(install-tools-arch-indep): Install defaults to sysconfdir.
 1924 	* mkdb.sh: Use xSYSCONFDIRx in DATADIR.
 1925 
 1926 	* check-db.sh: Escape the single quote in here documents (Debian
 1927 	bug fix).
 1928 	Be verbose about missing index file (Debian customization).
 1929 
 1930 	* categories: Sample categories commented out.
 1931 
 1932 2001-04-14  Milan Zamazal  <pdm@zamazal.org>
 1933 
 1934 	* misc.c (usage): New function.
 1935 	(version): New function.
 1936 	* gnats.h: Declare the new functions.
 1937 	* pr-edit.c (main): Use the new functions.
 1938 	(usage): Removed.
 1939 	(USAGE): New constant; help text rewritten.
 1940 	(PROGRAM_NAME): New macro.
 1941 	* queue-pr.c: Likewise.
 1942 	* gen-index.c: Likewise.
 1943 	* gen-closed-date.c: Likewise.
 1944 	* pr-age.c: Likewise.
 1945 	(long_options): hostname -> host.
 1946 	* getclose.c: Likewise.
 1947 	* gnatsd.c: Likewise.
 1948 	(long_options): maximum-access-level takes an argument.
 1949 	(main): Exit with the code 1 if an invalid option is given.
 1950 	* query-pr.c: Likewise.
 1951 	(main): Do not perform actions before all options are parsed.
 1952 
 1953 2001-04-08  Milan Zamazal  <pdm@zamazal.org>
 1954 
 1955 	* pr-edit.c (main): Return `2', not `!0' on other failures.
 1956 
 1957 	* queue-pr.c (drop_msg): Do the copying of the temporary file to
 1958 	the queue directory correctly.
 1959 
 1960 	* Makefile.in (SOURCES): Missing files added.
 1961 
 1962 	* misc.c (temporary_directory): New function.
 1963 	* gnats.h: Declare it.
 1964 	* cmds.c (get_text): Use it.
 1965 	* queue-pr.c (drop_msg): Use it.
 1966 
 1967 	* file-pr.sh: New option `--debug' (does nothing yet, it's for
 1968 	queue-pr).
 1969 
 1970 	* queue-pr.c (USAGE): The help text improved.
 1971 	(USAGE): Split into several smaller strings.
 1972 	(main): Consider the new form of USAGE.
 1973 	Various stylistic and coding standard related changes.
 1974 
 1975 2001-03-17  Milan Zamazal  <pdm@zamazal.org>
 1976 
 1977 	* query-pr.c (usage): Large string split into smaller pieces.
 1978 
 1979 	* configure.in: Copyright header added.
 1980 	AC_FUNC_CHECK replaced by AC_CHECK_FUNC.
 1981 	AC_HAVE_FUNCS replaced by AC_CHECK_FUNCS.
 1982 	AC_HAVE_HEADERS replaced by AC_CHECK_HEADERS.
 1983 
 1984 	* configure.in: Test for `unsetenv' availability added.
 1985 	* configure: Regenerated.
 1986 	* autoconf.h.in: Regenerated.
 1987 	* gnats.h: Declare `unsetenv' only if unavailable in libc.
 1988 
 1989 2001-02-25  Milan Zamazal  <pdm@zamazal.org>
 1990 
 1991 	* flowchart.fig: The administrator and maintainers can use user
 1992 	tools too.
 1993 
 1994 	* Makefile.in (fconfigl.c): Don't depend on flex command line
 1995 	options.
 1996 
 1997 2001-02-20  Milan Zamazal  <pdm@zamazal.org>
 1998 
 1999 	* getdate.y: Additional time zone names added; thanks to Yngve
 2000 	Svendsen.
 2001 
 2002 2001-02-17  Milan Zamazal  <pdm@zamazal.org>
 2003 
 2004 	* flowchart.fig: New file.
 2005 	
 2006 	* gnats.el (gnats-query-reverse-listing): New user option.
 2007 	(query-pr): Use it.
 2008 	(gnats-view-edit-pr): Let the buffer be no longer read-only.
 2009 
 2010 2001-02-05  Milan Zamazal  <pdm@zamazal.org>
 2011 
 2012 	* gnats.el (gnats-edit-mode-map): Override the keys in the right
 2013 	order so that all the definitions take their effect.
 2014 
 2015 2001-02-04  Milan Zamazal  <pdm@zamazal.org>
 2016 
 2017 	* configure.in (--with-gnats-server): Removed, it's no longer
 2018 	used.
 2019 
 2020 2001-01-31  Mark D. Baushke  <mdb@juniper.net>
 2021 
 2022 	* cmds.c (gnatsdChdb): Return the user access level for 
 2023 	Gnatsweb use.
 2024 
 2025 2001-01-29  Milan Zamazal  <pdm@zamazal.org>
 2026 
 2027 	* gnatsd.c (verifyHostAndUser): Ensure resulting access is not
 2028 	lower than host access.
 2029 
 2030 	* configure.in: Check for crypt.
 2031 
 2032 	* gnatsd.c (password_match): New function, based on a patch by
 2033 	Tommi Virtanen <tv@debian.org>.
 2034 	(findUserAccessLevel): Use it.
 2035 
 2036 2001-01-27  Milan Zamazal  <pdm@zamazal.org>
 2037 
 2038 	* gnats.el (gnats-edit-mode): Don't make the buffer read only.
 2039 	(gnats-next-field): New command.
 2040 	(gnats-previous-field): New command.
 2041 	(gnats-find-field-adjust): New function.
 2042 	(gnats-find-previous-field): New function.
 2043 	(gnats-edit-mode-map): New keys for the new commands defined.
 2044 	(gnats-edit-mode-menu): New menu.
 2045 	(gnats-format-field): Support mouse editting on enumerated fields.
 2046 	(gnats-replace-curr-text): Likewise.
 2047 	(gnats-edit-button-map): New keymap.
 2048 	(gnats-mouse-request-enum): New command.
 2049 	(gnats-request-enum): If invoked by a mouse event, use X menu.
 2050 	(gnats-request-enum): Choose as the default value the one starting
 2051 	with the last command letter, if possible.
 2052 	(gnats-find-next-field): Return a right position for multiline
 2053 	fields.
 2054 	(gnats-query-view-pr): Call mouse-set-point if needed.
 2055 
 2056 2001-01-24  Milan Zamazal  <pdm@zamazal.org>
 2057 
 2058 	* edit.c (deletePR): Don't let `composeMailMessage' crash by
 2059 	giving it just NULL as the first argument.
 2060 
 2061 2001-01-21  Milan Zamazal  <pdm@zamazal.org>
 2062 
 2063 	* man/Makefile.in (mostlyclean): Remove *.5 files too.
 2064 
 2065 	* Makefile.in (doclean): Remove *.elc, *.html, and TAGS files.
 2066 
 2067 	* gnats.el: Copyright notice updated.
 2068 	(gnats-format-field): INPUT documented.
 2069 	(gnats-format-pr): New argument INPUT added.
 2070 	(gnats-get-pr): NO-LOCK-P renamed to INPUT.
 2071 	(gnats-fetch-pr): Likewise.
 2072 	(gnats-view-mode): Enable view mode.
 2073 	(gnats-query-mode): Likewise.
 2074 	(gnats-view-edit-pr): Reformat the problem.
 2075 	(view-pr): New function.
 2076 	(gnats-query-view-pr): Use it.
 2077 	(unlock-pr): New function.
 2078 	(gnats-fetch-pr): Use it.
 2079 	(gnats-view-mode-map): "q" removed.
 2080 
 2081 2001-01-15  Yngve Svendsen  <yngve.svendsen@clustra.com>
 2082 
 2083 	* gnats.texi: Spelling fixed.
 2084 	* p-admin.texi: Likewise.
 2085 	* p-inst.texi: Likewise.
 2086 	* p-usage.texi: Likewise.
 2087 
 2088 2001-01-09  Milan Zamazal  <pdm@zamazal.org>
 2089 
 2090 	* check-db.sh: Handle binary indexes.
 2091 
 2092 2001-01-08  Milan Zamazal  <pdm@zamazal.org>
 2093 
 2094 	* gen-index.c (main): Don't use the non-existent option `-c'.
 2095 	(usage): Likewise.
 2096 	(do_prs): New function.
 2097 	(main): New options `-i' and `-e'.
 2098 	(long_options): Likewise.
 2099 	(usage): Likewise.
 2100 	(add_pr): New function.
 2101 	(do_category): Use it.
 2102 
 2103 2001-01-02  Milan Zamazal  <pdm@zamazal.org>
 2104 
 2105 	* index.c (writeIndex): Set the mode of the temporary file.
 2106 
 2107 	* cmds.c (get_text): Set the mode of the temporary file.
 2108 
 2109 	* misc.c (fopen_temporary_file): New argument for setting the file
 2110 	access rights mode.
 2111 
 2112 2001-01-01  Milan Zamazal  <pdm@zamazal.org>
 2113 
 2114 	* gnats.el (gnats-query-font-lock-keywords): New variable.
 2115 	(gnats-query-mode): Use it.
 2116 	(gnats-edit-font-lock-keywords): New variable.
 2117 	(gnats-edit-mode): Use it.
 2118 	(gnats-query-view-pr): Use it.
 2119 	(gnats-do-query): Don't set EXPR if QUERY is empty.
 2120 	(gnats-update-font-lock-keywords): New function.
 2121 	(gnats-edit-mode): Use it.
 2122 	(gnats-query-view-pr): Use it.
 2123 	(gnats-server,gnats-port,gnats-database,gnats-user,gnats-password): New
 2124 	user options.
 2125 	(gnats-get-addr-info): Use them.
 2126 	(gnats-view-mode): New function.
 2127 	(gnats-query-view-pr): Use it.
 2128 	(gnats-view-edit-pr): New function.
 2129 	(gnats-view-mode-hook,gnats-query-mode-hook,gnats-edit-mode-hook): New
 2130 	hooks.
 2131 	(gnats-get-addr-info): Don't escape when doing prin1-to-string.
 2132 	(gnats-edit-mode): Print hint about submitting the edits.
 2133 
 2134 	* query.c (iterate_prs): Set some error message when no PR is
 2135 	found.  (The first GNATS bug fix of the 3rd millenium.  Good.)
 2136 
 2137 2000-12-31  Milan Zamazal  <pdm@zamazal.org>
 2138 
 2139 	* gnats.el (gnats-query-current-pr): New function.
 2140 	(gnats-query-view-pr): New function.
 2141 	(edit-pr): Put stars around the buffer name.
 2142 	(send-pr): Put stars around the buffer name.
 2143 	(gnats-get-addr-info): Put stars around the buffer name.
 2144 	(gnats-edit-server): Put stars about the buffer name.
 2145 	(gnats-fetch-pr): Allow fetching problem reports without locking.
 2146 	(gnats-get-pr): Allow fetching problem reports without locking.
 2147 
 2148 	* database.c (newDatabaseInfo): Missing initializations added.
 2149 
 2150 	* gnats.el (query-pr): New function.
 2151 	(gnats-do-query): New function.
 2152 	(gnats-query-mode): New function.
 2153 	(gnats-query-edit-pr): New function.
 2154 	(gnats-query-buffer-name): New variable.
 2155 	(gnats-query-mode-map): New variable.
 2156 
 2157 	* Makefile.in (SOURCES): gnatsd source files added.
 2158 
 2159 2000-12-30  Milan Zamazal  <pdm@zamazal.org>
 2160 	
 2161 	* Makefile.in (LIBSRC): Updated.
 2162 	
 2163 	* gnats.el: Minor docstring fixes.
 2164 	Fixes required by checkdoc.
 2165 	(gnats-apply-edit): Invalid construct fixed.
 2166 	(send-pr): Autoload.
 2167 	(edit-pr): Autoload.
 2168 	(edit-pr): Convert `pr' to string before using it as a string.
 2169 	(gnats-get-addr-info): Convert `pr' to string before using it as a
 2170 	string.
 2171 	(gnats-apply-or-submit): The `count' argument removed.
 2172 	(gnats-submit-pr): The `count' argument removed.
 2173 	(gnats-apply-edits): The `count' argument removed.
 2174 	(gnats-send-command): Make `cstr' a local variable.
 2175 	(gnats-edit-server): Assign a value to `gnats-server-conn'.
 2176 	(gnats-get-addr-info): Signal an error if the server info couldn't
 2177 	be retrieved.
 2178 	(gnats-get-addr-info): Be careful about the buffer locality of
 2179 	`gnats-server-conn'.
 2180 
 2181 	* query-pr.c (main): Wrong `database' identifier reference fixed.
 2182 
 2183 	* internal.c (punt): Try to mail only if `database' is not NULL.
 2184 
 2185 	* configure.in: Two typos fixed.
 2186 	GLOBAL_DB_LIST_FILE defaults to a location below sysconfdir, not
 2187 	datadir.
 2188 
 2189 	* gnatsd.c (match): Use bool.
 2190 	(main): Call init_logging.
 2191 
 2192 	* gnats.h (EXIT_OK): New constant.
 2193 	(EXIT_PROGRAM_ERROR): New constant.
 2194 
 2195 	* misc.c (init_logging): New function.
 2196 	(enable_debugging): New function.
 2197 	(initGnats): Call init_logging.
 2198 	(log_msg): Consider log_method.
 2199 	(log_method): Change to NOLOG.
 2200 	(program_error): New function.
 2201 
 2202 	* gnats.h (Logging_Methods): LOGFILE and NOLOG added.
 2203 
 2204 2000-12-29  Milan Zamazal  <pdm@zamazal.org>
 2205 	
 2206 	* configure.in: Test on mkstemp added.
 2207 
 2208 	* autoconf.h.in: HAVE_MKSTEMP added.
 2209 
 2210 	* queue-pr.c (drop_msg): Use open_temporary_file.
 2211 
 2212 	* index.c (writeIndex): Use fopen_temporary_file.
 2213 
 2214 	* cmds.c (get_text): Use fopen_temporary_file.
 2215 
 2216 	* misc.c (open_temporary_file): New function.
 2217 	(fopen_temporary_file): New function.
 2218 
 2219 Wed Aug 23 12:49:59 2000  Bob Manson  <manson@feather.uglx.org.>
 2220 
 2221 	* pr.c (verifyMultiEnum): Accept NULL values if the field doesn't
 2222  	have a default value.
 2223 	(checkEnumTypes): If the field doesn't have a default value, don't
 2224  	try to copy it in.
 2225 
 2226 Mon Aug 14 17:10:47 2000  Bob Manson  <manson@feather.uglx.org.>
 2227 
 2228 	* cmds.c (gnatsdChdb): Don't free the current database if it's
 2229 	the same as the new one.
 2230 
 2231 Wed Aug  2 14:44:14 2000  Bob Manson  <manson@tristam.juniper.net>
 2232 
 2233 	* gnatsd.c (cmds): Allow multiple arguments to CHDB.
 2234 
 2235 	* Makefile.in (getdate.c): Move the -o option in front, so
 2236 	it works with FreeBSD 4's slightly bizarre byacc.
 2237 
 2238 	* configure.in: Add -Wno-format to make FreeBSD 4's broken headers
 2239  	happy; they erroneously claim that syslog() uses printf formatting.
 2240 	* configure: Regenerated.
 2241 
 2242 Tue May 30 14:41:09 2000  Bob Manson  <manson@tristam.juniper.net>
 2243 
 2244 	* database.c (freeDatabaseInfo): Unlink the entry from the list of
 2245  	databases before freeing it.
 2246 
 2247 Fri May 26 19:09:15 2000  Bob Manson  <manson@tristam.juniper.net>
 2248 
 2249 	* pr.c (fillInPR): Renamed from simple_get_pr (); add an ErrorDesc
 2250 	parameter.
 2251 	(get_pr): Make it static.
 2252 	(readPRWithNum): New function.
 2253 
 2254 	* index.c (clearPRChain): Make sure the desc is non-NULL before
 2255 	referencing it.
 2256 
 2257 	* cmds.c, edit.c, file_pr.c, getclose.c, pr-age.c, pr-edit.c:
 2258  	Finish cleanup of lock_pr() and unlock_pr(); they now take the PR
 2259  	ID instead of the pathname of the PR.  Use readPRWithNum () and
 2260  	prExists () instead of getting the PR path etc.
 2261 	
 2262 	* queue-pr.c(main): Initialize the database to NULL.
 2263 
 2264 Fri May 19 20:45:01 2000  Bob Manson  <manson@feather>
 2265 
 2266 	The current database is no longer a set of implicit global
 2267  	variables, but instead is passed in to the various functions that
 2268  	need it.  initGnats () returns the requested database as a
 2269  	DatabaseInfo handle.
 2270 
 2271 	* cmds.c (gnatsdChdb): New function.
 2272 
 2273 	* gnatsd.c: Clean up authentication code a bit; all user
 2274  	authentication is now verified when a CHDB is done.  Changing to
 2275  	the initial database is now done via gnatsdChdb ().  The
 2276 	authentication is probably now broken, however.
 2277 
 2278 Tue Mar 28 15:29:51 2000  Bob Manson  <manson@tristam.juniper.net>
 2279 
 2280 	* edit-pr.sh: Fixed calls to query-pr to be consistent.
 2281 
 2282 Thu Mar 23 15:19:26 2000  Bob Manson  <manson@tristam.juniper.net>
 2283 
 2284 	* query.c (format_pr_field): Add support for %{strftime-format}D,
 2285 	to make formatting dates more flexible; you can even say
 2286 	"%{strftime-format}-8D" etc.  Allow integer fields to be
 2287 	printed with %d.
 2288 	(process_printf_format): Detect the %{ and skip over to the
 2289 	matching }.
 2290 
 2291 	* man/Makefile.in (SRCS8): Added pr-edit.man.
 2292 
 2293 	* edit-pr.sh: Need to process the pre-changed PR template with
 2294 	$fixfil before comparing the two to see what fields changed.
 2295 
 2296 Thu Mar 23 14:26:50 2000  Bob Manson  <manson@purple.juniper.net>
 2297 
 2298 	* query-pr.c: Fixed typo in builtin queries.  Added "deprecated"
 2299  	warning.
 2300 
 2301 Tue Mar 21 21:24:48 2000  Bob Manson  <manson@tristam.juniper.net>
 2302 
 2303 	* edit.c (processPRChanges): If the old PR really doesn't have a
 2304  	value stored in its field (just an index entry), and the new PR
 2305 	doesn't either, then that field didn't change.
 2306 
 2307 	* pr.c (prFieldHasValue): New function.
 2308 
 2309 Tue Mar 21 13:34:21 2000  Bob Manson  <manson@feather>
 2310 
 2311 	* gnats.el (gnats-request-enum): Only go to the next field if
 2312 	the field didn't need a changed-why reason.
 2313 
 2314 	* lists.c: Remove the "Classes" option.
 2315 
 2316 	* query.h: Remove the ListClasses value.
 2317 
 2318 	* query-pr.c (long_options): Remove --list-classes.
 2319 
 2320 	* pr-init.c (getBuiltinField): Look up the field as a non-builtin
 2321  	field, if it's not a builtin.
 2322 
 2323 	* dbconfig.in: Remove the builtin-name for fields that are no longer
 2324 	builtins.
 2325 
 2326 	* builtin-fields.h: Remove several builtin fields that are no
 2327  	longer needed as builtins.
 2328 
 2329 	* query-pr.c(query_opts): Use the builtin field names as strings
 2330  	instead of using the builtin structs.
 2331 
 2332 Mon Mar 20 23:12:05 2000  Bob Manson  <manson@feather>
 2333 
 2334 	* gnats.el: Add submission ability.
 2335 
 2336 	* client.c (scanEnv): Check the validity of the port in all cases.
 2337 
 2338 Sun Mar 19 01:19:35 2000  Bob Manson  <manson@tristam.juniper.net>
 2339 
 2340 	* gnats.el: Use query-pr --gnats-server-addr to get the
 2341 	hostname, port, etc. of the database to connect to.
 2342 
 2343 	* query-pr.c: Add --print-server-addr option.
 2344 
 2345 	* Change callers of client_init_gnats () to check its return
 2346 	status, and to handle exiting etc.
 2347 
 2348 	* client.c (clientConnect): Add an ErrorDesc argument to return an
 2349  	error status.  Don't exit on error anymore.
 2350 	(scanEnv): Make public, and don't use const char ** arguments
 2351  	since we're putting allocated strings into the pointers.  The
 2352  	values returned contain defaults; this function now completely
 2353  	determines the user/password/host/port/database to use.
 2354 	(client_init_gnats): Make copies of the passed-in arguments to
 2355  	facilitate cleanup.  Free up values obtained from scanEnv().  Add
 2356  	an ErrorDesc argument, and return a non-zero value on error.
 2357 
 2358 Fri Mar 17 12:27:55 2000  Bob Manson  <manson@tristam.juniper.net>
 2359 
 2360 	* misc.c (open_mail_file): If the mail agent is NULL, just
 2361 	leave without doing anything.
 2362 
 2363 	* mail.c (get_responsible_address): If the database hasn't been
 2364  	properly configured, just return the mail address as-is.
 2365 
 2366 	* internal.c (unlock_gnats): Fail gracefully if gnats_adm_dir ()
 2367  	returns NULL.
 2368 	(punt): Try "mail user" if the mail agent can't be found or
 2369  	opened.  Add the hostname where the error occurred to the
 2370 	subject line.
 2371 
 2372 	* database.c: Add lots of checks for database validity, to prevent
 2373 	coredumps.
 2374 
 2375 	* Makefile.in (install-tools-arch-indep): Fix path of gnats.el.
 2376 
 2377 Fri Mar 17 01:11:28 2000  Bob Manson  <manson@feather>
 2378 
 2379 	* Makefile.in: References to gnats-el.in removed, no more byte
 2380 	compiling, no more references to send-pr.el etc.
 2381 
 2382 	* gnats-el.in: Deleted.
 2383 	* gnats.el: Added.
 2384 
 2385 Thu Mar 16 20:32:12 2000  Michael Brader <mbrader@aurema.com>
 2386 	
 2387 	* gnatsd.c:  Add support for --maximum-access-level option; remove
 2388 	--require-db option.
 2389 	
 2390 Thu Mar 16 20:24:00 2000  Bob Manson  <manson@feather>
 2391 
 2392 	* pr.c (setFieldChangeReason): New function.
 2393 	(unsetField): Free the change reason text as well.
 2394 
 2395 	* pcodes.h (CODE_SEND_CHANGE_REASON): Added.
 2396 
 2397 	* edit.c (edit_field): Add changeReason parameter, and change the
 2398 	field name string to a FieldIndex.
 2399 
 2400 	* cmds.c (GNATS_appnOrRepl): Add additional prompt for the change
 2401  	reason text, if one is required.
 2402 
 2403 Thu Mar  9 20:48:34 2000  Bob Manson  <manson@feather>
 2404 
 2405 	* Renamed field-config to dbconfig.  A few minor changes to the
 2406  	.texi docs.
 2407 
 2408 Wed Mar  8 15:08:22 2000  Bob Manson  <manson@red.juniper.net>
 2409 
 2410 	* cmds.c (print_server_errors): Print out the list of bad fields
 2411  	if the error is CODE_INVALID_ENUM (the error message is not set in
 2412  	one case, because there may be multiple fields in error).
 2413 
 2414 Fri Mar  3 00:27:04 2000  Bob Manson  <manson@tristam.juniper.net>
 2415 
 2416 	* database.c (initHostList): Check for a per-database host access
 2417  	list.  (Temporary fix, along with the change to GNATS_user ().)
 2418 	(databaseSpecServer): Init the list of databases as needed.
 2419 
 2420 	* cmds.c (GNATS_user): The check here for access levels is a bit
 2421  	screwy; temporary hack to make it work in the obvious case.
 2422 
 2423 	* client.c (client_init_gnats): If no user was specified, then use
 2424  	getlogin() or getpwuid () to determine a username to authenticate
 2425  	with to the server.
 2426 
 2427 Wed Mar  1 13:34:21 2000  Bob Manson  <manson@tristam.juniper.net>
 2428 
 2429 	* adm.c (build_chain_for_field): Ignore records with an incorrect
 2430  	number of fields.
 2431 
 2432 Mon Feb 28 19:04:48 2000  Bob Manson  <manson@feather>
 2433 
 2434 	* pr.c (simple_get_pr, get_pr): Moved here from query.c.
 2435 
 2436 Sun Feb 27 12:15:16 2000  Bob Manson  <manson@feather>
 2437 
 2438 	* query.c (freeQueryItem): Check for a NULL item being freed.
 2439 
 2440 	* index.c (finishIndexDesc): Always mark the builtin number and
 2441 	category fields as indexed.
 2442 
 2443 	* pr.c (struct PR_private): Add a flag to indicate if data is
 2444  	stored in the PR; speeds up freeing the PR.
 2445 	(allocPR): Use memset instead of setting individual pointers to
 2446 	NULL.
 2447 	(find_field_num): Subtract 12 bytes instead of 13 from the
 2448 	name when we find a -Changed-Why: field.
 2449 
 2450 	* index.c (extractBinaryField): Avoid a couple of unnecessary
 2451 	pointer derefs.
 2452 	(freeIndexDesc): Free the indexed field flags.
 2453 
 2454 	* database.c (initDatabaseList): Free the existing list before
 2455 	storing a new one.
 2456 
 2457 	* flowchart.txt: A few minor tweaks (oh, well, it amuses me
 2458 	anyway ;-)
 2459 
 2460 Sat Feb 26 12:42:00 2000  Bob Manson  <manson@feather>
 2461 
 2462 	* pr.c (addLineToPR): Take ownership of the passed-in buffer to
 2463  	avoid making a new copy of the contents.
 2464 	(read_pr): Let addLineToPR () take ownership of the line buffer.
 2465 
 2466 	* index.c: Move the indexed field flags into the index descriptor.
 2467 
 2468 	* client.c (readPRFromServer): Give ownership of the line buffer
 2469 	to addLineToPR ().
 2470 
 2471 	* configure.in (GNATS_INSTALL): Remove --with-full-gnats.  (Leave
 2472  	the partial targets in the Makefile, however).
 2473 
 2474 Fri Feb 25 10:19:19 2000  Bob Manson  <manson@feather>
 2475 
 2476 	* field.h (struct field_def): Add isIndexedField member, to avoid
 2477 	linear searches in isIndexedField ().
 2478 
 2479 	* index.c (isIndexedFieldIndex): Use isIndexedField member of the
 2480  	FieldDef for the field.
 2481 
 2482 	* Fix a few missing (void) parameters from function definitions.
 2483 
 2484 	* edit.c (validateFieldValue): Add missing parameter to regcmp ().
 2485 
 2486 	* globals.h(APPEND_STRING): Deleted, no longer used.
 2487 
 2488 	* query.c (newQueryItem): Keep the last-freed entry, and return it
 2489  	instead of allocating a new one.  Make sure we free the regexp
 2490 	buffer we allocated.
 2491 
 2492 	* pr.c (getFieldHeader): Don't bother making a copy of the header
 2493  	name, just return a pointer into the line and the length of the
 2494  	header.
 2495 	(find_field_num): Add LEN parameter.
 2496 
 2497 	* field.c: Create a sorted list of field names.
 2498 	(find_field_index_with_len): New function (basically renamed
 2499 	from find_field_index).  Do a binary search for the field name on
 2500 	the sorted field name list.
 2501 
 2502 	* query.c (freeQueryItem): Oops, one too many free()s.
 2503 
 2504 	* pr.c: Use fputs () instead of fprintf() in several places.
 2505 	(find_field_num): Use find_field_index ().
 2506 
 2507 	* field.c (allocComplexFieldIndex): New function, to optimize
 2508 	their allocation.
 2509 
 2510 	* pr.c (getFieldHeader): Use xstrndup.
 2511 	(write_pr_field): Don't call xmalloc (); instead, be a bit
 2512 	smarter about formatting output.
 2513 
 2514 	* field.c (isConstantFieldValue): New function.
 2515 
 2516 	* query.c: Add QueryItem object to hold individual query items;
 2517 	this lets us keep around precompiled regexps for constant
 2518 	query regexps, instead of recompiling every time.
 2519 	(regcmp, regfind): Add pattern buffer argument; only compile
 2520 	the regexp into the supplied buffer once.
 2521 
 2522 	* misc.c (readLine): Optimize (remove a unnecessary memcpy()).
 2523 
 2524 	* cmds.c (GNATS_help): Add some missing commands.
 2525 
 2526 	* query.c (parseQueryFormat): Add "or query format" to error
 2527  	message.
 2528 
 2529 Thu Feb 24 19:23:16 2000  Bob Manson  <manson@tristam.juniper.net>
 2530 
 2531 	* edit.c (processPRChanges): For now, ignore changes to read-only
 2532  	fields instead of generating an error.
 2533 
 2534 	* query.c (intFieldCompare): Make global.
 2535 
 2536 	* edit-pr.sh: Just set the user's email addr to $me.
 2537 
 2538 	* query-pr.c (main): Allow the --adm-field field to be a complex
 2539  	field name.
 2540 
 2541 	* cmds.c (GNATS_admv): Allow complex field names here.
 2542 
 2543 	* query-pr.c (main): Allow the --field-flags and --field-types
 2544  	arguments to be lists of fields; this is already handled in the
 2545  	server, but we need to do something similar in the non-server
 2546  	case.
 2547 
 2548 	* edit-pr.sh: Add blanks for fields that aren't already in
 2549 	the PR; for now they're stuffed at the end of the PR.
 2550 
 2551 Wed Feb 23 15:54:49 2000  Bob Manson  <manson@tristam.juniper.net>
 2552 
 2553 	* mail.c (getOneAddress): New function, to cheezily rfc822-parse
 2554  	one address out.
 2555 	(get_one_responsible_addr): If the address already cheezily
 2556  	appears to be a full email address, then just return a copy of it
 2557  	as is (with no express or implied warranties as to fitness or
 2558  	purpose).
 2559 
 2560 	* gnatsd.c: Misc cleanups.
 2561 
 2562 	* edit.c (deletePR): Move UID check...
 2563 	* pr-edit.c (main): to here.
 2564 
 2565 	* client.c (netDeletePR): It's DELETE.
 2566 
 2567 	* cmds.c (GNATS_delete): New function.
 2568 
 2569 Tue Feb 22 15:02:09 2000  Bob Manson  <manson@tristam.juniper.net>
 2570 
 2571 	* cmds.c (GNATS_inputdefault): mmmm, typo.
 2572 
 2573 	* edit.c (edit_field): Don't coredump if the field didn't exist
 2574 	before and we're appending.
 2575 
 2576 	* gnatsd.c (serverMainLoop): Make sure it exits on input error.
 2577 
 2578 	* edit.c (rewrite_pr): Check if the PR has changed categories and
 2579  	if the new category directory exists; if it doesn't and we're in
 2580  	autocreate mode, create it.
 2581 
 2582 	* cmds.c (GNATS_inputdefault): Escape newlines in the default
 2583  	value.
 2584 
 2585 	* gnatsd.c (serverMainLoop): Don't segfault on blank lines
 2586 	(patch suggested by Michael Brader <mbrader@aurema.com>)
 2587 
 2588 	* Add random casts and #defines for Solamis (including my favorite
 2589  	redefinition of SIG_DFL).  Yeah, it's just random flotsam, and it
 2590  	won't work in some other Solamis release.  Use an OS that supports
 2591  	user-built software and doesn't have massively broken headers, or
 2592  	fix it yourself.
 2593 
 2594 	* gnats.h: Add missing prototypes from libiberty, plus one piece
 2595  	of Solamis trash.
 2596 
 2597 	* Makefile.in: Sordid rules to make Solamis' ancient make work.
 2598 	(fconfig.c): Checks for various yacc-brand (tm) lossage.  It still
 2599  	won't work with an ancient yacc tho--old yaxxen don't handle -p
 2600  	correctly for yylval.
 2601 
 2602 Mon Feb 21 18:54:57 2000  Bob Manson  <manson@tristam.juniper.net>
 2603 
 2604 	* client.c (scanEnv): Fixes for checking the presence of a default
 2605  	database with a host/port in the adm file.
 2606 
 2607 Mon Feb 21 15:00:12 2000  Bob Manson  <manson@feather>
 2608 
 2609 	* cmds.c (get_text): If we free buf, set it to NULL.  Don't try to
 2610 	free buf if it's NULL.
 2611 
 2612 	* internal.c (gnatsdbHasNetconn): Check for a database adm entry
 2613 	that has a server and port.
 2614 
 2615 	* database.c (readAdmFile): Add option to allow more fields than
 2616  	required.
 2617 	(databaseSpecIsNetConn, databaseSpecServer, databaseSpecPort):
 2618 	New functions.
 2619 
 2620 	* client.c (scanEnv): Check for a database name that has optional
 2621 	host and port associated, and use them.
 2622 
 2623 	* adm.h: Add optional DatabaseHost and DatabasePort fields to
 2624 	the database adm entry.
 2625 
 2626 	* fconfig.y, mail.c, mail.h: Allow Reply-To: to be a list of
 2627  	addresses, not just one.
 2628 
 2629 	* file-pr.sh: Use --database, not --directory.
 2630 
 2631 	* misc.c (init_gnats): Set the regexp syntax to Posix Extended
 2632 	(which is a brand of wine most favored by champions).
 2633 
 2634 	* query.c (parseQueryExpression): Skip text in double quotes,
 2635 	just like parseSimpleQueryExpression ().
 2636 
 2637 Fri Feb 18 17:40:32 2000  Bob Manson  <manson@tristam.juniper.net>
 2638 
 2639 	* field-config.in: Add entry for category-dir-perms.
 2640 
 2641 	* fconfig.y: Add support for category-dir-perms keyword.
 2642 
 2643 	* database.c (setCategoryDirPerms, categoryDirPerms): New functions.
 2644 
 2645 	* mail.c (insertAddress): Don't insert duplicate addresses.
 2646 
 2647 Thu Feb 17 17:11:41 2000  Bob Manson  <manson@tristam.juniper.net>
 2648 
 2649 	* edit.c (applyChangeActions): Need to keep the original action list
 2650 	around.
 2651 
 2652 	* pr.c (unsetField): New function.
 2653 
 2654 Wed Feb 16 20:32:47 2000  Bob Manson  <manson@tristam.juniper.net>
 2655 
 2656 	* edit.c (processPRChanges): Ignore empty fields in the new PR
 2657  	that weren't present in the old one.
 2658 
 2659 Tue Feb 15 17:57:24 2000  Bob Manson  <manson@feather>
 2660 
 2661 	* pr.c (checkEnumTypes): Don't generate an error if this PR is
 2662 	an initial PR and the field is nonexistent.
 2663 
 2664 	* index.c (build_index_entry): Assume nonexistent fields are
 2665 	empty.
 2666 	(format_field): Ditto.
 2667 
 2668 Mon Feb 14 15:54:48 2000  Bob Manson  <manson@tristam.juniper.net>
 2669 
 2670 	* pr.c (field_value): Always return NULL if the field doesn't
 2671  	exist and it doesn't have a default value; don't arbitrarily put
 2672  	an empty value in the PR field.  If the field is a date field and
 2673 	its index entry contains a 0, return NULL instead.  (Date values
 2674 	are still busted, but this is less busted now.)
 2675 
 2676 	* edit.c (validateFieldValue): Handle a non-existent field value
 2677 	when verifying regexps.
 2678 	(processFieldChange): Add the old and new field values to the
 2679 	read-only error message.
 2680 
 2681 	* cmds.c (print_server_errors): Don't handle any errors specially,
 2682 	since the error message is always filled in now.
 2683 
 2684 	* query.c (parseQueryFormat): Make sure the list of fields ends up
 2685  	in the correct order.
 2686 	(writeFullPR): Don't use variables before they're set.
 2687 
 2688 	* edit.c (addAuditEntryP): New function.
 2689 	(processPRChanges): Ignore the case where a field isn't present in
 2690  	the new PR but did in the old, and field is readonly; we set the
 2691  	new PR's field to have the same value as the old one.
 2692 	(edit_field): Use append_string () instead of the macro.
 2693 	(applyChangeAction): Don't handle adding audit-trail entries
 2694  	here...
 2695 	(applyChangeActions): Do it here instead; we can also check for
 2696  	a global "add audit trail entries" action.
 2697 
 2698 Fri Feb 11 16:55:09 2000  Bob Manson  <manson@tristam.juniper.net>
 2699 
 2700 	* mail.c (get_responsible_addr): Assume multiple addresses, and
 2701  	split them by commas before mapping.
 2702 	(get_one_responsible_addr): New function (renamed from
 2703  	get_responsible_addr).
 2704 
 2705 Fri Feb 11 14:09:57 2000  Bob Manson  <manson@feather>
 2706 
 2707 	* file-pr.c (createNewPRFile): Fix bug preventing new directories
 2708  	from being created.
 2709 
 2710 	* Add lots of checks for nonexistent fields.
 2711 
 2712 	* fconfig.y: Add support for edit-only flag, and virtual-format
 2713 	field descriptor.
 2714 
 2715 	* field.c (get_field_value): Add support for virtual fields; add
 2716 	mustBeFreed parameter.
 2717 
 2718 	* edit.c (rewrite_pr): Require a category value.
 2719 	(addAuditTrailEnt): Check for a missing audit-trail field; set it
 2720  	to "" if it's not there.
 2721 
 2722 Thu Feb  3 21:40:43 2000  Bob Manson  <manson@feather>
 2723 
 2724 	* field.h (FieldType): Add PRListType.
 2725 	(struct field_def): Add maxPrsPerLine entry.
 2726 
 2727 	* fconfig.y: Add support for pr-list type.
 2728 
 2729 	* edit.c (validateFieldValue): Add checking for PRListType.
 2730 
 2731 Wed Feb  2 10:59:41 2000  Bob Manson  <manson@feather>
 2732 
 2733 	* gen-closed-date.c (get_closed): Fix some potential buffer
 2734  	overrun bugs.
 2735 
 2736 	* client.c (scanEnv): Free items we allocated but didn't use.
 2737 
 2738 	* query.c (iterate_prs): Add err parameter.
 2739 
 2740 	* misc.c(init_space): Deleted, no longer used.
 2741 
 2742 	* gnatsd.h: Move system includes to the front of the file.
 2743 
 2744 	* gnats.h: Include <sys/param.h>.
 2745 	(SKIP_WHITE_SPACE): Deleted, no longer used.
 2746 
 2747 	* index.c (get_pr_chain, open_index, getIndex, getCategoryFromIndex):
 2748 	Add err parameter.
 2749 
 2750 	* queue-pr.c (fork_gnats): Use "--database databaseName ()" instead
 2751 	of "-d databaseDir ()" for the option to file-pr.
 2752 
 2753 	* file-pr.c (createNewPRFile): Fix typo.
 2754 
 2755 Tue Feb  1 17:47:45 2000  Bob Manson  <manson@feather>
 2756 
 2757 	* pr.c (addLineToPR): Add spaces to the beginning of Unformatted:
 2758  	field entries if they don't have one already.  Ignore text that
 2759  	looks like a field name if it isn't a valid name.
 2760 
 2761 	* query.c (process_format): Don't try to reference NULL PRs.
 2762 
 2763 	* pr-edit.c (main): Check for a PR number before allowing edit
 2764  	actions.  Don't close already-closed file descriptors.
 2765 
 2766 	* index.c (createIndexEntryBinary): Fix typo.
 2767 
 2768 	* file-pr.sh: Fix another typo.
 2769 
 2770 	* field.c (get_field_value): If the supplied PR is NULL, return
 2771 	an empty string for field values.
 2772 
 2773 	* field-config.in: Reorganize to match the traditional PR full
 2774  	format.
 2775 
 2776 	* cmds.c (GNATS_inputdefault): New command.
 2777 
 2778 	* adm.c (free_adm_entry): If the entry is NULL, don't try to free
 2779  	it.
 2780 
 2781 	* queue-pr.c (main): Don't call punt() if the command usage
 2782 	isn't right.
 2783 
 2784 Sat Jan 29 01:14:01 2000  Bob Manson  <manson@feather>
 2785 
 2786 	* internal.c (setError): CODE_READONLY_FIELD has a BadFields
 2787 	list.
 2788 
 2789 	* index.c (writeCurrIndex): Fix writing out of binary indexes;
 2790 	we need to write the number of fields in the index as the
 2791 	first byte.
 2792 	(createIndexEntry): Call createIndexEntryBinary () if the
 2793 	index is binary.
 2794 
 2795 Fri Jan 28 10:11:48 2000  Bob Manson  <manson@feather>
 2796 
 2797 	* query-pr.c (queryPrExit): New function; do cleanup before
 2798 	exiting.  Remove unused support for --network-mode.
 2799 
 2800 	* internal.c (newBadFieldEntry): Don't try to xstrdup () NULL
 2801 	values.
 2802 
 2803 	* database.c (defaultSubmitter): Use the cached contents of the
 2804 	adm file.
 2805 	(defaultCategory, defaultState): Ditto.
 2806 
 2807 	* Add support for binary index files.
 2808 
 2809 	* fconfig.y: Add support for new binary-index keyword.
 2810 	* fconfigl.l: Ditto.
 2811 
 2812 	* client.c (client_exit): Clear the current database.
 2813 
 2814 	* index.c(readBinaryRecord, extractBinaryField,
 2815  	nextIndexEntryBinary, appendBinaryFieldContents,
 2816  	createIndexEntryBinary, findPrCategoryBinary, indexIsBinary,
 2817  	indexFieldCount): New functions.
 2818 
 2819 Thu Jan 27 11:08:17 2000  Bob Manson  <manson@feather>
 2820 
 2821 	* query-pr.c (main): Finish the network support for all
 2822 	options.
 2823 
 2824 	* pr.c (write_multitext): Don't arbitrarily add an EOL if the
 2825  	input string doesn't have one.
 2826 	(printValidValues): Write out an EOL after each value.
 2827 
 2828 	* gnatsd.c (main): Don't twiddle with the regexp syntax
 2829  	arbitrarily.
 2830 
 2831 	* client.c (get_reply): Handle a few more error types.
 2832 	(clientConnect): Add support for invoking gnatsd locally via
 2833  	socketpair ().
 2834 	(sendRemoteQuery): Need to increment the current PR index.
 2835 	(netValidValues, netFieldDescription, netFieldType):
 2836 	New functions.
 2837 
 2838 	* query.c (do_print): Print %d formated values as an integer
 2839  	value.
 2840 
 2841 Wed Jan 26 14:07:35 2000  Bob Manson  <manson@feather>
 2842 
 2843 	* query.c (findQueryFormat): Add err parameter.
 2844 	(print_named_format_pr): Ditto.
 2845 	(parseQueryFormat): Check the field name to see if it's
 2846 	valid; fail if it isn't.  Add err parameter.  Set the name
 2847 	field of the result to NULL.
 2848 
 2849 	* field.c (parseComplexFieldIndex): Return an error if
 2850 	the field name is invalid.
 2851 
 2852 	* gnatsd.c (match): Minor cleanups.
 2853 	(gnatsd_argify): Fix typo.
 2854 
 2855 	* Remove all line length limits.  Change the error handling to be
 2856 	much cleaner; remove all calls to punt() from library code.  Use
 2857 	asprintf() extensively.
 2858 
 2859 	* internal.c (fileExists): New function.
 2860 
 2861 	* gnatsd.c (serverMainLoop): New function; move most of
 2862 	the code out of main().  Don't call exit() here.
 2863 
 2864 	* fconfig.y: Remove index-field-is-optional.
 2865 
 2866 	* gnatsd.c (gnatsd_argify): Restructure. Don't needlessly allocate
 2867  	4x the length of the line.  (Read: rewrite really crappy code.)
 2868 
 2869 	* index.c (format_field): Don't fail if the date is invalid; put a
 2870 	0 in the index instead.
 2871 
 2872 	* config.h: Delete STR_MAX et al.
 2873 
 2874 	* pathmax.h: Deleted, no longer used.
 2875 
 2876 Sat Jan 22 21:29:00 2000  Bob Manson  <manson@feather>
 2877 
 2878 	* files.[ch]: Deleted, no longer used.
 2879 	
 2880 	* Added global PR change options.  Changed "char *" to "const char
 2881  	*" in many appropriate places, and -Wwritable-strings to
 2882  	GCC_CFLAGS.  Fixed several potential bugs regarding const strings.
 2883   	Added read-only fields.
 2884 
 2885 Tue Jan 18 08:49:04 2000  Bob Manson  <manson@tristam.juniper.net>
 2886 
 2887 	* Fix error handling on parse errors, so that partially-allocated
 2888  	data is freed.  Make sure error status on parse errors is
 2889  	propagated to the right places.  Clients now exit when an
 2890 	invalid configuration is read in, and gnatsd reports the
 2891 	database as invalid.
 2892 
 2893 	* field-config.in: Add a few additional comments.
 2894 
 2895 	* fconfigl.l: Change quote strings so they're either explicitly
 2896  	taken over by the parser, or freed when the parser exits.
 2897 
 2898 	* getclose.c (do_netprlist): Don't return confidential PRs.
 2899 
 2900 Mon Jan 17 21:59:10 2000  Bob Manson  <manson@feather>
 2901 
 2902 	* Add ChangeActions struct, to consolidate various per-field
 2903 	change information.  Add conditional edits; this breaks existing
 2904 	field-config files.  Fix several memory leaks.
 2905 
 2906 	* field-config.in: Fix syntax for State: and Responsible:
 2907 	fields.  Add entry to State: field to update Closed-Date:
 2908 	field.
 2909 
 2910 	* query.c (pr_matches_expr): Add PARAMS argument.
 2911 
 2912 	* field.c (get_field_value): Fix bug with not returning oldPR
 2913  	values.
 2914 
 2915 	* edit.c (fix_closed_date): Deleted, no longer used.
 2916 	(applyFieldEdit): Actually do something.  Free data that
 2917 	we allocated.
 2918 	(addAuditTrailEnt): Add FMT parameter.  Free up value
 2919 	gotten from get_curr_date ().
 2920 
 2921 Sun Jan 16 20:23:57 2000  Bob Manson  <manson@feather>
 2922 
 2923 	* man/query-pr.man: Update a bit.
 2924 
 2925 	* file-pr.c (create_new_pr_file): Check for NULL field values,
 2926  	instead of assuming non-existent fields return an empty string.
 2927 
 2928 Fri Jan 14 23:20:09 2000  Bob Manson  <manson@feather>
 2929 
 2930 	* Replace most uses of FieldList with a new type, ComplexFieldIndex.
 2931 	  FieldList is now what it claims to be.  Enhance queries and
 2932 	  formatting even more; now query arguments are completely
 2933 	  symmetrical (way overkill, but it actually simplifies code).
 2934 
 2935 	* field.c: New file.
 2936 
 2937 	* cmds.c: Deleted fval command.
 2938 
 2939 	* builtin-fields.h (struct pr_builtin_field): Removed fieldDef
 2940 	member, no longer used.
 2941 
 2942 Thu Jan 13 19:54:22 2000  Bob Manson  <manson@feather>
 2943 
 2944 	* pr.c (getFieldFlags): New function.
 2945 	(read_header): Fix problem with overwriting array boundaries,
 2946 	and make sure the header value has a terminating NUL.
 2947 
 2948 	* gnatsd.c (freeArgs): New function.  
 2949 	(main): Restructure a bit; make sure we're freeing up the arguments
 2950 	we parse.
 2951 
 2952 	* field.h (struct field_def): Add requireChangeReason flag.
 2953 	(The flags should probably be collapsed into a single bitfield.)
 2954 
 2955 	* misc.c (init_gnats): Call clearCurrDatabase ().
 2956 
 2957 	* database.c: Encapsulate the database state into a struct
 2958 	(tho there are still static variables scattered throughout
 2959 	the code).
 2960 	(clearCurrDatabase): New function.
 2961 
 2962 	* configure.in: Did some remaining cleanup; deleted several
 2963 	unused options.
 2964 
 2965 	* cmds.c (GNATS_fieldflags): New function.
 2966 
 2967 	* client.c (netFieldFlags): New function.
 2968 
 2969 	* query-pr.c (long_options): Add --field-flags option.
 2970 
 2971 	* edit-pr.sh: Use diff-prs; ask about fields that require a
 2972 	reason for change, if they've changed.
 2973 
 2974 	* diff-prs: New script to list the fields that have changed
 2975  	between two PRs.
 2976 
 2977 Wed Jan 12 15:40:17 2000  Bob Manson  <manson@feather>
 2978 
 2979 	* delete-pr.sh: Don't send mail about deleted PRs--the server does
 2980 	it now.
 2981 
 2982 	* Makefile.in, configure.in: Deleted GNATS_ADMIN; it's now wired
 2983  	to gnats-admin. (To change gnats-admin's mail address, change it
 2984  	in the responsible file.)
 2985 
 2986 	* config.h: Delete INDEX define, no longer used.
 2987 
 2988 	* index.c: Use the "path" entry in the index descriptor.
 2989 	(build_index_entry): Fix index allocation code.
 2990 	(free_pr_index): Free the individual field entries if we didn't
 2991  	allocate them with a buffer.
 2992 
 2993 	* query.c: Change the funny '[' and '%' designators to real words
 2994  	(builtinfield: and fieldtype: respectively).  Use FieldList
 2995  	instead of FieldIndex for referring to which fields to search;
 2996  	this makes it possible to do even more interesting queries.
 2997   	Remove the FieldType search ('#' operator), it's no longer needed.
 2998 
 2999 	* files.c: Delete a bunch of unused functions.
 3000 
 3001 	* query.c (append_string, append_char, do_print): New function.
 3002 	(format_pr_field, process_printf_format, process_format): Add the
 3003 	ability to produce output into a char* instead of a FILE pointer.
 3004 	(allocateNamedParameter, getNamedParameterValue, 
 3005 	 freeFormatParameterList):  New functions, for supporting parameters
 3006 	to format statements.
 3007 
 3008 	* pr.c (get_field_value): Add PARAMS argument, for format
 3009  	parameters.
 3010 
 3011 	* edit.c: Add parameters for the email address of the user performing
 3012 	the various edit actions.
 3013 	(addAuditTrailEnt, sendAuditMail): New functions.
 3014 
 3015 	* edit-pr.sh: Simplify--the server now takes care of Audit-Trail:
 3016 	entries and sending email for edits.
 3017 
 3018 	* cmds.c: Add editEmailAddr static variable (this belongs
 3019  	somewhere else...)
 3020 	(GNATS_user): Use get_responsible_addr () to set a default edit
 3021 	email address for the user.
 3022 	(GNATS_editaddr): New function.
 3023 
 3024 	* client.c (netSetEditEmailAddr): New function.
 3025 	(netEditField): Set the email address of the editing user before
 3026 	doing the edit.
 3027 	(netModifyPR): Ditto.
 3028 
 3029 	* database.c (setAuditTrailFormat, getAuditTrailFormat): New
 3030 	functions.
 3031 
 3032 Tue Jan 11 17:06:40 2000  Bob Manson  <manson@feather>
 3033 
 3034 	* query.c (format_pr_field): Take a FieldList** instead of a
 3035  	FieldIndex; take care of moving the pointer to the next field if
 3036  	we actually consumed one.  Add appendedAudit parameter.  Use
 3037 	get_any_date ().  Add 'P' and 'A' formats.
 3038 
 3039 	* pr.h: Delete bizarre comment.  Add predefines for various
 3040 	structs and typedefs before including the headers needed by this
 3041 	file.
 3042 
 3043 	* pr.c: One of my favorite fixes--headers no longer have that
 3044  	&$#(*@$ newline at the end.  (Simplifies a lot of code.)
 3045 	(verify_enum): Call verifyMultiEnum () if the field is a MultiEnum
 3046  	field.
 3047 	(verifyMultiEnum): New function.
 3048 	(set_field): Use validateFieldValue () to verify that the field
 3049  	value is OK.
 3050 	(find_header_index): New function.
 3051 	(get_field_value): Smarter, faster, more powerful.  (We have two
 3052  	field indexes now...not good.  Tho they really do different
 3053  	things.)
 3054 
 3055 	* pr-init.c (fconfig_parse): Call init_header () here (bleah!
 3056 	badness! eeeugh!)
 3057 
 3058 	* gnatsd.c (cmds): Make most commands ACCESS_VIEW at least.  PR
 3059  	submission is ACCESS_SUBMIT.  (Access levels should be bits,
 3060  	probably defined by field-config.  Not yet.)
 3061 	(main): Not sending a required CHDB gives an error message now.
 3062 
 3063 	* gnats.h: Move StringList here (???).
 3064 
 3065 	* file-pr.c (create_new_pr_file): Note that the received Category:
 3066  	field is invalid.  Call composeMailMessage () to send out our
 3067  	mail.
 3068 	(notify_responsible, reply_to_submitter, append_notify): Deleted,
 3069  	no longer used.
 3070 	(append_report): Use edit_field () and composeMailMessage ().
 3071 
 3072 	* field-config.in: Add mail-format entries for submitted PRs
 3073 	and PR notes received by mail.
 3074 
 3075 	* fconfig.y: Add support for parsing the new mail-format entry,
 3076  	and support for multiple enum fields (enum fields with more than
 3077  	one value).
 3078 
 3079 	* adm.c (getAdmSubfieldValue): New function.
 3080 
 3081 	* mail.c: New file.  Move several mail-related routines into
 3082 	here.
 3083 	(composeMailMessage): New function.
 3084 
 3085 Fri Jan  7 23:19:16 2000  Bob Manson  <manson@feather>
 3086 
 3087 	* edit.c (validateFieldValue): Add a check for Integer fields.
 3088 	Allow Date fields to be an empty string.
 3089 
 3090 	* pr.c (set_field): Validate the new field value with
 3091 	validateFieldValue ().  Add an err parameter to return
 3092 	errors if the value is invalid.
 3093 
 3094 Wed Jan  5 21:59:43 2000  Bob Manson  <manson@feather>
 3095 
 3096 	* Makefile.in: Remove all traces of GNATS_ADDR.
 3097 
 3098 Wed Jan  5 12:53:02 2000  Bob Manson  <manson@tristam.juniper.net>
 3099 
 3100 	* gnats-databases.in: Added.
 3101 
 3102 Tue Jan  4 14:12:27 2000  Bob Manson  <manson@feather>
 3103 
 3104 	* query-pr.c (main): Don't try to parse empty expressions.
 3105 
 3106 	* mkdb.sh: Copy gnatsd.access instead of gnatsd.host_access.
 3107 
 3108 	* Makefile.in (install-tools-arch-dep): Add dependency on
 3109 	field-config.
 3110 	(doclean): Delete fconfig.c and friends.
 3111 
 3112 	* query-pr.c (main): Check for lists before trying to parse the
 3113 	query expression.
 3114 
 3115 	* query.c (getSearchOperatorForType): Make global.
 3116 	(parseSimpleQueryExpression): Add support for initial '[' marker
 3117  	indicating that the field name referred to is the builtin name.
 3118 	(appendSearchItem): Ditto.
 3119 
 3120 	* query-pr.c: Construct queries initially as strings; we then either
 3121 	send them directly to the server as is in network mode, or parse it
 3122 	for doing a direct query later.
 3123 	(oldQueryField): New function.
 3124 
 3125 	* pr-init.c (getBuiltinField): New function, for looking up
 3126 	builtin field information.
 3127 
 3128 	* pr-edit.c: We no longer parse PRs when in network mode.  Let the
 3129 	server win.
 3130 	(readPR): Deleted, no longer used.
 3131 
 3132 	* misc.c (quoteString): Move here; it's now a global.
 3133 
 3134 	* edit.c (replace_pr): Fill in err->msg.
 3135 	(check_pr_file): Ditto.
 3136 
 3137 	* edit-pr.sh: pr-edit now requires the number of the edited PR.
 3138 
 3139 	* client.c (sendRemoteListQuery): Add outfile parameter.
 3140 	(sendRemoteQuery): Add queryString parameter, for sending
 3141 	unparsed expressions.
 3142 	(netSendPRCmd, netEditField, netCheckPR, netSubmitNewPR, netModifyPR): 
 3143 	Change PR* parameter to FILE*; we send the files directly now, so
 3144 	the server does all the work.
 3145 
 3146 	* lists.c (getGnatsFile): Removed ListFieldConfig, no longer
 3147 	used.  Removed infile.
 3148 
 3149 	* client.c: Removed unused variable reply.
 3150 	(clientConnect): Renamed from client_init.
 3151 	(get_reply): Handle CODE_TEXT_READY.
 3152 	(client_get_field_config, client_get_field_config_line): Deleted,
 3153 	no longer used.
 3154 	(client_init_gnats): Don't call client_get_field_config ().
 3155 
 3156 	* Makefile.in: Removed GNATS_ADDR (oops).
 3157 	* configure.in: Ditto.
 3158 	* configure: Regenerated.
 3159 
 3160 Sun Jan  2 13:24:43 2000  Bob Manson  <manson@feather>
 3161 
 3162 	* pr.c (init_header): Make init_header () a global, we need
 3163 	to call it from client_init_gnats () for now.
 3164 
 3165 	* client.c (client_get_field_config): It's CODE_TEXT_READY
 3166 	now.
 3167 	(client_init_gnats): Call init_header ().
 3168 
 3169 	* fconfig.y: Add a bit of useless error recovery.
 3170 
 3171 	* fconfigl.l: Fix quoted string lexing.  Match bad tokens
 3172 	and return the arbitrary token BADTOK for them.
 3173 
 3174 Sat Jan  1 22:44:17 2000  Bob Manson  <manson@feather>
 3175 
 3176 	* man/gnatsd.man, man/pr-edit.man: New files, again woefully
 3177  	incomplete.
 3178 
 3179 	* man/query-pr.man: Add a bit more verbiage.
 3180 
 3181 	* man/gnats.man: Mark obsolete commands.  Mention pr-edit.
 3182 
 3183 	* Use InvalidFieldIndex or the other Invalid* enum entries instead
 3184  	of -1.  Don't compare returned values from Unix system calls
 3185  	against -1; it's either 0 or non-zero.  Delete global
 3186  	is_network_client variables, they haven't been used for some time.
 3187   	Change QueryExpr into an anonymous pointer-to-struct; it's now
 3188  	encapsulated within query.c as it should be.
 3189 
 3190 	* query.c: Changed DateLessThan and DateGreaterThan to LessThan
 3191  	and GreaterThan.  Added ability to search all fields of a
 3192  	particular data type (replacement for hardcoded multitext and text
 3193  	searches).  Simplified QueryExpr construction.
 3194  	(SearchItem, QueryExpr): Moved here from query.h.  Added operator
 3195  	string for DefaultSearchType.
 3196 	(intFieldCompare): New function, for returning an integer value
 3197  	describing the relation between two arbitrary field values.
 3198 	(< and > now work on any field type.)
 3199 
 3200 	* query-pr.c (long_options): Removed bogus --print-field option.
 3201 
 3202 	* pr.c (PR_FIELD_TAG_END, PR_FIELD_TAG_START): Moved here;
 3203 	this is the only place they should be used.
 3204 	(stringToFieldType): New function; use an array instead
 3205 	of hardcoding values into a function.
 3206 
 3207 	* lists.c (stringToListType): Case-insensitive comparisons
 3208 	are better.
 3209 
 3210 	* gen-closed-date.c: Removed unused catfile option.
 3211 
 3212 	* file-pr.c (create_new_pr_file): Completely fill in the error
 3213  	field values.
 3214 
 3215 	* cmds.c: Clean up the response codes so they make more sense and
 3216  	are reasonably consistent.  (The gnatsd.man page describes the
 3217  	classes of errors and responses.)  Removed a few more
 3218 	unneeded commands.
 3219 	(set_confidential_access): Moved here from gnatsd.c.
 3220 	(GNATS_help): Add description for SUBM.
 3221 
 3222 	* client.c: Get rid of a few more globals.
 3223 	(server_reply): Strip off the line terminator.
 3224 	(get_reply): Handle continuation replies more gracefully.  Don't
 3225  	try to parse error strings, they're not intended for us.  Make the
 3226  	response codes we handle match those now sent by the server.
 3227 
 3228 Fri Dec 31 13:28:44 1999  Bob Manson  <manson@feather>
 3229 
 3230 	* query.c (pr_match_field): Fix multitext searches.
 3231 
 3232 Thu Dec 30 17:14:43 1999  Bob Manson  <manson@feather>
 3233 
 3234 	* man/query-pr.man: Mostly revised, still woefully incomplete.
 3235 
 3236 	* man/*: Very preliminary (and incomplete) updates.  Added a
 3237  	couple of pages, deleted references to mkdist.
 3238 
 3239 	* edit-pr.sh: Fixed --database option.
 3240 
 3241 	* delete-pr.sh: Added --database option; fixed exit statuses for
 3242  	invalid options.
 3243 
 3244 	* gen-index.c: Minor cleanups; also fixed output so newlines
 3245  	appear when -n option is used.  Removed bogus --catfile option.
 3246 
 3247 	* delete-pr.sh: Use query-pr to get the address of gnats-admin.
 3248 
 3249 	* npr-edit.c: Deleted, no longer used; functionality merged into
 3250 	pr-edit.c.
 3251 	* gnats-*.sh: Deleted, no longer used; functionality merged into
 3252 	their respective scripts (gnats-file-pr.sh->file-pr.sh, 
 3253 	gnats-edit-pr.sh->edit-pr.sh).
 3254 	* client.c (netSendPRCmd, netCheckPR, netEditField, netSubmitNewPR,
 3255 	netModifyPR, netLockDB, netUnlockDB, netLockPR, netUnlockPR,
 3256 	netDeletePR): New functions.
 3257 
 3258 Wed Dec 29 15:33:18 1999  Bob Manson  <manson@feather>
 3259 
 3260 	* query.c (insert_closed): New function.
 3261 
 3262 	* gnats-edit-pr.sh: Automatically set the mode to "network" if
 3263 	a : appears in the GNATSDB variable.  Clean up option processing
 3264 	of --host etc.  Don't set default values for HOST, PORT, etc. here,
 3265 	let nedit-pr take care of it.
 3266 
 3267 	* getclose.c: Added network support.
 3268 
 3269 	* client.c (clientReadPR, readPRListFromServer, clientGetPRList):
 3270 	New functions.
 3271 
 3272 	* pr-age.c: Added network support.
 3273 
 3274 	* query.c: Added support for parsing FieldType operator (assigned
 3275 	to '#'); needed for checking for closed PRs.
 3276 
 3277 	* query-pr.c: Added new options --adm-field, --adm-subfield and
 3278 	--adm-key.
 3279 	(main): Default username and password are now NULL.
 3280 
 3281 	* pr-stat.c: Minor fixes; it's still pretty badly broken.  Not sure
 3282 	if it's worth fixing.
 3283 
 3284 	* npr-edit.c (main): Default username and password are NULL now.
 3285 
 3286 	* lists.c (getGnatsFile): Fixed erroneous fallthrough to abort ().
 3287 
 3288 	* internal.c (gnatsdbHasNetconn): New function.
 3289 
 3290 	* edit.c (validateFieldValue): New function.
 3291 	(check_pr): Massively simplified; uses validateFieldValue ().
 3292 	(edit_field): Use validateFieldValue ().
 3293 
 3294 	* database.c (getHostList): Add a call to initHostList ().
 3295 
 3296 	* cmds.c(GNATS_mlct, GNATS_mlsu, GNATS_mlrs, GNATS_type,
 3297 	GNATS_resp, GNATS_catg, GNATS_vdat, GNATS_nocl): Deleted.
 3298 	(GNATS_admv, GNATS_vfld, GNATS_expr): New functions.
 3299 
 3300 	* client.c (client_get_field_config): Use sendRemoteListQuery ().
 3301 	(sendRemoteQuery): Send a string expression with the EXPR command
 3302  	instead of sending individual nodes.
 3303 	(send_query_field, send_query_node): Deleted.
 3304 	(clientGetAdmField): New function.
 3305 
 3306 	* adm.c (printAdmSubfield): New function.
 3307 
 3308 	* file-pr.c (create_new_pr_file): Replaced sole use of PENDING
 3309  	with defaultCategory ().
 3310 	
 3311 Tue Dec 28 14:03:52 1999  Bob Manson  <manson@feather>
 3312 
 3313 	* sub-type.c, pr-addr.c, pr-mail.c, npr-addr.c: Deleted;
 3314  	functionality added to query-pr.
 3315 
 3316 	* Replaced --directory options with --database, and edited usage
 3317 	strings to match.
 3318 	
 3319 	* configure.in: Changed with-gnatsd-access-file to 
 3320 	with-gnatsd-user-access-file.  Added with-gnatsd-host-access-file.
 3321 	Moved the gnatsd.host_access file into ${datadir}/gnats; there
 3322 	should probably be a per-database version as well, but I'm too lazy
 3323 	to add it.
 3324 
 3325 Mon Dec 27 20:38:18 1999  Bob Manson  <manson@feather>
 3326 
 3327 	* file-pr.c (notify_responsible): Fix typo causing bad fields to
 3328  	be misreported.
 3329 
 3330 	* man/Makefile.in: Removed mkdist.8 references.
 3331 
 3332 	* pr-init.c (getFconfigLine): Renamed from get_line ().
 3333 
 3334 	* pr-edit.c (main): Fixed submit_pr () call.
 3335 
 3336 	* internal.c (readLine): New function, unused as of yet.
 3337 
 3338 	* index.c (find_pr_category): Replace 512 with STR_MAXLONG.
 3339 
 3340 	* file-pr.c (submit_pr): Removed flag_autocreate argument; this
 3341 	is obtained from the database spec now.
 3342 
 3343 	* fconfig.y: Added rule to parse create-category-dirs database
 3344 	item.
 3345 
 3346 	* database.c (setCreateCategoryDirs, createCategoryDirs): New 
 3347 	functions.
 3348 
 3349 	* configure.in: Changed various config options at pst's suggestion.
 3350 	Put the shared gnats_databases file in gnats subdirectory.
 3351 
 3352 	* cmds.c (GNATS_subm): Fix submit_pr () call.
 3353 
 3354 	* Makefile.in: Added rules for mkdb and installation of default
 3355 	(template) files; removed rules for creation of default database.
 3356 	Added reminder to run mkdb, and removed mention of mkcat (category
 3357 	directories are now created on the fly by default).  Removed
 3358 	references to mkdist.
 3359 
 3360 Tue Dec 21 22:38:29 1999  Bob Manson  <manson@juniper.net>
 3361 
 3362 	* client.c (scanEnv): New function, to get various items out of
 3363 	GNATSDB if they weren't supplied by the caller.
 3364 	(client_init_gnats): Call scanEnv ().
 3365 
 3366 	* query-pr.c (main): Add a temporary hack to check for a : in
 3367 	GNATSDB; if it's there, we're a network client. Remove cheezoid
 3368 	manipulation of regexp matching for EOF, we better not
 3369 	need it anymore.
 3370 
 3371 	* client.c (client_chdb): Send "default" if we're handed a NULL
 3372 	database name (handle it like init_gnats does).
 3373 
 3374 	* configure.in: Add test for socklen_t.
 3375 	
 3376 	* Replaced calls to strdup with xstrdup.
 3377 
 3378 	* pr.c (allocPR): NULL != 0; I'm surprised gcc-2.7.1 didn't
 3379 	catch these.
 3380 	(verify_enum): If the enum value is NULL, don't try to
 3381 	check it.
 3382 
 3383 	* pathmax.h: Another linux fix, this one's probably a decent
 3384 	change--we should include sys/param.h before deciding
 3385 	there's no PATH_MAX and we need to define our own.
 3386 
 3387 	* internal.c (get_curr_date): Changed %y to %Y, which
 3388 	makes egcs shut up.  Admittedly it may fix a "why, tookay?"
 3389 	bug, but I'm much more worried about the y3000 bugs.
 3390 
 3391 	* gnatsd.c (cmds): Fixed last entry.
 3392 	(start_connection): Made len a socklen_t if socklen_t is present,
 3393  	which makes linux happy.
 3394 
 3395 	* config.h: Add crappy bad fix for linux glibc madness.  "But
 3396 	it's correct according to the standard!"  Bleah.
 3397 
 3398 	* Makefile.in: Added GNATSD_ACCESS_FILE, left it out from previous
 3399 	changes.  Also added rules for fconfigl.o and getdate.o to work
 3400 	around non-easily-fixable warnings.
 3401 
 3402 	* configure: Regenerated with autoconf-2.13.
 3403 
 3404 	* client.c (client_exit): Don't do anything if we're not a
 3405 	network client.
 3406 
 3407 Mon Dec 20 15:47:25 1999  Bob Manson  <manson@tristam.juniper.net>
 3408 
 3409 	* Removed config file and associated trappings, and now most of the
 3410 	  config that was previously there is now in field-config (which
 3411 	  will probably be renamed shortly).
 3412   	
 3413 	  GNATS_ROOT is no longer.  The GNATSDB environment variable is now
 3414  	  used to determine which database to use (or the -d option to the
 3415  	  clients).  
 3416 
 3417 	  Databases must now be specified by name.  The list of database
 3418  	  names is now in ${datadir}/gnats_databases by default.  It is
 3419  	  formatted similarly to the other adm files, and uses the same
 3420  	  routines.  Since there is one other GNATS file in ${datadir},
 3421  	  namely gnatsd.access, it may make sense to make a gnats/
 3422  	  subdirectory there but I'm reluctant to do it for two files.
 3423 
 3424 	  Currently GNATSDB only contains a database name; eventually it
 3425 	  will also be of the form
 3426 	       host:port:name
 3427 	  which is used for remote access.  Someday some sort of ssh
 3428 	  tunneling functionality will be added, especially now that the
 3429 	  emphasis is on remote access.
 3430 
 3431 	  The default database is now located in ${sharedstatedir}/gnatsdb.
 3432 	  I may change things to allow the datafiles to be located
 3433  	  indepndently from the database.  The only major change would be
 3434  	  to the scripts, and the vast majority shouldn't need to be changed
 3435 	  now.
 3436 
 3437 	  query-pr now supports specifying a format string on the
 3438 	  command line with the --format option:
 3439 	
 3440 		  query-pr --format '"%s %s" Number State'
 3441 	
 3442 	  prints out the Number: and State: field values with
 3443 	  a space between the two.  Also,
 3444 	
 3445 		  query-pr --format State
 3446 
 3447           prints out the State field.
 3448 
 3449 	  A new server command, QFMT, has been added.  The query format is
 3450 	  now specified with QFMT (and must be specified before QUER is
 3451 	  invoked).  I have not tested remote access lately, it may 
 3452 	  very well be broken (tho gnatsd seems to be working from the
 3453 	  command line).
 3454 
 3455 	  A few new options have been added to query-pr, to print out the
 3456 	  directory where a database is located, and to dump a sh-compatible
 3457 	  set of variables describing things like the name of the database,
 3458 	  its location, etc.
 3459 
 3460 	  The NOTIFY, ACKNOWLEDGE and DEFAULT_SUBMITTER configure options
 3461 	  have been deleted.  DEFAULT_SUBMITTER is gotten from the submitters
 3462 	  list instead--it's the first entry.  (It always was, it's just
 3463 	  not being kept in two places now).  There's also no longer a
 3464 	  default port number--if you need to set a default port, add it
 3465  	  to /etc/services as a service instead.
 3466 
 3467 	  MAIL_AGENT is also gone; the mail-agent script is used instead
 3468 	  (the script is installed in ${libexecdir}/gnats/mail-agent).
 3469 
 3470 	  lists.c has been reoverhauled; it's much better now.  It no longer
 3471 	  dumps out files directly, except for the field-config file.
 3472 
 3473 	  db_conf* have been removed (functionality replaced in database.c).
 3474 
 3475 	  Many of the scripts are currently broken (they refer to GNATS_ROOT,
 3476 	  and they need to call query-pr to get the directory name for the
 3477 	  database instead).
 3478 
 3479 	  Many, many, many prototype fixes.  10 hours worth, in fact.
 3480   	  Enabled several anal pedantic warnings in gcc.  Eventually these
 3481  	  will only be enabled when --enable-maintainer-mode is turned on
 3482 	  (some systems have broken headers and things simply won't
 3483 	  compile otherwise).
 3484 
 3485 	  Removed xmalloc.[ch]; xmalloc is used from libiberty, and free is
 3486 	  called directly.  There will probably be problems because of this,
 3487 	  because some libcs are unhappy about freeing NULL pointers; the
 3488 	  code in GNATS should be fixed instead of using a wrapper.
 3489 
 3490 	  gnatsd.conf is now renamed to gnatsd.host_access; a slightly more
 3491 	  descriptive name.  It also uses the adm.c routines for reading.
 3492 
 3493 	  Most of delete-pr is in pr-edit now; delete-pr still handles
 3494 	  deleting all closed PRs.
 3495 
 3496 	  Most of the scripts have been fixed.  Some of them are almost
 3497 	  certainly still busted.  Scripts that still directly refer to 
 3498 	  files are (mostly) \hbadness 10000 and need to be fixed.  None
 3499 	  of the scripts should be manipulating PRs or the index file
 3500 	  directly.  I know that check-db is massively not working
 3501 	  right now.
 3502 
 3503 	  edit-pr is kind of suckage right now, but it should still
 3504 	  work.  It still knows about which fields need to have
 3505 	  audit-trail entries added; I had planned on fixing this
 3506 	  for 4.0, but it won't happen.  Most of the functionality is
 3507 	  actually in the server, except for sending mail when changes
 3508 	  occur.
 3509 
 3510 	  The "site" functionality has been removed.  It never was implemented
 3511 	  very well or thoroughly.  Something similar may be reimplemented,
 3512 	  but not in 4.0.
 3513 
 3514 	  This is likely the last major set of changes before 4.0 beta
 3515 	  is released.  The only planned changes are to filenames, and
 3516 	  of course the major associated documentation cleanups.  I
 3517 	  also need to track down memory leaks, tho given the nature of
 3518 	  the programs involved this actually isn't all that crucial.
 3519 
 3520 1999-12-16  Kenneth H. Cox  <kenstir@kilimanjaro.senteinc.com>
 3521 
 3522 	* Makefile.in (install-gnats-arch-indep): Location of gnats was
 3523 	$(top_builddir) which was not defined.  Changed to $(srcdir).
 3524 
 3525 Fri Dec 10 17:04:38 1999  Bob Manson  <manson@tristam.juniper.net>
 3526 
 3527 	* query.c (parseQueryExpression): Make sure both sides of the
 3528 	QueryExpr are NULL.
 3529 
 3530 	* pr.c (newFieldDef, freeFieldDef, freeStringList, freeFieldList,
 3531 	freeFieldEdit, clearFieldList, freeInputTemplate): New functions.
 3532 
 3533 	* pr-edit.c (main): Removed -F option.
 3534 
 3535 	* index.c (indexEntry): Added nextPR member.  The index chain
 3536 	is now kept as part of the PR's index.
 3537 	(check_pr_chain, free_pr_chain, init_index, get_pr_chain,
 3538 	free_curr_pr_chain, replaceCurrentPRInIndex, get_next_pr): New
 3539 	functions, or moved from pr.c.
 3540 
 3541 	* field.h: Moved PR_FieldType and SearchType here.
 3542 
 3543 	* edit.c (replace_pr): Removed force argument.
 3544 	(rewrite_pr): Ditto.
 3545 	(processPRChanges): New function.
 3546 
 3547 	* client.c (sendRemoteListQuery): New function.
 3548 	(sendRemoteQuery): Renamed from send_remote_query().  Moved
 3549 	list functionality into sendRemoteListQuery().
 3550 
 3551 	* adm.c (freeAdmFieldDesc, freeAdmEntryChain): New functions.
 3552 
 3553 Thu Dec  9 20:57:02 1999  Bob Manson  <manson@tristam.juniper.net>
 3554 
 3555 	* pr.c (field_value): Fundamental change--PR contents always
 3556  	override index contents.
 3557 
 3558 	* getclose.c (do_prlist): Use gen_pr_path().
 3559 
 3560 	* gen-index.c (do_category): Check to see if the PR read in is
 3561 	remotely sane.  (We should return an error status from read_pr()
 3562 	since it no longer insanely exits).
 3563 
 3564 	* query.c(make_path): Removed, no longer used.
 3565 
 3566 	* internal.c: Removed gnats_locked (identical to is_gnats_locked).
 3567 
 3568 	* lists.c (stringToListType, listTypeToString): New functions.
 3569 	(getGnatsFile): Renamed from get_gnats_file; simplified.
 3570 
 3571 	* cmds.c (GNATS_list): New function, calls getGnatsFile.  Remove
 3572  	old GNATS_l* list functions.
 3573 
 3574 	* client.c (send_remote_query): Change list parameter. Use
 3575 	listTypeToString ().
 3576 
 3577 	* query.h: Remove unused format #defines.  Remove LIST_*
 3578 	bitmasks; add ListTypes enum.
 3579 
 3580 Wed Dec  8 16:30:09 1999  Bob Manson  <manson@tristam.juniper.net>
 3581 
 3582 	* query-pr.c (main): Use printValidValues instead of coding it
 3583 	here.
 3584 
 3585 	* pr.c (printValidValues): New function.
 3586 
 3587 	* gnatsd.c (cmds): Add new commands.
 3588 
 3589 	* cmds.c (GNATS_fdsc, GNATS_flds, GNATS_linp, GNATS_ftyp, GNATS_fvld):
 3590 	New functions.
 3591 	(GNATS_help): Add descriptions for new server commands.
 3592 
 3593 	* edit.c (check_pr): Don't bother setting the bad value for
 3594  	Category:, Submitter:, or Responsible: fields.  strdup invalid
 3595  	fields when we *do* pass them in.
 3596 
 3597 	* client.c (client_print_errors): Print out the supplied error
 3598  	message for an invalid category, submitter, responsible or date
 3599 	field.
 3600 
 3601 	* pr.c (check_enum_types): Require values for all enum fields that
 3602  	don't allow any value.  (Possibly should require a value even if
 3603  	it allows any value.)
 3604 
 3605 	* query-pr.c: Add list-fields, list-input-fields, field-type,
 3606 	field-description and valid-values options.
 3607 
 3608 	* pr.c (fieldTypeAsString, setInputTemplate, getInputTemplate):
 3609 	New functions.
 3610 
 3611 	* npr-edit.c: Add check-initial option.
 3612 	* pr-edit.c: Ditto.
 3613 
 3614 	* lists.c (get_gnats_file): Add LIST_FIELD_NAMES and
 3615 	LIST_INPUT_FIELD_NAMES list options.
 3616 
 3617 	* field.h (InputTemplate): New structure.
 3618 	(field_def): Add description member.
 3619 
 3620 	* field-config: Add a few more comments, description entries for
 3621 	most of the fields, and an initial-entry section.
 3622 
 3623 	* fconfigl.l: Add description and initial-entry keywords.
 3624 
 3625 	* fconfig.y: Add "input" section for describing which fields
 3626 	should be required for an initial PR, and a "description"
 3627 	field to describe each field.
 3628 
 3629 	* edit.c (check_pr_file): Add option for verifying initial PRs.
 3630 	(check_pr): Ditto.
 3631 
 3632 	* cmds.c (GNATS_chek): Add command option for verifying initial
 3633 	PRs.
 3634 
 3635 Thu Dec  2 17:54:33 1999  Bob Manson  <manson@tristam.juniper.net>
 3636 
 3637 	* query.c (parseFieldName): Make public.
 3638 
 3639 	* pr.c (field_change_reason): New routine.
 3640 	(struct PR_private): Added multiFieldIsReason member.
 3641 	(setPRChain): Don't free the current PR chain, for now.
 3642 	(replace_existing_pr): Use field_value () instead of
 3643 	violating interfaces.
 3644 	(replace_existing_pr): Step to the next field.
 3645 	(get_field_value): New function.
 3646 
 3647 	* pcodes.h (CODE_INVALID_FIELD_NAME): New code.
 3648 
 3649 	* field.h (field_list): Add name and isReason fields.
 3650 	(field_edit): New structure.
 3651 
 3652 	* fconfig.y: Add support for on-change, require, append-to-field
 3653 	and set-field tokens.  Remove code for audit-related keywords.
 3654 
 3655 	* edit.c (rewrite_pr): Get the PR index chain before we do
 3656  	anything else.  Don't redeclare old_pr.  Invoke applyChangeActions ()
 3657 	on fields that have changed in the PR.
 3658 	(editGetFieldValue, applyFieldEdit, applyChangeActions): New
 3659 	functions.
 3660 
 3661 Wed Dec  1 13:29:02 1999  Bob Manson  <manson@tristam.juniper.net>
 3662 
 3663 	* pr.c (find_field_num): Check for a "reason changed" field.
 3664 	(verify_enum): Check for allow_any_value.
 3665 
 3666 	* pr-edit.c (main): Fix --unlockdb.
 3667 
 3668 	* field-config: Remove default value for Audit-Trail.
 3669 
 3670 	* fconfig.y: Add support for add-audit keyword.
 3671 
 3672 	* adm.c (initAdmField): Only set the default value if allow_any_value
 3673 	isn't set for the field.
 3674 
 3675 Tue Nov 30 14:28:27 1999  Bob Manson  <manson@tristam.juniper.net>
 3676 
 3677 	* pr.c (free_pr_header): New function.
 3678 	(free_pr_contents): Don't free the header contents here, as otherwise
 3679 	the header will never be available after a PR is read in.
 3680 	(free_pr): Free the PR's header too.
 3681 
 3682 	* query.c (iterate_prs): Ditto.
 3683 
 3684 	* index.c (indexValue): If there's no index available for this
 3685 	PR, return NULL instead of coredumping.
 3686 
 3687 	* pr.c (allocPR): Initialize the private struct.
 3688 
 3689 	* Move more PR-related code into pr.c; move index-related code
 3690 	  into index.c.  Make Index weak and wimpy (with the thought of
 3691 	  removing it entirely).
 3692 
 3693 	* index.c: Move the Index struct into here, as it is no longer
 3694  	needed publicly.
 3695 
 3696 Mon Nov 29 18:52:47 1999  Bob Manson  <manson@tristam.juniper.net>
 3697 
 3698 	* pr.c: Change the value member into a struct.
 3699 
 3700 1999-11-14  Jason Molenda  (jsm@bugshack.cygnus.com)
 3701 
 3702 	* BETA: This file renamed to "NEWS".  Seems more appropriate.
 3703 
 3704 1999-11-14  Jason Molenda  (jsm@bugshack.cygnus.com)
 3705 
 3706 	* mkdist.sh:  Recognize --database command line option.
 3707 	Get the categories file from the gnats database directory
 3708 	instead of the dist directory.  Update copyright text to 
 3709 	correct FSF address.
 3710 	Fixes one part of PR gnats/15
 3711 	TODO: man/mkdist.man is in need of an update.
 3712 
 3713 Tue Nov  9 17:45:36 1999  Bob Manson  <manson@tristam.juniper.net>
 3714 
 3715 	* pr.h: Remove temptation.
 3716 	* pr.c: Move tempted members into private struct.
 3717 	(free_pr_contents): Free up the PR's buffer.
 3718 
 3719 	* file-pr.c (append_report): Don't check the contents of the
 3720 	X-Gnats-Nonotify: field; if it's there, then don't send mail.
 3721 	Remove gratuitous goto.
 3722 
 3723 	* edit.c (rewrite_pr): We only need to check the state types; if
 3724 	they're different, the state has changed.
 3725 
 3726 	* npr-edit.c (net_send_pr_command): New function; read in
 3727 	a PR and send it along with the appropriate command.
 3728 	(net_check_pr): Use it.
 3729 	(net_submit_pr): Ditto.
 3730 
 3731 	* file-pr.c: Clean up a few function prototypes.  Delete
 3732 	bad_fields static variable; pass it in as needed.
 3733 	(append_report): Simplify; use rewrite_pr ().
 3734 
 3735 	* edit.c (fix_closed_date): New function.
 3736 	(rewrite_pr): Use it.
 3737 	(edit_field): Free the PR after we're done with it.  Don't
 3738 	free it if we actually passed it into rewrite_pr (), tho.
 3739 
 3740 	* cmds.c (GNATS_mlpr): Free the PR we allocated if we exit
 3741 	early.
 3742 
 3743 1999-11-07  Jason Molenda  (jsm@makita.cygnus.com)
 3744 
 3745 	* BETA: Add notes about 3.113 release.
 3746 
 3747 1999-11-1  Bob Manson  <manson@tristam.juniper.net>
 3748 
 3749 	* Massive changes to implement PRs as first-class objects; there
 3750 	  is no longer the concept of "current pr".  Initial cut at
 3751 	  removing K&R compatibility cruft.
 3752 	
 3753 	* autoconf.h.in, configure.in, query-pr.c: Removed
 3754  	GNATS_RELEASE_BASED--it was mostly gone anyway.
 3755 
 3756 	* npr-edit.c: Removed XXXnet_check_pr (); it was badness 10k.
 3757 
 3758 1999-10-27  Bob Manson  <manson@tristam.juniper.net>
 3759 
 3760 	* fconfig.y: Fix typo in regexpList rule.
 3761 
 3762 1999-10-27  Jason Molenda  (jsm@bugshack.cygnus.com)
 3763 
 3764         * at-pr.sh:  Send error/warning messages to stderr.
 3765         Fix handling of --directory option, thanks to patch from
 3766         <m.seaman@inpharmatica.co.uk>
 3767         Fixes PR gnats/6
 3768 
 3769 1999-10-27  Jason Molenda  (jsm@bugshack.cygnus.com)
 3770 
 3771 	* getdate.y:  Add local modification to recognize EEST, CES, 
 3772 	and CEST timezones.
 3773 	* getdate.c: Regenerated.
 3774 
 3775 1999-10-27  Jason Molenda  (jsm@bugshack.cygnus.com)
 3776 
 3777 	* ChangeLog.old: Moved to ChangeLog.v3.
 3778 
 3779 1999-10-26  Andreas Luik <Andreas.Luik@orthogon.de>
 3780 
 3781         * Makefile.in (distclean): Also remove config.log.
 3782         (maintainer-clean): Accept this as the same as realclean.
 3783 
 3784 1999-10-26  Andreas Luik <Andreas.Luik@orthogon.de>
 3785 
 3786 	* mkcat.sh: Portability fix for zeroing out GNATS_SITE and 
 3787 	categories files.
 3788 
 3789 Mon Oct 25 16:23:27 1999  Bob Manson  <manson@tristam.juniper.net>
 3790 
 3791 	* pr.c: Moved contents of headers.c here.  Header contents now
 3792 	exist as part of the PR object; names are kept in a separate
 3793 	array.
 3794 	* headers.c, headers.h: Deleted, no longer used.
 3795 
 3796 1999-10-26  Jason Molenda  (jsm@bugshack.cygnus.com)
 3797 
 3798 	* getdate.y, getdate.c, getdate.h: Import current FSF version
 3799 	of getdate.y and its generated siblings.  Pulled in from tar-1.13.9,
 3800         master versions are apparently under RCS on the FSF machines.
 3801 	* MANIFEST: List getdate.h.
 3802 
 3803 1999-10-26  Andreas Luik <Andreas.Luik@orthogon.de>
 3804 
 3805         * mkdist.sh: Change set call for better portability.
 3806 
 3807 1999-10-26  Jason Molenda  (jsm@bugshack.cygnus.com)
 3808 
 3809 	* BETA: Include beta notes for 3.111 and 3.112.
 3810 
 3811 1999-10-26  Jason Molenda  (jsm@bugshack.cygnus.com)
 3812 
 3813 	* configure, config.h.in:  Regenerate with autoconf 2.13.
 3814 
 3815 1999-10-25  Andreas Luik <Andreas.Luik@orthogon.de>
 3816 
 3817 	* man/edit-pr.man, man/file-pr.man, man/gen-index.man, man/gnats.man,
 3818         man/mkcat.man, man/mkdist.man, man/nquery-pr.man, man/query-pr.man,
 3819         man/queue-pr.man, man/rmcat.man:
 3820 	Correct references ("SEE ALSO") to "gnats(7)" instead of "gnats(l)".
 3821 	One line description in .SH NAME; required for Solaris windex 
 3822 	generation.
 3823 
 3824 1999-10-25  Jason Molenda  (jsm@bugshack.cygnus.com)
 3825 
 3826         * gnats-el.in (start-background): Convert random number to a string
 3827         before concatenating.  Patch from Palle Girgensohn <girgen@partitur.se>
 3828         Fixes PR gnats/13
 3829 
 3830 Fri Oct 22 15:43:59 1999  Bob Manson  <manson@tristam.juniper.net>
 3831 
 3832 	* file-pr.sh, nfile-pr.sh, gnats-file-pr.sh: New files. file-pr
 3833 	is now replaced with edit-pr --submit.
 3834 
 3835 	* main.c: Deleted, no longer used.
 3836 
 3837 	* cmds.c (print_server_errors): Handle CODE_INVALID_FIELD_CONTENTS
 3838  	specially.
 3839 	(GNATS_appnOrRepl, GNATS_appn, GNATS_repl, get_text_memory): New
 3840  	functions.
 3841 
 3842 	* field.h (FieldDef): regex is now a Stringlist.
 3843 
 3844 	* fconfig.y: Make the regex qualifier a StringList.
 3845 
 3846 	* edit.c (check_curr_pr): If a date field is null, don't coredump.
 3847 	The regex field is now a StringList; check all of the regexps.
 3848 	(edit_field): Read in the PR we're editing.
 3849 
 3850 	* client.c (client_print_errors): Print out the field.value
 3851  	contents when there is an invalid field.
 3852 
 3853 Thu Oct 21 19:10:26 1999  Bob Manson  <manson@tristam.juniper.net>
 3854 
 3855 	Add commands to allow the server to add new PRs.
 3856 
 3857 	* pr-edit.c: Add submit, append and replace options.
 3858 	* npr-edit.c: Ditto.
 3859 
 3860 	* main.c (main): Call submit_pr () instead of gnats ().
 3861 
 3862 	* file-pr.c (create_pr_file, submit_pr): New functions.
 3863 	(gnats): Call create_pr_file.
 3864 
 3865 	* edit.c (check_curr_pr, rewrite_curr_pr, edit_field): New
 3866  	functions.
 3867 	(check_pr): Read in the PR and call check_curr_pr.
 3868 
 3869 	* cmds.c (GNATS_subm): New function.
 3870 
 3871 Wed Oct 20 20:09:51 1999  Bob Manson  <manson@tristam.juniper.net>
 3872 
 3873 	* pr.c (struct PR_private): Used by the PR reading code to keep
 3874 	track of state while reading.
 3875 
 3876 	* pr.h(struct PR_struct): New type to represent contents of PRs.
 3877 
 3878 Tue Oct 19 15:33:36 1999  Bob Manson  <manson@tristam.juniper.net>
 3879 
 3880 	* pr.c (read_pr): Split up into three new functions, so that PRs
 3881  	can be added line-by-line. 
 3882 
 3883 	* Makefile.in (install-gnats-arch-indep): Fix from Jeff
 3884 	Bailey <jbailey@nisa.net> when srcdir != objdir.
 3885 
 3886 	* fconfig.y: Added allow-any-value entry for enums, to allow
 3887 	any value to appear (this seems contradictory, but it's needed
 3888 	for the Responsible: field).
 3889 
 3890 	* fconfigl.l: Added allow-any-value keyword.
 3891 
 3892 	* pr.c (check_enum_types): Check for allow_any_value flag
 3893 	in the field.
 3894 
 3895 Thu Sep 30 12:36:59 1999  Bob Manson  <manson@tristam.juniper.net>
 3896 
 3897 	* pr.c (check_enum_types): strdup() the field's default value, if
 3898  	we have to assign one.
 3899 	
 3900 Wed Sep 29 13:34:31 1999  Bob Manson  <manson@tristam.juniper.net>
 3901 
 3902 	* query.c (pr_match_field): Read in the PR if the field we're
 3903 	checking doesn't appear in the index.
 3904 	(parseQueryExpression): New function. Parses a query expression
 3905  	into a QueryExpr.
 3906 	(queryExprToString): New function.  Converts a QueryExpr into
 3907 	a string query expression.
 3908 	
 3909 	* query-pr.c (long_options): Added new option "expr", which
 3910 	accepts a boolean query expression; uses parseQueryExpression()
 3911 	to parse the expression.
 3912 
 3913 	* gnats.h: Moved gnats_* variables here; they will eventually be
 3914 	deleted.
 3915 
 3916 	* field.h (struct field_def): Rearrangement of members to
 3917 	make a bit more sense.
 3918 
 3919 Mon Sep 27 21:08:18 1999  Bob Manson  <manson@tristam.juniper.net>
 3920 
 3921 	* pr.h (SearchType): Added DefaultSearchType value.
 3922 
 3923 	* query.c (add_query_builtin_field): New function.
 3924  	 Changed previous callers of add_query_field to use it as
 3925 	 appropriate.
 3926 	(searchTypes): Added entry for DefaultSearchType.
 3927 	(pr_match_field): Handle DefaultSearchType.
 3928 
 3929 Thu Sep 23 19:54:19 1999  Bob Manson  <manson@tristam.juniper.net>
 3930 
 3931 	* pr.c (check_enum_types): Don't set the value to the default
 3932 	unless the original value was bad.
 3933 
 3934 Tue Sep 21 16:53:52 1999  Bob Manson  <manson@tristam.juniper.net>
 3935 
 3936 	Changes to allow adding new fields, and to divorce the concept of
 3937  	"field name" versus "builtin name".
 3938 
 3939 	* Use BUILTINNAME->index to get a builtin field's index number.
 3940 	(FieldIndex): New type, partially replacing PR_Name.
 3941 
 3942 	* query.c (iterate_prs): Call clean_pr () after we're done
 3943 	with the PR.
 3944 
 3945 	* client.c (client_print_errors): Fix printout of invalid enum
 3946 	errors.
 3947 
 3948 	* builtin-fields.h: New file.  It currently contains all of the
 3949  	pre-4.0 fields; this will eventually only contain those fields
 3950  	strictly needed by GNATS.
 3951 
 3952 	* fconfig.y, fconfigl.l: Add new builtin-name keyword.
 3953 
 3954 	* field.h (struct field_def): Remove netquery field.
 3955 
 3956 Wed Aug 25 12:04:22 1999  Bob Manson  <bmanson@tristam.juniper.net>
 3957 
 3958 	* pr-init.c (fconfig_parse, argument func): New argument.
 3959 	(get_line): New function.
 3960 
 3961 	* cmds.c (GNATS_lfds): New function; command for dumping the
 3962  	field-config file to the client.
 3963 
 3964 	* client.c (client_get_field_config_line, client_get_field_config):
 3965 	New functions.
 3966 	(client_init_gnats): Call client_get_field_config ().
 3967 
 3968 	* adm.c (initAdmField): Don't explode if the contents of the chain
 3969  	for the field are NULL.
 3970 
 3971 	* query.c (getSearchTypeForName, getSearchNameForType): New
 3972 	functions.
 3973 
 3974 	* pr.h (FIRST_BUILTIN_FIELD, NUM_BUILTIN_FIELDS): New.
 3975 
 3976 	* pr-init.c (builtin): Change "Target" to be "Quarter".
 3977 
 3978 	* gnatsd.c (cmds): Add FVAL.
 3979 
 3980 	* files.c: Remove init_classes() and init_states().
 3981 
 3982 	* field-config: Remove the network-query-command definitions.
 3983 
 3984 	* fconfigl.l: Add "%option nounput" to make flex behave. Remove
 3985 	network-query-command.
 3986 
 3987 	* fconfig.y: Add extern declarations for fconferror() and
 3988 	fconflex ().  Remove the network-query-command parse.
 3989 
 3990 	* cmds.c (netcommands): New array to hold the old-style network
 3991 	query commands; these are now hardcoded, and will probably be
 3992 	removed.
 3993 	(init_server_cmds): Initialize netcommands.
 3994 	(GNATS_fval): New function, to add the FVAL command.
 3995 
 3996 	* client.c (send_query_field): Use the FVAL query command.
 3997 
 3998 	* Makefile.in: Use @CFLAGS@ instead of hardcoding -g.
 3999 
 4000 	* configure.in: Turn on -Wall -ansi -pedantic -Werror for
 4001 	GCC.
 4002 
 4003 1999-08-24  Bob Manson  <bmanson@juniper.net>
 4004 
 4005 	* Initial checkin for 4.0.
 4006 	
 4007 
 4008 Local Variables:
 4009 left-margin: 8
 4010 fill-column: 74
 4011 version-control: never
 4012 End: