2008-11-18   D. V. Wiebe <getdata@ketiltrout.net>  svn:229 svn:230
	Merge in a few undocumented 0.5 additions required by kst 2.x from r228.
	These features are unsupported and may change before 0.5 is released.

	* bindings/cxx/dirfile.cpp (Dirfile::ReferenceFilename): Added.

	* src/globals.c: Added.

	* src/entry.c (get_raw_filename): Added.

2008-11-17   D. V. Wiebe <getdata@ketiltrout.net>  svn:220
	* src/flush.c (_GD_Flush): Fix SEGV.

	* src/getdata.c (_GD_DoRaw): don't divide samples_read by data size.
	* src/raw.c (_GD_RawRead): divide nread by data size.
	* test/slim_get.c test/slim_nframes.c: Test with uint16_t to check for
		above bug.  Invoke slim binary with -k (force).

2008-11-15   D. V. Wiebe <getdata@ketiltrout.net>  svn:219
	* src/legacy.c (GetFormat): Remove const from return
	* src/getdata_legacy.h: wrap all function declarations in extern "C"

	* src/legacy.c: Trace function calls.

	* src/Makefile.am: add symbolic link getdata_struct.h -> getdata.h for
	better legacy API support.

2008-11-14   D. V. Wiebe <getdata@ketiltrout.net>  svn:217
	* src/include.c (_GD_Include) src/open.c (dirfile_open): Initialise
	protection level for fragments.

2008-11-07   D. V. Wiebe <getdata@ketiltrout.net>  svn:211
	* src/open.c (_GD_ValidateField _GD_Tokeniser): Replace slow strchr calls
	with explicit tests.

	* src/open.c (_GD_ValidateField): Conditionally allow "." in field names,
	but prohibit encoding extensions in this case.
	* test/parse_name_dot.c test/parse_name_ext.c test/parse_name_pedantic.c:
	Added.

	* src/open.c (_GD_ParseRaw): Don't set fragment->ref_name: it will be done
	later.

	* src/entry.c (_GD_FreeE): Free the file string for RAW fields.
	* src/close.c (_GD_FreeD): Call _GD_FreeE instead of de-allocating entries
	explicitly.  A few other missing free calls added.

	* src/getdata.c src/internal.h src/ascii.c: Add _GD_AsciiTouch.

2008-10-28   D. V. Wiebe <getdata@ketiltrout.net>  svn:204
	* src/nframes.c (get_nframes): Don't divide by the datatype size twice.

	* bindings/cxx/test/entry.cpp bindings/cxx/test/putdata.cpp
	bindings/cxx/test/spf.cpp bindings/cxx/test/getdata.cpp
	bindings/cxx/test/addentry.cp bindings/cxx/test/nframes.cpp: Update for new
	header locations.

2008-10-28   D. V. Wiebe <getdata@ketiltrout.net>  svn:200
	* src/field_list.c (get_field_list get_vector_list get_field_list_by_type
	get_strings) src/meta_list.c (get_mfield_list get_mvector_list
	get_mfield_list_by_type get_mstrings): Return a valid list even if there
	are zero elements.

	* src/field_list.c (get_mfield_list_by_type): Return the correct list in all
	cases.

2008-10-22   D. V. Wiebe <getdata@ketiltrout.net>  svn:197
	* src/putdata.c (_GD_DoRawOut): Figure out the encoding scheme before
	attempting to check whether idem needs byte-swapping.  Bug report from
	Matthew Truch.

2008-10-21   D. V. Wiebe <getdata@ketiltrout.net>  svn:185
	* src/include.c: Remove duplicate accessmode check.

2008-10-21   D. V. Wiebe <getdata@ketiltrout.net>  svn:184
	* src/open.c: Fix PROTECT parsing.
	
	* src/putdata.c: Check protection for STRING, not PHASE.

	* src/putdata.c (_GD_DoStringOut): Don't de-allocate old string until
	new string is successful.

	* src/internal.h: Don't mix CONST data and client list.

	* src/flush.c (_GD_FlushMeta): Don't write INDEX.

	* src/add.c (_GD_Add): Split format and data protection checks.

2008-10-21   D. V. Wiebe <getdata@ketiltrout.net>  svn:180
	* src/internal.h: Add protection, ref_name, and frame_offset to
	gd_fragment_t.  Remove first_field, first_fragment from same.  Remove
	frame_offset from DIRFILE.
	* src/open.c (_GD_DoRaw): Set the first field stuff after attempting to
	create the new file.
	* src/open.c (_GD_ParseDirective): FRAMEOFFSET is fragment local.  Parse
	PROTECT.
	* src/open.c (_GD_ParseFragment): Set reference name.
	* src/flush.c (_GD_FlushMeta): Write PROTECT, REFERENCE, FRAMEOFFSET.  Don't
	worry about first fields any more.

	* src/add.c (_GD_Add dirfile_add_spec dirfile_madd_spec) src/putdata.c
	(_GD_DoRawOut _GD_DoConstOut _GD_DoStringOut): Check protection.
	* src/getdata.c (_GD_DoRaw _GD_DoRawOut): frame_offset is fragment local.
	* src/include.c (dirfile_include): check access mode and protection.

2008-10-21   D. V. Wiebe <getdata@ketiltrout.net>  svn:179
	* src/internal.h: Renamed D->include_list, D->n_include, and D->first_field to
	D->fragment, D->n_fragment, and D->reference_field.  Also removed
	E->e->first and D->fragment[].first and added D->fragment[].first_field and
	D->fragment[].first_fragment.
	* src/getdata.h.in bindings/f77/make_parameters.c: Added GD_E_BAD_REFERENCE.

	* src/open.c (_GD_ParseFieldSpec): Return a pointer to the gd_entry_t just
	created if it's a RAW field (or else NULL).  Also, it no longer gets
	passed &have_first.
	* src/open.c (_GD_ParseDirective): Update ref_name instead of have_first.
	Parse REFERENCE directive.
	* src/open.c (_GD_ParseFragment): Renamed from _GD_ParseFormatFile.  Returns
	the ref_name.  Sets fragment->first_fragment and fragment->first_raw.
	* src/flush.c (_GD_FlushMeta): Updated for new first field stuff.
	* src/include.c (_GD_Include): Accept and return ref_name to caller.
	* src/include.c (dirfile_include) open.c (dirfile_open): Resolve REFERENCE
	after parsing completes.

	* man/dirfile_include.3 man/dirfile_open.3 dirfile-format.5: Update for
	REFERENCE.

	* src/flush.c (_GD_FlushMeta): Write global metadata at the end so it will
	take precedence.

	* src/flush.c (_GD_FieldSpec): String escapeise the field name.

2008-10-19   D. V. Wiebe <getdata@ketiltrout.net>  svn:173
	* src/errors.c (_GD_SetError) src/getdata.h.in: Added GD_VERBOSE flag.

	* src/flush.c (_GD_Flush): Use encoding framework to flush and close raw
	files.

	* src/open.c (_GD_Tokenise): Properly handle trailing backslash.

	* test/parse_eol.c test/parse_quote_mismatch.c: Added.

2008-10-17   D. V. Wiebe <getdata@ketiltrout.net>  svn:169
	* src/getdata.c (_GD_DoRaw) src/putdata.c (_GD_DoRawOut): Some encodings
	need no endianness correction.

2008-10-17   D. V. Wiebe <getdata@ketiltrout.net>  svn:165
	* src/nmeta.c: Renamed get_nmetafields, get_nmetavectors, and
	get_nmetafields_by_type to get_nmfields, get_nmvectors, and
	get_nmfields_by_type.
	* src/field_list.c: Renamed get_constant_values and get_string_values to
	get_constants and get_strings.
	* src/flush.c: Renamed dirfile_flush_metadata to dirfile_metaflush
	* src/meta_list.c: Renamed get_metaconstant_values, get_metastring_values,
	get_metafield_list_by_type, get_metavector_list, and get_metafield_list to
	get_mconstants, get_mstrings, get_mfield_list_by_type, get_mvector_list, and
	get_mfield_list.
	* src/add.c: Renamed dirfile_add_metaspec, dirfile_add_meta,
	dirfile_add_metalincom, dirfile_add_metalinterp, dirfile_add_metabit,
	dirfile_add_metamultiply, dirfile_add_metaphase, dirfile_add_metastring, and
	dirfile_add_metaconst to dirfile_madd_spec, dirfile_madd,
	dirfile_madd_lincom, dirfile_madd_linterp, dirfile_madd_bit,
	dirfile_madd_multiply, dirfile_madd_phase, dirfile_madd_string, and
	dirfile_madd_const.
	* bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h: Updated C++ bindings
	accordingly.
	* bindings/f77/fgetdata.c bindings/f77/getdata.f.in bindings/f77/fgetdata.h
	bindings/f77/getdata.f90.in: Updated Fortran 77 and 95 bindings accordingly.
	* test/add_meta_linterp_invalid.c test/add_meta_lincom_invalid.c
	test/add_meta_phase_invalid.c test/add_meta_phase.c test/add_meta_multiply.c
	test/add_meta_spec_invalid.c test/add_meta_spec.c test/add_meta_linterp.c
	test/add_meta_lincom.c test/add_meta_spec_directive.c
	test/add_meta_bit_invalid.c test/add_meta_bit.c test/add_meta.c
	test/add_meta_multiply_invalid.c: Removed.
	* test/madd_bit.c test/madd_lincom_invalid.c test/madd_lincom.c
	test/madd_spec.c test/madd_phase.c test/madd.c test/madd_linterp_invalid.c
	test/madd_bit_invalid.c test/madd_linterp.c test/madd_spec_invalid.c
	test/madd_spec_directive.c test/madd_multiply_invalid.c test/madd_multiply.c
	test/madd_phase_invalid.c: Added.
	* test/nmeta_type.c test/vlist_meta.c test/cvlist_invalid.c
	test/nmeta_vectors_parent.c test/svlist_invalid.c test/cvlist.c
	test/svlist.c test/nmeta_parent.c test/nmeta_vectors.c
	test/cvlist_meta_invalid.c test/flist_meta_invalid.c
	test/svlist_meta_invalid.c test/cvlist_meta.c test/nmeta_type_invalid.c
	test/vlist_meta_invalid.c test/flush_meta.c test/svlist_meta.c
	test/nmeta_invalid.c test/nmeta.c test/flist_type_meta_invalid.c
	test/flist_type_meta.c test/nmeta_vectors_invalid.c test/nmeta_type_parent.c
	test/flist_meta.c: Updated.

2008-10-17   D. V. Wiebe <getdata@ketiltrout.net>  svn:164
	* src/open.c src/putdata.c src/getdata.c src/flush.c src/getdata.h.in
	src/add.c src/nframes.c: Rename format_file in gd_entry_t to fragment_index,
	also similar function parameters.
	* bindings/cxx/entry.cpp bindings/cxx/entry.h bindings/f77/fgetdata.c
	bindings/f77/getdata.f.in bindings/f77/fgetdata.h
	bindings/f77/getdata.f90.in: Update bindings to match.
	* test/add_rdonly.c test/add_invalid.ca test/add.c test/add_code.c
	test/add_duplicate.c test/add_type.c test/add_meta.c test/add_format.c:
	Updated.

	* src/open.c (_GD_ParseRaw): Use me instead of E->fragment_index, since the
	latter hasn't been initialised yet.

	* test/format_filename.c test/nformats.c test/format_filename_oor.c:
	Removed.
	* test/fragmentname.c test/nfragments.c test/fragmentname_oor.c: Added.

2008-10-17   D. V. Wiebe <getdata@ketiltrout.net>  svn:163
	* src/getdata.c (_GD_DoString) src/string.c (get_string): Add one to string
	length to account for terminating NUL.
	* src/putdata.c (_GD_DoStringOut) src/string.c (put_string): Return string
	length.

	* src/format_list.c: Renamed get_format_filename to get_fragmentname and
	get_nformats to get_nfragments.  Bindings changed.
	
	* src/constant.c (get_constant put_constant): Reutrn -1 on error.

2008-10-16   D. V. Wiebe <getdata@ketiltrout.net>  svn:161
	* src/meta_list.c src/nmeta.c: Fail if the specified parent is itself a
	metafield.

2008-10-16   D. V. Wiebe <getdata@ketiltrout.net>  svn:155
	* src/open.c: Moved meta field enumeration to _GD_ParseFieldSpec from
	_GD_ParseDirective to allow dirfile_add_metaspec to benefit seamlessly.

	* src/add.c (dirfile_add_metaspec dirfile_add_spec): Reversed parameters.
	It's better to keep the order consistent with the other dirfile_add
	functions rather than having it consistent with the format file.
	* bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h bindings/f77/fgetdata.c
	bindings/f77/fgetdata.h bindings/f77/getdata.f90.in README.cxx README.f95
	README.f77: Ditto for bindings.

	* src/add.c (dirfile_add_metaspec dirfile_add_spec): Fail on a read-only
	dirfile or format_file out of range.

	* src/add.c (dirfile_add_metaspec): Pass parent to _GD_ParseFieldSpec.

	* test/add_meta_spec_invalid.c test/add_meta_spec.c
	test/add_meta_spec_directive.c: Added.

2008-10-15   D. V. Wiebe <getdata@ketiltrout.net>  svn:151
	* src/add.c src/flush.c src/getdata.c src/include.c src/internal.h
	src/nframes.c src/open.c src/putdata.c man/dirfile-format.5: Made endianness
	fragment-local.

	* man/dirfile_include.3: Added.

2008-10-15   D. V. Wiebe <getdata@ketiltrout.net>  svn:148
	* src/include.c (dirfile_include): Throw GD_E_ACCMODE if GD_CREAT or
	GD_TRUNC are passed to a read-only dirfile.

	* test/include.c test/include_invalid.c test/include_accmode.c
	test/include_creat.c test/include_nonexistent.c: Added.

2008-10-15   D. V. Wiebe <getdata@ketiltrout.net>  svn:147
	* README.f77 bindings/f77/fgetdata.c bindings/f77/fgetdata.h
	bindings/f77/getdata.f.in: Add more Fortran 77 bindings.

	* README.f95 bindings/f77/fgetdata.f90.in: Added Fortran 95 bindings for the
	new public functions.

2008-10-14   D. V. Wiebe <getdata@ketiltrout.net>  svn:146
	* bindings/f77/fgetdata.c bindings/f77/fgetdata.h
	bindings/f77/getdata.f90.in: Renamed GDFNFT to GDFNFO.

	* README.f77 bindings/f77/fgetdata.c bindings/f77/fgetdata.h
	bindings/f77/getdata.f.in bindings/f77/make_parameters.c: Added Fortran 77
	bindings for the new public functions.

2008-10-14   D. V. Wiebe <getdata@ketiltrout.net>  svn:143
	* test/nframes_empty.c: Correct for removal of GD_E_EMPTY.

	* README.cxx bindings/cxx/dirfile.h bindings/cxx/dirfile.cpp
	bindings/cxx/entry.h: Added C++ bindings for new public functions.

	* src/constant.c: get_constant returns size_t, not ssize_t, like the other
	get_<foo>() functions.

	* src/getdata.h.in: Add some missing public prototypes.
	
	* src/nfields.c src/nmeta.c: Removed the _ after nmeta in public function
	names.
	* test/nmeta_type.c test/nmeta_vectors_parent.c test/nmeta_parent.c
	test/add_meta_phase.c test/add_meta_multiply.c test/nmeta_type_invalid.c
	test/add_meta_linterp.c test/add_meta_lincom.c test/nmeta_invalid.c
	test/nmeta.c test/nmeta_vectors_invalid.c test/add_meta_bit.c
	test/add_meta.c test/nmeta_type_parent.c: Updated.

	* src/close.c (_GD_FreeD) src/entry.c (_GD_FreeE) src/field_list.c
	src/internal.h src/meta_list.c: Replaced get_constant_list() and
	get_string_list() with get_field_list_by_type(), which reduces the amount of
	duplicated code and provides a more flexible interface.  Similarly with the
	META versions.
	* test/clist.c test/clist_invalid.c test/clist_meta.c
	test/clist_meta_invalid.c test/slist.c test/slist_invalid.c test/slist_meta.c
	test/slist_meta_invalid.c: Removed.
	* test/flist_type.c test/flist_type_invalid.c test/flist_type_meta.c
	test/flist_type_meta_invalid.c: Added.

	* src/open.c: Reduce paranoia by not re-zeroing memory already memset to
	zero.

2008-10-14   D. V. Wiebe <getdata@ketiltrout.net>  svn:140
	* src/legacy.c src/errors.c src/nframes.c (get_nframes64): GD_E_EMPTY is
	no-longer an error. (Per discussion with Barth.)

	* bindings/f77/make_parameters.c: Updated.

2008-10-14   D. V. Wiebe <getdata@ketiltrout.net>  svn:139
	* bindings/f77/test/fget_field_list.f90: Fix for new list and count function
	behaviour.
	* bindings/cxx/test/addentry.cpp: Fix for new get_nfields behaviour and
	properly clean-up dirfile.

	* src/entry.c (_GD_FreeE) src/internal.h: Add calculated and scalar[] array.
	* src/open.c (_GD_SetScalar): Added.
	* src/open.c (_GD_ParseRaw _GD_ParseLincom _GD_ParseLinterp
	_GD_ParseMultiply _GD_ParseBit _GD_ParsePhase _GD_ParseConst
	_GD_ParsePhase): Record non-numeric scalar tokens for deferred calculation.
	Numeric tokens are detected using strtod().
	* src/entry.c (_GD_GetScalar _GD_CalculateEntry): Added.
	* src/entry.c (get_entry) src/getdata.c (_GD_DoField) src/putdata.c
	(_GD_DoFieldOut): Call _GD_CalculateEntry when necessary.
	* src/constant.c (put_constant): Reset clients after changing the constant.
	* src/add.c (_GD_Add) src/open.c (_GD_ParseConst): Initialise client list.

	* test/entry_bit_scalar.c test/entry_lincom_scalar.c
	test/entry_phase_scalar.c test/entry_raw_scalar.c test/parse_bit_scalar.c
	test/parse_lincom_scalar.c test/parse_phase_scalar.c
	test/parse_raw_scalar.c test/entry_raw_scalar_code
	test/entry_raw_scalar_type: Added.

2008-10-14   D. V. Wiebe <getdata@ketiltrout.net>  svn:138
	* src/field_list.c (get_string_values): Fix array out of bounds crash.

	* src/internal.h: Remove errant ; on _GD_InternalError macro.

	* src/open.c (dirfile_open): Gave INDEX it's own explicit entry.  This
	automatically allows defining /META fields for INDEX, per Barth's request.
	This entry has the special type GD_INDEX_ENTRY.  Some other
	simplifications/complications result.  First among these is that the list
	functions and the counting functions now may include INDEX, as appropriate.
	* test/add_lincom.c test/add_sort.c test/add_spec_directive.c
	test/add_phase.c test/add_string.c test/add_multiply.c
	test/add_bit_numbits.c test/add_bit_bitsize.c test/flist.c test/vlist.c
	test/add_raw.c test/add_bit.c test/add_code.c test/add_duplicate.c
	test/add_const.c test/nvectors.c test/add_type.c test/add_meta.c
	test/parse_sort.c test/add_linterp.c test/add_format.c test/add_spec.c:
	Update for new list and counting function behaviour.
	* test/parse_meta_index.c: Added.
	* src/common.c (_GD_GetEntry): Removed (no longer needed).  Callers call
	_GD_FindField directly now, and must throw their own errors.
	* src/getdata.c (_GD_DoField) src/putdata.c (_GD_DoFieldOut) src/spf.c
	(_Get_SPF): Replaced INDEX special-casing with GD_INDEX_ENTRY handling.

2008-10-13   D. V. Wiebe <getdata@ketiltrout.net>  svn:137
	* src/add.c (_GD_Add): Properly initialise the private entry after creating
	it.  Crash report from Matthew Truch.

	* test/add_meta_linterp_invalid.c test/add_meta_lincom_invalid.c
	test/add_raw_invalid.c test/nmeta_vectors_parent.c test/nmeta_parent.c
	test/add_meta_phase_invalid.c test/add_invalid.c test/add_phase_invalid.c
	test/add_string.c test/add_linterp_invalid.c test/add_bit_invalid.c
	test/add_lincom_invalid.c test/add_meta_bit_invalid.c
	test/add_multiply_invalid.c test/add_meta_multiply_invalid.c
	test/add_spec_invalid.c test/nmeta_type_parent.c: Fix compiler warning.

	* getdata.h.in: Add declarations for dirfile_add_string() and
	dirfile_add_const().

2008-10-12   D. V. Wiebe <getdata@ketiltrout.net>  svn:136
	* src/add.c (_GD_Add): Prohibit declaring METAs in a fragment not containing
	its parent.
	* src/open.c (_GD_ParseDirective): Ditto.
	* src/getdata.h.in: GD_FORMAT_AUTO is no longer needed.

	* src/internal.h src/open.c: MAX_IN_COLS moved to header.
	* src/add.c (dirfile_add_metaspec dirfile_add_spec): Added.

	* src/internal.h: Store subdir (sname) in include list.
	* src/close.c (_GD_FreeD): free sname.
	* src/open.c (_GD_ParseRaw _GD_ParseFieldSpec _GD_ParseDirective): Derive
	subdir and other relevant information from the include_list, where possible.

	* src/open.c (_GD_Tokenise): Allow specification of the empty string as "".
	* src/open.c (_GD_ValidateField): Prohibit reserved words and the empty
	string.

	* src/add.c (_GD_Add): Provide defaults for CONST and STRING; properly
	enumerate types.

	* src/add.c: Add GD_INVALID checks to all public functions.

	* src/add.c (dirfile_add_metalincom dirfile_add_metalinterp
	dirfile_add_metabit dirfile_add_metamultiply dirfile_add_metaphase): Put
	parent parameter before field_code to mimic the field spec order.

	* src/flush.c (_GD_FieldSpec _GD_FlushMeta): Properly handle META fields.

	* src/getdata.h.in: dirfile_add_raw dirfile_add dirfile_add_spec
	dirfile_add_metaspec may all potentially call I/O functions; ergo, don't
	mark them with THROW.o

	* test/Makefile.am: Re-organise tests.
	* test/add_meta_linterp_invalid.c test/add_meta_lincom_invalid.c
	test/vlist_invalid.c test/add_raw_invalid.c test/vlist_meta.c
	test/cvlist_invalid.c test/svlist_invalid.c test/cvlist.c test/svlist.c
	test/add_meta_phase_invalid.c test/add_invalid.c test/add_meta_phase.c
	test/add_phase_invalid.c test/add_spec_directive.c test/add_string.c
	test/clist_invalid.c test/add_linterp_invalid.c test/add_meta_multiply.c
	test/slist_invalid.c test/clist.c test/cvlist_meta_invalid.c
	test/flist_meta_invalid.c test/slist.c test/svlist_meta_invalid.c
	test/cvlist_meta.c test/vlist_meta_invalid.c test/svlist_meta.c
	test/parse_string_null.c test/add_meta_linterp.c test/add_meta_lincom.c
	test/vlist.c test/add_bit_invalid.c test/add_lincom_invalid.c
	test/add_meta_bit_invalid.c test/add_meta_bit.c test/add_multiply_invalid.c
	test/add_const.c test/add_meta_multiply_invalid.c test/clist_meta_invalid.c
	test/add_meta.c test/add_spec_invalid.c test/slist_meta_invalid.c
	test/clist_meta.c test/add_spec.c test/slist_meta.c test/flist_meta.c: Added
	tests for the list functions, add_spec, and add_meta.

	* src/include.c (_GD_Include): Extracted include file handler from
	_GD_ParseDirective in src/open.c.
	* src/include.c (dirfile_include): Added.

	* src/add.c (_GD_Add) src/getdata.c (_GD_DoRaw) src/include.c (_GD_Include)
	src/nframes.c (get_nframes64) src/putdata.c (_GD_DoRawOut): Make encodings
	fragment specific.
	* src/flush.c (_GD_FlushMeta): Write /ENCODING.


2008-10-11   D. V. Wiebe <getdata@ketiltrout.net>  svn:135
	* src/open.c (_GD_Tokenise _GD_ParseDirective _GD_ParseFieldSpec
	_GD_ParseFormatFile): Okay, the parser is now in three pieces: tokeniser,
	directive parser (formerly _GD_ParseFormatLine), and field spec parser, all
	called from _GD_ParseFormatFile, which handles looping through a format file. 
	This should be sufficiently functional for the upcoming features.

2008-10-11   D. V. Wiebe <getdata@ketiltrout.net>  svn:133
	* src/open.c (_GD_Tokenise _GD_ParseFormatLine): Split tokeniser from line
	parser.

2008-10-10   D. V. Wiebe <getdata@ketiltrout.net>  svn:132
	* src/open.c (_GD_ParseFormatFile _GD_ParseFormatLine dirfile_open):
	Properly propagate standards.

2008-10-10   D. V. Wiebe <getdata@ketiltrout.net>  svn:131
	* src/open.c (_GD_ParseFieldSpec): Properly propagate have_first to caller.

	* src/open.c (_GD_ParseFormatFile _GD_ParseFormatLine): Split line
	parsing (now in _GD_ParseFormatLine) from the format file loop (the little
	bit remaining in _GD_ParseFormatFile).

	* bindings/cxx/test/Makefile.am: Properly clean up after tests.

2008-10-10   D. V. Wiebe <getdata@ketiltrout.net>  svn:130
	* src/getdata.h.in: Incorporate a GD_SCALAR_ENTRY flag in gd_entype_t.
	* src/field_list.c (get_nvectors) src/meta_list.c (get_nmeta_vectors):
	Use GD_SCALAR_ENTRY.

	* src/add.c (_GD_Add): Properly initialise the meta field lists in the private
	entry to prevent crash on error.  (Reported by Matthew Truch)

	* src/raw.c (_GD_RawTouch): Add mode to open call (patch from Matthew
	Truch).
	
	* src/getdata.h.in: Add GD_E_DIMENSION
	* src/getdata.c src/putdata.c src/spf.c: Detect and fail if a vector type
	contains an input field that's a scalar.

	* src/spf.c (_GD_GetSPF): Removed redundant field_code parameter.

	* src/common.c (_GD_GetEntry): Removed FILEFRAM as an alias for INDEX per
	discussion with Barth.

2008-10-10   D. V. Wiebe <getdata@ketiltrout.net>  svn:129
	* src/entry.c (_GD_FreeE): Renamed from dirfile_free_entry_strings (for
	which a new boilerplate function has been created).  Separated cleaning up
	internal and externally created entries.  Internally, the library now
	uses this function in all places where it used to call
	dirfile_free_entry_strings.

	* src/open.c (_GD_ParseRaw): n_meta should be zero.

	* src/open.c (_GD_ParseFormatFile): fix duplicates check

	* test/add_sort.c test/nfields_type.c test/nfields_type_invalid.c
	test/nmeta.c test/nmeta_invalid.c test/nmeta_parent.c test/nmeta_type.c
	test/nmeta_type_invalid.c test/nmeta_type_parent.c test/nmeta_vectors.c
	test/nmeta_vectors_invalid.c test/nmeta_vectors_parent.c test/nvectors.c
	test/nvectors_invalid.c test/parse_const.c test/parse_const_ncols.c
	test/parse_duplicate.c test/parse_meta.c test/parse_meta_parent.c
	test/parse_meta_raw.c test/parse_quote.c test/parse_sort.c
	test/parse_string.c test/parse_string_ncols.c test/parse_whitespace.c:
	Added.

	* src/add.c (_GD_Add): Encapsulate the file creation with a call to an
	encoding specific *touch() function.
	* src/raw.c (_GD_RawTouch): Added.  (Also used for the ASCII encoding).

	* src/meta_list.c: Fixed all functions to get them working.
	* src/field_list.c: Call _GD_ClearError in all public functions.
	* src/nmeta.c: Added (META version of nfields.c)

	* src/open.c (_GD_ParseFieldSpec): Moved some repeated code out of the
	ParseFoo functions and into this one.  Also, don't count META fields in
	n_string or n_cost.

2008-10-09   D. V. Wiebe <getdata@ketiltrout.net>  svn:127
	* src/open.c (_GD_ValidateField): Now takes a pointer to the parent, rather
	than the parent's name, and generates the "/" demarcation itself.

	* src/open.c (_GD_ParseFormatFile): Determine META field's parent entry.
	* src/open.c (_GD_ParseRaw _GD_ParseLincom _GD_ParseLinterp _GD_ParseBit
	_GD_ParsePhase _GD_ParseConst _GD_ParseString _GD_ParseFieldSpec): Pass
	around the parent's pointer, rather than its name.

	* src/add.c (_GD_Add) src/open.c (_GD_ParseRaw): Remember the full path name.
	* src/getdata.c (_GD_DoRaw) src/nframes.c (_GD_NFrames) src/putdata.c
	(_GD_DoRawOut): No need to compose file name.

	* src/open.c (_GD_ParseFieldSpec): Simplify the switch() code.  Also, check
	for duplicates.
	* src/common.c (_GD_InsertSort): Added.

	* src/open.c (_GD_ParseFormatFile): Automatically handle /u and /ooo out of
	range.

	* src/close.c (_GD_FreeD): Clean up include_list[0], too.

	* src/close.c (dirfile_close): Call _GD_FlushMeta().

2008-10-08   D. V. Wiebe <getdata@ketiltrout.net>  svn:125
	* src/open.c (_GD_ParseRaw): Prohibit META RAW fields.
	* src/add.c (_GD_Add): Ditto.
	* src/add.c (dirfile_add_metaraw): Deleted.

2008-10-08   D. V. Wiebe <getdata@ketiltrout.net>  svn:124
	* src/open.c (_GD_ValidateField): Malloc one more byte for the terminating
	NULL.  Crash report from Matthew Truch.
	* test/add_many.c: Add test-case for same (from Matthew Truch).

	* src/internal.h: Removed all instances of ierror and user_error in the
	DIRFILE struct.

	* src/add.c (_GD_Add): Properly compose metafield codes.  Always create
	the empty binary file.

2008-10-08   D. V. Wiebe <getdata@ketiltrout.net>  svn:123
	* src/add.c: Fix debugging messages

2008-10-08   D. V. Wiebe <getdata@ketiltrout.net>  svn:122
	* man/Makefile.am: Fix install target (patch from Matthew Truch)

2008-10-08   D. V. Wiebe <getdata@ketiltrout.net>  svn:121
	* src/getdata.h.in: Add forward declarations for public functions.

2008-10-08   D. V. Wiebe <getdata@ketiltrout.net>  svn:120
	* src/putdata.c (putdata64): Fail if passed a CONST or STRING field code.
	* src/string.c (put_string): Added.
	* src/constant.c (put_constant): Added.

	* src/add.c (_GD_Add): Renamed from dirfile_add, which is now a boilerplate
	stub for this internal function.  Added meta field support.
	* src/add.c (dirfile_add_meta dirfile_add_metaraw dirfile_add_metalincom
	dirfile_add_metalinterp dirfile_add_metabit dirfile_add_metamultiply
	dirfile_add_metaphase dirfile_add_metastring dirfile_add_metaconst): Added.

	* src/add.c (_GD_Add): create an empty raw file, when necessary.

2008-10-07   D. V. Wiebe <getdata@ketiltrout.net>  svn:119
	* src/add.c (dirfile_add_string dirfile_add_const): Added.
	* man/dirfile_add_raw: Updated for dirfile_add_string and dirfile_add_const.

2008-10-07   D. V. Wiebe <getdata@ketiltrout.net>  svn:118
	* src/flush.c: Add hostname to comments at the top of the format file.

	* src/nfields (get_nvectors get_nfields_by_type): Added.
	* man/get_nvectors.3 man/get_nfields_by_type.3: Added.

2008-10-07   D. V. Wiebe <getdata@ketiltrout.net>  svn:115
	* src/open.c: Record whether a field is meta.

	* src/open.c: Count strings, constants and meta fields.

	* src/open.c (_GD_CreateDirfile): If creating (or truncating) a dirfile,
	assume GD_UNENCODED if GD_AUTO_ENCODED was specified.

	* src/putdata.c (_GD_DoRawOut): Set GD_E_UNKNOWN_ENCODING instead of
	GD_UNSUPPORTED if the encoding can't be figured out.

	* src/field_list.c (get_constant_values get_constant_list get_string_values
	get_string_list get_vector_list): Added.
	* src/field_list.c (get_field_list): Don't return meta fields in the list.
	* src/nfields.c: Return the number of non-meta fields.

	* src/constant.c: Renamed from src/get_constant.c
	* src/string.c: Renamed from src/get_string.c

	* src/getdata.c (_GD_DoString): If num_samp == 0 or data_out is NULL, don't
	copy the string.

	* src/errors.c (dirfile_user_error): Removed per discussion with Barth.

	* man/get_constant.3 man/get_error.3 man/get_string.3: Added.

2008-10-06   D. V. Wiebe <getdata@ketiltrout.net>  svn:114
	* test/error_error.c: Added.

	* test/flush_recurse.c: Removed. _GD_Flush no longer resolves input fields.

	* src/common.c (_GD_GetEntry): Added a _GD_FindField wrapper that
	properly handles INDEX/FILEFRAM.

	* src/open.c (_GD_ValidateField): Add field prefix needed for META fields.
	* src/open.c (_GD_ParseFieldSpec): Split from _GD_ParseFormatFile to handle
	both META and regular field specs.
	* src/open.c (_GD_ParseFormatFile): Add /META support.

	* src/open.c (_GD_ParseFormatFile): Fix the parser bug introduced in svn:113.

	* src/open.c (_GD_CreateDirfile): Report the dirfile path not the format
	file path in error strings.

	* src/flush.c src/getdata.c src/putdata.c src/spf.c: Use pre-cached entry
	pointers.

	* src/get_constant.c src/get_string.c: Added.
	* src/getdata.c (getdata64): Prevent calling getdata() with CONST or STRING
	fields.

	* src/errors.c: Got rid of the positional parameter C99 desecration which
	GCC 4.3 complains about.  get_error_string() now builds the string itself.

	* src/format_list.c (get_format_filename): make the index parameter unsigned.

2008-10-05   D. V. Wiebe <getdata@ketiltrout.net>  svn:113
	* src/add.c src/close.c src/entry.c src/flush.c src/getdata.c src/getdata.h.in
	src/open.c src/putdata.: Add support for CONST, STRING, and ENCODING.

	* src/common.c src/open.c: Added escape sequence and quoted token support.

	* src/flush.c src/getdata.c src/putdata.c src/spf.c: Functions that check
	recurse_level now also take care of incrementing and decrementing it.

	* man/dirfile-format.5: Update for standards version six.

2008-10-02   D. V. Wiebe <getdata@ketiltrout.net>  svn:112
	* configure.ac: Locate `slim' and `unslim' binaries needed for slimlib
	tests.

	* test/Makefile.am test/ascii_get.c test/ascii_nframes.c test/ascii_put.c
	test/slim_get.c test/slim_nframes.c test/slim_put.c: Add tests for ASCII
	and slimlib encodings. (slim_put is currently always skipped.)

	* src/ascii.c: Bug fixes.

2008-10-01   D. V. Wiebe <getdata@ketiltrout.net>  svn:111
	* src/entry.c: Properly initialise the private data in the gd_entry_t
	object returned.

	* bindings/cxx/test/putdata.cpp: Fix constructor call.

	* bindings/f77/make_parameters.c: Add encoding framework parameters.

2008-10-01   D. V. Wiebe <getdata@ketiltrout.net>  svn:110
	* src/internal.h: Moved config.h inclusion to internal.h

	* src/open.c: Added "." to the list of prohibited field code characters.

	* src/getdata.h.in, src/internal.h: Hide dirfile implementation from the
	public.
	* src/errors.c: Added get_error() and dirfile_user_error()

	* src/getdata.c src/internal.h src/nframes.c src/open.c src/putdata.c
	src/raw.c: Added encoding framework.

	* src/getdata.c src/slim.c: Add slimlib encoding.

	* src/ascii.c src/getdata.c: Add ASCII encoding.

2008-09-28   D. V. Wiebe <getdata@ketiltrout.net>  svn:109
	* bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h bindings/cxx/entry.cpp
	bindings/cxx/entry.h test/Makefile.am test/addentry.cpp: Add C++ support
	for dirfile_add(), dirfile_flush_metadata(), get_format_filename(), and
	get_nformats().

	* bindings/f77/fgetdata.c bindings/f77/fgetdata.h bindings/f77/getdata.f.in
	bindings/f77/getdata.f90.in bindings/f77/make_parameters.c: Add F77 and F95
	bindings for dirfile_add(), dirfile_flush_metadata(), get_format_filename(),
	and get_nformats().

	* src/add.c (dirfile_add_raw): swap spf and data_type to correspond to the
	ordering in the format file.

2008-09-28   D. V. Wiebe <getdata@ketiltrout.net>  svn:108
	* man/dirfile_add.3 man/dirfile_add_raw.3: Added.
	* man/Makefile.am: Install all the mans previously forgotten about.  Also,
	link to aliases.

	* src/add.c (dirfile_add_lincom): Don't use a variadic function, since in
	obfuscates data typing.

	* src/add.c (dirfile_add): Add suberror codes for GD_E_BAD_ENTRY.
	Initialise internal data.  Initialise the first RAW field, if necessary.

	* src/close.c src/flush.c src/open.c: Distinguish between "canonical"
	format file names (i.e.  the full path used to open the file) and
	"external" names (i.e. the relative path written to the parent format file).

	* src/errors.c: Add strings for dirfile_add().

	* src/getdata.h.in: Move FILENAME_MAX stuff into internal.h since it doesn't
	need to be public anymore.
	* src/internal.h: Always define MAX_LINE_LENGTH to 4096.

	* test/Makefile.am test/add.c test/add_bit.c test/add_bit.c
	test/add_bit_bitnum.c test/add_bit_bitsize.c test/add_bit_numbits.c
	test/add_code.c test/add_duplicate.c test/add_format.c test/add_lincom.c
	test/add_lincom_nfields.c test/add_linterp.c test/add_multiply.c
	test/add_phase.c test/add_raw.c test/add_raw_spf.c test/add_raw_type.c
	test/add_rdonly.c test/add_type.c test/error.c test/error_short.c
	test/flush_meta.c test/format_filename.c test/format_filename_oor.c
	test/nformats.c: Added tests for dirfile_add() and alternates,
	get_error_string(), dirfile_flush_metadata(), get_format_filename(), and
	get_nformats().

	* test/Makefile.am: test put_linterp_noin, which has been around for a
	while, but missing from the Makefile.
	* test/trunc_readonly.c: Deleted.  (An old copy of trunc_rdonly.c)

2008-09-27   D. V. Wiebe <getdata@ketiltrout.net>  svn:106
	* src/flush.c (_GD_Flush): Don't call fsync on read-only dirfiles.

	* src/open.c (_GD_ParseFormatFile dirfile_open): Don't find the first raw
	field at the end, but rather do it as we're scanning raw fields.  Also,
	record some format file metadata: whether it contains the first raw field,
	and whether it is modified.

	* src/close.c (_GD_FreeD): free the include_list.

	* src/internal.h: Minimum format file line length is 4096 characters.

	* src/flish.c (_GD_FlushMeta dirfile_flush_metadata): flush metadata changes
	to disk (i.e. write format files).  Includes public function.

	* src/add.c (dirfile_add): prevent adding to read-only dirfiles

2008-09-26   D. V. Wiebe <getdata@ketiltrout.net>  svn:105
	* man/get_entry.3 src/add.c src/getdata.h.in src/open.c: Expose include_list
	to the public.  Add include index to each entry.

	* man/get_format_filename.3 man/get_nformats.3 src/format_list.c
	src/getdata.h.in: Add public functions get_nformats() and
	get_format_filename().

2008-09-25   D. V. Wiebe <getdata@ketiltrout.net>  svn:103
	* src/open.c (_GD_ParseRaw _GD_ParseLincom _GD_ParseLinterp
	_GD_ParseMultiply _GD_ParseBit _GD_ParsePhase): Fixed memory leaks

	* src/errors.c (_GD_ClearError): Replaced with a macro of the same name
	defined in internal.h.

	* src/add.c src/getdata.h.in: First part of dirfile_add(): input validation
	and add to DIRFILE list.

2008-09-22   D. V. Wiebe <getdata@ketiltrout.net>  svn:97
	* configure.ac bindings/cxx/Makefile.am bindings/cxx/test/Makefile.am: Call
	the C++ bindings libgetdata++ instead of libdirfile to be a little more
	explicit about what it is.  This also allows installation alongside TK's
	libdirfile.

2008-09-22   D. V. Wiebe <getdata@ketiltrout.net>  svn:94
	* bindings/cxx/entry.cpp: Use <cstring> instead of <string>.  Patch from
	Matthew Truch.

2008-09-18   D. V. Wiebe <getdata@ketiltrout.net>  svn:90
	* src/legacy.c (_GD_GetDirfile) test/legacy_get_rofs.c test/legacy_get_put.c:
	Open dirfiles read-only unless called via PutData().  Re-open read-only
	dirfile read-write when necessary.  Added two test-cases for same.

	* test/Makefile.am: Conditionally compile legacy tests.

2008-09-15   D. V. Wiebe <getdata@ketiltrout.net>  svn:86
	* src/errors.c: Fix GD_E_RAW_IO error string.

2008-09-15   D. V. Wiebe <getdata@ketiltrout.net>
	Getdata-0.3.0 released.

2008-09-05   D. V. Wiebe <getdata@ketiltrout.net>  svn:77
	* m4/c99.m4 configure.ac Makefile.am: Re-implement AC_PROG_CC_C99 as
	GD_PROG_CC_C99 to fix `deprecated -c99' warning with icc.

	* bindings/cxx/dirfile.h bindings/cxx/entry.h bindings/cxx/test/getdata.cpp
	bindings/cxx/test/putdata.cpp bindings/f77/fgetdata.h
	test/convert_float32_float64.c test/convert_float32_int16.c
	test/convert_float32_int32.c test/convert_float32_int64.c
	test/convert_float32_int8.c test/convert_float32_uint16.c
	test/convert_float32_uint32.c test/convert_float32_uint64.c
	test/convert_float32_uint8.c test/convert_float64_float32.c
	test/convert_int16_float32.c test/convert_int16_float64.c
	test/convert_int16_int32.c test/convert_int16_int64.c
	test/convert_int16_int8.c test/convert_int16_uint16.c
	test/convert_int16_uint32.c test/convert_int16_uint64.c
	test/convert_int16_uint8.c test/convert_int32_float32.c
	test/convert_int32_float64.c test/convert_int64_float32.c
	test/convert_int64_float64.c test/convert_int8_float32.c
	test/convert_int8_float64.c test/convert_int8_int16.c
	test/convert_int8_int32.c test/convert_int8_int64.c
	test/convert_int8_uint16.c test/convert_int8_uint32.c
	test/convert_int8_uint64.c test/convert_int8_uint8.c
	test/convert_uint16_float32.c test/convert_uint16_float64.c
	test/convert_uint16_int16.c test/convert_uint16_int32.c
	test/convert_uint16_int64.c test/convert_uint16_int8.c
	test/convert_uint16_uint32.c test/convert_uint16_uint64.c
	test/convert_uint16_uint8.c test/convert_uint32_float32.c
	test/convert_uint32_float64.c test/convert_uint64_float32.c
	test/convert_uint64_float64.c test/convert_uint8_float32.c
	test/convert_uint8_float64.c test/convert_uint8_int16.c
	test/convert_uint8_int32.c test/convert_uint8_int64.c
	test/convert_uint8_int8.c test/convert_uint8_uint16.c
	test/convert_uint8_uint32.c test/convert_uint8_uint64.c test/dfes_phase.c
	test/dfes_raw.c test/flush.c test/flush_all.c test/get64.c test/get_bit.c
	test/get_char.c test/get_endian16.c test/get_endian32.c test/get_endian64.c
	test/get_endian8.c test/get_endian_float32.c test/get_endian_float64.c
	test/get_ff.c test/get_float32.c test/get_float64.c test/get_foffs.c
	test/get_fs.c test/get_int16.c test/get_int8.c test/get_lincom1.c
	test/get_lincom2.c test/get_lincom3.c test/get_linterp.c
	test/get_linterp_noin.c test/get_linterp_notab.c test/get_multiply.c
	test/get_multiply_noin.c test/get_nonexistent.c test/get_null.c
	test/get_off64.c test/get_phase.c test/get_sf.c test/get_ss.c
	test/get_type.c test/get_uint16.c test/legacy_get.c test/legacy_put.c
	test/nframes_spf.c test/put64.c test/put_bit.c test/put_char.c
	test/put_endian16.c test/put_endian32.c test/put_endian64.c
	test/put_endian8.c test/put_endian_float32.c test/put_endian_float64.c
	test/put_ff.c test/put_float32.c test/put_float64.c test/put_foffs.c
	test/put_fs.c test/put_int16.c test/put_int8.c test/put_lincom1.c
	test/put_lincom2.c test/put_lincom_noin.c test/put_linterp.c
	test/put_linterp_noin.c test/put_linterp_notab.c test/put_multiply.c
	test/put_off64.c test/put_phase.c test/put_phase_noin.c test/put_sf.c
	test/put_ss.c test/put_uint16.c: Fix compiler warnings

2008-09-05   D. V. Wiebe <getdata@ketiltrout.net>  svn:75
	* man/get_field_list.3 src/field_list.c: NULL terminate the list.

	* src/field_list.c (get_field_list): Return GD_E_ALLOC on malloc error.

2008-09-04   D. V. Wiebe <getdata@ketiltrout.net>  svn:73
	* bindings/cxx/entry.h (Entry::Scale Entry::Offset): fix return.

	* src/flush.c (_GD_Flush): Handle GD_NO_ENTRY in switch

	* test/dfes_bit.c test/dfes_linterp test/dfes_lincom test/dfes_multiply
	test/dfes_phase test/dfes_raw test/flist test/flush_invalid
	test/flush_bad_code test/flush_recurse: Remove unused variables
	* test/entry_lincom: Include math.h

2008-09-04   D. V. Wiebe <getdata@ketiltrout.net>  svn:68
	* src/getdata_legacy.h src/legacy.c: Go through all the bother to
	reconstruct the former FormatType for callers who use GetFormat()

	* src/close.c (_GD_FreeD): Handle GD_NO_ENTRY in switch

	* configure.ac: Use modern AM_INIT_AUTOMAKE invocation so as not to have
	to repeat package name and package version.
	* Makefile.am: Require automake 1.6

	* NEWS: added

2008-09-04   D. V. Wiebe <getdata@ketiltrout.net>  svn:67
	* bindings/cxx/Makefile.am: Fix include dir

	* bindings/f77/fgetdata.c (GDFELC): Return nfield = 0 on error

	* bindings/f77/getdata.f90.in: Make field an array

	* Makefile.am: Add ChangeLog to dist.

	* README.cxx README.f77 README.f95: Update for get_entry() bindings

2008-09-04   D. V. Wiebe <getdata@ketiltrout.net>  svn:66
	* test/Makefile.am test/dfes_bit.c test/dfes_lincom.c test/dfes_linterp.c
	test/dfes_multiply.c test/dfes_null.c test/dfes_phase.c test/dfes_raw.c
	test/dfes_zero.c test/entry_bad_code.c test/entry_bit.c test/entry_invalid.c
	test/entry_lincom.c test/entry_linterp.c test/entry_multiply.c
	test/entry_phase.c test/entry_raw.c: Add test suite for
	dirfile_free_entry_strings() and get_entry()

	* bindings/cxx/entry.h bindings/cxx/test/entry.cpp bindings/f77/fgetdata.c
	bindings/f77/getdata.f90.in bindings/f77/test/fget_entry.f90 man/get_entry.3
	src/entry.c src/getdata.h.in: RAW filename should be internal

	* bindings/f77/make_parameters.c: Fix parentheses around F77 parameters

	* man/Makefile.am: install get_entry.3

2008-09-03   D. V. Wiebe <getdata@ketiltrout.net>  svn:64 svn:65
	* src/entry.c (dirfile_free_entry_strings): Fix double free

	* bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h: Use the GetData namespace

	* bindings/cxx/Makefile.am bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h
	bindings/cxx/entry.cpp bindings/cxx/entry.h bindings/cxx/test/Makefile.am
	bindings/cxx/test/entry.cpp: Add GetData::Entry class to abstractise
	gd_entry_t as well as C++ bindings for get_entry().

	* bindings/f77/fgetdata.c bindings/f77/getdata.f.in
	bindings/f77/getdata.f90.in bindings/f77/make_parameters.c
	bindings/f77/test/fget_entry.f90: Add Fortran bindings for get_entry()

2008-09-03   D. V. Wiebe <getdata@ketiltrout.net>  svn:63
	* src/getdata.h.in: add a GD_NO_ENTRY entry type

	* man/dirfile_free_entry_strings man/get_entry.3 src/entry.c src/getdata.h.in:
	add dirfile_free_entry_strings()

2008-09-02   D. V. Wiebe <getdata@ketiltrout.net>  svn:62
	*	bindings/f77/test/Makefile.am: fix include directory

	* src/getdata.h.in src/close.c src/common.c src/getdata.c src/nframes.c
	src/open.c src/putdata.c src/spf.c: re-organised gd_entry_t again

	* src/getdata.c (_GD_DoLincom): ensure we return 0 on error

	* src/close.c (dirfile_close): return -1 instead of 1 on error

	* src/entry.c (get_entry): instead of returning the library's internal
	gd_entry_t, copy the relevant bits to a caller supplied object.  This should
	be significantly more bullet proof against unintentional metadata corruption
	* man/get_entry.3: update

	* test/Makefile.am: clean up after tests

2009-09-02  D. V. Wiebe <getdata@ketiltrout.net>  svn:61
	* man/get_entry.3 src/Makefile.am src/entry.c src/getdata.h.in: added
	get_entry()

	* src/close.c src/flush.c: Split flush.c from close.c

	* src/field_list.c src/nfields.c: Split nfields.c from field_list.c

	* src/common.c src/open.c: Moved _GD_GetLine to common.c

	* src/Makefile.am: Don't export internal symbols

2009-09-02  D. V. Wiebe <getdata@ketiltrout.net>  svn:60
	* README src/getdata.h.in: Add NO_GETDATA_LEGACY_API to getdata.h to permit
	callers to not include the legacy API.

2009-09-02  D. V. Wiebe <getdata@ketiltrout.net>  svn:59
	* configure.ac: disable all Fortran bindings with one option.  Rename
	the bindings options.

2008-09-01  D. V. Wiebe <getdata@ketiltrout.net>  svn:58
	* src/getdata_legacy.c src/legacy.c: Re-implement GetFormat();

	* src/getdata.h.in: store frame offset as off64_t

	* man/dirfile_flush.3: added

	* man/dirfile_close.3: corrected for changes made in revision 57

2008-09-01  D. V. Wiebe <getdata@ketiltrout.net>  svn:57
	* man/get_error_string.3 src/errors.c: Renamed getdata_error_string to
	get_error_string so people don't think its relevance is exclusive to getdata()
	
	* src/internal.h: Suberror codes may not = 0.

	* README.cxx README.f77 README.f95 bindings/cxx/dirfile.cpp
	bindings/cxx/dirfile.h bindings/f77/fgetdata.c bindings/f77/getdata.f.in
	bindings/f77/getdata.f90.in man/Makefile.am man/dirfile_close.3 src/close.c
	src/getdata.h.in test/Makefile.am test/close.c test/close_bad.c
	test/close_null.c test/flush.c test/flush_all.c test/flush_bad_code.c
	test/flush_invalid.c test/flush_recurse.c: Added public function
	dirfile_flush() along with corresponding C++, F77 and F95 bindings.
	dirfile_close calls dirfile_flush and might now fail (if fsync(2) or
	close(2) returns with an error); ergo, it now returns an integer success
	value, since D->error can't be checked if the call was successful.
	
	* src/close.c (dirfile_close): per the man page, now always succeeds when
	passed NULL.
	
	* man/dirfile-format.5 src/open.c test/Makefile.am test/parse_endian_slash.c
	test/parse_foffs_slash.c test/parse_include_slash.c
	test/parse_version_slash.c: reserved words in the format file may now have
	an initial '/' to ensure they're treated as such.

	* man/dirfile-format.5 src/errors.c src/open.c test/Makefile.am
	test/parse_name.c: prohibit / \ < > # & | ; in field names. Of these, /
	would confuse the filesystem (and is now used to optionally demarcate reserved
	words), # is already cast out by GetLine().  We reserve the others for future
	use.  Most of these are bash(1) metacharacters; ( and ) are the other
	non-whitespace metacharacters in bash, but GetData allows them in field names.

2008-09-01  D. V. Wiebe <getdata@ketiltrout.net>  svn:56
	* src/open.c src/close.c: split up dirfile_open.c
	* src/getdata.c src/types.c src/common.c: split up getdata.c

2008-08-30  D. V. Wiebe <getdata@ketiltrout.net>  svn:54
	* field_list.c: renamed get_n_fields() to get_nfields()
	* nframes.c: renamed get_n_frames() to get_nframes()
	* spf.c: renamed get_samples_per_frame() to get_spf()

2008-08-30  D. V. Wiebe <getdata@ketiltrout.net>  svn:52 svn:53
	* bindings/f77/Makefile.am bindings/f77/getdata.f90.in
	bindings/f77/test/Makefile.am bindings/f77/test/fget_field_list.f90
	bindings/f77/test/fgetdata.f90: Use .f90 instead of .f95 for free-form
	Fortran source code

2008-08-29  D. V. Wiebe <getdata@ketiltrout.net>  svn:51
	* man/README.cxx man/README.f77 bindings/cxx/dirfile.cpp
	bindings/cxx/dirfile.h bindings/f77/fgetdata.c bindings/f77/getdata.f: added
	get_n_fields and get_field_list to C++ and F77 bindings.

	* bindings/f77/Makefile.am bindings/f77/getdata.f.in
	bindings/f77/make_parameters.c : automatically generate parameters

	* README.f95 bindings/f77/Makefile.am bindings/f77/getdata.f95.in
	bindings/f77/test/Makefile.am bindings/f77/test/fget_field_list.f95
	bindings/f77/test/fgetdata.f95 configure.ac: Added Fortran 95 bindings

2008-08-29  D. V. Wiebe <getdata@ketiltrout.net>  svn:50
	* man/dirfile-format.5: Fix a rather egregious omission

2008-08-29  D. V. Wiebe <getdata@ketiltrout.net>  svn:49
	* src/getdata.h.in: Change GD_UNKNOWN

2008-08-26  D. V. Wiebe <getdata@ketiltrout.net>  svn:47 svn:48
	* man/Makefile.am man/get_field_list.3 man/get_n_fields.3 src/Makefile.am
	src/dirfile_open.c src/field_list.c src/getdata.h.in test/Makefile.am
	test/flist.c test/flist_invalid.c test/nfields.c test/nfields_invalid.c: Add
	get_n_fields and get_field_list functions

	* man/dirfile_open.3: Add BUGS section

2008-08-25  D. V. Wiebe <getdata@ketiltrout.net>  svn:45
	* configure.ac src/Makefile.am src/debug.c src/dirfile_open.c src/errors.c
	src/getdata.c src/internal.h src/nframes.c src/putdata.c src/spf.c: tracing
	in debug mode

2008-08-25  D. V. Wiebe <getdata@ketiltrout.net>  svn:41 svn:42 svn:43 svn:44
	* src/getdata_internal.h: renamed to internal.h

	* README.cxx README.f77: add

2008-08-25  D. V. Wiebe <getdata@ketiltrout.net>  svn:40
	* src/errors.c (getdata_error_string): Rewrote to get rid of the nested
	switches and to collect the strings.

	* src/errors.c src/getdata.h.in src/getdata_legacy.h src/legacy.c: Move
	GD_ERROR_CODES to legacy.c and deprecate.

	* src/dirfile_open.c src/getdata.c src/nframes.c src/putdata.c: Cleaned up
	error reporting code

2008-08-25  D. V. Wiebe <getdata@ketiltrout.net>  svn:38
	* src/dirfile_open.c src/getdata.c src/getdata.h.in src/getdata_internal.h
	nframes.c putdata.c spf.c: Replace the various different EntryType structs
	with a single, unified one.  This also gets rid of the ENTRY() craziness.

2008-08-25  D. V. Wiebe <getdata@ketiltrout.net>  svn:36 svn:37
	* src/getdata.c src/getdata_internal.h src/putdata.c src/spf.c: Add
	_GD_InternalError()
	
	* src/errors.c: Rename _GD_SetGetDataError and _GD_ClearGetDataError to
	_GD_SetError and _GD_ClearError

2008-08-25  D. V. Wiebe <getdata@ketiltrout.net>  svn:35
	* bindings/f77/fgetdata.c (_GDF_ClearDirfile): Don't accidentally close
	dirfile unit zero

2008-08-21  D. V. Wiebe <getdata@ketiltrout.net>  svn:34
	* bindings/f77/fgetdata.c configure.ac src/dirfile_open.c src/getdata.c
	src/getdata.h.in src/getdata_internal.h src/getdata_legacy.h src/putdata.c:
	Fixes for compilation with icc, mostly concerning type casting.

	* configure.ac:  AC_PREREQ([2.60])

	* Makefile.am: don't include getdata.h in the tarball

2008-08-21  D. V. Wiebe <getdata@ketiltrout.net>  svn:33
	* src/getdata.h.in: Be less clever defining stuff.

2008-08-20  D. V. Wiebe <getdata@ketiltrout.net>  svn:32
	* bindings/f77/getdata.f: Add EXTERNAL function declarations

2008-08-19  D. V. Wiebe <getdata@ketiltrout.net>  svn:30
	* bindings/f77/test/gdfget.f: Remove references to TRIM

2008-08-19  D. V. Wiebe <getdata@ketiltrout.net>  svn:26 svn:27
	* README: add

	* Makefile.am: Remove explicit -lm

2008-08-19  D. V. Wiebe <getdata@ketiltrout.net>  svn:25
	* test/: Fix test suite for VPATH builds

2008-08-18  D. V. Wiebe <getdata@ketiltrout.net>  svn:24
	* Makefile.am configure.ac bindings/: Add C++ and Fortran 77 bindings.

2008-08-17  D. V. Wiebe <getdata@ketiltrout.net>  svn:20 svn:21
	* configure.ac getdata.h.in: Use AC_CONFIG_HEADERS with getdata.h

	* INSTALL: This is the generic autoconf/libtool INSTALL document.

2008-08-17  D. V. Wiebe <getdata@ketiltrout.net>  svn:19
	* Makefile.am configure.ac bin/Makefile.am bin/checkdirfile.c: add
	checkdirfile util

2008-08-17  D. V. Wiebe <getdata@ketiltrout.net>  svn:18
	* getdata_internal.h: If FILENAME_MAX is unreasonably small, still permit
	roomy format file lines.

2008-08-17  D. V. Wiebe <getdata@ketiltrout.net>  svn:16
	* Makefile.am test/: added test suite

	* man/get_n_frames64.3 man/getdata64.3 man/putdata.3 man/putdata64.3: added

	* man/getdata.3: Added .SH LIMITATIONS

	* src/dirfile_open.c src/errors.c src/getdata.c src/nframes.c src/spf.c:
	split getdata.c into smaller pieces

	* src/putdata.c (putdata): add support for access mode and frame offset

2008-08-12  D. V. Wiebe <getdata@ketiltrout.net>  svn:13
	* src/getdata.c src/getdata.h.in: rm unused error codes

2008-08-12  D. V. Wiebe <getdata@ketiltrout.net>  svn:10 svn:11 svn:12
	* configure.ac man/getdata.3 man/get_n_frames.3 src/getdata.c
	src/getdata.h.in src/getdata_internal.h src/legacy.c src/putdata.c: LFS
	support

2008-08-12  D. V. Wiebe <getdata@ketiltrout.net>  svn:8
	* src/getdata.c src/getdata.h.in: remove GD_E_ENDIAN_ERROR

	* src/putdata.c (_GD_DoBitOut): Multibit putdata

2008-08-12  D. V. Wiebe <getdata@ketiltrout.net>  svn:7
	* man/dirfile_open.3: modern symbol

2008-08-12  D. V. Wiebe <getdata@ketiltrout.net>  svn:6
	* src/getdata.c (_GD_SetGetDataError): don't crash on NULL
	
	* src/putdata.c (_GD_DoPhaseOut): add

2008-08-12  D. V. Wiebe <getdata@ketiltrout.net>  svn:5
	* src/legacy.c: Don't SEGV on bad dirfiles
	* src/getdata.c src/getdata_internal.h src/putdata.c: Check for invalid
	DIRFILEs

2008-08-12  D. V. Wiebe <getdata@ketiltrout.net>  svn:4
	* configure.ac: --enable-debug
	* src/getdata.c src/legacy.c src/putdata.c: rename DIRFILE_DEBUG to
	GETDATA_DEBUG

2008-08-12  D. V. Wiebe <getdata@ketiltrout.net>  svn:2
	* AUTHORS COPYING Makefile.am configure.ac man/Makefile.am
	man/dirfile-format.5 man/dirfile.5 man/dirfile_close.3 man/dirfile_open.3
	get_n_frames.3 man/get_samples_per_frame.3 man/getdata.3
	man/getdata_error_string.3 src/Makefile.am src/getdata.c src/getdata.h.in
	src/getdata_internal.h src/getdata_legacy.h src/legacy.c src/putdata.c:
	Initial import of getdata for sourceforge.net.  Previous history for getdata
	can be found in the KDE subversion repository, for the kst project.
