2004-06-02  gettextize  <bug-gnu-gettext@gnu.org>

	* Makefile.am (SUBDIRS): Add intl.
	* configure.ac (AC_CONFIG_FILES): Add intl/Makefile.

2004-05-25  Daniel P. Valentine <dpv@world.std.com>
	* process_files.c (process_reference_files, process_data_file): Marked
		Guile result so it is not freed when assigned to another variable.
2004-05-21  Daniel P. Valentine <dpv@world.std.com>
	* process_files.c (process_data_reference_matches): Added freeing of 
		allocated key value to eliminate memory leak.
	* dstring.c (dstrmakeown): Corrected setting of the flag for ownership
		of the string in the case of a 0-byte string to allow correct
		freeing of the memory to prevent a leak.
2004-05-20  Daniel P. Valentine <dpv@world.std.com>
	* df_options.c, df_global.h, df_global.c: added general use of data
		file field delimiters for reference files and output files
		unless overridden.  (--no-input-field-delimiter, 
		--no-output-field-delimiter).
2004-05-13  gettextize  <bug-gnu-gettext@gnu.org>

	* configure.ac (AC_CONFIG_FILES): Add m4/Makefile.
		autoreconf suggested by Gerritt Haase

2004-05-10  Daniel P. Valentine <dpv@world.std.com>
	* extras.c, extras.h: added a version of bzero in case configure
		does not find one in the system somewhere.
2004-03-24  Daniel P. Valentine <dpv@world.std.com>
	* hash.c, df_options.c: added hash type binary_long as an option
		for calculating the hash key.
2004-03-23  Daniel P. Valentine <dpv@world.std.com>
	* combine has been dubbed a GNU package.
2004-03-22  Daniel P. Valentine <dpv@world.std.com>
	* main.c: Added an atexit function registration to close stdout and 
		detect resulting errors.
		Suggestion from Jim Meyering of coreutils fame.
2004-03-22  Daniel P. Valentine <dpv@world.std.com>
	* fields.c, process_files.c, ...: Made changes to eliminate type 
		warnings resulting from -strict-aliasing.
		Suggestion from Jim Meyering of coreutils fame.
2004-01-22  Daniel P. Valentine <dpv@world.std.com>
	* df_common.h, process_files.c: Made changes to fix the summation of
		negative numbers greater than -1, as the sign was being 
		carried by the whole number.
2004-01-06  Daniel P. Valentine <dpv@world.std.com>
	* df_options.c, df_global.c, field.c, write_files.c, process_files.c
		Added most of the options necessary for join emulation.
		Includes substitutes of empty or missing strings, exclusion
		of matches, and join output ordering.
2003-12-21  Daniel P. Valentine <dpv@world.std.com>
	* df_options.c: Added some options for join and cut command emulation.
		Still need work to complete the emulation.
2003-12-15  Daniel P. Valentine <dpv@world.std.com>
	* Makefile.am: Removed -lgcc to the link options.
2003-12-15  Daniel P. Valentine <dpv@world.std.com>
	* dstring.c, index.c, df_common.h, main.c: added check for gettext from
		config.h.
	* extras.c, extras.h: Added this to hold compatibility functions in case
		a target system does not have them.  Added strsep and pow.
2003-11-20  Daniel P. Valentine <dpv@world.std.com>
	* test_combine: added a test that exercises some of the guile
		extension funcionality.  (Still need a way to turn it off.)
2003-11-19  Daniel P. Valentine <dpv@world.std.com>
	* iguile.c, iguile.h, main.c, field.c, process_files.c: changed
		guile API calls to new SCM function if we have libguile.h.
2003-10-24  Daniel P. Valentine <dpv@world.std.com>
	* df_options.c, process_files.c: added option to make the data
		file match optional, though not cleanly for hierarchy
		reference files.
2003-10-21  Daniel P. Valentine <dpv@world.std.com>
	* df_options.c: added validation of more options, especially
		for reference files.
2003-10-18  Daniel P. Valentine <dpv@world.std.com>
	* df_global.h, df_options.h, process_files.c, process_files.h:
		Added the ability to apply a match filter extension
		on matches within a hierarchy traversal.
2003-10-07  Daniel P. Valentine <dpv@world.std.com>
	* df_global.h, df_options.h, process_files.c, process_files.h:
		Added functionality for hierarchy traversal within a
		reference file match.
2003-10-05  Daniel P. Valentine <dpv@world.std.com>
	* df_global.h, df_global.c, df_options.c: Added options for 
		hierarchy processing within reference files.
2003-10-02  Daniel P. Valentine <dpv@world.std.com>
	* iguile.h, field.c, main.c, df_check.c, process_files.c: Check
		HAVE_LIBGUILE before using guile functions and SCM type.
2003-09-28  Daniel P. Valentine <dpv@world.std.com>
	* df_common.h: To support precision, created macros CONVERT_SUM
		and CONVERT_SUM_PRECISION to handle conversion to an
		integer value, depending on the availability of strtoll.
	* process_files.c: Added differential processing based on non-
		zero precision on sum fields.  Use fixed decimal processing
		by multiplying to get an integer and then dividing on
		output.
2003-09-27  Daniel P. Valentine <dpv@world.std.com>
	* process_files.c: Changed casting of counters and flags to
		use the macro COUNTTYPE in preparation for allowing
		quadword counters.  Changed sprintfs for counters
		to use the macro COUNTFORMAT.
	* df_common.h: Made setting of HASHTYPE, COUNTTYPE, and
		COUNTFORMAT dependent on the config.h variable
		HAVE_LONG_LONG.
	* configure.ac: Added a type check for 'long long' to the mix.

2003-09-22  Daniel P. Valentine <dpv@world.std.com>

	* calendar.scm, date.scm, Makefile.am: Moved to source dir
		installs now to .../share/guile/date

2003-09-18  gettextize  <bug-gnu-gettext@gnu.org>

	* Makefile.am (EXTRA_DIST): Add config.rpath.

2003-09-15 Daniel P. Valentine <dpv@world.std.com>
* Everywhere: added copyright and GPL reference to .c and .h files.
* main.c: Moved the include of df_common.h before the scheme 
configuration so that the right package name is always picked up.
* df_check.c: Ditto

2002-08-13  gettextize  <bug-gnu-gettext@gnu.org>

	* configure.ac (AC_CONFIG_FILES): Add m4/Makefile.

2002-08-11 Daniel P. Valentine <dpv@world.std.com>
* field.c: Clean up of all function calls and error messages
* df_common.h: Created FATAL_ERROR1-3 to allow better formatted
meaningful error messages
* dstring.c: Clean up of style and comments.
* process_files.c: Clean up of style and comments.
* iguile.c: Clean up of style and comments.
* options.c: Clean up of style.

* dstring.c: Added better maintenance of internal string sharing when
modifying strings.

* process_files.c, options.c: Added support for data order source 's'
for substitutions for missing reference output fields.

* field.c, options.c: Added support for renages of field numbers in the
-o and -O options.

2002-08-10 Daniel P. Valentine <dpv@world.std.com>
* field.c (a_find_input_ranges): Added argument make_copy to allow caller
to specify whether data should be used directly from the buffer or not
* process_files.c, makeindex.c, field.h: Changed references to the 
routine likewise

*process_files.c (process_reference_files): Added stdin reading for a
reference file specified as "-"

*process_files.c (process_reference_files, process_data_file): Added
record filtering through guile.
*df_opts.def: added support for the 'l' specifier for filtering extensions

2002-08-09 Daniel P. Valentine <dpv@world.std.com>
* field.c (a_find_input_ranges, find_input_ranges): Added return check to
calls to dstrsubstring
* read_files.c (df_get_next_record): Cleaned up handling of buffer size at
end of field-delimited file.

2002-07-27 Daniel P. Valentine <dpv@world.std.com>
* datafactory.c (a_find_input_ranges): Added call to guile after identifying
a string to allow extensions to adjust the strings
* datafactory.h (ADD_RANGE_PAIR): adjusted handling of the instruction string
to save it as NULL if it is zero-length

2002-07-23 Daniel P. Valentine <dpv@world.std.com>
* dstring.c: adjusted all functions to deal better with 0-length strings

2002-07-22 Daniel P. Valentine <dpv@world.std.com>
* datafactory.h, datafactory.c, df_opts.def: Added option -O to allow
the specification of the order of output fields; included the creation
of supporting variables
*datafactory.c (write_output): Added optional printing of fields by 
requested order (for reference-based output)
*datafactory.c (process_data_reference_matches): Added optional printing 
of fields by requested order (for data-based output)

2002-07-21 Daniel P. Valentine <dpv@world.std.com>
* datafactory.h (libguile.h guile/gh.h): includes to support guile
* datafactory.c (df_main): New subordinate main function to call guile
setup in main
* datafactory.c (output_delimiter_length, gi_output_delimiter_length):
Removed as they are redundant with the dynamic string structure
* datafactory.c, datafactory.h, df_opts.def (constant_string_length in ref):
Removed likewise.
* datafactory.c, datafactory.h, df_opts.def (gi_data_constant_string_length):
Removed likewise.

* datafactory.c, datafactory.h: added the functions a_find_input_ranges and 
df_write_field to fill and use the new field-by-field output field storage
that I added to enable custom ordering of the fields.  Implemented their use
for all reading and writing interpretation.

2002-07-20 Daniel P. Valentine <dpv@world.std.com>
* df_opts.def (--inputfielddelimiter, --inputrecorddelimiter) added options to 
make record handling less limited by fixed width and particular structures
* datafactory.h (gs_data_input_field_delimiter, gs_data_input_record_delimiter,
input_field_delimiter, input_record_delimiter) added variables to go with the
options
* datafactory.c (gs_data_input_field_delimiter, gs_data_input_record_delimiter)
added variables to go with the options
* datafactory.c (find_input_fields): added function to make a possibly
delimited string from the fields specified in a set of ranges
* datafactory.c (process_reference_files, process_data_file, 
process_reference_data_matches) changed to use find_input_fields rather than
maintaining separate loop
* datafactory.c (find_field): added support for delimited fields

* dstring.c (dstrsplit): added function
* dstring.h (dstrsplit): likewise

* datafactory.c (df_get_next_record, df_write_output): added function to 
provide support for delimited and fixed-length records with a dynamic buffer
* datafactory.h (DF_BUFFER_INCREMENT): added parameter for the size to create
or increase the buffer when necessary

* datafactory.h (gs_data_input_buffer, reference_file_struct, etc): added input 
buffer pointers
* datafactory.c: The same with initialization
* df_opts.def: Initialization of same

* datafactory.c: Changed all reading and writing to use the new buffered functions

2002-07-18 Daniel P. Valentine <dpv@world.std.com>
* datafactory.h (ADD_RANGE_PAIR): Added precision as an argument and put into
the right place in the structure field_range
* datafactory.c (calculate_ranges): Changed call to above
(write_user_request): Added function to write out the current options in verbose mode

2002-07-17 Daniel P. Valentine <dpv@world.std.com>

* datafactory.c (process_data_reference_matches) moved the reference file matching
to this function to enable recursion.  Added ability to work with multiple matching 
reference records with the same key.
* datafactory.c (process_data_file) replaced in-line processing with call to 
process_data_reference_matches

* df_opts.def (--statistics, --verbose): Added these options to control informational
output to stderr
* datafactory.c (statistic writing): Used the --statistics option rather than the
hard-coded #define STATS to control writing statistics
* datafactory.h (STATS): removed the #define

* datafactory.c (calculate_ranges): Revised the routine to be cleaner and to identify
an optional precision and format string
* datafactory.h (field_range): added fields precision and format

2002-07-16 Daniel P. Valentine <dpv@world.std.com>

* dstring.c (all functions): new implementation of dynamic descriptor strings.
* dstring.h: likewise
* datafactory.c (process_reference_files, process_data_file, calc_hash_key, etc.):
changed c-strings to dynamic descriptor strings everywhere that user data exists

* Makefile: added dstring.o to OBJECTS and dstring.c and dstring.h as dependencies.

* datafactory.h (s_val_entry.another_for_key): added to indicate another entry with same key.
(s_val_entry.hash_key): changed type the HASHTYPE to match the values to go into it.
* datafactory.c (create_table_entry): added support to indicate the value of another_for_key

*******************************
 combine - flexible file merging

   Copyright (C) 2004 the Free Software Foundation

   This file was written by Daniel P. Valentine <dpv@world.std.com>

   This program is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the Free
   Software Foundation; either version 2, or (at your option) any later
   version.

   This program is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
   more details.

   You should have received a copy of the GNU General Public License along
   with this program; if not, write to the Free Software Foundation, Inc.,
   59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
