Mon Apr 18 04:10:08 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* xdatplot.h: Added new resource pauseChild.  This is a kludge
	that causes xdatplot to sleep 60 seconds if pauseChild,,
	readCommands, and debug are all True.  This is so that if a child
	process is crashing for unknown reasons, it can be attached with
	gdb and debugged.

	* plot.c (sroll_plot): don't try to do any drawing unless plot_GC
	is initialized.

	* template.c (do_template): If alignment fails to converge, ask
	user if he/she still wants to save.
	(align_template): Anchor the fit on the peak that is in the
	deepest ssr valley in the first iteration.  This is necessary to
	prevent an instability where the template shifts continually to
	one side.  
	(MAXITER): increased max iterations in alignment fit to ten.
	(align_template): introduced a tolerance in fit: it considers that
	no change has occurred in an iteration unless there is one bigger
	than the tolerance.

	* filter.c: Added convolution filter.

	* fildialog.c (edit_g_field_cb): Copy all fields into filter data
	structure, not just the one that was activated.

	* gauss.perl: perl script to create a Gaussian template.

	* control.c (t_field_cb): If user types out-of-range time in t
	field, don't produce error; just put him at nearest end.

Sun Apr 17 06:36:53 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* filter.c (lhp_seed): fixed subtle bug in seeding from a
	previously cached value.

	* plot.c (set_cursor, set_cursor_end, reset_cursor): propagate
	cursor events to children.

	* children.c (child_cursor, child_clr_cursor, child_region): send
	cursor changes to children.

	* template.c (make_template_dialog): Added Normalize and Align
	check boxes to template dialog.
	(do_template): Made normalization dependent on toggle button.
	(align_template, condition, ssr): Least-squares template
	alignment.
	(read_template): check that npoints and points are consistent.

	* filter.c (dot_product): inlined.

Sat Apr 16 08:59:31 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* template.c: Changed the buttons in the template dialog.  Most
	important change: there is now a View button, which allows you to
	see your template.

	* run.c (run1): New function, pretty much identical in function to
	popen, except that it returns the pid of the new process so you
	can reap it later.

	* xdatplot.c, xdatplot.h, plot.c (set_auto_scale): Added two new
	resources.  graph_command is the command used for displaying
	graphs (intended for templates).  autoscaleSize tells how much of
	the plot range an autoscale should use.

	* template.c (CvtStringToTemplateType): return INVALID if the
	input string isn't recognized.
	(do_template): template0 was being freed uninitialized (holdover
	from when it used to be static.)

	* filter.c (chg_tp): tolerate scale problems in template: just
	set template type INVALID.  (These arise during initialization,
	and will generally be corrected later.)
	Got the min and max normalization right (I think).

	* template.c (cook_template): don't normalize template.

	* children.c (parse_cmd): quoted strings in xdatplot_command now
	handled reasonably.

	* rfiles.c (quoted_string): parse quoted strings, handling
	escapes.

	* fildialog.c (CvtFilterChainToString, CvtStringToFilterChain):
	For fields of type String (currently only the file name of a
	template filter) CvtFilterChainToString produces a quoted string,
	with proper escapes internally as needed.  CvtStringToFilterChain
	recognizes and parses quoted string filter parameters.

	* filter.c (nsrc_tp): check for pp == NULL. (Can happen during
	clean-up after error detection.)

	* conversion.c (save_string, clear_strings): utility routines for
	allocating and clearing temporary strings from the heap.

	* plot.c (expose_whole): Check if plot is realized before doing
	anything.  This gets rid of segmentation violation when program
	bombs due to incorrect command-line usage.

Fri Apr 15 07:21:13 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* fildialog.c: Made the filter dialog a RowColumn widget instead
	of Form, so it could handle the geometry management.  All filter
	edit widgets are now created when the filter dialog is first
	pooped up, instead of at need as before.  Some other changes here
	and there to accomodate these changes.

	* rfiles.c (cvt_to_string, cvt_from_string): These routines are
	wrappers around XtConvertAndStore that simplify calling it for
	most purposes, in particular dealing with String as a special
	case.  Most calls to XtConvertAndStore in other source files
	replaced with calls to these.

Thu Apr 14 18:01:42 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* filter.c, fildialog.c, rfiles.c, template.c: Added template
	matching filter.  Lots of changes, mostly in these four files.
	Still fairly buggy, especially w/r to save/restore of template
	file name, which keeps getting lost.

Wed Apr 13 11:20:39 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* conversion.c (CvtVoltageToString): Was using last filter in
	chain, instead of the current conversion filter.

Mon Apr 11 08:26:50 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* rfiles.c: new source, containing a lot of the general code for
	handling resource-format files.  Much moved from xdp.c into this
	file.

Sun Apr 10 07:16:09 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* plot.c (create_plot_GC): Use backing store in plot window.

	* template.c: finished template file selection box and code to
	write templates.

Sat Apr  9 10:39:35 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* xdatplot.c: Use XrmCombineDatabase to add fallback resources to
	database without overriding defaults.  This allows a small system
	app-defaults file that specifies only a few changed resources.
	Also entailed changes in file2c.c.

Fri Apr  8 07:02:52 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* template.c (make_template_dialog): Added Create Template dialog.
	All it does now is call stubs.

	* Imakefile.in: added new source, template.c, for Create Template
	dialog.

	* xdatplot.c: Added two new templateLeftWidth and
	templateRightWidth resources, default initial values for template
	creation.

	* children.c (add_resources): calls fix_resource_newlines on
	resource values.  Fixes bug where only first line of multiline
	resources were getting passed to children.

	* xdp.c (fix_resource_newlines): new function, inserts \n\ before
	newlines in string.

Thu Apr  7 18:11:13 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* files.c (close_file): explicitly disconnect DF_FIL
	(delete_filter) before making empty filter.  The failure to
	disconnect was causing the next filter to have a hanging
	source reference, leading to an error when tried to connect DF_FIL
	back up to it.

	* commands.c: Set non-blocking I/O on stdin.  In cmd_in, read
	until nothing more available, instead of reading just one command
	per call.  This was needed because if the parent spit out commands
	faster than the child could process them, the child would only
	process the first of the commands that had been sent.

	* children.c: Added code to launch subwindows (new xdatplot
	processes, controlled by commands from the parent).  Many changes
	through much of source code, but children.c most important.

Fri Apr  1 08:17:56 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* children.c, Imakefile.in: new source children.c added to hold
	code for handling child xdatplots.

	* commands.c (dissociate_cmd): Dissociate closes stdout as well as
	stdin.

	* lalib.c (dprintf, dprintf1): changed to use stderr instead of
	stdout.

	* mainw.c: Added new pulldown menu windows, with one itme New
	Window.

	* run.c: New function run2, like run by leaves stderr alone.

	* control.c (create_control): don't manage control if
	no_control_panel set.

	* xdatplot.c, xdatplot.h: New resources:
	noControlPanel: if True, don't map control panel.
	xdatplotCommand: comand used to start new xdatplot windows.
	childResources: resources propagated to children.
	children: list of currently active children.

	* files.c (new_file, new_datafile): added an additional argument
	for error handling.  If popup True, act as before.  If False, no
	popup on error.  In any case, return NULL if no error, pointer to
	error message otherwise.

	* commands.c: added input handler, routines for an initial set of
	commands.

Thu Mar 31 08:09:48 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* commands.c, Imakefile.in: Added new source to handle stdin
	command input.

	* xdatplot.c, xdatplot.h: deleted help_print_command cmd line
	option, since helpPrintCommand resource had already been deleted.
	Added readCommand resource and -read_command command-line option,
	to tell xdatplot to listen to stdin for commands.

Mon Mar 28 00:48:45 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* Imakefile.in: Call help distribution xdatplot_help, not
	xdatplot-<version>_help.  No point in changing the name with every
	patch.

	* xdatplot.h, xdatplot.c: got rid of no-longer-needed helpWait
	kludge.

	* help.c (help_window, start_help): help_window constructs a full
	URL.  start_help starts mosaic with that URL as its -home
	argument, and the Mosaic.pid mechanism is not used at all in this
	case.

	* xdatplot.h, patchlevel.h: xdatplot.h includes patchlevel.h,
	patchlevel.h defines VERSION string.

	* patchlevel.h (PATCHLEVEL): released patch01.

	* xdatplot.c (dup_strings): duplicate all String application
	resources, so they can later be freed without messing the heap.
	Got rid of helpPrintCommand resource, which is no longer used.

	* Imakefile.in: Added targets to build distribution.

	* patchlevel.h: created.

	* help/accbin.html: Fixed documentation to cover a screw-up in
	ACCBIN format #2.  Wayne wrote in the description that there were
	144 floating-point channel parameters at offset 61, 576 bytes.
	That was a mistake: it was 36 numbers, 144 bytes.  When I
	discovered this error, I made another: I fixed ACCBIN, not the
	documentation.  Before I realized the error, I had released
	xdatplot-0.2.  So I've decided, rather than change the file format
	and cause possible file compatibility problems, I'll just fix the
	documentation and call those extra 432 bytes "reserved".

	* released xdatplot-0.2.

	* Vt.c: Added Wayne's new ACCBIN as native format.

	* asc2bin.c: Changed to use Wayne's new ACCBIN.

Sun Mar 27 07:18:30 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* files.c (new_datafile): fixed a bug where temp file wasn't
	deleted after a conversions failed.

	* xdatplot.c (PU_error): PU_error now takes two arguments: the
	error message, and an optional URL for help.  Changed all the
	calls to PU_error in other files.

	* filter.c (shift_cache): center time t in cache.  This had been
	adjusted to put time t near beginnng, on the expectation that
	people would usually be scrolling forward in time and such a
	positioning would reduce disk access.  But it made backward
	scrolling slow and didn't really help the forward.
	(df, make_df): Turned off caching for df filter.  This is
	conditional: can get it back by defining CACHE_DF at compile time.

	* help.c (mostly): Switched the help system over to NCSA mosaic.
	Added several new resources: helpPid, helpTmp, and helpWait, to
	control mosaic.  Changed all the calls to the new system, deleted
	the old help messages.

	* xdatplot.c: added helpURL resource.

	* mainw.c: Set labels on help buttons.  Also got rid of options,
	to be replaced with a Using... item.

Sat Mar 26 07:04:10 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* xdatplot.c, units.c, peaks.c, fildialog.c, xdatplot.h,
	xdatplot.xbm: made an xdatplot icon.

	* units.c (copy_fields_into_resources): Fixed bug whereby, when
	units were changed, existing filter parameters continued to be in
	unchanged units.

	* xdatplot.c, file2c.c, fallback.h: xdatplot now has fallback
	resources.  file2c is used to translate XDatplot.ad (the usual
	app-defaults file) into fallback.h, which is included in
	xdatplot.c and passed to XtVaAppInitialize.

	* plot.c (plot_key): space redraws plot.

	* configure.in, config.h.in, run.c: Use vfork rather than fork, if
	available.

	* mainw.c, xdatplot.c, xdatplot.h: Added printLimit resource.  If
	set to a positive value, the user will be asked for confirmation
	before printing or exporting a plot of more than that many points.

	* xdatplot.c, xdatplot.h: Added helpViewer resource, default value
	mosaic.

	* XDatplot.ad: Added .bin.Z, .bin.gz, and .bin.z uncompressions.
	These are just like .Z, .gz and .z: the purpose is that the
	default xdp file for a1.bin.gz will be a1.xdp, not a1.bin.xdp.

	* files.c, xdatplot.c, xdatplot.h: Added new application resource
	fileConvert.  This works just like the uncompress resource, but
	has priority over that.  The purpose is to allow users to add new
	file conversions without erasing all the ones already defined in
	uncompress.

Fri Mar 25 10:42:59 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* fildialog.c: filter_delete_cb was restoring params to wrong
	filters.

Thu Mar 24 18:59:04 1994  Leon Avery  (leon@eatworms.swmed.edu)

	* Fixed a memory allocation bug in reading xdp files.

3/23/94, Leon Avery, leon@eatworms.swmed.edu
    Fixed scrolling bug (I think).

3/23/94, Leon Avery, leon@eatworms.swmed.edu
    Got asc2bin converter working.  Adjusted Imakefile.in to build and
    install it.  Adjusted default resources to cause it to be invoked for
    ASCII files.

3/17/94, Leon Avery, leon@eatworms.swmed.edu
    Lots of fixes to make work with a vanilla Motif1.2.2 installation.
    configure.in fixed to ignore /usr/motif if it finds Motif in standard
    X places.  1.2.2 include files have function prototypes: fixed
    function calls to get rid of resulting compile warnings and errors.
    1.2.2 Form widget under some circumstances appears not to set its size
    to accomodate preferred sizes of children (seems to be a bad
    interaction with Frame widget).  Added workaround code that explicitly
    calculates sizes of control panel and filter dialogs.  (Units and Peak
    dialogs work OK without.)

< 3/17/94, Leon Avery, leon@eatworms.swmed.edu
    Decompression filters now specified by resource.

]< 3/17/94, Leon Avery, leon@eatworms.swmed.edu
    Several minor unlogged changes.  Mostly bug fixes.
