System Notes File for IRAF Version 2.11. Begun 12 June 1995. ------------------------------------------- unix/hlib/motd unix/hlib/zzsetenv.def Develop system version number incremented to V2.11. (6/12) pkg/images/geometry/t_geotran.x pkg/images/geometry/geotran.x pkg/images/geometry/geotimtran.x Fixed a bug in the buffering of the x and y coordinate surface interpolants which can cause a memory corruption error if, the nxsample or nysample parameters are > 1, and the nxblock or nyblock parameters are less than the x and y dimensions of the input image. Took the opportunity to clean up the code. (6/13/95, LED) pkg/math/curfit/cvpower.gx pkg/math/curfit/cvpowerr.x pkg/math/curfit/cvpowerd.x pkg/math/curfit/doc/curfit.hd pkg/math/curfit/doc/curfit.men pkg/math/curfit/doc/cvepower.hlp Added the new routine cvepower to the curfit math library. Cvepower computes the errors in the power series coefficients equivalent to the fitted Legendre and Chebyshev coefficients. Cvepower is available in both real and double precision versions. (6/13/95, LED) pkg/images/fmedian.hlp pkg/images/fmode.hlp pkg/images/median.hlp pkg/images/mode.hlp pkg/images/fmedian.par pkg/images/fmode.par pkg/images/median.par pkg/images/mode.par pkg/images/filters/fmedian.h pkg/images/filters/fmode.h pkg/images/filters/median.h pkg/images/filters/mode.h pkg/images/filters/t_fmedian.x pkg/images/filters/t_fmode.x pkg/images/filters/t_median.x pkg/images/filters/t_mode.x pkg/images/filters/fmedian.x pkg/images/filters/fmode.x pkg/images/filters/median.x pkg/images/filters/mode.x pkg/images/filters/fmd_buf.x pkg/images/filters/fmd_hist.x pkg/images/filters/fmd_maxmin.x pkg/images/filters/med_buf.x pkg/images/filters/med_sort.x Added minimum and maximum good data parameters to the fmedian, fmode, median, and mode filtering tasks. Removed the 64X64 kernel size limit in the median and mode tasks. Replaced the common blocks with structures and .h files. (6/20/95, LED) pkg/images/frmedian.hlp pkg/images/frmode.hlp pkg/images/rmedian.hlp pkg/images/rmode.hlp pkg/images/frmedian.par pkg/images/frmode.par pkg/images/rmedian.par pkg/images/rmode.par pkg/images/filters/frmedian.h pkg/images/filters/frmode.h pkg/images/filters/rmedian.h pkg/images/filters/rmode.h pkg/images/filters/t_frmedian.x pkg/images/filters/t_frmode.x pkg/images/filters/t_rmedian.x pkg/images/filters/t_rmode.x pkg/images/filters/frmedian.x pkg/images/filters/frmode.x pkg/images/filters/rmedian.x pkg/images/filters/rmode.x pkg/images/filters/med_utils.x Added new ring median and modal filtering tasks frmedian, rmedian, frmode, and rmode to the images package. (6/20/95, LED) doc/ports/notes.osf1 + Added notes file from DEC Alpha OSF/1 port. (6/21) sys/fio/fioclean.x sys/fio/stropen.x Two new internal routines str{set,get}mode were added to stropen.x. These are used to set or query the file access mode as stored for the string file, which represents these in a file-dependent way. fio_cleanup was modified to force the access mode of a string file to READ_ONLY before closing it during file cleanup, to prevent the writing of the trailing EOS when closing a string file opened for writing. The latter could cause a segmentation violation if the string buffer was no longer in a mapped region of memory, as is possible if the string file is still open (i.e. not closed normally) following task termination when fio_cleanup is called. This problem was found when testing the OSF/1 version of IRAF. (6/21, merged from OSF1 revision of 6/06) dev/termcap Added "lp" as an alias for "lpr". (6/26) dev/hosts Added solstice to the downtown servers (tucana,ursa,gemini,orion,bigx) at Ed Anderson's request (6/26 RLS) unix/hlib/mkpkg Changed "mkshlib.csh" references to "./mkshlib.csh" to make the script more robust in cases where the user has the path screwed up. (7/03) dev/tapecap Added support for device mtc|mtcc for BIGX, an HPDAT drive using the ST driver. Also generic device st-hpdat, the HPDAT on ST. (7/18) dev/hosts Added aten, volans, & musca to all servers, deleted vegemite (7/18 MJF) dev/hosts Added soleil to all downtown server at Ed Anderson's request. (7/27 MJF) sys/fmtio/strdic.x Was not ignoring leading whitespace on the string to be tested, when computing the length "len" of the string. (7/31) pkg/proto/t_wcsreset.x Added an error check to the mw_openim command so wcsreset can erase the world coordinate systems of images with wcss that it cannot read correctly. (1/8/95, Davis) pkg/xtools/inlfit/incopy.gx pkg/xtools/inlfit/incopyr.x pkg/xtools/inlfit/incopyd.x Changed 4 MEMP (Memi) references to Mem$t references. (02/8/95, Davis) dev/tapecap Modified gemini entry to change WangDat to an HP drive. (8/10) sys/fio/zzdebug.x Replaced the t_ndopen debug task by a more recent version. (8/28) lib/gio.h sys/gio/gplcache.x sys/gio/gctran.x The WCS transformation caching mechanism used in gctran was not reliable and could fail in some cases where the WCS was changed more frequently than gctran was called. To make caching of WCS related information more robust a new field GP_WCSORD was added to the GIO descriptor. This is set to a unique integer ordinal when a WCS is fixed. If the ordinal changes any routines that cache WCS information should invalidate their cache (unless they cache it on the basis of WCSORD). WCSORD will differ for WCS stored in different graphics descriptors, so testing WCSORD also does an implicit test that the GP has changed. (8/28) sys/mwcs/iwewcs.x Modified so that if an image contains a partial Lterm consisiting of an LTV but no LTM, the missing LTM will default to the identity matrix instead of the zero matrix (the latter causes a segvio if you try to invert it). An image with a zero LTM is illegal but MWCS should not die with a segvio in this case. (8/29) sys/imio/immaky.x sys/imio/mkpkg When copying an image section IMIO will call MWCS to update the Lterm of the output image. This requires that it load any existing WCS so that it can be modified and written out to the output image. IMIO was modified to put the mw_open in an iferr block, printing a warning message if the WCS cannot be loaded, rather than aborting the immap. Aborting means that all IRAF imaging tasks fails to access the image if it contains a WCS of a type not supported by IMIO. (8/29) sys/mwcs/iwgbfits.x The code which reads in multiline FITS strings (WATi_j etc.) would always read 68 characters per card. This was changed to read at most 68 characters, terminating if newline, EOS, or a single closing quote is seen in the input data. This allows the string on a line to be less than 68 characters. It also avoids a bug seen with non-blocked headers where the cards may contain less than 80 characters. (8/29) sys/mwcs/iwpstr.x The final card of a multi-card string is no longer blank filled, i.e. the closing quote will appear at the end of the string instead of in column 80. (8/30) sys/mwcs/mwsaveim.x The code which puts spaces between a sequence of attribute=value keywords in a WCS attribute list was improved to avoid an unnecessary space at the end of the list (spaces are now only used between the members of the list). (8/30) sys/imio/db/impstr.x When writing a string valued parameter the code checks for a trailing quote and tries to add one if it is missing. The closing quote is omitted if it would overwrite a data character - it isn't required when reading cards unless the string ends before column 80. (8/30) sys/mwcs/mwsave.x The DBUF offset in the save header was not being aligned to double. (8/30) ------------------------------------- V2.10.4 patch 1 generated. (8/30) doc/rev2.hlp Renamed this file to rev2.txt, it is not a help file. (9/03) unix/boot/bootlib/osfiletype.c Added ".gz" to the list of "source" file types. Also added ".fit" as an alias for ".fits". (9/03) mkpkg noao/mkpkg Added entries for linux and linuz architectures. (9/06) unix/hlib/strip.iraf noao/lib/strip.noao Replaced by updated versions, some files moved around and others have been added. (9/06) local/.cshrc Added "." and moved /usr/lang up in the hierarchy. (9/21) hlib/extern.pkg Added the helpdb for the finder package on gemini and ursa. The package is still loaded through the nlocal package. (10/12 RLS) sys/mwcs/imwcs.h CROTA was being stored internally as an integer, causing small truncation errors of non-integral rotational angles. (10/18) dev/graphcap dev/imtoolrc Added a new 8192x8192 frame buffer (imt7|imt8192). Redefined the old imt7 (imt4x1) as imt19. (11/01) pkg/images/tv/imexamine/ierimexam.x pkg/images/tv/imexamine/stfmeasure.x + pkg/images/tv/imexamine/starfocus.h + pkg/images/tv/imexamine/mkpkg pkg/images/tv/doc/imexamine.hlp lib/src/imexamine.key New FWHM estimates based on the enclosed flux and a direct measurement were added to the 'a' and 'r' keys. The weights for the Gaussian fit were modified to reduce the influence of pixels outside the half-maximum radius. The ? help and help page were revised to described the new output and algorithms. (11/09) dev/hosts Added 'inti' to all downtown servers. (11/20 MJF) pkg/images/median.par pkg/images/rmedian.par pkg/images/mode.par pkg/images/rmode.par pkg/images/fmedian.par pkg/images/frmedian.par pkg/images/fmode.par pkg/images/frmode.par pkg/images/doc/median.hlp pkg/images/doc/rmedian.hlp pkg/images/doc/mode.hlp pkg/images/doc/rmode.hlp pkg/images/doc/fmedian.hlp pkg/images/doc/frmedian.hlp pkg/images/doc/fmode.hlp pkg/images/doc/frmode.hlp pkg/images/filters/t_median.x pkg/images/filters/t_rmedian.x pkg/images/filters/t_mode.x pkg/images/filters/t_rmode.x pkg/images/filters/t_fmedian.x pkg/images/filters/t_frmedian.x pkg/images/filters/t_fmode.x pkg/images/filters/t_frmode.x Added a verbose parameter to the median, rmedian, mode, rmode, fmedian, frmedian, fmode, and frmode tasks. (11/27/95, Davis) dev/hosts Corrected path to irafks.e for cephus on all servers (11/30 MJF) unix/boot/spp/xpp/xppcode.c Modified XPP to make keyword recognition case sensitive. Keywords such as "int", "char", "procedure", etc. must be lower case to be recognized. This permits macros to use the upper case versions of these keywords. (12/05) pkg/cl/debug.c Added INDXINCR and PUSHINDEX to the debug code. (12/14) pkg/cl/builtin.c pkg/cl/compile.c pkg/cl/debug.c pkg/cl/exec.c pkg/cl/grammar.y pkg/cl/main.c pkg/cl/opcodes.c pkg/cl/opcodes.h pkg/cl/prcache.c 1. Fixed minor bugs in the CL array code which showed up on the 64bit DEC Alpha. The array code had builtin assumptions about the size of structures stored in CL memory, but on 64 bit systems the CL stack and dictionary have a 64 bit memel size, rather than 32 bit. 2. Added a new builtin "d_trace" which permits instruction and process tracing during execution. Typing d_trace without any arguments toggles this feature. An optional argument 0 or 1 may be used to disable or enable instruction tracing. A source line trace feature might have been nicer, but instruction tracing should still be of use for tracking down bugs in scripts, or otherwise revealing what is going on when the CL executes a task. (12/16) sys/fmio/zzdebug.x Added a parameter to the create datafile task to allow specification of FM_MAXPTPAGES (max page table pages), for testing large datafiles. (12/18) dev/hosts Added new solaris machine oso to all servers. (1/29/96 MJF) pkg/images/imarith/imexpr.gx Modified imexpr so that it will accept an image name that looks like a number in the first few characters, but which is really an image name. For example, "123.imh" or "../foo.imh". The previous version of imexpr was treating any string which looked like a number in the first few characters as a numeric constant. (2/8/96 LED 2/14 DCT). dev/hosts Eliminated all references to /gemini and /ursa since all machines have been updated such that /iraf is the correct path. Merged all changes from other servers to tucana so all hosts files are now identical, new machines added include ozzie, verdi, corondito and pearl.kpno. Backups of previous files will be maintained. (2/14 MJF) pkg/images/geometry/t_geotran.x pkg/images/geometry/geograph.x pkg/images/doc/geomap.hlp Corrected the definition of skew in the routines which, compute the geometric interpretation of the 6-coefficient fit, compute the coefficients from the geometric parameters, and in the relevant help pages. (2/19/96, LED) sys/fio/zzdebug.x Spiffed up the "daytime" debug/test task to permit entry of a host name, so that one can use this to find out what time it is at some site halfway around the world. (2/23) pkg/images/tv/imexamine/iejimexam.x pkg/images/tv/jimexam.par pkg/images/tv/doc/imexamine.hlp There were several errors in this which only showed up when using a world WCS. The parameter prompt and help now indicate the initial sigma value is in pixels even when fitting in world coordinates. (2/27/96, FV) pkg/images/tv/imexamine/iemw.x The inverse WCS function was incorrect and is fixed. (2/27/96, FV) pkg/dataio/doc/rfits.hlp Added a note about support for unsigned short integers to the rfits help page. (2/27/96, LED) pkg/xtools/icfit/icvshow.gx pkg/xtools/icfit/icshow.x pkg/xtools/icfit/icerrors.gx All output except the tabular part of :xyshow now begins with the comment character. (2/29, Valdes) pkg/utilities/curfit.gx Removed repeated output and added a comment character to the table header line. (2/29, Valdes) dev/hosts Changed GONG machines soi/mdi to use bin.ssun after solaris upgrades. (3/8/96 MJF) sys/fmio/fmio.h sys/fmio/fmlfopen.x sys/fmio/fmlfbwr.x sys/fmio/fmlfbrd.x sys/fmio/fmioextnd.x sys/fmio/fmclose.x 1. Changed the lfile pagemap (LF_PAGEMAP) from type short to int. This is entirely an internal array, created at lfile open time from the global pagemap, and never written out, so there should be no problem changing the datatype of the array. A type short lfile pagemap limits the maximum datafile size by limiting the max file offset to 32K datafile pages. This is not a problem for the global page table as the global table stores the lfile number in each PTE, with the offset of the PTE entry giving the associated file offset (page number). 2. Increased the default lfile pagemap size and increment on overflow. (3/11) lib/qpset.h sys/qpoe/qpoe.h sys/qpoe/qpstati.x sys/qpoe/qpseti.x sys/qpoe/qpopen.x sys/qpoe/qpmacro.x sys/qpoe/qpbind.x Added a new parameter "maxptpages" (QPOE_MAXPTPAGES) to QPOE. This is a datafile control parameter similar to "maxlfiles" or "pagesize". The pagesize and matptpages together determine the maximum datafile size. In the past we have had to increase the pagesize to accomodate very large datafiles, but beyond a certain point it is better to increase the maximum page table size (maxptpages). Since QPOE files can be very large it is necessary to allow control of this parameter from within QPOE. (3/11) dev/hosts Added Doug Geisler's machine kukita to all servers. (3/11/96 MJF) sys/fmtio/dtoc.x Added some rounding to avoid printing numbers such as 12:29:60.0 when formatting sexagesimal (HMS or MS) numbers. (3/12) sys/mwcs/iwewcs.x Modified the code which computes the CD matrix from CDELT/CROTA. The old code computed the diagonal (scale) terms correctly but the rotation terms were evidently incorrect. The old code was based on the 1988 Hanisch and Wells WCS paper and the new code is based on a more recent paper by Mark Calabretta et. al. which supercedes the 1988 representation. The affect of this change should be limited as it only affects rotated images for which CDELT is given but no CD matrix is defined. (3/13) pkg/images/tv/src/iecolon.x pkg/images/tv/src/starfocus.h pkg/images/tv/src/stfmeasure.x pkg/images/tv/src/ierimexam.x pkg/images/tv/rimexam.par pkg/images/doc/imexamine.hlp lib/scr/imexamine.key The radial profile fitting and width measurements now have an option to use a Gaussian or Moffat profile model. The model is selected by a new "fittype" parameter. A new "beta" parameter may be specified as INDEF to be determined from the fit or have a fixed value. The Moffat profile model does better in producing consistent FWHM values so this is the default. (3/16, Valdes) math/gsurfit/gsrestore.gx math/gsurfit/gsrestorer.x math/gsurfit/gsrestored.x Changed the type declaration of the xmin, xmax, ymin, ymax variables from real to PIXEL to avoid machine precision problems. (3/21 Davis) pkg/cl/builtin.c Modified the clprintf code to support INDEF operands. (3/23) pkg/images/tv/imedit/epsearch.x pkg/images/tv/imedit/epgcur.x 1. The search algorithm produced incorrect results if part of the aperture was off the edge (negative image coordinates). 2. The rounding was incorrect when part of the aperture was off the edge (negative image coordinates). 3. A floating operand error occurs when a key is given without coordinates. (3/26, Valdes) pkg/plot/t_implot.x When the vector being plotted was constant the 'l' and 'c' keys selecting lines/columns from the right plot axis did not work. The code was fixed for this case. (3/27, Valdes) pkg/images/geometry/xregister/rgxfit.x Changed several Memr[] references to Memi[] in the rg_fit routine. This type conversion bug was causing a floating point error in the xregister task on the Dec Alpha machines if the coords file was defined, and could potentially cause problems on other machines. (Davis, April 3, 1996) unix/os/gmttolst.c unix/boot/bootlib/ostime.c Removed the type long variables gmtl, lstl and modified all calls to localtime() so that the argument is of type time_t. This is standard for all modern systems. Some older systems still require that the argument be type long, but as this is nonstandard it should be ifdef-ed in the source for these older systems. (4/04 1996) unix/hlib/libc/libc.h The macros Memcptr and Memiptr included a "+ 1" which shouldn't have been there. The one indexing correction was already being done in the Memc/Memi macros and Memcptr/Memiptr take a zero indexed C pointer as input. This was causing a bug in LIBC version of realloc, which is not used anywhere in the IRAF system code. (4/05) pkg/images/tv/imexamine/ierimexam.x pkg/images/tv/imexamine/stfmeasure.x Fixed incorrect datatype declaration "real np" -> "int np" in various related places. (4/9/96, Valdes) unix/os/zmain.c Added a #ifdef SYSV conditional to change the calling sequence for setpgrp() for SYSV and BSD systems. (4/24) sys/imio/iki/plf/plfopen.x Fixed an imerr() call which had the wrong argument type. (5/06) sys/libc/realloc.c Modified to work when called with a null pointer. (5/06) sys/gio/stdgraph/stgdrawch.x The text drawing routines were not controlling the polyline width when drawing characters in software mode using polylines. There is no line width attribute for graphics text and we probably don't want one, so the code was modified to force the line width to 1 when drawing software characters. (5/10) unix/boot/bootlib/osgetenv.c The envinit code calls _os_getenv to fetch the value of "pkglibs". This code assumes that _os_getenv returns the string argument, but nothing was being returned if the named environment variable was not found. Changed it to return a NULL-terminated empty string in this case. (5/10) sys/etc/mkpkg sys/etc/onentry.x sys/etc/main.x unix/os/zmain.c 1. The IRAF main (irafmn) was changed to an integer function and modified to return an exit status. If a task aborts and the main exits without running any more tasks (as when executing a task at the host level where only a single task is run) then the error status of the task is returned. In normal use as a connected process this condition never occurs and the main always returns XOK as the status. 2. Several calls to sys_panic in various etc$ routines were modified to ensure that a zero error code is not returned. sys_panic returns the error code as the exit status of the process. 3. The process main (zmain.c) was modified to call IRAF_MAIN as an integer function and to return its exit status. 4. The call to exit() in zmain.c was changed to _exit(). (5/11) pkg/plot/t_graph.x pkg/plot/graph.par pkg/plot/doc/graph.hlp Added parameters "ltypes" and "colors" to specify a list of line types and colors when doing multiple data sets. (5/13, Valdes) ---------------------------------------- V2.10.4 patch 2 release. (5/22 1996) unix/boot/bootlib/envinit.c Fixed a typo in some code that went "printf (stderr, ...)" (should be fprintf), also changed following fflush to flush stderr. (5/27) unix/boot/bootlib/vfn2osfn.c Deleted some unneeded semicolons from some stub routines, e.g. in "KI_SEND(){};" the ; should not be there. (5/27) unix/boot/generic/mkpkg.sh unix/boot/mkpkg/mkpkg.sh unix/boot/rmbin/mkpkg.sh unix/boot/rmfiles/mkpkg.sh unix/boot/rtar/mkpkg.sh unix/boot/wtar/mkpkg.sh unix/boot/spp/mkpkg.sh unix/boot/spp/mkxc.sh unix/boot/rpp/mkpkg.sh unix/boot/xpp/mkpkg.sh unix/boot/xyacc/mkpkg.sh Replaced HSI_CF by HSI_LF in the link line (5/28) unix/hlib/irafuser.csh Added a dummy definition of HSI_LF (not used in SunOS/IRAF but is needed on other platforms). (5/28) unix/boot/rmfiles/mkpkg.sh Added a (char *) declaration for vfn2osfn(). (5/28) pkg/cl/grammar.h pkg/cl/globals.c Added global definitions for parse_state, proc_script, and parse_pfile to globals.c and modified grammar.h to define these as extern (found with the IRIX 5.3 port). (6/03) pkg/obsolete/<imcombine> - The old (V2.9) IMCOMBINE task was removed. (6/14 FV) pkg/obsolete/t_fixpix.x + pkg/obsolete/fixcol.gx + pkg/obsolete/t_fixline.gx + pkg/obsolete/ofixpix.par + pkg/obsolete/doc/ofixpix.hlp + pkg/obsolete/mkpkg pkg/obsolete/x_obsolete.x pkg/obsolete/obsolete.cl pkg/obsolete/obsolete.hd pkg/obsolete/obsolete.men Moved the V2.10.4 version of PROTO.FIXPIX to OBSOLETE and renamed it to OFIXPIX. (6/14 FV) pkg/proto/generic/ + pkg/proto/imfunc.x -> generic/ pkg/proto/imrep.x -> generic/ Added a generic directory for generic files. The generic procedures imfunc.x and imrep.x are now in this directory. (6/14 FV) pkg/proto/t_fixpix.x pkg/proto/fpfixpix.gx pkg/proto/fixpix.par pkg/proto/text2mask.par + pkg/proto/t_text2mask.x + pkg/proto/t_mask2text.x + pkg/proto/doc/fixpix.hlp pkg/proto/doc/text2mask.hlp + pkg/proto/mkpkg pkg/proto/x_proto.x pkg/proto/proto.cl pkg/proto/proto.hd pkg/proto/proto.men Replaced the old version of FIXPIX by a new version that works with mask images. Two new tasks were also added, TEXT2MASK and MASK2TEXT, that convert from the old text file description to mask images and back. The MASK2TEXT task is hidden to discourage continued use of the text file description. (6/14 FV) unix/boot/spp/xc.c Fixed a couple bugs in the PKGENV processing code. (7/05) doc/ports/notes.irix + Installed the notes file from the IRIX 5.3 port. (7/07) unix/os/irafpath.c Added entries for Solaris, Linux, FreeBSD. (7/17) unix/os/zfaloc.c unix/os/zfiobf.c Changed type of lseek() to off_f. (7/17) unix/boot/spp/xpp/xppcode.c Changed warn() to a static function. (7/17) mkpkg noao/mkpkg Added an entry for the "freebsd" architecture. (7/17) pkg/images/filters/median.x The routine mde_yefilter was being called with too many arguments. (7/18 LED) pkg/xtools/inlfit/ingresults.gx Changed several INDEFR references to INDEF references so that INDEF as the correct data type (real or double) in the output .x files. (7/18 LED) sys/gio/fpequald.x sys/gio/fpequalr.x Backed off the tolerance slightly, from 10*EPSILON to 32*EPSILON. (7/25) sys/imfort/bfio.x In zfaloc, the first arg to strpak was changed from fname (a Fortran character variable which was incorrect) to sppname. (7/17(26)) pkg/images/imarith/icsort.gx There was an error in the ic_2sort routine when there are exactly three images that one of the explicit cases did not properly keep the image identifications. See buglog 344. (8/1 FV) dev/hosts Revised the list of Kitt Peak hosts. (8/7 RLS) pkg/proto/fields.par pkg/proto/doc/fields.hlp Changed the default lines in FIELDS to an open upper limit. (8/22 FV) pkg/images/tv/imexamine/stfmeasure.x Fixed bug in evaluation of enclosed flux profile in which the scaled radius was used for the gaussian subtraction stage instead of pixels. This does not currently affect IMEXAM because the scale is fixed at 1. (8/29, FV) unix/os/zfnbrk.c Modified this routine to ignore file or directory characters other than those it considers to be file or directory name delimiters. On platforms that permit it, the effect is to permit characters (such as + and -) in filenames other than simple identifier characters. There is no expectation at this point however that all IRAF code will permit this. (9/03) dev/hosts Updated the hosts file on all Tucson servers for rainbow, Jim Deveny's new Sun. (9/10/96 jb) pkg/system/phelp.cl Modified to copy the "template" argument into a local variable since it is referenced twice in the script. (10/10) sys/fio/fioclean.x The file descriptor was being accessed after the file had been closed. (10/11) unix/os/zfiond.c Added a ":<flag>" field to the ND network driver. The only protocol flags currently supported are "text" and "binary". If "text" is specified then the datastream is assumed to consist of byte packed ascii text, and the driver will automatically convert to and from SPP chars during i/o. (10/29) sys/fio/zzdebug.x Added a new debug task "http". Given a hostname and a HTTPD-root relative file path the task will connect to the HTTP server on the given host and fetch the file at the given path. The output consists of the HTTP/1.0 protocol header followed by a blank line and the contents of the requested file. (10/29) pkg/images/tv/wcslab/t_wcslab.x pkg/images/tv/doc/wcslab.hlp Added an "overplot" option to append to a plot but with a different viewport. (11/06/96 Valdes) pkg/images/imarith/t_imcombine.x pkg/images/imarith/icombine.gx Changed the error checking to catch additional errors relating to too many files. (11/12/96, Valdes) dev/hosts Added driftwood to all downtown servers. (11/18/96 MJF) dev/hosts Updated block of KPNO hosts on solaris tree on Gemini. This was up to date on development system. (11/19/96 RLS) sys/fmtio/sscan.x sys/fmtio/fscan.x sys/fmtio/clscan.x sys/fmtio/scan.com Modified scan.com to dimension scanbuf locally as SZ_SCANBUF instead of SZ_COMMAND, in the process increasing the size from 1024 to 4096. Modified sscan to check for overflow of the scan buffer. (11/19) sys/ki/ki.h Increased maximum network hosts in the in-core host table from 128 to 256. (11/21) pkg/images/tv/imedit/epgsfit.x pkg/images/tv/imedit/epcolon.x pkg/images/tv/doc/imedit.hlp pkg/images/tv/imedit/imedit.par Added a median background if the xorder or yorder is zero. (11/22/96 Valdes) dev/hosts Cleaned up the hosts table: Deleted adonis aldebaran auriga columba crater irafdemo libra noctua octans omega serpens suntest verdi vela Fixed path names for mytoy and scorpius (11/21/96 MJF) pkg/images/imarith/icsetout.x pkg/images/doc/imcombine.hlp A new option for computing offsets from the image WCS has been added. (11/30/96 Valdes) pkg/images/tv/display/sigm2.x + Added a version of the spatial interpolation routines that allows masks to interpolate the input across bad pixels. (12/5/96, Valdes) pkg/images/tv/display/t_display.x 1. Fixed numerous problems with the coordinate system. 2. Fixed a bug in how ztrans=log was done. (12/5/96, Valdes) pkg/images/tv/display/iishdr.x pkg/images/tv/display/iisers.x Replaces SPP int -> short assignments by calls to achtiu because of overflow problems with some VMS fortran compilers. (12/6/96, Valdes as reported by Zarate) pkg/images/tv/display/imdmapfr.x pkg/images/tv/display/imdputwcs.x + Added two routines to hide knowledge of the channel structure and other details from the calling routines. (12/11/96, Valdes) dev/hosts Changed hohokam to ssun, updated all servers w/ master copy from tucana to remove hosts and fix /gemini path names. (1/7/97 MJF) dev/hosts Changed the following SWN machines to bin.ssun: aquarius aten bokchoy carina (new) hedgehog herbie inti mdi potosi soi soleil Updated all servers. (1/15/97 MJF) pkg/xtools/dttext.x Added the routine dtgetd to the text database package. (1/16/97 LED) dev/hosts Changed norma to a solaris box. (1/24/97 MJF) unix/boot/bootlib/osfiletype.c Added several entries for files considered to be "source" files. These include .pl, .gif, .jpeg, and .tiff (.fits is already present). There are cases where it may make sense to include these files in the machine indendent source tree, e.g. for small test data files or for online help. (1/11) 1997 dev/hosts Added George's linux box aloe to all servers. (2/13/97 MJF) unix/boot/spp/xpp/decl.c unix/boot/spp/xpp/xppcode.c The recent change of warn() to static in xppcode.c caused a problem as warn is also used in decl.c. Changed warn() back to an external function but changed the name to xpp_warn to avoid whatever the platform-specific problem was that resulted in the original fix (probably warn was an internal function in some platform system library). (3/03) sys/mwcs/wfmspec.x On line 327, changed din=log10(in[1]) to din=log10(din). (3/04) -------------------------------- Did a diff/merge of recent tucana HSI changes into the Solaris/IRAF HSI. Replaced the "unix" directory on tucana SunOS/IRAF by the version from Solaris/IRAF. This HSI is supposed to work for both SunOS and Solaris (SunOS compatibility was preserved but never tested during the Solaris/IRAF port). Did a bootstrap and sysgen under both SunOS and Solaris. Mounted tucana iraf.develop as iraf.develop on Data. tucana iraf (irafx) is now solaris/iraf as well as sunos/iraf, they are the same thing. One benefit of this is that irafx is now available on solaris systems in the building (although we do have to update the ssun binaries periodically or it does no one any good). A complication is that since we have to update the ssun binaries, it is now more likely that the architecture may be set to something other than sparc. (3/19 1997) local/.cshrc local/.login Modified to work for both SunOS and Solaris. (3/19) unix/as.sparc/enbint.s This file from Solaris/IRAF isn't used by SunOS/IRAF, but it is probably better to provide it in the library than to add conditionals to the build files in OS. (3/19) unix/boot/bootlib/osfiletype.c unix/boot/bootlib/vfn2osfn.c unix/boot/spp/xpp/decl.c unix/boot/spp/xpp/xppcode.c unix/hlib/libc/kernel.h unix/os/irafpath.c unix/os/zfaloc.c unix/os/zfiobf.c unix/os/zfiomt.c unix/os/zfiond.c unix/os/zlocpr.c unix/os/zzstrt.c Assorted minor changes to make these files work for both SunOS and Solaris. (3/19) unix/shlib/medit.c unix/shlib/mkpkg unix/shlib/mkpkg.sh unix/shlib/mkshlib.sos4 unix/shlib/mkshlib.ssol unix/shlib/mkshlib.ssol-sc34 Various file modifications and file name changes to make shlib build for both SunOS and Solaris. (3/19) pkg/math/curfit/cvacpts.gx pkg/math/curfit/cvacptsr.x pkg/math/curfit/cvacptsd.x pkg/math/curfit/doc/cvpower.hlp pkg/math/curfit/cvpower.gx pkg/math/curfit/cvpowerr.x pkg/math/curfit/cvpowerd.x The weights computed by the WTS_CHISQ option in the routines cvacpts[rd] were not being forced to be positive as intended. (3/20) There was an inconsistency in the way the ncoeff argument to the cvpower[rd] routines was being used internally. Ncoeff was intended to be an output argument but was being used as an input argument by one of the routines called by cvpower. (3/20) sys/mtio/mtgtyopen.x MTIO was modified to add support for server-specific tapecap files. When opening the tapecap file MTIO will now look for "tapecap.<node>" followed by the default "tapecap". <node> should be the hostname (as used by IRAF networking) of the server hosting the tape drives described by the tapecap file. For example if host "gemini" serves up some tape drives it's tapecap file is named "tapecap.gemini". If a server-specific tapecap file is not found the default "tapecap" (on the possibly remote server node) is used. This feature allows a single IRAF installation to be shared by multiple servers. (3/21) dev/README dev/tapecap.sunos + dev/tapecap.solaris + Since the Sun/IRAF DEV is now shared by both SunOS and Solaris it now contains the template tapecap files for both systems. The README in DEV contains some pointers on configuring tapecap and other device files. (3/21) pkg/images/tv/display.par pkg/images/tv/display/t_display.x pkg/images/tv/display/zscale.x pkg/images/tv/display/sigm2.x + pkg/images/tv/display/maskcolor.x + pkg/images/tv/display/dspmmap.x + pkg/images/tv/display/display.h pkg/images/tv/display/gwindow.h pkg/images/tv/display/mkpkg pkg/images/tv/doc/display.hlp 1. Improved the structure of DISPLAY. 2. Fixed coordinate system errors. 3. Added parameters to display bad pixel masks and overlay masks. 4. The z scaling sampling may use a pixel mask or image section. 5. The z scaling excludes bad pixels. (3/20, Valdes) -------------------------------- The following series of revisions were made to increase the size of various system buffers. This included a full system reboot and recompile. (3/24) lib/fio.h sys/fio/vfnmap.x sys/fio/vfntrans.x Various buffer sizes affecting filename mapping were increased. SZ_VFNFN (max length of the root field of a VFN) went from 32 -> 127. SZ_OSDIR (max length of the osdir field of a VFN) from 79 -> 255. SZ_FFNAME, an internal filename buffer, went from 127 -> 255. In an unrelated change SZ_SPOOLBUF, the intial size of a spool buffer, was increased from 1024 to 4096. (3/23) unix/hlib/config.h 1. MAX_ROOTLEN was increased from 32 to 128. This is supposed to be the limit the host system places on the root portion of a filename (that is, only the root name, not the pathname). Anything in the range 128-256 is typical for unix systems today. 2. The maximum number of open VOS files was increased from 128 -> 256. (3/23) sys/fio/fntgfn.x SZ_PATTERN, SZ_TEMPLATE, SZ_LDIR, SZ_PATSTR were all increased, although so far as I know there has never been a case of pattern buffers overflowing. The new limit for a pattern string is about 1024. (3/23) unix/hlib/iraf.h SZ_FNAME went from 63 -> 255. SZ_PATHNAME went from 127 -> 511. SZ_LINE went from 161 -> 1023. SZ_COMMAND went from 1024 -> 2047. (3/23) unix/hlib/iraf.h unix/hlib/mach.h MAX_EXPONENTD went from 38 (same as real) to 308, the value for IEEE double. MAX_DOUBLE increased from 0.99d37 to 0.99d307. INDEFD was changed from 1.6d38 to 1.6d308 for IEEE systems. (3/23) unix/hlib/libc/libc.h unix/hlib/libc/spp.h FIO_MAXFD, INDEFD, SZ_LINE, SZ_FNAME, SZ_PATHNAME, SZ_COMMAND were updated to agree with the SPP values. (3/23) sys/imio/iki/stf/stfrdhdr.x Unrelated STF bug fix. stfrdhdr.x was modified to handle the case where datamin/datamax were not defined in the GPB, but were defined in the main image header. (3/24) unix/boot/spp/xpp/xppmain.c Removed a redundant SZ_PATHNAME. (3/24) unix/shlib/mkpkg unix/shlib/mkshlib.sos4 Changed the address of the shared library from 0xa000000 to 0x10000000. This increases the maximum available per-process dynamic memory from 167 MB to 268 MB (much more is possible if the process is statically linked). (3/24) unix/os/zzstrt.c Changed some address-related ints to unsigned just to be safe. (3/24) sys/etc/pagefiles.x Increased SZ_LONGLINE from 1024 to 4096. At 1024 it was the same as the new SZ_LINE, causing a loop test to fail. (3/25) pkg/images/tv/rimexam.par pkg/images/tv/doc/rimexam.par Changed the zero point of the magnitude scale from 30.0 to 25.0 for the sake of consistency with other photometry tasks. (3/31, LED) pkg/images/tv/imexamine/ierimexam.x The log output for 'a' or 'r' has one line per measurement as in previous versions. The standard output, however, uses two lines to print nicely on 80 column windows. (3/31, FV) pkg/dataio/mkpkg pkg/dataio/dataio.cl pkg/dataio/dataio.hd pkg/dataio/dataio.men pkg/dataio/x_dataio.x pkg/dataio/import/ + pkg/dataio/import.par + pkg/dataio/export/ + pkg/dataio/export.par + pkg/dataio/doc/import.hlp + pkg/dataio/doc/export.hlp + Installed the IMPORT/EXPORT task for general use. The images database used by the IMPORT task is currently defined to be stored in dataio$import/images.dat. (3/31/97 MJF) pkg/proto/proto.cl pkg/proto/proto.men pkg/proto/proto.hd pkg/proto/x_proto.x pkg/proto/mkpkg The tasks imalign, imcentroid, imfunction, imreplace, wcsedit, and wcsreset have been deleted from the proto package and moved to the reorganized images package. (3/31/97 LED) lib/imhdr.h lib/imio.h The sizes of the pixel file, header file, title and imhistory strings were increased. Defines were added for the image header file and pixel file "magic' strings. A couple fields were added relating to byte swapping. IM_SWAPPED, in the image header, tells whether the pixels in the disk image are byte swapped. (3/31) sys/imio/iki/oif/imhv1.h sys/imio/iki/oif/imhv2.h sys/imio/iki/oif/mkpkg sys/imio/iki/oif/oif.h sys/imio/iki/oif/oifmkpfn.x sys/imio/iki/oif/oifopen.x sys/imio/iki/oif/oifopix.x sys/imio/iki/oif/oifrdhdr.x + sys/imio/iki/oif/oifupdhdr.x sys/imio/iki/oif/oifwrhdr.x + sys/imio/iki/oif/oifwphdr.x - It was necessary to change the OIF kernel to increase the maximum path length for header and pixel files. This made it necessary to change the disk image format, since the old format only allowed 80 characters for the pixel file pathname. In the process reading and writing the disk header was separated out from the in-memory header. Support for two versions of the image and pixel file headers were added. The "magic" string in the image or pixel file header identifies the version. Old (version 1) image headers have "imhdr" at the head of the file, with the string in SPP chars. The new (version 2) headers have "imhv2" as the magic string. V2 headers are byte packed and machine independent. The path limit is 255. (3/31) sys/imio/immaky.x sys/imio/imrdpx.x sys/imio/imwrpx.x 1. Support was added for byte swapping pixels. With the machine independent V2 image header, this allows .imh images to be read on any node (integer) or any IEEE-compatible node (floating). The pixels are written in the native swap order of the creating host, but the order is recorded in the IM_SWAPPED field of the image header, and IMIO uses this to determine whether or not the pixels need to be byte swapped during i/o. 2. Minor changes to trim junk data after EOS delimited strings. Since the V2 headers are byte packed the string data in these headers can be viewed with Unix tools such as "less" and "strings". (3/31) Some pointers: "strings foo.imh" (or other tools like less) can be used at the Unix level to look at V2 image headers. New images are always written with host-native binary format pixels, so there is no byte swapping involved for images read and written on the same host. Images can any other (IEEE) host can be read or written but there may be some slight overhead for byteswapping. If the image is rewritten however using imcopy, the bytes will be swapped to the native ordering of the new host. pkg/images/imutil/src/imheader.x The only change so far was to eliminate some histogram dependence, since this unused feature was removed from the standard IMIO in-memory image header. (3/31) dev/pix.imh dev/pix.pix dev/wpix.imh Regenerated using the V2 image format. (3/31) lib/imio.h sys/imio/immapz.x sys/imio/immaky.x unix/hlib/zzsetenv.def unix/hlib/login.cl Increased the default size of the user area (min_lenuserarea) to 64000 (about 800 80 char cards). There was some ambiguity about units for min_lenuserarea; it should be consistently chars now. Also increased the "padding" added to the header when creating a new copy of an existing image which has a large header. (4/01) sys/imio/immaky.x When the header of an old image is copied during an open-new-copy, IMIO now recomputes the length of the user area of the input header. Formerly if the header had grown since the image was opened, the added data could be lost in a subsquent new-copy operation. (4/01) sys/etc/oscmd.x Changed an fclobber(outfile) to fclobber(errfile). (4/02) sys/imfort/bfio.x The little Fortran-callable file i/o package BFIO used in IMFORT was enhanced to support writing and reading of fractional file blocks so that files can be any size. The default random and sequential buffer sizes were increased. In addition to the old random access i/o routines bfread/bfwrite there are now sequential i/o routines bfseek/bfrseq/bfwseq. (4/02) sys/imfort/mkpkg sys/imfort/imfort.h sys/imfort/imhv1.h + sys/imfort/imhv2.h + sys/imfort/oif.h sys/imfort/imcrex.x sys/imfort/imfgpfn.x sys/imfort/imfupdhdr.x sys/imfort/imgl1r.x sys/imfort/imgl1s.x sys/imfort/imgl2r.x sys/imfort/imgl2s.x sys/imfort/imgl3r.x sys/imfort/imgl3s.x sys/imfort/imgs1r.x sys/imfort/imgs1s.x sys/imfort/imgs2r.x sys/imfort/imgs2s.x sys/imfort/imgs3r.x sys/imfort/imgs3s.x sys/imfort/imopnx.x sys/imfort/impl1r.x sys/imfort/impl1s.x sys/imfort/impl2r.x sys/imfort/impl2s.x sys/imfort/impl3r.x sys/imfort/impl3s.x sys/imfort/imps1r.x sys/imfort/imps1s.x sys/imfort/imps2r.x sys/imfort/imps2s.x sys/imfort/imps3r.x sys/imfort/imps3s.x sys/imfort/imrdhdr.x + sys/imfort/imswap.x + sys/imfort/imwpix.x + sys/imfort/imwrhdr.x + 1. IMFORT was brought up to date with IMIO to read and write the new version 2 ".imh" images. As with IMIO, the old V1 format is still supported but new images are written using the new machine independent V2 format. 2. Image headers can now be any size (the old IMFORT had a very strict limit on the image header size). Since BFIO now writes partial blocks, headers are no longer blocked out to 32768 bytes. 3. "min_lenuserarea" is now supported as for IMIO (since IMFORT is host level it must be defined in the host environment). The builtin default header buffer is 64000 chars, which is about 800 card images. (4/02) sys/imfort/mii.x + A version of the MII routines mii{read,write}[silrc] modified to use BFIO was added to IMFORT. These are used to read and write the machine independent headers. (4/02) dev/hosts Aliased 'kf' for kingfisher at Al Fowler's request (4/3 MJF) lib/qpioset.h lib/syserrmsg sys/qpoe/qpio.h sys/qpoe/qpoe.h sys/qpoe/qpiogetev.x sys/qpoe/qpiogetfil.x sys/qpoe/qpiomkidx.x sys/qpoe/qpioopen.x sys/qpoe/qpioparse.x sys/qpoe/qpiorpix.gx sys/qpoe/qpioseti.x sys/qpoe/qpiostati.x sys/qpoe/qpiosync.x QPOE was modified to allow event coordinate (X,Y) key fields to be of type int as well as short. All event handling code will now accept either type. Keys may be specified using "i" as the field type as well as "s", e.g. "key=(i10,s14)". X and Y do not have to be the same type. There should be no significant CPU runtime penalty, although obviously events with integer coordinate fields will mean larger event files (file i/o times will be affected accordingly). (4/03) lib/qpioset.h lib/qpset.h sys/qpoe/QPOE.hlp sys/qpoe/README sys/qpoe/qpcopyf.x sys/qpoe/qpio.h sys/qpoe/qpiogetfil.x sys/qpoe/qpiolwcs.x sys/qpoe/qpioopen.x sys/qpoe/qpioparse.x sys/qpoe/qpioseti.x sys/qpoe/qpiostati.x sys/qpoe/qpmacro.x sys/qpoe/qpoe.h sys/qpoe/qpopen.x sys/qpoe/qpqueryf.x sys/qpoe/qpseti.x sys/qpoe/qpstati.x sys/qpoe/zzdebug.x Added support for separate X and Y blocking factors. The "block" parameter is still recognized as before and will set both the X and Y blocking factors, or "xblock" and "yblock" can be used to set only one or the other. All occurrences have been updated, including expressions, the QPDEFS environment, and qp_set qpio_set. (4/04) sys/qpoe/qpiorpix.gx [INTERFACE CHANGE] The calling sequence for qpio_readpix was modified to replace the "block" argument by the two arguments xblock and yblock. A scan indicates that none of the layered packages we have installed at NOAO (including xray) currently uses this routine. (4/04) sys/plio/plrio.x The plrio package provides an efficient lookup-table-based means of randomly sampling 2D pixel masks. The code which recursively divides a region into 4 quadrants could fail if the region being subdivided was 1 pixel wide in either axis. If this happens 2 of the "quadrants" will be valid and 2 will be degenerate. Added a test to detect and discard these degenerate subregions. (4/04) sys/plio/plsectne.x sys/plio/plsectnc.x Both of these routines had a bug that could prevent them from examining the full region requested (the routines check for section not empty and section not constant). Line lists are segmented in segments of at most I_DATAMAX (4095) pixels. If the mask is large and has large regions of constant value, the list will consist of successive segments all at the same value. The routines were only checking the first such segment. The corrected code reads successive segments until all the pixels in the region have been examined. (4/04) sys/plio/zzdebug.x Fixed a couple of bugs and added several new routines to test the above fixes. SECNE and SECNC test pl_sectnotempty and pl_sectnotconst. RIO tests plrio random mask access. INVERT inverts a mask. (4/04) sys/imio/implhdr.x These routines, which copy an image header to and from an encoded title string in a PLIO save file, were modified to save the ctime, mtime, limtime, minpixval, and maxpixval static fields of the image header in addition to the title string. (4/04) sys/qpoe/qpexeval.x The value of "pass" was not being initialized before starting subprogram execution when evaluating a complex LUT bin. Added the initialization and also some comments giving an overview of how the evaluation is performed (since it took me several hours to figure this out again). (4/04) sys/imio/iki/qpf/qpfcopypar.x sys/imio/iki/qpf/zfioqp.x sys/imio/iki/qpf/qpfopen.x sys/imio/iki/qpf/qpf.h Modified to support separate x and y blocking factors. (4/05) sys/plio/plupdate.x This routine contains code which collapses successive mask lines in Y to a single encoded mask line if the mask lines are equal, thereby compressing the encoded mask in Y. The encoded mask lines are encoded in short integer arrays and a multiply referenced line has a reference count which is stored in a short integer field. The code was modified to stop when this counter reaches MAX_SHORT, adding a new line to the encoded mask and starting over. Combined with the X segmentation of lines into blocks of at most 4095 pixels, this should allow masks to be nearly any size despite the use of short integers for the encoding. (4/05) sys/qpoe/qpiolwcs.x Modified the LTV_2 term of the logical transformation to set the fractional pixel zero point resulting from blocking the input data. If for example 2 input pixels map to 1 on output, the range of the output pixel (e.g. 0.5 to 1.5) maps to the range covered by the two input pixels (e.g. 0.5 to 2.5), and the center of the output pixel (e.g. x = 1.0) maps to the center of the range spanned by the input pixels (e.g. 1.5). For 3 to 1, 1.0 maps back to 2.0 in the input, for 4 to 1, 1.0 maps back to 2.5, and so on as (block+1)/2. (4/05) sys/ki/kfmkcp.x sys/ki/kfrnam.x These routines use a locally dimensioned buffer which was causing filenames to be truncated at 128 characters. Increased the file length limit to 256. If both files are remote the sum of the two file lengths cannot exceed 256. (4/06) unix/boot/spp/xc.c The XC compiler was modified to improve support for multi-language and host software development. These changes should be transparent and should not affect conventional IRAF softwrae development. 1. Various buffer sizes were increased. 2. The environment variables XC-CC, XC-F77, XC-LINKER can now be specified to override the builtin default program name strings. 3. New command line flags: -D<str> Pass -D<str> to the host compiler (does a #define). -I<dir> Pass -I<dir> to the host compiler; for includes. The directory name can be an IRAF VFN. -Inolibc Disables -Ihlib$libc, which is the default. Use if you want to use the host rather than LIBC <stdio.h>. -L<dir> Can be used to specify a directory to be searched for library files. -H This is used like -h to link a host program, but unlike -h it causes the main IRAF libraries to be searched. -V Print the XC version number. 4. XC now reads the "pkglibs" environment variable after processing all package includes, and converts this into a list of -I<dir> flags which are passed to the host compilers. This allows host include files to be placed in package libraries. As noted above, hlib$libc is automatically included unless the -Inolibc switch is specified. Note that -/foo can still be used to pass "-foo" to the host compiler. (4/07) unix/boot/bootlib/envinit.c "loadpkgenv" is called by HSI programs like XC and MKPKG when a package environment is loaded (-p pkname). loadpkgenv was modified to allow it to be called as loadpkgenv(NULL) or loadpkgenv("iraf"). This mode causes the package environment for the core IRAF system to be loaded. This was done formerly as well, but only if a -p switch was given causing loadpkgenv to be called (in other words the core IRAF package environment was not being fully loaded consistently). (4/07) unix/hlib/zzsetenv.def Added a line "set pkglibs = hlib$libc/" to zzsetenv.def. This defines hlib$libc as a default library directory to be searched (for C header files) when compiling. (4/07) unix/hlib/libc/libc.h unix/hlib/libc/setjmp.h unix/hlib/libc/spp.h unix/hlib/libc/stdio.h unix/hlib/libc/varargs.h unix/hlib/mkpkg.sf.SSUN Various changes to better support host or host-like compilation. 1. libc.h will now include <spp.h> if it is not already included. This is disabled in an old style compilation using import_spp. libc.h is #ifdefed to not load if it has already been loaded. 2. setjmp.h autoloads <libc.h> and <knames.h> if not referenced in import defines. 3. spp.h if #ifdefed to not load if already loaded. Various definitions were #ifdefed to be skipped if already defined, e.g. stuff like min and max. A define for abs was added. 4. stdio.h will automatically load <libc.h> (if not imported etc.). Since libc.h autoloads spp.h this means that C files which include <stdio.h> from LIBC will automatically load spp.h and libc.h; these contain the main LIBC definitions and often used IRAF defines such as OK, ERR, INDEF, NEW_FILE, SZ_FNAME, etc. etc. A standard Unix C source file which includes <stdio.h>, if compiled with XC or with -I$hlib/libc will automatically be compiled using LIBC and will be usable in an IRAF program. 5. varargs.h now includes /usr/include/varargs.h explicitly instead of <varargs.h>, which causes an infinite preprocessor include loop. On SunOS systems this causes a compiler warning message so the contents of the SunOS varargs.h are included instead. For Solaris mkpkg.sf.SSUN is used to employ a flag -erroff=XXX to disable the warning. (4/07) unix/hlib/mkpkg.inc Added -DSUNOS to the XFLAGS for sparc, -DSYSV -DSOLARIS for Solaris. (4/07) --------------------------------- V2.11 beta-1 released. (4/08) pkg/images/tv/imexamine/iejimexam.x pkg/images/tv/imexamine/iecolon.x pkg/images/tv/kimexam.par + pkg/images/tv/doc/imexamine.hlp pkg/images/tv/tv.cl Added a pset for the 'k' key rather than sharing with the 'j' key. This was confusing to users since it was the only key without it's own pset. Also there may be some reason to have the fitting parameters be different along lines and columns. (4/11, FV) pkg/images/imcoords/doc/cctran.hlp Fixed a bug in the cctran help page. (4/15, LED) pkg/images/tv/tvmark/mkmark.x Made sure that the object label was initialized to "" in the call to the mk_onemark procedure inside the a keystroke command. The lack of initialization was causing tvmark to fail with a segmentation violation when the coordinates file did not exist at task startup time, and the label parameter was set to "yes". (4/17, LED) unix/hlib/libc/spp.h Deleted the definition of abs(), which conflicts with the stdlib definition. (4/22) unix/boot/spp/xc.c There was a problem with the -h flag: due to the recent changes it was referencing the VOS libraries (and linking shared by default). This would cause IMFORT programs to fail to link. (4/23) pkg/images/imutil/src/imcopy.x Changed the imcopy task so that it ignores the output image section if the input and output root names are the same, making its behavior consistent with other images package tasks which can overwrite the input image. (4/24/97, Davis) pkg/images/imgeom/rotate.cl The nlines parameter was called nrows by mistake in the rotate script calling sequence. This did not affect the execution of the task but has been fixed anyway. (4/26/97, Davis) sys/ki/kfrnam.x sys/ki/kfmkcp.x Fixed a bug in calculating the offset to the second filename. (4/27) unix/boot/rtar.c unix/boot/wtar.c Fixed a bug where rtar could in some cases confuse tar file directory entries with links (both have a nonzero linkflag). Also removed the #ifdef BSDUNIX stuff relating to symbolic links, as I don't know any modern systems that don't support symlink/lstat. Typing -v now implies -t for both programs, as with unix tar. (4/29) dev/hosts Added a new sparc machine surya. (4/29/97 MJF) pkg/images/immatch/src/geometry/t_geotran.x pkg/images/immatch/src/geometry/geotran.x Fixed various bugs triggered by the case where the user sets xmin, xmax, ymin, or ymax, explicitly, and xmin > xmax or ymin > ymax. Improved the precision of the flux conservation algorithm at the same time. (4/30/97 LED) pkg/cl/cl.par unix/hlib/login.cl Updated the version parameter for V2.11. (4/29) pkg/images/tv/display/zscale.x pkg/images/tv/display/dspmmap.x 1. Now works with higher dimensional images (displays the first band) and with image sections. 2. Now ignores error when the image has an unknown WCS type. The WCS is mapped to determine the physical coordinate transformation for use with masks but this failed when someone imported an image with the CAR projection type. (4/30 FV) lib/math/gsurfit.h pkg/math/gsurfit/*.gx pkg/math/gsurfit/*.x pkg/math/gsurfit/doc/gsinit.hlp Replaced the gsurfit package with a new version which support a "half" cross terms option useful in computing plate solutions. There are no package interface changes, old code should compile, link, and run without changes, and old database can still be read. Code changes are necessary to make use of the new feature. (4/30/97 LED) pkg/images/immatch/geomap.par pkg/images/immatch/skymap.cl pkg/images/immatch/wcsmap.cl pkg/images/immatch/sregister.cl pkg/images/immatch/wregister.cl pkg/images/immatch/doc/geomap.hlp pkg/images/immatch/doc/skymap.hlp pkg/images/immatch/doc/wcsmap.hlp pkg/images/immatch/doc/wregister.hlp pkg/images/immatch/doc/sregister.hlp pkg/images/immatch/src/geometry/geoxytran.gx pkg/images/immatch/src/geometry/geoxytran.x pkg/images/immatch/src/geometry/t_geomap.gx pkg/images/immatch/src/geometry/t_geomap.x pkg/images/immatch/src/geometry/t_geotran.x pkg/images/immatch/src/psfmatch/rgpbckgrd.x pkg/images/immatch/src/xregister/rgxbckgrd.x pkg/images/imcoords/ccmap.par pkg/images/imcoords/doc/ccmap.hlp pkg/images/imcoords/src/t_ccmap.x pkg/images/imcoords/src/t_imcctran.x pkg/images/lib/coomap.key pkg/images/lib/geofit.gx pkg/images/lib/geofit.x pkg/images/lib/geograph.gx pkg/images/lib/geograph.x pkg/images/lib/geomap.h pkg/images/lib/geomap.key pkg/images/lib/rgtransform.x Modifed the geomap, wcsmap, skymap, wregister, sregister, and ccmap tasks to use the new cross terms option in the gsurfit library. This involved changing two boolean parameters in each of the above tasks to string parameters, making the interactive fitting software shared by all these tasks aware of the change, and modifying the gsinit calls to do the initialization properly. The default behavior of all these tasks should be unchanged. (5/1/97 Davis) dev/graphcap Modified the path to qsoli so that it was generic - since there is only one graphcap file now for SunOS and Solaris there can not be host dependent path names in this file for these two OSs. Made the modifications on /shared on gemini and ursa and on tucana. (5/1/97 jvb) unix/shlib/mkshlib.ssol (same as mkshlib.ssol-sc34) unix/shlib/mkshlib.sos4 unix/shlib/mkpkg Modified the shared library build procedures for Solaris and SunOS to work correctly regardless of the current architecture setting of the core system. There is no reason that the architecture of the core system should have to be set to the architecture of the shared image being built, since the shared image depends only upon the contents of the BIN directory for the target architecture. This changes allows the shared library to be rebuilt regardless of the current architecture of the core system. (5/05) dev/hosts Made the following changes at Nigel's request: o added: eagle (new SWN), standard SunOS o removed: gll1, hedgehog, sandalwood, solara o change from SunOS to Solaris: enzo, humu, tofu o also dyevushka is now a Solaris 2.5.1 Sun Ultra (5/9/97 MJF) pkg/images/tv/display/t_display.x Fixed a typo in the mode used to map the display frame. When erase is set the image is now mapped in WRITE_ONLY mode, otherwise it is mapped READ_WRITE. This is how it previously worked. (5/14/97 MJF) unix/boot/spp/xc.c The -h and -H switches, used to link a host task, now imply -Inolibc as well. It doesn't make any sense to use IRAF LIBC if a host program is being compiled and linked. (5/20) pkg/images/x_images.x pkg/images/imcoords/starfind.par pkg/images/imcoords/doc/starfind.hlp pkg/images/imcoords/src/starfind.h pkg/images/imcoords/src/t_starfind.x pkg/images/imcoords/src/sftools.x pkg/images/imcoords/src/sfconvolve.x pkg/images/imcoords/src/sffind.x The starfind task has been added to the images.imcoords package. (5/22 LED) sys/imio/iki/oif/oifrdhdr.x Added a check to omit a read if the size of the user area is zero. This problem showed up as a failure to open imfort images produced with IRAF V2.10. Imfort images often have no extra header keywords. (6/01) sys/qpoe/qpiorpix.gx sys/qpoe/qpiogetev.x sys/qpoe/qpiomkidx.x Fixed a mistyped pointer problem affecting integer event coordinate keys. QPOE maintains event pointers internally as pointers to short, to optimize event filtering where the event extraction fields are type short. The recently added code to support integer coordinates was correctly computing an integer offset for the field, but the short int pointer to the event struct was still being used. (6/02) sys/qpoe/qpiogetfil.x Changed a few "pargc('s')" type calls to "pargi('s')" ('s' is an integer not a character). (6/02) unix/as.sparc/bytmov.c unix/as.sparc/amovs.c unix/as.sparc/amovr.c unix/as.sparc/amovl.c unix/as.sparc/amovi.c unix/as.sparc/amovd.c unix/as.sparc/amovc.c Added a check for a no-op copy where the input and output arrays are the same; the copy operation is skipped in this case. The VOPS version has always done this, but the optimized version in AS does not, possibly because the first version of this used a bcopy() which already had this feature. (6/03) unix/as.ssol/bytmov.c unix/as.ssol/amovs.c unix/as.ssol/amovr.c unix/as.ssol/amovl.c unix/as.ssol/amovi.c unix/as.ssol/amovd.c unix/as.ssol/amovc.c Made the same change for the Solaris versions. This will need to be propagated to the AS for the other platforms as well. (6/03) sys/fmtio/ctod.x Changed the generic MAX_EXPONENT to MAX_EXPONENTD. (6/05) sys/fmtio/ctor.x Since the exponent for double can now be larger than a real variable can support, added a log10(x) > MAX_EXPONENTR check before converting the value returned by ctod to a real. (6/05) dev/graphcap Installed graphcap support for the STSDAS Postscript graphics kernel. The actual kernel is still installed in STSDAS and its behavior is unchanged. (6/06) sys/osb/ieee.gx unix/as.sparc/ieee.gx unix/as.ssol/ieee.gx 1. Added a new interface routine ieegmap, used to query the current input and output NaN-mapping flags. 2. Changed the name of the old "ieemap" to "ieesmap" for consistency with ieegmap. The old ieemap is retained for backwards compatibility. 3. [INTERFACE CHANGE] ieesnan no longer has the side affect of enabling mapping by calling ieemap. (6/06) Note that all of these routines have both double and real versions and that mapping must be handled separately for the two types. (Although we use generic language above, there is no ieesmap, you really have ieesmapr and ieesmapd). For example, enabling input mapping for real data will not enable it for double as well. pkg/dataio/doc/export.hlp pkg/dataio/export/excmap.x pkg/dataio/export/cmaps.inc Added the 'overlay' cmap as a builtin cmap. (6/6/97) pkg/dataio/export/expreproc.x Removed a call to scale the colormaps when using the default values. Cmaps are now only scaled when a brightness/contrast value is set in the setcmap() function. (6/6/97 MJF) pkg/dataio/export/bltins/exgif.x Fixed a small error in the output of GIF files causing some display programs to complain. GIF images which would now be an odd number of bytes have an extra trailing ';' delimiter. This should be harmless as all processing is supposed to stop once that char is found. (6/6/97 MJF) pkg/dataio/rfits.par pkg/dataio/wfits.par pkg/dataio/doc/rfits.hlp pkg/dataio/doc/wfits.hlp pkg/dataio/fits/fits_cards.x pkg/dataio/fits/fits_files.x pkg/dataio/fits/fits_params.x pkg/dataio/fits/fits_read.x pkg/dataio/fits/fits_rheader.x pkg/dataio/fits/fits_rimage.x pkg/dataio/fits/fits_rpixels.x pkg/dataio/fits/fits_wheader.x pkg/dataio/fits/fits_wimage.x pkg/dataio/fits/fits_wpixels.x pkg/dataio/fits/fits_write.x pkg/dataio/fits/mkpkg pkg/dataio/fits/rfits.com pkg/dataio/fits/rfits.h pkg/dataio/fits/t_rfits.x pkg/dataio/fits/t_wfits.x pkg/dataio/fits/wfits.com pkg/dataio/fits/wfits.h Installed new versions of rfits and wfits. The new rfits and wfits include support for: 1) reading and writing multi-extension fits files, 2) reading and writing global headers, 3)and reading and writing ushort images. (6/9/97 LED) pkg/images/immatch/wcsxymatch.par pkg/images/immatch/wcsmap.cl pkg/images/immatch/wregister.cl pkg/images/immatch/doc/wcsxymatch.hlp pkg/images/immatch/doc/wcsmap.hlp pkg/images/immatch/doc/wregister.hlp pkg/images/immatch/src/wcsmatch/t_wcsxymatch.hlp Added the transpose parameter to the wcsxymatch, wcsmap, and wregister task to permit users to force an image transpose in cases where the image wcs does not contain enough information, e.g. axtype is undefined or set to the same units. (6/10/97, Davis) pkg/images/tv/imexamine/stfmeasure.x 1. The background is now set to zero if there are no background points. 2. Fixed an error recovery bug (attempting to free a pointer which was not set). (6/11/97, Valdes) pkg/images/tv/imexamine/ierimexam.x The background widths needed to be passed to the PSF measuring routines even if the background is turned off for the fitting in the 'a' and 'r' keys. (6/11/97, Valdes) dev/hosts Changed the following DMAC machines: - anasazi, sol, mimbres, prometheus are now solaris - changed path for dyevushka and humu (6/15/97 MJF) pkg/images/lib/skywcs.x Modified the code to initialize the physical and logical axis maps to 1 and 2 respectively. (6/16/97) pkg/dataio/imtext/t_wtextimage.x Cleared the format arrays prior to using them so old format strings are overwritten. (6/17/97 MJF) pkg/dataio/fits/fits_read.x Changed the code to add the extension number (as intended) not the sequence number to the output file name if appropriate. Removed some extraneous error messages from the output. (6/18/97 LED) pkg/dataio/fits/fits_write.x The IRAFNAME keyword was not being initialized properly for the global headers resulting in gargage being written into this variable. (6/18/97 LED) unix/hlib/irafuser.csh Added the flag -Inolibc to HSI_XF. The HSI C files are host level and do not use libc. (6/17) unix/hlib/libc/knames.h unix/os/zcall.c unix/os/zfunc.c Added zcall and zfunc routines for calls with ten arguments. The new functions are called zfunca,zcalla (A is hex for 10; hex is used to avoid 7 char names in kernel routines). (6/17) lib/syserr.h lib/syserrmsg Installed system error messages for the FITS kernel. (6/17) pkg/images/imutil/imheader.par pkg/images/imutil/src/imheader.x pkg/images/imutil/src/mkpkg 1. Typing "imhead" with no arguments now lists the images in the current directory (like "ls"). 2. A new parameter "imlist" was added to support the above. 3. Imheader now left-justifies text to avoid truncating long cards. 4. The method used to test for a pixel file was changed to avoid any pixel i/o. sys/imio/iki/fxf/ Installed the new FITS image kernel. (6/16) sys/imio/iki/iki.com sys/imio/iki/iki.h sys/imio/iki/ikiaccess.x sys/imio/iki/ikiclose.x sys/imio/iki/ikicopy.x sys/imio/iki/ikidelete.x sys/imio/iki/ikiextn.x + sys/imio/iki/ikiinit.x sys/imio/iki/ikildd.x sys/imio/iki/ikimkfn.x sys/imio/iki/ikiopen.x sys/imio/iki/ikiopix.x sys/imio/iki/ikiparse.x sys/imio/iki/ikirename.x sys/imio/iki/ikiupdhdr.x sys/imio/iki/mkpkg 1. "imtype" now has a syntax such as "imtype=oif,noinherit" or "imtype=imh", "imtype=fits". The default image type can be specified either by any legal image extension or by giving the internal kernel name (oif, fxf, plf, qpf, stf). If "inherit" is enabled then the image type will be preserved in a new-copy operation, as in pre-V2.11 versions of IRAF. The default in V2.11 is OIF images with no inherit. No inherit means new images always are of type imtype. 2. A new environment variable "imextn" specifies the mapping of image file extensions to image types. For example, imtextn = "oif:imh fxf:fits,fit plf:pl qpf:qp stf:hhh,??h" Kernel names must be used here. For each kernel the list of valid extensions or extension patterns is given. The first extension for each type is the default extension when creating new images of that type. 3. A "kernel" argument was added to many of the IKI routines. This change was propagated to all the image kernels. 4. The fits kernel (fxf) was added to ikiinit. A call to iki_extninit was added to ikiinit. imtype/imextn are only read once, when the first image is accessed. A flpr is needed to use the new values if the variables are changed at runtime after images have been accessed. 5. The extension processing code is in the new file ikiextn. (6/16) sys/imio/iki/oif/mkpkg sys/imio/iki/oif/oifaccess.x sys/imio/iki/oif/oifcopy.x sys/imio/iki/oif/oifdelete.x sys/imio/iki/oif/oifopen.x sys/imio/iki/oif/oifrename.x sys/imio/iki/plf/plfaccess.x sys/imio/iki/plf/plfcopy.x sys/imio/iki/plf/plfdelete.x sys/imio/iki/plf/plfopen.x sys/imio/iki/plf/plfrename.x sys/imio/iki/qpf/qpfaccess.x sys/imio/iki/qpf/qpfcopy.x sys/imio/iki/qpf/qpfdelete.x sys/imio/iki/qpf/qpfopen.x sys/imio/iki/qpf/qpfrename.x sys/imio/iki/stf/mkpkg sys/imio/iki/stf/stfaccess.x sys/imio/iki/stf/stfcopy.x sys/imio/iki/stf/stfdelete.x sys/imio/iki/stf/stfhextn.x sys/imio/iki/stf/stfopen.x sys/imio/iki/stf/stfrename.x Numerous changes related to adding imtype/imextn, and adding a kernel argument to the IKI driver entry points. (6/16) sys/imio/mkpkg sys/imio/imaccess.x sys/imio/imgimage.x sys/imio/imgnln.x sys/imio/imparse.x sys/imio/impnln.x sys/imio/iki/stf/stfopen.x If the image number in a multi-extension group is not given this is indicated by a value of -1. Formerly 0 was used. The listed routines had to be changed to implement this. (6/16) sys/imio/imstati.x An imstati on IM_PIXFD will now attempt to open the pixel file if it is not already open. This is used by the revised IMHEADER task to test for a pixel file. (6/17) --------------------------------- V2.11 beta-2 released. (6/18) pkg/dataio/fits/fits_read.x Fixed an error in the call to pl_gsize (output variable set to constant) that was causing a segvio on Solaris. (6/19 LED) pkg/images/imutil/src/imheader.x sys/imio/imstati.x Removed the code from imstati to open the pixel file in an IM_PIXFD query; ideally imstat should be purely an information service with no action side effects. Instead, added an imopsf call in imheader to test if the pixel file exists (this is done only if IM_PIXFD=NULL). imopsf was not really intended to be in the public interface of IMIO, but we can live with this for the system imheader task. (6/19) sys/imio/iki/fxf/fxfopen.x Fixed a bug that would affect opening of simple (not multi-extension) FITS files without specifying an extension. (6/19) sys/imio/iki/oif/oifopen.x sys/imio/iki/plf/plfopen.x sys/imio/iki/qpf/qpfopen.x These kernels were updated to check the image extension index and abort if an illegal extension is referenced. For a simple file with one image the only extension permitted is [1] (or -1 which is what the kernel gets if no extension is specified). Trying to open [0] or [2] or higher is an error. This is necessary to provide a kernel independent behavior if other kernels may support multiple extensions. There are still two unresolved issues here. The first is that STF was not also updated, so its behavior is inconsistent compared to the other kernels ([0] or [1] or not given will all return the first image). This could not be modified due to the risk to STSDAS and the tight schedule we have for V2.11. The second problem is that the FITS kernel used in the simplest manner will produce a multi-extension file with [0] as the first image. In this mode the FITS kernel has images starting at [0] whereas the first image is [1] for the other kernels. This is less of a problem if the PHU of a FITS MEF file is a dataless file header, in which case the first image is [1], and [0] is the file header, not an image. But there is an inconsistency. Perhaps the default behavior of the FITS kernel should not so easily create a multi-extension file with a PDU instead of a dataless PHU. We might want to change the default behavior to add a file PHU when a multiextension FITS file is created, or add a kernel switch to force creation of a PHU. Simple FITS files would remain a simple PDU with no extensions. Currently the only way to get a PHU MEF file with the FITS kernel is to use special facilities to write a dataless PHU before appending a data image. (6/19) sys/ki/ki.h Increased the max nodes from 256 to 320. This code needs to be rewritten to use a dynamic table to eliminate this upper limit, and improve efficiency. (6/19) pkg/images/imutil/doc/imheader.hlp Modifed the imheader help page to include a description of the new imlist parameter. (6/20 LED) pkg/dataio/wfits.par pkg/dataio/fits/t_wfits.x pkg/dataio/help/wfits.hlp Added the parameter fextn to the wfits task. Wfits will append the current value of fextn to any output disk files so that they can be read with the fits kernel. The default value of fextn is "fits". (6/20 LED) pkg/dataio/fits/t_wfits.x Added a check to wfits so that it does not append a ".fextn" to an output file name which already ends in ".fextn". (6/21 LED) unix/boot/spp/xc.c Modified the "isv3" code to be more flexible about the configuration of the host compiler. (6/22) sys/qpoe/qpex.h Increased DEF_PROGBUFLEN and DEF_DATABUFLEN to 65536. (6/22) sys/imio/iki/oif/oifopen.x sys/imio/iki/plf/plfopen.x sys/imio/iki/stf/stfopen.x Added support for "imclobber" to these kernels (images can be overwritten if imclobber=yes). The FITS kernel (fxf) already had imclobber implemented. QPF is read-only so it is not an issue. (6/22) sys/mwcs/mwrotate.x The sign of the x,y center of rotation was wrong in a call to mw_translated. (6/22) sys/mwcs/mkpkg sys/mwcs/mwcs.h sys/mwcs/iwewcs.x sys/mwcs/iwrfits.x sys/mwcs/mwsaveim.x sys/mwcs/wfait.x sys/mwcs/wfcar.x sys/mwcs/wfcsc.x sys/mwcs/wfdecaxis.x sys/mwcs/wfgls.x sys/mwcs/wfinit.x sys/mwcs/wfmer.x sys/mwcs/wfmol.x sys/mwcs/wfpar.x sys/mwcs/wfpco.x sys/mwcs/wfqsc.x sys/mwcs/wfstg.x sys/mwcs/wftsc.x sys/mwcs/wfzea.x 1. Added support for galactic, ecliptic, and super-galactic coordinates to MWCS. 2. Added the STG, ZEA, CAR, MER, PCO, PAR, AIT, MOL, CSC, QSC, TSC projection functions to MWCS. These functions do not require any projection parameters. We are using the G&C defaults for LONGPOLE and LATPOLE. The CUBEFACE parameter in the COBE CSC, QSC, and TSC projections is ignored for now since it is not required to evaluate the functions. (6/22) unix/hlib/math.h Added explicitly DOUBLE versions of the math constants. (6/22) pkg/images/imcoords/doc/imcctran.hlp Modified the imcctran help page to reflect the 2.11 mwcs changes, e.g. support for galactic, supergalactic, and ecliptic coordinates, and the new function drivers. (6/23 LED) unix/boot/spp/xpp/decl.c The line counter was not being updated in multiline declarations. This would mess up SPP source code debugging. (6/23) pkg/system/rename.x pkg/system/doc/rename.hlp 1. The field=extn option can now add file extensions where none existed before, or remove them. 2. The filename field editing capability now works for single file renames as well as file lists. (6/23) sys/imio/iki/ikiopen.x Add an errchk for zcalla. Doesn't appear to matter in this case, but there should be one as otherwise assumptions are made about the value of the status argument when an error abort occurs. (6/23) sys/imio/iki/stf/stfopen.x sys/imio/iki/plf/plfopen.x sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfksection.x sys/imio/iki/oif/oifopen.x sys/imio/iki/fxf/fxfrfits.x sys/imio/iki/fxf/fxfupdhdr.x 1. Fixed a bug in fxfopen that was causing PHU inheritance to fail. 2. Tweaked imclobber handling in all kernels. Fixed a bug related to dev$null images in oif and plf. 3. Some minor coding style changes, spelling errors. (6/23) pkg/images/x_images.x pkg/images/imcoords/imcoords.par pkg/images/x_images.x pkg/images/imcoords/imcoords.cl pkg/images/imcoords/imcoords.men pkg/images/imcoords/imcoords.hd pkg/images/imcoords/ccfind.par pkg/images/imcoords/doc/ccfind.hlp pkg/images/imcoords/src/t_ccfind.x pkg/images/imcoords/src/mkpkg Installed the new ccfind task in the images.imcoords package. (6/24 LED) sys/imio/iki/fxf/fxfopen.x More fixes to the fkinit/inheritance logic in the FITS kernel. (6/24) sys/imio/iki/ikiextn.x 1. Modified the iki_extninit code to preserve the default extensions for kernels not specified in a user defined imextn string. If the user specifies extensions for a given kernel these however override the builtin defaults (note though that not all kernels permit arbitrary file extensions - fxf and stf are the main ones that do). 2. Added a new routine iki_debug. The init code was modified to check for an environment variable "ikidebug". If this is defined and has a yes value the IKI data structures are dumped at init time, allowing the list of installed kernels and the mapping of extensions to kernels to be reviewed. (6/24) sys/imio/iki/fxf/fxfrename.x sys/imio/iki/fxf/fxfdelete.x sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfupdhdr.x sys/imio/iki/fxf/fxfrfits.x We had a problem with "rfits make-" failing with imtype=fits. This opens dev$null as the image and a kernel must be able to deal with this odd situation. There was a problem with the internal header cache code as some of the code was searching the cache, but since we were opening a new image the cache had not been initialized (it is initialized in rfitshdr). Added a new routine iki_init in fxfopen.x, and calls to this in all the external entry points for the fits kernel. On the first call after a process startup, this initializes the cache to empty and sets rf_cachesize=0 (the cache is subquently reinitialized by rfitshdr). A number of instances of the construct "do i = ... max(1,rf_cachesize)" were changed to "do i = ... rf_cachesize" as otherwise the loop does not notice that the cache is disabled. (6/25) unix/boot/spp/xpp/xppcode.c Increased the output code buffer from 50000 to 131072. (6/25) dev/graphcap The pen width parameter PW for sgi_apl was changed from 2.4 to 2.3. This was fine tuning for the SGIKERN font changes below. (6/25) sys/gio/sgikern/mkpkg sys/gio/sgikern/sgifont.x sys/gio/sgikern/sgitx.x sys/gio/sgikern/greek.com + sys/gio/sgikern/font.com sys/gio/sgikern/sgidrawch.x The SGI graphics kernel was upgraded with a better roman font, and a new greek font was added. Aside from the above minor change to graphcap this should be transparent to anything outside sgikern. (6/25) unix/hlib/zzsetenv.def Added an "imextn" entry to the default IRAF environment so that the user can do a "show imextn" to see the current mappings of image extensions to image kernels. (6/25) --------------------------------- V2.11 Beta-2 installed on NOAO servers. (6/25) unix/hlib/zzsetenv.def 1. Added "imclobber = no". 2. Changed imtype to "oif,noinherit" to better document the new syntax. (imtype=imh, imtype=fits etc. will still work so long as these are valid extensions in imextn). 3. Changed version from beta1 to beta2. (6/26) unix/gdev/sgidev/sgi2uapl.c unix/gdev/sgidev/sgi2ueps.c These routines could generate a "0 setlinewidth" in the output postscript, which could cause a plot to abort without generating any output. Added a simple max(1) to prevent this, without changing the way a linewidth is scaled. (6/27) lib/syserr.h lib/syserrmsg Added a new error code SYS_IKIKSECTNS, used when a kernel section is entered but it is invalid, e.g. because the kernel does not support the image section syntax given. (6/28) sys/imio/iki/oif/oifopen.x Now returns an error if the given kernel section is not legal. (6/28) sys/imio/iki/stf/stfopen.x The imclobber stuff introduced a serious bug preventing image sections such as "imcopy blah pix[3]" from being used to write a multi-extension STF file (e.g. created with pix[1/4]). Modified stfopen to permit such usage. Imclobber checking is only performed if the whole file is affected. If an individual image is explicitly referenced it can be overwritten and is not affected by imclobber. (6/28) unix/hlib/zzsetenv.def Set imtype back to "imh". Unfortunately we have IMRED scripts which parse the value of imtype (an interface violation since it makes the scripts dependent on details of the image kernels). Until these can be fixed imtype will have to be left as it is. (6/29) sys/gio/sgikern/greek.com Updated the greek fonts in the SGI kernel to a newer version. (6/29) pkg/images/imutil/src/imexpr.gx pkg/images/imutil/src/imexpr.x Fixed a bug affecting generating functions using I,J,K. (6/29) sys/imio/iki/fxf/fxfksection.x sys/imio/iki/fxf/fxfopen.x 1. Bug fix to avoid "unexpected EOF" error when reading dataless PHU files. 2. The extension number and extension name should now be interchangeable in kernel sections. (6/29) lib/syserr.h lib/syserrmsg Added several new error messages for the FITS image kernel. (6/29) sys/mwcs/wfinit.x Removed a bogus "msp" entry from the MWCS function table. This was an alias for the older multispec. (6/30) --------------------------------- V2.11 Public BETA release. (6/30) dev/hosts Added 'sunset' to all downtown servers (7/2/97 MJF) dev/hosts Changed path for 'deneb' (7/7/97 MJF) unix/hlib/zzsetenv.def There was a typo (extra double quote) in the definition of imextn. (7/24) pkg/images/imcoords/src/ccxytran.x pkg/images/immatch/src/geometry/geoxytran.gx pkg/images/immatch/src/geometry/geoxytran.x pkg/images/immatch/src/geometry/t_geotran.x Fixed a bug in the database reading code used by the cctran and geoxytran tasks that was producing an "illegal xorder" message if the x coordinate fit was linear and the y coordinate fits was nonlinear or vice versa. (7/24/97 LED) pkg/images/immatch/src/xregister/rgxcorr.x Fixed an initialization problem in the xregister task that ocurred if: 1) the correlation parameter was set to "fourier", and, 2) one of the correlation regions was entirely off the input image. In this case all subsequent region shifts were being set to INDEF regardless of whether or not the region was actually on the image. (7/25/97 LED) sys/libc/imaccess.x + sys/libc/mkpkg Added a new LIBC entry point "c_imaccess" which calls the IMIO imaccess routine. (7/25) unix/hlib/libc/xnames.h Added an entry for IMACCESS. (7/25) pkg/cl/unop.c pkg/cl/param.h pkg/cl/param.c pkg/cl/operand.h pkg/cl/builtin.c pkg/cl/gram.c Added two new intrinsic functions, "imaccess" and "defvar". imaccess tests whether an image exists, e.g. (imaccess("dev$pix")) or (imaccess(foo.fits[3])). defvar tests whether an environment variable exists, e.g. (defvar("imextn")). (7/25) pkg/images/imcoords/doc/ccfind.hlp Fixed a typo in the ccfind task help page. (7/28 LED) pkg/math/gsurfit/zzdebug.x Added a zzdebug.x file to the gsurfit package. (7/28 LED) sys/imio/iki/stf/stfopen.x Added a max(0,gr_arg) to map gr_arg values of -1 to 0 for use within the STF kernel. (7/29) sys/imio/iki/stf/stfhextn.x sys/imio/iki/fxf/fxfhextn.x These routines will now inherit the file extension in a new-copy operation only if inherit is enabled in "imtype". (7/29) sys/imio/iki/ikiextn.x Added a new IKI extn routine iki_getpar(), used by IMIO code to get IKI global parameters (such as inherit/defimtype). (7/29) sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfopix.x sys/imio/iki/fxf/fxfrfits.x sys/imio/iki/fxf/fxfupdhdr.x sys/imio/iki/fxf/fxf.h 1. When a new FITS file is created the value of the EXTEND keyword in the PHU is now set to F. When an extension is subsequently added it is changed to T. 2. A bug was fixed affecting files with many (hundreds) of extensions. 3. A dev$null related bug was fixed (seen when displaying an image with imtype set to fits). (7/29) noao/lib/mkpkg.sf Fixed a typo in the $ifeq MACH section. (7/29) sys/gio/sgikern/font.com Updated to a new version of the font file which improves the inter-character spacing. (7/29) pkg/images/immatch/src/geometry/geotran.x Some min/max statements were reordered in geo_imset to work around an optimiser bug seen on Solaris. Normally this should have been fixed by putting the file on the special file list, but since geotran is very compute intensive the source file was modified instead. (7/29) pkg/images/imutil/src/hedit.x Added a missing sfree() in he_deletefield(). (7/29) sys/imio/db/imgftype.x sys/imfort/db/imgftype.x Modified to check for a quoted string before checking if the keyword is boolean (T/F). (7/29) --------------------------------- V2.11 Public BETA release, patch-1. (7/29) pkg/images/imutil/src/imhistogram.x pkg/plot/phistogram.x Fixed a bug in the imhistogram and phistogram tasks that could produce invalid floating point operation errors if the image pixel values are outside the legal integer range. (7/31 LED) sys/imio/iki/fxf/fxfksection.x There was a typo on line 177, PHULINES should have been EHULINES. (7/31) pkg/dataio/fits/fits_read.x Fixed a bug in the new global header reading code that could result in the global image header being left in the tmp$ directory. (8/6 LED) dev/emacs.ed Fixed an ambiguity affecting MOVE_LEFT and DEL_CHAR. Added ctrl/d as a second eof char (along with ctrl/z) as for vi.ed. (8/07) sys/imio/iki/fxf/fxfrfits.x Fixed a bug which would cause unwanted blank lines to be added to a header generated with INHERIT=T when there are blank lines near the top of the existing extension header. (8/08) sys/mtio/mtrewind.x The sequence close(mtopen()) was being used to rewind a device. The close could fail due to an invalid file descriptor if the mtopen failed, as when opening a device and no tape was loaded. Modified to do the close only if the open succeeds. An attempt to rewind a device when no tape is loaded will still fail with a "cannot open device" message. There is no way to tell that a tape is not loaded. (8/08) pkg/cl/builtin.c [This was the solution to the so-called "imdkern" bug]. Stty has the unusual side affect of writing to environment variables (to set the screen size etc.). Environment variables set in the CL are automatically passed to all connected subprocesses. This can cause corruption of the IPC prototcol when stty is called in response to a pagefiles() call in a running task and a connected graphics kernel is running at the time. The safest thing is to have stty shutdown any connected graphics kernels before executing, so a call to gflush was added to the stty code in the CL. (8/10) sys/qpoe/qpaddf.x A symbol reference (dsym) was being made before a stenter, but the latter could cause symbol pointers to change. The code was reorganized slightly to do the stenter before taking any symbol references. (8/10) sys/imio/iki/oif/oif.h sys/imio/iki/oif/oifopen.x The OIF kernel now recognizes an environment variable "oifversion" which, if defined, specifies the file version for a new OIF image (for example set oifversion = 2 produces format version 2 images). If the variable is not defined, which is the default, the builtin OIF default will be in effect and new-format images will be generated. This variable is provided only for backwards compatibility, e.g. when using V2.11 IRAF with old software which cannot easily be updated. (8/10) sys/imio/iki/fxf/fxf.h sys/imio/iki/fxf/fxfopix.x sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfupdhdr.x sys/imio/iki/fxf/fxfrfits.x sys/imio/iki/fxf/fxfctype.x sys/imio/iki/fxf/fxfksection.x 1. A bug was fixed that would leave open file descriptors behind when trying to open extensions beyond the EOF, e.g. when searching for the last extension in a file. 2. An operation such as "imcopy foo.fits[3] new.fits" would fail with imclobber=yes if "new.fits" already existed, due to a problem with error recovery. 3. A new fkinit parameter "padlines" was added. Along with the existing "ehulines" this permits control of the number of blank lines at the end of a header (used for expansion). Whereas ehulines defines the minimum size of an extension header when a new extension is added, padlines defines the number of lines of padding to be added when a EHU overflows and has to be extended. 4. The FK code supporting FILENAME was deleted. It is difficult for the FK to maintain this reliably (e.g. if a temp image is created and later renamed), and it is felt that it is better to let the application which creates FITS files control this parameter. If the FK insists on writing it this interferes with the use of FILENAME by the application. (8/11) sys/imio/iki/fxf/fxfrfits.x A buffer was improperly dimensioned affecting the OBJECT keyword. This could cause long image title strings to be truncated. SZ_EXTTYPE was changed to SZ_CARD on line 708. (8/12) lib/prstat.h unix/hlib/libc/prstat.h A new process status value P_BUSY was added. (8/13) sys/etc/prseti.x + A prseti routine was added to the process control interface, which already provided a prstati. (8/13) sys/etc/mkpkg sys/etc/prupdate.x The prupdate routine, used to broadcast messages/commands to all subprocesses (e.g. for set environment or chdir requests), was modified to check the process status and only broadcast to processes for which the process status is P_RUNNING. The process status for a running process can now be set to either P_BUSY or P_RUNNING. P_RUNNING indicates that the process is running, but is idle and read to accept commands. P_BUSY means that it busy executing in a mode where it cannot accept standard IPC requests. (8/13) sys/etc/prclose.x Prclose will now close any process for which the process status is other than P_DONE or P_DEAD, that is, any running process. (formerly it was checking for status=P_RUNNING but we now have to allow for P_BUSY as well). (8/13) sys/gio/cursor/mkpkg sys/gio/cursor/gtropenws.x When a graphics subkernel is connected to the CL the process status is now set to P_BUSY. Graphics subkernels execute in a loop reading GKI instructions and cannot accept standard IPC requests, such as environment change requests, without corrupting the IPC protocol. (8/13) pkg/cl/config.h Increased a couple of history buffer sizes. In particular SZ_CMDBLK is supposed to be larger than a line buffer and it wasn't after the recent increase in the line buffer size. SZ_CMDBLK was increased from 512 to 2048, and the history buffer size was increased from 2048 to 8192. (8/14) pkg/images/immatch/src/imcombine/t_imcombine.x Fixed a segmentation violation caused by attempting to close the mask data structures which are not defined if an error occurs opening the input or output images. (8/14 FV) pkg/system/rename.x pkg/system/rename.par pkg/system/doc/rename.hlp The rename task was rewritten to hopefully make the code clearer and easier to follow. The task now checks for the $/ characters in root or extn replacement strings and prints an error message if either of these characters are found. For completeness the field-editing feature now permits "ldir" to be modified as well as "root", "extn", and "all" (modifying the ldir part of a filename is another way to move the file to the named directory). (8/15) doc/notes.v210 + local/notes.v210 - local/notes.v211 + Broke the old notes.v210 into a frozen v2.10 notes file and a new notes.v211 file for IRAF V2.11 and revisions. (8/15) unix/hlib/motd unix/hlib/zzsetenv.def System version changed to V2.11EXPORT. (8/15) unix/hlib/mkiraf.csh For the NOAO servers we use a version of mkiraf which permits imdir to include hostnames, e.g. imdir=tucana!/d0/iraf (this is not currently included in the export version of the system). It turns out that while this mkiraf script was setting imdir correctly in the login.cl, it was not actually creating the directory if it didn't exist. The local version of mkiraf was modified to use the iraf version of mkdir in x_system.e. This avoids the problem with host! and the unix csh/mkdir, and also works when the directory is on a different host than the one executing the script. (8/16) pkg/images/imcoords/src/sffind.x Fixed a type mismatch in a call to atan2. (8/18 LED) sys/imio/iki/fxf/fxfrfits.x In fxf_load_header, the calculation of "totpix" could overflow a 32 bit integer for large (e.g. 8K by 8K) images. The calculation was changed to avoid overflow. A bug was also fixed affecting the use of PCOUNT in the expression. The value returned for "totpix" is not actually the total pixels in the image as the name suggests, but the size in 2880-byte FITS logical blocks of the data area of the image, the data area being the pixel matrix plus PCOUNT data units. At the moment we want to minimize changes, but later we should make more general modifications to the code to change the name of this variable to something more descriptive. (8/18) unix/boot/wtar/wtar.c Added a call to memset to zero the file header structure before setting the field values. Unix tar on at least one platform (Digital Unix) was complaining about unused fields of the tar file headers. (8/20) dev/hosts Added the Jannuzi/Dey machine chomper to all servers (8/20 MJF) dev/hosts Added beet (Sol2.4 machine), mosaic machines rush and driftwood along with all their aliases (8/20 MJF) bin.ssun/S11_5.4.e + Added a V2.11 shared image linked for Solaris 2.4. (8/20) pkg/images/tv/display/dspmmap.x There was a bug in the code when using pixel masks which gives "Warning: PLIO: reference out of bounds on mask". This was introduced with the changes to allow masks and images to have different binning. (8/21 FV) sys/mwcs/iwewcs.x In the case of an image with more than 2 axes where CDELT/CROTA is used instead of a CD matrix, the CDELT value for axes other than the RA/DEC projection axes (or axes 1-2 if no projection) was being discarded and replaced with cdelt=1.0. (8/21) pkg/images/imutil/src/t_imtile.x Fixed a bug in the range decoding code that could produce an integer divide by 0 if the range syntax in xtools$ranges.x was extended to include zero (8/22 LED). pkg/cl/config.h Increased the size of the stack and dictionary. The V2.11 changes to SZ_FNAME affect storage allocation in compiled scripts, hence under V2.11 scripts will use more space than they used to. (8/27) sys/mwcs/mwcs.h Increased LEN_FC (the size of the compiled function call portion of a runtime CTRAN descriptor) from 48 to 64. This descriptor is internal to MWCS and the change should have no effect outside the interface. (8/28) dev/graphcap dev/imtoolrc Updated a few of the KPNO instrument frame buffer entries in graphcap and imtoolrc. Affected were cn# 26,27, 35-40. No others were affected, only these KPNO-specific entries. (8/28) sys/imio/iki/fxfopix.x Fixed a typo: IM_LEN(im) -> IM_LEN(im,1). Evidently the Sun Fortran compilers didn't complain about this (it was found on AIX). (8/29) pkg/images/tv/imexamine/iepos.x Added missing argument in fprintf call. (8/29/97, Valdes) pkg/images/imcoords/src/ccfunc.x pkg/images/imcoords/src/t_ccsetwcs.x pkg/images/imcoords/src/skyctran.x Removed extraneous argument from 2 call to mw_stati. Removed extra arguments from 2 call to printf. (8/29/97, Davis) pkg/images/lib/skywcs.x Added missing argument to fprintf call. (8/29/97, Davis) pkg/images/immatch/src/linmatch/rglcolon.x Added missing argument to call to rg_lstats. (8/29/97, Davis) pkg/cl/prcache.c The pr_unlock() function was comment out. This has never caused a problem as the CL does not currently use this interface routine, however it was causing a compiler error on one platform due to a malformed comment, so it was uncommented. (8/29) pkg/plot/impstatus.x In sl_getstr, changed "Memc[sl]" to "int(Memc[sl])" to fix a mixed type mod function problem. This routine is a bit on in that it stores a variable nlines, the number of status line lines, in a char variable in a char array (but it should work). (8/29) --------------------------------- V2.11 Public EXPORT release. (8/29) sys/imfort/imfort.h sys/imfort/imcrex.x Added support for the "oifversion" environment variable to IMFORT. This is identical to what is in IMIO. The default is version 2 (new) format images. (9/05) sys/imfort/imwrhdr.x In the process of making the above fairly simple addition I found a bug in writing V1 headers: IM_V1HDRLEN was not getting set correctly as the pointer was "im" instead of "v1". This was preventing imfort from writing valid V1 image headers (and it appears that IMIO may have the same problem as well, seen as the user fields of the header not being written, although other code may patch up the header field later in the case of IMIO). We did not see this problem earlier in IMFORT since it had no way to write V1 format images. (9/05) sys/imfort/db/imgnfn.x In the process of making the above fairly simple addition I found another header related bug, this one appears to have been there for some time. The phead.f test IMFORT task was only printing the standard fields of the header, not the user fields, although it was supposed to print the full header. Updated the relevant section of code in the IMFORT version of db/imgnfn.x with the code from the IMIO version of the file, which does not have this problem. (This causes a problem in phead.f now when it encounters a HISTORY card, but I think that is a problem with the task, not with imfort). (9/05) unix/hlib/strip.iraf Changed the -file entry for bin.ssol to bin.ssun. (9/22) pkg/utilities/urand.x pkg/utilities/doc/urand.hlp If the "seed" parameter is set to INDEF then the clock time (integer seconds since 1980) will be used as the seed. This allows different executions to produce different random numbers. (9/23, Valdes) local/login.cl Updated logver to "IRAF V2.11 May 1997". (9/24) pkg/images/immatch/src/imcombine/icscale.x pkg/images/immatch/doc/imcombine.hlp When the zero offsets or weights are specified in a file the weight adjustment for differeing sky levels is not done. (10/3/97, Valdes) pkg/plot/phistogram.x Fixed an error in the previous bug fix that was causing phistogram to die with a segmentation violation for text file input. (10/4, Davis) dev/hosts Removed dyevushka, changed virgo to ssun, added mogollan as a ssun for GONG and zippy as my home linux box. (10/17 MJF) pkg/images/immatch/src/imcombine/t_imcombine.x When using STF images the failure error when there are too many images is SYS_IKIOPEN rather than the others that occur with OIF, etc. Added this error code to be caught and have the program build a stacked image to combine. (10/21/97, Valdes) dev/hosts Changed argo to a solaris machine (10/28/97 MJF) pkg/dataio/fits/fits_read.x Fixed a bug in the tape listing code that was causing the entire file to read instead of skipped if: 1) make_image = no, 2) there was only 1 image per file, and 3) fe = 0. (11/3/97 LED) dev/hosts Added new-tucana for testing (11/6/97 MJF) dev/hosts Cleaned up the hosts file according to Nigel's list: Solaris: aquarius, aten, bokchoy, carina, chomper, corvus, enzo, herbie, humu, inti, kukita, kumbhakarna, mdi, mozart, norma, oso, potosi, saguaro, soi, soleil, tofu, virgo, xari. SunOS: arun, aspen, bruckner, caelum, charfman, condorito, eagle, grus, jalapeno, jannu, jupiter, kale, katmai, loaner-1, lonestar, mars, mintchip, mira, moraine, msgsun, musca, mytoy, odysseus, pantera, radix, rainbow, sagittarius, seurat, solarium, spud, surya, susanna, taco, tesla, video, vivalid, volans Machines not already in the file were not added as requested. Removed retired machines madrona and hummel (11/7/97 MJF) sys/mwcs/wfinit.x Removed a duplicate "extern" declarations line for the MSP function. This was causing a compilation failure on Digital Unix. (11/07) unix/os/zfiopr.c Added a check that the pipe file descriptors do not exceed MAXOFILES. (11/07) pkg/cl/main.c Changed the datatype of the variable old_onipc from int to PFI. This is used as a function pointer in CL/LIBC but on 64-bit platforms such as the DEC Alpha int and pointer are different sizes. (11/09) pkg/images/imfilter/src/t_median.x pkg/images/imfilter/src/t_mode.x Changed the type declaration of the boundary extension from int (incorrect type) to real (the correct type) to avoid FPE errors on the Dec Alpha. (11/11 LED) sys/imio/iki/stf/stfaccess.x sys/imio/iki/fxf/fxfaccess.x BTOI was being called on the value returned by iki_validextn without converting the value to a boolean expression. (11/12) sys/imio/iki/stf/stfhextn.x sys/imio/iki/stf/stfnewim.x sys/imio/iki/fxf/fxfhextn.x Added checks to make sure that the old image pointer o_im is not used unless we have a new copy image and o_im is not NULL. (11/13) pkg/cl/builtin.c When building up the command line for a foreign task, if an unquoted INDEF was given an argument the CL would segvio on some platforms. Technically, since INDEF is a keyword and is being used as a string it should be quoted by the user, and things would work fine in this case. But the CL should not segvio and it should check for an indefinite operand in such a case so the code was modified to do so and generate the string "INDEF" in this case, where a string argument is being generated for an external command. This doesn't avoid the need to quote other keywords however, e.g. "grep else" won't work unless "else" is quoted. (11/13) sys/osb/ieee.gx sys/osb/ieeed.x sys/osb/ieeer.x unix/as.sparc/ieee.gx unix/as.sparc/ieeed.x unix/as.sparc/ieeer.x unix/as.ssol/ieee.gx unix/as.ssol/ieeed.x unix/as.ssol/ieeer.x The IEEE i/o package was modified to detect IEEE subnormals on input and map them to zero. This feature is enabled along with NaN mapping; both are either enabled or disabled. The ieee statistics however count only NaN mappings, not subnormals, since the latter are considered the same as zero values. A subnormal is a number so small (close to zero) that it cannot be accurately represented. For example the smallest IEEE single precision real is about 1.175e-38. Numbers from e-38 to e-45 or more gradually lose precision and are considered subnormals which should be rounded to zero. An IEEE subnormal is any floating point number which has an exponent of zero. (11/14) sys/imio/iki/fxf/fxfhextn.x sys/imio/iki/stf/stfhextn.x Added an initializer for local variable "old_kernel". (11/15) sys/imio/iki/fxf/fxfksection.x 1. A warning message is now issued if one writes to a new file and the "overwrite" flag is set in the kernel section. 2. When writing a new image to a file in new-copy mode, an extension index is specified and overwrite is not set, append can be specified to avoid an error trap (it is not clear why this does not apply to case new-image as well). (11/16) sys/imio/iki/fxf/fxfopen.x Several minor changes to improve error handling for the overwrite and append parameters in the ksection. It is an error to try to overwrite a nonexistent extension. Overwrite and append cannot be given in the same ksection. If overwrite is explicitly given in the ksection to overwrite a specific extension, this overrides any "append" option in the fkinit. (11/17) sys/imio/iki/fxf/fxfopix.x 1. A loop copying IM_LEN to FIT_LENAXIS was replaced by an equivalent call to AMOVI. 2. A temporary fix has been put in the fxf_byte_short routine to create the temporary file in 'tmp' rather than in the working directory (this should be replaced eventually by a runtime conversion scheme which avoids writing any temporary files). (11/17) sys/imio/iki/fxf/fxfopix.x The BSCALE/BZERO handling was modified to correct any precision errors resulting from formatted input (CTOD) when checking for the usual case of BSCALE/BZERO being 1.0/0.0. If the number is 1 or 0 to within the allowable precision the converted number is replaced by the exact number to eliminate the conversion error. Also, the keywords are always preserved even if the scaling is unitary. (11/17) sys/imio/iki/fxf/fxfupdhdr.x 1. The variable "group" was being used before its value was defined. 2. This routine uses a temporary file in some cases when changing the size of the header. "close(in_fd)" could be called in cases where this temporary file was not used. 3. Added one conditional to fxf_header_diff() to return zero on 'diff' when the file does not exist and we want to have a dataless header. This also works when the want to append only a header. (11/17) sys/imio/iki/fxf/zfiofxf.x The fxf{zrd,zwr} routines were modified to avoid a case where the number of bytes to read/write could be negative. (11/17) pkg/images/imutil/src/imcopy.x - pkg/images/imutil/src/mkpkg pkg/images/lib/imcopy.x Two different versions of the file imcopy.x in the images package were causing inconsistent behavior in the imcopy task. The version images$lib/ was updated and the version in images$imutil/src/ was deleted. (11/18 LED) sys/imio/mkpkg sys/imio/imseti.x sys/imio/imsetr.x IMIO has long had the odd structure for imset where imseti would call imsetr to set integer valued parameters. This worked, but it is always a bad idea to involve the floating point unit in integer computations, and we encountered a portability problem on one platform in code that set a pointer value (SPP pointers are integers but the value can be large enough to exceed the 24 bit integer precision of a single precision real). Imseti and imsetr were therefore broken out as two independent routines with integer or real parameters set directly by one or the other. For backwards compatibility either can still be used however to set any IMIO parameter, subject to the implied conversion. (11/18) sys/imio/imstatr.x + IMIO had imstati and imstats (string) routines but no imstatr, even though there there is a imsetr. Added an imstatr. (11/18) sys/imio/db/imgnfn.x sys/imfort/db/imgnfn.x Modified the imgnfn code, which returns a list of named keywords from the image header matching some pattern, to exclude lines in the header user area which are not named keywords, i.e. not keyword=value assignments. This would include history and comment lines, or blank lines, none of which are considered header keywords. (11/18) sys/imio/db/mkpkg sys/imio/db/idbfstr.x + Added a new internal IMIO routine idb_filstr which filters an input string to remove tabs, newlines, or unprintable control codes. (11/21) sys/imio/db/impstr.x sys/imio/db/imputh.x These routines were modified to use idb_filstr to filter the input text before placing it in the image header. In principle we should not be doing this, but since most existing headers are subject to FITS restrictions it is best to do so (also due to the way this code writes the headers tabs could cause things to be misformatted). (11/21) sys/imio/db/imaddf.x The keyword name is filtered as above, also any embedded whitespace is removed. (11/21) sys/imio/iki/fxf/zfiofxf.x sys/imio/iki/fxf/fxfpak.x sys/imio/iki/fxf/fxfupk.x 1. The fxfzwr routine, used when the FITS kernel writes to a file, would modify the input IMIO/FIO data buffer in some cases on some platforms. This could cause data corruption, or if you were lucky an invalid operand exception. 2. fxfzrd was modifying the input argument boffset. 3. In fxfupk.x, fxf_altmd, which converts from int to double when applying bscale/bzero, would fail for in-place operations (which is how it is being called by the FK). Some other minor changes. We will modify this code further later to eliminate the temp file used when accessing byte image or short images with non-unitary bscale/bzero. There may be some other interim restrictions on updating byte images and so on. (11/24) sys/libc/scanf.c Increased SZ_NUMBUF from 25 to 256. A number with a lot of leading non-significant zeros (0.0000<etc>12345) could overflow an internal temporary string buffer. (12/07) pkg/cl/gram.c 1. In caseset() the first argument is a pointer value but it was declared as an int. Changed to memel. This was causing switch/case to fail on 64 bit platforms like the Alpha. 2. There was also an apparent bug in the case of a string case which could prevent use of character constants as cases. (12/07) pkg/cl/mem.h pkg/cl/stack.c The stack utility functions push/pop/ppush are used to push and pop operands from from the control stack, which is an array of memel (generic integer type memory elements, used to store values of various actual types). "push" is used in a generic way in the CL to push both types of values, but this could cause portability problems on machines where e.g. int and pointer are not the same size. Rather than try to remember to always cast things properly when calling push, the functions were changed to pushmem/ppushmem/popmem, explicit type memel, and push/ppush/pop were changed to macros that automatically coerce arguments of any type to memel. Hence common usages such as "push(0)" and "push(stkop(v))" are still acceptable and should now be portable. (12/07) pkg/cl/gram.c Changed a sscanf call in the code which parses a sexagesimal number to operate in double instead of float. This fixes a problem where a statement such as "=1:12:34.567" would lose precision. (12/08) math/llsq/gen.f This file produced compiler warning about unitialized variables, and indeed some branches of an assigned goto (sorry) were using unitialized variables. It seemed apparent what the author intended, so the variable initializers were moved to above the assigned goto. (12/10) sys/imio/iki/fxf/fxfksection.x sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfrfits.x Some missing sfree() calls were added. (12/10) sys/qpoe/qpio.h Fixed a typo in a definition of "defyblock". (12/10) sys/mwcs/mkpkg sys/mwcs/wfinit.x sys/mwcs/wftnx.x + sys/mwcs/wfzpx.x + sys/mwcs/wfgsurfit.x + Added two new, experimental WCS function drives for TNX (tangent plane plus polynomials) and ZPX (zenithal radial polynomials). These are used for optically distorted astrometric applications, e.g. the NOAO Mosaic wide field camera. (12/10,12) pkg/images/immatch/doc/geomap.hlp Added a entry for the verbose parameter to the geomap help page. (12/11 LED) pkg/images/imgeom/doc/imtrans.hlp pkg/images/imgeom/doc/rotate.hlp Improved the discussion of 90, 180, and 270 degree rotations in the imtranpose and rotate task help pages. (12/11 LED) pkg/math/gsurfit/gsfree.gx pkg/math/gsurfit/gsfreer.x pkg/math/gsurfit/gsfreed.x Fixed a typo in the gsurfit package cleanup routine. (12/11 LED) pkg/images/imutil/src/t_imreplace.x pkg/images/imutil/src/imrep.gx pkg/images/imutil/imreplace.par pkg/images/imutil/doc/imreplace.hlp Added a radius parameter to also replace any pixels within a specified distance of pixels within the replacement window. (12/11 FV) dev/hosts Added mars to hosts file for all server (12/12 MJF) sys/imio/iki/oifwrhdr.x Fixed a typo, IM_V1HDRLEN(im) -> IM_V1HDRLEN(v1). (12/12) unix/shlib/mkshlib.ssol-sc34 The shared library build would fail on Solaris if /opt/SUNWspro was a link rather than a directory, due to "find" not following the link in a file existence test. (12/13) unix/hlib/irafuser.csh The variable OSRELEASE was changed to be insensitive to micro- releases. For example, releases 2.5 and 2.5.1 would both be considered to be "2.5". The effect of this change is that shared libraries will, by default, only be generated to the minor release level (generating a shared image on a Solaris 2.5.1 or 2.6.1 system will result in a S11_2.5.e or S11_2.6.e being generated). (12/13) unix/os/zzstrt.c The shared library mapping code was changed to add a check for minor release shared images when searching for the shared image by OS release. For example, for an IRAF version 11 shared image on a Solaris 2.5.1 system, the search order will be "S11_2.5.1.e", "S11_2.5.e", and "S11.e". With the related change above only the "S11_2.5.e" shared image would be generated for a 2.5 system, but one could manually install separate 2.5 and 2.5.1 shared images if desired and the distributed linked images would automatically use the microrelease version. (12/13) NOTE: Solaris IRAF is now being relinked using Solaris 2.6 instead of 2.5.1. The Solaris 2.5 shared image, of course, is still being linked on a 2.5.1 system. So far as we know there shouldn't be any problem running Solaris executables on any version of Solaris so long as the correct shared image is available. sys/imio/iki/iki.h sys/imio/iki/ikiopen.x sys/imio/iki/ikiaccess.x sys/imio/iki/ikiparse.x sys/imio/iki/ikirename.x sys/imio/iki/ikidelete.x sys/imio/iki/ikicopy.x The iki_access routine was changed to query all image kernels to see if they recognize a given image, and return ERR in this case. This happens when there are multiple images with the same root name but with different image types, and the image was referred to ambiguously (e.g. a directory contains "pix.imh" and "pix.fits" and the image name is given as "pix"). The IKI copy, delete, and rename operations will abort with an "ambiguous image name" error if this situation occurs. The iki_open routine (immap) will invoke the ambiguous image error when opening an existing image and multiple images with the given name exist, however it will allow multiple images to be created or existing images to be clobbered (clobber control is implemented at the image kernel level). A kludge had to be added to iki_parse to provide special treatment for the standard testimage dev$pix. Otherwise an ambiguous image error would result due to having dev$pix.imh and dev$pix.hhh in the same directory, both matching "dev$pix". pix.hhh is not a real image, merely a template used to construct new STF images, but it is used in existing applications code (STSDAS) hence could not easily be renamed. (12/13-14) sys/imio/iki/oif/oifaccess.x To implement the above it was necessary to drop support for imagefiles with no extension from the OIF kernel. It is time we got rid of this feature anyway. There probably aren't any existing OIF images that don't have an extension, but if there are they can be renamed and still be read. (12/14) sys/imio/imaccess.x The imaccess routine in IMIO will return YES if a single image exists with the given name, NO if no image exists with the given name, and will take an SYS_IKIAMBIG error exit (ambiguous image name) if multiple images exist with the same name. I considered having imaccess return ERR in the case of multiple images, but this would have been an interface change, e.g. imaccess==YES could fail even if the named image existed. An error handler can still be used to detect this situation. (12/14) sys/libc/cimaccess.c The LIBC routine c_imaccess (and the CL imaccess function) will return ERR rather than abort, if the ambiguous image error occurs. (12/14) lib/syserr.h lib/syserrmsg Added the SYS_IKIAMBIG (ambiguous image name) error event. (12/14) sys/NAMES sys/INDEX + Installed an updated version of the old forgotten INDEX file and added a new file NAMES. INDEX provides an index of all system library procedures. NAMES provides the mapping between long source file names and 6-character library names. NAMES can be used to check for system library name collisions with applications procedure names. (12/14) pkg/images/immatch/src/linmatch/rglscale.x Fixed a floating point operand error that could occur if the scaling algorithm was one of "mean", "median", or "mode", and one or more of the reference image regions had a zero valued mean, median, or mode. The error was in the bscale and bzero error computation. (12/15) dev/graphcap A few dozen lines at the end of the graphcap file somehow got replaced with NULs; the size of the file did not change so it looks like some sort of bizarre system problem. Replaced the file with an earlier version after a diff/merge to verify that the bulk of the file had not changed. Propagated to Lyra and Vega for platform upgrade testing. (12/16) pkg/images/lib/skywcs.h pkg/images/lib/geomap.h pkg/images/lib/geofit.gx pkg/images/lib/geofit.x pkg/images/lib/rgccwcs.x pkg/images/imcoords/ccfind.par pkg/images/imcoords/ccmap.par pkg/images/imcoords/ccsetwcs.par pkg/images/imcoords/cctran.par pkg/images/imcoords/ccxymatch.par pkg/images/imcoords/src/t_ccfind.x pkg/images/imcoords/src/t_ccmap.x pkg/images/imcoords/src/t_ccsetwcs.x pkg/images/imcoords/src/t_ccxymatch.x pkg/images/imcoords/src/t_ccfunc.x pkg/images/imcoords/src/ccfunc.x pkg/images/imcoords/src/ccxytran.x pkg/images/imcoords/doc/ccfind.hlp pkg/images/imcoords/doc/ccmap.hlp pkg/images/imcoords/doc/ccsetwcs.hlp pkg/images/imcoords/doc/cctran.hlp pkg/images/imcoords/doc/ccxymatch.hlp Modified the astrometry routines to support the experimental function drivers tnx and zpx as well as the other new function drivers. (12/15 LED) pkg/images/immatch/src/linmatch/lsqfit.h pkg/images/immatch/src/linmatch/rglscale.x pkg/images/immatch/src/linmatch/rgliscale.x pkg/images/immatch/src/linmatch/rglsqfit.x pkg/images/immatch/src/linmatch/rglplot.x Fixed several bugs in the linmatch bad regions handling code that could result in floating point errors in the fit and other problems if the reference image regions shifted to the input image coordinate system were entirely or partially off the input image. Modified the graphics routines to window the fits more appropropriately in the case where the majority of the input data is bad for one reason or another (12/19 LED). doc/newsfile doc/v211revs.hlp + Added the V2.11 revisions summary to the newsfile ("news" command in IRAF) and to the DOC archive. (12/22) sys/fmtio/evvexpr.gy In the xvv_quest code (the "?" conditional-expression operator) the local variable nelem was not being initialized in certain circumstances. (12/23) --------------------------------- V2.11.1 patch released. (12/23 1997) dev/hosts Added solaris machine mogollan (1/16/98 MJF) sys/tty/ttyopen.x A corrupted termcap file with a few thousand zero bytes at the end would cause ttyopen to segvio when attempting to fetch an entry not found, and hence reading into the zero data region. (1/16) dev/termcap This end of this file had been replaced by zero bytes. The first 79 512 byte blocks were valid data and the rest of the file was zeroed. This is the same problem seen with graphcap earlier! It still looks like a system problem. A rdist update a while back must have propagated the error to lepus where it was causing a segvio in PC-IRAF. Replaced this file with an older version on ursa, after a diff to check for revisions. (1/16) sys/imio/iki/ikiextn.x The iki_validextn() function, used to test whether a file extension is valid for a given image format, was not rejecting extensions such as "extnXXX" which match the first few characters of a valid extension, but which are longer strings. (1/20) dev/hosts Added IRIX machine almond at the WIYN (1/21/98 MJF) pkg/cl/login.cl Changed the version check string for V2.11. (1/21) pkg/cl/modes.c This routine was calling c_stggettline as (fd,buf,maxch) but since stggetline is patterned after FIO getline it uses a SZ_LINE buffer and takes no maxch argument. The CL code was using a 512 char buffer, which is plenty large enough, but with the recent changes to buffer sizes in V2.11, SZ_LINE is now 1023 and is hence larger than 512. Even this would not normally be a problem as the actual string read never exceeds 512 chars, however the string packing routine called always sets the last char in the output buffer to EOS to truncate strings that are larger than the output buffer. Hence, a very subtle buffer overrun could occur. This showed up as a segvio during CL logout on a Linux system. Since C allocates auto storage on the stack, the memory overrwrite was overriting the frame pointer for a function call in c_main, and the RET instruction in execute was vectoring off into segvio land. Nasty stuff. (1/23) sys/unix/os/zwmsec.c Replaced the setitimer-based zwmsec code by a version that can use either usleep() or the old setitimer code. (1/23) sys/imfort/imcrex.x Added a line of code to set IM_ACMODE to NEW_IMAGE. The imwrhdr code, used to update the image header, sets certain fields only if a new image is being created. (2/03) sys/imio/imsetbuf.x Modified to disable "fast" i/o if swapping is needed. (2/05) pkg/images/lib/geograph.gx pkg/images/lib/geograph.x Modifed the plot labels to say "reject =" instead of "sigrej = " to maintain naming consistency with the reject parameter. (2/23/98 LED) unix/hlib/buglog.csh Modified to create V2.11 bugs instead of V2.10 bugs. The buglog file is in iraf/v211, but this is a link to the v2.10 buglog to allow a common buglog file to be used for both. (2/24) sys/imio/iki/oif/oifwrhdr.x Modified oif_trim() to check for a nonzero string count so that it does not call alcrc with a negative char count, which could cause it to corrupt memory. (2/27) noao/mkpkg Added architecture enties for "irix", "rs6000", and "redhat". (3/03) images/lib/geogmap.gx images/lib/geogmap.x The calls to gt_colon were missing an argument so any gtools command would cause the geomap or ccmap tasks to crash. It looks as though the calling sequence for this routine changed a long time ago but geomap never picked up the change. (3/11 LED) unix/boot/xyacc/y1.c unix/boot/xyacc/y3.c unix/boot/xyacc/y4.c Cleaned up some poorly formed comments. These were of the form /* ... /* ... */, i.e. the opening and closing forms didn't match. This caused a problem with the C compiler on AIX4. (3/11) sys/gio/cursor/gtrwsclip.x This file contained an expression ((tu <= 0) != (tv <= 0)) which is technically illegal (in Fortran) as != is an arithmetic operator and the operands are logical. Replaced the above expression by the equivalent (! ((tu <= 0 && tv <= 0) || (tu > 0 && tv > 0))) which, while less clear, avoids the type clash. (3/14) sys/gio/stdgraph/stggim.x This file contained a couple instances of an AND of a short variable and the constant 017B, an integer, causing a short/int type mismatch. Changed the 017B to use a type variable of type short for the mask value. (3/14) sys/plio/plp2l.gx sys/plio/plp2r.gx These files contained a couple of instances of max(0,<short>) constructs which caused an integer/short type mismatch. Had to replace the numeric 0 instances by a short variable. (3/14) dev/hosts removed virgo (4/13 MJF) dev/termcap Added an entry for lwdp. (4/13) dev/hosts added kalahari (5/7/98 MJF) pkg/system/references.cl Added the switch "metacharacters=yes" (the default) to several calls to the MATCH task in this script. A user had changed the default value of this parameter, causing the references task to fail. (5/08) sys/gio/imdkern/idk.x sys/gio/imdkern/imdpcell.x dev/graphcap Changed BPW from 8 to 32 (nbits used per integer word of the IDK image bitmask); this increases the encoding efficiency of the bitmask to the maximum to reduce the size of the internal IDK frame buffer bitmask used for overlay graphics. Increased the maximum frame buffer size from 2048 square to 8192 square. Changed the max resolution for imdkern to 8192x8192 in the graphcap entry. (5/19) dev/hosts Changed pisces to ssun (5/28/98 MJF) dev/hosts added 'defiant' to the list (5/29/98 MC) pkg/images/immatch/src/imcombine/t_imcombine.x pkg/images/immatch/src/imcombine/icombine.gx pkg/images/immatch/src/imcombine/ic_rmasks.x + pkg/images/immatch/src/imcombine/ic_log.x pkg/images/immatch/src/imcombine/mkpkg pkg/images/immatch/imcombine.par pkg/images/immatch/doc/imcombine.hlp Added a new output which is a pixel mask identifying which pixel in which input image is rejected or not included in the final output. (5/15/98, Valdes) pkg/images/tv/display/dspmmap.x The steps to check if an image and mask have an integer relationship (integer sampling and integer offsets) in their physical coordinate systems could fail because real precision was not high enough in MWCS transformation calls. Changed variables and MWCS calls to double. (5/29/98, Valdes) dev/hosts Added loaner-1 (6/3/98 MJF) pkg/images/imutil/doc/imexpr.hlp Added an example of how to create a circular pixel mask. (6/8/98 MJF) dev/hosts Added tesla (6/12/98 MJF) pkg/dataio/fits/fits_cards.x Added a check for pre-existing IRAFNAME keywords to the wfits task. (6/8/98 LED) sys/imfort/imopnx.x The value of the user variable min_lenuserarea was being read but was not being used correctly to allocate the header buffer. Changed the calc of len_hdrmem to len_hdrmem = LEN_IMHDR + (len_ua / SZ_STRUCT). (6/22) pkg/images/tv/imedit/epix.h pkg/images/tv/imedit/t_imedit.x pkg/images/tv/imedit/epcolon.x pkg/images/tv/doc/imedit.hlp The temporary editing buffer image was made into a unique temporary image rather than the fixed name of "epixbuf". (6/30/98, Valdes) dev/hosts Added makalu (7/8/98 MJF) unix/shlib/mkshlib.sos4 Had to change a "-lresolv" to "-lresolv -l44bsd" to get things to link due to recent changes in SunOS on tucana. (7/13) pkg/dataio/import/t_import.x Modified to initialize the 'use_cmap' flag to on by default so 8-bit colormap images will be converted more intuitively. (7/14/98 MJF) pkg/images/immatch/src/imcombine/t_imcombine.x The internal calculation type was changed from the highest precedence type of the input images to the highest of the input and output. This allows setting the output type to be real to force computation in real for integer input images. Not doing this could cause severe truncation errors if the users specify their own scaling values. (7/14/98, Valdes) dev/hosts Removed: katmai jannu Changed to Solaris: grus seurat Added (Solaris): xari chopin bluemoon magenta matisse makalu mele gronk Added (SunOS): grotrian (7/16/98 MJF) dev/hosts Changed deneb to solaris (7/22/98 MJF) pkg/images/immatch/src/imcombine/icgdata.gx Needed to initialize the number of pixels combined for the case where there is initially no data. (7/29/98, Valdes) pkg/images/tv/imexamine/stfmeasure.x The logic in STF_FIT for determining the points to fit and the point to use for the initial width estimate was faulty allowing some bad cases to get through. (7/31/98, Valdes) pkg/math/nlfit/nlchomat.gx pkg/math/nlfit/nlchomatr.x pkg/math/nlfit/nlchomatd.x Modified the singular matrix test to make a comparison against EPSILON instead of 0.0 to avoid floating point problems. (8/1/98, Davis) pkg/images/tv/display/t_display.x Added checks for a data range of zero, or which rounds to zero for short data, to avoid floating divide by zero errors. Rather than resort to a unitary transformation in this case the requested data range minimum is decreased by one and the maximum is increased by one. (8/11/98, Valdes) unix/os/zfioks.c Added a new environment variable "KSRSH". This can be used to define the RSH command to be used to make network connections. The default value is "rsh" (or the equivalent "remsh" on one old system). For example, one can set KSRSH=ssh to cause IRAF networking to use ssh instead of rsh (ssh is a more secure version of rsh that uses strong authentication). (9/08) pkg/images/immatch/doc/geomap.hlp Changed references to the old register task to gregister which is the new task name. (9/10, Davis) pkg/images/imutil/src/t_imarith.x Modified the imarith task so that header updating would only occur if noact=no, to fix a segmentation violation error. (9/16, Davis) dev/hosts Removed nonexistent benhur and monoceros (9/21, MJF) lib/time.h sys/etc/cnvtime.x sys/etc/cnvdate.x Minor changes were made to print the year using 4 digits instead of 2, to make this code Y2K compliant. (10/29) pkg/images/immatch/src/imcombine/icsetout.x Fixed a problem with input images that have dimensional reduction. (10/6, Valdes) sys/mwcs/wfmspec.x The multispec format WCS driver was modified to normalize the weights array (adjust the sum of the weights to 1.0) if they are not already normalized. IRAF code should produce normalized weights, but there were cases where unnormalized weights could get into the WCS, and this could cause systematic errors in radial velocities. (11/18) dev/hosts Added solaris machine lilawati (12/1, MJF) pkg/math/iminterp/asitype.x pkg/math/iminterp/asisinit.x pkg/math/iminterp/asigetr.x pkg/math/iminterp/doc/asitype.hlp pkg/math/iminterp/doc/asisinit.hlp pkg/math/iminterp/doc/asigetr.hlp Three new routines were added to the 1D image interpolation package: asitype, asisinit, and asigetr. (12/28 LED). pkg/math/iminterp/msitype.x pkg/math/iminterp/msisinit.x pkg/math/iminterp/msigetr.x pkg/math/iminterp/doc/msitype.hlp pkg/math/iminterp/doc/msisinit.hlp pkg/math/iminterp/doc/msigetr.hlp Three new routines were added to the 2D image interpolation package: msitype, msisinit, and msigetr. (12/28 LED). pkg/math/iminterp/im1interpdef.h pkg/math/iminterp/iminterp.h pkg/math/iminterp/iminterp.hd pkg/math/iminterp/iminterp.men pkg/math/iminterp/iminterp.help pkg/math/iminterp/iminterp.spc pkg/math/iminterp/arbpix.x pkg/math/iminterp/arider.x pkg/math/iminterp/arieval.x pkg/math/iminterp/asider.x pkg/math/iminterp/asieval.x pkg/math/iminterp/asifit.x pkg/math/iminterp/asifree.x pkg/math/iminterp/asigeti.x pkg/math/iminterp/asigrl.x pkg/math/iminterp/asiinit.x pkg/math/iminterp/asirestore.x pkg/math/iminterp/asisave.x pkg/math/iminterp/asivector.x pkg/math/iminterp/ii_1dinteg.x pkg/math/iminterp/ii_cubspl.f pkg/math/iminterp/ii_eval.x pkg/math/iminterp/ii_pc1deval.x pkg/math/iminterp/ii_polterp.x pkg/math/iminterp/ii_sinctable.x pkg/math/iminterp/ii_spline.x pkg/math/iminterp/mkpkg pkg/math/iminterp/doc/arbpix.hlp pkg/math/iminterp/doc/arider.hlp pkg/math/iminterp/doc/arieval.hlp pkg/math/iminterp/doc/asider.hlp pkg/math/iminterp/doc/asieval.hlp pkg/math/iminterp/doc/asifit.hlp pkg/math/iminterp/doc/asifree.hlp pkg/math/iminterp/doc/asigeti.hlp pkg/math/iminterp/doc/asigetr.hlp pkg/math/iminterp/doc/asigrl.hlp pkg/math/iminterp/doc/asiinit.hlp pkg/math/iminterp/doc/asirestore.hlp pkg/math/iminterp/doc/asisave.hlp pkg/math/iminterp/doc/asisinit.hlp pkg/math/iminterp/doc/asitype.hlp pkg/math/iminterp/doc/asivector.hlp The 1D interpolation routines were modified to support look-up table sinc interpolation and drizzle resampling. Minor improvements in weighting were made to the existing 1D sinc routines. (12/28 Davis) pkg/math/iminterp/im2interpdef.h pkg/math/iminterp/iminterp.h pkg/math/iminterp/iminterp.hd pkg/math/iminterp/iminterp.men pkg/math/iminterp/iminterp.help pkg/math/iminterp/iminterp.spc pkg/math/iminterp/mrider.x pkg/math/iminterp/mrieval.x pkg/math/iminterp/msider.x pkg/math/iminterp/msieval.x pkg/math/iminterp/msifit.x pkg/math/iminterp/msifree.x pkg/math/iminterp/msigeti.x pkg/math/iminterp/msigetr.x pkg/math/iminterp/msigrid.x pkg/math/iminterp/msigrl.x pkg/math/iminterp/msiinit.x pkg/math/iminterp/msirestore.x pkg/math/iminterp/msisave.x pkg/math/iminterp/msisinit.x pkg/math/iminterp/msisqgrl.x pkg/math/iminterp/msitype.x pkg/math/iminterp/msivector.x pkg/math/iminterp/ii_bieval.x pkg/math/iminterp/ii_greval.x pkg/math/iminterp/ii_pc2deval.x pkg/math/iminterp/ii_spline2d.x pkg/math/iminterp/mkpkg pkg/math/iminterp/doc/mrider.hlp pkg/math/iminterp/doc/mrieval.hlp pkg/math/iminterp/doc/msider.hlp pkg/math/iminterp/doc/msieval.hlp pkg/math/iminterp/doc/msifit.hlp pkg/math/iminterp/doc/msifree.hlp pkg/math/iminterp/doc/msigeti.hlp pkg/math/iminterp/doc/msigetr.hlp pkg/math/iminterp/doc/msigrid.hlp pkg/math/iminterp/doc/msigrl.hlp pkg/math/iminterp/doc/msiinit.hlp pkg/math/iminterp/doc/msirestore.hlp pkg/math/iminterp/doc/msisave.hlp pkg/math/iminterp/doc/msisinit.hlp pkg/math/iminterp/doc/msisqgrl.hlp pkg/math/iminterp/doc/msitype.hlp pkg/math/iminterp/doc/msivector.hlp The 2D interpolation routines were modified to support sinc and look-up table sinc interpolation and drizzle resampling. (12/28 Davis) pkg/images/imgeom/magnify.par pkg/images/imgeom/src/t_magnify.x pkg/images/imgeom/doc/magnify.hlp Installed a new version of the magnify task which support 1D and 2D sinc and look-up table sinc interpolation and 1D and 2D drizzle resampling. Modified the out-of-bounds pixel handling algorithm to conform to the other image resampling tasks. (12/28 Davis) pkg/images/imgeom/imshift.par pkg/images/imgeom/src/t_imshift.x pkg/images/imgeom/doc/imshift.hlp Installed a new version of the imshift task which supports 2D sinc and look-up table sinc interpolation and 2D drizzle resampling. (12/28 Davis) pkg/images/imgeom/shiftlines.par pkg/images/imgeom/src/t_shiftlines.x pkg/images/imgeom/src/shiftlines.x pkg/images/imgeom/doc/shiftlines.hlp Installed a new version of the shiftlines task which supports 1D sinc and look-up table sinc interpolation and 1D drizzle resampling. (12/28 Davis) pkg/images/immatch/xregister.par pkg/images/immatch/src/t_xregister.x pkg/images/immatch/src/rgximshift.x pkg/images/immatch/doc/xregister.hlp Installed a new version of the xregister task which supports 2D sinc and look-up table sinc interpolation and 2D drizzle resampling. (12/29 Davis) pkg/images/immatch/geotran.par pkg/images/immatch/src/geometry/geotran.h pkg/images/immatch/src/geometry/t_geotran.x pkg/images/immatch/src/geometry/geotran.x pkg/images/immatch/src/geometry/geotimtran.x pkg/images/immatch/doc/geotran.hlp Installed a new version of the geotran task which support 1D and 2D sinc and look-up table sinc interpolation and 1D and 2D drizzle resampling. Modified the out-of-bounds pixel handling algorithm to conform to the other image resampling tasks in the case where the entire input image is in memory. (12/29 Davis) pkg/images/imgeom/rotate.par pkg/images/imgeom/imlintran.par pkg/images/imgeom/doc/rotate.hlp pkg/images/imgeom/doc/imlintran.hlp Installed new versions of the rotate and imlintran tasks (these are scripts which run geotran) which support 2D sinc and look-up table sinc interpolation and 2D drizzle resampling. (12/29 Davis) pkg/images/immmatch/gregister.par pkg/images/immmatch/sregister.cl pkg/images/immmatch/wregister.cl pkg/images/immmatch/doc/gregister.hlp pkg/images/immmatch/doc/sregister.hlp pkg/images/immmatch/doc/wregister.hlp Installed new versions of the gregister, sregister, and wregister tasks (these are scripts which run geotran) which support 1D and 2D sinc and look-up table sinc interpolation and 1D and 2D drizzle resampling. (12/29 Davis) dev/graphcap Added an entry for 'clp2', a new color printer (1/2 MJF) pkg/images/immatch/src/wcsmatch/t_wcscopy.x Modified wcscopy to update the RADECSYS, EQUINOX, and MJD-WCS keywords as well as the mwcs keywords. (1/7/99, Davis) dev/hosts Added solaris machine roadrunner (1/11/99 MJF) dev/devices.hlp Updated devices.hlp to include clp, clp2, and clp2t. Propogated the updated graphcap and devices.hlp files to ursa, gemini, and bigx. (1/13/99 jb) dev/hosts Changed tribble from sparc to solaris (1/13/99 MJF) lib/pkg/gtools.h pkg/xtools/gtools/gtools.h pkg/xtools/gtools/gtvplot.x pkg/xtools/gtools/gtctran.x pkg/xtools/gtools/gtplot.x pkg/xtools/gtools/gtfree.x pkg/xtools/gtools/gtcur.x pkg/xtools/gtools/gtgui.x pkg/xtools/gtools/gtcur1.x pkg/xtools/gtools/gtswind.x pkg/xtools/gtools/gtwindow.x pkg/xtools/gtools/gtget.x pkg/xtools/gtools/gtset.x pkg/xtools/gtools/gtreset.x pkg/xtools/gtools/gtcopy.x pkg/xtools/gtools/gtcolon.x pkg/xtools/gtools/gtinit.x pkg/xtools/gtools/gtlabax.x pkg/xtools/gtools/gtascale.x pkg/xtools/gtools/gthelp.x - pkg/xtools/gtools/gtpage.x - pkg/xtools/gtools/mkpkg A new version of the GTOOLS routines was installed. The internal data structure was extended and colon commands and GUI messages added to support GUI tasks (SPECTOOL, XRV, and XCURFIT). The package interface, the public include file, and all colon and keystroke commands remain unchanged for existing applications. Two routines which were never used were deleted. (12/16/98, FV) pkg/xtools/icfit/icfit.h pkg/xtools/icfit/icgui.x + pkg/xtools/icfit/icguishow.gx + pkg/xtools/icfit/icferrors.gx + pkg/xtools/icfit/icfshow.x + pkg/xtools/icfit/icfvshow.gx + pkg/xtools/icfit/icgaxes.gx pkg/xtools/icfit/icgcolon.gx pkg/xtools/icfit/icgdelete.gx pkg/xtools/icfit/icgfit.gx pkg/xtools/icfit/icggraph.gx pkg/xtools/icfit/icgnearest.gx pkg/xtools/icfit/icgparams.gx pkg/xtools/icfit/icgsample.gx pkg/xtools/icfit/icgundelete.gx pkg/xtools/icfit/icparams.x pkg/xtools/icfit/icerrors.gx pkg/xtools/icfit/icshow.x pkg/xtools/icfit/icvshow.gx pkg/xtools/icfit/mkpkg pkg/xtools/icfit/names.h The package was modified to add colon commands and GUI messages to support GUI tasks (SPECTOOL, XRV, and XCURFIT). The package interface for existing applications remains unchanged and no changes are required to calling programs. (12/16/98, FV) pkg/images/immatch/doc/wregister.hlp pkg/images/immatch/doc/sregister.hlp Added an example of how to do images mosaicing with the wregister and sregister tasks. (1/28/99, LED) bin.sparc/S.e + bin.ssun/S.e + The "S.e" link was restored. This link points to the Sun/IRAF shared image for the development system. It is not required for execution, but is required at compile/link time for edsym.e to be able to update the symbols for the IRAF shared image. This is needed to debug functions in the shared image. (2/11) unix/boot/spp/rpp/mkpkg.sh unix/boot/spp/rpp/ratlibc/mkpkg.sh The ratlibc code was being compiled into a library "libc.a". This caused problems linking rpp.e on Solaris 7, so the name of this internal, temporary library was changed to libratc.a. (2/11) pkg/images/immatch/src/listmatch/t_xyxymatch.x pkg/images/imcoords/src/t_ccxymatch.x Fixed the xyxymatch and ccxymatch tasks so that they work properly when the number of reference files is greater than one and equal to the number of input files. In that case xyxymatch and ccxymatch are supposed to pair up the input and reference files one to one instead of using the last file in the reference file list, as they were doing. (2/22 LED) dev/hosts Added sunos machine arun (3/4/99 MJF) dev/hosts Deleted nonexistant hosts herbie, piscis, pictor, ozzie, and sonoma (3/18/99 MJF) unix/hlib/r1mach.f unix/hlib/d1mach.f unix/hlib/i1mach.f Installed updated versions of these files from the PORT package on netlib. The values for the minimum and maximum IEEE floating point normals were invalid (thanks to Steve Walton for pointing this out). NOTE: even on a machine with IEEE floating point, the file d1mach.f has to be modified to reflect the byte order of the platform IRAF is being ported to. (4/08) lib/time.h sys/etc/dtmcnv.x sys/etc/gmtcnv.x sys/etc/mkpkg unix/hlib/libc/knames.h unix/os/gmttolst.c unix/os/mkpkg unix/os/zgmtco.c 1) A new kernel routine "zgmtco" was added to OS. This gives the correction, in seconds, from LST to GMT. (LST here means local standard time, or clock time). Since IRAF already returns the clock time in LST seconds, this allows either LST or GMT to be determined. Note LST corrects for daylight savings time, the GMT correction takes this into account as well. In practice programs can just ignore daylight savings time and let the kernel worry about it. 2) New routines gmttolst() and lsttogmt() were added to ETC. These convert times (in seconds) to and from LST and GMT. A value of zero can be input to get the correction value. 3) A set of four new routines dtm_encode, dtm_decode, dtm_encode_hms, and dtm_decode_hms were added to ETC. A related flag value was added to <time.h>. "dtm" standard for date/time. These routines convert time expressed in year, month, date, and time of day to and from a string value. A flags value can be used to select the type of time string to be encoded or decoded. Currently DATE-OBS in FITS-Y2K and the old FITS formats are supported. (4/20) pkg/language/language.hd pkg/language/language.men pkg/language/doc/scan.hlp pkg/language/doc/fprint.hlp These help pages were updated to document the CL printf() and scanf() functions added back in V2.10. (4/21/99 MJF) pkg/images/tv/imexamine/iepos.x The output of the 'x' and 'y' keys was not being written to the log file because of a typo. (5/7/99, Valdes) pkg/dataio/fits/wfits.h pkg/dataio/fits/fits_cards.x pkg/dataio/fits/fits_params.x Modified wfits to write the DATE keyword values in the new format (including a time field) and in units of GMT as specified by the new standards. The new format will take effect Jan 1 at 00:0:00 GMT. (5/8/99) pkg/images/lib/skywcs.x Modified the image wcs decoding routines to support both the old and new DATE-OBS format. All tasks in the imcoords and immatch package which decode the image wcs should pick up the change. (5/13/99) pkg/images/imcoords/doc/ccsetwcs.hlp pkg/images/imcoords/doc/imcctran.hlp pkg/images/imcoords/doc/skyctran.hlp pkg/images/immatch/doc/skyxymatch.hlp Added some information about the new DATE-OBS format to the help pages for the ccsetwcs, imctran, skyctran, and skyxymatch tasks. (Davis, May 13, 1999) unix/os/zglobl.c Increased the size of SZ_PROCNAME from 32 to 256 chars. On some systems this is a full pathname, and could overflow the buffer. (5/13) pkg/dataio/import/images.dat Added a database entry for the GOES weather satellite Unidata McIDAS image format (5/14/99 MJF) lib/gio.h This and the next several changes were part of an effort to change GIO to allow long "device names" for GUIs (which may include a GUI file name) to be passed through the graphics stream to the stdgraph kernel. Increased SZ_UIFNAME from 99 to 199 chars. This also increases the size of the dynamically allocated GIO descriptor. (5/14) sys/gio/cursor/gtr.h Increased SZ_TRDEVNAME from 29 to 229. Increased SZ_KERNFNAME from 59 to 259. This also increases the size of the dynamically allocated GTR descriptor. (5/14) sys/gio/stdgraph/stdgraph.h Increased SZ_GDEVICE from 31 to 256. Increased SZ_UIFNAME from 99 to 199. Increased SZ_SBUF from 1024 to 2048. These changes did not change the size of the dynamically allocated stdgraph descriptor, as string space is dynamically allocated in the string buffer. (5/14) pkg/images/imgeom/doc/imlintran.hlp Fixed a bug in the imlintran.hlp page. (5/17 LED) dev/hosts Added pecan and crunch (5/17 MJF) unix/os/zghost.c This routine was calling gethostname() to read the hostname directly into the caller's buffer. This could fail if the hostname were longer than the output buffer. Changed to read the hostname into an internal buffer, and copy this out to the caller's buffer separately, truncating the hostname if necessary. (5/23) pkg/math/iminterp/msisqgrl.x pkg/math/iminterp/msigrl.x Fixed a couple of bugs in the 2D integration routines that I inadvertantly introduced when I upgraded the image interpolation software to handle sinc and drizzle resampling. (6/2 LED) pkg/images/immatch/src/geometry/geotran.x Fixed a type mismatch problem in a call to max that was causing compilation errors on the Dec Station. (6/2 LED) pkg/images/imcoords/src/t_ccsetwcs.x Improved the error message handling in the case when a database records either not be found or could not be successfully decoded by the ccsetwcs task. (6/3 LED) pkg/images/imcoords/src/t_wcsctran.x Fixed a bug in the wcsctran task units initialization code. (6/3 LED) dev/hosts Added vissun-1, a sparc summer student machine (6/4/99 MJF) pkg/images/tv/display/sigm2.x An argument to sigm2_setup was being changed by the routine and this changed argument was then incorrectly used by the calling program. The argument was made input only. (6/15/99, Valdes) pkg/images/immatch/src/imcombine/icsetout.x Changed to better parse the offset types. The WCS correction for offsets was incorrect. (6/17/99, Valdes) pkg/math/slalib/ Upgraded slalib from version 1.6.3 to version 2.3.0. There are seventeen new routines in the library. Most of these either deal with converting between the FK5 to ICRS (Hipparcos) equatorial coordinate systems, or with computing orbital elements for solar system objects. (6/18/99, LED) pkg/images/immatch/src/geometry/t_geotran.x Fixed a bug in the transform list decoding routine that was preventing geotran from using the same transform for all the input images. This bug was introduced when geotran was modified to use the image template instead of the file template expansion code to manage the record list. (Davis, June 18, 1999) pkg/images/immatch/doc/geomap.hlp Added some notes and an example to explain and illustrate the role of the reference and input coordinates for different applicatons, i.e. image resampling and coordinate transformation. (Davis, June 18, 1999) pkg/math/slalib/fk52h.f pkg/math/slalib/fk5hz.f pkg/math/slalib/h2fk5.f pkg/math/slalib/hfk5z.f Fixed a bug in the ICRS <-> FK5 conversion routines that was producing incorrect results for right ascensions >= 12 hours. (Davis, June 23, 1999) pkg/images/lib/skywcs.h pkg/images/lib/skywcs.x pkg/images/imcoords/src/ttycur.key pkg/images/imcoords/src/skycur.key pkg/images/imcoords/doc/ccfind.hlp pkg/images/imcoords/doc/ccmap.hlp pkg/images/imcoords/doc/ccsetwcs.hlp pkg/images/imcoords/doc/skyctran.hlp pkg/images/imcoords/doc/imcctran.hlp Added support for the ICRS system to the images.imcoords package. (Davis, June 24, 1999) pkg/images/imcoords/src/t_starfind.x Modified the starfind task default output file naming code to deal rationally with fits image extension names. (Davis, June 26, 1999) pkg/images/imcoords/src/t_ccsetwcs.x pkg/images/imcoords/src/ccxytran.x Modified the ccsetwcs and cctran tasks to read a zpx (or any other wcs transform with parameters) from the database produced by ccmap. These tasks had not been correctly updated when the changes were made to the immatchx versions of these tasks. (Davis, June 26, 1999) pkg/utilities/surfit.par pkg/utilities/t_surfit.x pkg/utilities/doc/surfit.hlp Modified the utilities task surfit to support the surface fitting package half cross-terms option. This involved changing the type of the parameter xterms from boolean to string. (Davis, July 6, 1999) unix/boot/bootlib/envinit.c Restructured a variable initializer (*fname = ++ip) due to a compiler warning. (7/09) unix/shlib/mkshlib.ssol-sc34 Added support for the Version 5.0 Sun compilers. (7/09) pkg/language/doc/fprint.hlp The help for "printf" wasn't working; added an entry to the .help entry at the top of the help page to enable this. (7/10) sys/etc/dtmcnv.x Fixed a minor typo in a comment. (7/11) sys/imio/iki/fxf/mkpkg sys/imio/iki/fxf/fxfencode.x sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfrfits.x sys/imio/iki/fxf/fxfupdhdr.x Installed the Y2K changes to the FITS kernel. The affected keywords are "DATE" and "IRAF-TLM". "DATE" is the date the FITS image was written by the FITS kernel; this is not to be confused with DATE-OBS, which is the date of observation of the image. "IRAF-TLM" is the FITS version of the IRAF time of last modification of the imagefile. DATE is written in the old FITS date format through the end of 1999, after which the Y2K/ISO format is used. IRAF-TLM, which is an internal keyword to the FK, is always written in the new format in the new version of the code. (7/11) sys/imio/iki/fxf/fxf.h sys/imio/iki/fxf/fxfclose.x sys/imio/iki/fxf/fxfopix.x sys/imio/iki/fxf/fxfrdhdr.x sys/imio/iki/fxf/fxfupdhdr.x sys/imio/iki/fxf/fxfupk.x sys/imio/iki/fxf/zfiofxf.x Installed the changes for "on-the-fly" conversion of unsigned byte images, and short images where the output pixel is real (FK has to apply bscale/bzero scaling). The conversion is done in place in the output buffer during an image read. The support for OTF scaling is read-only, i.e., these images types can be read, but not written. I don't think this is strictly necessary, but this is a limitation of the current code (Note: read-write access to such images will probably fail with the current implementation; read-only access to e.g. byte images is still a useful feature however). The old creation of a temporary image to do the scaling has been removed. (7/11) dev/ypix.imh A new version of the WCS test image (header) dev$ypix (prepared by L.Davis) was installed. This version incorporates the new Y2K format dates for testing, and has a year 2000 equinox FK5 WCS; otherwise it is equivalent to wpix. The old version is still available as dev$wpix, in addition to the old standard dev$pix. (7/12) sys/imio/iki/plf/plfupdhdr.x sys/imio/iki/plf/plfopen.x These routines were changed to use IM_HDRFILE instead of IM_NAME to store the filename of the mask file. IM_NAME is used for the logical image name in error messages, and only provides 80 chars, so mask image pathnames could be truncated if if IM_NAME were used for a file pathname. (7/12) sys/imio/iki/fxf/fxfupdhdr.x In the process of reviewing and cleaning up IM_NAME usage, deleted an unused reference to "imgcluster (IM_NAME(im), ...)". (7/12) sys/imio/immapz.x Revised the code which writes IM_NAME to protect against overflow of this string. The image name is formatted into a SZ_PATHNAME string, and if the resultant image name is too long to fit in IM_NAME, is regenerated using only the root of the image name. Previously bad things would happen if the sprintf overflowed IM_NAME. (7/12) sys/imio/iki/fxf/fxfupdhdr.x Fixed a minor bug what was causing the new format dates to be written with some trailing blanks following the date string. (7/13) sys/imio/iki/fxf/fxf.h Updated the FITS kernel version string (written to the ORIGIN kw) to read "NOAO-IRAF FITS Image Kernel July 1999". (7/13) sys/gio/gmsg.x This code was changed to use STDERR rather than STDOUT to send messages to GUIs. Formerly, if the stdout of a GUI task was redirected this could cause GUI messages (gmsg) to never reach the GUI (this is of course still possible using STDERR, but it is less likely that someone will need to redirect the STDERR of an interactive GUI). The text stream are used for messaging because messages can be any size; messages of hundreds of KB are possible, e.g. when sending large GUI files, or documentation text. (Something like the message bus is needed to fully address this problem). (7/14) dev/graphcap Added a new xgterm entry "xgterm-nogui", which is identical to the xgterm entry but which has GUI messaging (gmsg) disabled. This logical device will completely disable GUIs but still permit vector graphics. It also disables the builtin default ED (xgterm.gui), but the default xgterm GUI built into xgterm itself should kick in in this case when graphics mode is entered. We don't plan to use xgterm-nogui, but it could be useful as a fallback in case of problems, or for testing. (7/14) sys/mwcs/iwewcs.x The code which checks CTYPEi for known function types was tightened to prevent confusion over names that share the same prefix. Hence, function names like "linear", "sampled", and "multispec" must now be exact matches. The prefixes "Xlon" and "Xlat" must now be "Xlon-" and "Xlat-" to be recognized (where X is some character like "g"). (LD Aug98, DT 7/14) sys/imfort/imcrex.x Added the statement "Memc[IM_USERAREA(im)] = EOS" to initialize the user area of a newly created image (as IMIO already does in imio$iminie.x). Without this, there were cases where a new image could be created with arbitrary junk in the user area. (MC Aug98, DT 7/14) sys/plio/pllnext.x After obtaining an opcode I_SH, the code does not update the value of ld_ip(ld) even though ip has been incremented. Adding ld_ip(ld) = ip + 1 in the block 'case I_SH' statement solved the bug presented when trying to copy a pixel list array into a subarray of an existent pixel list array. (NZ Sep98, DT 7/14) sys/plio/plloadf.x sys/plio/plsavef.x Fixed a minor typo: various "mii_" names where the actual MII names do not have an underscore. This is harmless as SPP omits the underscores when it makes the external name, but it is preferable to be more consistent. (7/14) sys/vops/asok.gx The algorithm used in this routine was found to be extremely slow in cases where many or all of the elements of the input area were equal. Replaced by a different algorithm from Wirth which appears to avoid the problem. (LD Mar 99, DT 07/14) sys/pmio/pmrop.x sys/pmio/pmsten.x pm_rop, used to perform a rasterop on an image mask, had a problem where the operation could be performed on an area one pixel too large in cases where an image section was in effect on the image associated with the image mask. The code was revised to fix this problem and add some more clipping logic in the process. The pm_stencil routine is very similar to pm_rop (pm_stencil performs a rasterop through a stencil mask) and was similarly modified. (NZ Sep98, DT 07/15) unix/os/zfiotx.c Fixed a case where the internal descriptor "port" (used for terminal devices) could be referenced on a non-terminal device, causing a nil pointer reference. This could occur when doing raw mode reads from the terminal, but writing to an output text file instead of the terminal. (NZ Feb99, DT 07/15) sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfencode.x sys/imio/iki/fxf/fxfupdhdr.x While testing the new FK we found that files written under the new system, using a new ISO Y2K format for DATE-TLM, could not be read under earlier versions of IRAF. The fxf_encode_date routine was changed to add support for formatting DATE-TLM in the old format (which is already Y2K compliant in any case). The call to fxf_encode_date in fxfupdhdr.x now calls it in such a way that the old DATE-TLM format will continue to be used until 2010, by which time one would hope that people will have upgraded to a more recent version of IRAF so that the ISO format version of the keyword can be used. (07/15) unix/os/zfiomt.c Incredibly, this file would not compile in a bootstrap on tucana (SunOS) even though it had not changed in a long time. It turned out that zfiomt contained a structure field named "isset" which aliased a system macro in <sys/param.h>. Something must have changed in SunOS to cause this file to be included. The problem was solved by changing "isset" in zfiomt.c to "valset". (7/15) lib/imio.h Increased the default file buffer size used by IMIO a factor of 4 from 65536 to 262144. The units are XCHAR, so in byte units the new default image file buffer size increased from about 128 KB to about half a megabyte (about the size of dev$pix). Note that applications can override the default buffer size with an imset option, and any such existing applications will be unaffected by this change (imcombine for example probably controls the image buffer sizes in order to have many images open at once). Ordinary imaging tasks should function with fewer i/o operations however. (7/15) unix/hlib/config.h 1. Increased the size of the file pushback buffer from 512 to 1024. Not a big deal as it gets incremented anyway if overflow occurs. 2. Changed LEN_RANDBUF from 1 to 8. LEN_SEQBUF remains at 8 as before. Random mode FIO buffers are LEN_RANDBUF*blksize, hence these have increased in size from 512 bytes to 4KB (random mode i/o is rarely used). Sequential mode FIO buffers are LEN_SEQBUF *optbufsize, where optbufsize is returned by the file driver. Sequential mode (fseti (fd, F_ADVISE, F_SEQUENTIAL) is also little used however. Most file operations use the unscaled "optbufsize" returned by the kernel driver (see below). Note config.h contains a few size definitions which are not actually used any longer in the code, since these values now come from the device drivers are are tuned for each device and host system. Hence these older values were unchanged. (7/15) unix/hlib/libc/kernel.h Increased the optbufsize for a binary file from 4096 to 32768. The static file optbufsize was similarly increased, but static (mapped) files are little used in the current system. All the other optbuf sizes remained the same. The network devices, process communications buffers, and so on all remain at 4KB since this value is a good match for the buffer sizes used in the Unix kernel. Hence, ordinary binary file i/o operations now use 32 KB buffers instead of 4 KB buffers. The special cases of random mode binary file i/o and sequentially optimized binary file i/o have default buffer sizes of 4 KB and 256 KB respectively. These should be reasonable, safe, and efficient buffer sizes for most applications. (7/15) sys/imio/iki//fxf.h sys/imio/iki//fxfrdhdr.x sys/imio/iki//fxfupdhdr.x 1. The FK was revised to handle the case of writing to an image which is being accessed using on-the-fly pixel conversion, e.g., a byte image or a short image with scaling to real. The current version of the FK only supports reading such images, so an attempt to write pixels if OTF scaling is in effect causes an i/o error. Opening the image read-write is permitted however, so that the header can be edited. 2. The zfio code was reworked to eliminate the high level calls which have crept in recently (syserr etc.). A FIO driver can make only low level calls, e.g. to pure code routines or the iraf kernel. Because the file driver is called by FIO, calling anything that might call FIO can result in recursion and various nasty situations we would prefer to avoid. To aid in implementing this a status variable FIT_IOSTAT (as well as some extra space) was added to the main FK descriptor. A read or write call will initially set this to OK, but set a nonzero value if an error occurs or the i/o operation is completed. The ZAWAIT routine later returns the status to the caller. It appeared that the old code was not always checking for and returning the low level i/o status. (7/15) pkg/cl/main.c pkg/cl/cl.x pkg/cl/cl.par The CL was modified to add basic support for using the CL as a host shell for shell scripts. When this is done the shell script effectively replaces the login.cl file, hence startup is faster and flexibility is maximized, but the script is responsible for any initialization normally done by login.cl (e.g. loading packages). This implementation is still fairly basic, e.g. the argument handling facilities are limited, but it works. On a Unix system, the first line of a script which calls the CL as a shell should be something like "#!/usr/local/bin/cl.e -f", where /usr/local/bin/ would be either a copy of the cl.e executable, or a link such as cl.e -> /iraf/iraf/bin.ssun/cl.e (don't call the link "cl", as this name is already used for the shell script used to start up an interactive iraf session). (RS, DT 7/15) pkg/system/references.cl pkg/system/help/getoption.x pkg/system/help/prhelp.x pkg/system/help/prhlpblk.x pkg/system/help/prfile.x pkg/system/help/help.h The REFERENCES task was modified to add the package name to the output line for each task. Usage is unchanged, i.e., type refer upd+ to regenerate the uparm$quick.ref file (using your current list of defined packages) then "refer pattern" to find all references matching the given pattern. (MF Jun98, DT 7/15) unix/hlib/zzsetenv.def Changed the version string to "NOAO/IRAF V2.11.2EXPORT". (7/17) pkg/xtools/gtools/gtreset.x This procedure was incorrectly declared as a function. (7/21, FV) pkg/xtools/icfit/icgfit.x This routine is called with a graphics descriptor for interactive fitting. The descriptor is set in an internal structure. Other procedures, which may be called both for interactive and non-interactive fitting, check if the descriptor is not NULL before sending GUI messages. The problem occurs if this procedure is first called interactively and then the non-interactive fitting routine is called later (maybe after a deactivate workstation or closing the descriptor) resulting in GUI messages being sent when not in interactive mode. The solution is to return the internal descriptor value to NULL after finishing the interactive fitting and returning from this procedure. (7/22, FV) unix/hlib/mkfloat.csh Revised the status messages slightly to make it more clear what the program is doing. The new format is "Doing blah... done". (7/27) dev/hosts Added dbell's RH6 machine "shea". (7/28 MJF) pkg/math/iminterp/ii_greval.x pkg/math/iminterp/asigetr.x pkg/math/iminterp/msirestore.x Fixed an uninitialized variable problem in the ii_grdriz routine that was detected by the OpenVMS compiler. Also fixed a couple of bugs in the new unused routine asigetr and in the new msirestore that were detected with spplint. (8/3 LED) sys/imio/iki/fxf/zfiofxf.x Added some conditional byte swapping for type short data in the on-the-fly conversion code. (8/09) pkg/images/imutil/src/t_imarith.x Added a check for division by zero in the header keywords. A warning is printed, the keyword is not updated, and the task completes without aborting. (8/10 FV) pkg/xtools/inlfit/inreject.gx pkg/xtools/inlfit/inrejectr.x pkg/xtools/inlfit/inrejectd.x Rearranged the code slightly to avoid a missing sfree error detected by spplint. (8/10/99 LED) sys/imio/iki/fxf/fxf.h sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfupdhdr.x Changed the cutover date for the DATE keyword from the fixed value 2000 to 0. Added a new hidden, not normally used environment variable "isodates" to allow this value to be explicitly specified. What this means is that by default, v2.11.2 will use ISO (Y2K) format consistently from the beginning, but if this causes a problem for some reason "isodates" can be set to some future date to cause old format date strings to be written. It doesn't appear that the FK or any current IRAF code actually uses the DATE keywored generated by the FK, so there shouldn't be a backwards compatibility problem reading with older code, images written by a V2.11.2 system. The value of isodates it the year on and after which ISO format dates will be written. For example, to generate ISO format dates on or after Jan 1, 2000, the value "2000" would be used. The value "0" (zero) is used by convention if ISO format dates are always desired. (8/10) pkg/xtools/icfit/icggraph.gx Rearranged the code to avoid a return without an sfree. (8/10 FV) pkg/xtools/fixpix/xtpmmap.x Removed extra argument to imgl1i. (8/11 FV) pkg/xtools/imtools.x Changed to correctly declare fnext as a function. (8/11 FV) pkg/xtools/xtanswer.x Fixed incorrect number of arguments in getline call. (8/11 FV) pkg/xtools/gtools/gtcolon.x Corrected definition of btoi. (8/11 FV) sys/gio/cursor/rcursor.x sys/gio/cursor/gtrwritep.x sys/gio/cursor/gtrundo.x sys/gio/cursor/gtrstatus.x sys/gio/cursor/gtrredraw.x sys/gio/cursor/gtrpage.x sys/gio/cursor/gtrgtty.x sys/gio/cursor/gtrctrl.x sys/gio/cursor/gtrbackup.x sys/gio/cursor/grcwcs.x sys/gio/cursor/grctext.x sys/gio/cursor/grcpl.x sys/gio/cursor/grcopen.x sys/gio/cursor/grcinit.x sys/gio/cursor/grccmd.x sys/gio/cursor/grcclose.x sys/gio/cursor/grcaxes.x sys/gio/cursor/gtrinit.x It turned to to not be needed, but in the process of checking out a bug on another platform I beefed up the error checking in the GIO cursor mode code. This is always a good idea, so I will leave the changes in. (8/11) sys/etc/main.x sys/etc/xalloc.x sys/fio/diropen.x sys/fio/fwtacc.x sys/fio/osfnlock.x sys/gio/sgikern/sgk.x sys/imio/db/idbkwlu.x sys/imio/iki/stf/stfwfits.x sys/ki/kfchdr.x sys/ki/kopdpr.x sys/mtio/mtopen.x sys/tty/ttygsize.x Added a few missing sfree() calls, found with an automatic code checking tool. (8/12) pkg/cl/history.c Ehistory command: When UP is used a few times, followed by enough DOWNS to get back to a "cl> " prompt, the next command entered is a silent noop. The next command after that is fine. Adding an execute=1 in get_command() when repeating input_ on an empty line fixes this problem (08/12 SRo/RS/DT) sys/imio/impnl.gx Fixed a typo in a comment block. (08/12) pkg/cl/history.c Increased the maximum number of history commands to be listed from 100 to 800 (the actual history buffer storage is 8192 which is probably already enough to store 800-1000 or more commands, since the average command is fairly short). (08/12) unix/gdev/sgidev/mkpkg.sh unix/gdev/sgidev/README.gif + unix/gdev/sgidev/sgi2gif.x + unix/gdev/sgidev/sgi2xbm.x + Added these two new SGI graphics translators, used to write IRAF graphics to GIF or XBM files, e.g. to generate on-the-fly IRAF plots to include in web pages. (08/12 MJF/DT) unix/os/zfiond.c Modified the server-side code to set the socket option SO_REUSEADDR when opening a socket and binding it to an IP address and port. This avoids the annoying delay which is otherwise seen when a server quits, but the socket it was using is not released for some time until the kernel times it out and releases it. This only affects server-side connections and currently I don't know of any IRAF servers that use ZFIOND, but probably all server-side socket code should use this feature. (setsockopt was added quite some time after most of the socket code in IRAF was originally written). (08/12) dev/graphcap Added generic entries "g-gif" and "g-xbm" for the new sgi2gif and sgi2xbm translators. (8/13/99 MJF) sys/imio/iki/fxf/zfiofxf.x In fxfzst the "physical" file block size and buffer size parameters were being returned as multiples of the FITS logical block size, 2880. Low level file i/o however must observe the real physical file block size and maximum transfer sizes as returned by zsttbf. On Unix systems this would not matter as i/o transfers do not have to be block aligned, however this would cause problems in some cases on VMS. The 2880 related code was removed, and the file parameters from zsttbf are now returned as-is without change. (This still may not be entirely correct as the block size and max transfer size should perhaps be scaled if the virtual file driver scales the data, but this is complicated by the fact that the FITS header is not also scaled; it is probably not going to be a problem). (8/16) sys/plio/plcircle.x Tweaked up the circle drawing computation a bit. (8/16) unix/boot/spp/xc.c XC was modified to, when linking -Bstatic, switch back to -Bdynamic at the end of the link line so that -lc is linked dynamic. This is always a good idea for Solaris systems, and turned out to be necessary in order for one executable to be runnable on all Solaris versions (2.5.1, 2.6, 2.7). Most other libraries are still linked static, mainly so that the Fortran compiler does not have to be installed to be able to run IRAF executables on a given platform. Supporting Solaris 7 was what forced the issue here. Note: Solaris IRAF executables are linked under Solaris 2.5.1 and will run on solaris versions 2.5.1 through 2.7. (8/18) --------------------------------- V2.11.2 patch released. (18Aug99) dev/graphcap Modified the g-gif entry to use a pid in the filename (8/19/99 MJF) language/doc/hidetask.hlp The correct syntax seems to be 'hidetask task,[task,..]'. The help file did not have the commas (nz aug 20,99) pkg/dataio/export/exrgb8.x Fixed a bug causing the cmap() function to write a garbage line at the top or bottom of the output image. (8/20/99 MJF) dev/devices.hlp Added and entry for ursa!mtp at Taft's request (8/24/99 MJF) pkg/images/tv/wcslab/t_wcslab.x pkg/images/tv/wcslab/wcslab.x Fixed a couple of bugs in the wcslab task that were causing it to fail with the message "ERROR: MWCS: coordinate system not defined (physical)" on the DecAlpha when the usewcs parameter was set to yes, and on Sun systems when the input image was undefined. (8/28/99 LED) sys/imio/iki/fxf/fxfupdhdr.x 1. An sfree was in the wrong place; moved to the end of the block of code it was in. 2. In the "diff" routine, the OBJECT keyword was not being accounted for correctly in computing the new header size. 3. If the new header were more than one FITS block (36 cards) smaller than the old, the extra blocks were being filled with zeros instead of blanks. 4. Boy would this code be a lot better off it were using the new KWDB interface to manage the headers... (9/15) pkg/images/tv/wcslab/wcslab.h Added an entry for tnx to the list of supported projections types. This apparently fixed a garbled plot problem for tnx images, espcially for thos around ra=0.0. (9/17 LED) pkg/math/curfit/mkpkg pkg/math/deboor/mkpkg pkg/math/iminterp/mkpkg pkg/xtools/inlfit/mkpkg Added some missing file dependencies to the math library mkpkg files. (9/20 LED) pkg/images/tv/display/mkpkg pkg/images/tv/wcslab/mkpkg pkg/images/tv/imedit/mkpkg pkg/images/tv/imexamine/mkpkg Added some missing file dependencies and removed some unecessary ones from the tv package mkpkg files. (9/21 LED) pkg/images/imcoords/src/mkpkg pkg/images/imgeom/src/mkpkg pkg/images/immmatch/src/imcombine/generic/mkpkg pkg/images/immmatch/src/imcombine/mkpkg pkg/images/immmatch/src/imutil/generic/mkpkg pkg/images/immmatch/src/imutil/mkpkg Added some missing file dependencies and removed some uneccessary ones from the image package mkpkg files. (9/21, LED) pkg/plot/mkpkg Added some missing file dependencies and removed some uneccessary ones from the plot package mkpkg files. (9/21, LED) pkg/proto/mkpkg Added some missing file dependencies and removed some uneccessary ones from the proto package mkpkg files. (9/21, LED) pkg/utilities/curfit.gx pkg/utilities/curfit.x Removed an unecessary include statement (9/22, LED) pkg/xtools/icfit/icshow.x pkg/xtools/icfit/icvshow.gx The gt pointer was not being used when called directly by UTILITIES.CURFIT. If the task was run non-interactively, so there was no prior call to the icfit graphics routines, then IC_GT structure element was not set causing an error. These routines now set the element with the gt argument passed by the calling routine. (9/14, Valdes) pkg/images/imutil/imreplace.par pkg/images/imutil/src/imrep.gx Fixed a floating-point precision problem with short/int images in which the lower cutoff could be rounded up. Also fixed a typo in the parameter file. (9/22/99, MJF) imio/iki/fxf/zfiofxf.x The routine fxf_cnvpx() was not offsetting properly to FITS units other than one, e.g. giving a segvio when trying to access the 2nd extension. This would only affect access to images of type byte or short where on-the-fly conversion is required. Adjusting to the beginning of the unit solved the problem. (Some clean up done as well). (9/23 NZ/DT) imio/iki/fxf/fxfopix.x In routine fxf_discard_keyw() a change was made to filter out the keyword BLOCKED from obsolete GEIS files in FITS format. This was causing problems when adding a keyword into a header that was full to the 2880 bytes block and the INHERIT keyword was set to T. (9/23 NZ/DT) imio/iki/fxf/zfiofxf.x A buffer overrun could occur in fxfzwr, when writing to the output image. This caused a SEGVIO when testing the new kernel on an OpenVMS system. (9/29) pkg/images/tv/imexamine/mkpkg Added a file dependency to the mkpkg file that was missed the last time, (9/30 LED) pkg/images/tv/imedit/t_imedit.x The use of a temporary image causes the output image type to be set by "imtype" instead of any explicit extension. Changed to use the xt_mkimtemp routine which tries to create a temporary image of the desired output image type. (10/1 FV) pkg/images/immatch/src/imcombine/t_imcombine.x Modified error recovery to avoid a tranfer out of an IFERR block message. (10/14, FV) pkg/images/immatch/src/imcombine/t_imcombine.x A call to IMUNMAP within the THEN clause of an IFERR replaces the error string (inappropriately) so that a later ERRACT reports the wrong error. The code was modified to get the error string before calling IMUNMAP and then restores the error condition with an ERROR call instead of an ERRACT. (10/21, FV) pkg/dataio/export/bltins/exeps.x Fixed an array overrun when writing EPS trailer comments. (10/25/99 MJF) sys/imio/iki/fxf/fxfopen.x The iferr handler for fxf_rheader was catching header read errors and turning them into warning messages. These can be serious errors though requiring the image open to fail. Added an erract(EA_ERROR) to repost the error after the cleanup performed in the iferr block in fxfopen. (10/26) sys/etc/mkpkg sys/fmio/mkpkg sys/gio/calcomp/mkpkg sys/gio/cursor/grcstatus.x sys/gio/mkpkg sys/gio/nsppkern/mkpkg sys/gio/stdgraph/mkpkg sys/imio/iki/fxf/mkpkg sys/imio/iki/oif/mkpkg sys/imio/iki/qpf/mkpkg sys/ki/mkpkg sys/memdbg/mkpkg sys/plio/tf/mkpkg pkg/system/help/mkpkg Fixed minor mkpkg library file dependency related problems or oddities. (10/26) sys/mwcs/iwctype.x Modified the code which recognizes the cards CDi_j, CDELTi, CRPIXi, CRVALi, and CTYPEi to accept these cards only if the name is an exact match, i.e., no trailing characters. Data in the draft FITS WCS standard may have a character appended if there are multiple WCS, and this could cause a secondary WCS to be confused with the primary. (10/26) unix/os/zfchdr.c This code trims any trailing "/" from a directory path before doing a chdir to the new directory. This would fail if the path were "/" (the unix root directory). Changed the code to trim the trailing slash only if it is a trailing slash. (10/26) pkg/math/gsurfit/gsder.gx pkg/math/gsurfit/gsderr.x pkg/math/gsurfit/gsderd.x pkg/math/gsurfit/gs_fder.gx pkg/math/gsurfit/gs_fderr.x pkg/math/gsurfit/gs_fderd.x pkg/math/gsurfit/gs_deval.gx pkg/math/gsurfit/gs_devalr.x pkg/math/gsurfit/gs_devald.x Fixed a bug in the code which computes the derivatives for non-linear chebyshev and legendre polynomials surfaces. In the process of fixing those bugs decided to rewrite the code using the same recursion relations that are used to generate the original surface. (10/27 LED) pkg/system/references.cl Modified the task to filter the stderr as well as stdout, to eliminate the "No help available" warning messages. (10/29) dev/hosts Added new redhat boxes atand and omhah (11/3/99, MJF) pkg/dataio/import.par pkg/dataio/export.par Changed query param modes to auto to avoid prompt from epar :go command. (11/4/99 MJF) --------------------------------- V2.11.3 patch in BETA test. (11/05) dev/hosts Added PC-IRAF systems vmware, slack40, suse62 and sol7 (11/16/99 MJF) pkg/images/immatch/src/imcombine/icombine.gx An input array was declared with a value of 3 though it was passed to the routine with 4 elements. Later there was a reference to the 4th element. While this is legal as the size in the declaration is a dummy this was a compiler error on one platform. Changed the declaration to 4. (11/19/99, Valdes) pkg/images/imfilter/src/fmedian.x pkg/images/imfilter/src/frmedian.x pkg/images/imfilter/src/fmode.x pkg/images/imfilter/src/frmode.x pkg/images/imfilter/src/fmd_hist.x Modified the fast median algorithm histogram storage from short to int to avoid integer overflows in the case that xfilter * yfilter > 32767 and more than 32767 pixels end up in 1 bin as is likely to happen in bad pixel regions. (11/19/99, Davis) pkg/math/gsurfit/gsder.gx pkg/math/gsurfit/gsderr.gx pkg/math/gsurfit/gsderd.gx After rewriting the derivative code to work correctly for the higher order chebyshev and legendre cases, forgot to add back in the 4 lines that do the final normalization to user (not -1.0 to 1.0 normalized) coordinates, causing the derivatives to be way offscale. Found by user running longslit. Only affects 2.11.3. (11/23/99 Davis) sys/fmtio/evvexpr.gy The main routine of evvexpr dynamically allocates the output operand structure. It was setting the flags O_FREEVAL+O_FREEOP for this structure, overriding any flags in the operand returned by the expression evaluator, but clearly only O_FREEOP is warannted as the only thing this code allocates is the operand structure. Whether or not any vector value buffer should be freed has to be determined by the expression code which generates the operand returned by the expression evaluator. Hence the O_FREEVAL flag was removed. (11/23) pkg/images/imutil/src/imexpr.gx Several places in the code where a new operand structure is being initialized, code was added to either clear the entire structure, or explicitly set O_FLAGS(o)=0 in cases where we wanted to be sure that any values from an earlier use of the same operand structure were not unintentionally reused. In particular, in any case where the operand structure is being reused the O_FREEOP flag should be clear. In any case where the operand is vector-valued and the data vector is a pointer returned by IMIO, O_FREEVAL should be clear as it is up to IMIO to eventually free the buffer. (11/23) pkg/images/imutil/src/imexpr.gx Changed the value of LEN_IMOPERAND from 16 to 17. This problem was probably never seen as it would be a problem only for double operands, which are probably not used all that often. (11/24) pkg/images/imutil/doc/imexpr.hlp Fixed some typos in the imexpr task help page. (11/24 LED) unix/os/zfiomt.c Changed one occurrence of zmtdbg1() to zmtdbg() as the call in question did not have an argument. This was harmless, but incorrect and caused a compiler warning on one platform. (11/24) --------------------------------- V2.11.3 patch on verge of being frozen... (11/24) dev/graphcap dev/imtoolrc Added new frame buffers for Mosaic at full frame and with several block averaging factors. New buffers are: imt41|imt8800=8800x8800, imt42|imt4400=4400x4400, imt43|imt2200=2200x2200, and imt44|imt1100=1100x1100 (11/25 MJF) sys/osb/ieee.gx unix/as.sparc/ieee.gx unix/as.ssol/ieee.gx This routine was missing some {} braces around an IF clause in ieevupk. Although the code was technically correct as there was only one statement (a multiline do-loop) in the IF clause, it needed braces to be safe against modifications. (11/30) sys/fmtio/evvexpr.gy There was another bug in this routine which went undetected when it was modified several days earlier. The code would set O_FLAGS on the output operand to ensure that the operand structure is later deleted. By this point the actual operand had been created by the expression evaluator. The bug was that the code was simply overwriting O_FLAGS in the output operand. Instead it needed to preserve the existing flags, merely insuring that the O_FREEOP flag was set (setting the flag to O_FREEOP would clear the O_FREEVAL flag if already set in the operand). The code was modified to "or" in the flag, rather than clobber the whole flag word. (12/01) sys/imio/iki/stf/stf.h Increased MAX_PCOUNT (the number of keywords in a group header block for STF images) from 50 to 99. (12/02) sys/libc/scanf.c Added support for "%n". This returns to an integer output argument the number of input characters scanned thus far (a feature of ANSI C stdio). (12/02) sys/libc/printf.c Modified the *printf routines to recognize 'l', 'E', and 'G' in formatted prints, for enhanced compatibility with ANSI C. 'l' is ignored since it is a no-op on our current platforms anyway (related modifiers such as 'h', 'L', and 'q' are not supported). 'E' and 'G' are permitted, but are handled the same as 'e' and 'g' since IRAF already prints floating point numbers using 'E'. (12/02) sys/libc/zztest.c Added support to the test routine for scan for %n, and ran some simple tests. Seems to work. (12/02) pkg/images/imfilter/src/frmedian.x pkg/images/imfilter/src/frmode.x Changed 2 aclrs calls to aclri calls that were missed when the frmedian / frmode tasks were upgraded to work with larger kernels. (12/03 LED) --------------------------------- V2.11.3 patch frozen. (12/03) --------------------------------- From here on PC-IRAF revisions will be recorded here as well as those for the reference Sun port. Both the Sun and PC-IRAF ports are equally reference systems now and it is long past time to start recording revisions formally for PC-IRAF. unix/hlib/install [pcix] Fixed a typo in the install script. (12/09) dev/tapecap.linux [pcix] dev/tapecap.freebsd [pcix] The tapecap.linux file had a entry which referred to a "generic-exabyte" entry, but this entry was named "generic-exb" later in the file. Changed the later reference to generic-exabyte". Modified tapecap.freebsd to use the same name, although the entry is not used in tapecap.freebsd. (12/10) pkg/proto/t_bscale.x Changed the type declarations for the functions imgnld/imgnlx and impnld/impnlx from double/complex to int to fix a hangup or floating point errors generated when bscale is run on double or complex images. (12/11 LED) pkg/dataio/import/ipdb.gx pkg/dataio/import/bltins/ipgif.x Fixed a string overflow bug causing segvios on PC system, also commented out an unneeded evvfree() (12/13 MJF) noao/mkpkg The entries for the HP archiectures (hp700 etc.) were missing the -d $(DIRS) argument listing the noao directories to be processed for an architecture change. (12/14) dev/hosts Added ssun machine zathras (12/14 MJF) pkg/images/immatch/src/fmcombine/icsetout.x Fixed error with MWCS dimension mismatch when using offsets on input images which have been dimensionally reduced. (1/12, FV) pkg/images/immatch/src/imcombine/icgdata.gx pkg/images/immatch/src/imcombine/iclog.x pkg/images/immatch/src/imcombine/icmask.x pkg/images/immatch/src/imcombine/icombine.gx pkg/images/immatch/src/imcombine/icscale.x pkg/images/immatch/src/imcombine/icsetout.x Changed declarations for the array "out" to be ARB rather than 3 in some places (because it was not changed when another element was added) or 4. This will insure that any future output elements added will not require changing these arguments for the sake of cosmetic correctness. (1/13, FV) pkg/images/tv/imedit/t_imedit.x pkg/images/tv/imedit/epimcopy.x Added some errchks. In particular, even though the output and working images can be mapped without an error there could be an error in the first I/O as when the imdir directory is not available/writeable. (1/18, FV) pkg/images/immatch/doc/imcombine.hlp pkg/images/immatch/imcombine.par The "outtype" parameter can take the value "none" in addition to one of the standard datatypes. The help page was incorrect/unclear what was meant by not specifying an output type. (1/18, FV) pkg/images/lib/skywcs.x Incorrect values for the epoch of observation were being computed and printed by tasks like skyctran and imcctran if: 1) the input coordinate system was being read from an image, and 2) the input coordinate system was galactic. The problem was that the epoch was being converted to MJD twice instead of once resulting in strange epoch values. Unless a proper motion correction was being computed this problem should have little practical effect although it is disturbing to odd units in the file headers. (1/31/00, LED) pkg/dataio/reblock/t_reblock.x pkg/dataio/reblock/reblock_file.x Fixed a bug in the block writing error checking code that could cause problems if an write error occurred. Also modified the code to open the output file only after the first non-zero byte read in order to avoid a magtape driver problem with opening and closing an empty magtape file for writing. In the process of doing this noticed a potential initialization problem that could when switching between record copy, record trim, or record pad modes. (2/10/00 LED). pkg/images/immatch/wregister.cl pkg/images/immatch/sregister.cl Changed the boundary option "refect" to the correct value "reflect". (2/29/00 LED) pkg/images/imgeom/imlintran.cl Changed the nrows argument names to nlines which is what it is supposed to be. (4/11/00 LED) sys/imio/iki/fxf/fxfupdhdr.x After incrementing the header size, the old header and pixel offset were still in memory causing data to be overwritten. The solution was to change the modification date of the file to invalidate the cache so that next time the header is read it will be done from disk. From testing Gemini IRAF scripts. (nz feb.24.00) (04/11) sys/imio/iki/fxf/zfiofxf.x BITPIX = 8 was not handled correctly. The number of bytes read needs to be returned to awaitb() (which calls the FXF driver) for correctly keeping the file offset. Also BITPIX = 16 with scaling that converts the file to 4 bytes had the same problem. (04/11) sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfopix.x sys/imio/iki/fxf/fxfrfits.x sys/imio/iki/fxf/fxfupdhdr.x 1. The OBJECT keyword was causing havoc with some applications. It was disappearing from an extension when it had the same value as the global header. Now it will remain on the extension regardless of its value and what INHERIT is. 2. Clean up keywords from the PHU that belong to an extension only. 3. Clean up EXTEND from an extension as well. (nz feb.24.00) (04/11) sys/mwcs/wftsc.x sys/mwcs/wfqsc.x sys/mwcs/wfpco.x sys/mwcs/wfpar.x sys/mwcs/wfmol.x sys/mwcs/wfmer.x sys/mwcs/wfgls.x sys/mwcs/wfcsc.x sys/mwcs/wfcar.x sys/mwcs/wfait.x The car, mer, pco, gls, par, ait, csc, qsc, and tsc MWCS function drivers were modified to correct a radian/degree conversion error that would cause troubles for images with RA/LON < 180 and DEC > 0.0. (04/11) pkg/images/imutil/src/imexpr.gx Changed the offset of the IM_OP (operand value) field of the operand structure to double align it. Increased the size of the structure to reflex the increase in size. Also modified the main IMEXPR descriptor to double align the IE_IMOP array of operands. (04/11) sys/imio/imt.x The heuristic used to estimate the length of the internal array "fnt", used to hold the edited image template string, could fail to produce a long enough buffer in some cases. Modified the heuristic to be more generous in estimating the maximum buffer size required. (04/11) qpgpar.x The code which parses the input string and extracts a parameter name was not checking for EOS and could cause a buffer overflow in some circumstances. (04/14) dev/graphcap Commented out the 'xtermold' entry which contained an unescaped colon character and could cause parsing errors. (04/17 MJF) pkg/images/immatch/src/imcombine/icmedian.gx Replaced with the faster Wirth algorithm as used in vops$asok.gx. (5/16 FV) pkg/images/tv/display/dspmmap.x When a pixel mask (overlay or bad pixel) needed to be matched to the data in physical coordinates the internal generation of a new mask was being doing in short integers. This would truncate any masks with values greater than 16 bits. All uses of short where changed to integer. (5/16 FV) pkg/dataio/export.par Made the 'format' parameter automatic mode (5/16 MJF) pkg/dataio/export/expreproc.x Modified so that the 'overlay' colors are not scaled. (5/16 MJF) pkg/proto/fields.x Added 2 missing close statements and a missing sfree statement that results in a "too many open files" error when the fields task tries to process a long ~> 59 file list. (5/19 LED) imio/sys/iki/fxf/fxfupdhdr.x When making a newcopy of an image and requesting a minimum number of blanks lines using the PADLINES parameter in the output header, a segmentation violation occurred. The problem was that at header update time, the header and pixel offset arrays were not set, hence we could nod determine the header size before adding the padline amount. The solution was to use the 'diff' variable which has the correct amount of blank characters to add to the output header to insure padline. (5/29 NZ,DCT) imio/sys/iki/fxf/fxfrfits.x With inheritance if an extension header keyword was also in the global header but with a different value, the hedit task would get the global header value and not the value from the requested extension. The problem was that a previous problem with HIERARCH keyword we started to compare the whole 80 characters rather than the old SZ_KEYWORD. The solution is to compare the strings up to the '=' sign. (5/29 NZ,DCT) unix/boot/spp/xc.c [sun, pcix] This code contained some old hardcoded file path buffers which were too small and could overflow. Updated these to use SZ_PATHNAME. (5/30) unix/os/zfiolp.c [sun, pcix] unix/os/zfiopl.c Modified these routines to use the newer routine mkstemp instead of the old mktemp. mkstemp not only generates a unique name but atomically creates the file, avoiding a possible race condition. (5/31) pkg/images/immatch/src/imcombine/t_imcombine. pkg/images/immatch/src/imcombine/icimstack.x pkg/images/immatch/src/imcombine/iclog.x pkg/images/immatch/doc/imcombine.hlp When there are a large number of images with bad pixel masks both the input images and the bad pixel masks are stacked for combining. The addition of stacking the masks allows for independent bad pixel masks for each input image which was not supported previously. (6/21 FV) pkg/dataio/export/bltins/expgm.x pkg/dataio/export/bltins/exppm.x Fixed a bug in writing the format header under PCIX. (6/23/00 MJF) sys/fio/filopn.x Added some error handling to catch any errors from the internal system routine ftwacc and map them to SYS_FOPEN (cannot open file). This affects only standard disk files; a failure to open a special device will result in a different error (SYS_FOPENDEV). (7/03) sys/imio/iki/ikiclose.x sys/imio/iki/ikiopix.x sys/imio/iki/ikiupdhdr.x In each of these routines, added an IFERR handler for the called image kernel routine, to catch any low level errors and map them to the error action posted by the IKI routine. For example, any file open or other system problems occurring in iki_opix will now ensure that the SYS_IKIOPIX error is posted. The routines were already trying to do this, but the IF-test employed could fail if an error action was taken by the kernel routine. (7/03) dev/hosts Added SunOS machine bruckner. (08/07 MJF) pkg/images/immatch/src/imcombine/t_imcombine.x When there is an output mask or sigma image and the number of images exceeds the maximum number allowed by the number of logical file descriptors the task failed to delete the files when starting over using the stacked image approach. This would result in an image already exists error. This was fixed by deleting the files upon error recovery. (8/09, FV) sys/imio/iki/fxf/fxfrfits.x When reading a FITS file with PHU having NAXIS = 0 and no extensions the FK would not record the PHU as already been read, leading to further reading, which would result in and EOF error message. (8/09 NZ/DCT) ./sys/imio/mkpkg ./sys/imio/imopsf.x imopsf (open pixel file) could be called more than once when accessing a pixel mask as an image. The pixel mask code in this file was not prepared for this, and could execute twice, causing dev$null to be multiply opened. At image close time only one file descriptor would be closed, causing a file descriptor leak. The imopsf code was changed so that the pixel mask initialization code is only executed once for an image. Note however that imopsf can nonetheless be called more than once on an image in some cases, e.g. the system does this to ensure that imsetbuf is called, so it would not be correct to modify imopsf so that it simply returns if called on an already open image. (8/16) ./sys/imio/impmopen.x ./sys/plio/plloadf.x Improved the error recovery in these routines so that all open files are closed and buffers freed if a blatant error occurs, such as trying to open a non-pixel mask file as a pixel mask image. (8/16) ./lib/plio.h ./sys/plio/PLIO.hlp ./sys/plio/pll2p.gx ./sys/plio/pll2r.gx ./sys/plio/pllseg.h ./sys/plio/plupdate.x ./sys/plio/plopen.x ./sys/plio/plload.x ./sys/plio/plpoint.x ./sys/plio/plleq.x ./sys/plio/pllpr.x ./sys/plio/pldebug.x ./sys/plio/plssize.x ./sys/plio/plcmpress.x ./sys/plio/plclear.x ./sys/plio/plr2l.gx ./sys/plio/plp2l.gx ./sys/plio/pllrop.x ./sys/plio/pllsten.x ./sys/plio/zzlib.x The LEN and BLEN fields of the encoded line list (LL) descriptor would limit the length of a pixel area (and hence the size of a pixel mask) to the max size of a signed short, 32768. This was due to the use of a simple array of type short to encode the line list (which simplifies handling considerably). Nonetheless the limit to 32K was unacceptable. The fix adopted was to increase the LL header from 3 to 7 words. Two 16 bit words are now used to encode each of LEN and BLEN. A "version" word was added to allow the old, new, and future encodings to be distinguished. A "hdrlen" word was added to parameterize the length of the LL header, rather than fix it at compile time as in the initial version. With this change, the maximum length of an image line under PLIO is increased from 32768 to 1073741824 (32768*32768). All the higher level PLIO code is integer, so should already support larger masks. This was done in such a way that old line lists can still be read, although PLIO will always write out new format line lists (pixel mask files and images, QPOE, and MWCS all store encoded line lists in external storage, so backwards compatibility is important; also existing complied programs will continue to generate the old format). The cost is 8 bytes per encoded line list. For most masks this should only increase the size of the mask by a few percent at most. (8/16) unix/os/zfiond.c In the server-side code for a unix socket, "addrlen" was being computed using an obsolete heuristic which was only correct for older versions of the BSD socket interface. On newer systems this could cause an "address already in use" error when opening a server socket, due to the socket pathname getting truncated. (8/18) sys/fio/reopen.x The FIO reopen routine, used to open an existing host file descriptor on a new FIO file descriptor (e.g. providing indepedent buffered streams for a single host file) had a bug which would cause it to set up the new file descriptor incorrectly. (8/18) unix/os/zfiond.c The ND driver supports a "text" mode which assumes that all program data is XCHAR and converts to and from 1 byte chars on output. This is useful for an IRAF program which communicates with an external host program using only text. A FIO binary stream can be used, but the external program sees only packed ASCII text while the SPP program sees only normal SPP text. The :text mode was working for reads, but broken for writes. On output zawrnd, given a buffer containing say 128 SPP chars (256 bytes), would compress the data as it should, but still write out 256 bytes. While incorrect, this would actually work in many cases (especially when conversing with external host programs) since the output would be a null terminated 128 char string followed by 127 bytes of junk. (8/18) pkg/images/immatch/src/imcombine/t_imcombine.x When a "cannot open image" error occurs for some other reason than running out of file descriptors the task would go into an infinite loop or given a segmentation error. The checking was improved to avoid this. (8/31/00, Valdes) pkg/images/tv/imexamine/t_imexam.x pkg/images/tv/imexamine/timexam.x + pkg/images/tv/imexamine/iecolon.x pkg/images/tv/imexamine/mkpkg pkg/images/tv/imexamine.par pkg/images/tv/doc/imexamine.hlp lib/scr/imexamine.key Added new key 't' to ouput an image section centered on the cursor. (9/02/00, Valdes) dev/hosts Added Buell Jannuzi's new ssun machine 'climber'. Added Michael Brown's new ssun machine 'bunyip'. (9/5/00 MJF) pkg/cl/cl.par Added the new CL parameter "release". This is a string valued parameter with values such as "2.11.3a", "2.11.4", "3.0" etc. This differs from "version" which is a descriptive string such as "NOAO/IRAF V2.11.3 EXPORT". There can be multiple releases of one version of the software, and "release" specifies exactly what build the software is. The release strings are composed in such a way that they can be used in expressions, e.g. (release >= 2.11.3) would be true for IRAF V2.11.3 and all subsequent releases and versions. (9/09) --------------------------------- V2.11.3b limited patch release. (9/10 2000) pkg/images/immatch/src/imcombine/icombine.gx pkg/images/immatch/src/imcombine/icgdata.gx Additional errchk declarations were needed to catch out of memory during image reading which were not caught during the initial pass at reading the images. (9/11/00, Valdes) pkg/images/immatch/src/imcombine/t_imcombine.x pkg/images/immatch/src/imcombine/icimstack.x Error handling when running out of memory with immap (due to a very large min_lenuserarea) and when trying to stack was fixed up to report reasonable error messages and to not go into an infinite loop trying to manage memory. (9/13/00, Valdes) pkg/images/imcoords/src/sffind.x pkg/images/imcoords/doc/starfind.hlp Modified the way starfind computes the background estimate used to compute the first and second order moments so that it does not depend on the value and density of the central pixel. (10/9/00, Davis) pkg/images/immatch/imcentroid.par pkg/images/immatch/imalign.par pkg/images/immatch/imalign.cl pkg/images/immatch/doc/imcentroid.hlp pkg/images/immatch/doc/imalign.hlp pkg/images/immatch/src/listmatch/t_imctroid.x pkg/images/immatch/src/listmatch/mkpkg Added a new parameter maxshift to the imcentroid and imalign tasks. Maxshift is the maximum permitted difference between the computed and predicted shifts. Maxshift can be used to reject objects whose centers have wandered too far from the expected center. By default maxshift is undefined. (10/9/00, Davis) pkg/xtools/mkpkg pkg/xtools/doc/xtools.men pkg/xtools/doc/xtools.hd pkg/xtools/skywcs/mkpkg pkg/xtools/skywcs/skdecode.x pkg/xtools/skywcs/sksavim.x pkg/xtools/skywcs/skset.x pkg/xtools/skywcs/skstat.x pkg/xtools/skywcs/sktransform.x pkg/xtools/skywcs/skwrdstr.x pkg/xtools/skywcs/skwrite.x pkg/xtools/skywcs/skywcs.h pkg/xtools/skywcs/skywcsdef.h pkg/xtools/skywcs/doc/ccsystems.hlp pkg/xtools/skywcs/doc/skclose.hlp pkg/xtools/skywcs/doc/skcopy.hlp pkg/xtools/skywcs/doc/skdecim.hlp pkg/xtools/skywcs/doc/skdecwcs.hlp pkg/xtools/skywcs/doc/skdecwstr.hlp pkg/xtools/skywcs/doc/skenwcs.hlp pkg/xtools/skywcs/doc/skequatorial.hlp pkg/xtools/skywcs/doc/skiiprint.hlp pkg/xtools/skywcs/doc/skiiwrite.hlp pkg/xtools/skywcs/doc/sklltran.hlp pkg/xtools/skywcs/doc/sksaveim.hlp pkg/xtools/skywcs/doc/sksetd.hlp pkg/xtools/skywcs/doc/skseti.hlp pkg/xtools/skywcs/doc/sksets.hlp pkg/xtools/skywcs/doc/skstatd.hlp pkg/xtools/skywcs/doc/skstati.hlp pkg/xtools/skywcs/doc/skstats.hlp pkg/xtools/skywcs/doc/skultran.hlp pkg/xtools/skywcs/doc/skywcs.hd pkg/xtools/skywcs/doc/skywcs.hlp pkg/xtools/skywcs/doc/skywcs.men Added the skywcs library to the xtools package. Skywcs is a repackaging of code already used in the images.imcoords package (10/12/00, Davis). pkg/images/lib/coomap.key pkg/images/lib/geofit.gx pkg/images/lib/geofit.x pkg/images/lib/geogmap.gx pkg/images/lib/geogmap.x pkg/images/lib/geogmap.h pkg/images/lib/geograph.gx pkg/images/lib/geograph.x pkg/images/lib/geomap.key pkg/images/lib/liststr.gx pkg/images/lib/liststr.x pkg/images/lib/mkpkg pkg/images/lib/rgccwcs.x pkg/images/lib/rglltran.x Added support for a :order command to the geomap task so that the user can change all the fitting orders simultaneously. Fixed an error checking bug in the geomap and ccmap tasks that could cause a segmentation violation if there were too few points for a good fit and the verbose switch disabled. Added a couple of new routines to the list decoding tasks. Modified the code and mkpkg to use the new version of skywcs (10/12/00, Davis). pkg/images/immatch/src/geometry/t_geomap.gx pkg/images/immatch/src/geometry/t_geomap.x Improved the error checking in the geomap tasks (10/12/00, Davis). pkg/images/immatch/src/wcsmatch/t_skyxymatch.x pkg/images/immatch/src/wcsmatch/mkpkg Modified the skyxymatch task to use the new skywcs library (10/12/00, Davis). pkg/images/imcoords/imcctran.par pkg/images/imcoords/doc/imcctran.hlp pkg/images/imcoords/src/ccfunc.x pkg/images/imcoords/src/ccxytran.x pkg/images/imcoords/src/skyctran.x pkg/images/imcoords/src/t_ccfind.x pkg/images/imcoords/src/t_ccmap.x pkg/images/imcoords/src/t_ccsetwcs.x pkg/images/imcoords/src/t_cctran.x pkg/images/imcoords/src/t_ccxymatch.x pkg/images/imcoords/src/t_imcctran.x pkg/images/imcoords/src/t_skyctran.x pkg/images/imcoords/src/mkpkg Modified the imcoords tasks to use the new skywcs library. Added support for doing coordinate transformations accurately on images with non-zenithal projections where rotating the CD matrix does not work accurately. Added a new parameter longpole to the imcctran task. If longpole =yes then coordinate transformations with zenithal projections will be rotated using longpole rather than the CD matrix. (10/12/00, Davis) pkg/images/x_images.x pkg/images/imcoords/imcoords.cl pkg/images/imcoords/imcoords.men pkg/images/imcoords/imcoords.hd pkg/images/imcoords/ccget.par pkg/images/imcoords/ccstd.par pkg/images/imcoords/doc/ccget.hlp pkg/images/imcoords/doc/ccstd.hlp pkg/images/imcoords/src/mkpkg pkg/images/imcoords/src/t_ccget.x pkg/images/imcoords/src/t_ccstd.x pkg/images/imcoords/src/ccstd.x Added the ccget and ccstd tasks to the imcoords package. (10/12/00, Davis) dev/hosts Added RedHat machine camille (11/23/00, MJF) pkg/images/tv/display/t_display.x Changes to detect and use new WCS strings (12/04/00, MJF) pkg/images/tv/display/gwindow.h Added struct element W_WCSVER (12/04/00, MJF) pkg/images/tv/display/iis.h Added definitions for 16-frame support, increased the size of the SZ_WCSTEXT to 1024 (12/04/00, MJF) pkg/images/tv/display/mkpkg pkg/images/tv/display/imdwcsver.x + Added a routine which does a WCS query with the X register set to check whether the server can handle the new WCS strings. If the reply is "version=<num>" we use the new stuff, otherwise it's a no-op and we use the old format strings. (12/04/00, MJF) sys/imio/imunmap.x Added a test to see if the image being closed is a pixel mask image (as opened by impmmap) with the IM_PLCLOSE flag set. If so, the mask file must be closed at imunmap time. (12/12) pkg/images/lib/geomap.h pkg/images/lib/geogmap.h pkg/images/lib/geofit.gx pkg/images/lib/geofit.x pkg/images/lib/geogmap.gx pkg/images/lib/geogmap.x pkg/images/lib/geograph.gx pkg/images/lib/geograph.x pkg/images/lib/geomap.key pkg/images/lib/coomap.key pkg/images/immatch/geomap.par pkg/images/immatch/doc/geomap.hlp pkg/images/immatch/src/geometry/t_geomap.gx pkg/images/immatch/src/geometry/t_geomap.x pkg/images/imcoords$ccmap.par pkg/images/imcoords/src/t_ccmap.x pkg/images/imcoords/doc/ccmap.hlp Added a new parameter maxiter to the geomap and ccmap tasks. Maxiter defines the maximum number of rejection iterations and has a default value of 0 for no rejection. Changed the default value of the ccmap and geomap parameter reject from INDEF to 3.0. (05/01/01 LED) pkg/dataio/fits/fits_rheader.x Fixed a bug in the MEF file reading error recovery code that could case a segvio due to a too many open file descriptors conditions. (05/01/01 LED) pkg/images/immatch/immatch.hd Fixed a typo in the 'source' definition of imalign.cl (01/31/01 MJF) xtools$inlfit.gx xtools$inlfitr.x xtools$inlfitd.x xtools$inlrefit.gx xtools$inlreffitr.x xtools$inlrefitd.x Added a check for the condition case where the number of data points minus the number of deleted points (i.e. those with weights of 0.0) is less than the number of fitting parameters. The previous checks did not task into account the number of deleted points and could produce solutions that were correct but non-physical. (1/2/01, Davis) pkg/images/imcoords/doc/ccmap.hlp Fixed an error in ccmap help page package definition. (02/09/01 LED) pkg/images/tv/display/t_display.x Removed the code which stripped the path-prefix and section from the image name displayed in the title string. This was originally done to save space but confuses tasks like IMEXAM which rely on this to map the image. (02/26/01, MJF) pkg/images/tv/display/iis.h Somehow the SZ_WCSTEXT value got reset to 320, this was causing a problem with TVMARK redrawing the display, reset to 1024. (02/26/01, MJF) pkg/images/immatch/src/imcombine/icsetout.x The physical coordinates of the output WCS are now reset. (3/1/01, Valdes) pkg/images/imgeom/src/t_im3dtran.x pkg/images/imgeom/src/t_imtrans.x pkg/images/imgeom/src/t_imshift.x pkg/images/imgeom/src/t_magnify.x Modified the im3dtran, imtranspose, imshift, and magnify tasks so that the output image, which is mapped NEW_COPY, is unmapped before the input image. To the best of my knowledge this has not caused problems to date but ... (3/1/01 Davis) sys/imio/impmhdr.x When expanding the text version of the header stored in the PL image, the newline in column 81 would not be seen when processing a full line of exactly 80 characters, causing a blank line to be added to the output image header. (3/05/01 LD,NZ,DT) pkg/images/tv/display/t_display.x pkg/images/tv/display/imdgetwcs.x pkg/images/tv/display/imdwcsver.x pkg/images/tv/display/iis.h Compatability fixes for the new WCS strings and "old" servers. The WCS version query is now carried out with a read request using the old WCS data size (320) to avoid blocked reads from old servers not sending the 1024-char data. imd_getwcs() was modified to query the server for the version before the actual wcs query and the request is made with the appropriate size. In the case of a WCS query the IIS 'x' register is used to signal that the new format is being used, the WCS version is passed back if the 'y' register is non-zero. Neither of these registers was used by the old protocol, the new ximtool checks these registers and responds by using the correct WCS buffer size. (03/12/01, MJF) sys/fio/zzdebug.x Added new versions (written Aug 2000) of the "server" and "client" debug tasks, which use the ND driver for fully streaming bidirectional socket communications. (03/27) sys/mwcs/wfsamp.x Fixed a couple minor bugs having to do with endpoint handling and saving the last position to speed subsequent searches. Generalized the code to remove the restriction that both arrays increase in the same direction. (03/31 FV/DT) sys/etc/main.x Modified the way command line arguments are parsed to make it easier to set the value of a string parameter to the null string. If a string parameter is set on the command line, e.g., "param=value", whitespace is no longer permitted between the = and the value string. Hence, in command line such as [a=foo b= c=bar] will be treated the same as [a=foo b="" c=bar]. Whitespace is still skipped in @par files as before. (03/31) sys/clio/clcache.x sys/fmtio/clscan.x 1. Modified the private internal system routine clc_fetch, which fetches parameters from the in-task parameter cache, to return ERR if a parameter is not found rather than zero. This makes it possible to discriminate between parameters that have not been set, and ones which have had the value string set to the null string. 2. Modified clscan (called whenever a task gets a string-valued parameter) to check the status returned by clc_fetch for ERR rather than <=0 and to prompt for the parameter only if ERR (value not set) is returned. Note - These changes have some risk and could affect existing scripts. Only tasks with parameters that have null string or uninitialized values should be impacted. Testing using irafx is required. (03/31) sys/imio/db/imgnfn.x The code which scans a header looking for keywords which match a pattern was not skipping to the next card correctly when skipping non-keyword cards (blank cards, COMMENT, HISTORY, etc.). (03/31) pkg/images/tv/display/dspmmap.x Fixed problems with ds_match. The new version is more robust and correct. A bad pixel for the displayed image is the maximum of all pixels in the pixel mask which fall within the display pixel. This version still does not allow any relative rotations but does allow non-integer offsets. (4/24/01, FV) images$imutil/hedit.par images$imutil/doc/hedit.hlp images$imutil/src/hedit.hlp Added a new addonly parameter to the hedit task. If addonly is set a new field will only be added to the image header if it does not already exist. (4/30/01, Davis) images$immatch/src/psfmatch/rgpfilter.x images$immatch/src/psfmatch/rgpconvolve.x Fixed a floating point error in the replace algorithm gaussian fitting routine that can occurs if the FFT of the reference image is exactly zero. Also fixed a symmetry error in the psfmatch convolve routine that would results in a corrected psf that is flipped in x and y if the psf matching kernel does not have mirror symmetry. The workaround and bug fix is to rotate the convolution kernel 180 degrees before applying it to the input image in that case. The matching kernel is is correctly oriented and can be used directly with the fconvolve task. (5/15/01 Davis) dataio$fits/t_rfits.x dataio$imtext/t_rtextimage.x Changed the clgetc calls o clgstr calls for the datatype parameter (rfits task) and otype parameter (rtextimage. task) This change is required to avoid an "ERROR: Parameter not a legal character constant (parname)" error introduced by recent changes to the CL. "" is no longer a legal argument for clgetc. (6/15/01 LED) images$immatch/src/imcombine/t_combine.x images$immatch/src/imcombine/icombine.gx images$immatch/src/imcombine/icgdata.gx images$immatch/src/imcombine/icscale.x images$immatch/src/imcombine/xtimmap.x + images$immatch/src/imcombine/mkpkgx When combining more images than there are IRAF FIO descriptors the additional images are mapped and unmapped as needed. There is no limit now on the number of images or that they be capable of being stacked into a single image for combining by projection. The creation of a temporary stack image is no longer done. (6/16/01, Valdes) images$imgeom/src/t_magnify.x Fixed a bug in the magnify task that could cause a previous block of lines to be repeated instead of a new block computed. This bug was introduced when magnify was upgraded to use the new sinc / drizzle interpolation code and to use imio boundary extension (IRAF 2.11.2). A typo was made in the update which results the above error in the case where the buffer does not update. Normally the buffer is supposed to update for each group of lines but occasionally may not to integer conversions, especially in the case that the magnification factors are greater than the internal buffer size of 16 output image lines. (6/21/01, Davis) pkg/images/tv/display/imdgetwcs.x pkg/images/tv/display/imdputwcs.x pkg/images/tv/display/imdsetwcs.x Modified to allow read/write of the additional mapping information during WCS i/o. If the iis_version flag is non-zero and a valid mapping exists, the set/put wcs routines will automatically format the WCS text to include this information, otherwise it writes the old WCS text. If iis_version is non-zero and a server query returns mapping information this will be stored in the iis common for later retrieval by the imd_getmapping() routine. (06/21/01, MJF) pkg/images/tv/display/imdwcsver.x Removed 'frame' number argument form the procedure. The procedure will now map frame one if no connection is already opened and query the WCS. Returns non-zero if the server is capable of using the new mapping structures. Required to be called explicitly by programs using mappings to initialize the imd interface for this functionality. A "disable_wcs_maps" boolean environment variable may be defined to force this procedure to return zero if the old behavior is desired or to workaround bugs in the new code. (06/21/01, MJF) pkg/images/tv/display/t_display.x Removed earlier addition of ds_setwcs() function since this is now handled by the standard imd_putwcs() interface. Mapping information is set prior to the WCS write with imd_setmapping(). (06/21/01, MJF) pkg/images/tv/display/mkpkg Updated dependencies (06/21/01, MJF) pkg/images/tv/display/imdmapping.x + New routines imd_[sg]etmapping() allow a program to set the mapping to be sent with the next imd_putwcs() call, or retrieve the mapping info sent by the server with the last wcs query. The calls are no-ops if the connected server doesn't know about the new mappings, imd_getmapping() is an integer function which returns non-zero if a valid mapping is available. A new imd_query_map() is available to return the mapping information for a given WCS number. The intent is that the mapping can be obtained for a wcs returned by a cursor read, e.g. to get the image name associated with the mapping. (6/21/01, MJF) pkg/images/tv/display/iis.com Added new variables to the IIS common to hold the mapping information for each WCS write. In order to preserve the imd inter- faces it was necessary to save the mappings in the common, along with a flag indicating whether the connected server can use them. (06/21/01, MJF) pkg/images/tv/display/iisopn.x Added initialization of the iis_version value at device open time (6/21/01, MJF) pkg/images/tv/display/gwindow.h Removed struct element W_WCSVER added earlier, no longer needed. (6/21/01, MJF) pkg/images/tv/display/mkpkg pkg/images/tv/display/t_display.x Removed unused include files leftover from debugging. (7/2/01, MJF) pkg/lists/rimcursor.x Modified to return actual WCS code. Previously hardwired with '01' following the frame number. (7/3/01, MJF) dev/hosts Changed equuleus to be a Solaris machine, added entry for it's new incarnation as 'new-equuleus'. (7/6/01, MJF) pkg/system/cmdstr.x Modified to handle the case of a redirected parameter value in the input stream. (7/11/01, MJF) pkg/images/imcoords/src/t_ccmap.x Fixed a bug in the ccmap task refpoint = "coords" option that could produce a totally inaccurate tangent point estimate if the input coordinate list spanned ra = 0.0 hours. (7/20/01, LED) pkg/images/tv/tvmark/t_tvmark.x Added a call to imd_wcsver() to reset the 'frame' parameter max so task can use all 16 frames (8/9/01, MJF) pkg/images/tv/display/imdgetwcs.x Fixed a small bug in parsing the WCS return string, could sometimes cause the WCS to be reset. (8/9/01, MJF) pkg/images/tv/display/imdwcsver.x Initialized the iis_valid variable (8/9/01, MJF) pkg/plot/doc/contour.hlp Clarified the use of the 'fill' parameter in the example when overlaying contours to an image display. (08/10/01, MJF) pkg/images/tv/imexamine/mkpkg pkg/images/tv/imexamine/x_imexam.x + pkg/images/tv/imexamine/imexamine.par + Added a mkpkg target to compile standalone; i.e. mkpkg standalone. (8/13/01, Valdes) pkg/images/tv/imexamine/iecimexam.x pkg/images/tv/imexamine/ieeimexam.x pkg/images/tv/imexamine/iegcur.x pkg/images/tv/imexamine/iegimage.x pkg/images/tv/imexamine/iegnfr.x pkg/images/tv/imexamine/iehimexam.x pkg/images/tv/imexamine/ieimname.x pkg/images/tv/imexamine/iejimexam.x pkg/images/tv/imexamine/ielimexam.x pkg/images/tv/imexamine/ieopenlog.x pkg/images/tv/imexamine/ieqrimexam.x pkg/images/tv/imexamine/ierimexam.x pkg/images/tv/imexamine/iesimexam.x pkg/images/tv/imexamine/ietimexam.x pkg/images/tv/imexamine/ievimexam.x pkg/images/tv/imexamine/imexam.h pkg/images/tv/imexamine/t_imexam.x IMEXAMINE has been modified to use multiple WCS mappings. The full WCS number is now used. Based on the WCS number the image associated with the mapping determines the image to examine. This requires a display server which supports multiple mappings, such as XIMTOOL V1.3, and a display tasks which uses multiple mappings, such as MSCRED V4.5. For single displays and other display servers it behaves as before. (8/13/01, Valdes) pkg/obsolete/obsolete.cl pkg/obsolete/obsolete.men pkg/obsolete/obsolete.hd pkg/obsolete/x_obsolete.x pkg/obsolete/mkpkg pkg/obsolete/odisplay.par - pkg/obsolete$doc/odisplay.hlp - pkg/obsolete$display/ - Removed ODISPLAY task. (8/17/01, Valdes) pkg/obsolete/obsolete.cl pkg/obsolete/obsolete.men pkg/obsolete/obsolete.hd pkg/obsolete/x_obsolete.x pkg/obsolete/mkpkg pkg/obsolete/oimcombine.par + pkg/obsolete$doc/oimcombine.hlp + pkg/obsolete$imcombine/ + Added OIMCOMBINE from V2.11.3b. (8/17/01, Valdes) pkg/images/immatch/src/imcombine pkg/imagess/immatch/imcombine.par pkg/imagess/immatch/doc/imcombine.hlp 1. New parameters "headers", "bpmasks", "rejmasks", "nrejmasks", and "expmasks" provide additional types of output. The old parameters "rejmask" and "plfile" were removed. The new "nrejmasks" parameter corresponds to the old "plfile" and the new "rejmasks" parameter corresponds to the old "rejmask". 2. There is a new "combine" type "sum" for summing instead of averaging the final set of offset, scaled, and weighted pixels. 3. There is a new parameter "outlimits" to allow output of a subregion of the full output. This is useful for raster surveys with large numbers of images. 4. Additional keywords may appear in the output headers. 5. The scaling is now done relative to the first image rather than an average over the images. This is done so that flux related keywords such as exposure time and airmass remain representative. 6. The environment parmaeter "imcombine_option" allows using an algorithm that opens and closes images. This is very slow but allows combining large numbers of images which are not the same size. 7. New help page. (8/17/01, Valdes) lig/pkg/cq.h pkg/xtools/catquery/ pkg/xtools/mkpkg pkg/xtools/cq.h pkg/xtools/cqdef.h pkg/xtools/cqdb.x pkg/xtools/cqdtype.x pkg/xtools/cqget.x pkg/xtools/cqgfields.x pkg/xtools/cqgqpars.x pkg/xtools/cqgrecords.x pkg/xtools/cqiminfo.x pkg/xtools/cqimquery.x pkg/xtools/cqistat.x pkg/xtools/cqlocate.x pkg/xtools/cqmap.x pkg/xtools/cqnqpars.x pkg/xtools/cqquery.x pkg/xtools/cqrinfo.x pkg/xtools/cqrstat.x pkg/xtools/cqsetcat.x pkg/xtools/cqsqpars.x pkg/xtools/cqstat.x pkg/xtools/cqwrdstr.x pkg/xtools/doc/*.hlp Added the catalog and image survey access tools and documentation to the XTOOLS package. (8/27/01, Davis) pkg/obsolete/obsolete.cl pkg/obsolete/obsolete.men pkg/obsolete/obsolete.hd pkg/obsolete/x_obsolete.x pkg/obsolete/mkpkg pkg/obsolete/oimstatistics.par pkg/obsolete/oimstat.h pkg/obsolete/t_oimstat.x pkg/obsolete/doc/oimstat.hlp Added OIMSTATISTCS from V2.11.3b. (8/30/01, Davis) pkg/images/imutil/imstatistics.par pkg/images/imutil/doc/imstatistics.hlp pkg/images/imutil/src/imstat.h pkg/images/imutil/src/t_imstat.x Added an interative rejection capability to the imstatistics task. Also added a cacheing option that may speed up the performance of the task if the midpt/mode statistic is computed or if iterative rejection is enabled. (8/30/01, Davis) pkg/xtools/catquery/cqgfields.x pkg/xtools/catquery/cqquery.x Fixed an incorrect function and data type declaration in the catquery library which showed up when compiling on Linux. (9/17/01, Davis) pkg/images/imutil/src/t_imjoin.x Changed the clgetc call to clgstr calls for the pixtype parameter in imjoin. This change is required to avoid an "ERROR: Parameter not a legal character constant (parname)" error introduced by recent changes to the CL. Basically "" is no longer a legal argument for clgetc. (9/17/01 LED) pkg/proto/mimstatistics.par pkg/proto/doc/mimstat.hlp pkg/proto/masks/mimstat.h pkg/proto/masks/t_mimstat.h pkg/proto/masks/mstcache.x pkg/proto/masks/mimstat.x pkg/proto/masks/mptools.x Installed the new statistics through a mask task mimstatistics in the proto package. (09/17/01, Davis) lib/pkg/pstools.h + pkg/xtools/pstools/Notes + pkg/xtools/pstools/font.com + pkg/xtools/pstools/mkpkg + pkg/xtools/pstools/psbreak.x + pkg/xtools/pstools/pscenter.x + pkg/xtools/pstools/psclose.x + pkg/xtools/pstools/psdeposit.x + pkg/xtools/pstools/psfont.x + pkg/xtools/pstools/psjustify.x + pkg/xtools/pstools/psopen.x + pkg/xtools/pstools/psoutput.x + pkg/xtools/pstools/pspos.x + pkg/xtools/pstools/psprolog.x + pkg/xtools/pstools/pssetup.x + pkg/xtools/pstools/pswidth.x + Added a new interface library for doing Postscript text output. This is used by the lroff conversion code but is useful for any application which needs to output blocks of text in a similar manner. Because of the var- iable-width font used in the prolog it is not that useful for producing tabular output. (09/17/01, MJF) pkg/proto/rskysub.par pkg/proto/doc/rskysub.hlp pkg/proto/masks/rskysub.h pkg/proto/masks/t_rskysub.x pkg/proto/masks/rsstats.x pkg/proto/masks/rsmean.x pkg/proto/masks/rsmmean.x pkg/proto/masks/rscache.x pkg/proto/masks/rsfnames.x pkg/proto/masks/rsreject.x Installed the new running mean or median sky subtraction task rskysub in the proto package. (9/18/01, LED) pkg/images/imcoords/src/t_skyctran.x pkg/images/imcoords/src/t_sffind.x pkg/images/imfilter/src/mode.x pkg/images/imutil/doc/hedit.hlp pkg/images/imutil/doc/imdivide.hlp pkg/images/tv/doc/Tv.hlp pkg/images/tv/iis/doc/Cv.hlp pkg/images/tv/iis/doc/cv.hlp pkg/mage/tv/iis/ids/doc/Imdis.hlp Fixed various missing/extra argument problems in the images package code that were found with spplint. Also fixed miscellaneous images package help page formatting problems. (9/19/01 Davis) pkg/plot/crtpic/t_crtpict.x pkg/plot/crtpic/plotimage.x pkg/plot/t_graph.x pkg/plot/t_implot.x Fixed various missing/extra argument and function/subroutine mismatch problems in the plot package that were found by running spplint. (9/19/01, Davis) pkg/proto/t_suntoiraf.x pkg/proto/t_binfil.x pkg/proto/t_hfix.x pkg/proto/t_joinlines.x pkg/proto/doc/irafil.hlp Fixed various extra/missing argument, function declaration, and subroutine/function mismatchs in the proto package that were found with spplint. Also fixed an irafil task help page formatting problem. (9/19/01, Davis) pkg/xtools/skywcs/doc/skdecim.hlp pkg/xtools/skywcs/doc/skequatorial.hlp pkg/xtools/skywcs/doc/sklltran.hlp pkg/xtools/skywcs/doc/skultran.hlp pkg/xtools/skywcs/doc/skywcs.hlp pkg/xtools/catquery/doc/catquery.hlp pkg/xtools/catquery/doc/cqsqpar.hlp pkg/xtools/catquery/doc/cqsqparn.hlp Fixed various formatting problems in the skywcs and catquery library help pages. (19/09/01, Davis) pkg/lists/doc/Lcalc.hlp pkg/lists/doc/Lcalc.hlp pkg/lists/doc/Lists.hlp pkg/lists/doc/unique.hlp pkg/lists/doc/average.hlp Fixed various formatting problems in the lists package help files. (19/09/01, Davis) mkpkg Added architecture entries for LinuxPPC (linuxppc) and MacOSX (macosx) to the root iraf mkpkg file. (9/25) unix/hlib/libc/iraf.h unix/hlib/libc/stdarg.h + Added a new LIBC include <stdarg.h>. This is the successor to <varargs.h>, which is no longer supported on all platforms (MacOSX). If a C file defines "import_stdarg" then <stdarg.h> will be included. If this file defines USE_STDARG then the stdargs mechanism for handling variable arguments lists should be used in the code, otherwise the older varargs mechanism should be used (they are NOT the same). Unfortunately it is necessary to #ifdef the code to do this as variable argument handling has to be done at compile time and only one version can be used; nonetheless the code will be just as portable and platform independent as always. (9/25) pkg/cl/errs.c pkg/cl/clprintf.c Modified these files to use STDARG. (9/25) sys/libc/scanf.c sys/libc/printf.c sys/libc/sprintf.c sys/libc/eprintf.c Modified these files to use STDARG. (9/25) unix/mkpkg [pcix] Added some comments on what version of F2C is used and where the sources are maintained. (9/25) unix/as.macosx [pcix] + unix/boot.macosx [pcix] + Added AS and HBIN directories for the MacOSX port. (9/25) unix/boot/bootlib/ostime.c [pcix] unix/os/gmttolst.c [pcix] These routines were modified to use the cmtime.gmtime routine to get the GMT offset. Required for MacOSX. ftime() is normally used: while MacOSX has a manpage for this and says it is in libcompat.a, there is no libcompat.a. gmtime() is probably the more modern routine anyway, and perhaps we should move to it for most platforms. (9/25) unix/boot/mkpkg/host.c [pcix] In h_rebuildlibrary, added a call to resolvefname() so that ranlib is passed an actual filename rather than a symbolic link. (9/25) unix/boot/spp/xc.c [pcix] Various changes to support MacOSX. (9/25) unix/boot/spp/xpp/xppcode.c Added explicit initialization for the variable nstrings to fix a runtime SPP compiliation problem seen on MacOSX. (9/25) unix/hlib/install [pcix] unix/hlib/cl.csh [pcix] unix/hlib/fc.csh [pcix] unix/hlib/irafuser.csh [pcix] unix/hlib/mkpkg.inc [pcix] unix/hlib/mkpkg.sf.MACX [pcix] unix/os/irafpath.c [pcix] The usual minor changes to support a new platform, in this case MacOSX. (9/25) unix/os/zfchdr.c [pcix] unix/os/zfgcwd.c [pcix] unix/os/zglobl.c [pcix] Moved the global variable oscwd to zglobl.c to avoid a linker problem seen on MacOSX. (9/25) unix/os/zfioks.c [pcix] MacOSX does not provide REXEC (it is in libcompat.a) so the KS driver was modified to conditionally use RCMD instead. This routine replaces the very old REXEC and should probably be used on most platforms in any case. A USE_RCMD define was added at the top of the file to select which routine is used on each platform. (/9/25) unix/os/zxwhen.c [pcix] Added support for MacOSX, which does not fully support the modern sigaction, used for signal handling on most platforms these days. (9/25) pkg/images/tv/imedit/epimcopy.x Added a missing TY_USHORT branch to the image copy case statement. (10/10 LED) pkg/system/help/hinput.x Added a missing sfree before return. (10/10/01, MJF) pkg/system/help/houtput.x ttyclear() was being called as a function, changed to call as a subroutine. (10/10/01, MJF) pkg/system/help/prhelp.x Added some extra braces around complex if statements. (10/10/01, MJF) pkg/system/help/help.h pkg/system/help/t_help.x pkg/system/help/t_lroff.x pkg/system/help/prblkhdr.x pkg/system/help/prhlpblk.x Added new code to permit text/html/ps output options. Additional code to handle standout mode properly. (10/10/01, MJF) pkg/xtools/mkpkg lib/pkg/pstools.h + pkg/xtools/pstools/Notes + pkg/xtools/pstools/font.com + pkg/xtools/pstools/mkpkg + pkg/xtools/pstools/psbreak.x + pkg/xtools/pstools/pscenter.x + pkg/xtools/pstools/psclose.x + pkg/xtools/pstools/psdeposit.x + pkg/xtools/pstools/psfont.x + pkg/xtools/pstools/psjustify.x + pkg/xtools/pstools/psopen.x + pkg/xtools/pstools/psoutput.x + pkg/xtools/pstools/pspos.x + pkg/xtools/pstools/psprolog.x + pkg/xtools/pstools/pssetup.x + pkg/xtools/pstools/pswidth.x + Added a new interface library for doing Postscript text output. This is used by the lroff conversion code but is useful for any application which needs to output blocks of text in a similar manner. (10/10/01, MJF) pkg/system/help/t_lroff.x pkg/system/help/lroff.par Added a new 'format' parameter and code to permit output of HTML or Postscript. (10/10/01, MJF) pkg/system/help/lroff/mkpkg pkg/system/help/lroff/lroff.h pkg/system/help/lroff/lroff.x pkg/system/help/lroff/nofill.x pkg/system/help/lroff/nextcmd.x pkg/system/help/lroff/lroff2ps.x + pkg/system/help/lroff/lroff2html.x + Added new converter code to create HTML or formatted Postscript from lroff source. (10/10/01, MJF) pkg/system/help/t_help.x Task was modified to call the XHELP code to run the GUI version of the task if requested. Task output is the same if the device remains the default 'terminal' value, however resetting the 'device' parameter to one of 'gui', 'html', or 'ps' will either spawn the GUI task under xgterm or print the converted help page to the stdout. (10/10/01, MJF) lib/pkg/help.gui + lib/pkg/help.html + pkg/system/help/mkpkg pkg/system/help/xhelp/ + pkg/system/help/xhelp/help.gui + pkg/system/help/xhelp/mkpkg + pkg/system/help/xhelp/xhcmds.x + pkg/system/help/xhelp/xhdir.x + pkg/system/help/xhelp/xhelp.h + pkg/system/help/xhelp/xhelp.par + pkg/system/help/xhelp/xhelp.x + pkg/system/help/xhelp/xhfiles.x + pkg/system/help/xhelp/xhhelp.x + pkg/system/help/xhelp/xhinit.x + pkg/system/help/xhelp/xhofile.x + pkg/system/help/xhelp/xhpkg.x + pkg/system/help/xhelp/xhprint.x + pkg/system/help/xhelp/xhqref.x + pkg/system/help/xhelp/xhroot.x + pkg/system/help/xhelp/xhsave.x + pkg/system/help/xhelp/xhsearch.x + pkg/system/help/xhelp/xhsort.x + pkg/system/help/xhelp/zzdebug.x + Installed GUI help support code. Slight modifications from the stand-alone XHELP task were required, almost entirely in the task main. Various bugs were fixed in the task initialization which prevented repeated executions from displaying the correct package information. (10/10/01, MJF) pkg/system/help/houtput.x Removed an unused 'junk' variable. (10/10/01, MJF) pkg/system/phelp.cl pkg/system/references.cl Hardwired the 'device' parameter to be 'terminal' (10/10/01, MJF) lib/pkg/scr/help.gui Numerous bug fixes and consistency tweaks to the GUI file. (10/10/01, MJF) pkg/system/help/xhelp/xhsave.x Added missing file descriptors to fprintf() calls. (10/10/01, MJF) pkg/system/help/xhelp.x Removed an unused clgeti() declaration. (10/10/01, MJF) pkg/system/pathnames.x Added a missing SZ_LINE arg to a gargstr() call. (10/10/01, MJF) pkg/system/protect.x pkg/system/unprotect.x protect() was being called as a subroutine, changed to be a call to an int function as defined. (10/10/01, MJF) pkg/system/help/prhlpblk.x Fixed a Postscript initialization bug which was preventing files from being formatted as PS with the proper header. (10/10/01, MJF) pkg/system/help/lroff/lroff.x Fixed a bug in the new .hr directive preventing the text from being passed through to the output in the case of non-HTML. (10/10/01, MJF) pkg/xtools/mkpkg lib/pkg/pstools.h - pkg/xtools/pstools/Notes - pkg/xtools/pstools/font.com - pkg/xtools/pstools/mkpkg - pkg/xtools/pstools/psbreak.x - pkg/xtools/pstools/pscenter.x - pkg/xtools/pstools/psclose.x - pkg/xtools/pstools/psdeposit.x - pkg/xtools/pstools/psfont.x - pkg/xtools/pstools/psjustify.x - pkg/xtools/pstools/psopen.x - pkg/xtools/pstools/psoutput.x - pkg/xtools/pstools/pspos.x - pkg/xtools/pstools/psprolog.x - pkg/xtools/pstools/pssetup.x - pkg/xtools/pstools/pswidth.x - The XTOOLS library is not built until after the SYSTEM executable and so the PSTOOLS library that the new HELP depends upon was not being found. PSTOOLS was elevated to be a new SYS interface, PSIO, and so was deleted from the XTOOLS library. (10/12/01, MJF) lib/psio.h + sys/psio/ + sys/psio/README + sys/psio/font.com + sys/psio/mkpkg + sys/psio/psbreak.x + sys/psio/pscenter.x + sys/psio/psclose.x + sys/psio/psdeposit.x + sys/psio/psfont.x + sys/psio/psio.h + sys/psio/psjustify.x + sys/psio/psopen.x + sys/psio/psoutput.x + sys/psio/pspos.x + sys/psio/psprolog.x + sys/psio/pssetup.x + sys/psio/pswidth.x + sys/psio/zzdebug.x + Added a new interface library for doing Postscript text output. This is formerly the PSTOOLS library and is used by the lroff conversion code but is useful for any application which needs to output blocks of text. The README file explains the interface. (10/12/01, MJF) pkg/system/mkpkg pkg/system/help/lroff/mkpkg pkg/system/help/lroff/lroff2ps.x Removed the -lxtools flag from the system link line, small code modification to make use of <psio.h> (10/12/01, MJF) unix/hlib/zzsetenv.def Added a new 'pspage' variable which is used by the PSIO interface to set the default page size. Acceptable values include "letter" (the default) for US Letter, "legal" for US Legal, and "a4" and "b5" for the most common European sizes. Pspage can be used by the new HELP and LROFF tasks to automatically set the desired Postscript page size. (10/12/01, MJF) lib/psio.h - lib/psset.h + sys/psio/psio.h + sys/psio/* Various minor tweaks to the PSIO code for consistency. The private and public parts of the interface were split into a psio.h include for the interface, and psset.h for applications. (10/14/01, MJF) pkg/system/help/lroff/mkpkg pkg/system/help/lroff/lroff2ps.x Changed <psio.h> to <psset.h>. (10/14/01, MJF) lib/scr/help.gui Minor bug fixes to the HELP GUI. (10/14/01, MJF) dev/hosts Updated hohokam's irafks path for GONG. (10/15/01, MJF) sys/mkpkg Added an entry for PSIO. (10/15) pkg/images/immatch/src/xregister/rgxicorr.x pkg/images/immatch/src/xregister/rgxcolon.x pkg/images/immatch/src/xregister/rgxtools.x Fixed a bug in the xregister multiple region handling code that was preventing xregister from computing x-correlations on regions beyond the first in interactive mode. (10/17/01, LED) dev/hosts Added solaris machines nebula and bobcat. (10/30/01, MJF) pkg/images/imutil/src/imheader.x Fixed imheader so it prints out an image size of 0 if IM_NDIM(im) is is 0 instead of the contents of the first element of the IM_LEN(im,1) vector which may be non-zero. (11/05/01, Davis) pkg/images/imutil/src/hedit.x pkg/images/imutil/doc/hedit.hlp For backwards compatability modified the precedence of the operator switches from addonly / add / delete to add / addonly / delete. Addonly is a new switch which adds a keyword only if it is not already there. Also clarified the switch precedence rules in the help page. (11/13/01, Davis) lib/plset.h sys/plio/README sys/plio/mkpkg sys/plio/plsten.x sys/plio/plsectne.x sys/plio/plsectnc.x sys/plio/plrop.x sys/plio/plrio.x sys/plio/plregrop.x sys/plio/plpoint.x sys/plio/plplr.gx sys/plio/plplp.gx sys/plio/plplls.x sys/plio/pllinene.x sys/plio/plglr.gx sys/plio/plglp.gx sys/plio/plglls.x sys/plio/placcess.x sys/pmio/pmaccess.x sys/pmio/pmplls.x The pl_access routine (which is private to the PLIO interface) was changed to return a pointer to the line list rather than an offset into the PLIO data buffer. A new routine pl_reference() was added to do what pl_access used to do. All the affected PLIO and PMIO code was updated (nearly all instances wanted the pointer instead of the buffer offset). This change makes pl_access usable by external code, which has no (legal) way to do anything with internal references to the PLIO descriptor. (12/03) sys/plio/pllen.x Added a new PLIO routine pl_llen(), which returns the length of an encoded line list. (12/03) sys/plio/plemptyline.x Added a new routine to return a pointer to the "emptyline" line list for a mask. This can be used in conjunction with the newly modified pl_access to check for a pointer to the empty line. Applications should rarely need to do this, but it is needed in the FITS kernel to compress empty lines, i.e., make the lines in the FITS verfsion of the mask all point to the same "emptyline" line list. (12/03) sys/fmtio/evvexpr.gy Added support for the bitwise boolean operators: '&' (and), '|' (or), '^' (xor), and '~' (not/complement). These can be used only with integer type operands (short, int, long) and will return a result of the same type, like an arithmetic operator, with the usual type promotion semantics. (12/03) pkg/images/imutil/doc/imexpr.hlp Added the new bitwise boolean operators to the operator list. (12/04) sys/ki/ki.h Increased MAX_NODES (the max nodes in a local network for IRAF networking) from 320 to 512. (12/04) sys/ki/kbzstt.x Fixed some typos; no functional changes. (12/04) pkg/images/immatch/src/imcombine/src/icscale.x Fixed a normalization bug. (12/04]) unix/hlib/config.h unix/hlib/libc/libc.h Increased FIO_MAXFD (the max number of open files in FIO) from 256 to 4096. This is the "hard limit" on the maximum number of open files in an IRAF process. Analysis of the FIO code indicates that there isn't any serious efficiency issue here: there are only a few cases where a linear search of the file list is performed, and these do not impact normal usage. During i/o to a file there is no affect all since access via a file descriptor is direct. The is some impact on file descriptor allocation at file open time, however this only has an impact in cases where there are many open files (if 4000 files are open 4001 file descriptors may have to be examined to find the next open slot). Such cases are unusual however, and in such a case however, performance is likely to be governed by much more important factors. The biggest impact of increasing the number of FIO descriptors is static allocation of BSS storage (data memory space allocated when a process is spawned). This is only about 100KB per process for 4096 descriptors. This would have been an issue once, but is not important today where even everyday PCs have hundreds of megabytes of memory. (12/04) unix/shlib/mkshlib.sos4 unix/shlib/mkshlib.ssol It turns out that the FIO common (FIOCOM) is explicitly referenced in the Sun/IRAF shared image. The parameters FIOCOMSZ, XERCOMSZ, TOTCOMSZ, and CMSZ (rouned up to an integral number of pages) must all agree with the actual commons. The new values are as follows: FIOCOMSZ = 0x24660 XERCOMSZ = 0x810 TOTCOMSZ = 0x24e70 CMSZ = 0x26000 (12/04) sys/vops/awvg.gx Changed the way the computation was done so that the value MEAN is not forced to float when working on float data. It is replaced by the expression (sum/ngpix) so that the computation is all done in double precision internally. (12/04) unix/hlib/libc/kernel.h 1. Increased MAXOFILES, the maximum number of host level open files, from 64 to 256. This is the maximum number of files that can be simultaneously open at the host level. It determines the maximum number of files that can be simultaneously open by an IRAF process in the usual case - that is, when FCLOSEFD is not explicitly set on open files by the IRAF task (if FCLOSEFD is used, up to FIO_MAXFD files may be open at the IRAF level). The actual maximum number open files may be less if the host system imposes a lower limit. For example, the default limit is 64 on SUNOS and Solaris systems. On PC Unix systems it is much higher. Even on systems that impose a lower limit by default, the "limit" shell command may often be used to increase the limit. 2. Increased the following "optimum" buffer sizes: BF_OPTBUFSIZE 32768 -> 65536 (binary files) SF_OPTBUFSIZE 32768 -> 65536 KS_OPTBUFSIZE 4096 -> 65536 (iraf networking) PR_OPTBUFSIZE 4096 -> 65536 (interprocess comm.) ND_OPTBUFSIZE 4096 -> 65536 (network driver) 3. Removed the maximum buffer size limits for the PR and ND devices. These were formerly set to 4096. 4K used to be the system buffer size for devices like pipes, however that was a long time ago and I don't know if it is still the case. Probably not, and it doesn't matter anyway so long as a pipe doesn't circle back on itself. This probably won't affect performance much, but it could, especially for ND connections which can carry a lot of traffic. The KS limit was already set to 0. Since the KI and binary device limits are already 0, this means that large transfers can be used on IRAF networking connections, e.g., for image access. Large transfers (100K or larger) are needed to achieve the high bandwidth provided by modern Fast Ethernet or Gigabit Ethernet network interfaces. We should do some tests at some point to see if we can get high performance for remote kernel server image access using fast networking and the new version of IRAF. Potentially, accessing images in this way could be as fast or faster than accessing them on a local hard disk. (12/04) lib/imio.h lib/imset.h sys/imio/immapz.x sys/imio/imsetbuf.x sys/imio/imseti.x sys/imio/imstati.x The following changes were made to enable IMIO to use larger buffer sizes to optimize i/o for large images. The default file buffer size set by IMIO is unchanged: it is still about 512 MB, the value set for V2.11.2. However, a new parameter IM_BUFFRAC was added. Both IM_BUFSIZE and IM_BUFFRAC are used to help determine the FIO buffer size set when an image is opened. The logic for this is implemented in imsetbuf.x. Backwards compatibility. If you do nothing about IMIO/FIO buffers in your program, the system may transparently use a larger buffer for larger images. If you set BUFSIZE in your program, the system will by default use the value you give, or possibly a larger value, if the image you are accessing is very large. If you set BUFSIZE and you want to guarantee that the value you set is used (even for very large images) then you should also set BUFFRAC=0 to ensure that only BUFSIZE is used. How it works. BUFFRAC specifies the default FIO buffer size used to access an image, expressed as a percentage of the size of the image. For example, the builtin default value of BUFFRAC=10 will try to make a FIO buffer 10% of the size of the image. The actual value used will be given by BUFFRAC, but will be at least BUFSIZE, and no more than a builtin default maximum value, currently 32 MB. Given the builtin defaults, the buffer size will range from 0.5 to 32 MB depending upon the size of the image being accessed. As noted above, BUFSIZE and BUFFRAC can be set to force the buffer size to a specific value if desired. Environment variables for both parameters are provided. The names are "IMIO_BUFSIZE" and "IMIO_BUFFRAC". If specified, these override (at image open time) the builtin default values for both parameters. An IMSET call by the application will override all such defaults. The FIO buffer allocated will not be larger than the size of the image. The FIO buffer will also not exceed the maximum size set by the file driver being accessed. For example, for PLIO images the file buffer will not exceed about 2KB, even for a very large mask. This is because the "pixel file" for a PLIO image is dev$null, the driver for which specifies a maximum i/o buffer size of 2K (the real file to load or save the mask will use a different descriptor). The intent here is to provide an adaptive mechanism for setting the FIO buffer size used to access an image, which automatically adapts to the size of the image being accessed. If you access a lot of small images you will get smaller buffers - everything will be as before. If you access very large images, you may get large buffers up to the builtin maximum value of (currently) 32 MB. Using large buffers could cause a machine to run out of memory. However, it is likely that if someone is working on 300 MB images that they are using a machine which has a memory at least that large - probably larger. If there are problems, the environment variable overrides can be used to tune IMIO. The reason for large file buffers is to limit the number of disk data transfers, and hence the number of disk seeks. Using buffers larger than a certain amount (32 MB is generous) is probably counterproductive. If the i/o system provides 20 MB/sec i/o transfers, 32 MB will take 1.6 seconds. This should be more than a large enough granularity to provide efficient i/o, hence is a reasonable limit (at this point paging effects are likely to dominate). (12/04) unix/boot/spp/xc.c unix/boot/spp/xc.c [pcix] The findexe() routine can modify the PATH variable in the program environment to add IRAF HSI directories to the path (so that stuff like f2c.e can be found). The buffer used to compute a new PATH environment variable was dimensioned SZ_PATHNAME, which is too small for PATH since it may contain many directory pathnames. Changed the buffer dimension used here to 8192. (12/04) sys/plio/plgsize.x sys/plio/plstati.x sys/plio/plloadim.x Changed the code which computes the mask depth from PL_MAXVAL so that it will return a value of zero for a newly created but unitialized mask (naxes, axlen, and depth will hence all be zero for a newly created mask). (12/04) sys/vops/awvg.gx Changed the way the computation was done so that the value MEAN is not forced to float when working on float data. It is replaced by the expression (sum/ngpix) so that the computation of SIGMA is all done in double precision internally. (12/04) sys/imio/imopsf.x sys/imio/iki/fxf/fxfopen.x Both of these routines had code such as "IM_PFD(im) = open (...)". If the OPEN call should take an error exit, IM_PFD could get set to a garbage value. The code was changed to break the assignment into two statements so that IM_PFD is not set if the file open fails. (12/04) sys/vops/alork.gx + sys/vops/alor.gx + sys/vops/alank.gx + sys/vops/alan.gx + sys/vops/vops.syn sys/vops/vops.men sys/vops/vops.calls sys/vops/mkpkg sys/vops/lz/mkpkg Added new vector operators alan, alank (logical AND) and alor, alork (logical OR). These take any integer data as input (short, int, long) and return a logical (expressed as int) result. (12/05) sys/fmtio/evvexpr.gy The code for the logical AND and OR operations was modified to use the new VOPS alan/alor routines. The old code was based on the bitwise boolean operators: it would work if the input data had only logical values (zero or one), but not if the input data was any arithmetic integer value. The new routines will treat all input integer data values as either zero (false) or non-zero (true). Finally if a logical operation is performed the result image will be type int rather than short as before. This is just to be consistent in the treatment of TY_BOOL as int. The old code was trying to save space by storing the 1-bit logical result in a short image. (12/05) sys/vops/awvg.gx The usage of INDEF to set mean/sigma was incorrect. The generic code would use the INDEF appropriate for the target datatype, but the datatypes of the internal variables mean/sigma were being explicitly set. Changed the INDEF usage to explicitly match the INDEF type to the datatype of the mean/sigma variables. (12/05) sys/imio/iki/ikiextn.x Removed the call to strlwr() made when processing filename extensions in IMEXTN, e.g., imextn = "oif:imh fxf:fits,fit,FITS plf:pl" should now do what one would expect. (12/05) pkg/proto/proto.cl pkg/proto/proto.men pkg/proto/proto.hd pkg/proto/x_proto.x pkg/proto/mskexpr.par pkg/proto/mskregions.par pkg/proto/doc/mskexpr.hlp pkg/proto/doc/mskregions.hlp pkg/proto/maskexpr/t_mskexpr.x pkg/proto/maskexpr/memkmask.x pkg/proto/maskexpr/t_mskregions.x pkg/proto/maskexpr/mesetreg.x pkg/proto/maskexpr/mesetexpr.x pkg/proto/maskexpr/meregmask.x pkg/proto/maskexpr/peregfuncs.x pkg/proto/maskexpr/megeom.x pkg/proto/maskexpr/meregfuncs.x pkg/proto/maskexpr/mskexpand.x pkg/proto/maskexpr/gettok.x pkg/proto/maskexpr/gettok.h Installed the mskexpr and mskregions tasks in the proto package. (12/06/01, Davis) pkg/images/imcoords/src/t_wcsctran.x pkg/images/imcoords/src/rgstr.gx pkg/images/imcoords/src/rgstr.x Fixed a string_file error in the wcsctran task which may occur if the input image is dimensionally reduced. The bug is due to an uninitialized array error. The bug does not occur if by chance the array values are 0. (12/06/01, Davis) sys/imio/imsetbuf.x Changed the way the buffer size is calculated slightly to avoid overflowing a 32 bit integer when calculating the buffer size as a fraction of a very large (e.g. 1 GB) image. (12/10) sys/imio/immapz.x Tweaked the handling of "IMIO_BUFSIZE" so that the value can be input in bytes, rather than the SPP char units used internally for the buffer size calculations. MB would be more convenient for the user but would prevent the use of "small" buffers (e.g. the default buffer size is "small" - 0.5MB). (12/10) pkg/images/imutil/src/t_imstat.x Added a call setting IM_BUFFRAC to 0 to the memory caching code in the imstatistics task in order to force the imio buffer to be the size of the input image. (12/10/01, Davis) pkg/proto/masks/mstcache.x pkg/proto/masks/rsscache.x Added a call setting IM_BUFFRAC to 0 to the memory caching code in the mimstatistics and rskysub tasks in order to force the imio buffer to be the size of the input image. (12/10/01, Davis) lib/imio.h lib/imset.h sys/imio/imsetbuf.x sys/imio/imstati.x sys/imio/imseti.x sys/imio/immapz.x Added another IMIO parameter BUFMAX for tuning buffer size allocation. This allows the builtin value of the maximum FIO buffer size (DEF_MAXFIOBUFSIZE, currently set to about 32 MB) to be easily overridden at the application or environment level, like BUFSIZE and BUFFRAC. If you set BUFFRAC=0 then BUFSIZE alone determines the FIO buffer size (subject to storage device limits if any). BUFMAX is not a "hard" limit, it is just a parameter used in the BUFFRAC heuristic to automatically tune the buffer size. If BUFFRAC is allowed to automatically tune the buffer size for the image to be accessed (the default), then BUFMAX specifies the largest buffer which IMIO will create. (12/10) sys/imio/iki/fxf/mkpkg sys/imio/iki/fxf/fxf.h sys/imio/iki/fxf/fxfaccess.x sys/imio/iki/fxf/fxfctype.x sys/imio/iki/fxf/fxfdelete.x sys/imio/iki/fxf/fxfencode.x sys/imio/iki/fxf/fxfksection.x sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfopix.x sys/imio/iki/fxf/fxfplread.x + sys/imio/iki/fxf/fxfplwrite.x + sys/imio/iki/fxf/fxfrfits.x sys/imio/iki/fxf/fxfupdhdr.x sys/imio/iki/fxf/zfiofxf.x The FITS kernel was modified to add support for storing images in extensions as compressed pixel masks. The mask is stored as a binary table using the "ZIMAGE" (compressed image) convention proposed by White, Greenfield, Pence, and Tody in 1999: http://heasarc.gsfc.nasa.gov /docs/software/fitsio/compression/compress_image.html In the current implementation only the "PLIO_1" compression algorithm is implemented. Mask extensions may be read or written directly by the kernel. When writing a new extension it will be appended to the MEF file. To append an image to a MEF file as a mask, include "type=mask" in the image kernel section when the output image is opened. Masks are interfaced to the system as images and may be read and written like any other image via IMIO. They have a normal image header and can be manipulated with any program that deals with images. The pixel type is INT. It is also possible to access a mask image as a PLIO mask. An IMSTATI query for IM_PLDES parameter will return the PLIO mask descriptor. While a mask extension is opened under IMIO it is represented as a PLIO mask and may be accessed in this form like any other mask. The mask image is stored in the FITS binary table (BINTABLE) extension when the image is closed, and is loaded from the extension when the image is opened. The compression representation used to store the mask in the binary table is the same as is used within PLIO. The new (V2.12) encoding is used, allowing very large masks to be stored. Currently masks up to 3D are supported. Data on each 2D mask plane will be compressed in both X and Y as with PLIO. The depth of the mask is preserved. Although a mask is stored as a binary table the format of the table is not completely general. In the current implementation there can be only one column in the table (COMPRESSED_DATA). This is an integer-valued variable length array column containing, for each line of the N-dimensional image, the PLIO compressed version of that image line. The actual compressed data is stored in the heap area of the table. Multiple image lines may point to the same compressed line list, e.g., to store the empty line or to provide compression in Y. (12/10 NZ+DT) sys/imio/iki/fxf/fxfrdhdr.x Changes to fix and inconsistancy between the creation and modification time of an image. The DATE keyword contains the creation date and time and IRAF-TLM the modification date and time. (12/10 NZ+DT) sys/imio/iki/fxf/fxfexpandh.x + sys/imio/iki/fxf/fxfupdhdr.x The update header code was changed so that if a header has to be expanded (hence forcing a rewrite of the full file) then all the other extension headers will be expanded at the same time to include at least "nlines" of blank cards. (12/10 NZ+DT) pkg/xtools/catquery/mkpkg pkg/xtools/gtools/mkpkg Added a missing "cq.h" file dependency to the cqsetcat.x declaration. Added a missing <gio.h> file dependency to the gtlabax.x declaration. (12/13/01 LED) pkg/proto/masks/mptools.x Removed an unnecesary include <error.h> statement from the mptools.x file. (12/13/01 LED) pkg/utilities/mkpkg Removed an unnecessary mkpkg <ttyset.h> file dependency from the curfit.x declaration. (12/13/01 LED) pkg/images/immatch/src/imcombine/mkpkg Added a missing <imhdr.h> file dependency to the timcombine.x declaration. (12/13/01 LED) sys/imio/imwrite.x In some cases (FIO block size less than the length of an image line), when appending to an existing image, it could be possible for data at the end of the file to be overwritten. The code which extends an imagefile was made more rigorous. (12/13) unix/gdev/mkpkg unix/gdev/iism75/mkpkg sys/fmio/mkpkg sys/fmtio/mkpkg sys/memdbg/mkpkg pkg/softools/mkpkg Added missing mkpkg dependencies to sources. (12/13) sys/gio/stdgraph/stgrcur.x The int function stg_encode was being called as a subroutine. (12/13) sys/gio/cursor/grcinit.x Deleted the unused argument 'stream'. All calls to grc_init (there was only one, in rcursor.x) already omit the argument. This is an internal function, hence this is not an interface change. (12/13) sys/gio/gmprintf.x Added a missing argument to a sprintf call in this (currently unused) routine. (12/13) sys/mtio/mtclean.x Removed an extra argument from a getline() call. (12/13) sys/mwcs/mwsctran.x Fixed a problem in mw_sctran that would occur where there is a mixture of axes with and without world functions. When transforming between logical and world this would have the effect of transposing one of the function axes with one of the non-function axes. (12/13) sys/proto/maskexpr/peregfuncs.x Removed an extraneous argument that was no longer necessary and was being used incorrectly in the pe_polygon function. (12/14/01 LED) unix/os/zwmsec.c unix/os/zwmsec.c [pcix] This code uses usleep() to implement the millisecond sleep, which limits the maximum time delay to just over an hour. Changed the code to use sleep() for delays longer than one hour (with a precision of at most 1 second), and usleep() for shorter time delays. (12/15) sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfplread.x sys/imio/iki/fxf/fxfupdhdr.x Added support for creating a pixel mask extension in NEW_IMAGE mode. (12/15 NZ+DT) unix/hlib/install unix/hlib/install.old unix/hlib/uninstall unix/hlib/sysinfo unix/hlib/install [pcix] unix/hlib/install.old [pcix] unix/hlib/uninstall [pcix] unix/hlib/sysinfo [pcix] Installed the new version of the install script, and the companion uninstall and sysinfo scripts. The old install script is still present as install.old. The new version of INSTALL is a major new version which does a much more through job of checking the integrity of the system during an install; it also has some post-install capabilities for performing basic system configuration. The SYSINFO script can be used after an install to verify the integrity of a system. (12/14) lib/pmset.h sys/pmio/miostati.x sys/pmio/mioseti.x Added a new parameter P_PMCLOSE to mio_seti and mio_stati. This provides access to the already existing flag used to automatically close an associated PMIO mask if the MIO object is closed. (12/16) sys/pmio/mkpkg sys/pmio/pmstati.x Added the routine pm_stati to PMIO. This was in the interface as a redefinition of pl_stati, but this was confusing enough to warrant a separate routine. (12/16) lib/syserr.h lib/syserrmsg sys/pmio/pmseti.x sys/plio/plseti.x sys/plio/plstati.x Added a default: branch to all the PLIO and PMIO set/stat calls to call syserr(SYS_PLINVPAR) (invalid mask parameter) if a bad parameter code is referenced. (12/16) unix/os/zmain.c unix/os/zmain.c [pcix] Modified zmain (the host main for an IRAF task) to call exit() instead of _exit(). This is necessary to flush the output streams and to call any exit functions posted with atexit(). Most notably this is required for profiling (-pg/gprof) to work for an IRAF process. The ability of an IRAF task to return a exit status is unaffected. (12/16) sys/imio/db/impstr.x This code is used to edit an existing header keyword to replace the value string (either a quoted string or a numeric/logical string value) with a new value. It would replace only the text in the usual value fields through column 30. In rare cases where an old numeric value extended beyond column 30 this could result in a malformed value being generated. The code was modified to clear the old text in this case, up to an optional comment or end of line. (12/18 LD+DT) sys/imfort/imrdhdr.x Fixed several instances of the function bfseek() being called as a procedure. (12/19) sys/imio/iki/fxf/fxfupdhdr.x sys/imio/iki/fxf/fxfrfits.x sys/imio/iki/fxf/fxfplwrite.x sys/imio/iki/fxf/fxfplread.x sys/imio/iki/fxf/fxfopix.x sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxf.h Fixed several FITS kernel bugs found during alpha testing. (12/21) unix/hlib/install unix/hlib/uninstall unix/hlib/sysinfo unix/hlib/install [pcix] unix/hlib/uninstall [pcix] unix/hlib/sysinfo [pcix] Installed the latest versions of these scripts. (12/21) sys/imio/iki/fxf/fxf.h sys/imio/iki/fxf/fxfopix.x sys/imio/iki/fxf/fxfopen.x sys/imio/iki/fxf/fxfplwrite.x sys/imio/iki/fxf/fxfupdhdr.x Fixes for further minor FK bugs found during testing. (12/26) sys/ki/kfiosf.x Changed the kopnsf routine to use a "server" variable like the other KI file device drivers. This does not change the function of the routine. (12/28) unix/hlib/cl.csh unix/hlib/cl.csh [pcix] Modified the CL startup script to check that, if $iraf is defined, it is valid (or at least, whatever directory or link it points to exists). If $iraf is defined but is invalid a warning is printed and $iraf will be set to the default value of /iraf/iraf/ for the current session. (12/28) unix/os/zfiond.c unix/os/zfiond.c [pcix] sys/fio/ndopen.x The ND driver was modified to provide better support for writing network servers. A new open modifier "nonblock" was added. If this is used when opening a server connection to a port then the connection will open a server socket on the indicated port and return immediately, without waiting for a client connection. Later, when a client tries to connect to the server, the server can open the port with a special pseudo-filename syntax to accept the client connection and set it up on a new socket. This allows a server to listen for client connections and open each on a separate socket. Multiple client connections may simultaneously be open (we still need to add a "select" type function to allow IRAF network servers to be written which can service multiple simultaneous clients). For example, to open a server socket on port 5697 on the localhost to be used for client connections: server = ndopen ("inet:5697::nonblock", NEW_FILE) A client would subsequently connect to server port 5697 to get a i/o connection to the server. To accept the client connection on port 5697 and open an i/o stream to the client on a new file descriptor: fd = ndopen ("sock:<server>", NEW_FILE) where <server> is the ascii representation of the server file descriptor returned in the first ndopen. Note this second ndopen _will_ block if a client connection is not pending; usually some external means will be used to avoid opening the client connection until a client has made a connection attempt. Once the NDOPEN returns, a second file descriptor can be opened with REOPEN to get separate buffered streams for reading and writing to the client. Note that if we repeat the second NDOPEN for additional client connections, each call will return a new file descriptor (the private connection to the new client), although the "file name" "sock:<server>" will be the same in each call. (01/01/2002) unix/os/zfiobf.c unix/os/zfiobf.c [pcix] unix/hlib/libc/kernel.h unix/hlib/libc/kernel.h [pcix] The binary file driver was modified to add VMcache client support. This adds two new capabilities to the driver: 1) built-in support for direct i/o (on systems that support it), and 2) a client interface to the VMcache daemon to permit the daemon to optimally manage binary file i/o if a VMcache daemon is present. Direct i/o is file i/o which transfers data directly between the disk and process memory, bypassing system virtual memory. For small files or usage patterns which do not involve heavy i/o, direct i/o will usually provide lower performance than allowing the system to buffer data in virtual memory. For large files or usage pattern which involve very heavy i/o, however, use of direct i/o can prevent paging and will avoid cluttering up system virtual memory with data that will be only accessed once. A limitation of direct i/o is it is only possible when i/o transfers are block aligned and are an integral number of device blocks in size - this means that direct i/o cannot be used with the current version of the FITS kernel, which currently uses a host device block size of 2880. Direct i/o is currently only available on Solaris systems (versions 2.6/5.6 or greater - 5.5.1 is not supported). Use of the VMcache daemon allows the daemon to control how file data is cached in virtual memory. This makes it possible to optimize file access to avoid excessive paging (by freeing space used by low priority files when new VM cache space is needed), and makes it possible to cache images in memory for very fast access even by separate processes (even including non-IRAF programs in many cases). The VMcache daemon can manage direct i/o on the behalf of clients, telling the client whether to use normal (VM buffered) i/o or direct i/o. VMcache can also pre-fetch files so that they are memory resident by the time the application references them. The VMcache daemon is a separate system-level program outside of IRAF. This is necessary to provide a central system-wide cache controller. It also provides flexibility, allowing multiple versions of the daemon to exist, e.g., to allow experimentation with different types of caching algorithms. It also allows easy customization of the daemon independently of the IRAF applications using the VMcache client interface. The VMcache client interface was added to the BF driver (rather than SF) because VMcache is a general low-level file i/o facility, useful for all file i/o. FMIO files for example (used for QPOE images) are large binary files but FMIO uses BF and not SF. For the moment the VMcache client interface has been added to zfiobf.c since this is the only system component which uses it. We may move it out to a separate file later. Two environment variables have been provided for customizing the behavior of the client interface: VMPORT The tcp/ip socket to be used. The built-in default is 8677. Both IRAF and vmcached will respond to this environment variable if defined. VMCLIENT Initialization of the VMCLIENT interface. The string value should be a comma-delimited list of keywords or keyword=value terms. For example, VMCLIENT="disable" or VMCLIENT="debug,threshold=8m". The keywords currently recognized by VMCLIENT are the following: enable Enable use of the VMcache daemon, if any. Used without the "=value". disable Disable use of the VMcache daemon. Used without the "=value". debug Set the debug level. Can be used as either "debug" or "debug=value". Higher values generate more detailed debugging messages. threshold The file size threshold for use of the VMcache daemon. Even if use of VMcache is enabled, the daemon will be used only if the size of the file being accessed equals or exceed the specified file size threshold. Smaller files are handled using normal i/o and do not result in any communication with the daemon. Values may be specified in bytes or in kilobytes (k or K suffix) or megabytes (m or M suffix). directio Use of this keyword enables directio and disables VMcache. The value specifies the file size threshold for use of direct i/o to access a file. Files smaller than this value use normal (VM buffered) i/o. If directio is specified for a client then use of VMcache is disabled, and no communication with the daemon will occur. Values may be specified in bytes or in kilobytes (k or K suffix) or megabytes (m or M suffix). The builtin defaults are VMCLIENT="enable,threshold=8m". Normally there will be no VMcache daemon running on a system. If the VMcache client is enabled a connection attempt will be made each time a file larger than the threshold is accessed. This is harmless if no daemon is present, and does not measurably affect execution time. If a daemon is started after a process is already running, the process will detect the daemon automatically in the next connection attempt. If a process is connected to a daemon and the daemon dies or is killed, the process will silently detect this and close the connection to the server. If the daemon is subsequently restarted the client will reconnect. (01/01) unix/boot/vmcached/README + unix/boot/vmcached/notes + unix/boot/vmcached/vmcache.c + unix/boot/vmcached/vmcache.h + unix/boot/vmcached/vmcached.c + unix/boot/vmcached/README [pcix] + unix/boot/vmcached/notes [pcix] + unix/boot/vmcached/vmcache.c [pcix] + unix/boot/vmcached/vmcache.h [pcix] + unix/boot/vmcached/vmcached.c [pcix] + The source for the developmental version of the VMcache library and the VMcache daemon (vmcached) have been installed in BOOT. There are no build files as this version is still under development. The code is complete but only enough debug/test was done to support development of the VMcache client interface for IRAF (the vmcached code is debugged but the new version of the vmcache library code has not been tested). Since the daemon can be worked with outside the normal IRAF release we do not have to fully develop it for the release. It should be stressed that VMcache is only useful or warranted for systems that are very data intensive. The standard host operating system file access heuristics are best for "normal" processing where either the system is not really busy, or the datafiles are not excessively large. On systems with very large physical memories where massive amounts of data are being processed, VMcache can make a significant difference in overall system performance. VMcache is too complex to document here. Without going into the details, its function is to manage a cache of files in system virtual memory. Files can be explicitly cached or uncached, or they can be "accessed", and VMcache will decide whether or not to cache the file in virtual memory. This is what the VMcache client interface does: every time it accesses (opens or extends) a file larger then the VM threshold it sends an "access" directive to the VMcache daemon. The daemon sends back a response of 0 (file not cached; use direct i/o to access the file), or 1 (file cached in VM; use normal VM-buffered i/o to access the file). Even if a file is not cached the daemon keeps track of all accesses. Files which are frequently accessed will have a higher prority and are more likely to be cached in memory. IRAF uses only the access directive to interact with VMcache since a general IRAF task cannot know how it is being used. Higher level clients may more explicitly control the cache: for example, the Mosaic DHS will explicitly cache new images as they are read out, and will cause other file accesses to be given a lower priority. Any client code can connect to the VMcache daemon. For example we could add a unix-level task to be called from scripts for explicit cache control, or a GUI to dynamically display the operation of the cache and the utilization of system memory. The builtin-default cache algorithm implemented in the new version of VMcache uses the following heuristics to determine whether a file is cached: Factors determining if a file is cached: user-assigned priority (0=nocache; 1-N=cache priority) number of references time since last access (degrades nref) amount of available memory (cutoff point) Cache priority priority = userpri * max(0, (nref-refbase - ((time - last_access) / tock)) ) Tunable parameters userpri User defined file priority. Files with a higher priority stay in the cache longer. A zero priority prevents a file from being cached. refbase The number of file references has to exceed refbase before the file will be cached. For example, if refbase=0 the file will be cacheable on the first reference. If refbase=1 a file will only become cacheable if accessed two or more times. Refbase can be used to exclude files from the cache that are only referenced once and hence are not worth caching. tock While the number of accesses increases the cache priority of a file, the time interval since the last access likewise decreases the cache priority of the file. A time interval of "tock" seconds will cancel out one file reference. In effect, tock=N means that a file reference increases the cache priority of a file for N seconds. A frequently referenced file will be relatively unaffected by tock, but tock will cause infrequently referenced files to age out of the cache within a few tocks. For example, the cache could be configured to not cache a file the first time it is accessed, causing direct i/o to be used for a file which is only accessed once. The second time a file is accessed it would be cached in memory. Files which are frequently accessed would accumulate a high nref value and would stay in memory longer than files which are only accessed once or twice. Files which are explicitly given a high priority (userpri) would stick around even longer (or could be prevented from ever being cached). Files which have not been accessed for a long time will age out of the cache unless they are given a very high priority. VMcache is not IRAF-specific. It is a stand-alone facility which is well integrated with IRAF. IRAF is one possible client. (01/01) unix/os/mkpkg unix/os/mkpkg.sh unix/os/dio.c + unix/boot/spp/xc.c unix/hlib/irafuser.csh unix/shlib/mkshlib.ssol-sc34 Use of direct i/o for Solaris proved more difficult than expected as the system routine required to control this feature (called "directio") is only available in Solaris 5.6 and later. A 5.5.1 system will fail to link if directio is used. To get around this I had to add a compatibility library libcompat.a in HBIN. This is linked after libc.a and can be used to provide versions of any system routines not present in libc.a. If libc.a does contain the routine then this is the version used. (01/01) unix/hlib/cl.csh The logical expression to check for the definition of a $iraf and it's validity was broken up into separate statements. On some systems the full expression was being evaluated even if the first test failed, leading to an 'undefined variable' message when checking the path validity if it wasn't already defined. (01/02, MJF) sys/imoi/iki/fxf/fxfdelete.x Adding a missing access mode argument to the call to fxf_access. (01/02) lib/syserr.h lib/syserrmsg sys/imoi/iki/fxf/fxfplread.x The miiread routines, which are integer functions, were being called as procedures. Modified the code to use the return value to check for a read error. Added call to syserrs and added a new FXF error message to syserr for a read error on a mask extension. (01/02) sys/imio/impmmap.x sys/imio/impmopen.x These routines, used to map a pixel mask onto an image descriptor, were modified to support mapping a mask stored as an image (e.g., a mask extension in a FITS MEF file). im_pmmap was also modified to fix a bug that would occur when the BOOLEAN_MASK and INVERT_MASK flags were both set. (01/03) sys/plio/plsaveim.x sys/plio/plloadim.x These routines were modified to use PLIO to copy the image section when saving a mask to an image or loading a mask from an image, and the image is using a mask internally (e.g., a mask extension in a FITS MEF file). (01/03) pkg/xtools/catquery/cqquery.x Fixed a couple of typos in the code which detects the end of the http header. (01/03 LED) unix/os/zfdele.c unix/os/zfiobf.c unix/boot/vmcached/vmcached.c unix/os/zfdele.c [pcix] unix/os/zfiobf.c [pcix] unix/boot/vmcached/vmcached.c [pcix] Added code to the VMcache client interface for a vm_delete method. Modified zfdele (the delete file primitive) to call this function. The purpose is to notify the VMcache daemon when a file is deleted so that it can free the associated VM memory used and cache info, if the file is cached. The usual VM client heuristics apply here, e.g., nothing is done unless VMcache is enabled and the file size exceeds the threshold. Also tested the VMcache code on Solaris (it was tested on FreeBSD earlier) and made some more tweaks. (01/03) pkg/images/imutil/src/t_minmax.x Removed extra aguments from the calls to clpstr. (01/07 LED) pkg/xtools/rngranges.x Added missing rstr argument to 2 rng_error calls. (01/07/ LED) sys/ki/irafks.x Fixed a couple of typos in the server-side code for ZOPDPR. (01/07) sys/tty/zzdebug.x sys/plio/zzdebug.x sys/pmio/zzinterp.x sys/qpoe/zzdebug.x math/interp/bench.x Minor fixes to make spplint happy. (01/07) lib/syserrmsg sys/imio/iki/fxf/fxfksection.x Changed the system error SYS_FXFKSINVAL to read: FXF: invalid value for kernel section parameter (<param>) Also fixed a bug in the TYPE case of the kernel section parsing code; it was identifying the parameter name in the error message as "mask" when it should have been "type" (as in type=mask). (01/07) sys/imio/iki/fxf/fxfrfits.x The computed calendar day was of off by one day. (01/07 NZ+DT) sys/imio/iki/fxf/fxfupdhdr.x sys/imio/iki/fxf/fxfplwrite.x sys/imio/iki/fxf/fxfopen.x Fixes installed for problems involving copying an image section. Also fixed another case of mask code that was limited to 2 dimensions. (01/07 NZ+DT) unix/shlib/S.ver.sparc Incremented the shared image version number to 8 (S8.e). (01/07) unix/shlib/S.ver.ssun Incremented the shared image version number to 12 (S12_5.5.e, S12_5.6.e, etc.). Installed the released (V2.11.3) versions of the older shared images (S7.e in sparc, S11_5[567].e). (01/07) sys/imio/iki/fxf/fxfplwrite.x sys/imio/iki/fxf/fxfopen.x Fixed a bug affecting copying a section of a mask to a section of a mask in a FITS extension. (01/08) unix/boot/mkpkg/tok.c unix/boot/mkpkg/tok.c [pcix] The MKPKG special file list facility was extended to add support for custom platform-dependent linking of executables. In the $special directive if the target is a ".e" file the "make object" command string will be used to link the executable, instead of whatever command is given in the mkpkg file in the source directory. Special link directives are only recognized for files linked with the $link directive in a mkpkg file. (01/09) unix/hlib/libc/kernel.h Increased SZ_DEFWORKSET from 8m to 64m. SZ_MAXWORKSET will be determined automatically on many recent systems so I did not change the current default value, which is 256m. (01/10) unix/os/zawset.c This routine (used by BEGMEM to try to get the maximum amount of physical memory available on a particular computer) was modified to automatically detect the physical size of system memory. The technique used should work on most recent POSIX systems, including Solaris and Linux. The maximum amout of memory that ZAWSET will return is limited to 2GB even on machines with a larger physical memory. (01/10) sys/imio/iki/fxf/fxfupdhdr.x sys/imio/iki/fxf/fxfplwrite.x sys/imio/iki/fxf/fxfopen.x Installed a bug fix for the case of copying a section of an existing mask to a mask extension where the dimensionality of the mask is reduced. (01/11) unix/os/zawset.c unix/os/zawset.c [pcix] Made some more enhancements to this routine and tested it. To aid testing, the routine now recognizes the environment variable ZAWSET_DEBUG: if this variable is defined, debug messages will be printed when zawset is called to indicate the total system memory argument values, and other memory-related parameters. If the total system physical memory can be determined the routine will automatically reserve some fraction of the space for the system to minimize swapping. (01/11) unix/hlib/mkpkg.sf.SSUN Added a special file entry to link x_images.e nonshared (-z) for Solaris. We probably don't need to do this for the SunOS version, as any computers still running SunOS are older systems unlikely to require more than 268 MB per process, and the shared version will be smaller, use less memory and start up a little faster. (01/12) unix/boot/mkpkg/tok.c unix/boot/mkpkg/tok.c [pcix] unix/hlib/mkpkg.sf.SSUN The special file list link support was further enhanced to allow replacing LFLAGS (the link flags variable) as well as the entire link line. Replacing LFLAGS is much easier than replacing the entire link line in cases where all we want to do is change a link flag (like adding -z to link nonshared), and it avoids needless duplication of package information in the special file entry. The SSUN mkpkg special file list of updated to use this new syntax. (01/15) unix/os/zawset.c [pcix] Installed the new version of ZAWSET on PC/IRAF. (01/15) sys/imio/imsetbuf.x sys/imio/iki/fxf/zfiofxf.x 1. Modified the FITS image kernel to respect (pass-through) the device block size of the low level file driver. This is usually a device sector (512 bytes), the physical storage unit of the low level storage device. Formerly the FK was setting a pseudo block size of 2880 bytes, however blocking and deblocking should be done at the FIO level; if we try to do this in an IRAF file driver then the host system is required to do blocking/deblocking. Using transfers which are physically aligned at the hardware level makes certain optimizations possible, such as direct i/o. 2. The imsetbuf routine in IMIO was modified to be a little smarter in aligning the first file buffer for a pixel file. Formerly it would only set the offset of the first file buffer if image lines were aligned to device blocks. This is overly restrictive, and doesn't work for FITS files. The code was changed to always set the first file buffer offset for a pixel file, setting it to the offset of the device block _containing_ the first image line. If the first image line is not block aligned the FIO buf size is made larger by the amount of the intra-block offset to ensure that it is big enough to contain the computed number of image lines for which the buffer was sized. (The point of all this is to minimize the number of file reads or writes and the total i/o needed to span an image). (01/16) unix/os/zfiobf.c unix/os/zfiobf.c [pcix.x] Added another debug level 2 message to the directio directive, to print debug messages whenever directio is turned on or off for a file. Directio was tested for FITS files on Solaris and it appears to be working now. (01/16) unix/hlib/cl.csh unix/hlib/cl.csh [pcix] Changed the "setenv d_iraf" to "set d_iraf =" since d_iraf is an internal variable within the script and doesn't need to be exported to the global environment. (01/19) unix/hlib/buglog.csh unix/hlib/zzsetenv.def unix/hlib/buglog.csh [pcix] unix/hlib/zzsetenv.def [pcix] Changed a couple of ID strings to read V2.12BETA. (01/19) unix/os/dio.c + [pcix] unix/hlib/zzsetenv.def [pcix] unix/hlib/libc/kernel.h [pcix] unix/hlib/libc/iraf.h [pcix] unix/hlib/cl.csh [pcix] unix/gdev/mkpkg [pcix] unix/gdev/iism75/mkpkg [pcix] unix/boot/bootlib/envinit.c [pcix] A diff/merge of the Sun/IRAF and PC-IRAF HSI was performed and the following files were updated to merge in various changes from the V2.12 Sun/IRAF revisions. (01/19) sys/mkpkg lib/libmain.o - The libmain entry in the system mkpkg was modified to check file dates against bin$libmain.o instead of lib$libmain.o. It builds directly into bin anyway so there is no need for the link entry in lib. (01/19) ../irafbin/bin.redhat-5.2 [pcix] ../irafbin/noao.bin.redhat-5.2 [pcix] unix/bin.redhat-5.2 [pcix] Deleted the RedHat 5.2 binaries. IRAF V2.12 no longer supports RedHat 5.2. (01/19) cl/cl.par images/images.cl unix/hlib/login.cl unix/hlib/login.cl [pcix] Update cl.version (cl.par) and cl.logver (hlib/login.cl, images.cl) to "IRAF V2.12 December 2001". hlib$login.cl was updated slightly as well, adding entries for imextn and pspage, and some more unix- oriented foreign tasks. Updating cl.version would normally force the user to update login.cl. This is often not required for a new release (as is the case this time) so I added a new cl.par parameter cl.logregen which, if set to "yes" causes a message to be printed whenever an IRAF session is started with an out of date login.cl. With this change we can update cl.version and cl.logver in each IRAF release and still control separately whether a new mkiraf is required. (01/21) unix/os/zfiotx.c [pcix] Modified the terminal driver code to use sigaction instead of signal for signal handling on Linux systems. Use of signal was causing a problem where ctrl/c would fail after using epar/ehist (raw terminal i/o) on a Linux system. (01/21) dev/vdm.gki [pcix] Replaced with an equivalent but byte-swapped version of the file which is compatible with the PC architecture. (01/22) local/.xinitrc - [pcix] local/.login [pcix] Deleted the .xinitrc - there are two many optional desktop configurations available for PC systems these days to make it worthwhile trying to retain this. Updated the "win" and "win8" aliases for compatiblity with recent versions of XFree86. (01/22) pkg/images/imutil/src/gettok.x IMEXPR was incorrectly parsing numbers with exponents like "5.8503E-6". (01/23) pkg/proto/maskexpr/gettok.x MSKEXPR was incorrectly parsing numbers with exponents like "5.8503E-6" (see above). At present it uses a private copy of images macro expansion library. This library should probably be made a system or xtools library at some point. (01/23 LED) ---------------------------------------- Cut V2.12 BETA release. (01/25/2002) unix/hlib/extern.pkg Changed definition of NSO package to use /shared/iraf/extern. The previous version pointed to a non-existant directory and broke the package when the system was updated to the servers. (1/29/02, MJF) pkg/images/immatch/src/imcombine/src/xtimmap.gx pkg/images/immatch/src/imcombine/src/icomb.gx pkg/images/immatch/src/imcombine/src/icgdata.gx The code to close unused images when they are not needed had an error when there were y offsets. Rather than closing each image when it not longer contributed to an output line due to an offset, it was instead closing all images on every line and then mapping them again. (1/29/02, Valdes) pkg/images/immatch/src/imcombine/src/icombine.x pkg/images/immatch/src/imcombine/src/icomb.gx pkg/images/immatch/src/imcombine/src/xtimmap.gx pkg/images/immatch/src/imcombine/src/icombine.h The buffer size management calculation based on the number of input images was no longer working because unless IM_BUFFRAC is explicitly set to 0, the requested buffer size is just a lower limit. The buffer size calculation was modified and calls to set IM_BUFFRAC to zero were added. (1/30/02, Valdes) unix/hlib/extern.pkg Added definitions for the GRASP and GRASPO packages needed by GONG. Also added NSO to helpd string. (1/31/02, MJF) pkg/images/immactch/doc/ccmap.hlp Fixed a type in the ccmap help page package definition. (02/01/02 LED) dev/hosts Added solaris machine gongxx (2/1/02, MJF) unix/boot/spp/xc.c Modified for Solaris systems to link the socket libraries dynamic (at the Solaris level) when linking the IRAF executable nonshared (at the IRAF level). This is necessary as the socket libraries are incompatible in different versions of Solaris. (02/02) sys/imio/iki/fxf/fxfrfits.x Modified to correctly handle the case where an embedded BINTABLE extension is something other than a PLIO_1 pixel mask. (02/02) sys/imio/iki/fxf/mkpkg sys/imio/iki/fxf/fxfplwrite.x Removed the unused <plio.h> reference from fxfplwrite.x, and added <imhdr.h> and <pmset.h> to the mkpkg file entry as dependencies. (02/02) sys/plio/mkpkg Added <imset.h> as include dependencies to the mkpkg file entries for plloadim.x and plsaveim.x. (02/02) unix/hlib/cl.csh [pcix] Fixed a couple of obscure variable referencing errors. (02/02) ---------------------------------------- Updated V2.12 BETA release; public BETA release. (02/02/2002) pkg/images/tv/display/sigm2.x The routine to compute the maximum value as the interpolated quantity was incorrect because the size of the input and output arrays were treated as the same when they are not. This is used for overlay display which produced the symptom of horizontal lines. (2/5/02, Valdes) pkg/images/tv/display/dspmmap.x Added the feature that the bad pixel mask or overlay mask may be specified by a keyword value with the syntax !<keyword>. This is important for multiextension files where various masks are set as keywords. The new task OBJMASKS also writes the object mask name that is created for an image in the header. Use of !objmask then allows the object mask to be used for the bad pixel mask (to set the scaling using only sky pixels) and for overlay. (2/5/02, Valdes) pkg/images/immatch/src/imcombine/src/icmask.x If pl_loadf fails then pl_loadim is tried. This adds support for masks in FITS extensions. (2/5/02, Valdes) pkg/images/immatch/src/imcombine/src/icmask.x pkg/images/immatch/src/imcombine/src/icmask.h pkg/images/immatch/src/imcombine/src/iclog.h pkg/images/immatch/src/imcombine/imcombine.par pkg/images/immatch/imcombine.par pkg/images/immatch/doc/imcombine.hlp The masktype parameter may now specify !<keyword> to select the keyword to use for a mask. When this option is selected the mask value interpretation is "goodval". (2/5/02, Valdes) pkg/images/immatch/src/imcombine/src/icaverage.gx pkg/images/immatch/src/imcombine/src/icsigma.gx pkg/images/immatch/src/imcombine/src/icomb.gx pkg/images/immatch/src/imcombine/src/icscale.x pkg/images/immatch/src/imcombine/src/icemask.x pkg/images/immatch/doc/imcombine.hlp If weights of zero are given for an image then that image will not contribute to the output weighted average unless all of the non-excluded images have zero weight. In that case the unweighted average is output. The exposure mask is the sum of the exposure times of the images with non-zero weights. These changes allow combining only data which is considered good (photometric or good seeing) as specified by the weights but still including non-good data in the final image when there is no good data. The combinined zero weight data will have an exposure time mask value of zero. (2/8/02, Valdes) sys/fio/close.x This routine was supporting the F_CLOSEFD option incorrectly and could attempt to close an already closed file in the special case where F_CLOSEFD is enabled but later disabled, leaving the file closed since it is not reopened until the next i/o occurs. (02/17) pkg/images/lib/imcopy.x Added a missing sfree to the img_imcopy.x routine which fixed a segvio error seen in the imcopy routine. (02/18, Davis) sys/imio/iki/fxf/fxfupdhdr.x The FITS kernel would fail to expand the header in the case of a single FITS file when there are more keywords in the IMUSERAREA than space in the FITS header. (02/18) sys/imio/iki/fxf/fxfplwrite.x sys/imio/iki/ikiaccess.x sys/imfort/db/idbkwlu.x sys/gio/nsppkern/zzdebug.x Fixed some minor instances of mismatched or missing salloc/sfree pairs. (02/19) pkg/images/lib/rgmerge.x pkg/images/imutil/src/t_imstack.x pkg/images/imutil/src/t_imsum.x Fixed some minor instances of mismatched or missing salloc/sfree pairs. (02/19 LED) pkg/images/tv/imexamine/iegimage.x The changes to support multiple WCS per frame involved keeping track of the full WCS frame id (i.e. 101) rather than just the frame number. There was a minor error in this bookkeeping when incrementing the the next display frame to be used. (2/19/02, Valdes) pkg/images/imutil/src/t_minmax.x Fixed a floating overflow error in minmax which occurs when the update parameter is set to yes but the input image has a dimensionality of 0. In this case the min and max values are set to INDEFD but must be converted to INDEFR before being stored in the image header. (2/19/02, Davis) sys/plio/plsave.x pl_save uses pl_p2li to encode the line index for a PLIO mask. For a very large mask the integer values (which are indices into the line list storage buffer) can be quite large, and will be incompressible by PLIO unless the image contains zero lines or duplicated lines. In the worst case it takes a "set high value absolute) instruction for each index value, and 3 line list words (6 bytes) to represent 1 integer index value in the encoded line list. The line list buffer used was not sized for this worst case value and could overflow. (02/19) sys/mwcs/mwsave.x sys/qpoe/qpiomkidx.x These routines use pl_p2li in a similar way to pl_save, so I made a buffer size change as for pl_save above. (02/19) pkg/images/immatch/src/imcombine/src/icstat.gx pkg/images/immatch/src/imcombine/src/xtimmap.gx asum$t declared incorrectly as type PIXEL rather than real. xt_cpix incorrectly defined as pointer function instead of a subroutine. (2/20/02, Valdes) pkg/images/immatch/src/imcombine/src/xtimmap.gx The header keywords were not being fully copied. (2/20/02, Valdes) pkg/images/tv/imexamine/iegimage.x The 'p' was not properly updated for the multiple WCS changes. (2/26/02, Valdes) pkg/xtools/fixpix/xtpmmap.x The change to IMIO for mapping bad pixel files in FITS extensions resulted in a different error code when failing to open the file. This code needed to be recognized by this routine in order to continue on to try other possible formats. (2/27/02, Valdes) pkg/images/imcoords/src/t_wcsctran.x Fixed a bug the logical to tv coordinate mapping which could occur if the section subsmapling parameter was > 1, the input image was a section of a higher dimensioned image, and the first dimension was not one of those extracted. (3/1/02, Davis) pkg/images/tv/imexamine/iegimage.x pkg/images/tv/imexamine/t_imexam.x When the frame buffer is used as the image source (when the image name in the display frame cannot be mapped) the final imunmap would attempt to unmap the same descriptor twice. (3/1/02, Valdes) pkg/images/tv/imexamine/iegimage.x When imexmaine fails to map the image name returned by the display server it uses the frame buffer. Previously there was no warning message about failing to map the image. Now there is a warning. This is only given once until there is no error or the error message changes either by going to a new frame buffer or doing a new display. (3/4/02, Valdes) pkg/images/tv/display/t_display.x pkg/images/tv/display/imdmapping.x Added a check for the image name being "dev$pix" and if so added the ".imh" extension to the full node!prefix pathname to avoid an ambiguous image name error in clients like IMEXAM which need to readback the image name with a WCS query. The expansion was left in place to allow iraf networking access to the image. (3/4/02, MJF) sys/imio/iki/fxf/fxfplwrite.x Masks containing empty lines were not being handled correctly. (3/05) sys/imio/iki/fxf/fxfrfits.x A FITS MEF containing an embedded binary table not recognized by the FK (i.e., anything other than an embedded PLIO mask) would cause a failure to read the file. Moved the code which detects this condition so that the FK will skip over FITS extensions it doesn't recognize, so long as it is not asked to read them. (3/05) unix/hlib/mkpkg.sf.SSUN In addition to x_images.e, x_plot.e and x_tv.e are now linked -z to avoid the 268 MB per-process memory limitation imposed by the solaris/iraf shared image. In the case of plot and tv, this was needed to deal with excessively large PLIO masks used for NDWFS images. (3/05) pkg/images/imutil/src/hedit.x pkg/images/imutil/src/hselect.x Added missing xev_freeop calls to the hedit and hselect tasks and a missing mfree call to the hselect task. (3/5/02, Davis) sys/plio/plloadim.x sys/plio/plsaveim.x sys/plio/zzdebug.x sys/pmio/zzinterp.x [INTERFACE CHANGE] Modified these two routines to add the arguments title,maxch so that they can save and restore image headers encoded in the "title" string, as for a PLIO mask saved in a .pl file. If a mask is being created from an image with pl_loadim then the "title" string will be encoded and returned. If an image is being writen from a mask and encoded "title" string with pl_saveim then the image header is populated from the encoded title string. This was necessary to handle image headers uniformly in im_pmmap (see the discussion under im_pmopen below). These are obscure routines which are currently only used by the system code in IMIO (so far as I can tell) hence the interface change should be a minor risk. (3/05) sys/imio/impmmap.x Deleted the unused stack variables ksection and title. (3/05) sys/imio/impmopen.x Modified im_pmopen (called by im_pmmap) to add the title,maxch args to the call to pl_loadim, used to load a mask from an image. The call to pl_loadf, used to load a mask from a .pl mask file, already sets title,maxch, which is used by im_pmmap to load the image header of the image it creates from the stored mask. (3/05) pkg/images/immatch/src/imcombine/src/iclog.x pkg/images/immatch/src/imcombine/src/icmask.x pkg/images/immatch/src/imcombine/src/icstat.gx Rather than open all the masks at the beginning the masks are now opened and closed as needed. For situations with offsets this can reduce the amount of memory required for the masks. (3/6/02, Valdes) pkg/images/immatch/src/imcombine/src/icombine.x Added error checks for imunmap of the output files. In the final stage of closing the output if an error occurs, principally in writing mask, this will at least allow the primary combined output image to be written. This is useful when an extremely large combining operation is performed. (3/6/02, Valdes) unix/hlib/install Fixed an error in the pathname prompts when the defaults values are not accepted. (3/6/02, MJF) unix/hlib/install Modified to permit setuid, setgid, and sticky-bit permissions in the iraf directory files when doing validity checks. (3/6/02, MJF) unix/hlib/install More small fixes and added checks found when building PC-IRAF systems. (3/7/02, MJF) lib/syserr.h lib/syserrmsg sys/plio/plcmpress.x Modified the pl_compress code slightly to add a sanity check for the mask being compressed. We had a case where this code went into an infinite loop in a process that was nearing the 2GB memory limit, probably as a result of a pointer going negative. (3/10) unix/as.linux/zsvjmp.s [pcix] unix/as.linux/zsvjmp.s.SL40 [pcix] + Newer versions of Slackware require use of __sigsetjmp, like most modern Linux versions (RedHat etc.). (3/10) unix/boot/mkpkg/host.c [pcix] The resolvefname code could fail in some cases where the pathname was a simple file name. (3/10) unix/hlib/install [pcix] Various minor changes to support the PC-IRAF platforms. (3/10) unix/os/zgtime.c [pcix] Added an include for <time.h> to pick up the CLK_TCK definition to get things to build correctly on some PC-IRAF platforms. (3/10) unix/bin.linux/f2c.e [pcix] unix/bin.linux/f2c.e.SL40 [pcix] + Replaced the LNUX f2c.e by the RHUX version, required by Slackware 8 which uses glibc2. (3/10) unix/os/zopdir.c [pcix] Added a new ifdef check for LINUX to the dirfd() usage as required for newer Linux/IRAF (Slackware) systems. (3/11) ---------------------------------------- Updated V2.12 BETA release; second public BETA release. (3/12/2002) dev/imtoolrc dev/graphcap Added new stdimage devices imt45-imt49 submitted by Gemini for GMOS CCD displays at various sizes. (3/14/2002, MJF) sys/imio/iki/fxf/fxfupdhdr.x When copying an extension or subsection of an extension to a new file some of the header keywords could be duplicated at the end of the header. (3/15) sys/imio/iki/plf/plfupdhdr.x If an error occurred while writing the header to a pixel mask image the error handler in this routine would mask the error and no error was being reported to the caller. (3/15) doc/newsfile doc/v212revs.hlp + Installed the V2.12 Revisions Summary and updated the 'news' command files. (3/15/02, MJF) dev/hosts Aliased 'ndws' to 'archive' (3/18/02, MJF) dev/hosts Added new NDWFS RedHat machine 'dropbear' (3/19/02, MJF) pkg/images/tv/display/t_display.x If an image section of a higher dimensional image is displayed the image section is included in the image name sent to the display server. Previously the section was stripped and so it was not possible to know the 2D section displayed. For now we keep backwards compatibility by stripping any section from 2D parent images. (3/20/02, Valdes) pkg/images/tv/imexamine/iegimage.x Image sections in the image name retrieved from the display server are now handled more intelligently. In particular, 2D sections of higher dimensional images will now examine the correct 2D section rather than just the lowest 2D plane. (3/20/02, Valdes) pkg/dataio/export/export.h Changed the zscale sampling parameters to use more points spread out over more of the image. The old values would sometimes find an innappropriate z1/z2 range causing problems when doing many images in batch mode. (3/20/02, MJF) unix/hlib/install unix/hlib/install [pcix] A previous change that added a check for write permission on the iraf tree (to edit paths) proved to be too restrictive when installing on an NFS client node. The check was modified to allow the install to continue without editing files if the user wanted, this would create the local command links and device files but not edit the paths in the iraf files. A '-noedit' option to force this behavior was also added. (3/20/02, MJF) sys/imio/iki/fxf/fxfrfits.x The limtime value calculated was off by a day after Feb 2002 and as a result DATAMIN and DATAMAX were not being updated in headers. Replaced the code which calculates limtime by a more robust calculation based on the Julian day taken from asttools. (3/21) sys/imio/iki/fxf/fxfupdhdr.x The update header code was modified to delete BSCALE and BZERO for floating point images, just in case they are added to the header by the application after the image has already been opened. We may as well do this since the FK does not support use of scaling when reading floating point images, and the presence of these keywords in the header could cause an i/o error when the image is later opened for reading (as seen in ST HSTIO code during testing of V2.12). (3/21 NZ+DT) pkg/images/tv/tvmark/mkoutname.x pkg/images/tv/tvmark/mktools.x Fixed a bug in the default output image name code that would result in hidden images with names like .snap.1, .snap.2, etc being written if the display image name included a kernel or pixel section. (3/21 LED) dev/hosts Added redhat machines cholla and pym, removed pyxis (3/24/02, MJF) dev/hosts Added the MacOS X host cetus. (3/24) doc/newsfile doc/v212revs.hlp Fixed some typos and formatting problems with the revisions (3/25, MJF) pkg/system/help/t_help.x Fixed a bug with dev=text where the standout flags weren't being properly disabled. (3/25/02, MJF) unix/hlib/install unix/hlib/install [pcix] Small change to allow a "no-edit" install to skip the configuration stage (all of which require edit permissions). (3/25, MJF) noao/mkpkg Added an entry for MACOSX. (4/02) pkg/images/imcoords/src/t_wcsctran.x Added an error check for INDEF valued input coordinates. (4/04, LED) pkg/images/immatch/src/imcombine/src/icmask.x There was a bug in the recent change to open and close masks as needed where a possibly null filename pointer was being checked for being a null string. (4/8/02, Valdes) pkg/lists/doc/Lintran.hlp pkg/images/tv/iis/doc/Cv.hlp The above files were rename to Lintran.spc.hlp and Cv.spc.hlp respectively in order to work around upper / lower case file name ambiguities in MACOSX. (4/11, LED) pkg/images/imcoords/src/t_ccget.x Ccget was not transforming the units and applying the user supplied formatting parameters if the input or output coordinate system, e.g. ICRS, was the same as the catalog coordinate system. This bug does not affect released code. (04/16/02, Davis) unix/hlib/install unix/hlib/sysinfo unix/hlib/install [pcix] unix/hlib/sysinfo [pcix] Mods and bug fixes needed for OS X (04/16/02, MJF) pkg/images/immatch/src/imcombine/src/icsetout.x When computing offsets the registration point was the reference pixel returned by mw_gwterm for the first image. The code then went on to assume this was a logical pixel when comparing with the other images, which is not true when there is a physical coordinate system. The algorithm was fixed by converting the reference point to logical coordinates. (4/18/02, Valdes) pkg/cl/main.c The routines startup() and shutdown() in the CL main conflicted with host library routines of the same name on MacOSX. Changed these two routines plus login() and logout() to static functions. Added a new external function cl_shutdown to allow the error recovery code to get at the now static shutdown(). (4/21) pkg/cl/errs.c pkg/cl/errs.h pkg/cl/binop.c Modified the interpreter binary divide operator to check for a zero divisor and call cl_error if a divide by zero is attempted. Added two new error actions for integer and floating divide by zero. (4/21) unix/hlib/config.h [pcix] unix/hlib/libc/spp.h [pcix] Increased LEN_JUMPBUF to 1024 for this platform to allow for the worst case jmpbuf for MacOSX (not sure why this can be so big but it may be the altivec vector registers). (4/21) unix/boot/bootlib/rindex.c [pcix] unix/boot/bootlib/index.c [pcix] These functions conflicted with the host system versions due to the dynamic libraries used on MacOSX. Redefined the names for this platform to avoid the conflict (this is new since the initial 10.0 port). (4/21) unix/os/zzstrt.c [pcix] Minor modifications for MacOSX. Normally process startup exception handling initialization is done in this file. For MacOSX nothing is done at the moment (since the exception handling is mostly done in software) but the LinuxPPC code had to be reworked somewhat for MacOSX to build on both platforms. (4/21) unix/bin.macosx/mach.h [pcix] + Installed a byteswap=NO version of <mach.h> in HBIN for MacOSX. This allows the same PC-IRAF HSI to be used for both Intel and PowerPC, which are byte swapped with respect to each other. The default <mach.h> in HLIB is for Intel. Note that any versions of the global system includes in the HBIN for a platform will override the global HLIB versions. (4/21) unix/os/zzepro.c [pcix] + unix/hlib/libc/knames.h [pcix] unix/os/mkpkg [pcix] Added a new routine ZZEPRO (ZZ End PROcedure) to the PC-IRAF OS. This is present on all PC-IRAF platforms, but is a no-op (for now) except on MacOSX. On MacOSX it calls an assembler routine to read the PowerPC floating point status and control register (FPSCR) to check if any floating point "exceptions" have occurred. Currently the floating point exceptions are not enabled for MacOSX, but the hardware will nonetheless set a bit in the FPSCR if one of the IEEE-defined exception conditions occur. The ZZEPRO code will check for a divide by zero, overflow, or invalid operand exception condition, and if any of these have occurred, execute a "software exception" by calling the exception handler in ZXWHEN. The result is exactly the same as a real hardware exception, with all the same semantics and error actions, except that the exception condition is not detected until some time after the instruction which caused it is executed. (4/21) unix/boot/spp/rpp/rpprat/endcod.r [pcix] unix/boot/spp/rpp/rppfor/endcod.f [pcix] Modified the SPP compiler to insert a call to ZZEPRO (see above) to every SPP function or procedure. The call is made just before the function exits. Note that since the check is only made at the exit from a function, the exception condition often will be detected in a routine called by the routine in which the exception condition occurred. For example, if A does a 5.0/0, then calls B, then B exits, the exception conditition will be detected by the ZZEPRO call at the end of B. In all cases however, it won't be very long before the exception condition is detected. If external C or Fortran code is called an exception will not be detected until execution resumes in an SPP function. (4/21) unix/os/zxwhen.c [pcix] Added exception handling support for MacOSX. Also, ex_handler (the exception handler) was changed from static to public so that it could be called from ZZEPRO. (4/21) unix/as.macosx/zsvjmp.s [pcix] 1. New version of ZSVJMP for MacOSX. This was very tricky to implement for this platform but it appears to be working now. ZSVJMP was difficult as it needs to call the host "setjmp" to do the real work, but MacOSX has only dynamic libraries, so the routine has to invoke setjmp from the system shared library from the assembler code! (I think we need to do away with the assembler version of ZSVJMP - might be possible by adding some C code generation to e.g. F2C, so that the PC-IRAF implementations at least could avoid assembler). 2. New routines GFPSCR and SFPSCR added to get and set the FPSCR register on MacOSX. (4/21) unix/as.macosx/ieee.gx [pcix] Modified the invalid exception masking support for MacOSX. Normally floating invalid exceptions are enabled, meaning that if a NaN or Inf is encountered the invalid operand exception is invoked. The invalid exception has to be masked in the IEEE handling code, to allow IEEE NaN/Inf to be detected and replaced when reading in floating data. (4/21) pkg/images/immatch/src/imcombine/t_imcombine.x pkg/images/immatch/src/imcombine/src/icombine.x pkg/images/immatch/src/imcombine/src/icsetout.x pkg/images/immatch/src/imcombine/src/icmask.x pkg/images/immatch/src/imcombine/src/iclog.x The projection option was no longer working. There was a typo in t_imcombine.x, the dimensionality of the image was not set properly in icombine.x and icsetout.x, and the masks for projected images was not correct. (4/22/02, Valdes) unix/hlib/install unix/hlib/install [pcix] Fixed a typo ('MAG' -> 'MSG' on line 1023). (4/22/02, MJF) unix/hlib/install unix/hlib/install [pcix] Modified to skip the /dev fifo and iraf user login checks which aren't appropriate for OS X. (4/23/02, MJF) unix/boot/spp/xc.c We had reports of XC not working properly with long filenames. Changed a 256 char buffer in sys() to SZ_PATHNAME, and also found a call to symlink() that was dimensioned 128 on the output buffer even though the actual buffer was SZ_PATHNAME. (4/23) images$imutil/src/imadiv.gx images$imutil/src/generic/imadiv.x Fixed an error in the imarith code which evaluates an expression of the form "inimage / 0". This was causing a bus error on the OSX but apparently not on any other platform. (4/24/02, LED) local/.login [pcix] local/.cshrc [pcix] Modified to set proper environment for OS X (4/24/02, MJF) pkg/images/immatch/src/imcombine/src/icmask.x The fix of 4/8/02 had been inadvertently undone. (4/25/02, Valdes) sys/imio/impmhdr.x The im_pmldhdr code could go into an infinite loop when reading a malformed PL imio save header. (4/25) sys/imio/iki/fxf/zfiofxf.x The fxfzop routine had some invalid code at the end of the routine which was incorrectly trying to set FPKOSFN in what it thought was the parent file descriptor. (4/25) unix/hlib/install unix/hlib/install [pcix] 1) Not all failed tests were properly incrementing the error counter leading to a confusing "successful" install. 2) Added a new procedure to install symlinks to the .login/.cshrc files for OS X installs where it's not easy to change the iraf user login directory. Once the iraf path is edited into the files symlinks are made in the account directory, which is normally /Users/iraf, so the iraf user still have the proper environment. (4/26/02, MJF) unix/hlib/install unix/hlib/install [pcix] 1) The OS X csh didn't like if-stmts without a then/endif when the test failed, changed all such occurrances. 2) Fixed small problem with SunOS constructing the recommended hosts file entry. 3) Changed the file ownership check from a fatal error to a warning. (4/30, MJF) pkg/images/imtuil/src/t_imstat.x pkg/proto/masks/t_mimstat.x pkg/proto/masks/rsstats.x If nclip > 0 and the initial mean and standard deviation are INDEF (a very unlikely occurence unless there is an input mask) the ksigma limit computation in the imstatistics, mimstatistics, and rskysub tasks could overflow. This does not affect released code. (5/01/02, Davis) local/notes.solaris - local/notes.linux [pcix] - local/notes.freebsd [pcix] - doc/ports/notes.linux + doc/ports/notes.freebsd + doc/ports/notes.solaris + Moved these old platform porting files to doc/ports. (5/02) local/notes.v212 + Created a new system notes file for V2.12. (5/02) ---------------------------------------- V2.12 EXPORT release. (May 2, 2002)