summaryrefslogtreecommitdiffstats
path: root/funtools/doc/changelog.html
diff options
context:
space:
mode:
Diffstat (limited to 'funtools/doc/changelog.html')
-rw-r--r--funtools/doc/changelog.html1182
1 files changed, 1182 insertions, 0 deletions
diff --git a/funtools/doc/changelog.html b/funtools/doc/changelog.html
new file mode 100644
index 0000000..a4049c8
--- /dev/null
+++ b/funtools/doc/changelog.html
@@ -0,0 +1,1182 @@
+<HTML>
+<HEAD>
+<TITLE>Funtools ChangeLog</TITLE>
+</HEAD>
+<BODY>
+<H2>Funtools ChangeLog</H2>
+
+<P>
+This ChangeLog covers both the Funtools library and the suite of
+applications. It will be updated as we continue to develop and improve
+Funtools. The up-to-date version can be found
+<A HREF="http://hea-www.harvard.edu/RD/funtools/changelog.html">here</A>.
+[The changelog for the initial development of Funtools, covering the
+beta releases, can be found
+<A HREF="http://hea-www.harvard.edu/RD/funtools/changelog_beta.html">here</A>.]
+
+<H2> Patch Release 1.4.6 (internal ds9 release)</H2>
+<ul>
+<p>
+<li> Upgrade wcssubs to version 3.8.7
+<p>
+<li> Port to mingw (Windows)
+</ul>
+
+<H2> Patch Release 1.4.5 (internal ds9 release)</H2>
+<ul>
+<p>
+<li> Fixed bug in funim.c which broke vcol functionality.
+<p>
+<li> Removed permission checking from Find() on cygwin systems. This was broken
+by Windows 7.
+<p>
+<li> Removed addition of -no-cpp-precomp flag from gcc 4.2 and beyond.
+</ul>
+
+<H2> Patch Release 1.4.4 (internal ds9 release)</H2>
+<ul>
+<p>
+<li> Fixed -J funcone, which was not properly outputting all rows.
+<p>
+<li> Filter: when an image is flipped, the rotation angle must be reversed.
+<p>
+<li> Filter: add support for windows-based ipc communication when using tcc
+compiler.
+</ul>
+
+<H2> Patch Release 1.4.3 (internal ds9 release)</H2>
+<ul>
+<p>
+<li> Filter: improve checks for existence of compiler, even if CC is set.
+<p>
+<li> Change launch.h to xlaunch.h to avoid conflict with OS X.
+<p>
+<li> handle flipped images in filtering
+</ul>
+
+<H2> Patch Release 1.4.2 (internal ds9 release)</H2>
+<ul>
+<p>
+<li> Port to gcc 4.2.
+<p>
+<li> Fix 1-byte filters on intel machines (missing SW1 no-op).
+<p>
+<li> Remove ambiguity from filt.l (and calc.l) using [A-z] in a
+case-insensitive lexer.
+<p>
+<li> In funsky, the default unit for RA was changed from hours to degrees.
+<p>
+<li> Fixed bug in funtable in which TCRVL header values were output as strings.
+<p>
+<li> Added support for running funtools filters in Rosetta (i.e. running PPC
+executables on an Intel Mac) by sensing and handling data swap requirements.
+Only works with FILTER_PTYPE set to 'c' (can't link against wrong architecture
+libraries).
+<p>
+<li> Fixed bug in FITS library to allow "-" in extension names.
+<p>
+<li> Code and documentation now agree that the copy extension specifier ('+')
+comes after the extension name.
+</ul>
+
+<H2> Patch Release 1.4.1 (internal ds9 release)</H2>
+<ul>
+<p>
+<li> Modified internal Launch() routine to use posix_spawn(), if necessary.
+This is required for OS X 10.5 (leopard), which frowns upon use of fork()
+and exec(). Also modified zprocess routines to use Launch().
+</ul>
+
+<H2> Public Release 1.4.0 (15 August 2007)</H2>
+
+<ul>
+<li> Public release of production-quality code, incorporating changes
+and improvements from previous beta releases, including:
+<ul>
+<li> Support for access to ASCII text column files.
+<li> Support for fast indexed access of binary tables.
+<li> Support for database views of tables, i.e. pre-set values for the filter
+ specification, the columns to activate, and display format.
+<li> New programs include funcone (cone search), funindex (create index files),
+ and funcen (calculate centroids within regions).
+</ul>
+
+</ul>
+
+<H2> Release 1.3.0b[n] (mainly internal SAO beta releases)</H2>
+<ul>
+
+<p>
+<li> Added -F[c] switch to change the column delimiter to the
+specified character.
+
+<p>
+<li> Extended fundisp's format switch (-f) so that it can now handle complex
+formats such as 'x=sometext%3d- y=othertest%3d.ext'.
+
+<p>
+<li> Added support for creating and processing 1D FITS images.
+
+<p>
+<li> Added vcol=colname and vcol=/colname to filter specifications to
+support use of a third value column when binning 2D images.
+
+<p>
+<li> Added switches to funcone to write out data rows are not within
+any cone (-J, -X) and centers which have no close data rows (-L).
+
+<p>
+<li> In funjoin, added ability to specify a numeric tolerance for when joining
+two files.
+
+<p>
+<li> shared memory support in gio now can create a shared segment if w+ is
+specified as the open mode.
+
+<p>
+<li> Changed reggeometry man page so that examples correctly show angles
+going counter-clockwise from the x-axis instead of from the y-axis.
+
+<p>
+<li> Added checks to funmerge to ensure that all files have the same columns.
+
+<p>
+<li> Fixed bug in text support that prevented header-less files from being
+processed properly.
+
+<p>
+<li> Added support for 64-bit images (bitpix=64) and table columns (TFORM=K).
+
+<p>
+<li> Filter code was not applying bscale/bzero to columns.
+
+<p>
+<li> Fixed funimage bug that caused a .5/block error in WCS CRPIX values
+generated from binary tables.
+
+<p>
+<li> Added feq(a,b) and div(a,b) macros to funcalc.
+
+<p>
+<li> Added support for single-line #define to funcalc.
+
+<p>
+<li> Updated wcs library to 3.6.6
+
+<p>
+<li> Fix bug in funcen in which ra,dec was not being calculated correctly
+if physical and image coords did not match up.
+
+<p>
+<li> The filter syntax "col1 = col2" now explicitly generates an error
+(you really want to do "col1 == col2").
+
+<p>
+<li> Added -o switch to include offset from the nominal target position.
+
+<p>
+<li> Fundisp now displays multi-dimensional vector columns properly.
+
+<p>
+<li> Documented support for lists of files processed as a single file
+using "list: file1 ... filen" syntax.
+
+<p>
+<li> Fixed bugs in support for pipe file type (i.e. ability to pass
+commands as a filename using "pipe: cmd arg1 ... argn" syntax).
+
+<p>
+<li> Fixed bug in funhist processing of image-based pixel histograms
+(i.e using "xy" for columns) where a region was specified. All pixels
+outside the region were erroneously being added to the bin containing
+the 0 value.
+
+<p>
+<li> Disabled multi-file processing in funds9, which was breaking support
+for pathnames containing spaces and is not used by ds9 anyway.
+
+<p>
+<li> Added support for Views of tables, i.e. pre-set values for the
+filter specification, the columns to activate, and display format
+(though the latter is for fundisp only).
+
+<p>
+<li> Added -l switch to funimage to read x, y, val columns from a list.
+
+<p>
+<li> Removed useless and meaningless section syntax foo'[*]' because it
+breaks pointer de-referencing on string columns (i.e. foo'[*xxx=='a']').
+Use foo'[*,*]' instead, as documented.
+
+<p>
+<li> String variables were not always being terminated properly in the
+filter code because FITS 'A' data is not necessarily null-terminated.
+
+<p>
+<li> Added funtools version number to all usage() displays.
+
+<p>
+<li> Added explanation of switch arguments to many usage() displays.
+
+<p>
+<li> The filter keyword row# now supports single row selection as well
+as range selection, i.e., "row#=100" along with previous "row#=100:200".
+
+<p>
+<li> fundisp now outputs "0x" before hex values.
+
+<p>
+<li> Fixed bug in filter parser which processed rangelists incorrectly
+if spaces were put into the rangelist (i.e. "pha= 1 : 3" instead of
+pha=1:3).
+
+<p>
+<li> Fixed a bug in funindex which created a wrongly named index file
+if more than one "." was in the input file name.
+
+<p>
+<li> Added support to funcone to take ra, dec, radius from a list
+(i.e. columns in a FITS file or a text file).
+
+<p>
+<li> Fixed a bug in FunColumnActivate so that if some columns are
+explicitly activated while others are de-activated, only the
+explicitly activated columns are activated (code was activating all
+columns in this case).
+
+<p>
+<li> Fixed a bug in funindex which prevented indexing tables containing
+a column named N.
+
+<p>
+<li> fundisp now encloses ASCII column values in single quotes (unless
+-T is specified to output RDB format).
+
+<p>
+<li> If a filter specification only involves indexed columns, then the
+compiled filter is not used.
+
+<p>
+<li> Funmerge can now be given a list of files to merge using @list syntax.
+Also removed the restriction on how many files can be merged (was limited to
+the max number of open files).
+
+<p>
+<li> Added ability to edit (add, delete, modify) header parameters in funhead
+by specifying an output file (editing acts as a filter) and an edit command
+file (which can be stdin).
+
+<p>
+<li> Funtools now contains preliminary code to support (fast) indexed access
+of binary tables. See idx.html or "man funidx" for more details.
+
+<p>
+<li> Funtools now contains preliminary code supporting access to ASCII
+column files. See text.html or "man funtext" for more details.
+
+<p>
+<li> Fixed bug in funcalc in which columns used in an expression were
+always being replaced by new columns, with all associated parameters
+(e.g. WCS) were being deleted. Now this only happens if the column
+explicitly changes its data type.
+
+<p>
+<li> Fixed bug in funcalc in which the raw data and user data became out
+of sync for one row after every 8192 (FUN_MAXROW) rows.
+
+<p>
+<li> Fixed bug in gio in which gseek returned 0 instead of the current byte
+offset for disk files.
+
+<p>
+<li> Added funcone program to perform cone search on RA, Dec columns in
+a FITS binary table.
+
+<p>
+<li> Fixed bug in polygon, pie and rotated box region filtering for
+tables (nearby rows exactly in line between two non-vertical or
+non-horizontal vertices were being accepted incorrectly).
+
+<p>
+<li> Fixed pie and panda regions so that the angles now start from
+positive x axis == 0 degrees and run counter-clockwise, as
+documented. They were going from positive y. NB: a similar change
+was made to ds9 release 4.0b3. You must be using ds9 4.0b3 or later
+in order to have the correct behavior when generating regions in ds9
+and using them in funtools.
+
+<p>
+<li> Added -p [prog] switch to funcalc to save the generated program.
+instead of executing (and deleting) it.
+
+<p>
+<li> Upgraded zlib to 1.2.3.
+
+</ul>
+
+<H2> Patch Release 1.2.4 (internal SAO and beta release only)</H2>
+<ul>
+
+<p>
+<li> In funcalc, added support for user-specified arguments via the
+-a [argstr] switch. These arguments are accessed in the compiled program
+using the supplied ARGC and ARGV(n) macros.
+
+<p>
+<li> Added -n (no header display) to fundisp to skip outputting header.
+
+<p>
+<li> Added checks for various types of blank filters.
+
+<p>
+<li> Added macros NROW (current row number) and WRITE_ROW (write current
+row to disk) to funcalc.
+
+<p>
+<li> funcalc no longer requires that at least one data column be
+specified in the compiled expression.
+
+<p>
+<li> Added FUN_NROWS to FunInfoGet() to return the total number of rows in
+an input table (i.e. value of NAXIS2).
+
+<p>
+<li> The compiled funcalc program now includes stdlib.h and unistd.h.
+
+<p>
+<li> The util/NaN.h header file is now modified at configure time to
+contain endian status for the target architecture. References to
+specific platforms have been removed.
+
+<P>
+<li> Added -m switch to funtable to output multiple files, one for
+each input region (and a separate file for events that pass the
+filters but are not in any region).
+
+<p>
+<li> Added ability to add new parameters (FunParamPutx) after writing
+data if space is previously reserved in the form of a blank parameter
+whose value is the name of the param to be updated. (Also requires the
+append argument of FunParamPutx be set to 2).
+
+<p>
+<li> Added ability to build shared libraries. With --enable-shared=yes,
+shared library is built but not used. With --enable-shared=link,
+shared library is linked against (requires proper installation and/or
+use of LD_LIBRARY_PATH).
+
+<p>
+<li> Added -v [column] support to funcnts so that counts in a table
+can be accumulated using values from a specified column (instead of
+the default case where an integral count is accumulated for each event
+in a region).
+
+<p>
+<li> Added funcen program to calculate centroids within regions
+(binary tables only). Also added support for a funcen-based centroid
+tool to funtools.ds9.
+
+<p>
+<li> Fixed bug which prevented successful filtering of columns containing
+arrays.
+
+<p>
+<li> Added filter check to ensure that a column is not incorrectly used
+as an array.
+
+<p>
+<li> Fundisp now displays column arrays indexed from 0, not 1.
+
+<p>
+<li> Added -i [interval] support to funcnts so that multiple intervals
+can be processed in a single pass through the data. For example,
+specifying -i "pha=1:5;pha=6:10;pha=11:15" will generate results in
+each of 3 pha bands.
+
+<p>
+<li> Fixed calculation of LTV quantities when binning floating point
+column data (value was off by 0.5).
+
+<p>
+<li> Added support for 'D' in floating point header values.
+
+<p>
+<li> Added -a switch to funimage and funtable to append output image or
+table to an existing FITS file (as an IMAGE or BINTABLE extension).
+
+<p>
+<li> Added support for column scaling (TSCAL and TZERO) on input columns.
+Note that the default column type is changed to accommodate scaling (e.g.
+a column of type 'I' is changed to 'J', 'J' is changed to 'D') so that
+the scaled values can be handled properly by programs such as fundisp
+(which utilize default types).
+
+<p>
+<li> Added support to FunColumnSelect() for handling structs of arrays
+(i.e. where returned columns are contiguous) instead of the default array
+of structs (returned row are contiguous). This is done by specifying
+"org=structofarrays" in the plist and passing a single struct containing
+the arrays.
+
+<p>
+<li> When writing an rdb/starbase file, fundisp now outputs the full
+column name, regardless of the width of the column (which ordinarily
+is truncated to match).
+
+<p>
+<li> Fixed support for large files by changing all file positions variables
+from "long" declarations to "off_t.
+
+<p>
+<li> Fixed bug in funcalc incorrectly processed multiple array
+references (e.g. cur->foo[0]=cur->x;cur->foo[1]=cur->y;) within a single
+line of code.
+
+<p>
+<li> Added FILTER_CFLAGS environment variable for all filtering. Also added
+--with-filter-cc and --with-filter-cflags options on configure to allow
+specification of a default C compiler and associated CFLAGS for filtering.
+All of this is necessary in order to support 64-bit libraries under Solaris.
+
+<p>
+<li> Added the funtbl script to extract a table from Funtools ASCII output.
+
+<p>
+<li> Added code to funimage to update IRAF DATASEC keyword.
+
+<p>
+<li> Added checks to ensure that image dimensions are positive.
+
+<p>
+<li> Fixed a bug in funimage where int data was being scaled using BSCALE and
+BZERO but these keywords also were being retained in the output image header.
+Now the data are not scaled unless the output data type is float (in which
+case the scaling parameters are removed).
+
+<p>
+<li> Fixed a bug in funmerge which prevented merging of files unless one of
+the -f, -w, or -x switches were used.
+
+<p>
+<li> Fixed a bug in funtable and fundisp which caused the special '$n' column
+to be output incorrectly.
+
+<p>
+<li> Fixed sort option in funtable, which previously worked only if the
+record size was an even divisor of 8192 (and returned garbage otherwise).
+
+<p>
+<li> Fixed bug in filters involving FITS data type 'X' (bitfield).
+
+<p>
+<li> Fixed bug in funcnts in which the output angles and radii were
+being displayed incorrectly when multiple panda shapes were specified.
+
+<p>
+<li> Fixed bug in pandas and pies using n= syntax when first angle
+specified was greater than second. The resulting mask was of
+the correct shape but contained only a single region.
+
+<p>
+<li> Table row access routines will now decrease maxrows if memory cannot be
+allocated for maxrows*sizeof(row), i.e. if the size of a row is so large that
+space for maxrows cannot be allocated.
+
+<p>
+<li> The FUN_MAXBUFSIZE environment variable was added to limit the
+max buffer size that will be allocated to hold table row data. The
+default is 5Mb.
+
+<p>
+<li> Generated PostScript and PDF versions of the help pages.
+
+<p>
+<li> Moved OPTIONS section before (often-lengthy) DESCRIPTION section in
+man pages.
+
+<p>
+<li> All memory allocation now does error checking on the result
+(except wcs library, which is external code).
+
+<p>
+<li> Removed some compiler warnings that surfaced when using gcc -O2.
+
+<p>
+<li> Updated wcs library to 3.5.5.
+
+<p>
+<li> Upgraded zlib to 1.2.1.
+
+</ul>
+
+<H2> Patch Release 1.2.3 (12 January 2004)</H2>
+<ul>
+
+<p>
+<li> Generated man pages from the html pages. These are installed
+automatically at build time.
+
+<p>
+<li> Changed instances of sprintf() to snprintf() to protect
+against buffer overflow.
+
+<p>
+<li> Fixed a number of compiler warnings in non-ANSI compilers.
+
+<p>
+<li> Increased SZ_LINE parameter value from 1024 to 4096.
+
+</ul>
+
+<H2> Patch Release 1.2.3b1 (19 August 2003)</H2>
+<ul>
+
+<p>
+<li> The rule for using comma to separate a table filter expression
+and a region expression has been changed. The rule now states:
+<ul>
+<LI> if both expressions contain a region, the operator used is <B>or</B>.
+<LI> if one (or both) expression(s) does not contain a region, the operator
+used is <B>and</B>.
+</ul>
+This rule handles the cases of pure regions and pure column filters properly.
+It unambiguously assigns the boolean <B>and</B> to all mixed cases. Thus:
+<PRE>
+ foo.fits[circle(10,10,3),pi=1:5]
+</PRE>
+and
+<PRE>
+ foo.fits[pi=1:5,circle(10,10,3)]
+</PRE>
+both are equivalent to:
+<PRE>
+ foo.fits[circle(10,10,3) && pi=1:5]
+</PRE>
+
+<p>
+<li> When include files are used in filters, they now have implied
+parentheses surrounding them. Thus, if a region file foo.reg contains two
+regions (e.g. circle 1 2 3 and circle 4 5 6), the syntax:
+<pre>
+ pha=4:5&&@foo.reg
+</pre>
+is equivalent to:
+<pre>
+ pha=4:5 && (circle 1 2 3 || cir 4 5 6)
+</pre>
+instead of:
+<pre>
+ pha=4:5 && circle 1 2 3 || cir 4 5 6
+</pre>
+and the pha filter is applied to both regions.
+
+<p>
+<li> Filters and comments now can be terminated with the string
+literal "\n" as well as ";" and the new-line character. This means
+that a region can have comments embedded in it:
+<pre>
+ funcnts foo.fits "circle 512 512 10 # color=red\n circle 512 512 20"
+</pre>
+
+<p>
+<li> Added capability to update the value of an existing parameter
+after writing the table or image (assuming the output image is a
+disk file or is being redirected into a file).
+
+<p>
+<li> Improved handling of parentheses in filter expressions.
+
+<p>
+<li> Fixed a bug in image (not event) regions in which circles and
+annuli with radius of 1 pixel were not being processed. No counts and
+no area would be found in such regions.
+
+<p>
+<li> Fixed a bug in funcnts in which the radii column values for out of sync
+if multiple annuli were specified (instead of a single varargs or accel
+annulus).
+
+<p>
+<li> By default, fundisp will display integer image data as floats
+if the BSCALE and BZERO header parameters are present.
+
+<p>
+<li> Added -L switch to funhead to output starbase list format.
+
+<p>
+<li> Changed the name of the routine _FunColumnSelect to
+FunColumnSelectArr, in order to emphasize that it is not
+a private routine.
+
+<p>
+<li> Funcalc now checks to ensure that a column was specified as part of
+the expression.
+
+<p>
+<li> Funcalc local variables in the compiled program now use a "__" prefix
+to avoid conflicts with user-defined variables.
+
+<p>
+<li> Unofficial unsigned short (bitpix=-16) image data now is scaled
+correctly using BSCALE and BZERO header parameters.
+
+<p>
+<li> Ported to Intel icc and gcc 3.3 compilers.
+
+<p>
+<li> Updated wcs library to 3.5.1.
+
+<p>
+<li> Changed license from public domain to GNU GPL.
+
+</ul>
+
+<H2> Patch Release 1.2.2 (18 May 2003)</H2>
+<ul>
+
+<p>
+<li> Fixed funcalc so that it now actually compiles an expression and
+runs it, instead of getting a "filter compilation error". Oops!
+
+<p>
+<li> Fixed bug in FunOpen in which the bracket specification was being
+removed from the filename if a disk file was opened for "w" or "a".
+
+<p>
+<li> Fixed bug in FunFlush which prevented two successive calls to
+FunImagePut from writing the second extension header properly.
+
+<p>
+<li> All filter routines now use gerror(stderr, ...) call instead of
+fprintf(stderr, ...) so that output to stderr can be turned off (via
+setgerror(level) or GERROR environment variable).
+
+<p>
+<li> All standard Funtools programs check for GERROR environment
+variable before setting gerror flag.
+
+<p>
+<li> Some error messages about invalid region arguments were not being
+printed.
+
+<p>
+<li> FITS parameters/headers now conform more closely to FITS standard:
+<ul>
+<li> Blank keywords are treated in the same way as COMMENTS and HISTORY cards
+<li> XTENSION keywords are now exactly 8 characters long
+<li> 'E' is output instead of 'e' in floating point param values
+<li> PCOUNT and GCOUNT are output correctly for image extensions
+<li> EXTEND=T is output in primary header
+<li> COMMENTS and HISTORY start in column 9
+</ul>
+
+</ul>
+
+<H2> Patch Release 1.2.1 (24 April 2003)</H2>
+<ul>
+
+<p>
+<li> Varargs ellipse and box annular regions were being
+processed incorrectly when the following conditions all were met:
+<ul>
+<li> the region was specified in physical or wcs coordinates
+<li> the data file contained LTM/LTV keywords, i.e., it
+was blocked with respect to the original data file
+<li> the program being run was an image program (e.g. funcnts, funimage)
+</ul>
+Varargs ellipse and boxes are regions of the form:
+<pre>
+ ellipse x y a1 b1 a2 b2 ... an bn [angle]
+ box x y l1 w1 l2 w2 ... ln wn [angle]
+</pre>
+where at least 2 sets of axis (length) values were specified to form
+an annulus (i.e. simple ellipses and boxes worked properly). With all
+of the above conditions met, a region in physical coordinates saw its
+second length argument converted incorrectly from physical coordinates
+to image coordinates. In simple terms, this means that funcnts did not
+process elliptical or box regions in physical coords on blocked images
+properly. Note that blocking on the command line (e.g. foo.fits[*,*,2])
+did work when no LTM/LTV keywords existed in the file.
+
+<p>
+<li> The fundisp -f switch now supports specification of
+column-specific display formats as well as a more convenient way to
+specify datatype-specific display formats. Both use keyword=value
+specifiers. For columns, use:
+<pre>
+ fundisp -f "colname1=format1 colname2=format2 ..." ...
+</pre>
+e.g.
+<pre>
+ fundisp -f "time=%13.2f pha=%3d" ...
+</pre>
+You also can specify display formats for individual datatypes using the FITS
+binary table TFORM variables as the keywords:
+<pre>
+ fundisp -f "D=double_format E=float_format J=int_format etc."
+</pre>
+e.g.
+<pre>
+ fundisp -f "D=%13.2f I=%3d" ...
+</pre>
+The old position-dependent syntax is deprecated.
+
+<p>
+<li> Fundisp will now print out a single 16-bit (or 32-bit) unsigned
+int for a column whose data format is 16X (or 32X), instead of
+printing 2 (or 4) unsigned chars.
+
+<p>
+<li> Fixed bug in which fundisp was not able to display bitfield data for
+raw event lists.
+
+<p>
+<li> Previously, when binning columns used implicitly in a region
+and explicitly in a filter could suffer from a case sensitivity problem.
+This has been fixed.
+
+<p>
+<li> Fixed internal mask=all switch on fundisp.
+
+<p>
+<li> Filter include files now simply include text without changing the state
+of the filter. They therefore can be used in expression. That is, if foo1
+contains "pi==1" and foo2 contains "pha==2" then the following expressions
+are equivalent:
+<pre>
+ "[@foo1&&@foo2]" is equivalent to "[pi==1&&pha==2]"
+ "[pha==1||@foo2]" is equivalent to "[pi==1||pha==2]"
+ "[@foo1,@foo2]" is equivalent to "[pi==1,pha==2]"
+</pre>
+
+<p>
+<li> Fixed bug in filter specification which caused a SEGV if a varargs-style
+region was enclosed in parens.
+
+<p>
+<li> Updated wcs library to 3.3.2.
+
+</ul>
+
+<H2> Public Release 1.2.0 (24 March 2003)</H2>
+<ul>
+
+<p>
+<li> BSCALE and BZERO are now always applied to int pixel data, instead of
+only being applied if the desired output is floating point.
+
+</ul>
+
+<H2> Beta Release 1.2.b3 (4 February 2003)</H2>
+<ul>
+
+<p>
+<li> In FunColumnSelect, added the ability to specify an offset into
+an array in the type specification, using the extended syntax:
+<PRE>
+ [@][n]&lt;type&gt[[poff]][:[tlmin[:tlmax[:binsiz]]]]
+</PRE>
+The [poff] string specifies the offset. For example, a type specification
+such as "@I[2]" specifies the third (i.e., starting from 0) element in
+the array pointed to by the pointer value. A value of "@2I[4]" specifies
+the fifth and sixth values in the array.
+
+<p>
+<li> Added a non-varargs version of FunColumnSelect called _FunColumnSelect:
+<pre>
+int _FunColumnSelect(Fun fun, int size, char *plist,
+ char **names, char **types, char **modes, int *offsets,
+ int nargs);
+</pre>
+
+<p>
+<li> Added support for sorting binary tables by column name using:
+funtable -s "col1 col2 ... coln" ...
+
+<p>
+<li> Added the FUN_RAW macro which, when applied to the "name" parameter
+of FunParamGets(), returns the 80-character raw FITS card instead of
+only the value.
+
+<p>
+<li> Added support for comparing column values with binary masks of the
+form 0b[01]+, e.g.:
+<pre>
+ (status&0b111)==0b001
+</pre>
+Previously, such masks had to be specified in decimal, octal, or hex.
+
+<p>
+<li> Completed support for type 'L' (logical) in fundisp and in filtering of
+binary tables.
+
+<p>
+<li> Fixed bug in funhist that was improperly setting the number of bins
+when the data was of type float.
+
+<p>
+<li> Fixed bug in filter/Makefile where the filter OBJPATH #define was
+being passed to the wrong module.
+
+</ul>
+
+<H2> Beta Release 1.2.b2 (7 October 2002)</H2>
+<ul>
+
+<p>
+<li> Updated wcs library to 3.1.3.
+
+<p>
+<li> Added support for reading gzip'ed files via stdin.
+
+</ul>
+
+<H2> Beta Release 1.2.b1 (24 September 2002)</H2>
+<ul>
+
+<p>
+<li> Added the following accelerators to region filtering:
+<pre>
+ shape: arguments:
+ ----- ---------
+ BOX xcenter ycenter xw1 yh1 xw2 yh2 ... xwn yhn (angle)
+ BOX xcenter ycenter xwlo yhin xwout yhhi n=[number] (angle)
+ CIRCLE xcenter ycenter r1 r2 ... rn # same as annulus
+ CIRCLE xcenter ycenter rinner router n=[number] # same as annulus
+ ELLIPSE xcenter ycenter xw1 yh1 xw2 yh2 ... xwn yhn (angle)
+ ELLIPSE xcenter ycenter xwlo yhin xwout yhhi n=[number] (angle)
+</pre>
+
+<p>
+<li> Added the following new pandas (Pie AND Annulus) to region filtering:
+<pre>
+ shape: arguments:
+ ----- ---------
+ CPANDA xcen ycen ang1 ang2 nang irad orad nrad # same as panda
+ BPANDA xcen ycen ang1 ang2 nang ixlo iylo ixhi iyhi nrad (ang) # box
+ EPANDA xcen ycen ang1 ang2 nang ixlo iylo ixhi iyhi nrad (ang) # ellipse
+</pre>
+
+<p>
+<li> Added support for filtering images using simple FITS image masks,
+i.e. 8-bit or 16-bit FITS images where the value of a pixel is the
+region id number for that pixel (and therefore must be greater than
+0). The image section being filtered must either be the same size as the
+mask dimensions or else be an even multiple of the mask. This works with
+image-style filtering, i.e., funcnts can utilize a mask on both
+images and binary tables.
+
+<p>
+<li> Added '$n' to fundisp column specification to allow display of
+ordinal value of each row passing the filter.
+
+<p>
+<li> Added code to support region filtering on image sections.
+
+<p>
+<li> Fixed bugs which prevented filtering more than one ASCII region file.
+
+<p>
+<li> Fixed bug occasionally causing filter slave processes to become zombies.
+
+<p>
+<li> Fixed bugs in event filtering: annulus with inner radius of 0
+(i.e., a circle) was rejecting events with coordinates xcen, ycen.
+Also, pie with angles of 0 and 360 was rejecting some events.
+Image filtering (e.g. funcnts) did not have these problems.
+
+<p>
+<li> Filters now accept global exclude regions without an include region.
+In such a case, the field region is implied. That is, "-circle(x,y,r)"
+is equivalent to "field; -circle(x,y,r)", etc.
+
+<p>
+<li> Fixed panda so that it can be used as a global exclude.
+
+<p>
+<li> Allow empty ds9 region file (comments and globals only) to be
+a valid filter. Totally ignore zero length region or include file.
+
+<p>
+<li> Fixed funcnts bug that was displaying 0 value as inner radius of
+a circle, instead of just one radius value.
+
+</ul>
+
+<H2> Public Release 1.1.0 (22 April 2002)</H2>
+
+<p>
+New features include:
+<ul>
+<p>
+<li> Funtools programs now accept gzip'ed files as valid input.
+
+<p>
+<li> Improved security via replacement of system() function.
+
+<p>
+<li> fundisp, funcnts, funhist can output starbase/rdb format (tabs between columns, form-feeds between tables).
+
+<p>
+<li> Improved support for Windows platform, as well as new support for Mac OSX.
+</ul>
+
+<H2> Pre-Release 1.1.0e (10 April 2002)</H2>
+<UL>
+
+<P>
+<LI> Added enough support to skip over variable length arrays in BINTABLES.
+We will add full support if this non-standard construct becomes more widely
+used.
+
+<P>
+<LI> Fixed bug in underlying fitsy _gread() routine that was returning
+an arbitrary bytes-read value if the input fd was invalid.
+
+</UL>
+
+<H2> Pre-Release 1.1.0e (19 March 2002)</H2>
+<UL>
+
+<P>
+<LI> Added additional check for Windows/PC to filter/Nan.h.
+
+<P>
+<LI> Upgraded zlib library to 1.1.4 (fix double free security hole).
+
+</UL>
+
+
+<H2> Pre-Release 1.1.0e (27 February 2002)</H2>
+<UL>
+
+<P>
+<LI> Changed filter/process.[ch] to filter/zprocess.[ch] to avoid name
+collision with Cygwin include file.
+
+<P>
+<LI> Added -a switch to funhead to display all headers in a FITS file.
+
+</UL>
+
+<H2> Pre-Release 1.1.0e (11 February 2002)</H2>
+<UL>
+
+<P>
+<LI> Fixed filter parser so that it ignores ds9 "ruler" and "text" markers
+only up to the first \n or ; (was ignoring to last \n).
+
+<P>
+<LI> The NBLOCK parameter in fitsy/headdata.c was too large for Mac OS X
+(max size of a declared char buf seems to be about .5 Mb).
+
+</UL>
+
+<H2> Beta Release 1.0.1b5 (31 January 2002)</H2>
+<UL>
+
+<P>
+<LI> Fixed bug introduced in calculated IRAF LTM values in 1.0.1b3.
+
+<P>
+<LI> Fixed bug in filter parser giving wrong answers when two range
+lists were combined with and explicit boolean operator:
+<PRE>
+ $ fundisp $S"[x=512&&y=511,512]"
+</PRE>
+incorrectly acted like:
+<PRE>
+ fundisp $S"[(x=512&&y=511)||(y=512)]"
+</PRE>
+instead of:
+<PRE>
+ fundisp $S"[x=512&&(y=511||y=512)]"
+</PRE>
+In general, we recommend use of explicit parentheses.
+
+<P>
+<LI> Fixed filter/NaN.h to recognize Compaq Alpha again (broken by their last change to cc).
+
+<P>
+<LI> Removed redundant varargs definitions that conflicted with Alpha compiler definitions.
+
+<P>
+<LI> Added blank line to inc.sed to work around Apple Mac OS X bug in which the
+"i" (insert) command was treating final \\ as continuation \ in the text.
+
+<P>
+<LI> Added include of mkrtemp.h to mkrtemp.c to get conditional compilation
+for Mac OSX.
+
+<P>
+<LI> Added support for --with-zlib to fitsy so that ds9 could use its own
+copy of zlib (and not build the copy in fitsy).
+
+<P>
+<LI> Removed config.cache and Makefile files from distribution tar file.
+
+</UL>
+
+<H2> Beta Release 1.0.1b4 (26 January 2002)</H2>
+<UL>
+
+<P>
+<LI> Make explicit that column filters are not permitted in an image
+expression (such as the funcnts region arguments).
+
+<P>
+<LI> Fix bug in region parser in which a region (without parens),
+followed immediately by an operator:
+<PRE>
+ circle 512 512 .5&&pi==1
+</PRE>
+was not processing the final argument of the region correctly.
+
+<P>
+<LI> Ignore new "tile" directive in filters (used by ds9).
+
+</UL>
+
+<H2> Beta Release 1.0.1b3 (4 January 2002)</H2>
+<UL>
+
+<P>
+<LI> Made modifications to Makefile.in to make releases easier.
+
+<P>
+<LI> Added instructions Makefile.in so that funtools.h will always
+have correct #defines for FUN_VERSION, FUN_MAJOR_VERSION,
+FUN_MINOR_VERSION, and FUN_PATCH_LEVEL.
+
+<P>
+<LI> Allow #include statements in funcalc program files.
+
+<P>
+<LI> funimage now updates all 4 CDX_Y values by the block factor.
+
+<P>
+<LI> Minor changes to make funtools work under darwin (Mac OS X).
+
+</UL>
+
+<H2> Beta Release 1.0.1b2 (14 November 2001)</H2>
+<UL>
+
+<P>
+<LI> Fixed FunOpen() bug (introduced in b1) in which filenames without
+extensions SEGV'ed on open. Yikes!
+
+<P>
+<LI> Funmerge now extends the tlmin/tlmax values of the output
+binning columns so that merged events from widely separated files are
+valid in the output table.
+
+<P>
+<LI> In funhist, added -w switch to specify bin width (lo:hi:width)
+instead of number of bins (lo:hi:num). Added support for this new
+width option in funtools.ds9.
+
+<P>
+<LI> If a tdbin value was set using bincols=(name:tlmin:tlmax:tdbin, ...),
+the WCS parameters were not being updated properly.
+
+<P>
+<LI> Cleaned up build support for zlib.
+
+</UL>
+
+<H2> Beta Release 1.0.1b1 (6 November 2001)</H2>
+<UL>
+
+<P>
+<LI> Added support for gzip'ed files to the underlying fitsy/gio
+library. This means that all funtools programs now accept gzip'ed
+files as valid input:
+<PRE>
+ funcnts foo.fits.gz "circle 504 512 10"
+</PRE>
+It is no longer necessary to run gunzip and pipe the results to
+stdin of a funtools program.
+
+<P>
+<LI> Funtools tasks are now placed in a sub-menu in the DS9 Analysis
+menu, instead of at the top level.
+
+<P>
+<LI> Fixed a bug in funcnts in which the bottom-most pixel of a small
+circle or annulus region could be missed when the region is only one
+pixel wide for that value of y.
+
+<P>
+<LI> Added -n switch to funhist so that table histograms could be
+normalized by the width of the bin (val/(hi_edge-lo_edge)).
+
+<P>
+<LI> Added -T switch to fundisp, funcnts, funhist to output in
+starbase/rdb format (uses tabs instead of spaces between columns,
+form-feeds between tables, etc.)
+
+<P>
+<LI> Fixed a bug in which the field() region was not being properly
+processed in combination with an image section. This could affect
+funcnts processing of image data where an image section was specified
+(though it usually resulted in a funcnts error).
+
+<P>
+<LI> Fixed bug in display of binary table header for vector columns.
+
+<P>
+<LI> Filters now recognize hex constants (starting with 0x) and long
+constants (ending with L).
+
+<P>
+<LI>Filenames containing a ':' are now only treated as sockets if they
+actually are in the form of a valid ip:port.
+
+<P>
+<LI>Replaced funtools.ds9 with a new version that calls a new funds9
+script, instead of calling funcnts or funhist directly. The new script
+supports gzip'ed files and bracket specifications on filenames at the
+same time, which the direct call could not. Also the new script has
+better error reporting.
+
+<P>
+<LI> Replaced system() call used to compile filter and funcalc
+expression with a special launch() call, which performs execvp()
+directly without going through sh. (launch() works under DOS and has
+fewer security problems.)
+
+<P>
+<LI> Fixed image filter code in which the field() region was being ignored
+if it was combined with one or more exclude regions (and no other include
+regions), resulting in no valid pixels.
+
+<P>
+<LI> Changed use of getdtable() to FD_SETSIZE in calls to select().
+
+<P>
+<LI> Added code to guard against FITS binary tables without proper TFORMx
+parameters.
+
+<P>
+<LI> Added support to FunParamGets so that it returns the raw FITS card
+if the specified input name is NULL and the input n value is positive.
+
+<P>
+<LI> Fixed bug in underlying fitsy code that set the comment in a
+header parameter.
+
+</UL>
+
+
+<H2> Public Release 1.0.0 (31 July 2001)</H2>
+<UL>
+<P>
+<LI> "a new day with no mistakes ... yet"
+</UL>
+
+<HR>
+<A HREF="./help.html">Index to the Funtools Help Pages</A>
+<H5>Last updated: 22 April 2002</H5>
+</BODY>
+</HTML>