aboutsummaryrefslogtreecommitdiff
path: root/doc/notes.v210
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /doc/notes.v210
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'doc/notes.v210')
-rw-r--r--doc/notes.v2109642
1 files changed, 9642 insertions, 0 deletions
diff --git a/doc/notes.v210 b/doc/notes.v210
new file mode 100644
index 00000000..41eec3c8
--- /dev/null
+++ b/doc/notes.v210
@@ -0,0 +1,9642 @@
+System Notes File for IRAF Version 2.10.
+Begun 15 May 1990.
+-------------------------------------------
+
+pkg/cl/cl.par
+doc/notes.v29 +
+local/notes.v210 +
+doc/bugs.v28 +
+local/bugs.log
+unix/hlib/buglog.csh
+unix/hlib/motd
+unix/hlib/zzsetenv.def
+ Switched IRAFX development systems to version 2.10. (5/15)
+
+unix/hlib/install
+ Added xyacc to the list of HSI tasks to be installed as command in
+ the unix local/bin. (5/16)
+
+dev/graphcap
+ Updated entries for devices uapl[123457] and vapl[123457] to include
+ newly measured values of xs, ys and ar. (5/21 ShJ)
+
+mkpkg
+bin.dsux +
+noao/mkpkg
+noao/bin.dsux +
+noao/lib/mkpkg.inc
+noao/lib/mkpkg.sf.MIPS
+noao/lib/mkpkg.sf.DSUX +
+local/.login
+unix/hlib/cl.csh
+unix/hlib/install
+unix/hlib/irafuser.csh [DSUX ONLY]
+unix/hlib/mkpkg.inc
+unix/mkpkg.sh
+unix/setarch.sh +
+unix/os/irafpath.c
+unix/os/zgcmdl.c
+ 1. Modified DECstation/IRAF to change the architecture name from "mips"
+ to "dsux". Anyone having IRAFARCH defined in their environment as
+ "mips" will have to change it to "dsux" to run IRAF.
+ 2. A couple of the files in OS were modified to change #ifdef mips
+ constructs to also check for #ifdef ultrix. If both mips and ultrix
+ are defined it is a DECstation, otherwise at present we will assume
+ the OS is umips. (5/27)
+
+mkpkg
+noao/mkpkg
+ Modified so that the same mkpkg file can be used for DSUX and MIPS
+ systems without change. (5/27)
+
+local/COPYRIGHT -
+local/COPYRIGHTS +
+ Replaced the COPYRIGHT file by the more carefully prepared COPYRIGHTS
+ file from the network archive. (5/27)
+
+doc/ports/notes.mips -
+doc/ports/notes.dsux +
+ Renamed the notes file for the DECstation port. (5/28)
+
+sys/mwcs/README +
+ Added a README file to MWCS, containing an interface summary. (6/5)
+
+sys/mwcs/iwewcs.x
+ The code which computes CRPIX when reconstructing the Wterm from a
+ FITS header was optimized with a "if (have_ltv)" but this was
+ incorrect, since the computation uses both the LTV and LTM portions
+ of the Lterm (hence it is necessary to test have_ltm as well).
+ The result was that, given an Lterm consisting of only a scale term
+ and no shift, the code could fail to restore the correct Wterm
+ reference pixel coordinate. (6/7)
+
+dev/termcap [tucana, orion, gemini]
+ Added Rob's 3 two-column landscape mode printer entries. (6/12/90 SRo)
+
+*
+ Removed world write permission from all iraf files. Only a few were
+ affected, but there were a few files and directories that happened
+ to have world write perm, and none should (too easy for users to
+ delete or modify files, accidentally or otherwise). (6/18)
+
+pkg/softools/mkttydata.hlp
+ Deleted the explicit instructions for performing a sysgen-relink,
+ which are no longer applicable to all versions of IRAF, and added
+ comments to the affect that use of MKTTYDATA to cache termcap or
+ graphcap entries is inadvisable for most sites. (6/19)
+
+sys/qpoe/QPOE.hlp
+ Revised and updated the section on QPEX; the documentation for this
+ section was out of date. (6/20)
+
+lib/syserrmsg
+ Changed the error message for SYS_QPUKNPAR from "attempt to delete a
+ nonexistent parameter" to "unknown parameter". This message is used
+ for all unknown parameter references, not just parameter deletions.
+ (6/22)
+
+sys/qpoe/qpgpsym.x
+sys/qpoe/qpgmsym.x
+sys/qpoe/qpaccessf.x
+sys/qpoe/README
+ 1. The QPOE macro facility supports two kinds of macros, global macros
+ defined in an external QPDEFS type file which affect all QPOE file
+ references, and datafile-local macros defined as "macro" type
+ parameters in the individual QPOE file headers. There was a problem
+ with the latter feature (datafile-local macros) due to QPOE header
+ parameter references employing full macro expansion. A routine
+ such as qp_write would perform macro expansion on the parameter name,
+ and if the referenced parameter was the macro parameter itself, one
+ would get the parameter pointed to by the macro alias rather than
+ the macro parameter, making it impossible to access macro parameters
+ once defined. The solution adopted was to disable expansion of
+ datafile-local macros in low level header parameter accesses.
+ Datafile-local macros are still used in expressions, hence can be
+ used to define things like event struct fields names. Also, global
+ macros are still used in header parameter accesses, hence header
+ parameters may still be aliased using global defines.
+
+ 2. The routine qp_expandtext was reclassed as an interface routine
+ instead of an internal routine. If aliasing of header parameters
+ using datafile-local macro parameters is desired, this routine may
+ be called to conditionally translate the parameter name before
+ accessing the parameter, allowing the name to be aliased. (6/24)
+
+unix/boot/rtar/rtar.c
+unix/boot/rtar/rtar.hlp
+ Added two new switches to RTAR.
+
+ -m Do not restore the file modify times.
+ -u Do not attempt to reset the user and group ids.
+ (6/25)
+
+sys/qpoe/qpclose.x
+ A qp_open to create a new qpoe file followed immediately by a qp_close
+ would create a file with no qpoe file header descriptor, causing an
+ error when the file was subsequently opened with qp_open. qp_close
+ was checking for the case of an open/close with no header writes and
+ was forcing a qp_bind in this case, but the QP_MODIFIED flag was zero
+ so the file header was not being updated. Added a QP_MODIFIED(qp)=YES
+ to force the file header to be updated, if qp_close is called on a
+ new qpoe file before any header modifications have been made. (6/26)
+
+sys/gio/imdkern/imdopen.x
+sys/gio/imdkern/imdopenws.x
+ The imd_openws routine in the new IMD kernel was given a calling
+ sequence of imd_openws(devname,n,frame,color,mode) when the kernel
+ was first written. However, this routine is one of the externally
+ callable driver routines and the calling sequence is fixed as defined
+ by the GKI interface (the calling sequence must be the same for all
+ GIO kernels). The IMD kernel will work fine when run standalone,
+ but could die on a segmentation violation when called as a GIO
+ subkernel, since the subkernel interface is GKI. By chance this
+ escaped all our testing, as the argument list mismatch can easily
+ go undetected, depending upon the chance contents of the registers
+ or stack locations associated with the missing input arguments. (7/1)
+
+unix/hlib/mkiraf.csh
+ Modified the unix/iraf mkiraf script to prevent the user from running
+ mkiraf in an iraf system directory (any iraf directory other than
+ iraf/local). (7/5)
+
+unix/hlib/mkpkg.inc
+unix/shlib/edsym.c
+ 1. In the tucana/irafx mkpkg.inc, deleted the -T from the default
+ link flags to allow editing of shared image symbols.
+
+ 2. When shared image versions were added a while back I forgot
+ to add version support to EDSYM, the symbol table editor. The
+ program has been modified to examine the text segment of the
+ file being edited to determine the shared library version number,
+ and use this to access the correct shared image (e.g., S5.e is
+ the version 5 shared image). With these changes, executables
+ linked in the default way will again have the correct symbols
+ for the shared image (allowing use of adb or dbx to examine
+ locations in the shared image, without having to relink -z). (7/5)
+
+unix/boot/spp/xc.c
+ Modified XC to automatically disable the call to EDSYM (the symbol
+ table editor) when linking a host program (xc -h). (7/6)
+
+sys/imfort/mkpkg
+sys/imfort/imfparse.x
+sys/imfort/imfmkpfn.x
+sys/imfort/imftrans.x +
+ 1. Due to the use of vfn_translate in imfparse.x, the directory prefix
+ field, if any, of the image name was being discarded. This would
+ prevent use of IMFORT to access images other than in the current
+ directory. The use of vfn_translate was inadvisable in any case,
+ as it performs more VFN translation than is desired, and IMFORT is
+ supposed to allow unrestricted use of host filenames. The fix was
+ to replace the call to vfn_translate by a call to a new internal
+ imfort routine imf_trans. This will still do a very limited amount
+ of escape sequence encoding on the image filename, allowing mixed
+ case and multiple "." delimited fields to be input and translated
+ as for IRAF vfns, e.g., on VMS. Since such filenames are not legal
+ in VMS (mixed case is legal but is not very useful in VMS) this
+ level of translation should be fairly safe.
+
+ This was introduced into V2.9 on 11/28/89 (when the IMFORT pixel-file-
+ clobber bug was fixed). It is surprising that the problem was not
+ reported earlier. Most people must access only images in the current
+ directory. (7/6)
+
+ 2. The call to vfn_encode in imf_parse was not quite right either.
+ vfn_encode only returns the next field of a pathname, and when
+ imf_parse was called with a path and a non-image 3 char extension,
+ part of the path would be lost. The solution was to replace the
+ call to vfn_encode by a call to the new imf_trans routine, which
+ avoids just this problem. (7/9)
+
+dev/hosts [tucana, orion, gemini]
+ Changed cmd field for draco, to use known object "241", which
+ currently points at usr$0:[rooke]irafks.com, but will shortly
+ point to usr$3:[irafext.kpnolocal.src.dni]irafks.com. (7/12 SRo)
+
+dev/graphcap [tucana, orion, gemini]
+ Added iism70d field for draco-hosted iis, aliased to iism70c & iism70l
+ for backward compatibility. Changed DD in default iism70 entry to
+ point to draco, using iia0, as we currently have no UNIX-hosted iis.
+ (7/12 SRo)
+
+unix/os/zmain.c
+unix/os/zzsetk.c
+unix/os/zfiopr.c
+ Added a new facility to UNIX/IRAF for debugging interprocess
+ communication (IPC). This feature will also be useful for debugging
+ tasks standalone, particularly in cases where a bug seen when the
+ task is run from the CL is difficult to reproduce when the task
+ is run standalone.
+
+ The facility is this: if LOGIPC is defined in the host environment
+ when an iraf process is started, the process will create two files
+ PID.in and PID.out, where PID is the process id. Everything read
+ from the IPC input file is copied to the .in file, and everything
+ written to the IPC output (e.g., sent back to the CL) is copied to
+ the .out file. This is done only for connected subprocesses.
+ It will work for any connected subprocess, e.g., normal cached
+ processes and graphics subkernels in both foreground and background
+ CLs, but not the i/o of the CL itself since it is not driven by IPC.
+
+ The IPC streams saved are an exact binary copy of whatever was sent
+ via IPC, including the binary IPC packet headers, binary graphics
+ data, etc. However, most IPC traffic is textual in nature, so it
+ will usually be possible to read the IPC files with a file pager,
+ or even "cat" them to the screen (not avisable if graphics data is
+ involved).
+
+ A particularly interesting use of this feature is to allow a process
+ to be run under the CL in the normal fashion, then rerun under the
+ debugger using the saved IPC input to duplicate the input and actions
+ of the process when run under the CL. For example:
+
+ % setenv LOGIPC
+ % cl
+ cl> dir
+ cl> logout
+ % unsetenv LOGIPC
+
+ Will run the CL, saving the IPC of all subprocesses (x_system.e).
+ We can then run the system process manually, using the saved IPC
+ input:
+
+ % $iraf/bin/x_system.e -c < PID.in
+
+ To run the process under ADB or DBX, using the saved input:
+
+ % adb $iraf/bin/x_system.e
+ :r <PID.in -c
+ or
+ % dbx $iraf/bin/x_system.e
+ dbx> r -c < PID.in
+
+ Note that the redirection has to be given first for ADB, and last
+ for DBX. [In recent versions of SunOS there must be no space after
+ the "<" in the :r command to adb.]
+
+ Running a task in this way is not identical to running the task
+ standalone, e.g. using a DPARAM file for parameter input, because
+ the exact runtime context of the process as run under the CL is
+ reproduced. The differences are subtle but can be important when
+ trying to reproduce a bug seen when the process is run under the
+ CL. For example, the functioning of the task is slightly differenct
+ when the -c flag is used, the environment is passed in via IPC rather
+ than being read from hlib$zzsetenv.def, and so on. Except for
+ possible kernel level differences associated with spawning the
+ process by forking a shell rather than the CL, the process should
+ execute identically as it did under the CL. (7/17)
+
+sys/vops/amov.gx
+ This routine could fail, corrupting the data array, in some
+ cases when the input and output arrays overlap. The same
+ problem exists in standard V2.9 iraf except that in most iraf
+ implementations, a host optimized version of AMOV is used,
+ hence the bug has not been seen. (7/19)
+
+sys/imfort/tasks/pcube.f
+ This file contained a subroutine containing the following sequence of
+ statements (irrelevant statements ommitted):
+
+ subroutine pcuber (pix, nx,ny,nz, i1,i2, j1,j2, k1,k2)
+ real pix(nx,ny,nz)
+ integer nx, ny, nz
+
+ On the MIPS, this produced a warning about nx/ny/nz already having
+ been declared. Probably when the compiler processes the REAL
+ statement it assumes the parameters are type integer. This seems
+ reasonable, so I moved the INTEGER card up before the REAL and the
+ warning went away. (7/19)
+
+sys/imfort/tasks/mkim.f
+ This task creates a test image where the pixel value is computed based
+ on the position of the pixel in the image. The relation being used
+ was (j*ncols+i), which is the pixel number starting at [1,1], except
+ that the value is offset by a line, which is ok but not what one would
+ expect. I changed it to ((j-1)*ncols+i). (7/19)
+
+vms/hlib/sigqueue.com
+ Added qualifiers /passall/nofeed to the ln03 print command. (7/20 ShJ)
+
+pkg/utilities/doc/polyfit.hlp
+ Added the missing "statistical" heading under the weighting section
+ in the polyfit task help page. (7/23/90 LED)
+
+sys/plio/pllpr.x
+sys/plio/pllnext.x
+sys/plio/pll2r.gx
+sys/plio/pll2p.gx
+sys/plio/plcmpress.x
+ These files each contained statements of the form
+
+ (foo * I_SHIFT) + goo
+
+ where foo is type short and I_SHIFT is an integer constant. The VMS
+ Fortran compiler, due to a misfeature or otherwise, evaluates a short
+ times an integer literal using short integer arithmetic, causing
+ integer overflow in the short integer intermediate expression. The
+ solution adopted was to replace the "foo" in expressions such as the
+ above by "int(foo)". (7/24)
+
+vms/os/zmain.c
+ The vms/iraf process main was modified to add support for calling
+ iraf tasks on the host system command line, a feature which was added
+ to unix/iraf some time ago. As with unix/iraf, any extra command
+ line arguments are passed on to the iraf main as the iraf command to
+ be executed. The vms/iraf version has the additional feature that
+ the process stdin and stdout/stderr may be redirected on the command
+ line, using the usual syntax <file >file >>file. This is NOT THE
+ SAME as redirecting the i/o of the iraf task, with 4>file etc.
+ arguments to the task. Both or either form of redirection may be
+ used, but the process main arguments must preceed the command to be
+ passed to the iraf main. (7/24)
+
+noao/lib/strip.noao
+ Added ONEDSPEC to the list of packages to be stripped; don't know
+ why this was missing. (7/25)
+
+pkg/utilities/t_curfit.x,curfit.gx
+ Moved the ic_close(rd) calls out of the input file/image loop
+ and into the main routine. The pointer to icfit was being freed
+ after the first file of data was fit and not reallocated before the
+ next fit was initiated resulting in a segmentation violation.
+ (LED 7/30/90)
+
+dev/hosts [tucana only]
+ Added adonis (engineering hp9000/370) to network for hpux testing.
+ (7/30/90 SRo)
+
+math/gsurfit/gsder.gx,gsderd.x
+ Corrected a typo in the gsder.gx routine which was causing a
+ pointer to be passed to the salloc routine instead of a size.
+ If the pointer addresses became very large this caused
+ an out of memory allocation error. This error has been in existence
+ as long as the package but only showed up on the MIPS.
+ (8/1/90 LED)
+
+sys/imio/iki/oif/oifmkpfn.x
+ Modified to check for the null image, and return "dev$null" as
+ the pixel file name in this case. (8/4)
+
+unix/boot/spp/xc.c
+ 1. All internal system executables called by XC (currently xpp.e,
+ rpp.e, and edsym.e) are now located using the iraf routine
+ os_sysfile, rather than searching through the host system
+ directories /usr/bin, /usr/local/bin, and so on. This ensures
+ that XC will always find these executables, regardless of where
+ the iraf host level commands xpp, rpp, etc. are installed (XC does
+ not even care if these are installed as user commands, anymore).
+
+ 2. The technique used to locate host commands such as f77 and cc
+ was changed to the following sequence: [1] first the directories
+ defined by the user's $PATH are searched (using execvp), [2] the
+ internally defined directory SYSBINDIR is searched (this defaults
+ to /usr/lang on a Sun), [3] the internally defined directory
+ LOCALBINDIR is searched (defaults to /usr/local/bin).
+
+ 3. When linking on a Sun/IRAF system, -lI77 is searched only if
+ the old (pre-V1.3) compilers are being used, as I77 has been
+ deleted with the V1.3 compiler.
+
+ The result of the above change for Sun/IRAF is that the revised XC
+ will work with either the new V1.3[.1] compiler, or any of the old
+ compilers. If both compilers are installed, either may be
+ selected using $PATH. If the system contains only the new
+ compiler at /usr/lang and the user has not included this directory
+ in their path, XC will still find the compiler. (8/4)
+
+ NOTE - Although IRAF can now make use of the new V1.3 compilers,
+ these are NOT fully supported yet. These appear to be largely new
+ compilers. A new set of system default compiler switches will
+ have to be developed, and the full iraf system recompiled from
+ scratch and tested before the new compilers are fully supported.
+ In particular, note that there is no guarantee that sources
+ compiled with the new compiler will link correctly with iraf
+ objects produced by the old compiler, or that old iraf objects
+ will link properly with the system libraries included with the
+ new compiler. The default iraf mkpkg compiler switches may not
+ be correct for the new compilers. Compiler bugs are likely.
+
+unix/boot/spp/xpp/decl.c
+unix/boot/spp/xpp/xppcode.c
+ Modified the code which outputs runtime initialization statements
+ to output these statements after any DATA initialization statements
+ (they were coming out before the DATA statements). Runtime
+ initialization is used to zero the function value of real and double
+ functions upon procedure entry. (8/7)
+
+sys/qpoe/README
+sys/qpoe/mkpkg
+sys/qpoe/qpio.h
+sys/qpoe/qpmacro.x
+sys/qpoe/qpoe.h
+sys/qpoe/qpopen.x
+ 1. The builtin interface default blocking factor for QPOE was changed
+ from 8 to 1.
+
+ 2. The default blocking factor may now be specified individually for
+ each datafile, by defining the optional parameter "defblock" in the
+ QPOE header. If a datafile default is given this overrides the
+ builtin interface default; any global SET value overrides both,
+ and setting the block factor in the runtime filter expression or
+ in a runtime call to an interface seti routine will override both
+ the datafile and global defaults.
+
+ 3. In a related change made while implementing the above feature,
+ qp_open was modified so that interface parameters set in global
+ SET statements (as in QPDEFS) will override datafile parameters
+ inherited from an existing datafile in a NEW_COPY operation.
+ In other words, if the user explicitly specifies a parameter such
+ as "pagesize" or "bucketlen" in their QPDEFS, this will override
+ the default value inherited from an old datafile when a new copy
+ is made. As before, any runtime qp_seti calls made once the new
+ datafile has been opened will override these defaults. This was
+ necessary to be consistent with the rule that the most recently
+ specified value for a parameter takes precedence. (8/8)
+
+pkg/system/directory.x
+ A couple of obscure bugs were fixed which affected unsorted
+ directory listings. (8/8)
+
+pkg/images/imarith/imasub.gx
+ Fixed a bug in the special path for subtracting an image from
+ the constant zero; i.e. negation via subtraction. (8/15)
+
+pkg/images/imutil/hedit.x
+ Modified hedit to use the maximum of the default task min_lenuserarea
+ value (28800) and the "min_lenuserarea" environment variable if
+ defined. The previous version always used the default value. (8/15 LED)
+
+dev/graphcap [tucana, orion]
+ Known object irafks.e is failing due to some problem with its I/O
+ channels at startup time; this happened apparently without any change
+ to VMS or IRAF software. IIS access via dni from tucana or orion
+ still works if the user has an irafks.com in their login directory.
+ Changed draco!iis to dnidraco!iis, so that the private irafks.com
+ is used. Will have to fix known object irafks.e later. (8/17/90 SRo)
+
+pkg/dataio/t2d/t_t2d.x
+ Increased OBUF_PAD, which controls the size of a data record read,
+ from 20000 to 32767 chars. This value limits the maximum size of
+ an input data record in the tape record, and it is a read error if
+ the actual record is larger. (Also increased SZ_OBUF to the next
+ larger power of two and increased the max ranges, not that the latter
+ is likely to matter). (8/22)
+
+dev/uhosts
+ Updated this file to reflect changes in the NOAO internet. This file
+ is a modified version of tucana's /etc/hosts file. (ShJ 8/29)
+
+dev/graphcap
+ Added entries for all colors of imd devices; color indices 202 through
+ 217 are now available. Also added a device "imddicomed" suitable for
+ drawing black, variable width lines destined for dicomed output via
+ the imdkernel. The imd entry was modified so xs=ys=#0.263, indicating
+ a physically square device. (8/30 ShJ)
+
+unix/hlib/config.h
+ Changed MT_SZBDEFIBUF (the default maximum input buffer size for
+ magtape i/o) from 32768 to 65535. This more nearly reflects the
+ maximum record size of most modern devices, and the change was needed
+ to permit the full range of blocking factors for tapes. (9/3)
+
+unix/os/zfiomt.c
+unix/os/zfiomt.c.BSD +
+ Installed the temporary "hacked magtape driver" for SunOS, which
+ includes Exabyte support. This will be replaced shortly in V2.10
+ but is what is being shipped in V2.9.1. This driver supports the
+ following combinations of devices and host drivers (given the
+ current chaotic situation with tape drivers on Suns it is unlikely
+ that any combinations not tested will work):
+
+ 1/2" reel tape 4.0.3 all except ST (SCSI tape) driver
+ 1/2" reel tape 4.1 untested, but should work
+
+ Exabyte 4.0.3 Sun ST driver, Ciprico RT driver
+ sparcstation under 4.0.3 not tested
+ Exabyte 4.1 Sun ST driver, except sparcstation
+
+ 1/4" cartridge tape and 1/2" reel tape on the Sun SCSI driver (at
+ least under 4.0.3) is not currently supported. The Exabyte on the
+ sparcstation version of the ST driver is not currently supported
+ due to serious bugs in the sparcstation version of the ST driver,
+ which is different than any other version of the ST driver.
+
+ The driver automatically determines whether the current system is
+ running 4.0.3 or 4.1 and adjusts it behavior accordingly. The
+ behavior of the ST driver differs from 4.0.3 to 4.1, and worse,
+ the driver ioctls changed, which prevents magtape code compiled
+ under 4.0.3 from even running on 4.1. zfiomt works around this
+ by using the hardwired values of the iocts for the two SunOS
+ versions. (9/3)
+
+unix/os/tape.c +
+ This file (not part of the runtime iraf system) is a host level
+ magtape test program, which should compile and run on most unix
+ systems. It is kind of like the unix "mt" program, except that it
+ runs as a command interpreter, allowing one to open a drive and
+ issue a series of commands to exercise the drive. All the
+ standard driver ioctls are provided, plus commands for reading and
+ writing data records, and various interpreter control commands.
+ The program is useful for exercising drivers (and drives) to
+ determine exactly what they do when the various driver ioctls are
+ issued.
+
+ The following commands are provided:
+
+ open [device [r|w]] rewind fsf [n]
+ close read [nrec [bufsz]] fsr [n]
+ log [file] write [nrec [bufsz]] bsf [n]
+ run <file> weof bsr [n]
+ verbose status quit
+
+ The "write" command writes records of the given size (default 1024)
+ containing a comment such as "file M, block N" at the beginning of
+ each record. The "read" command prints out the first 80 printable
+ chars or so of each record read, omitting unprintable chars. These
+ commands can be used to prepare test tapes and determine to what
+ record the tape is positioned after a given ioctl or command is
+ issued. (The program is also useful as a crude mtexamine type
+ program). (9/3)
+
+unix/boot/spp/xc.c [Sun/IRAF only]
+ The SunOS version of the XC compiler, which makes a stab at trying
+ to support the version 1.3 Sun Fortran and other compilers, was
+ modified as follows:
+
+ o When a compile is performed with the new compilers in the
+ path, the compiler runtime BIN directory /usr/lang/SC0.0
+ (or whatever - the path is generated at runtime to reflect
+ whereever the user installed the compiler) is passed as
+ in -L/usr/lang/SC0.0 to the CC command used to link. This
+ is necessary because the version of CC used to link may be
+ the old C compiler, which will not automatically search
+ the compiler BIN directory /usr/lang.
+
+ The actual library search path specified depends upon
+ whether FLOAT_OPTION is defined in the user environment.
+ For example, if FLOAT_OPTION is defined in the user
+ environment as "ffpa", the search path command line options
+ will be -L/usr/lang/SC0.0/ffpa -L/usr/lang/SC0.0 (where
+ the user specified path (/usr/lang) and BIN version (SC0.0)
+ are determined automatically at runtime). Referencing the
+ right version of each library is necessary in order to get
+ the library version optimized for the local floating point
+ hardware on Sun-3s.
+
+ o The host libraries searched to link with the 1.3 compilers
+ were changed to -lF77 -lm. It appears that -lU77 was
+ eliminated in 1.3, as well as the -lI77 noted earlier.
+
+ Using, e.g., f77 to perform the link would avoid the need to have
+ XC know the details of the host libraries but is probably not a
+ workable solution since iraf programs are not Fortran programs
+ ("host" programs linked with xc -h are not necessarily Fortran
+ programs either). f77 would set up the startup files etc.
+ required by f77 programs, whereas an iraf program is to the host
+ system a C program which uses some of the f77 libraries. If f77
+ could be used to link a C program then it might provide an
+ alternative to having XC know what host libraries to link against,
+ but I doubt if this would work.
+
+ It should be noted that while we are attempting to support the new
+ compilers, full support cannot be expected until the IRAF project
+ begins using these compilers routinely. (9/3)
+
+ Addendum - Note on 1.3 compilers. Testing the new XC with the 1.3
+ compilers on a Sun-3, I find that FLOAT_OPTION no longer works as
+ it used to. If FLOAT_OPTION is defined in the environment and one
+ does, e.g., a cc to compile a file, a message is printed warning that
+ FLOAT_OPTION is being ignored and the the default (fsoft) is being
+ used. It is necessary to explicitly compile with -f68881 or whatever
+ to get the desired architecture. This is not a problem for mkpkg or
+ fc, since these utilities automatically generate the -float arguments,
+ but if one calls xc directly the argument must be given. (9/4)
+
+dev/graphcap [orion, tucana]
+ Changed dni networking to draco back to normal (known object) mode
+ after fixing vms irafks.e startup problem (kpnolocal version).
+ (9/4/90 SRo)
+
+dev/hosts [orion only]
+ Added columba to hosts file (gemini & tucana were okay). (9/7/90 SRo)
+
+--------------------
+All tucana architectures and irafx@draco were updated to the latest snapshot
+of V2.10. orion, pegasus, columba, cephus, and iraf@draco were updated to
+V2.9.1 and the V2.9 distribution files rebuilt in the network archive.
+(3-9 Sept.)
+
+sys/imio/db/idbfind.x
+ Commented out a couple of lines of code in the code which scans
+ an unblocked header. The erroneous code was harmless given a
+ normal header containing nonempty cards, but could result in header
+ cards being skipped if blank header lines were encountered. (9/11)
+
+doc/ports/notes.mips +
+ Archived the notes for the the MIPS port. (9/17)
+
+unix/os/tape.c
+ Installed a newer version which is more conservative about the use
+ of the status (NOP) ioctl. (9/17)
+
+math/curfit/cvrestore.gx,cvrestorer.x,cvrestored.x
+math/gsurfit/gsrestore.gx,gsrestorer.x,gsrestored.x
+math/surfit/isreplace.x
+ Changed all the int() calls to nint() calls in the above math
+ package restore routines. This is a totally safe way for the
+ math routines to do the required floating point to integer
+ conversions and removes any potential precision problems for
+ tasks which read the math package structures back from a text
+ file. This change was made in response to problems encountered
+ with reading text databases on the HP. (LED 9/18)
+
+unix/hlib/zzsetenv.def
+ Removed the default imdir=tmp$ entry. Having this in zzsetenv.def
+ prevents use of a host level environment definition to set the per-user
+ default, and isn't necessary as IMIO will default to imdir=HDR$ if
+ imdir is not defined. (10/2)
+
+dataio/doc/wfits.hlp
+ Added some comments to the wfits help page concerning the unwisdom
+ of writing to EOT on a blank tape. Updated the section describing
+ the tape blocking factors and added an example showing how
+ wfits can be used to write exabyte tapes with large blocking
+ factors. (LED 10/3)
+
+-----------
+f68881,ffpa,sparc binaries updated on tucana. (10/16)
+
+unix/boot/spp/xpp/xppcode.c
+ Fixed a typo on line 888, changing "op >= &sbuf" to "op >= &obuf".
+ (10/19)
+
+pkg/images/imhistogram.par
+pkg/images/iminfo/imhistogram.x
+pkg/images/doc/imhistogram.hlp
+ Added a new parameter binwidth to the imhistogram task so that the
+ user can define the imhistogram resolution in terms of intensity
+ units or number of bins. (LED 10/26)
+
+pkg/images/tv/doc/display.hlp
+ Modified the description of zrange to note that the minimum and
+ maximum pixel values, if not already known, are estimated rather
+ than computed by examination of the full image. (11/5)
+
+sys/INDEX +
+ I added a MKTAGS procedure index listing to the SYS directory,
+ to make it easier for people to locate VOS routines without having
+ to know about MKTAGS (since few do, it seems). This file contains
+ a list of all the procedures defined in all the .x source files in
+ the sys$ directories, giving the calling sequence and source file
+ and line number for each. (11/8)
+
+dev/graphcap
+unix/sun/imtoolrc
+ Added a new entry for the GONG Cache Monitor. (11/9/90 ShJ)
+
+sys/qpoe/qpexdebug.x
+ Modified to print the lookup table zero to NDIGITS_DP precision,
+ in the case of a double precision lookup table. (11/9)
+
+sys/qpoe/zzdebug.x
+ 1. Modified the `hlist' task to survive the case of a symbol
+ returned by qp_gnfn not being found by qp_gpsym; this can happen
+ when the symbol name is a macro.
+ 2. Modified the default debug event list struct to agree with that
+ of PROS/Einstein datafiles, for convenience sake when debugging with
+ this data (the zzdebug code is crude and uses a wired-in compile
+ time event struct). (11/10)
+
+dev/hosts
+dev/devices
+dev/devices.hlp
+ 1. Added node ursa.
+ 2. The 1/2" drives now have a default density of 6250 instead of 1600.
+ 3. devices.hlp file updated to reflect the above changes.
+ (ShJ 11/12) (CB 11/12)
+
+pkg/images/images.hd
+pkg/images/rotate.cl
+pkg/images/imlintran.cl
+pkg/images/register.cl
+pkg/images/register.par
+ Added src="script file name" entries to the IMAGES help database
+ for the tasks ROTATE, IMLINTRAN, and REGISTER. Changed the CL
+ script for REGISTER to a procedure script to remove the ugly
+ local variable declarations. Added a few comments to the scripts.
+ (LED 11/12)
+
+sys/qpoe/README
+sys/qpoe/mkpkg
+sys/qpoe/qpexgetat.x +
+sys/qpoe/qpexattrl.gx +
+ Added the following new routines to QPEX:
+
+ nc = qpex_getattribute (ex, attribute, outstr, maxch)
+ nr = qpex_attrl[ird] (ex, attribute, xs, xe, xlen)
+
+ The qpex_getattribute routine is like qpex_getfilter, except that it
+ returns only that portion of the current compiled filter which
+ pertains to the named attribute. The filter expression for the
+ attribute is returned as a text string. The family of routines
+ qpex_attrl[ird] are similar, except that they return the filter for
+ the named attribute as a binary range list. In both cases, the
+ actual filter is stored internally in the QPEX descriptor as a
+ compiled program, hence the attribute or expression is only a
+ representation of the actual filter. Unless there is a bug they
+ should amount to the same thing, but one should be aware that the
+ internal form of the compiled filter is not a simple range list.
+ (11/12)
+
+sys/qpoe/zzdebug.x
+ Added a new debug task TFILTER, used to verify time filtering. Also
+ tests qpex_attrld, qpex_getattribute, and the use of QPEX and QPIO
+ independently, using qpex_seti to set the event attribute filter and
+ rewind the event list. Time filtering is tested by filtering the
+ event list once using the normal optimized time filtering code,
+ saving the x/y of each event which passes the filter in a memory
+ array. The event list is then rewound, the filter removed,
+ qpex_attrld called to get the time filter as a binary range list,
+ and the raw event list is manually filtered and the x/y of each
+ event which passes the filter saved in memory. The filter results
+ are then compared to see if they agree. (11/12)
+
+ [I wasted half a day getting TFILTER working, due to a very uncommon
+ problem. Changing the name of the task in the task statement in the
+ QPOE zzdebug.x would cause QPEX parsing (totally unrelated) to fail
+ in some cases and work in others. I traced this to particular file,
+ but when it was recompiled the bug went away. The newly compiled
+ object, though, was identical to that on orion (V2.9.1). Short of
+ recalling files from a backup tape, it was impossible to look into
+ this further.]
+
+sys/qpoe/qpexeval.x
+ In testing the time filtering code with the new debug task I found
+ the following bugs.
+
+ 1. The code which evaluates the filter expression for a single event
+ was not initializing the value of the expression to false before
+ evaluation. In most cases this step is redundant (which is probably
+ why I didn't put it in the original code) but it turns out that
+ there is a case in the lookup table code used to evaluate long range
+ lists where the old expression value is pushed before evaluating a
+ subexpression, and an undefined value could be pushed causing events
+ near a range boundary to occasionally be passed when they shouldn't.
+
+ 2. The first thing the lookup table code does is map the data value
+ to a bin of the lookup table. This involves an INT operation, and
+ values a fraction of a data value left of the first bin of the table
+ would have a fractional negative value which INT would convert to
+ a zero, causing values just left of the first bin to erroneously be
+ mapped into the first bin. (11/14)
+
+unix/os/tape.c
+ Was opening the tape drive with mode 1 when open-write was specified;
+ changed this to open with mode 2, read-write. (11/15)
+
+sys/qpoe/qpexcode.gx
+ Nested range list evaluation lookup tables occur where a bin of the
+ table at level N maps to so many closely spaced ranges that another
+ lookup table at level N+1 is needed to evaluate the range list for a
+ value that maps into the bin. Using the new TFILTER debug task to
+ test nested floating time filter lookup tables, I found that a
+ couple of internal variables were not being saved on the stack when
+ the routine recursed to generate code for the new table. (This is
+ the first time this feature was ever tested, as it has not been
+ needed until now). (11/15)
+
+sys/qpoe/qpex.h
+ Increased the size of the program and data buffers used for
+ expression evaluation by QPEX. These can overflow at runtime
+ causing a program abort and the memory is dynamically allocated so
+ we may as well be more generous. There is still a builtin default
+ upper limit, but if someone does come up with a filter which is
+ large enough to overflow either buffer the size can be increased in
+ QPDEFS before compiling the filter. (11/15)
+
+pkg/system/doc/help.hlp
+ Added REFERENCES and PHELP to the "SEE ALSO" section. (11/16)
+
+unix/os/mkpkg.sh
+ Modified the bootstrap code to avoid compiling sources such as
+ getproc.c and tape.c into LIBOS, since these are not part of the
+ library. The new version compiles all z*.c files plus an explicit
+ list of other files which are part of the kernel, such as
+ irafpath.c, prwait.c, and so on. (11/19)
+
+pkg/images/doc/gauss.hlp
+ Added a detailed mathematical description of the form of the
+ Gaussian kernel used in the GAUSS task to the help page. (28/11/90)
+
+pkg/images/filters/t_convolve.x
+ CONVOLVE was not decoding the legal 1D kernel "1.0 2.0 1.0" correctly
+ although the alternate form "1.0 2.0 1.0;" worked. Leading blanks in
+ string kernels as in for example " 1.0 2.0 1.0" also generated
+ an error. Fixed these bugs and added some additional error checking
+ code. (11/28/90 Davis)
+
+dev/hosts [draco, iraf and irafx]
+ Changed path to irafks.e to use "bin.dsux" for cephus. Other
+ DECstation installations left as "bin.mips. Node equuleus uses
+ mips as IRAF architecture; couldn't check virgo (passwd changed?).
+ (11/28/90 CB)
+
+unix/boot/spp/xc.c
+ While testing the magtape driver code on Ursa (Sun 470, SunOS 4.1)
+ I had occasion to compile a file and found that XC failed with the
+ message "f77 not found". The following two changes were made.
+
+ 1. There was an actual bug in the code for "run". This would build
+ the path of the executable, e.g., "/usr/lang/f77", but not use it,
+ calling execv with only the task name, e.g. "f77". Hence the routine
+ would only work if the executable was found in the user's path.
+
+ 2. Evidently the V1.3 compiler cannot even execute unless the
+ directory containing the f77 driver (normally /usr/lang) is in the
+ user's path. Since we want XC to function properly whether or not
+ the user has /usr/lang in their path, I modified XC to use PUTENV to
+ add /usr/lang to PATH in the environment for the XC process, if f77
+ is found in this directory. (If f77 is in some nonstandard location
+ then the user will already have the directory in their path).
+ (12/1)
+
+dev/hosts [tucana only]
+ Added madrona (George Jacoby) to network.
+ (12/4/90 FV)
+
+sys/qpoe/qpgettok.x
+ Edited the description of TOK_IDENTIFIER in the file header. The list
+ of legal identifier characters ommitted certain characters. (12/4)
+
+pkg/dataio/fits/t_rfits.x
+ Modified the rfits task so that it will supply a temporary root output
+ file name if old_irafname="yes" or quit with a clear error message if
+ old_irafname="no", in the case where the user sets the output file
+ to the null string "". (12/6/90 LED)
+
+dev/hosts
+ Modified the dev/hosts file on draco (iraf and irafx) so that
+ the kernel server was started on orion-gw rather than orion.
+ (12/6/90 jvb)
+
+pkg/system/cmdstr.x
+ Would ignore any parameter the name of which began with "mode".
+ Fixed to ignore only the mode parameter (I guess this is right;
+ actually it is not obvious if the mode parameter really has to
+ be skipped, although it should be safe to do so). (12/11)
+
+doc/ports/notes.dsux
+ Fixed a typo; a Dec 1990 date should have been Dec 1989. (12/13)
+
+sys/imio/impmap.x
+ The "flags" value was being passed to im_pmopen, rather than "mode",
+ causing im_pmopen to get an access mode of zero. This was harmless
+ when opening masks read only but prevented opening new masks. (12/14)
+
+sys/imio/immap.x
+ The case of a NEW_COPY .pl image (mask image) was broken out as a
+ special case. A mask image is created with mode NEW_IMAGE, set to
+ the logical size of the image being copied, and im_make_newcopy is
+ called to copy the header and other inheritable image attributes.
+
+ This is not a normal create-mask operation because the new mask is
+ actually an image stored as a mask which is a new copy of another
+ image; this is not the same as a new mask which is created for use
+ with some reference image. The main difference is that a mask is
+ always associated with the physical image matrix, and inherits any
+ runtime section defined for the reference image, whereas an image
+ which is a new copy of another image is sized according to any
+ section defined for the old image. In other words, a new-copy .pl
+ mask-image created from a section of an existing image will be the
+ size of the section being copied, rather than the size of the full
+ image. Normal mask operations do not work that way, which is why
+ im_pmmap cannot be called directly in this case to make a NEW_COPY
+ mask. (12/15)
+
+sys/imio/impmmap.x
+sys/imio/impmopen.x
+ The flag PL_BOOL (create boolean mask) was being set in IM_PLFLAGS
+ by im_pmopen, but that was incorrect as this routine doesn't have
+ access to the image descriptor. Moved the flag setting code to
+ im_pmmap. (12/15)
+
+sys/imio/impmhdr.x +
+sys/imio/impmmap.x
+sys/imio/imunmap.x
+ The IMIO image mask support was modified to save the image header in
+ the PLIO save file, and restore the header when the mask is later
+ mapped onto an image descriptor. The image title string and header
+ cards are stored in the mask "title" string as an arbitrarily long
+ string consisting of a number of lines of text. In effect, this
+ gives PLIO mask images (.pl images) the same header functionality
+ as, e.g., OIF format images. Mask images can now be dynamically
+ created, edited, etc., and have full headers, so they can be
+ considered full fledged images except for the one restriction that
+ the pixel type is always integer (with 28 bit unsigned integer
+ pixels). The semantics of accessing or copying sections, world
+ coordinates, etc., are the same as for any other image format.
+ Randomly accessing an image should be efficient despite the
+ compression, since the mask lines are compressed and indexed
+ individually.
+
+ One possibly useful feature of image masks is that they represent
+ the first machine independent image format for iraf. Character
+ data is stored as byte packed ascii strings, and the save format
+ for mask image data is an MII short integer sequence.
+
+ Mask images provide a general image compression capability for
+ integer images. If you try to store a floating image in a mask it
+ will work, but the data will be converted to integer (with
+ incredible compression if the data converts to zeros!). Since the
+ compression algorithm was designed for masks there will be little
+ compression for noisy 16 bit images. 32 bit integer images, or any
+ smooth (low noise) integer image will compress to some degree.
+ Compression factors for actual image masks, of course, will be very
+ large, with factors of 100-1000 being common. (12/17)
+
+sys/imio/iki/iki.h
+sys/imio/iki/ikiinit.x
+sys/imio/iki/mkpkg
+sys/imio/iki/plf/README +
+sys/imio/iki/plf/mkpkg +
+sys/imio/iki/plf/plf.h +
+sys/imio/iki/plf/plfcopy.x +
+sys/imio/iki/plf/plfdelete.x +
+sys/imio/iki/plf/plfrename.x +
+sys/imio/iki/plf/plfaccess.x +
+sys/imio/iki/plf/plfnull.x +
+ Added limited support to the IKI interface for PLIO image masks.
+ A new mini-kernel PLF was added; this consists of about half of
+ an IKI kernel (the access/copy/delete/rename primitives), with
+ the open/close, header access, and i/o functions being performed
+ directly in the IMIO code and in the IMPM code in IMIO. With
+ this change operations such as imaccess, imdelete, imrename, etc.
+ will work for .pl image masks as for the other image formats.
+
+ In principle everything related to image masks should be isolated to
+ an IKI kernel, but the mask i/o stuff does not fit the current image
+ kernel model very well, and it was simpler to solve the problem as a
+ special case in the IMIO code. This will be cleaned up later as
+ part of the new image structures project when the IKI interface is
+ redesigned. (12/17)
+
+pkg/images/imfit/imsurfit.x
+pkg/images/imfit/t_imsurfit.x
+pkg/images/lib/pixlist.h
+pkg/images/lib/pixlist.x
+ Changed the package prefix of the "pixlist" package, used internally
+ within IMSURFIT, from "pl" to "prl" (pixel range list) to avoid a
+ name conflict with the system interface PLIO. (12/18)
+
+sys/imio/immap.x
+ Modified so that the .pl extension does not have to be given
+ explicitly for the code therein to recognize a mask image. (12/18)
+
+sys/plio/plloadf.x
+ Modified to make specification of the .pl extension optional when
+ opening an existing save file. (12/18)
+
+sys/imio/immap.x
+sys/imio/imunmap.x
+sys/imio/iki/ikiinit.x
+sys/imio/iki/plf/mkpkg
+sys/imio/iki/plf/plfclose.x
+sys/imio/iki/plf/plfupdhdr.x
+sys/imio/iki/plf/plfopen.x
+ The special case nature of the code to map pixel mask images in
+ IMMAP led to further complications, to the point where it became
+ worthwhile to scrap this and move the open procedure into the
+ IKI PLF kernel where it belongs. Added open, update header, and
+ close procedures to the PLF image kernel and deleted the special
+ case code in immap.x and imunmap.x The main thing still missing
+ from this kernel is the i/o, which is still handled directly in
+ IMIO (pixel masks do not fit the virtual file model very well).
+ (12/20)
+
+sys/imio/imopsf.x
+ The code in this file which copies the descriptor of the reference
+ image was doing too much. Replaced by some code that copies only
+ selected fields. The concept of what a reference image means in
+ this case is still muddy, however, so I doubt if this stuff is right
+ yet. (12/20)
+
+sys/imio/imioff.x
+ The impkden computation could result in a divide by zero if the
+ logical block size was 1 char. Alignment does nothing in such a
+ case anyhow, so I put an IF around this code to skip it if the
+ logical block size is given as 1 char. This is the case in some
+ of the new image kernels which do not do anything so simple as
+ store pixels on a blocked device. (12/20)
+
+sys/qpoe/qpoe.h
+sys/qpoe/qpgettok.x
+sys/qpoe/qpioopen.x
+sys/qpoe/qpioparse.x
+sys/qpoe/qpexeval.x
+sys/qpoe/qpexmodfil.x
+ QPOE has a parameter "deffilt" which can be used to define a default
+ event attribute filter for event i/o. Previously, either the default
+ filter was used or a user specified filter was used, i.e., if the
+ user specified a filter it would *replace* the default filter. This
+ was changed so that the user specifed filter would add to or modify
+ the default filter, on an attribute by attribute basis. In effect
+ the data is run through the default filter, then the result is run
+ through the user filter.
+
+ The expected use of the default filter, which is stored in the
+ datafile with the data, is to exclude "bad" data from normal analysis.
+ Since all the data is nonetheless present, the default filter can
+ be overridden to get at the normally excluded data. This can be done
+ by editing the value of the deffilt parameter, deleting the parameter,
+ or by overriding elements of the filter in the user specified filter
+ at run time.
+
+ For example,
+
+ cl> countpoe "foo.qp[time:=@times]"
+
+ would replace the time term of the default filter with the time list
+ from the file "times", preserving any other terms of the default
+ filter, whereas
+
+ cl> countpoe "foo.qp[time+=@times]"
+ or
+ cl> countpoe "foo.qp[time=@times]"
+
+ would modify the filter for the time attribute, passing only those
+ events which pass both the default time filter and the time filter
+ given in the file "times". The new assignment operator ":=" must
+ be used to override any existing filter term; if the usual "=" is
+ used, the default filter term, if any, remains in effect.
+
+ The default filter is a string of the form "attr=expr[,attr=expr...]".
+ This is parsed at qpio_open time just as the user specified filter
+ is, hence the default filter may reference macros, include files,
+ etc. Operators such as qpex_getattribute and qpex_attrl will return
+ the final filter or range list as used to filter the data, produced
+ by combining the default and user filters. (12/27)
+
+sys/qpoe/zzdebug.x
+ Added a new debug task SETFILT, used to set the value of the "deffilt"
+ parameter in a QPOE datafile. (12/27)
+
+sys/qpoe/QPDEFS
+ 1. Added a comment at the top to make it more clear that this file
+ is only intended as an example of a QPDEFS file, and to give some
+ pointers regarding how to use the global macro facility.
+ 2. Changed the event structure definitions to match those now used
+ in qpoe$zzdebug.x. (12/28)
+
+sys/qpoe/qpexpand.x
+ This routine copies the input string to the output string, expanding
+ any macros or include file references in the process. The problem
+ was that qp_gettok returns a string token with the quotes removed,
+ and qp_expand was merely copying tokens out, resulting in the quotes
+ being stripped from string tokens. qp_expand was modified to
+ restore the quotes to string tokens written to the output stream.
+ I checked various other places where text is pushed back, and all
+ other instances preserved the quotes. (12/29)
+
+sys/qpoe/qpgettok.x
+ Added support for the builtin symbol or macro "$DFN". When
+ encountered in the input stream being processed by qp_gettok(), this
+ results in the datafile name being returned as a string token. This
+ can be used, for example, in macros used to call external tasks,
+ e.g., [time=`mytask($DFN,arg,...)`]. (12/29)
+
+sys/qpoe/qpiogetev.x
+ When rereading an event list opened and read earlier, and a PLRIO
+ descriptor was created, any existing PLRIO descriptor would not be
+ closed first. Added a plr_close call to deal with this case. (12/29)
+
+sys/qpoe/zzdebug.x
+ Added a new debug task TESTPOE, used to make simple artificial or test
+ qpoe files for testing purposes. This was used to check out a bug
+ report that events with x=y=1 would pass a filter containing a mask
+ which excluded this corner of the image, however I was unable to
+ duplicate the problem. (12/30)
+
+sys/qpoe/qpioparse.x
+ This routine was missing a call to qp_closetext(), causing it to leave
+ an open file descriptor behind. This would cause a task which did
+ many qpio_open() calls to eventually run out of file descriptors.
+ [FDEBUG is very useful to diagnose problems like this). (12/30)
+
+sys/qpoe/qpioopen.x
+sys/qpoe/qpioclose.x
+ While working on other things I noticed that qpio_open() was not
+ setting the IO_EXCLOSE flag when calling qpex_open to open an
+ expression evaluator. This did not matter much as qpio_close was
+ not checking the flag to see if it needed to close the QPEX, but in
+ the rare circumstance that a new QPEX was set with qpio_seti() an
+ open descriptor would have been left behind. Also a QPEX passed in
+ with qpio_seti() woudl be closed by qpio_close() when it shouldn't.
+ Modified qpio_open() to set the flag and qpio_close to check it.
+ (12/30)
+
+lib/qpset.h
+lib/qpioset.h
+sys/qpoe/qpoe.h
+sys/qpoe/qpio.h
+sys/qpoe/qpseti.x
+sys/qpoe/qpstati.x
+sys/qpoe/qpioseti.x
+sys/qpoe/qpiostati.x
+sys/qpoe/qpmacro.x
+sys/qpoe/qpioopen.x
+ Since the default filter (and probably mask eventually) are now much
+ more dangerous or noticeable than previously, I added switches in all
+ the usual places to disable the use of these defaults. Specifically,
+ in <qpset.h> we have
+
+ QPOE_NODEFFILT
+ QPOE_NODEFMASK
+
+ (default off, i.e., use default filter or mask. In <qpioset.h> we
+ have the same thing, just at the level of a specific QPIO descriptor:
+
+ QPIO_NODEFFILT
+ QPIO_NODEFMASK
+
+ And for global control by the user we have the new global set options
+
+ set nodeffilt
+ set nodefmask
+
+ which do what they say (omit or comment out these definitions to
+ enable use of the default filter and mask). (12/31)
+
+sys/qpoe/qpioparse.x
+ As an alternative to the "attr := expr" syntax, which can only
+ override any earlier filter terms for the referenced attribute (such
+ as terms of the default filter) I added some new syntax which can
+ disable the entire default filter and mask for a particular filter
+ expression. This is done by adding a "!" after the leading "[", and
+ before the new filter, e.g.:
+
+ display "foo[!time=@times.lst,pha=(3,8:11)]"
+
+ would temporarily disable both the default filter and mask. This
+ does not affect the use of ! within expressions since an expression
+ cannot be the first term of a filter. (12/31)
+
+sys/qpoe/qpioopen.x
+ A QPOE file is supposed to be able to contain more than one event
+ list, so the default filter/mask facility was modified to permit
+ a different default filter or mask to be specified for each event
+ list. For example, to define a default filter for event list "foo",
+ one would insert the parameter "deffilt.foo" into the datafile.
+ When looking for the default filter or mask, qpio_open() will look
+ first for the "def[filt|mask].<evl>" parameter, then "def[filt|mask]".
+ (1/1/91)
+
+sys/qpoe/qpiolmask.x
+sys/qpoe/qpioopen.x
+sys/qpoe/qpiosetfil.x
+ The default mask mechanism was modified to provide the same
+ semantics as the default filter. If a default mask is defined and
+ nodefmask is not set, the default mask is used as a spatial filter
+ for event i/o. If a default mask is defined, nodefmask is not set,
+ and a user mask is also specified, the user mask is edited using the
+ default mask as a stencil (the new mask is the user mask, with only
+ those pixels set which were also set in the default mask). Setting
+ nodefmask, QPOE_NODEFMASK, QPIO_NODEFMASK, or using ! or mask:= in a
+ filter expression disables the default mask. If the mask is set
+ with an explicit qpio_seti() call the default mask is ignored. (1/1)
+
+sys/plio/plsten.x
+ This routine was evidently not working at all, due to an internal
+ interface change that was never propagated to this routine. The
+ call to pl_linestencil was missing the maxpixval argument for both
+ the source and destination line lists. (1/1)
+
+sys/qpoe/qpexcode.gx
+ The QPEX parser syntax for bitmask expressions was generalized
+ somewhat to permit expression negation and parens, e.g., "%1",
+ "!%1", "!(%1)", "!(!%1)", etc. are now handled properly. Range
+ lists are still not supported for bitmask expressions, as it is
+ not clear that such a feature would be useful (one can just enter
+ a different bitmask instead). (1/1)
+
+sys/qpoe/README
+ Updated this file to reflect all recent changes to the QPOE
+ interfaces. (1/2)
+
+pkg/dataio/doc/rcardimage.hlp
+pkg/dataio/cardimage/t_rcardimage.x
+ Modified the rcardimage help page to include an example of how
+ to reformat an odd-blocked cardimage tape with reblock.
+ Modified the rcardimage task to print a clearer error message
+ when it encounters an odd-blocked rcardimage tape. (1/3 LED)
+
+pkg/system/help/help.par
+pkg/system/help/t_help.x
+pkg/system/help/tlist.x
+pkg/system/help/help.h
+ The HELP task was modified to add a new parameter "curpack", default
+ value "AskCL". With this default the help task will issue a clcmdw
+ to ask the CL the name of the current package; this is necessary to
+ preserve the current semantics of HELP (in the case of task redefs,
+ help for the task in the current package is returned). The reason
+ for the new parameter is to allow the current package to be
+ specified explicitly to avoid the clcmdw query, e.g., when calling
+ the task at the host level. (1/4)
+
+dev/hosts
+ Added noctua to iraf hosts table. (1/8/91 SRo)
+
+pkg/dataio/fits/fits_rimage.x
+pkg/dataio/fits/fits_wimage.x
+ The scaling routines in rfits and wfits were modified to minimize
+ the precision lost when converting from real pixels to fits integers
+ and vice versa. (1/17/91 LED)
+
+dev/hosts
+ Added aquarius to iraf hosts table on tucana and Draco/iraf.
+ (1/17/91 jvb)
+
+unix/hlib/extern.pkg [orion, tucana]
+ Added steward package at iraftest level after numerous discussions.
+ (1/22/91 SRo)
+
+dev/devices [ursa]
+ Added argo and libra exabytes, since these machines are hosted by
+ ursa now. Just tacked onto the end (mt[fgh]); perhaps we should
+ establish noao conventions for which letters represent 9track,
+ cartridge, exabyte, dat. (1/28/91 SRo)
+
+pkg/images/gradient.par
+pkg/images/laplace.par
+pkg/images/gauss.par
+pkg/images/convolve.par
+pkg/images/doc/gradient.hlp
+pkg/images/doc/laplace.hlp
+pkg/images/doc/gauss.hlp
+pkg/images/doc/convolve.hlp
+pkg/images/filter/t_gradient.x
+pkg/images/filter/t_laplace.x
+pkg/images/filter/t_gauss.x
+pkg/images/filter/t_convolve.x
+pkg/images/filter/convolve.x
+pkg/images/filter/xyconvolve.x
+pkg/images/filter/radcnv.x
+ Modified the convolution operators (laplace, gauss, and convolve) to
+ make use of symmetries in the convolution kernel to compute the
+ convolution much faster. Laplace now makes use of radial
+ symmetry in the y direction as well as the x direction
+ resulting in a modest decrease in execution time. Gauss now
+ computes 2 indepedent 1D convolutions in x and y if the user
+ specified kernel is separable in x and y instead of the full 2D
+ kernel. (1/29/91 LED)
+
+dev/hosts
+ Added Doug Rabin's mozart to irafx host table. (1/30/91 SRo)
+
+--------------------------
+Tucana system upgraded from SunOS 4.0.3 to 4.1.1. (2/4)
+Began revisions of Sun/IRAF to support SunOS 4.1. (2/5)
+
+./*
+ The iraf root was relocated to /u3/iraf on tucana, retaining link
+ at /usr/iraf. All of the iraf runtime files (sources and bins) are
+ now consolidated on /u3. (2/6)
+
+unix/*
+ Did a bootstrap of the system (mc68020 version) under 4.1.1 without
+ incident. (2/6)
+
+local/.login
+local/.exrc
+ Made a number of changes for 4.1.1. Added OPENWINHOME and MANPATH
+ definitions. Added /usr/lang (default location of new Fortran
+ compiler) to the default PATH. FLOAT_OPTION is no longer defined
+ as it is not used by the new compilers and causes a warning message
+ to be issued. The default IRAFARCH for Sun-3 systems is now f68881
+ if the f68881 binaries are installed. EXINIT is no longer defined,
+ added a .exrc file instead to allow for vi macros such as the very
+ useful "@". Deleted the susp/eof control in STTY, it seems time to
+ abandon the DEC defaults and go with the UNIX standard ctrl/z and
+ ctrl/d instead. (2/6)
+
+unix/boot/spp/xc.c
+ The SunOS version of XC was modified to look for the IRAFARCH
+ environment variable and add a -f68881, -ffpa, etc. switch to the
+ f77 or cc command line. Specifying any switch beginning with -/f on
+ the XC command line overrides the use of IRAFARCH. With this change
+ the architecture used for both compilation and linking is controlled
+ entirely by IRAFARCH, and FLOAT_OPTION is no longer used. So long
+ as IRAFARCH is specified and all modules of a program are compiled
+ with the same setting, mixing of modules or libraries compiled for
+ different architectures is ruled out. (2/6)
+
+unix/shlib/edsym.c
+ Looking at the edsym code I note that lseek(fd,o,L_SET) is now
+ considered obsolete and one is supposed to use lseek(fd,o,SEEK_SET)
+ instead, including <unistd.h> to define SEEK_SET. L_SET is still
+ defined for backwards compatibility so I think I will leave things
+ as they are for now. (No changes.) (2/6)
+
+unix/shlib/mkshlib.csh
+ 1. Modified to support the new Sun V1.3 Fortran compiler. The iraf
+ shared image is linked explicitly with LD and it is necessary to
+ specify exactly the directories, objects, and libraries to be
+ linked. These are much different for the new compiler than for the
+ old one. For example, for f68881 one links with
+ /usr/lang/SC0.0/crt0.o, /usr/lang/SC0.0/f68881/_crt1.o, the libm.a
+ in SC0.0/f68881 (linking with the SC0.0 version of libm.a causes
+ Mlog10[ds] to be unresolved), and the libF77.a in SC0.0. In
+ principle the directory /usr/lang can be relocated so this is
+ defined as a variable at the top of the file.
+
+ 2. The following error message was being reported (by edsym) when
+ linking shared with XC under SunOS 4.1:
+
+ cannot read shared image version number from <file>.e
+
+ In the code which generates the S.s file (the shared library) I
+ moved ushlib from data space to text space. Evidently under 4.1.1
+ the system is more clever and can have initialized data at addresses
+ for which corresponding file offsets do not exist in the executable
+ file. This results in a seek to an offset beyond the end of the .e
+ file, leading to the error message shown above. Since ushlib is not
+ modified at runtime we can just as easily have it in text space,
+ which avoids the problem. A simple workaround for this problem is
+ to link -e (no edsym symbol table editing). (2/6)
+
+unix/hlib/mkpkg.inc
+ Added -libmil (use inline templates) and -dalign (double align type
+ double data) to the list of default mkpkg compile switches for the
+ new compiler. By default the compiler will use optimization level -O3
+ and on a Sun-4, will compile -cg87. This latter option is necessary
+ for code compiled for a Sun-4 to run on both older and newer Suns,
+ which have different floating point units. There is another option
+ -cg89 which tells the compile to take advantage of certain features
+ of the newer floating point units (e.g. hardware sqrt) but we can't
+ use that for binaries that must run on all sparc systems. (2/6)
+
+unix/hlib/mkpkg.sf.SUN3
+unix/hlib/mkpkg.sf.SUN4
+ Commented out all the bug entries, we should start over with this
+ new compiler. (2/6)
+
+---------------------
+Started full f68881 sysgen/recompile. (2/6)
+
+unix/hlib/mkpkg.sf.SUN3
+ The files vops$ak/{abnekx.x,abnex.x} and vops$lz/aveqx.x, all of
+ which contain equality comparisons of complex numbers, produced the
+ following message from the V1.3 compiler:
+
+ warning: unexpected parent of complex expression subtree
+
+ Compiling the files without optimization avoids the problem. The
+ floating point or complex equalities used in these routines are
+ questionable, but there does not appear to be anything wrong with
+ the code. (2/7)
+
+unix/boot/spp/xpp/decl.c
+ The d_runtime() routine returns in a char argument any runtime
+ initialization text needed for a procedure. The routine would do
+ nothing if no initialization was required, which was incorrect, as
+ any old text in the string buffer argument would then be reused.
+ Modified to write an EOS into the output string in this case.
+ This bug was introduced as a result of a recent change in V2.10
+ iraf. (2/7)
+
+pkg/cl/compile.c
+ The CL failed to come up after the sysgen. This was eventually
+ traced to the compile() function. This contains a register flag
+ "status" which was used without being initialized. The routine
+ would operate correctly provided the (random) value of the variable
+ was anything other than ERR. This is highly likely which is why
+ the bug has gone undetected for so long. (2/7)
+
+unix/sun/Makefile
+ Changed the suggested values of FLOAT from fswitch/fsingle for
+ Sun-3/other to -f68881/"". (2/7)
+
+-----------------------------------
+Sysgen of f68881 binaries for core system completed.
+Sparc bootstrap completed; sparc sysgen begun.
+Sysgen of f68881 binaries for noao packages begun. (2/7)
+
+unix/hlib/mkpkg/host.c
+ In the sparc sysgen I got an error message complaining that a $purge
+ directive had failed. It turns out that the unix/iraf version of
+ h_purge in host.c is a no-op and does not even return an exit status,
+ which is incorrect as the status of the routine is checked by the
+ portable mkpkg code. I modified it to always return an exit status
+ of OK. Checking the rest of the routines in the file, there was
+ one other routine which inconsistently returned status values and I
+ fixed that as well. (2/8)
+
+unix/hlib/mkpkg.inc
+ Deleted the "-dalign" switch from all X*FLAGS entries. It turns out
+ that the CL does not begin to double align double data, and cannot
+ be easily modified to do so, so this cannot be used, at least with
+ the CL C code (SPP pretty much double aligns all double data so there
+ is no problem there). This option only affects Sun-4s, i.e., the
+ already compiled f68881 code is not affected by this switch. (2/8)
+
+-----------------------------------
+ffpa sysgen begun. (2/8)
+
+unix/boot/spp/xc.c
+ The ffpa sysgen went fine except that all the links failed with a
+ ffpa_used unresolved external message. This was occurring due to
+ the -Bstatic and the reference was occuring in one of the C libraries.
+ It was necessary to add a -f<float-option> switch to the CC command
+ used for the link to avoid the problem. XC explicitly links all the
+ right Fortran libraries for a given architecture, but it is still
+ necessary to pass the -fxxx flag for the benefit of the C libraries.
+ (2/8)
+
+bin.ffpa/S.e
+bin.f68881/S.e
+bin.sparc/S.e
+unix/boot/spp/xc.c
+ Since shared image version support has been around for a year or so
+ and V2.10 no longer uses the older shared images I deleted S.e and
+ S4.e in the recent sysgens, leaving only the current (actually V2.9)
+ shared image S5.e. It turns out however, that XC needs to have a
+ file entry S.e in the directory containing the real shared image in
+ order to permit runtime searching to find the file (runtime searching
+ is necessary to provide architecture support, IRAFULIB support, etc.).
+ XC could search for S<n>.e except that it is difficult to determine
+ the shared image version number. The simple solution was to add a
+ file entry S.e in each of the core system BIN directories. This is
+ not an actual shared image, rather a zero length directory entry used
+ to flag the directory containing the real shared image or images.
+ If this marker file is not present the system will still run, but
+ link time EDSYM symbol editing will be disabled. (2/10)
+
+unix/shlib/mkshlib.csh
+unix/os/zmain.c
+unix/os/zzstrt.c
+unix/os/zshlib.c
+ It turned out that zmain/zzstrt were using the ushlib vector to pass
+ the sh_debug flag, used to map the shared image text writable so
+ that debug breakpoints can be set (as in :r -w in adb). This was a
+ bit of a trick and doesn't work any more since I moved ushlib to the
+ text segment, so I made sh_debug an explicit variable in data space.
+ It is defined in the shared library (libshare.a) or in zshlib.o if
+ linking unshared. (2/10)
+
+unix/hlib/install
+ I added a rm -f preceeding each ln -s, since ln will not clobber
+ any existing link. This could occur in certain cases when link
+ /usr/include/iraf.h already existed but had the wrong value. (2/10)
+
+unix/as.sparc/oscmd.s +
+unix/hlib/mkpkg.sf.SUN4
+ After the sparc sysgen with the new compiler all OS escapes would
+ fail with the error "cannot open `A'". This was traced to a host
+ compiler error for file oscmd.x. The null string "" was being passed
+ to a subroutine; in Fortran this is a short array of length 1
+ initialized to zero, but the compiler was initializing the value to
+ random garbage, in this case A (in tests I ran other values were
+ generated). Other identical cases of "" being passed to subroutines
+ in the same file were compiled correctly. Compiling without
+ optimization did not help, so I had to edit the assembler and place
+ the file on the special file list. (2/10)
+
+---------------------------------
+SunOS 4.1.1 / Sun Fortran 1.3.1 upgrades completed (except for full
+testing and further bug fixing). (2/10)
+
+iraf/dev/devices [Ursa only]
+ Added mti to the devices file for libra's 9track tape drive. It
+ was interesting that there was no entry in the devices file when
+ libra was served by orion - but then the host names were the same
+ for both orion and libra's mtas.
+
+sys/qpoe/qpioparse.x
+ The event list filter syntax supports runtime specification of the
+ event coordinate system to be used with the notation key=(xoff,yoff)
+ where xoff,yoff are event field specifiers, e.g., (s0,s2). Fixed
+ two problems with the code in this routine which parses the KEY
+ keyword: 1) whitespace etc. was not being skipped properly, causing
+ the key= expression to be rejected, and 2) the offset values were
+ being used directly, which is incorrect, since at the user level
+ event struct offsets are specified in bytes, whereas in the QPIO
+ descriptor short integer offsets are used for efficiency reasons.
+ With these problems fixed the key=(x,y) feature checks out, i.e.,
+ QPIO itself handles the key properly and it was only the parsing
+ routine which had problems. (2/10)
+
+dev/devices [tucana]
+ deleted mt device aliases no longer used in OS 4.1.1 (2/12 ShJ)
+
+sys/qpoe/qprenamef.x
+ This routine renames a header parameter by creating a new one and
+ setting the deleted bit in the old one. There was a subtle bug
+ which could cause the old parameter to fail to be deleted. The
+ routine was indeed setting the delete bit in the symstruct of the
+ old parameter, but it was doing so *after* adding the new parameter
+ to the SYMTAB symbol table. This was not correct because the
+ symstruct of the first parameter was being referenced by an absolute
+ pointer the value of which was computed before the new parameter
+ was added. In SYMTAB adding a new parameter can cause the symbol
+ table to be reallocated, invalidated any such pointer. (2/13)
+
+sys/qpoe/qpgnfn.x
+ 1. The pattern string input by the user was being used almost directly,
+ after only * -> ?* mapping. Any match was accepted. This is
+ incorrect because we want to accept matches which only match the
+ *entire* field name. It is necessary to constrain the match to
+ begin at the beginning of the string being checked, and verify that
+ the entire string is matched.
+ 2. Sorting was not working correctly. The package was using zero
+ indexed string buffer offsets internally, and calling STRSRT with
+ this index array. This is incorrect because STRSRT expects a one
+ indexed index array. The result was that the list would be sorted
+ ignoring the first character of each string. (2/13)
+
+sys/qpoe/zzdebug.x
+ Added a "sort" parameter to the HLIST task. (2/13)
+
+sys/imio/db/imgnfn.x
+sys/imfort/db/imgnfn.x
+pkg/images/doc/hedit.hlp
+ Since the QPOE gnfn code was derived from IMIO I figured the IMIO
+ code might have the same bug and indeed it did (the pattern matching
+ bug, not the sort bug). Fixing this should fix the problem of HSELECT
+ matching field names using a prefix-match rather than full match.
+ The IMIO version was mapping * to ?* and was constraining the match
+ to the beginning of the name, but was not checking for a full
+ length match. This was not completely trivial as the name being
+ matched is embedded in a FITS card, hence space or "=" terminates
+ the name, rather than EOS. (2/13)
+
+sys/ki/ki.h
+sys/ki/kighost.x
+ Added support for an optional environment variable "irafhostnametable".
+ If defined, this specifies the host pathname of the hosts file to be
+ used for iraf networking. The default is dev$hosts. (2/13)
+
+ [Changed variable name to "irafhnt". The original name was too long,
+ this could conceivably cause problems on some systems. (5/13)]
+
+unix/hlib/mkpkg.sf.SUN4
+ Evidently with the latest OS, the sparc register set is no longer
+ saved with the version of SETJMP found on a Sun-4. This would cause
+ a process executed on a Sun-4 to die in the iraf main during error
+ recovery, upon return from the ZSVJMP call. Compiling without
+ optimization so that the compiler does not cache values in registers
+ seems to avoid the problem. I added etc$main.x to the special file
+ list to be compiled without optimization, although this is probably
+ going to be sufficiently common problem that we might want to
+ consider some more machine independent way of always compiling
+ without optimization routines that use ZSVJMP. (2/14)
+
+pkg/images/doc/hedit.hlp
+pkg/images/doc/hselect.hlp
+pkg/images/doc/imheader.hlp
+pkg/images/doc/imgets.hlp
+ Added a reference to the imgets and imheader tasks in the SEE ALSO
+ sections of the HEDIT and HSELECT tasks. Added a reference to the
+ HSELECT and HEDIT tasks in the SEE ALSO sections of the IMHEADER
+ and IMGETS tasks. (2/22/91 LED)
+
+pkg/images/imfit/imsurfit.x
+ Fixed a bug in the deviant pixel rejection code in the IMSURFIT
+ task. If the parameter upper > 0 and lower = 0.0 or vice versa
+ the rejection limits were not being computed correctly. In the
+ former case all point with negative residuals were rejected
+ instead of none and in the latter case all points with positive
+ residuals were rejected instead of none. (2/25/91 LED)
+
+sys/fio/getlline.x
+sys/fio/glongline.x
+ Added some comments to the file headers noting that the size of
+ the output buffer must be at least SZ_LINE characters larger than
+ the length of the longest line to be read. (3/01)
+
+sys/mwcs/iwewcs.x
+ The value of the (obsolete) FITS keyword CROTA2, which is input in
+ decimal degrees, was being used without first converting to radians.
+ There is no problem when the CD matrix notation is used instead. (3/12)
+
+pkg/images/tv/display/sigl2.x
+ The routine si_blkavgs, which is used to block average an image
+ (when scaling a large image to fit into a small display window)
+ would accumulate the sum of several short integer image lines in
+ a short integer buffer. This could lead to integer overflow in
+ the case of images with large pixel values. The routine was
+ modified to accumulate into a buffer of type long. (Note that
+ the problem affected only block averaging in Y, X was being
+ handled correctly by the vector operator ABAV.). (3/20)
+
+dev/hosts
+ Updated grus from 68881 to sparc. (3/21/91 SRo)
+
+dev/hosts
+ Added herbie, Stuart Jeffries' new workstation to table. (4/2/91 SRo)
+
+sys/fio/fstati.x
+sys/fio/fmkpbbuf.x
+ 1. A fstati on F_UNREAD returns the number of unread characters in the
+ file buffer. This was ignoring any pushback; the fstati routine was
+ modified to count pushed back data as well as any data remaining to
+ be read in the current buffer area. Zero will be returned only if
+ the file buffer is empty and there is no pushed back data.
+ 2. fmkppbuf (make pushback buffer) will now automatically create the
+ normal file i/o buffer if any pushback occurs. Probably this is not
+ necessary but we may as well make sure that pushback before any file
+ i/o occurs is not different than after i/o has occurred and a buffer
+ has been created. (4/2)
+
+sys/imio/iki/oif/mkpkg
+sys/imio/iki/oif/oifgpfn.x
+ Added an "include <knet.h>" to oifgpfn.x. This is needed for the
+ zfsubd call in the routine. (4/3)
+
+sys/ki/kfsubd.x
+ Was not returning the length of the output string correctly in
+ the case of a file on the local node, but with the node name
+ prefix included. (4/3)
+
+dev$hosts
+ Added khaki, lapis, taupe, scarlet, and elsol to dev$hosts on
+ tucana, orion, gemini, and ursa. (4/5 jb)
+
+pkg/images/geometry/geofit.x
+pkg/images/geometry/geogmap.x
+pkg/images/doc/geomap.hlp
+ Cross-term fitting will now work in the case where xxorder=2
+ and xyorder=2 (x fit) and in the case where yxorder=2 and
+ yyorder=2 (y fit). (4/9/91)
+
+dev$hosts
+ Added aliases to dev$hosts on tucana, orion, gemini, and ursa
+ for machines on mountain (machine.kpno.noao.edu). (4/10 jb)
+
+hlib$extern.pkg
+ Swapped RV0 for RV since this will be the new package. No tucana
+ users are working w/ RV at present anyway. (4/16 MJF)
+
+pkg/images/geometry/t_blkavg.x
+pkg/images/geometry/blkavg.gx
+pkg/images/geometry/blkavg.x
+ The blkavg task was partially modified to support complex image data.
+ The full modifications cannot be made because of an error in abavx.x
+ and the missing routine absux.x. (4/18/91 LED)
+
+pkg/images/imarith/t_imcombine.x
+ Changed the order in which images are unmapped to unmap the output
+ images last. Closing the input images frees file descriptors
+ which are needed for the temporary file used when updating
+ STF images. Previously IMCOMBINE would fail for STF images which
+ used the full number of file descriptors, had a sigma output
+ image, and a logfile. (4/22/91, Valdes)
+
+math/curfit/cv_b1eval.gx
+math/curfit/cv_beval.gx
+math/curfit/cv_feval.gx
+math/curfit/cvaccum.gx
+math/curfit/cvacpts.gx
+math/curfit/cvchomat.gx
+math/curfit/cvfree.gx
+math/curfit/cvinit.gx
+ Did some cleaning up in the .gx files to make the code easier to
+ read. (4/23/91, LED)
+
+sys/ki/ki.h
+ Increased the maximum number of nodes from 64 to 128. This is only a
+ stopgap measure; eventually the code should be rewritten to eliminate
+ the fixed size static host name table. (4/29)
+
+dev/devices.hlp
+dev/graphcap
+dev/termcap
+ Added "lw6" and removed "imagen" from these files on tucana, gemini,
+ ursa, orion and irafx@draco. (4/30 ShJ)
+
+pkg/images/doc/imarith.hlp
+ Fixed some formating problems in the IMARITH help page. (5/2/91 LED)
+
+math/curfit/cvpower.gx
+ Changed the amovk$t (INDEFR,,,) call to amovk$t (INDEF,,,) to avoid
+ the double precision version of the routine being called with
+ INDEFR. This problem was caught with f2c on the Mac. (5/6/91 LED).
+
+math/gsurfit/gs_f1deval.gx
+ Changed the amulk$t (,,,2.,,,) call to amulk$t (,,,2$f,,,) to remove
+ a type dependency mismatch in the routine. This problem was caught
+ with f2c on the Mac. (5/6/91 LED).
+
+math/curfit/cverrors.gx
+math/curfit/cvpower.gx
+math/curfit/cvrefit.gx
+math/curfit/cvrestore.gx
+ Finished cleaning up the .gx files in the curfit directory. (5/6/91 LED)
+
+unix/hlib/login.cl
+ The line
+
+ if (access ("home$loginuser.cl") cl < "home$loginuser.cl"
+
+ causes the following statement to be ignored if the IF is true.
+ This is a CL bug, but for now the workaround is to add a null
+ statement ; to the line following the IF. (5/6)
+
+unix/sun/imtoolrc
+ Added a new config imt31|imtret for the Reticon CCD (1240x400_
+ at the request of CTIO. (5/8)
+
+lib/math/curfit.h
+lib/math/gsurfit.h
+lib/math/iminterp.h
+lib/math/interp.h
+lib/math/surfit.h
+ Added dictionary string definitions for the interpolator types and
+ weights. Use of these strings insures that strdic/clgwrd will
+ return the correct type code. Currently one has to assume the code
+ definitions will not change or put a lookup table with a data
+ statement containing the macro definitions. The code would also
+ have to be modified to add new types. The dates were restored to
+ their original values to avoid recompilation. (5/9, Valdes)
+
+ [I updated the dates on the above files and performed sysgen updates
+ over the weekend. It is dangerous to modify files without modifing
+ the file date, as this can break various automatic system maintenance
+ procedures. (5/11DCT)]
+
+unix/hlib/login.cl
+ The noao and proto packages are now loaded by default in the standard
+ login.cl. This indirectly includes images, tv, and plot. (5/11)
+
+pkg/images/imarith/t_imarith.x
+ There was a missing statement to set an error flag if the operand
+ image dimensions do not agree. (5/14/91, Valdes/Schaller)
+
+pkg/images/minmax.par
+pkg/images/imutil/t_minmax.x
+pkg/images/imutil/minmax.x
+pkg/images/doc/minmax.hlp
+ Modified the minmax task to compute the minimum and maximum
+ pixel values with the correct precision if the input images are
+ of type double precision or complex. Note that does not get
+ around the fact that the minimum and maximum pixel values are
+ stored in the image header as type real. (5/16/91 Davis)
+
+pkg/images/listpixels.par
+pkg/images/iminfo/listpixels.x
+pkg/images/doc/listpixels.hlp
+ Modified the listpixels task to print the image pixel coordinates
+ in logical, physical or world coordinates. The default is logical
+ as before. (5/17/91 Davis)
+
+unix/boot/spp/xc.c
+unix/boot/mkpkg/main.c
+unix/boot/mkpkg/mkpkg.h
+ These tasks have supported multiple -p pkg arguments for some time,
+ but would only pass one such argument on to subprocesses. XC was
+ modified to pass multiple -p pkg arguments on to XPP and MKPKG was
+ modified to load the mkpkg.inc file for multiple enviroments
+ (formerly it would load multiple environments, but would only read
+ one mkpkg.inc in addition to the global core system one). The PKGENV
+ environment variable was generalized; this can be now be a
+ whitespace delimited list of packages, not just a single package
+ name. It was not necessary to modify MKPKG to pass -p pkg stuff
+ on to XC, since this is done explicitly in the package mkpkg.inc
+ files (by redefining XFLAGS and LFLAGS). (5/21)
+
+sys/vops/asqr.gx
+ Changed to test for <0 rather than <=0, since taking the square root
+ of zero is a legal operation. (6/3)
+
+pkg/dataio/fits/fits_read.x
+pkg/dataio/fits/fits_write.x
+ Modified the fits reader and writer to deal correctly with
+ image sections in the IRAFNAME header parameter. (11/6 LED)
+
+pkg/images/iminfo/imhistogram.x
+ The imhistogram task has been modified to print out the value
+ at the middle of the histogram bin instead of the value of the
+ left most edge if the output type is list. (11/6 LED)
+
+pkg/dataio/doc/wfits.hlp
+pkg/dataio/fits/wfits.h
+pkg/dataio/fits/t_wfits.x
+pkg/dataio/fits/fits_write.x
+pkg/dataio/fits/fits_wheader.x
+ The wfits task has been modified to write IEEE format FITS files,
+ fits bitpix = -32 and -64, instead of scaled integers if the input
+ image pixel type is real or double respectively and if the wfits
+ parameter bitpix is left at the default. If the user overrides the
+ default and elects to scale the data, a warning message with an
+ estimate of the maximum precision loss is provided. (11/6 LED)
+
+dev/termcap
+ Fixed typo so that "stty wyse" works, not just "stty wyse75".
+ (6/12/91 SRo)
+
+dev/devices [gemini only]
+ Updated the devices file on gemini for Tom Duvall's two Exabytes
+ on his workstation. They are called rst0 and rst1 so this
+ causes duplicate entries in the devices file for different
+ mt[devices]. (6/13/91 jb)
+
+sys/etc/mkpkg
+sys/etc/qsort.x
+sys/etc/xqsort.x +
+ Added a new routine XQSORT, a variant on the old QSORT routine.
+ This is identical to qsort except for an extra argument which is
+ private to the compare routine and merely passed on to the compare
+ routine by xqsort. The intent of this is to avoid the need for
+ initialization routines and commons to pass context information
+ on to the compare routine. The datatype of the "private data"
+ argument is int but a pointer can be passed as well, as in C where
+ an integer cast is used to pass pointer data in an integer. Since
+ a pointer can be passed, if necessary any arbitrarily complex
+ descriptor can be passed on to the compare routine. (6/15)
+
+ !NOTE -- the name of this procedure had to be changed to "gqsort".
+ !See note below. (6/27)
+
+lib/clio.h
+lib/clset.h
+sys/clio/README
+sys/clio/mkpkg
+sys/clio/clcache.x
+sys/clio/clstati.x
+sys/clio/clepset.x +
+sys/clio/clgpseta.x +
+sys/clio/clppseta.x +
+sys/clio/clgpset.x
+sys/clio/clppset.x
+ 1. Added a full CLIO interface definition to the README file.
+
+ 2. The pset routines cl[gp]pset, used to get/put the values of
+ string valued parameters, where named to cl[gp]pseta as the old
+ names were too misleading (what does it mean to get/put a pset).
+ The old routines are retained for compatibility but are now
+ considered obsolete.
+
+ 3. The CLGFIL routines are also now considered obsolete. clgstr
+ and fntgfn etc. should be used instead. It doesn't make any sense
+ to have a system routine that arbitrarily combines two such
+ different facilities as get-string and the file name template
+ package (if this is justified then any number of other equally
+ logical combinations are possible too).
+
+ 4. Added a new routine CLEPSET to the pset package. This is called
+ to "edit" a pset. So far as the application is concerned all this
+ means is that the pset values can be changed by the operation. In
+ the specific case of the current combination of CLIO and the CL,
+ EPARAM is called to edit the pset and the edited values are updated
+ in the parameter cache in the local process. This routine is still
+ considered experimental. (6/22)
+
+pkg/cl/task.h
+pkg/cl/exec.c
+pkg/cl/opcodes.c
+ Minor changes to the CL were required to support the CLEPSET
+ routine. clepset uses dparam to efficiently obtain the edited pset
+ and update the local parameter cache. A way was needed to redirect
+ the output of a task like dparam back to CLIO in a subprocess. A
+ hidden special file ("IPC$IPCIO-OUT" currently, but this could
+ change at any time) was defined such that if a task is run with the
+ output redirected as in "dparam > IPC$IPCIO-OUT" the stdout of the
+ task is sent to t_out, the CLIN of the subprocess which issued the
+ command. When the task terminates the message "# IPC$IPCIO-FINISHED\n"
+ is sent to mark the end of the output from the task.
+
+ These changes are considered internal to CLIO. The method used to
+ implement this feature is a minimum-modification approach which
+ only solves a part of a more general problem, hence this facility
+ should not be used outside of CLIO. (6/22)
+
+sys/clio/README
+sys/clio/clcache.x
+sys/clio/clio.com
+sys/clio/clepset.x
+sys/etc/main.x
+ 1. Added a new routine clc_compress() to the CLIO parameter cache
+ code, with a call to this routine in clepset(). The caching
+ mechanism handles parameter updates by simply redefining the
+ parameter and its value in the symbol table; if there are many
+ parameter updates significant wasted space can result. clc_compress
+ rebuilds the cache symbol table, saving only the most recent entry
+ for each parameter.
+
+ 2. Modified clc_init() to permit it to be called repeatedly to
+ reinitialize the parameter cache. Modified main.x to use clc_init
+ instead of clc_mark/clc_free to reinitialize the cache before
+ running a task. This was done to eliminate the external marker,
+ which would be invalidated after rebuilding the cache symbol table
+ in an operation such as clc_compress. (6/23)
+
+sys/gio/imdkern/idk.x
+ The arguments "frame" and "color" to the idk_open procedure were
+ being modified by the procedure, causing the external values to be
+ preserved across open/close workstation calls. This was causing
+ the automatic frame number detection logic to fail when displaying
+ to multiple frames without restarting the kernel. (6/23)
+
+sys/clio/README
+sys/clio/mkpkg
+sys/clio/clcache.x
+sys/clio/cllpset.x +
+ Added a new routine clc_list(fd,pset,format) to the parameter
+ cache package, and a corresponding routine cllpset(pp,format) to
+ the pset package. These are used to list the contents of a pset,
+ or of the full parameter cache, to an output file using a caller
+ specified format. (6/23)
+
+sys/fio/fseti.x
+ Added a call to fcanpb() in the F_CANCEL code to cancel any pushed
+ back input. (6/24)
+
+dev/hosts
+ Added radix (Richard Green) to host table. (6/27/91 SRo)
+
+sys/etc/mkpkg
+sys/etc/qsort.x
+sys/etc/xqsort.x -
+sys/etc/gqsort.x +
+ It was necessary to change the name of the recently added procedure
+ "xqsort" to "gqsort" to avoid a library name conflict. The old
+ qsort procedure is defined in hlib$iraf.h as "xqsort". The best
+ thing to do would have been to change this definition to something
+ more obscure, but this would have required recompiling all existing
+ applications that use qsort, and worse, since there would be a new
+ procedure xqsort with a different calling sequence, existing
+ applications using the new shared image would get the new xqsort
+ and would have died with a segvio when the program was executed.
+ It is easier to pick a new name then force recompilation of the
+ existing applications. (6/27)
+
+dev/termcap
+dev/graphcap
+ Added new entry for pericomdg submitted by Skip Schaller. Modified
+ existing termcap entry for vi501 as suggested by Alan Koski. (7/5 ShJ)
+
+dev$hosts
+ Added aliases to dev$hosts on tucana, orion, gemini, ursa,
+ and draco for downtown node "morrison". (CB, 7/5/91)
+
+ursa!hlib$extern.pkg
+ Set ccdacq as a top level package to point to /u2/rooke/ice/ccdaqcq.
+ (7/5/91 SRo)
+
+sys/pmio/miogl.x
+ The activation code in this routine was not initializing the "ve"
+ vector. The error was harmless in the typical case where the
+ i/o range is the full image, but could lead to an error when
+ mio_setrange was used to specify a subregion, becasuse the "ve"
+ vector was only used in the latter case. (7/6)
+
+sys/pmio/zzdebug.x
+ Added a "region" parameter to the MIO zzdebug task, to allow testing
+ of mio_setrange. (7/6)
+
+sys/imio/db/imgnfn.x
+sys/imio/db/idbkwlu.x
+sys/imio/db/imgftype.x
+sys/imio/db/idbpstr.x
+sys/imio/db/idbgstr.x
+ 1. The image keyword list (gnfn) stuff, which was modified earlier
+ to require full keyword matches for header keywords, would still
+ permit partial matches for the standard builtin keywords (there
+ was a second call to patmatch, used to check the stadard keywords,
+ which was missed earlier).
+ 2. Tightened up the keyword matching performed on the naxisN keywords.
+ Formerly there would have been a conflict if a user keyword happened
+ to have a name such as "naxisNfoo".
+ 3. In imgftype, there was some code in the procedure to check for
+ "i_" and naxisN which was apparently redundant (idb_kwlookup already
+ does this) so I deleted the code. (7/8)
+
+pkg/system/help/helpdb.x
+pkg/system/help/helpdir.x
+ 1. Added a new routine hd_debug to helpdir.x. This dumps the
+ descriptor of a compiled help directory to a file and is used for
+ debugging purposes (it is not used in the runtime system).
+
+ 2. The routine hdb_make_rhd, used to make the root help directory
+ (directory of packages), contained a line HD_NMODULES(hd) =
+ HDB_NENTRIES(db) which was incorrect; this could add extra,
+ unitialized modules to the help directory just assembled, possibly
+ leading to a segementation violation when later the unitialized
+ entries were referenced. This was causing segmentation violations
+ when many external packages were loaded (the bug would only come
+ into effect with root help directories, and each external package
+ has one). The bug has always been there, it is just more likely to
+ cause a problem when there are many packages. (7/10)
+
+sys/qpoe/qpexmodfil.x
+ A filter expresion such as "foo = expr" is supposed to be the same
+ as "foo += expr", adding to any existing filter term, instead of
+ replacing the existing filter as with "foo := expr". This code had
+ it the other way around, i.e., = was the same as := (replace). (7/15)
+
+unix/hlib/login.cl
+ Modified the template login.cl as follows:
+ 1. Added code to check the environment variable TERM, if it exists,
+ for the special cases "sun" and "xterm". This won't work in many
+ cases but should make it easier for people to customize things if
+ they want, without requiring a loginuser.cl.
+ 2. If the file ".hushiraf" is seen during login the message of the
+ day is not printed and cl.menus is set to no. This makes it
+ possible to get a simple cl prompt without all the other verbiage
+ being printed, which experienced users don't necessarily want
+ to see during every login.
+ 3. Deleted some old stuff that has been commented out for quite a
+ while without causing problems. (7/15)
+
+pkg/system/doc/mkdir.hlp
+ Fixed a typo. (7/18)
+
+dev/hosts
+ Added enzo to the hosts table (Frank Hill's new machine). Did this on
+ tucana and gemini. (7/19 jb)
+
+pkg/images/imarith/imc* -
+pkg/images/imarith/ic* +
+pkg/images/imarith/t_imcombine.x
+pkg/images/imarith/mkpkg
+pkg/images/imarith/generic/mkpkg
+pkg/images/imcombine.par
+pkg/images/doc/imcombine.hlp
+ Replaced old version of IMCOMBINE with new version supporting masks,
+ offsets, and new algorithms. (7/19 fv)
+
+lib/math/iminterp.h
+math/iminterp/arbpix.x
+math/iminterp/arider.x
+math/iminterp/arieval.x
+math/iminterp/asider.x
+math/iminterp/asieval.x
+math/iminterp/asifit.x
+math/iminterp/asiffree.x
+math/iminterp/asigrl.x
+math/iminterp/asiinit.x
+math/iminterp/asirestore.x
+math/iminterp/asisave.x
+math/iminterp/asivector.x
+math/iminterp/ii_1dinteg.x
+math/iminterp/ii_eval.x
+math/iminterp/ii_pc1deval.x
+math/iminterp/im1interpdef.h
+math/iminterp/doc/arbpix.hlp
+math/iminterp/doc/arider.hlp
+math/iminterp/doc/arieval.hlp
+math/iminterp/doc/asider.hlp
+math/iminterp/doc/asieval.hlp
+math/iminterp/doc/asifit.hlp
+math/iminterp/doc/asigrl.hlp
+math/iminterp/doc/asiinit.hlp
+math/iminterp/doc/asivector.hlp
+ The 1D image interpolation routines were replaced with new versions
+ modified by Frank Valdes to support sinc interpolation. (7/26/91 Davis)
+
+sys/qpoe/qprlmerge.gx +
+sys/qpoe/qpexattrl.gx
+sys/qpoe/qpexgetat.x
+sys/qpoe/README
+sys/qpoe/mkpkg
+sys/qpoe/gen/mkpkg
+sys/qpoe/zzdebug.x
+ The qpex_attrl routine would fail for attribute expressions
+ containing multiple eterms (filter subexpressions). Instead of
+ AND-ing the successive filter terms, it was combining them (OR-ing
+ them) to produce a single expression, and parsing the result
+ to return the output range list.
+
+ 1. Modified qpex_getattribute to return expressions containing
+ multiple eterms with a semicolon rather than a comma delimiting
+ each eterm, so that the eterms can be distinguished.
+ 2. Added a new routine qp_rlmerge, used to merge (AND) two range
+ lists of any datatype.
+ 3. Modified qpex_attrl to parse each eterm separately and merge
+ the resultant range list into the output range list.
+ 4. Added a new debug task mergei and used this to test the new
+ merge range list routine. (7/27)
+
+sys/imio/iki/stf/stfrgpb.x
+ Added a check for a group index out of range. (7/28)
+
+sys/pmio/miopl.gx
+sys/pmio/miogl.gx
+sys/pmio/miostati.x
+sys/pmio/mioseti.x
+sys/pmio/miosrange.x
+sys/pmio/mio.h
+ MIO_SETRANGE still wasn't working correctly so I had a more careful
+ look at the mio_[gp]l routines.
+
+ 1. The fix made earlier to initialize the "ve" vector was incorrect,
+ as any data that wants to be saved between calls has to be saved in
+ the i/o descriptor and "ve" is a local variable. Moved the "ve"
+ initialization to immediately before the call to imggsc, where the
+ variable is used.
+
+ 2. Made extensive changes to the way the "V" vector is handled.
+ This is passed back by the routines in each call to give the
+ coordinates of the first pixel of the referenced line segment.
+ Modified the routine to pass back a vector matching the image
+ dimension rather than of length IM_MAXDIM, to lessen the chance
+ of overrunning the client's buffer. Fixed a bug that was preventing
+ the routine from returning correct vector coordinates when doing
+ i/o on a subregion (mio_setrange) of the image. Fixed a bug that
+ would cause the data pointer to be offset when accessing subregions.
+
+ 3. By default the coordinates of the V vector returned by the
+ mio_[gp]l routines will be relative to any subregion specified
+ with a prior call to mio_setrange. This is convenient when using
+ mio_setrange to randomly access subregions of the image. If this
+ is not what is desired it is now possible to follow the mio_setrange
+ call with a call to "mio_seti(mio,P_REGCOORDS,NO)" to cause the
+ V vector to be returned in image rather than region relative
+ coordinates. This is more convenient for applications that use
+ mio_setrange only to optimize i/o and want this to be transparent
+ to the rest of the code. (7/28)
+
+pkg/images/geometry/t_imshift.x
+ The shifts file pointer was not being correctly initialized to NULL
+ in the case where no shifts file was declared. When the task
+ was invoked repeatedly from a script, this could result in an array
+ being referenced, for which space not been previously allocated.
+ (LED 7/29/91)
+
+unix/hlib/extern.pkg URSA ONLY
+ Changed ccdacq from /u2/rooke/ice/ccdacq/ to
+ /ursa/iraf/extern/ice/ccdacq. We now have "production" and development
+ versions on ursa. (7/31/91 SRo)
+
+dev/hosts
+ Added mira, Mike Merrill's machine - this had been added to gemini
+ but not to tucana. (8/3/91 jb)
+
+mkpkg
+noao/mkpkg
+ Added a new entry point "arch" as an alias for "showfloat". The
+ command "mkpkg arch" will print the current architecture. (8/06)
+
+pkg/xtools/inlfit/ +
+pkg/xtools/doc/inlfit.hlp +
+pkg/xtools/mkpkg
+ The interactive non-linear least squares fitting package inlfit
+ developed by Pedro Gigoux and used by the photcal package has
+ been added to xtools. (8/7/91 LED)
+
+dev/hosts [tucana, gemini, ursa]
+ Changed lapis to /usr/iraf/iraf. Other mountain systems should be
+ changed as Jim Davis gets around to them. (8/8/91 SRo)
+
+sys/libc/qsort.c
+ Added the copyright notice from the BSD source. Berkeley finally
+ made this source publically available without a unix source license,
+ provided the copyright notice is retained. (8/11)
+
+sys/imio/iki/stf/stfaddpar.x
+ Added a case for TY_BOOL (LOGICAL*4), and changed the abbreviated
+ type names "INT*4" etc. to their full Fortran equivalents. (Bug
+ fix contributed by B.Simon). (8/11)
+
+sys/mwcs/mwgsys.x +
+sys/mwcs/mkpkg
+ Added source for the routine mw_gsystem. This was in the interface
+ specification but was missing from the interface. (8/11)
+
+unix/sun/imtoolrc
+unix/sun/imtool.c
+ Added several new entries to the imtoolrc file. Increased the
+ maximum number of frame buffer configuration entries from 64 to 128,
+ and added a comment to the file suggesting that users add their
+ custom additions starting with config #64. (8/11)
+
+pkg/plot/phistogram.par
+pkg/plot/phistogram.x
+pkg/plot/phminmax.x
+pkg/plot/doc/phistogram.hlp
+ Added a new task phistogram to the plot package. Phistogram takes
+ input from either an image or a list and permits full control over
+ the plotting parameters. The histogram computation is done in
+ and identical manner to the imhistogram task. (8/14/91 LED)
+
+pkg/plot/pradprof.par
+pkg/plot/t_pradprof.x
+pkg/plot/doc/pradprof.hlp
+ Added a new task pradprof to the plot package. (8/16/91 LED)
+
+unix/gdev/sgidev/mkpkg.sh
+unix/gdev/sgidev/sgi2ueps.c
+ Installed new SGI to EPS (encapsulated postscript) graphics driver.
+ (8/16)
+
+dev/graphcap
+ 1. Installed a minor bug fix affecting the vhpl (VMS) entry.
+ 2. Added entries for the EPS driver. Device "eps" is the default
+ portrait mode output, "epsl" provides landscape mode. (8/16)
+
+dev/hosts [tucana, gemini, ursa]
+ Changed khaki to /usr/iraf/iraf. (8/16 jb)
+
+pkg/cl/exec.c
+ There was a bug in the oneof() function in how the "alldone" flag
+ is set to cause termination of a background process. The flag
+ would be set when attempting to pop (at task termination) a task
+ that has the T_BATCH flag set. The problem is that this test
+ would result in the continued execution of the task *after* execution
+ of the background command completed. In the normal case of a
+ background command submitted interactively on the command line this
+ would be harmless as the task would be "cl", which would see EOF
+ on the stdin and exit. In more complex cases, e.g., an executable
+ task or a script reading from a file, this could result in an
+ attempt to read from a stream that existed in the foreground CL
+ but which was never opened in the background CL.
+
+ The particular case in which this showed up was in the OBSERVE task
+ in CCDACQ, when submitting the command "display <image> 1 &" to
+ the CL from the subprocess, using clcmd. The display task would
+ run normally, being left behind in the process cache as the first
+ non-system process. The task descriptor for the observe task in
+ the background cl would be set up to read from a connected subprocess,
+ and after execution of the display command would resume waiting for
+ commands from the subprocess. Meanwhile, the subprocess actually
+ in the cache would be display rather than observe, and display would
+ have already terminated, resulting in deadlock with both the CL
+ (observe) and the display task executable waiting for a command.
+ Due to the deadlock the background job would never terminate and
+ after this sequence had repeated several times background job
+ submission would fail in the foreground cl with "no more background
+ job slots". (8/18)
+
+pkg/plot/phistogram.par
+pkg/plot/phistogram.x
+pkg/plot/phminmax.x
+pkg/plot/doc/phistogram.hlp
+ The new phistogram task has been restored to the plot package after
+ the disk crash. (8/26/91 LED)
+
+pkg/plot/pradprof.par
+pkg/plot/t_pradprof.x
+pkg/plot/doc/pradprof.hlp
+ The new pradprof task has been restored to the plot package after
+ the disk crash. (8/26/91 LED)
+
+dev/graphcap
+ Added the six new ICE imtool frame buffer entries. (8/27/91 SRo)
+
+sys/qpoe/qpexmodfil.x
+ There was a simple bug in the buffer reallocation code which would
+ cause filter expansion to fail for expressions longer than 1024
+ characters. A "sz_expr = INC_SZEXPRBUF" should have been
+ "sz_expr = sz_expr + INC_SZEXPRBUF". (9/04)
+
+unix/shlib/mkshlib.csh [not modified]
+ After a sysgen all sparc executables would fail to run due to an
+ access violation. This was due to a problem with the shared image;
+ the data and text segments were overlapping by 8 bytes, evidently
+ due to a linker bug in SunOS 4.1.1. I worked around the problem by
+ manually relinking the shared image including a dummy object "foo.o"
+ in the link to make the text segment slightly larger. Since the
+ text size of the shared image will change as soon as any code is
+ changed, it doesn't seem worthwhile to devise a more permanent
+ workaround. It looks like the linker fails to align the data segment
+ properly if etext is close to a page boundary. (9/07)
+
+unix/hlib/math.h
+ Changed the name of the define "E" to "BASE_E", to decrease the
+ chance of accidental name aliases. (9/17)
+
+pkg/images/doc/magnify.hlp
+ Fixed a bug in the magnify task help page.
+ (9/18/91 LED)
+
+pkg/images/filters/t_gauss.x
+ The code which computes the gaussian kernel in the gauss task
+ was producing a divide by zero error if ratio=0.0 and bilinear=yes
+ (2.10 version only). (9/18/91 LED)
+
+sys/gio/gadraw.x
+ It was possible for integer overflow to occur for case linear in the
+ assignments mx=x,my=y. Added 0:MAXNDC pre-clipping for case linear.
+ (9/20)
+
+pkg/system/help/helpdb.x
+ There were still problems with the code in helpdb which reorders
+ the package index help directory to depth-first order. A bug
+ which would cause commands such as "help lists.*" to print each
+ module twice was traced to this code. The help directory
+ reordering code was rewritten (inverting the two main loops) to
+ ensure that the reordered help directory does not have any holes
+ in it, and that the number of modules is correct. (9/21)
+
+dev$hosts
+ Changed aliases in dev$hosts on tucana, orion, gemini, ursa,
+ and draco for downtown node "morrison" to "vegemite". (CB, 9/21/91)
+
+-----------------------------------------------------------------------
+Merge changes (including many minor bug fixes) from A/UX IRAF port.
+This includes support for GCC and ANSI C, and limited SYSV support. (9/21)
+
+unix/hlib/install
+ 1. Added a #!/bin/csh at the top of the script.
+ 2. Added a "set path" so that explicit paths to executables can be
+ avoided. Changed "/etc/chown" to "chown" (this utility is in
+ different places on different systems).
+ 3. I had trouble on A/UX with the $hbin/sgi2* $hlib/sgi2* stuff in
+ MODEFILES. The second did not expand to anything and the string
+ "$hlib/sgi2*" was left in MODEFILES with the * unexpanded, causing
+ problems later when appended to a directory prefix. Since there are
+ not supposed to be any executables in hlib anyhow I deleted the
+ second reference.
+ 4. In the code which checks the MODEFILES, I added a test to see if
+ $file exists as named, before looking for it in each of the
+ directories. Otherwise the $hbin/sgi2* entries, which are already
+ fully resolved pathnames, expand to pathnames referencing
+ nonexistent directories when a BINDIRS prefix is prepended.
+ This could cause the install script to bomb on A/UX.
+ 5. Changed all occurrences of constructs like `ls ...` to `$LS ...`
+ with LS defined as /bin/ls at the top of the file. The problem is
+ that a subshell is spawned to evaluate the command in the back
+ ticks, and if "ls" is defined as an alias in a .cshrc file, as is
+ typically necessary on SYSV systems (to get -C) the alias will be
+ used, causing the output to be different than expected by the script.
+ (9/21)
+
+unix/hlib/irafuser.csh
+ Generalized somewhat - added some commented out GCC definitions,
+ and new definitions for CC, F77, HSI_F77LIBS, and RANLIB. These
+ are used in the mkpkg.sh files (used to bootstrap the HSI). (9/22)
+
+unix/hlib/mkfloat.csh
+ Added a definition TARXFLGS, with BSD and SYSV versions. (9/22)
+
+unix/boot/bootlib/mkpkg.sh
+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/spp/mkpkg.sh
+unix/boot/spp/mkxc.sh
+unix/boot/spp/rpp/mkpkg.sh
+unix/boot/spp/rpp/ratlibc/mkpkg.sh
+unix/boot/spp/rpp/ratlibf/mkpkg.sh
+unix/boot/spp/rpp/rppfor/mkpkg.sh
+unix/boot/spp/xpp/mkpkg.sh
+unix/boot/wtar/mkpkg.sh
+unix/boot/xyacc/mkpkg.sh
+unix/gdev/sgidev/mkpkg.sh
+unix/os/mkpkg.sh
+unix/shlib/mkpkg.sh
+ Changed all occurrences of "cc" to "$CC" and all occurrences of "f77"
+ to "$F77". Changed all occurrences of "ranlib" to $RANLIB. (9/22)
+
+unix/setarch.sh
+ The A/UX version of "test" does not have the -h flag to test for
+ symbolic links, so the existing script did not work. Still trying
+ to find a portable way to do this, I changed the script to use the
+ construct: if [ "`ls -d as`" = "as" ]; then ... (9/22)
+
+unix/os/alloc.c
+ 1. The file header comment section contained the sequence "for the
+ /dev/* entries...". The "/*" would cause a warning from gcc that
+ there might be a comment buried in another comment, which can cause
+ a comment to terminate prematurely. In this case it was harmless
+ and indeed there was no error, but I changed the text to eliminate
+ the warning.
+ 2. Moved the #include <sys/types.h> to before the #include <utmp.h>,
+ as the A/UX version of the latter requires the former, and SunOS
+ doesn't care. (9/22)
+
+unix/os/prwait.c
+ In pr_getipc(), deleted unused variables error_code, error_status,
+ waitpid. (9/22)
+
+unix/os/zalloc.c
+ 1. In ZDVALL, deleted unused variable x_status.
+ 2. Deleted unused variable i in loggedin(). (9/22)
+
+unix/os/zfioks.c
+unix/hlib/irafuser.csh
+ 1. Deleted the old, commented out code for rcmd(), as variables
+ defined for this were being reported as unused. Added a comment
+ explaining that rcmd and friendly-host authentication cannot be
+ used without making the process suid root.
+ 2. Added #ifdef SYSV support for SYSV termio. Terminal driver ioctls
+ are used in this routine to set raw mode for the password prompts.
+ 3. GCC was complaining that the setjmp/longjmp used in zardks,
+ zawrks could cause certain register variables to become undefined
+ (op and nbytes in zardks, ofd in zawrks), so I changed the storage
+ class from register to auto for these variables.
+ 4. GCC would still warn that longjmp could clobber the values of
+ several local variables in zardks. Evidently this is a feature of
+ ANSI C. The values of automatic variables not declared "volatile"
+ are not guaranteed to be preserved in a longjmp. Added a -DANSI to
+ irafuser.csh and some #ifdef ANSI code to zfioks.c to provide the
+ necessary (but not non-ANSI backwards compatible) definitions. (9/22)
+
+unix/os/zfiolp.c
+ I had to change the declaration
+
+ static PKCHAR xnullstr[1] = XEOS;
+ to
+ static PKCHAR xnullstr[1] = { XEOS };
+
+ (PKCHAR=short and XEOS=0) or GCC would complain about an invalid
+ initializer. Must be a feature of the ANSI C syntax. (9/22)
+
+unix/os/zfiotx.c
+unix/hlib/libc/kernel.h
+ 1. Modified to add #ifdef SYSV support for SysV terminal i/o.
+ 2. GCC complained about some functions which were used (default
+ storage class extern) and later declared static; added static
+ declarations for these functions to the file header to eliminate
+ these (harmless) warning messages.
+ 3. Another longjmp warning, this time in zgettx. Variable "op" might
+ not be saved over a longjmp. In this case I was able to avoid the
+ problem merely by moving the op initialization statement to after
+ the setjmp. (9/22)
+
+unix/os/zfxdir.c
+ Deleted unused local variable "ch". (9/22)
+
+unix/os/zgcmdl.c
+ Deleted unused local variable "ev". (9/22)
+
+unix/os/zgtime.c
+ Had to #ifndef SYSV the #include <sys/timeb.h> as this file does
+ not exist on SysV systems. (9/22)
+
+unix/os/zmain.c
+ Deleted unused local variables "junk" and "wsetsize". (9/22)
+
+unix/os/zwmsec.c
+ Added "static" to explicitly specify the storage class in the first
+ declarations of "napmsx", which is declared static in the source
+ given later in the file. (9/22)
+
+unix/os/zxwhen.c
+ 1. GCC did not realize that the call to kernel_panic in zxwhen was
+ an exit, and would warn that the value of variable "vex", used later
+ in the procedure, could be unitialized. Added a statement to init
+ this to null to avoid the warning message.
+ 2. In zxgmes, the char pointer to the returned error message was
+ not being initialized if no error had occurred. Modified to return
+ the null string in this case. (9/22)
+
+unix/os/zzstrt.c
+ Added #ifdef SUNOS4 conditionals around certain declarations which
+ are used only the #ifdef SUNOS4 code which follows, to avoid unused
+ variable warnings on non-Sun systems. (9/22)
+
+unix/boot/bootlib/envinit.c
+ Deleted the unused variable "osfn" in loadpkgenv. (9/22)
+
+unix/boot/bootlib/bootlib.h
+ Deleted the commented out #define NOVOS definition, which causes
+ a /* in comment warning and doesn't need to be in this file anyhow.
+ (9/22)
+
+unix/boot/bootlib/osfcopy.c
+ 1. Deleted the unused variable "binary_file".
+ 2. Added a return at the end of the function, to guarantee that
+ a function value was returned. (9/22)
+
+unix/boot/bootlib/ostime.c
+ Modified with #ifdef SYSV for SysV. This whole business needs to
+ be redone sometime to provide rigorously correct time primitives
+ for iraf. (9/22)
+
+unix/boot/bootlib/vfn2osfn.c
+ Local variable "first_time" defined but never used. (9/22)
+
+unix/boot/generic/generic.c
+ 1. In copy_comment(), added an entry time initializer for the
+ local variable "flag".
+ 2. GCC complained about the variable "ch" in evaluate_expr() possibly
+ being used before being initialized. This looked harmless in this
+ case, but I added a global initializer to eliminate the warning
+ message. (9/22)
+
+unix/boot/mkpkg/host.c
+ 1. Deleted a couple of unused "exit_status" variables. Changed some
+ "return(exit_status=N)" constructs to separate assignment and return
+ statements in cases where the function does not return a value.
+ 2. Deleted unused variable "ip" in search_mkpkgfile().
+ 3. Added a #ifdef SYSV to the code which calls RANLIB, since this is
+ not used on SYSV (COFF) systems. (9/22)
+
+unix/boot/mkpkg/mkpkg
+unix/boot/mkpkg/mkpkg.h
+unix/boot/mkpkg/scanlib.c
+ 1. Added a #include "mkpkg.h" to scanlib.c. This file includes extern.h
+ which references a structure defined in mkpkg.h.
+ 2. Deleted unused local variable "key" in h_scanlibrary().
+ 3. Replaced the MAX_SYMBOLS definition in scanlib.c by MAX_LIBFILES,
+ as there is also a MAX_SYMBOLS in mkpkg.h which means something
+ quite different. (9/22)
+
+unix/boot/mkpkg/sflist.c
+ In sf_scanlist, the GCC static analysis indicated that variable "tail"
+ could possibly be used without being initialized. Added code to
+ initialize tail=head before scanning the list. (9/22)
+
+unix/boot/mkpkg/tok.c
+ 1. In do_if(), in the event of a syntax error the local variable "bval"
+ could be used without being initialized. Once again probably harmless
+ but it makes GCC complain.
+ 2. Unused variable "ch" in do_call().
+ 3. Module do_include() was not returning an exit status in all
+ cases. (9/22)
+
+unix/boot/rmfiles.c
+ 1. Unused variable "i" in main().
+ 2. Another warning from GCC static analysis suggesting that local
+ variable "fp" might be being used before being initialized (definitely
+ not in this case, but I added an initializer to avoid the message).
+ (9/22)
+
+unix/boot/wtar/wtar.c
+ Unused variable "op" in putheader(). (9/22)
+
+unix/boot/spp/xc.c
+ 1. Unused variable "cmdbuf" in main().
+ 2. Variable "append" in sys() could be used before being
+ initialized. (9/22)
+
+unix/boot/spp/xpp/xppcode.c
+ 1. Unused variable "irafdefs" in do_include().
+ 2. parse_task_statement() did not return a function value in all cases.
+ 3. accum() did not return a function value in all cases.
+ 4. Unused variable "digit" in charcon(). Function did not return
+ a value in all cases.
+ 5. Variable "value" not initialized in all cases (when an error
+ occurs, but it causes a warning message). (9/22)
+
+unix/boot/spp/xpp/decl.c
+ 1. Local variable "sp" was not being initialized in all cases (i.e.,
+ when an error occurred).
+ 2. Added a new procedure d_declfunc which is called to output function
+ declarations. Currently this doesn't do anything special, but it
+ provides a single point of modification should it be necessary to do
+ any special processing of function declarations in the future (for
+ example intrinsic functions). (9/22)
+
+unix/boot/spp/rpp/ratlibc/getlin.c
+ The local variable "c" was not being initialized in all cases. (9/22)
+
+unix/gdev/sgidev/sgidispatch.c
+ Deleted unused local variables "maxch" and "status". (9/22)
+
+unix/os/gmttolst.c
+ Added #ifdef SYSV support. SYSV uses a global variable "timezone"
+ (a questionable construct - see below) while BSD uses a time_info
+ structure returned in a function call. (9/23)
+
+unix/os/zzstrt.c
+ This problem was indirect and hence difficult to track down. The
+ time-task feature of iraf, e.g., "$imstat dev$pix", when run for the
+ first time in a new process, would return a clock time such as
+ "-416:+0" instead of "0:13" or whatever. Thereafter it would be ok,
+ until the process was restarted. This turned out to be due to the
+ clock time returned by the first call to ZGTIME being wrong. The
+ eventual solution was to add a call to TZSET to zzstrt to initialize
+ the SysV time stuff before any time calculations take place. What I
+ suspect was happening is that in gmt_to_lst I was accessing
+ "timezone", which is a global data variable in SysV, but the value
+ was being changed sometime later in an indirect call to TZSET.
+ Using a global variable for something like this that is evidently
+ not constant is a very questionable feature of SVID (unless this
+ was a bug in A/UX). (9/23)
+
+unix/os/mkpkg.sh
+ Changed the "rm alloc.o" to "rm -f alloc.o", as the .o file is
+ not being left behind on this system, using GCC. (9/23)
+
+unix/os/zfiopl.c
+ In zclspl, another case of an array aggregate initializer "= val;"
+ having to be changed to "= { val };" when initializing an array of
+ length 1. (9/23)
+
+unix/os/zoscmd.c
+ 1. Modified so that if SYSV is defined, "fork" is used instead of
+ the BSD-ism "vfork".
+ 2. On Sun systems <vfork.h> is included (disables the global optimizer
+ on sparc systems due to nonstandard register usage). (9/23)
+
+unix/boot/spp/rpp/ratlibr/defs
+ Replaced by the version rpprat/defs (they should be the same, although
+ in this case the differences did not affect the ratlib code). (9/24)
+
+unix/boot/spp/rpp/ratlibr/Makefile
+unix/boot/spp/rpp/rpprat/Makefile
+ These makefiles now use a .r.f rule using /usr/local/bin/ratfor to
+ generate the .f files, rather than using f77 -F, which requires
+ replacing the host version of ratfor. (9/24)
+
+unix/boot/spp/rpp/ratlibf/*.f
+unix/boot/spp/rpp/rppfor/*.f
+ Regenerated all the preprocessor Fortran sources. The new files are
+ lower case. Although upper case source is standard Fortran, all
+ modern compilers I am aware of accept lower case source (SPP outputs
+ lower case after all), and a case sensitive compiler may generate
+ upper case externals for upper case procedure names, causing a case
+ mismatch when linking with the C support library. (9/24)
+
+unix/boot/spp/rpp/ratlibc/r4tocstr.c
+ Installed a minor bug fix which allows the routine to accept as
+ input character arrays consisting of either one char per integer, or
+ a char plus 3 blanks per integer. The old F66 convention of
+ assigning one Hollerith character to a binary integer can generate
+ either type of integer value. (9/24)
+
+sys/imfort/imemsg.x
+ This file contained four Fortran escapes (error message strings)
+ which ran over the 72 character line limit of Fortran. (9/24)
+
+sys/gio/nspp/portlib/gridal.f
+ The equivalence on line 4 was incorrect (or at least ill-advised)
+ due to a dimension error. The code "mfmtx(1),ifmt(1))" should
+ have been "mfmtx(1),ifmt(1,1))". (9/24)
+
+sys/gio/nspp/portlib/z8zpbd.f
+sys/gio/nspp/portlib/z8zpii.f
+ The z8zpbd.f file was using DATA statements to initialize variables
+ in common (works on most systems but is technically illegal). I
+ moved all the remaining DATA statements out of z8zpbd.f into run
+ time initialization statements in z8zpbd.f (9/24)
+
+unix/boot/spp/xc.c
+ The routine printargs() was attempting to print one more argument
+ than it should, due to a <= that should have been a < in a FOR loop.
+ (9/24)
+
+pkg/system/help/lroff/textout.x
+ Modified to eliminate the ENTRY point. (9/24)
+
+sys/fmtio/ctotok.x
+ Local variable numch never used (this is old code so I don't know
+ why no other compiler has found this). (9/24)
+
+sys/fmtio/evexpr.y
+sys/fmtio/evexpr.x
+ The second argument (a debug flag) to yyparse (xev_parse) is a
+ boolean, but xev_parse was being called elsewhere with an integer
+ argument. Changed to a boolean since the Y*cc code contains many
+ if (yydebug) constructs. (9/24)
+
+sys/etc/main.x
+ FREDIR is a subroutine but was being called as a function in one
+ place in this file. (9/24)
+
+sys/tty/ttyputl.x
+ This file contained a statement call putci (fd, "_") which was
+ incorrect, since the argument "_" is type char but is supposed to
+ be integer. (9/24)
+
+sys/gio/gopen.x
+ 1. The pointer array graphcap_file was not being used.
+ 2. Local string variable graphcap never used. (9/24)
+
+sys/pmio/pmplls.x
+ The second call to pl_plls was missing the ll_depth argument. (9/24)
+
+sys/qpoe/qpppar.x
+ The second call to qp_sizeof was missing an argument. (9/24)
+
+sys/imfort/bfio.x
+ There was an extra "status" argument to one of the calls to
+ zsttbf. (9/24)
+
+sys/gio/ncarutil/conran.f
+ Local variable LNGTHS not used. (9/24)
+
+pkg/plot/crtpict/t_crtpict.x
+ A call to gargwrd was missing the maxch argument. (9/24)
+
+pkg/plot/t_graph.x
+ Variable window declared but not used. (9/24)
+
+pkg/plot/t_velvect.x
+ Variable nset declared but not used. (9/24)
+
+sys/fmio/fmlfundel.x
+ The two calls to fmio_bind and fmio_errck were both lacking the
+ fm argument. (9/24)
+
+sys/ki/kireceive.x
+ A call to strcpy was missing an argument. (9/24)
+
+sys/imio/imopsf.x
+ The call to pl_ssize had an extra unused argument. (9/24)
+
+sys/etc/pagefiles.x
+ ttyctrl, which is an integer function, was being called as a
+ subroutine. (9/24)
+
+sys/imio/iki/oif/oifclose.x
+sys/imio/iki/oif/oifdelete.x
+ The integer function protect() was being called as a subroutine.
+ (9/24)
+
+sys/plio/plglr.gx
+ The routine pl_rangerop was being called incorrectly. (9/24)
+
+sys/plio/plprop.gx
+ The VOPS routine argt (replace if greater than) was being
+ called incorrectly in three places. (9/24)
+
+sys/plio/plascii.x
+ The subroutine pl_glpi() was being called as a function. (9/24)
+
+sys/plio/pldebug.x
+ The integer function pl_l2ri() was being called as a subroutine.
+ (9/24)
+
+sys/pmio/pmglp.gx
+ The routine pl_pixrop was being called incorrectly. (9/24)
+
+sys/qpoe/qpioopen.x
+ A call to syserr was being made where syserrs was intended. (9/24)
+
+sys/gio/cursor/grccmd.x
+ External pr_psio() declared but never used. (9/24)
+
+sys/gio/stdgraph/stgclws.x
+ External std_onerror() declared but never used. (9/24)
+
+sys/libc/qsort.c
+ The static function qst() was being used before being declared,
+ resulting in an extern/static declaration inconsistency. (9/24)
+
+sys/ki/irafks.x
+ The "task irafks = onentry" was incorrect since ONENTRY is an integer
+ function. This was harmless since the purpose of the task statement
+ was merely to get an iraf main, but I set up a dummy t_irafks task
+ to avoid the type clash. (9/24)
+
+pkg/cl/bkg.c
+ Static function bkg_close() used before being declared static.
+ Added a static function declaration to the file header. (9/24)
+
+pkg/cl/debug.c
+ Same as above, function dd_f(). (9/24)
+
+pkg/cl/edcap.c
+ Same as above, function map_escapes(). (9/24)
+
+pkg/cl/pfiles.c
+ Same as above, function mapname(). (9/24)
+
+pkg/cl/cl.x
+ Same problem as in irafks, above. ONENTRY is a function and should
+ not be referenced as a subroutine in the task statement. Added a
+ dummy t_cl procedure to avoid the type clash. (9/24)
+
+-------------------
+End of revisions merge from A/UX GCC/ANSI-C/F2C work.
+
+dev/graphcap
+dev/devices.hlp
+ Output can now be directed to the default UNIX `lpr' device using
+ any of the aliases "lpr", "lp", or "lw". The actual device is
+ defined by the value of PRINTER if defined in the user's environment,
+ else is the "lp" device in /etc/printcap. (9/23)
+
+ (lw is no longer an alias for the NOAO/Tucson device lw1)
+
+pkg/images/iminfo/t_imstat.x
+pkg/images/doc/imstat.hlp
+ Corrected a bug in the mode computation in imstatistics. The parabolic
+ interpolation correction for computing the histogram peak was being
+ applied in the wrong direction. Note that for dev$pix the wrong answer
+ is actually closer to the expected answer than the correct answer
+ due to binning effects. (LED 9/24)
+
+unix/hlib/iraf.h
+unix/hlib/libc/xnames.h
+ Added the following name redefinitions. On systems where Fortran and
+ C share the same name space these can cause name collisions. (9/28)
+
+ define fatal xfatal
+ define fchdir xfchdr
+ define fscan xfscan
+ define getopt xgtopt
+ define getpid xgtpid
+ define getuid xgtuid
+ define rename xfrnam
+ define reset xreset
+ define scan xxscan
+
+-------------------------------------------
+Started a full bootstrap and recompile for the sparc architecture. (9/28)
+
+sys/fmtio/tokdata.inc
+ Deleted the DATA statement for numch, which is no longer used by
+ ctotok.x, the routine which includes this file. (9/29)
+
+lib/plset.h
+ Added PL$T_LEN defines for type long, required for the generic
+ expansion of plglr.gx in PLIO. (9/29)
+
+unix/boot/mkpkg/host.c
+ Added a return(OK) to h_purge(), which is a no-op on unix systems.
+ (9/29)
+
+pkg/images/imarith/mkpkg
+pkg/images/imarith/imsum.gx
+pkg/images/imarith/generic/mkpkg
+pkg/images/imarith/generic/imsum.h -
+ Images failed to link, with all the imsum externals reported as
+ undefined externals.
+ 1. Edited imsum.gx and changed `include "imsum.h"' to `include
+ "../imsum.h"'.
+ 2. Deleted generic/imsum.h and the code in imarith/mkpkg which
+ generates it. There should not be multiple copies of global header
+ files.
+ 3. Rebuilt the generic/mkpkg using mkmlist, to ensure that the
+ library list is correct (all the imsum entries were missing). (9/29)
+
+noao/artdata/mkheader.x
+ 1. Fixed a "local variable ua never used" warning, caused by some code
+ being commented out.
+ 2. I was also surprised to see the construct `fd = immap (fname, ...)'
+ in this file. FD means file descriptor whereas immap returns an
+ image descriptor. FNAME means file name but an image name is not a
+ file name. FD is declared pointer in this file but is used later in
+ the same routine to hold a file descriptor, which is an integer.
+ This code is illegally accessing the user area of the image header.
+ (9/29)
+
+noao/twodspec/longslit/illumination.x
+ This file failed to compile, with the following errors:
+ local variable "clgeti" never used
+ attempt to use undefined variable "im"
+ attempt to use untyped function "clgetr"
+ 1. Changed the call to clgetr to a call to clgeti, since the
+ parameter being fetched is integer. Added a declaration for im.
+ 2. In the process of doing this I noticed that in the call
+ iferr (axis = imgeti (im, "dispaxis")) {
+ the variable IM was being used before being initialized (or declared).
+ I changed the "im" to "in" but couldn't be certain this was correct
+ since there are two input image pointers (I think; I couldn't be
+ certain they were both input since there are no #[IOU] markers in the
+ comments). (9/29)
+
+noao/twodspec/longslit/response.x
+noao/twodspec/longslit/fluxcalib.x
+ Similar construct. Changed calls to clgetr to clgeti in both
+ routines. (9/29)
+
+unix/hlib/extern.pkg
+ All the digiphot packages failed to link, due to the cross link
+ against the V2.9 versions of the TABLES libraries (due to the
+ recent name changes in iraf.h all code has to be recompiled for
+ V2.10). I temporarily created a local copy of TABLES in
+ /u3/extra/tables and compiled this with V2.10. (9/29)
+
+bin.sparc/S5.e
+bin.sparc/S6.e +
+ Installed the V2.9.3 version of S5.e (the V2.9 shared image) from ursa.
+ S6.e is the V2.10 shared image. (9/29)
+
+unix/boot/xyacc/mkpkg.sh
+ Added a rm -f *.o to delete the xyacc objects after a bootstrap. (9/29)
+
+---------------------------------------------
+Begin f68881 bootstrap and full sysgen-recompile. (9/29)
+
+sys/ki/koscmd.x
+ The output spool file on the local node was being opened with zopntx,
+ but written to with kputtx with an invalid channel descriptor, causing
+ the output to be lost when attempting to redirect the output. The
+ fix was to change the call to kputtx to a call to zputtx. (9/30)
+
+dev/imtoolrc +
+unix/hlib/install
+ Copied imtoolrc into dev so that the frame buffer entries in graphcap
+ and imtoolrc can be more easily maintained together, and so that
+ the user does not have to modify a source directory (unix/sun) in
+ order to change a runtime configuration file (imtoolrc). Modified
+ the install script to make /usr/local/lib/imtoolrc a link to the
+ file in DEV, instead of a copy of the file. (9/30)
+
+noao$rv/ +
+noao$mkpkg
+noao$noao.hd
+noao$noao.cl
+noao$noao.men
+noao$lib/strip.noao
+noao$lib/zzsetenv.def
+noao$lib/scr/fxcor.key +
+noao$lib/scr/specmode.key +
+noao$lib/scr/fftmode.key +
+ Installed the RV0 package as the NOAO.RV package and recompiled for
+ the f68881. A sparc executable was built separately and installed in
+ noao$bin.sparc. The noao helpdb was also recompiled to include the
+ new rv help pages. (9/30 MJF)
+
+hlib$extern.pkg
+ Removed the RV0 package definition from the V2.10 iraf. (9/30 MJF)
+
+hlib$extern.pkg
+ Removed the testphot package definition from the V2.10 iraf. (9/30 LED)
+
+bin.f68881/S5.e
+ Replaced by the V2.9.3 version. (9/30)
+
+unix/os/zfioks.c
+unix/os/zfiotx.c
+ Fixed minor typos in the #ifdef SYSV code. (10/02)
+
+unix/boot/mkpkg.pkg.c
+ Deleted declarations for a couple of unused variables. (10/02)
+
+unix/os/zawset.c
+ Added SYSV support. (10/02)
+
+unix/os/zfiopr.c
+ Added SYSV support (vfork is defined as fork). On Sun systems
+ <vfork.h> is conditionally included. (10/02)
+
+unix/os/zgtenv.c
+ Replaced a comment within a comment construct (example from <iraf.h>)
+ by a version which substitutes @ for *, to avoid GCC warning messages
+ about a possible problem with nested comments. (10/02)
+
+unix/os/zopdpr.c
+ Added SYSV support for vfork/fork as above, plus nice() is used
+ for SYSV instead of the BSD {get|set}priority. (10/02)
+
+unix/boot/spp/rpp/rpprat/gtok.r
+unix/boot/spp/rpp/rppfor/gtok.f
+ Commented out the declaration for the unused variable "digits". (10/02)
+
+math/gsurfit/mkpkg
+ Contained a statement $ifeq (USE_GENERIC, YES) which was incorrect,
+ as a lower case "yes" is required since $ifeq uses a simple string
+ comparison. I noticed this because a bug had been fixed in a .gx
+ file, but was still present in the real/double files, which had not
+ been modified since 1987. (10/02)
+
+math/nlfit/nlfitdefr.h
+math/nlfit/nlfitdefd.h
+math/nlfit/nlzero.gx
+ Corrected several bugs in the way the aclr$t routines were being
+ called in the nlzero(rd) routine. (10/3/91 LED)
+
+pkg/plot/phistogram.x
+ Corrected some type mismatch problem in calls to gset. (10/3/91 LED)
+
+sys/gio/ncarutil/pwrity.f
+ Unused variable LEN on line 335. (10/02)
+
+sys/gio/ncarutil/pwrzi.f
+sys/gio/ncarutil/pwrzs.f
+sys/gio/ncarutil/pwrzt.f
+ Variables HIGH,WIDE,WHITE, and LNGTH not used (same problem in
+ all three files). (10/02)
+
+sys/ki/koscmd.x
+ In the call to zopntx to open the local spool file (when redirecting
+ the output), the unpacked version of the filename was being used
+ instead of the packed version required by the kernel routine. (10/05)
+
+pkg/plot/crtpict/calchgms.x
+ Changed the declarations for the variables min_val and max_val in
+ the procedure crt_user_hgram from int to short. (10/5/91 LED)
+
+dev$hosts
+ Added felis to dev$hosts for Shopbell. On tucana only since irafks.e
+ on felis seems quirky. (10/5/91 MJF)
+
+pkg/dataio/fits/fits_rpixels.x
+ 1. The rfits task has been modified to accept a short last record, i.e.
+ a last record that has not been padded out to 2880 bytes, without
+ generating any warning messages. Short last records were only a
+ problem for IRAF 2.9 when the blocking code was rewritten.
+ (10/8/91 LED)
+
+unix/boot/generic/generic.c
+ The -k (clobber) option would fail to clobber an existing file if
+ account executing generic did not own the file. (10/09)
+
+pkg/images/iminfo/t_imstat.x
+ Corrected a bug in the kurtosis computation, wherein a 4.0 was
+ being subtracted from the sum instead of a 3.0 (10/11/91 LED)
+
+unix/boot/spp/xc.c
+ Minor typo in run() code. (10/11)
+
+pkg/dataio/fits/fits_cards.x
+ Changed the name of the IRAF-B/P keyword to IRAF-BPX to conform to the
+ new FITS standard. (10/15/91 LED)
+
+unix/sun/README
+unix/sun/gterm.c
+unix/sun/halley.lut
+unix/sun/heat.lut
+unix/sun/imtool.c
+unix/sun/imtool.icon
+unix/sun/screendump.c
+ I have been holding off on installing this for a couple of weeks
+ in the hopes of finishing the planned work, but rather than delay
+ longer I have installed this version, to be updated later. The
+ main changes or new features are as follows.
+
+ 1. Screendump parameters (R_DISPOSE etc.) are now in the setup panel.
+ 2. A number of new builtin lookup table options (e.g. HEAT) have
+ been added.
+ 3. User defined lookup tables are now supported.
+ 4. Updating of the global screen colortable is now a setup panel
+ option. This allows it to be turned off, which makes imtool
+ better behaved under openwindows.
+
+ Features not yet in are EPS support, more flexibility in the use
+ of FIFOs, and maybe socket support. (10/20)
+
+unix/os/zfiomt.c
+unix/os/zalloc.c
+unix/os/alloc.c
+sys/mkpkg
+sys/mtio/*
+sys/gty/*
+sys/libc/(some)
+sys/ki/(some)
+pkg/cl/builtin.c
+dev/tapecap
+ Installed the new magtape i/o subsystem. I will document this more
+ fully later. Usage is much as before. The key file controlling the
+ configuration is dev$tapecap. A description of the tapecap
+ parameters is given in os$zfiomt.c. Testing and configuration of
+ the tapecap file is only rudimentary at this point. I have
+ successfully tested thus far with the DC2000 cartridge tape and
+ floppy disk on lepus, the DAT drive on coma, and the 1/2inch 6250
+ bpi tape on tucana. There is some confusion (dev$devices out of
+ date) regarding the device entries for the 1/4inch cartridge drive
+ on tucana so I did not complete the tapecap entry for this drive.
+ The driver is new and MTIO has been extensively revised. The new
+ GTY interface provides a general termcap style database facility
+ which is used for tapecap. (10/20)
+
+dev/termcap
+ Added a new entry for "xirafhelp". (11/10)
+
+dev/hosts
+ Added sonoma to the hosts file on tucana and ursa. (11/13 jb)
+
+pkg/plot/t_graph.x
+plt/plot/doc/graph.hlp
+ 1. Local variables overplot,append in t_graph were declared int
+ but were used everywhere as bool.
+ 2. Missing .le in help page entry for overplot. (11/20)
+
+lib/fio.h
+ Added a comment for LEN_RAWCMD. (11/20)
+
+lib/fset.h
+sys/fio/fseti.x
+sys/fio/fstati.x
+unix/hlib/libc/fset.h
+ Added a new fset option F_IOMODE. The value field is a bit flag
+ consisting of either IO_NORMAL (normal line by line i/o with echo)
+ or some combination of, currently, IO_RAW and IO_NDELAY. F_RAW is
+ also still defined and if used in a fseti call will set F_IOMODE
+ to IO_RAW with IO_NDELAY disabled. On a fstati query, F_RAW checks
+ if IO_RAW mode is set, and F_IOMODE returns the i/o mode as a bit
+ flag integer word. (11/20)
+
+ [Note - the fset integer codes were modified. This will require
+ [that all layered software which uses fset/fstat be recompiled.]
+
+sys/etc/prpsio.x
+ Testing revealed that while both raw mode and NDELAY (nonblocking
+ i/o) worked from a stand alone process, and raw mode worked from
+ a subprocess, NDELAY would not work from a subprocess. This was
+ due to the prpsio code, which must check for the i/o mode control
+ strings and make a local fseti call if these are seen. The prpsio
+ code would set raw mode but was ignoring NDELAY, hence setting
+ IO_RAW+IO_NDELAY in a subprocess would result in only raw mode
+ being set in the pseudofile i/o control process (the CL). (11/20)
+
+sys/tty/ttyread.x
+ Modified to set F_IOMODE rather than F_RAW. Since this routine
+ uses NDELAY it it worth updating to use the new bit flags. Most
+ of the old VOS code still uses F_RAW=(YES|NO), which is fine so
+ long as only raw mode is being set. (11/20)
+
+pkg/cl/mkpkg
+ Added <libc/fset.h> to the header file dependency list for
+ history.c. (11/20)
+
+sys/tty/mkpkg
+ Entry in library dependency list for ttygsize.x was incorrect;
+ rebuilt list with mkmlist. (11/21)
+
+dev/graphcap
+dev/imtoolrc
+ Added imt13-16, imttall128 (128x1056), imttall256 (256x1056),
+ imtwide128 (1056x128), and imtwide256 (1056x256) for use in
+ spectroscopy at request of KPNO. Also added aliases for the new
+ KPNO 1992 chip names to the six entries between imt32 and imt37.
+ (11/22/91 SRo)
+
+unix/sun/imtoolrc
+ Installed the above mentioned imtoolrc in the imtool source
+ directory. (11/22)
+
+sys/fio/fstati.x
+ Fixed a bug which could cause fstati(fd,F_UNREAD) to return an
+ incorrect unread character count for pushed back data. (11/27)
+
+mwcs.h
+mwswtype.x
+ Removed the compile time SZ_ATVAL restriction on the length of
+ a WCS attribute value. The size of an attribute value string is
+ now determined dynamically at run time and the buffers sized
+ accordingly. (11/27)
+
+mwsaveim.x
+ Deleted the call to mw_ssystem, which would force mw_saveim to
+ save the default world system. mw_saveim will now save the current
+ world system instead; the application should call mw_ssystem first
+ if it wishes to save a particular system. This applies only to
+ the use of mw_saveim with the current FITS-header images. In future
+ image formats mw_saveim will save the entire MWCS and it will not
+ be necessary to specify which WCS to save. (11/27)
+
+wfinit.x
+wfmspec.x +
+wfsin.x +
+wfgls.x +
+wfarc.x +
+iwewcs.x
+mkpkg
+ Installed four new MWCS function drivers:
+
+ sin sin projection
+ arc arc projection
+ gls global sinusoidal projection
+ multispec multispec image format (ONEDSPEC etc.)
+ (11/27)
+
+pkg/dataio/mtexamine/mkpkg
+ The mkpkg was missing an entry for fseti.h (among other things).
+ Rebuilt library module list with mkmlist. (11/27)
+
+sys/mtio/mtio.h
+ Was getting truncation of tapecap entry string during tape testing
+ on orion. This was traced to a buffer size being set too small in
+ zopnmt.x (SZ_DEVCAP). Increased to 512 chars. (11/27)
+
+unix/os/zfiomt.c
+ Fixed a bug in the new V2.10 zfiomt.c which affected appending to
+ a tape after a rewind. (12/01)
+
+unix/os/zfiomt.c
+ 1. RE now causes a read error to be ignored not only when positioning
+ to EOT, but on a file read if recno=1 (a read a the beginning of a
+ file is used by high level programs like mtexamine to detect EOT).
+ 2. The tapeused counter was not being updated properly (the size of
+ a filemark was not being counted) when EOF was seen on a read. (12/02)
+
+dev/tapecap
+ Installed a new, better organized and more complete version of the
+ tapecap file. This now includes support for the HP 88780 and Exabyte
+ drives under SunOS. (12/02)
+
+unix/os/zfiomt.c
+ 1. When passed a tapecap device entry containing multiple entries for
+ the same capability, the driver was allowing later entries to
+ override the first entry, whereas the termcap convention is that
+ the first entry given overrides any later (tc=) entries.
+ 2. Added support for negated entries, as in ":nb@:". (12/02)
+
+pkg/dataio/cardimage/mkpkg
+ The mkpkg was missing several file dependencies including
+ fset.h. (LED 12/03)
+
+pkg/dataio/fits/mkpkg
+ The mkpkg was missing several some file dependencies.
+ (LED 12/03)
+
+pkg/dataio/imtext/mkpkg
+ The mkpkg was missing several some file dependencies.
+ (LED 12/03)
+
+vms/gdev/zfiovi.c
+ Installed a bug fix (actually workaround for an apparent VMS problem)
+ reported by STScI. The lock enqueue code can receive the status
+ SS$_VALNOTVALID even though the value block is apparently valid.
+ The workaround is to issue a warning but otherwise ignore the
+ condition. Hopefully this is correct. (12/03)
+
+dev/tapecap
+ Replaced with new version with expanded support for QIC cartridge
+ drives. Unfortunately not yet fully tested due to system problems
+ with the QIC-11/24 drive I was using for testing. (12/05)
+
+sys/mwcs/wfsin.x
+ The forward transform now checks for a negative value before taking
+ a square root. (12/06)
+
+unix/os/zfiomt.c
+ Installed a new version of the new magtape driver which adds
+ support for status output to a TCP/IP socket. I also have a new
+ program XTAPEMON (not currently installed in IRAF) which listens
+ on a socket and accepts connections from the the new driver (or
+ any similar client) displaying tape status messages in a window
+ on any X server while the drive is being accessed.
+
+ Status output may be directed to either a file or a socket, using
+ the syntax ":so=foo:". If foo is an absolute pathname beginning
+ with / then output is to a file (this field is interpreted by the
+ unix driver so we are talking about unix pathnames). Otherwise, the
+ field is assumed to refer to a socket of the form ":so=[host][,port]",
+ e.g., ":so=lepus:", ":so=lepus,5138", ":so=,2345:", and so on.
+ If no host is specified localhost is assumed. If no port is
+ specified the default port is used.
+
+ In practice, the minimal specification is ":so:". This will cause
+ the drive to atempt to open a socket connection to the default port
+ on the local host. If no server is registered the connection will
+ fail harmlessly. If xtapemon is running on the local host it will
+ accept the connection. Currently, xtapemon supports multiple
+ concurrent servers (using consecutive port numbers) but the driver
+ does not, unless the port number is given explicitly. Multiple
+ clients are allowed to access the same server, e.g., multiple
+ processes in the same process tree.
+
+ Note that status output, if enabled, is output in an ascii text
+ stream to either a socket or a file (including things like
+ /dev/ttyX, /dev/tty, /dev/console etc. as well as disk files).
+ Hence the xtapemon utility, while useful for workstations running X,
+ is not required in any way to use the new magtape system or even to
+ view status output. In the simplest case, "devstatus" may be used
+ to print the drive status. (12/15)
+
+unix/os/zopdir.c
+ The zopdir routines were modified to read the UNIX directory into a
+ buffer and sort it, before returning filenames to the caller (some
+ VOS routine). UNIX directories are not stored in sort order on
+ disk, and previously, IRAF routines which read directories to
+ produce file lists but which did not sort the list for some reason,
+ could produce what appeared to be randomly ordered lists (for
+ example, in image templates).
+
+ A practical result of this revision is that dir sort- will produce
+ a listing which is sorted across the columns rather than along the
+ columns. This may be preferable when listing very large directories.
+ (12/15)
+
+sys/etc/main.x
+sys/etc/onentry.x # INTERFACE CHANGE
+pkg/cl/cl.x
+sys/ki/irafks.x
+ The calling sequence for ONENTRY was modified to add a third
+ argument "command". This is used to pass any optional arguments
+ given on the host command line when the process is executed at
+ the host level. Since the purpose of the ONENTRY procedure is to
+ provide an alternative to the normal iraf process level command
+ interpreter, the procedure should get full access to the command line.
+ (12/26)
+
+dev/irafhosts +
+unix/os/zfioks.c
+sys/ki/irafks.x
+ Totally new networking driver. This version supports both RSH and
+ REXEC connection protocols. The default RSH protocol avoids
+ password prompts. In addition, a feature is provided to spawn a
+ daemon process in.irafksd which makes it much faster to fork a new
+ kernel server, once the first RSH connection to a server node has
+ been made. The new kernel server is largely backwards compatible
+ (although due to magtape i/o changes V2.10 networking cannot be used
+ with older systems anyhow). The new driver still uses a .irafhosts
+ file, but it need not contain passwords, and the file is automatically
+ created and read protected. Details to follow. (12/26)
+
+ Here is some more information on the new networking system (12/31).
+
+ The new driver support three different connection protocols. The
+ default protocol uses rsh|remsh to spawn a networking daemon which
+ is used thereafter to start iraf kernel server processes on that
+ node (more on the this later). This is the most efficient protocol,
+ and does not require any passwords. A rsh only protocol is also
+ supported which requires a rsh connection every time a connection is
+ made. This is slightly more secure than the rsh/daemon protocol but
+ considerably less efficient. Finally, the old rexec protocol is
+ still supported. This is what is used if a password is given for a
+ node in the .irafhosts file. It is also now possible to use iraf
+ networking even if no rsh or rexec service is available, by manually
+ starting the iraf networking daemon on a server node.
+
+ The rsh/daemon protocol works as follows. The client calls the
+ zfioks driver to open a connection. zfioks reads the irafhosts file
+ and determines that the rsh/daemon protocol should be used for the
+ named host. zfioks attempts to connect to the daemon process on the
+ remote host. If the connection is made the client passes its port
+ number and an authorization code to the daemon, the daemon forks to
+ create a new irafks kernel server, which then connects to the client
+ via the client supplied port number, and the connection is made. If
+ the client cannot connect to the daemon, the client forks and execs
+ the rsh task which is used to start up the daemon process on the
+ remote host. The client can then connect to the daemon in the usual
+ way.
+
+ When the daemon is first started with rsh, the client passes a
+ unique long integer authorization code. All subsequent connections
+ to the daemon must supply the same code or the connection will be
+ refused. The authorization code is given in the irafhosts file.
+ Since this networking scheme avoids any suid root processes, the
+ daemon process runs with the uid of the user whose client issued
+ the original rsh request to start the daemon. Each user has their
+ own daemon process on each server node. The daemon is started
+ automatically when the first connection is made. After a certain
+ period of inactivity (default 1 hour) the daemon process will exit.
+
+ Once a daemon has been started with rsh (this takes several seconds)
+ a network connection can be made very quickly, as all that is
+ required is a connect to a remote socket, a fork of the daemon
+ process, and a connect back to the client supplied socket. The
+ irafks server and the client zfioks driver will then be directly
+ connected via a socket. The daemon process is just the usual
+ irafks.e running as a daemon, which is why it only needs to fork to
+ spawn a new irafks server. Only one daemon process is required per
+ user per server node, but there can be any number of irafks
+ servers. Any number of client hosts can connect to a single server
+ host via a single daemon process, provided the user has set up a
+ .irafhosts with the same authorization code on each client node (if
+ this is not done the connection will still be made, but will require
+ an expensive rsh connect on each call).
+
+ The new driver still uses the .irafhosts file, although most of the
+ motivation for including passwords in the file is gone. The
+ .irafhosts file is required and will be created automatically by the
+ system if not present. If an old style .irafhosts file is present
+ it will be replaced by the new version of the file. The system
+ automatically read protects the file. The .irafhosts file contains
+ three regions: some header comments, some keyword=value networking
+ parameters, and the user supplied host list.
+
+ The irafhosts keywords are as follows.
+
+ port The TCP port number used by the daemon process.
+ Normally set to "default", which tells the driver
+ to assign a port for each user based on HIPORT
+ and the user uid code. If PORT is set to "none"
+ use of the daemon is disabled and rsh will be used
+ for every connect (this is provided in case someone
+ doesn't feel the authorization code scheme is
+ secure enough).
+
+ auth The user authorization code. Set to "default" in
+ dev$irafhosts, but replaced by a unique authorization
+ code when the user uses networking for the first time
+ and the .irafhosts file is created.
+
+ hiport Used to dynamically assign unique port numbers
+ (see "port" above). hiport defines the top of the
+ reserved port region used for the irafks daemon.
+ Normally set to "default" (47000).
+
+ timeout The idle time in seconds after which the daemon
+ will exit. Normally set to "default". The builtin
+ default timeout is 1 hour.
+
+ The format of a host-list entry is as follows.
+
+ host-name ":" login-name password
+
+ The default host-list entry is the following.
+
+ * : <user> <user>
+
+ This enables the rsh/daemon protocol for all server nodes.
+ The login-name field may be set to "none" to disable networking
+ for a node, or to the actual user login name to cause the
+ connection to a node to be made with different login name than
+ that of the user on the local host. Setting the password field
+ to an explicit password causes the rexec connect protocol to
+ be used for that node. Setting the password to "?" causes the
+ driver to prompt for the password, after which the rexec protocol
+ is used to make the connection.
+
+ In actual practice, all of this is automatic and the user never
+ needs to look at or modify the .irafhosts file, unless they want
+ to customize things. Once the .irafhosts file has been created
+ by the system it should be copied to the user's login directory
+ on other nodes in the local network. If this is not done iraf
+ networking will still work, but will be less efficient if iraf
+ clients running on different hosts try to connect to the same
+ server (they will have different authorization codes and the
+ driver will have to fall back on the rsh connect protocol for
+ every connection).
+
+ The system template irafhosts file is dev$irafhosts. The iraf
+ system manager can set the default network parameters in this file
+ if they don't like the builtin defaults. Note that the hostlogin
+ file is no longer used. It was confusing for the files to have
+ different names so dev$hostlogin was replaced by dev$irafhosts.
+
+ COMPATIBILITY. By default the system will try to use one of the
+ rsh protocols, hence the server as well as the client must be
+ running v2.10 iraf. To connect to a pre-v2.10 server from a v2.10
+ client the rexec protocol must be enabled by setting the password
+ field in the irafhosts file. A v2.9 client should be able to
+ transparently connect to a v2.10 server. In all cases where v2.9
+ and v2.10 clients and servers are being mixed, remote magtape
+ access cannot be used since the protocols have changed in v2.10.
+
+sys/ki/kzopmt.x
+ The devcap string was not being passed at the correct offset.
+ (12/29)
+
+sys/ki/irafks.x
+ Fixed a couple of problem in the zfiomt server code which were
+ preventing magtape i/o from working over the network. The server
+ was missing an entry for the new zzstmt routine. (12/29)
+
+unix/os/zfioks.c
+ Fixed a bug that was causing remote device allocation/deallocation
+ to fail, when accessing a device over the network. SIGCLD was
+ being received by the server when the alloc.e terminated and was
+ executing a longjmp to a stack frame that no longer existed (the
+ zfioks driver, with all its forks, has several parallel execution
+ paths all in the same code).
+
+ With this fix remote magtape access seems to be working again using
+ the new magtape and networking drivers. (12/30)
+
+unix/os/zfiomt.c
+ For a read (zzrdmt), the recsize output to the status output was
+ changed from the requested read size to the actual read size, i.e.,
+ the actual size of the record read. (1/02/92)
+
+unix/hlib/iraf.h
+sys/mtio/mtio.h
+ Moved the definition of EOT from mtio.h to iraf.h, so that applications
+ can use it (required for mtparse/mtname). (1/02)
+
+sys/etc/xalloc.x
+ Changed mt_allocate/mt_deallocate to mtallocate/mtdeallocate, to be
+ consistent with the other extern MTIO routines. (1/02)
+
+sys/mtio/README
+sys/mtio/mkpkg
+sys/mtio/mtalloc.x
+sys/mtio/mtcap.x
+sys/mtio/mtdealloc.x
+sys/mtio/mtglock.x
+sys/mtio/mtgtyopen.x +
+sys/mtio/mtio.h
+sys/mtio/mtname.x +
+sys/mtio/mtneedf.x +
+sys/mtio/mtopen.x
+sys/mtio/mtparse.x
+sys/mtio/mtpos.x
+sys/mtio/mtrdlock.x
+sys/mtio/mtrewind.x
+sys/mtio/mtstatus.x
+ 1. An interface summary was added to the README file.
+ 2. Revised MTIO to add a number of new externally callable user
+ routines. The following is excerpted from the README file.
+
+ yes|no = mtfile (fname) # Is fname a magtape device?
+ yes|no = mtneedfileno (mtname) # No file number given?
+ gty = mtcap (mtname)
+ mtfname (mtname, fileno, outstr, maxch)
+
+ mtparse (mtname, device, fileno, recno, attrl, maxch)
+ mtencode (mtname, maxch, device, fileno, recno, attrl)
+
+ fd = mtopen (mtname, acmode, bufsize)
+ mtrewind (mtname, initcache)
+ mtposition (mtname, file, record)
+
+ Use CLOSE to close a file descriptor opened with mtopen.
+ Use GTYCLOSE to close a termcap descriptor opened with mtcap.
+ MTNAME is the full magtape device specification, i.e, "mt[...]".
+
+ The new routines are MTCAP, MTNEEDFILE, MTFNAME, MTPARSE, and
+ MTENCODE. MTCAP opens the GTY descriptor for the device specified
+ in mtname. MTNEEDFILE tells whether a file number is specified in
+ the given mtname. MTFNAME constructs a magtape file name, given an
+ existing mtname and a file number.
+
+ The MTPARSE and MTENCODE routines are lower level and are provided in
+ case a mtname needs to be edited or constructed which the simpler
+ routines given above cannot deal with. MTPARSE parses an mtname
+ into the device name, file and record numbers (set to ERR if not
+ given) and tapecap attribute list, if any. MTNAME does the reverse,
+ building a mtname from these pieces. (1/02)
+
+dev/tapecap
+unix/os/zfiomt.c
+ Added a new capability "fb" to tapecap. This specifies the default
+ FITS block factor for each type of device. (1/02)
+
+unix/os/zfioks.c
+ 1. Tested the password prompting option (password = ?). Fixed a
+ bug in the SysV version of the password prompting code.
+ 2. Tested the in.irafksd idle-timeout feature, seems to work.
+ 3. Added a timeout feature to the handshaking that goes on between
+ client and server during a connect. The connect will now fail and
+ shutdown automatically if there is no response for 45 seconds during
+ a connect (e.g., because the guy on the other end is not what we
+ expect it to be). (1/02)
+
+sys/qpoe/qpiosetrg.x
+ Changed the dimension of the VS, VE input array arguments from "ndim"
+ to "ARB". (1/07)
+
+sys/etc/xgdevlist.x
+ Added a call to ki_xnode to propagate the network node prefix, if any,
+ to the output resource string. (1/07)
+
+sys/ki/irafks.x
+ The devpos struct (position information) was not being passed back
+ properly when closing a magtape device opened for network access.
+ (1/07)
+
+sys/mtio/mtparse.x
+ When called with sz_attrl=0, could write to attrl[0] (write off the
+ beginning of the array). Zero is of course not a legal index, but
+ the routine should be able to accept it as a size, indicating that
+ the attrl string is not desired. In cases like this the application
+ must still allow space for 1 char of output, e.g., the EOS. (1/08)
+
+sys/mtio/mtrewind.x
+sys/mtio/mtposition.x
+ These routines were constructing the magtape device name in order to
+ position to a specific file, but were discarding the attrl field,
+ preventing use of tapecap attributes on the command line in a rewind.
+ Changed to use mtfname to construct the device name. (1/08)
+
+sys/ki/irafks.x
+ Modified the debug output logging code to print more of the ARG
+ array in the command packet. Modified the zfiomt interface debug
+ logging code to include devcap in the diagnostic output. (1/08)
+
+sys/ki/kzrwmt.x
+sys/ki/kzopmt.x
+sys/ki/kopdpr.x
+sys/ki/kgfdir.x
+ These routines were not computing the value of p_sbuflen correctly.
+ This can affect optional string arguments passed in the networking
+ packet header. (1/08)
+
+unix/hlib/irafuser.csh
+ Changed the definition of mkz to link "-z -/Bstatic". Omitting the
+ -Bstatic has caused too much trouble on SunOS, when linking on one
+ version of SunOS and executing on a different version. (1/08)
+
+unix/hlib/login.cl
+ Added a definition for the convenience alias "cls" (unix clear;ls)
+ to the template login.cl. (1/08)
+
+sys/mtio/mtopen.x
+sys/mtio/mtcache.x
+sys/mtio/mtrdlock.x
+ Modified to pass the mtname parameter though to mtallocate, which
+ can be called by mtrdlock.x in some circumstances. (1/08)
+
+unix/os/zfiomt.c
+ 1. Repeated calls to mtexamine on the same tape would result in the
+ tapeused value incrementing slightly in each iteration. This was
+ due to the space for the last (EOT) filemark being counted in each
+ read of the tape. The problem would only show up on some drives;
+ this was because the file mark size is only set to a nonzero value
+ for some devices in tapecap.
+ 2. Modified the driver to record the checksum of the status output
+ device, and check to see if the device has changed when the driver
+ is opened repeatedly. It will now automatically (witout flpr)
+ detect any changes and close and reopen the status device.
+ 3. Status output to a file is now enabled if there is a / anywhere
+ in the filename, not just as the first character. Hence, :so=./file
+ would write to a file in the current directory. (1/08)
+
+sys/mtio/mtgtyopen.x
+ Modified to permit inclusion of device capabilities in the tapecap
+ definition. The syntax of a tapecap environment definition is now
+ <tapecap-file><device-capabilities>, e.g., "home$tapecap:so". Either
+ field can be omitted. For example, set tapecap = ":so=host" would
+ cause MTIO to use the default tapecap (dev$tapecap) but enable
+ status output to the named host for all magtape operations.
+
+ Device capabilities can now be specified in the tapecap device
+ entries, in the tapecap environment variable, or on the command line
+ (as in "mta[:so=host]"). The precedence is the command line, which
+ overrides everything, the tapecap environment variable, which
+ overrides the tapecap file entries, and the tapecap file entry
+ (followed lastly by the builtin defaults where applicable). (1/09)
+
+unix/os/zfioks.c
+ 1. Modified the rsh based connect code to add a fallback to rexec
+ (with a password prompt) if the rsh fails for any reason. If the
+ connect succeeds, the daemon process will still be started as with
+ rsh, hence all further connects will suceed by direct connection to
+ the daemon. In practice, what this means is that if an attempt is
+ made to connect to a node to which rsh cannot connect (e.g., because
+ there is no entry in hosts.equiv on the server node), the system
+ will print "access denied", prompt for the user password, and then
+ connect normally. Subsequent connects will succeed immediately,
+ without any further password prompts, until the daemon process times
+ out and shuts down.
+
+ 2. If the integer variable "KSAUTH" is defined in the user
+ environment, the value of "auth" in the user .irafhosts file is
+ ignored and the environment value is used instead. This makes it
+ possible to dynamically assign authorization codes in the user
+ environment at login time, if someone doesn't like having their
+ kernel server authorization code in the .irafhosts file. (1/10)
+
+dev/termcap
+dev/graphcap
+ Modified and tested these entries for lw9 and lw10 on tucana,
+ ursa, and gemini. (1/20 - jb)
+
+unix/hlib/zzsetenv.def
+unix/hlib/clpackage.men
+unix/hlib/clpackage.hd
+unix/hlib/clpackage.cl
+ Added entries for the new core system PROTO and OBSOLETE packages.
+ (1/23)
+
+sys/mwcs/mwcs.h
+ Increased MAX_WATTR from 64 to 256, and resized the main MWCS
+ descriptor accordingly. (1/30)
+
+pkg/proto/* +
+pkg/obsolete/* +
+unix/hlib/clpackage.cl
+unix/hlib/clpackage.hd
+unix/hlib/clpackage.men
+unix/hlib/zzsetenv.def
+ Added the new core IRAF system packages PROTO and OBSOLETE (the old
+ NOAO package PROTO is renamed NPROTO for noao-proto). PROTO is for
+ prototype or adhoc (interim, not fully general) tasks. OBSOLETE is
+ for obsoleted tasks that are one step away from disappearing. (Jan 92)
+
+pkg/images/tv/*
+ The TV package was extensively revised, adding the new tasks IMEDIT,
+ IMEXAMINE, TVMARK, and WCSLAB and moving all the IIS control tasks
+ (which don't work with display servers such as imtool or saoimage)
+ to a new subpackage IIS. The new tasks are from the old NOAO PROTO
+ package, except for WCSLAB, which is contributed software from STScI
+ written by Jonathan Eisenhamer. (Jan 92)
+
+unix/hlib/login.cl
+ 1. All the major core system packages are now loaded automatically
+ at login time (dataio, images, lists, plot, proto, tv, utilities).
+ The NOAO package is present but is commented out.
+ 2. The USER package was redone, adding many common unix tasks
+ as foreign task aliases.
+ 3. The CL parameter showtype is now initialized to yes, causing
+ packages and psets to be marked in package lists. (2/08)
+
+pkg/images/tv/mkpkg
+unix/hlib/mkpkg.inc
+ Added a USE_IIS conditional. This can be set to "no" in mkpkg.inc
+ on systems where the IIS package will not be used, to avoid trying
+ to build the package. (2/10)
+
+pkg/cl/cl.par
+ Updated the value of the version parameter to V2.10BETA (should have
+ done this a few months ago). (2/10)
+
+unix/hlib/login.cl
+pkg/cl/cl.par
+pkg/images/images/cl
+ Set up a mechanism to automatically detect and warn about out of
+ date login.cl files. A new parameter "logver", for login.cl file
+ version, was added to cl.par, with the default value being the null
+ string. The real value is set by an assignment in the login.cl.
+ When the IMAGES package is loaded, images.cl compares the value of
+ cl.logver with cl.version and complains (harmlessly) if there is a
+ mismatch, suggesting that `mkiraf' be used. It is a bit of a kludge
+ to use images.cl for this, but it is a simple technique and should
+ work fine, since it is unlikely that anyone using IRAF will not be
+ loading the IMAGES package at some point (clpackage.cl and system.cl
+ cannot be used as they are read too early in the load cycle, and
+ obviously login.cl cannot be used). If there is any question about
+ the comparative dates of IRAF and the user's login.cl this can be
+ determined by executing "lpar cl" after the CL starts up. (2/10)
+
+ It is very important with V2.10 that the new login.cl be used.
+ Magtape i/o depends upon this as does the new package loading scheme.
+
+imio/iki/oif/oifopix.x
+imio/iki/oif/oifupdhdr.x
+imio/iki/oif/oifopen.x
+ A couple of changes were made to improve error recovery for OIF
+ format images, in the event that a task aborts before an image
+ creation operation completes. Previously this could leave a pixel
+ file behind with no associated header file.
+
+ 1. The header of a new image is now updated at open time and at
+ pixel file create time, as well as when the image is closed. A
+ legal image results even if the operation is aborted before the
+ pixel file is created, or before writing the pixel file completes.
+ 2. The header file is now closed after the immap for new images
+ and read-write images, as has always been the case for read-only
+ images. The header is reopened as necessary when updated. In the
+ case of a new image, it is necessary to close the header or the
+ header file will be deleted by FIO if the task aborts before the
+ file is completed and closed. Closing the header of a new image
+ also frees a file descriptor, and important consideration for
+ applications that open many images. (2/11)
+
+unix/os/zfprot.c
+ The protection code will now silently clobber any existing ..foo
+ file entry when protecting file foo. There is a slight risk in
+ this, but it should be miniscule as .. prefixed files are very
+ rarely encountered (other than for IRAF image header file protection).
+ Also, the clobber can only occur when a file is protected, a rare
+ operation in itself except for OIF format images. (2/11)
+
+sys/gty/gtyopen.x
+ Modified to allow a device entry input as a character string to be
+ opened on a GTY descriptor. The routine already permitted a caplist
+ to be input which would override selected fields of the named device
+ entry, so the change was to allow the termcap file and device entry
+ name to be omitted. This routine is a useful corollary to GTYCAPS;
+ gtycaps takes an open GTY descriptor and returns the device
+ capability list (caplist) as a string, and gtyopen can now be used
+ to take the caplist and open another descriptor on it. This makes
+ it possible to store device entries in any form, not just in termcap
+ file form. (2/12)
+
+sys/mtio/mtcap.x
+ Fixed a bug in this routine. MTCAP takes a magtape device
+ specification as input and returns as output the GTY tapecap
+ descriptor corresponding to the named magtape device. The problem
+ was that it was calling mt_gtyopen and returning the gty descriptor
+ returned by this routine directly to the client. The client
+ subsequently calls gtyclose to free the descriptor, but mt_gtyopen
+ is used within MTIO to cache the most recently referenced tapecap
+ device entry. When the client closes the descriptor the cache is
+ left pointing to a nonexistent descriptor. The routine was modified
+ to call GTYCAPS to get the caplist of the cached descriptor, then
+ open a new descriptor on this with GTYOPEN. (2/12)
+
+sys/imio/iki/oif/oifrename.x
+ This routine calls immapz (what a kludge) to open the image header
+ and read/edit the pixel file name. A minor modification was required
+ to preserve the header file name in the descriptor to allow the
+ subsequent header update to succeed, now that the header file is
+ closed and reopened for updating. (2/13)
+
+
+pkg/dataio/wfits.par
+pkg/dataio/doc/wfits.hlp
+pkg/dataio/fits/wfits.h
+pkg/dataio/fits/t_wfits.x
+pkg/dataio/fits/fits_write.x
+pkg/dataio/fits/fits_wheader.x
+pkg/dataio/fits/fits_wimage.x
+pkg/dataio/fits/fits_wpixels.x
+ Modified wfits to fetch the default fits blocking factor for a device
+ from the dev$tapecap file. The user can still overrride this value
+ (which is usually set to 10) for variable blocked devices, but is no
+ longer required to know or set the block size for fixed block devices
+ like cartridge tapes. (2/13 LED)
+
+unix/as.sparc/ieee.gx +
+unix/as.sparc/ieeer.x +
+unix/as.sparc/ieeed.x +
+unix/hlib/mkpkg.sf.SUN4
+unix/as.mc68020/ieee.gx +
+unix/as.mc68020/ieeer.x +
+unix/as.mc68020/ieeed.x +
+unix/hlib/mkpkg.sf.SUN3
+ Installed a custom Sun version of the IEEE-floating to native-floating
+ conversion routines. The code is actually fairly portable SPP code,
+ but includes Sun Fortran escapes used for NaN mapping. The routines
+ iee[sg]nan[rd], used to set|get the reserved (native) magic value
+ used to replace or match NaNs, are now functional (formerly they
+ were stubbed out for SunOS). On Sun-3s and Sun-4s, which are IEEE
+ and unswapped, the only function of the IEEE conversion routines
+ is to map NaNs to and from the reserved (ieesnan[rd]) value.
+
+ ieemap[rd] (YES|NO) # enable/disable NaN mapping
+
+ A new routine IEEMAP[RD] (YES|NO) is used to explicitly enable or
+ disable NaN mapping. Note that NaN mapping occurs on both input
+ and output, for both the scalar and vector conversion routines.
+ NaN mapping is automatically enabled if IEESNAN[RD] is called.
+ "call ieemap[rd](NO)" should be called before using the conversion
+ routines, if NaN mapping is not desired. (2/14)
+
+pkg/dataio/fits/fits_rheader.x
+ Modified rfits to replace control characters decimal 0 (00X) to
+ 31 (1FX) and decimal 127 (7FX) in fits card images with the blank
+ character. The new fits standard now explicitly defines these
+ as illegal in fits headers. (LED 14/2/92)
+
+unix/gdev/sgidev/sgi2uapl.c
+unix/sun/screencopy.c
+ The call to the Postscript "setmatrix" operator was replaced by a
+ functionally equivalent series of calls to the operators
+ "initmatrix", "scale", and "translate", in an attempt to make
+ the Postscript output of these routines more device independent.
+ (2/14)
+
+unix/as.sparc/ieee.gx
+unix/as.sparc/ieeed.x
+unix/as.sparc/ieeer.x
+unix/as.sparc/ieee.gx
+unix/as.sparc/ieeed.x
+unix/as.sparc/ieeer.x
+ The SunOS IEEE conversion package was modified to add support for
+ counting any NaN values encountered during input and output
+ conversions (the portable vops$ieee.gx still remains to be updated).
+
+ The new routines are as follows.
+
+ ieestat[rd] (nin, nout)
+ ieezstat[rd] ()
+
+ IEEZSTAT zeros the counters (since there is no "open" procedure in
+ this package this must be done explicitly). IEESTAT returns the
+ number of NaNs encountered in the IEEE input (nin) and the number of
+ NaN values output (nout). (2/14)
+
+
+unix/as.sparc/ieee.gx
+unix/as.sparc/ieeed.x
+unix/as.sparc/ieeer.x
+unix/as.sparc/ieee.gx
+unix/as.sparc/ieeed.x
+unix/as.sparc/ieeer.x
+ I made one change to the IEEE interface - the calling sequence for
+ IEEMAP[RD] is now
+
+ ieemap[rd] (mapin, mapout)
+
+ i.e., mapping can be enabled independently for input and output.
+
+ The semantics of the IEESNAN routine were also changed slightly.
+ IEESNAN now has the side effect of enabling mapping for both input
+ and output (it did this before) and zeroing the statistics counters
+ (this is new). Hence, setting the native pseudo-NaN value will
+ initialize the NaN mapping code. (2/15)
+
+sys/osb/ieee.gx
+ Installed a new version of the "portable" IEEE conversions package.
+ This is identical to the version developed for SunOS, with the code
+ which initializes the IEEE NaN constant commented out (since the way
+ this is done is system dependent). The new version of the portable
+ ieee.gx includes the new IEEMAP and IEESTAT/IEEZSTAT routines, and
+ if input mapping is enabled is capable of detecting and converting
+ input NaN values to the local pseudo-NaN value. It will also
+ attempt to convert pseudo-NaN to IEEE-NaN upon output (if mapout is
+ enabled), but since the IEEE-NaN constant is not initialized the
+ output NaN value will be something else, usually zero. An
+ as$ieee.gx version of the file is required to set the true IEEE-NaN
+ value. In principle this can be done portably using an integer
+ equivalenced to a floating variable, but the current version does
+ not bother with that (for output; a similar technique is used to
+ recognize NaN values in the input). (2/15)
+
+pkg/images/tv/display/t_display.x
+ Added a call to IMGIMAGE to strip any image section from the image
+ name stored in the WCS passed to the display server. Since the WCS
+ output by display refers to the full image matrix ignoring any
+ section, defining the image as a section was incorrect. The WCS
+ still does not deal correctly with dimensional reduction when
+ displaying images greater than 2 dimensions.
+
+ This was tested with both image raster and QPOE data using RIMCURSOR
+ to generate coordinates and seems to work correctly. In particular,
+ the correct physical coordinates are generated for QPOE data
+ regardless of the QPOE block factor or image section. (2/16)
+
+sys/qpoe/qpioparse.x
+ Fixed a bug that was preventing the key=(x,y) (alternate coordinate
+ system) feature of QPIO from working properly. The code was setting
+ the IO_EVXOFF field twice but was not setting IO_EVYOFF; hence, given
+ a key such as key=(dx,dy), XOFF was being set to DY and YOFF would
+ retain its old value, probably Y. A reasonable looking image would
+ result but it was the wrong image (we were seeing key=(dy,y)). (2/16)
+
+sys/imio/iki/qpf/qpf.h
+sys/imio/iki/qpf/qpfwfilter.x
+ Fixed a bug in the code which writes the QPIO filter to the QPF image
+ header, which would cause it to omit all but the last card when
+ writing filters longer than will fits on a single QPFILTxx header
+ card. (2/16)
+
+sys/imio/imparse.x
+ The routine was modified to make it a little more forgiving regarding
+ variations on the standard image section syntax, and to improve error
+ detection of invalid section specifications. (2/16)
+
+pkg/dataio/fits/fits_rimage.x
+pkg/dataio/fits/fits_wimage.x
+ Modified rfits so that the ieee +/-NaNs, and +/-Infs are correctly
+ mapped to a user specified native floating point number. Underflow
+ values are automatically converted to 0.0. A warning message is
+ printed on the terminal if any bad pixels were replaced. A warning
+ message is also printed if valid floating point pixel values >
+ MAX_REAL or < -MAX_REAL were detected which can happen for both fits
+ bitpix -32 and -64 images. Imreplace can be used to replace these
+ explicitly. (LED 2/17/92)
+
+pkg/dataio/fits/fits_wheader.x
+ Modified the short_header=yes option in wfits so that the image
+ pixel type, fits bitpix, and the scaling parameters are printed on
+ the standard output, along with the image name, size, and number of
+ records written. (LED 2/17/92)
+
+pkg/dataio/fits/fits_params.x
+ Modified wfits so that string parameters that are 1) written
+ explictly by wfits, and 2) <= 20 characters long including quotes,
+ will have the / in column 33 instead of 2 spaces past the end of the
+ string. The affected keywords are OBJECT, ORIGIN, DATE, IRAFNAME,
+ IRAF-BPX, and IRAFTYPE. (LED 2/17/92)
+
+pkg/dataioo/fits/rfits.com
+pkg/dataio/fits/t_rfits.x
+pkg/dataio/fits/fits_read.x
+ Implemented a scan mode in rfits so that devices which have a slow
+ single-file file skip function (e.g. dat drives) can be used more
+ efficiently with the rfits make_image=no option. (LED 2/18/92)
+
+
+dataio$fits/t_rfits.x
+dataio$fits/t_wfits.x
+ Changed the maximum sequence number that can be appended to an output
+ root image of fits file name from 999 to 9999. This is actually
+ a format limitation %04d than a numerical limitation. (LED 2/18/92)
+
+sys/qpoe/qpiogetfil.x
+ Modified to remove an unneeded trailing comma which was being returned
+ in some circumstances in the reconstructed filter expression output
+ by the routine. (2/18)
+
+sys/qpoe/zzdebug.x
+ The zzdebug would not link any more due to a routine being referred
+ to by a name which had since changed (qp_rlmerge). (2/18)
+
+sys/imio/iki/qpf/mkpkg
+sys/imio/iki/qpf/qpfwattr.x +
+ Added a new routine qpf_wattr to QPF. This is called when an
+ image descriptor is set up for a QPOE image. The routine checks
+ for the existence of a series of QPOE header paramters "defattr1",
+ "defattr2", etc. If present, these are string value parameters,
+ the string value specifying the name of a parameter to be added
+ to the output image header, and how to compute the value of the
+ parameter. For example, defattr1 might have the value
+
+ exptime = integral time:d
+
+ meaning add a parameter "exptime" to the output image header, giving
+ as the value of the parameter the integral of the range-list of
+ attribute "time", type double, of the event attribute expression
+ used to filter the event list used to create the output image. (In
+ other words, compute EXPTIME, the total exposure time for the
+ filtered image). Currently, the syntax of the DEFATTRn parameter is
+ very limited and must be similar to that shown in the example, but
+ the parameter and attribute names can be anything, and the datatype
+ can be int, real, or double. Since the parameter is string valued
+ it will be easy to generalize in the future should we need to do
+ so. (2/18)
+
+sys/imio/iki/qpf/qpfcopypar.x
+ Improved the error recovery. (2/18)
+
+pkg/cl/gram.c
+ Constants such as 0:00:60 or even 0:00:59.999999999 could trigger
+ an "illegal constant" error abort in CL scripts, due to round off
+ errors in the CL code. Technically there is no reason one cannot
+ have a number such as 0:00:60 (or 0:00:any-positive-number for
+ that matter), since the result is well defined, so I relaxed the
+ overly stringent error checking in the gram.c code. (2/19)
+
+sys/gio/cursor/grcwcs.x
+ The code which computes the scale terms for an axis could die on
+ a divide by zero error when presented with an axis that has no
+ range. It will now detect the condition and set the scale term to
+ 1.0; the value is arbitrary, since there is no range on the axis
+ and deviations from the mean will always be zero. (2/19)
+
+sys/imio/iki/stf/stfrdhdr.x
+sys/imio/iki/stf/stfwfits.x
+ The STF image kernel was modified slightly to support images with
+ GROUPS=F. When the FITS image header is read, if GCOUNT=F the
+ parameters GCOUNT, PCOUNT, and PSIZE are initialized as for an image
+ with a single group and no GPB. The header update code was modified
+ to omit these parameters when updating an image for which GROUPS=F,
+ since the parameters should not be present in the FITS image header
+ if the image unless GROUPS=T. (2/19)
+
+sys/imio/iki/oif/oifrename.x
+ An image rename operation such as pix.0001.imh -> pix.imh would
+ succeed for the header file but would fail to rename the pixel
+ file. This would often pass unnoticed using a hidden imdir, but
+ is very evident when using imdir=HDR$. The problem was due to the
+ use of fnroot in oifrename, in a test to see if the root image
+ name is the same for the rename operation. This would fails as
+ fnroot cannot descriminate between image extensions and file
+ extensions. I replaced the calls to fnroot by calls to zfnbrk,
+ to get the root offset and hence strip off any logical directory
+ prefix, which was the point of the original call to fnroot. (2/19)
+
+unix/os/zfiomt.c
+ It turns out there was still one case where the new magtape driver
+ did not emulate the simple unix model of open, write,write,write,
+ close, open, write,write,write, close, open, etc. The exception was
+ minor, but caused a problem with the TIB SI driver for the HP drive
+ on a Sun (the only one of these we have seen so far is at STScI).
+ The result was a double EOT between each file on the tape, when
+ appending files with WFITS.
+
+ What was happening is that when the driver was opened to append a
+ file to the tape, it opened the drive read-only to position the
+ tape, then closed it and reopened write-only for writing. This is
+ done to avoid clobbering the tape if an abort occurs during the
+ file positioning operation. What was happening was that when already
+ positioned to EOT, the drive would be opened read-only, no positioning
+ would occur since the tape was already at EOT, the drive would be
+ closed, and reopened for writing. Hence there was an unnecessary
+ open-read/close before writing each tape. This should be harmless -
+ it does not move the tape or talk to the hardware - but it was
+ triggering a bug in the host driver.
+
+ Evidently (this is my theory at least), this host driver is pretty
+ clever and delays writing the double file mark marking end of tape.
+ So long as you just append files it never write the EOT, until the
+ tape is rewound. A rewind or backspace should trigger writing of
+ the EOT. What I think was happening was that the open-read would
+ trigger writing of the delayed-EOT. The host driver would write
+ two tapemarks and backspace over the second one. Only problem is,
+ it had already written one (one is always written after every file
+ even with delayed EOT), so you end up with a double file mark, or
+ EOT, between every file on the tape. This is a blatant bug in the
+ host driver. We were able to duplicate this using only using UNIX
+ TAR by writing a small C program which did close(open(/dev/xxx,0));
+ and was called before using tar to append each file.
+
+ As a workaround I have revised the iraf driver to avoid opening the
+ tape read-only for positioning unless some positioning is actually
+ necessary. If all one does is append files, the positioning open
+ is avoided and the simple unix semantics are exactly duplicated,
+ i.e., all the driver does is open for writing, write the file, and
+ close. (2/19)
+
+pkg/dataio/fits/fits_write.x
+ Replace a call to imgimage with one to imgcluster since the
+ original purpose of the imgimage call was to extract the root
+ image name. (have not yet rebuilt dataio) (2/20/92 LED)
+
+------------------------
+Beta system cut and installed on URSA (2/20).
+
+unix/os/zfiomt.c
+ Fixed a bug having to do with error recovery in the event that the
+ device cannot be opened (as when attempting to rewind or deallocate
+ a device that is offline). (2/22)
+
+unix/hlib/login.cl
+ Modified the template login.cl to allow V2.10 login.cl files to be
+ used with V2.9 IRAF (available as "irafo" on our systems). It
+ was necessary to add conditional references for LOGVER and PROTO.
+ Also, the NOAO package is now loaded by default. (2/22)
+
+pkg/plot/crtpict.par
+ Changed the default output device from "dicomed" to "film_recorder".
+ The latter is a generic device alias set in graphcap to point to
+ whatever the desired local device may be. (2/22)
+
+local/login.cl
+ Updated to V2.10. Edited so that it is fairly generic and has a
+ chance to work when the system is installed on a different host.
+ (2/22)
+
+dev/tapecap
+ 1. Added local entries for node ursa.
+ 2. Added a SCSI 5 entry for the Sun HP drive. (2/22)
+
+dev/graphcap
+ Additions for Solitaire film recorder. Set the default generic
+ "film_recorder" entry to point to the solitaire. The Solitaire
+ is currently interfaced via a custom graphics kernel (modified
+ version of the SGI kernel) which resides outside the standard
+ IRAF system, in the NLOCAL package. (2/22)
+
+pkg/system/rewind.par
+ Changed the default for the "initcache" parameter from yes to no.
+ initcache causes rewind to "forget" how many files there are on the
+ tape, forcing a rescan the next time one seeks to EOT. It is
+ arguable whether it is safer to init the tape status cache on a
+ rewind or now, but it sure can be a lot faster on devices with
+ many files to retain this information. (2/22)
+
+-------------------------
+Beta distribution files regenerated to pick up these changes. (2/22)
+
+unix/bin.mc68020/gterm.e.403
+unix/bin.mc68020/imtool.e.403
+ Added SunOS 4.0.3 versions of the GTERM and IMTOOL executables,
+ for the convenience of those who have not updated to 4.1.x (as is
+ the case with argo, locally). (2/23)
+
+unix/as.sparc/ieee.gx
+unix/as.mc68020/ieee.gx
+sys/osb/ieee.gx
+ Fixed a typo in the generic code for ieevupk - an "amovr" should have
+ been a "amov$t". This would cause type double vector unpack operations
+ to fail for large numbers. (2/25)
+
+unix/os/zfiomt.c
+ Added a new capability "fe" to tapecap. This stands for "file
+ equivalent" and is the amount of tape in Kb which, in a file read,
+ is equivalent to a file-skip-forward 1 file operation. This
+ capability can be used by applications which scan large tapes
+ containing many files to decide whether to read the rest of the
+ file, or close the file immediately and open to the next file (which
+ implies a FSF). On devices (like some DAT drives) where a FSF
+ operation can be slower than a file read, it is faster to read
+ small files than to FSF to the next file. If the fe parameter is
+ missing the value is assumed to be zero, meaning that FSF is faster
+ than reading the file. Note that "fe" is not used by the driver,
+ it is an optional parameter provided for use by tape applications
+ as a device-dependent optimization. (2/27)
+
+pkg/dataio/fits/fits_read.x
+ Changed the interpreation of the fe parameter as read from
+ dev$tapecap from MB to KB. (2/27 LED)
+
+dev$hosts
+ Added spud and pantera to hosts file on tucana, orion, gemini and
+ ursa (MJF 2/28)
+
+sys/etc/erract.x
+ Replaced an explicit reference to the common "zjucom" by the symbol
+ JUMPCOM defined in config.h. (This was a historical oddity, harmless,
+ but would cause a problem if the name of the common was ever changed
+ in config.h). (2/29)
+
+sys/etc/onexit.x
+sys/etc/onerror.x
+ A procedure was added to both of these small packages, for removing
+ previously posted onerror or onexit procedures.
+
+ onerror_remove (procname)
+ onexit_remove (procname)
+
+ Previously there was no way to deactivate such procedures, other than
+ during error recovery or task termination. (2/29)
+
+sys/mtio/mtupdlock.x
+ This procedure calls FATAL if an error occurs while updating a lock
+ file. This was causing problems with magtape error recovery,
+ because mt_sync, which causes the lock files to be updated, is
+ posted by MTIO as an ONERROR procedure. If an error occurred and
+ the lock file could not be updated, FATAL would abort the task,
+ error recovery would call mt_sync, which would try again to update
+ the lock file, leading to error recursion or errors during error
+ recovery, and various nasty scenarios. With this change magtape
+ error recovery appears to be working correctly again. I tried
+ several mtexamine runs, aborting each with a ctrl/c (but omitting
+ the flpr) and the system recovered perfectly each time. (2/29)
+
+sys/mtio/mtdealloc.x
+ Added calls to mtdeallocate to sync the MTIO cache (update the lock
+ files with the current tape position) and then clear the cache,
+ clearing the entry for the deallocated device as well as forcing all
+ devices to reload their lock files. This was the source of the
+ problem where allocating and deallocating device A and then allocating
+ device B would cause devstatus B to fail. Following this fix various
+ tests with two devices allocated and accessed together or alternately
+ were performed without seeing any problems. (2/29)
+
+pkg/system/rewind.par
+ Changed the default for the initcache parameter back to yes. It is
+ essential that the cache be initialized when a tape is removed and a
+ new tape mounted, and it more likely that the user will rewind the
+ tape (in software) than that they will deallocate/reallocate. (3/01)
+
+ rewind init[+|-] appears to be working correctly now, probably as a
+ result of one of the bug fixes made during the period 2/29-3/01.
+
+unix/os/zfiomt.c
+ The tapeused counter is now cleared when opening a tape and the tape
+ position is undefined. This condition forces a rewind and clears
+ all cached data. (3/01)
+
+sys/ki/kzopmt.x
+sys/mtio/mtcache.x
+sys/mtio/zclsmt.x
+sys/mtio/zopnmt.x
+ A number of changes were made to these routines during two days of
+ beating on the system with ctrl/c interrupts to improve error
+ recovery. With these improvements the magtape i/o system again
+ appears to be solid with respect to error recovery. A tape task can
+ be interrupted either during positioning or during a read and the
+ system should recover completely, without need to do a flpr (I
+ didn't do any flprs during all this testing). Interrupting a write
+ is ok too, but will leave a partial file on the tape. Any kind of
+ interrupt will cause the tape position to be marked undefined,
+ forcing a rewind the next time the tape is accessed, and clearing
+ all cached information (clearing cached tape information when an
+ interrupt occurs during a read is not necessary in all
+ circumstances, but simplifies things and is probably safer).
+
+ 1. The kzopmt routine (KI) had a serious bug in that it did not
+ allocate a KI channel descriptor until after the device open. This
+ is ok for most devices, but not for tapes since the device open
+ implies a tape positioning operation which may take a very long
+ time, and hence is suspectible to interrupts. FIO and MTIO error
+ recovery has to be able to close a tape device which is "partially
+ open", or open read-only for positioning, prior to the i/o operation.
+ The close operation would fail as the kzclmt routine would be
+ expecting a KI channel descriptor but would not get one, causing
+ a bogus file descriptor to be closed. This would cause the tape
+ close to fail and could in some cases result in a segmentation
+ violation or process panic shutdown.
+
+ 2. zopnmt was modified to update the cached file position after
+ the driver open. This was necessary to mark the cached entry
+ for updating, to allow an undefined position to be written in the
+ event that an interrupt occurred during i/o.
+
+ 3. zclsmt required minor changes for both the interrupt-while-
+ positioning and interrupt-during-i/o cases. In the IWP case mt_sync
+ is now called with a status of ERR to cause an undefined position
+ to be written. In the IDIO case MT_FILNO = -1 in the internal
+ MTIO descriptor is used to flag error recovery, but due to the
+ calling sequence of the driver open having changed with the new
+ driver, MT_FILNO was being overwritten with a valid tape position
+ during the device close. This would cause a valid position to be
+ written to the .lok file when a tape operation was interrupted
+ while i/o was in progress.
+
+ 4. The file position cache code underwent several subtle modifications.
+ Probably these were not necessary but they bullet-proof the code a
+ little bit.
+
+ The result of all these changes is that, following an interrupt of
+ a tape operation, 1) devstatus should always show file=-1, record=-1,
+ and 2) the next tape operation should cause an automatic rewind
+ followed by a space forward to the indicated file. It should not be
+ necessary to flush the process cache. Any other behavior, even if
+ harmless, is considered incorrect. (3/01)
+
+sys/etc/xalloc.x
+sys/mtio/mtalloc.x
+sys/mtio/mtstatus.x
+ Modified the "devstatus" command to print the tape status file
+ (.lok file) even if the device is not allocated, provided the file
+ exists. This is desirable since taping is now permitted even on
+ unallocated devices, and it is useful to be able to see the tape
+ status file to see what file the tape is positioned to, how much
+ tape has been used, etc. If the device has not been allocated
+ devstatus will still issue a warning message to that effect, as it
+ has always done, followed by the contents of the .lok file (tape
+ status file), if such exists. Since existence of the tape status
+ file no longer necessarily implies that the tape has been allocated,
+ the header message in the file was changed from "Magtape device X
+ allocated to ..." to "Magtape device X status ...". (3/01)
+
+sys/mwcs/mwshow.x +
+ Added a new routine MW_SHOW to MWCS. This is used to print a
+ representation of a MWCS to an output file (usually, for debugging
+ purposes when writing an application).
+
+ call mw_show (mw, out, what)
+
+ The routine does not yet print all that it could about the MWCS.
+ The argument "what" is not yet used. This routine was described
+ in the original interface but had never been implemented. (2/25-3/01)
+
+sys/mwcs/mwcs.h
+sys/mwcs/mwsv.h +
+sys/mwcs/wfinit.x
+sys/mwcs/mwload.x
+sys/mwcs/mkpkg
+ In IRAF v2.10 we increased the max number of WCS attributes, which
+ affected the size of the MWCS descriptor. This caused the WCS stored
+ in old QPOE files to be unreadable, since it turns out that while
+ the MWCS interface (mw_save) encodes a MWCS descriptor in a machine
+ independent form for external storage, this form is essentially just
+ a copy of the internal MWCS binary descriptor. When the internal
+ descriptor changed the old saved descriptors could not be read.
+ Since QPOE is a runtime binary format there is no requirement that
+ the files be readable from one version of iraf to the next, but it
+ is desirable to minimize such incompatibilities, or at least detect
+ them and issue an appropriate error message.
+
+ Really fixing this problem in a general way is not easy given the
+ complexity of the MWCS descriptor. What I did was define a separate
+ MWSV save file descriptor in mwsv.h, deleting the old SV_ entries
+ from mwcs.h. The old save structure had some extra space in it for
+ just this sort of emergency, which is zeroed out in the old MWCS
+ savefile descriptors. Fields giving the MWSV version number, number
+ of WCS, and WCSLEN (WCS substructure length) were added to the save
+ descriptor. Since these fields are zero in the old descriptors the
+ "version number" of these old descriptors is zero. The mw_load code
+ was modified to use a builtin MWSV version zero value for WCSLEN,
+ and calculate NWCS, allowing it to read these old descriptors. New
+ descriptors are written using the actual values for NWCS and WCSLEN
+ and a version number of 1. Hence, the new mw_[save|load] code can
+ both read old descriptors and write and read the new descriptor with
+ its larger max number of WCS attributes.
+
+ I also discovered and fixed a minor problem in the save code. The
+ SV header (integer) was being read and written directly without use
+ of the MII routines, hence the MWCS save/load code was not fully
+ machine independent. The appropriate MII routines were added to
+ pack and unpack (byte swap) the save header. This won't affect
+ existing saved MWCS written on big-endian machines like Sun, since
+ the MII routines merely copy the data on such machines. (2/25-3/01)
+
+sys/mwcs/mwsctran.x
+ Fixed a typo in the error checking code. There was a "mw_system"
+ reference which should have been "mw_ssystem". (3/04)
+
+plot/pltwcs.x
+plot/t_graph.x
+ Modifications were made to produce a label appropriate for the
+ wcs type selected rather than always use the world system label
+ in the image; i.e. if plotting in logical wcs the label is
+ "Logical pixel" rather than something like "Wavelength (Angstroms)".
+ The change affects pcol(s), prow(s), and graph. (3/04 FV)
+
+dev$hosts
+ Added solarium and taco to the hosts file on tucana and orion. Nigel
+ added these to ursa and gemini. He also notes that lyra, carina and
+ aquila can be deleted. (3/4/92 MJF)
+
+unix/bin.mc68020.403 +
+unix/bin.mc68020/gterm.e.403 -
+unix/bin.mc68020/imtool.e.403 -
+ Added a complete bin.mc68020 directory compiled and linked for
+ SunOS 4.0.3. Deleted the 4.0.3 versions of gterm.e and imtool.e
+ from the SunOS 4.1.1 version of bin.mc68020.
+
+ In case this problem occurs again here are the symptoms:
+
+ ld.so: warning: /usr/lib/libc.so.0.12 has older revision than expected
+ ld.so: call to undefined procedure _tolower from 0x20266
+
+ This occurs when executing any HSI executable on a 4.0.3 system.
+ If this occurs the solution will be to install bin.mc68020.403 as
+ bin.mc68020, i.e.,
+
+ % mv bin.mc68020 bin.mc68020.411; mv bin.mc68020.403 bin.mc68020
+
+ Currently there are no plans to ship V2.10 with the 4.0.3 binaries
+ installed by default. Linking the HSI -Bstatic also avoids this
+ problem but the executables are quite a bit larger and there may
+ still be subtle problems which are dependent upon SunOS versions,
+ e.g., with alloc.e. (3/05)
+
+sys/imio/iki/qpf/qpfwattr.x
+ Modified to deal with the case where there is no filter expression
+ and the QPEX descriptor is NULL. (3/05)
+
+pkg/images/iminfo/listpixels.x
+ Modified the listpixels task to use the MWCS axis "format"
+ attributes if they are present in the image header, and added
+ support for dimensionally reduced images whose coordinate
+ transformations are dependent on the reduced axis. (3/6/92 LED)
+
+pkg/lists/rimcursor.par
+pkg/lists/rimcursor.x
+pkg/lists/doc/rimcursor.hlp
+ Added two new parameters wxformat and wyformat to the rimcursor task.
+ These formats if defined take precedence over the formats stored in
+ the WCS in the image header, and the internal default format for
+ all values of the wcs parameter. (Davis 9/3/92)
+
+sys/mio/mtupdlock.x
+ This, routine, which updates the magtape device status file (aka
+ lockfile) was a bit too zealous about error checking and could fail
+ to update the status file and cause a fatal exit of the task in
+ circumstances where this was not really necessary, for example when
+ the old status file did not exist or could not be read. This could
+ result in the message "fatal error while closing magtape file". I
+ modified the routine to recover if the old file could not be read
+ and to take an error exit only if the new status file could not be
+ written. The error message was changed to "Fatal error writing
+ magtape device lockfile". (3/10)
+
+sys/imio/iki/stf/stfaddpar.x
+ The stf_addpar routine is used for a new image or a new copy of a
+ non-STF image to add parameters to the GPB. As each parameter is
+ added a parameter is also added to the open image descriptor (image
+ header). The imaddX calls for the image header would initialize
+ the value of any existing header parameters, causing any existing
+ WCS to be lost (since the standard GPB parameters are for the WCS).
+ The fix was to omit the imaddX call if the named parameter already
+ exists in the image header. (3/10)
+
+sys/imio/iki/stf/stfaddpar.x
+ The value of STF_PSIZE was being computed incorrectly. There was
+ an implicit assumption that the CTYPEn field was the same size as
+ SZ_DOUBLE, evidently made in the original code to simplify the
+ expression. Rewrote to use an explicit 8 bytes for the CTYPEn field,
+ and also reordered and commented the expression for clarity. (3/10)
+
+pkg/images/iminfo/t_imstat.x
+ Precision was being lost unnecessarily in the computation of the
+ standard deviation, skew, and kurtosis because two of the
+ intermediate variables in the computation were real instead of
+ double precision. (3/10/92, Davis)
+
+dev$hosts
+ Added 'elric' to hosts file on tucana, orion, and ursa. Previously
+ added to gemini by Nigel. (3/11 MJF)
+
+pkg/images/imutil/t_imslice.x
+pkg/images/doc/imslice.hlp
+ Added wcs support to the imslice task. (3/12 LED)
+
+unix/os/zfiomt.c
+ Discovered and fixed another error recovery problem. During testing
+ using WFITS to write a number of very small images, the program was
+ spending most of the time doing the file close on the magtape device
+ (which writes a tape mark and takes a finite time for such a device).
+ An interrupt would therefore usually occur during the close, resulting
+ in a half-completed file close; error recovery closes open files, and
+ the driver was bombing as part of the descriptor had already been
+ deallocated. The fix was to modify ZZCLMT to check for a partially
+ deallocated descriptor before proceeding to close the file. (3/14)
+
+unix/os/zfiomt.c
+ When appending files to a tape, the space for the file mark was not
+ being counted, causing an incorrect tapeused value when writing to
+ DAT or Exabyte. (3/14)
+
+unix/os/zfiomt.c
+ Added two new tapecap device parameters "ro" and "rr". If "ro"
+ (rewind-on-open) is set the tape is rewound on every open to get to
+ a known position, after which the driver will space forward to the
+ desired file. If "rr" (rewind-after-close-readonly) is set the tape
+ is rewound when closed following a readonly operation. These
+ options are rather drastic, but are provided to deal with drives that
+ leave the tape in an unknown position after a file operation. (3/15)
+
+ I also looked into the problem of fast techniques for finding the EOT
+ of large tapes containing hundreds of files. This is important as
+ seeking to the end of tape file by file where are hundreds of files
+ can be very time consuming.
+
+ At least in the case of a DAT with the ApUNIX driver there is no
+ system and driver independent way to do this because the driver does
+ not report an error if one attempts a fsf N where N is greater than
+ the number of files on the tape. However, such an operation *does*
+ leave the drive positioned to EOT, hence operations with large N can
+ be used to position to EOT or append to a tape. This is perhaps
+ most easily explained with some examples. Assume we have a tape mta
+ with 100 files on it.
+
+ wfits dev$pix mta[999] appends a file
+ mtex mta[999] positions to EOT
+ mtex mta[998] after the above, reads last file
+
+ After one of the above operations the driver will report that
+ there are 999 or 998 files on the tape. A mtex of the full tape
+ would automatically correct this figure.
+
+ Of course if the user knows that there are 100 files on the tape
+ they could just write to mta[101] or read mta[100], and the driver
+ would immediately position to the indicated file using a multifile
+ space operation (if enabled in tapecap).
+
+ Further studies will be needed to determine if there is any way
+ to exploit this sort of drive behavior in the driver to make things
+ transparent to the user.
+
+sys/fmtio/dtoc.x
+sys/fmtio/fprfmt.x
+sys/fmtio/parg.x
+sys/libc/printf.c
+ Added two new format specifiers %H and %M to FMTIO. These are
+ identical to %h and %m except that the value to be output is divided
+ by 15.0 (to convert degrees to hours) before being printed. (3/15)
+
+pkg/lists/doc/rimcursor.hlp
+ Added an explanation of the %H format and example of its use to
+ the rimcursor help page. (3/16 LED)
+
+sys/fmtio/lexdata.inc
+sys/fmtio/doc/lexnum.hlp
+ The action for the character B in the DHR production was incorrect;
+ changed from d_d (reduce decimal) to HEX (go to the HEX production).
+ (3/16)
+
+sys/fmtio/dtoc3.x
+ The DTOC3 code had a very nasty problem which showed up on a specific
+ machine (lepus, mc68882 fp). There is some code in this routine which
+ goes as follows:
+
+ do i = 1, no_digits {
+ v = v * 10.0d0
+ j = v
+ v = v - j
+ (etc.)
+
+ where V is double and J is integer. In the case where this failed
+ the number being printed was 6 and upon entry to the above loop V
+ was 0.6 (normalized to 0-1). The int operation J=V was setting J to
+ 5, but the V=V-J was returning 1.0. In the next loop V was 1 and
+ V * 10 was 10, causing digit conversion to fail, since the value
+ being digitized must be a single digit.
+
+ In mathematical terms the code was correct but evidently it was
+ failing due to some sort of roundoff problem. I added some code
+ to try to detect this condition and correct it. The statement
+ J=V was also replaced by J=INT(V+EPSILOND) to round up numbers
+ which are integral to within the machine epsilon (e.g., 5.99999999
+ with 16 or so 9s becomes 6). (3/22)
+
+ This sounds similar to a problem which has been reported before,
+ it may fix the older problem.
+
+sys/etc/oscmd.x
+unix/as.sparc/oscmd.s
+ I encountered some sort of bizarre (i.e. very subtle) problem with
+ a minilanguage which would send an OS escape to the CL to be
+ executed, while there were already parameter set statements buffered
+ in the CLOUT. The CL (actually prpsio code) would get both in the
+ same read and it was causing some problem which I did not have time
+ to investigate. Added a call to flush(CLOUT) to avoid the problem,
+ is safer anyway. (3/22)
+
+ [need to add as.mc68020 version or remove from special file list]
+
+pkg/images/tv/wlutil.x
+ Wcslab was not working correctly if an image larger than the frame
+ buffer was displayed with fill=no. (3/25/92 LED)
+
+dataio$fits/t_rfits.x: Davis, Mar 25, 1992
+ Rfits was using the value of the iraf_file parameter instead of the
+ name of the first output image, if the value was an @file, e.g
+ "@outlist" and the number of output files was 1.
+
+dev$hosts
+ Added Rob Hubbard's machine 'deneb' to hosts file. Added to gemini
+ and ursa by Ed Anderson (3/31/92 MJF)
+
+qpiogetfil.x
+qpexpand.x
+qpexgetfil.x
+qpexgetat.x
+ These routines return the string length of the output string as the
+ function value. If the output string overflows maxch characters are
+ returned, however the function value in this case could be maxch-1,
+ causing the calling routine to fail to detect string overflow. The
+ code was modified to return maxch if string overflow occurs. (3/31)
+
+qpmacro.x
+ Modified to permit QPDEFS statements such as "set nodeffilt", i.e.,
+ a SET statement with no value assignment. (3/31)
+
+qpex.h
+ Doubled the default size of the program, data, and expression buffers.
+ (3/31)
+
+qpexparse.gx
+ Timing tests on filter expressions containing many floating range
+ list terms (e.g. large time filters) revealed that this routine was
+ very inefficient in its used of fp_equal[rd]. I optimized a couple
+ of inner loops slightly and was able to speed up expression
+ compilation by a factor of 10-15. (3/31)
+
+qpexdebug.x
+ Modified to allow for output of the full expression string when
+ used with very long range lists. (3/31)
+
+--------------------------
+TUCANA upgraded from a 3/160 to a Sparcstation 2.
+SunOS 4.1.2, Sun Fortran 1.4, Sun C compiler. (4/03)
+
+unix/mkpkg +
+ Added a mkpkg file providing a "mkpkg summary" facility for compressing
+ reboot output. (4/04)
+
+unix/shlib/mkshlib.csh
+ Added support for Sun Fortran 1.4, for sparc only so far. (4/04)
+
+unix/hlib/mkpkg.sf.SUN4
+ Commented out the special file list entry for oscmd.x, I doubt if
+ it is needed any more. (4/04)
+
+--------------------------
+Completed a full sparc bootstrap and sysgen-compile for SunOS 4.1.2,
+Sun Fortran 1.4, and the unbundled C compiler. (4/04)
+
+unix/hlib/irafuser.csh
+unix/bin.sparc
+ Set up the HSI to link the HSI executables -Bstatic. I don't like
+ doing this as the resulting bin is 3.6 Mb, but the libc.a shared
+ library versions are too much of a headache. HSI executables
+ linked shared under SunOS 4.1.2 will generate a shared library
+ warning message when run under 4.1.1, and this is just a micro
+ version difference. The mc68020 executables (and local nodes) are
+ still at 4.1.1 so there is no problem there. (4/05)
+
+unix/boot/mkpkg/host.c
+ The code used to check two iraf directory pathnames for equality
+ could fail for pathnames such as /u3/iraf/iraf, containing more than
+ one "iraf/". This caused the special file list to be ignored in
+ the recent upgrades and full sysgen. (4/06)
+
+ [all affected files recompiled]
+
+unix/hlib/install
+ Modified the install script to choose /usr/local/bin over /local/bin
+ if both are found. (4/06)
+
+noao/mkpkg
+noao/nobsolete/mkpkg +
+ Added a stubbed-out mkpkg to nobsolete. Uncommented the commented-out
+ entries for nobsolete in noao/mkpkg. Restore the original package
+ build order, which builds all the main packages first followed by
+ imred. (4/06)
+
+sys/etc/prpsio.x
+ The code which intercepts raw mode control sequences would erroneously
+ match any terminal output string of the same length as a raw mode
+ control sequence and which begins with ESC (a full equality test was
+ not being performed). (4/06)
+
+unix/os/zfiomt.c
+ Due to a data structure change, tapecap parameter negation as in
+ "mta[:xx@]" to negate parameter xx wasn't working. (4/07)
+
+pkg/images/iminfo/listpixels.x
+ Added a formats parameter for formatting the output pixel
+ coordinates to the listpixels task. These formats take precedence
+ over the formats stored in the WCS in the image header and the
+ previous default format. (4/7/92, Davis)
+
+unix/os/zfaloc.c
+unix/os/zfiobf.c
+unix/os/zoscmd.c
+ Modified these routines to use the user's UMASK to compute the file
+ mode for a new file. zfiotx.c already does this, although it isn't
+ entirely correct (one can add more permissions with umask but one
+ always gets at least 0644 for new text files). The other routines
+ make full use of umask now. (4/07)
+
+unix/os/zfaloc.c
+ Since I was already working on zfaloc I also added a feature to
+ permit full preallocation of files on unix systems. The default
+ behavior of zfaloc, for efficiency reasons, is to physically
+ preallocate only the last block of the file, leaving the remainder
+ of the file blocks to be allocated when data is written to the file.
+ Now, if "ZFALOC" is defined in the user's host environment, full
+ preallocation of the file is enabled. If the variable is defined
+ but has no string value all zfaloc files are fully preallocated,
+ otherwise, the string value is a comma delimited list of substrings,
+ and a file will be fully preallocated only if one of those substrings
+ matches a substring of the file name in the zfaloc call. This allows
+ files in certain directories or of certain types to be fully
+ preallocated while others are allocated in the normal fashion, so
+ that the behavior of the routine can be customized for a given
+ type of application. (4/07)
+
+dev/hosts
+ Corrected the Loden entry on Gemini for Rich Reed. We should
+ verify all these paths in the master system. (4/07 RLS)
+
+dev/pix.imh
+dev/pix.pix
+ Replaced dev$pix by a version that has the header tweaked up a bit.
+ (4/08)
+
+dev/termcap
+ Added entries to allow two-up page printing on all printers. Change
+ also made to gemini and ursa termcap files. (4/8 MJF)
+
+pkg/plot/t_pcol.x
+pkg/plot/t_implot.x
+pkg/plot/t_graph.x
+pkg/plot/t_pcols.x
+pkg/plot/t_prows.x
+pkg/plot/pltwcs.x
+pkg/plot/graph.par
+pkg/plot/prow.par
+pkg/plot/prows.par
+pkg/plot/pcol.par
+pkg/plot/pcols.par
+pkg/plot/doc/graph.hlp
+pkg/plot/doc/implot.hlp
+pkg/plot/doc/prow.hlp
+pkg/plot/doc/prows.hlp
+pkg/plot/doc/pcol.hlp
+pkg/plot/doc/pcols.hlp
+ 1. Modified GRAPH, IMPLOT, PROW(S), and PCOL(S) to define and set a
+ coordinate format in plots. This allows graphs to be made in
+ DD:MM:SS and related formats.
+ 2. Modified GRAPH, IMPLOT, PROW(S), and PCOL(S) to use any WCS
+ attribute coordinate format found in the images.
+ 3. Added xformat and yformat parameters to GRAPH, PROW(S), and
+ PCOL(S) to define coordinate plot formats. This allows having a
+ format when a format attribute in not found in the images, to
+ override a format attribute, and to allow setting the format in
+ simple text input. For example, GRAPH can plot formated RA and DEC
+ from a list of input RA and DEC coordinates.
+ 4. Added a ":f format" to IMPLOT to allow specifying/overriding the
+ WCS attribute format.
+ 5. Added <space> as a key in IMPLOT to print coordinate and pixel
+ value information:
+ line=256, column=142, coordinate=13:27:55.6, value=222.
+ (4/9 Valdes)
+
+pkg/cl/exec.c
+ The symptom of this bug was that if a package which has package
+ parameters was loaded at login time and the package parameters were
+ later edited, the edited values would not be used.
+
+ This was traced to a problem with the pfile pointer in the package
+ descriptor pointing to a discarded copy of the package pset. The
+ PACKAGE command, executed in the package script task when the package
+ was loaded, would quite correctly set up the package descriptor
+ pointing to the runtime copy of the package pset for the package
+ script task. When EOF of the login.cl was reached the package
+ script task would terminate and the runtime pset would be copied
+ back to the main package pset and the runtime pset freed - but the
+ package descriptor was left pointing to the old, no longer used pset.
+
+ The fix was to modify oneof() (that's "on-eof"), called when a task
+ terminates, to check if the task is a package script task and if
+ so fix the package descriptor to point to the main pset. (4/09)
+
+pkg/cl/builtin.c
+pkg/cl/pfiles.c
+ "unlearn pkgname" will now unlearn the package parameters of package
+ pkgname, as well as the parameters of each task in the package (but
+ it does not descend into subpackages). (4/09)
+
+sys/libc/cprintf.c +
+sys/libc/scanf.c
+sys/libc/mkpkg
+ Added an interface of the VOS printf routines to LIBC. These are
+ the routines c_printf, c_fprintf, c_parg[bcsilrd], and c_pargstr.
+ LIBC already has unix stdio-like print routines, but the VOS
+ routines avoid the varargs stuff, and do automatic type conversion.
+ (4/11)
+
+pkg/cl/gram.c
+pkg/cl/debug.c
+pkg/cl/y.output
+pkg/cl/ytab.c
+pkg/cl/ytab.h
+pkg/cl/grammar.y
+pkg/cl/opcodes.c
+pkg/cl/compile.c
+pkg/cl/opcodes.h
+pkg/cl/scan.c
+pkg/cl/builtin.c
+pkg/cl/mkpkg
+ Added the long-awaited ability to scan from a pipe (or whatever the
+ stdin is connected to). Also added the new formatted scan and print
+ routines scanf, fscanf, and printf. These are like the unix/stdio
+ versions but use FMTIO, supporting such FMTIO features as %h and
+ %*.*. For example,
+
+ cl> printf ("%d foo %g\n") | scanf ("%d foo %g", i, x)
+
+ or
+ while (fscanf (list, "%d %s", i, s1) != EOF)
+ printf ("i=%d, s1=`%s'\n", i, s1)
+
+ Don't forget the [f]scan routines, which may still be more convenient
+ for simple unformatted scans.
+
+ The new printf routine uses the VOS PARG routines to pass argument
+ operands, hence provides automatic type conversion on output. If an
+ incorrect number of arguments are passed an incomplete format error
+ will result. The scanf routine is an interface to the LIBC scanf
+ routine (actually, u_doscan). The CL scanf/fscanf routines call the
+ LIBC scanf which parses the format string and writes the output
+ values whose addresses are passed in a manually crafted varargs
+ argument list. Since scanf writes directly into the value fields of
+ the output parameter descriptors, no automatic type conversion is
+ possible and there is no checking for string overflow when writing
+ to a string valued parameter. Care should be taken to make sure the
+ scanf format matches the datatypes of the output parameters. (4/11)
+
+pkg/cl/debug.c
+ Fixed a minor problem with the uncompiled output, where non-string
+ values output for pushconst would contain a trailing '. (4/11)
+
+unix/os/zfiobf.c
+unix/os/zfiotx.c
+unix/hlib/libc/kernel.h
+ Tested the recently added umask support and made a few changes. The
+ umask semantics for text files are now identical to those for binary
+ files etc. (4/11)
+
+unix/hlib/zzsetenv.def
+ Added an entry for the gty system source directory. (4/17)
+
+pkg/plot/doc/gdevices.hlp +
+pkg/plot/gdevices.par +
+pkg/plot/gdevices.x +
+pkg/plot/mkpkg
+pkg/plot/plot.cl
+pkg/plot/plot.hd
+pkg/plot/plot.men
+pkg/plot/x_plot.x
+ Added a new task GDEVICES to PLOT. This task will scan the active
+ graphcap database and print a table of the available devices in the
+ given class of devices (by default the stdimage devices), giving for
+ each device a list of the device aliases, the device resolution in
+ X and Y, and a short descriptive string if one was given in the
+ graphcap entry for the device. See the help file for examples. (4/18)
+
+sys/mwcs/imwcs.h
+sys/mwcs/iwctype.x
+sys/mwcs/iwsaxmap.x
+sys/mwcs/mwloadim.x
+sys/mwcs/mwsaveim.x
+ Various changes were made to fix the MWCS "dimension mismatch"
+ problem. This would happen during an image open (iw_saxmap) when
+ the dimension of the WCS was different than that of the image and
+ an image section was in use. The error was being detected in
+ mw_saxmap and was correct, i.e., the routine was being called
+ incorrectly by iw_saxmap, part of the image header interface code.
+
+ Evidently axis mapping was not fully implemented; it worked for
+ runtime read-only maps of an image, but failed when making a new
+ image which was a reduced-dimension section of another image
+ (e.g., imcopy dev$pix[*,10] pix1 would do it). The new image would
+ retain the original WCSDIM which would not match the physical image
+ dimension when the new image was later opened with a section and
+ a new axis map created.
+
+ The fix was to preserve the axis map in an mw_saveim/mw_loadim
+ operation, and in iw_setaxmap, merge the new axis map for the
+ reduced-dimension image into the axis map associated with the stored
+ MWCS. A new image header parameter WAXMAPnn was added to store the
+ axis map. iwsaxmap.x now reads the old axis map of dimension
+ MI_NDIM, and merges it with the axis map for the new image of
+ dimension IM_NPHYSDIM. (4/19)
+
+sys/mwcs/mwloadim.x
+sys/mwcs/mwopen.x
+ The axis map, even if unused, is initialized to the unitary
+ transformation when a new MWCS is created. (4/19)
+
+sys/mwcs/iwctype.x
+sys/mwcs/mwsaveim.x
+ The FITS CD matrix as used in MWCS was transposed relative to what
+ the draft FITS standard requires. Modified the iwctype.x code (input)
+ and mwsaveim.x (output) to swap the I,J axes in the CDi_j keyword,
+ in effect transposing the matrix as seen by MWCS. (4/19)
+
+sys/mwcs/iwewcs.x
+ Deleted the comma in "axis 1: axtype=ra, axis 2: axtype=dec" (in the
+ "ra,"). The attribute list syntax does not permit a comma in this
+ context and it is included in the axtype string value. (4/19)
+
+sys/mwcs/iwewcs.x
+ Modified the code which sets up the CD matrix in the case when no
+ CD matrix is given in the image header (in which case CDELT/CROTA2
+ is normally used instead) to use a double DO-loop to initialize the
+ CD matrix to the unitary matrix. The old code had two bugs: 1) the
+ full WCSDIM dimensioned CD matrix was not being initialized when
+ CDELT/CROTA2 were used instead of the CDi_j notation, and 2) mk_idmd
+ was being used to initialize IW_CD to the unitary matrix of dimension
+ ndim, but this was no good as IW_CD has a fixed dimension of MAX_DIM.
+ It is necessary to use an explicit DO-loop instead. (4/19)
+
+sys/mwcs/iwpstr.x
+ Added a statement "Memc[bigstr+nchars] = EOS" after the blank fill
+ loop - the string was not explicitly EOS terminated. (4/19)
+
+sys/mwcs/mwgwtermr.x
+ Changed the aclrr in the code used to initialize the CD matrix, to a
+ call to mw_mkidmr, which makes the identity matrix. Formerly a zero
+ matrix was being returned instead of the identity matrix. (4/19)
+
+sys/mwcs/mwmkidmr.x +
+sys/mwcs/mkpkg
+ Added a new routine mw_mkidmr, used to create an identity matrix of
+ type real. (4/19)
+
+pkg/images/imutil/imdelete.x
+ A portion of the image title string is now included in the "delete
+ image..." message when the verify option is enabled. (4/20)
+
+sys/gio/cursor/gtr.h
+ Increased the default max graphics frame buffer from 64K to 128K.
+ (4/20)
+
+unix/hlib/login.cl
+unix/hlib/zzsetenv.def
+ Added a commented out entry for "imtype" to the template login.cl.
+ Added values for imtype, cmbuflen, and min_lenuserarea to zzsetenv.def.
+ The values for imtype and cmbuflen are the same as the builtin
+ defaults. The value for min_lenuserarea is temporarily set to 20K,
+ until the real problem of image header truncation can be in the IMIO
+ code. (4/20)
+
+pkg/proto/proto.cl
+pkg/proto/proto.men
+pkg/proto/proto.hd
+pkg/proto/x_proto.x
+pkg/proto/mkpkg
+pkg/proto/wcsreset.par
+pkg/proto/t_wcsreset.x
+pkg/proto/doc/wcsreset.hlp
+ A new task wcsreset has been added to the proto package.
+ (4/21 LED)
+
+sys/gio/glabax/glbfind.x
+ GLABAX now uses a different, hopefully better algorithm for determining
+ the spacing of the minor ticks (formerly the tick spacing algorithm
+ used was the same as used for the major ticks). As before, NMINOR
+ is used as only a starting point for the automatic algorithm. It
+ is now possible however to disable the automatic algorithm by giving
+ a negative NMINOR, in which case exactly abs(nminor) ticks will be
+ drawn. (4/21)
+
+sys/fio/vfntrans.x
+ The code in the vfn_translate routine which recognizes subdirectories
+ was not sufficiently discriminating about "." and "..", and would
+ treat . prefixed files as subdirectories during translation. (4/21)
+
+sys/fio/fntgfn.x
+ Modified the file template code to check for a leading "." in the
+ pattern string and automatically enable listing of the hidden files
+ in a directory in this case. (4/21)
+
+pkg/proto/proto.cl
+pkg/proto/proto.men
+pkg/proto/proto.hd
+pkg/proto/x_proto.x
+pkg/proto/mkpkg
+pkg/proto/wcsedit.par
+pkg/proto/t_wcsedit.x
+pkg/proto/doc/wcsedit.hlp
+lib/scr/wcsedit.key
+ A new task wcsedit has been added to the proto package.
+ (4/22 LED)
+
+unix/os/zfiotx.c
+ In a normal raw mode read the terminal driver has interrupts
+ enabled, but catches any interrupt occuring during a read and maps
+ it into 003. This approach doesn't work for nonblocking raw mode
+ reads because since reads don't block, the driver spends only a
+ miniscule amount of time in the ZGETTX read code. This would cause
+ interrupts to abort a task doing nonblocking raw mode reads. The
+ fix was to have the driver put the terminal into true raw mode, with
+ signals disabled, when nonblocking raw mode is in effect. This
+ applies to suspend as well as interrupt. (4/22)
+
+sys/imfort/db/imputd.x
+sys/imfort/db/mkpkg
+ The double precision value could be truncated in some cases when
+ copying the formatted string into the 20 char value field. Modified
+ (like imio/db/imputd.x) to use a loop, decreasing the formatted
+ precision until the value fits. (4/22)
+
+--------------------------
+"Final" V2.10.0 beta generated. After this only minor bug fix type changes
+will be made.
+
+pkg/images/register.par
+pkg/images/geotran.par
+pkg/images/doc/register.hlp
+pkg/images/doc/geotran.hlp
+ Changed the default values of the parameters xscale and yscale in
+ the register and geotran tasks from INDEF to 1.0 (4/23 Davis)
+
+pkg/images/geometry/t_imtrans.x
+ Modified the imtranspose task to pick up the axis map and copy
+ it to the wcs of the output image. (4/23 Davis)
+
+pkg/images/geometry/t_blkavg.x
+pkg/images/geometry/t_blkrep.x
+ Modified the blkrep and blkavg tasks to set axbits explicitly in
+ the calls to mw_shift and mw_scale. Axbits set to 0, meaning
+ all axes, was producing a "singular matrix" error from mwcs.
+ (4/23 Davis)
+
+unix/os/zgtenv.c
+ A link of an IMFORT program using V2.10 IRAF, compiled on a 4.1.1
+ system, would fail with an
+
+ ld: Undefined symbol
+ _tolower
+
+ on a 4.0.3 system. This is actually the second time I have run
+ into this problem. It is caused by SunOS changing tolower from
+ a macro to a library routine in 4.1. The problem was avoided by
+ changing the iraf code to define a macro to_lower which is used
+ instead. (4/23)
+
+dev/imtoolrc
+dev/graphcap
+ Added new imt entries for Nigel's Solitaire formats. These are
+ named imt17|imtssy and imt18|imtssn for resolutions of 1008x648 and
+ 1024x680 respectively. Also added to gemini, ursa and orion. (4/23 MJF)
+
+pkg/images/geometry/t_imslice.x
+ Modified the imslice task to read the old and write a new axis map.
+ (4/23 LED)
+
+pkg/images/geometry/t_imstack.x
+ Modified the imstack task to read the old and write a new axis map.
+ (4/23 LED)
+
+pkg/cl/grammar.y
+ When scan from a pipe was used in a procedure script the scan would
+ not write into a parameter belonging to the procedure calling scan.
+ This was happening because except for the call by reference arguments,
+ scan is implemented as a CL task. The usual parameter search order
+ would apply, i.e., task (scan), package, cl, hence the parameters for
+ the task calling scan would not be seen. This could be gotten around
+ by referencing the parameters as task.pname, but this should not be
+ necessary. It was necessary to change the cl compiler to convert
+ names such as "param" to "task.param" when compiling scan statements
+ (scan as a task). This is only done if no task or package name is
+ given and the current task's pset includes the named parameter. (4/26)
+
+dev/hosts
+ Corrected the loden entry and updated the khaki entry (it's now
+ a sparc) for Rich Reed on tucana, gemini, and ursa. I had fixed
+ the loden entry previously (4/7). It must have been clobbered
+ somehow in the last three weeks. (4/27 RLS)
+
+dev/termcap
+dev/graphcap
+ Added contributed entries for the HP LaserJet III series printers.
+ These entries are known to work but given the variety of PostScript
+ cartridges available may need some adjusting. Included in 2.10
+ because the HP sgi translators are now distributed. (4/27 MJF)
+
+pkg/dataio/fits/fits_read.x
+ Modified rfits to use the tapecap fe parameter if present and
+ greater than 0 to skip to EOF. (4/27 LED)
+
+sys/mtio/mtio.h
+sys/mtio/mtcache.x
+sys/mtio/mtcache.com
+ The symptoms of the bug fixed here were as follows: when testing the
+ fixed block cartridge drive, mtexamine and rfits make+ would work fine,
+ but rfits make- would fail with a read error. The failure would only
+ occur the second time the task was run, on the tenth file, and only
+ when diagnostic output was enabled. The read error was occurring
+ because, for some reason, the read request being issued by IRAF was
+ not a multiple of the device block size for this fixed block device.
+
+ It took about 5 hours to track this one down as it took a while to
+ find a repeatable test case (I used LOGIPC), and the actual bug was
+ far removed from the read error seen during testing. What was
+ happening was that the 1) the read error was due to a read request
+ not a multiple of the device block size, 2) the bad read request
+ was due to a device open with no tapecap information (the driver
+ actually works in this case, using all the builtin defaults which
+ are correct for most variable block UNIX devices), 3) the lack of
+ tapecap information was due to an invalid string pointer passed to
+ the zopnmt routine at open time, 4) the bad pointer was due to the
+ real GTY pointer being clobbered by a bug in the mtcache code. The
+ entire MTIO descriptor was being cached, including the runtime fields
+ as well as the positional fields. When a cached entry was recalled
+ the GTY pointer stored in the descriptor would be overwritten. Since
+ the cache is updated in the first open following task invocation the
+ cached values for the runtime fields would normally be valid and no
+ error would be seen. (4/29)
+
+pkg/proto/doc/suntoiraf.hlp
+ Replaced the suntoiraf help pages with an updated one. (4/30 LED)
+
+unix/boot/spp/xc.c
+ If a library specified as -lname does not resolve to an iraf library
+ (i.e. it is a host library) the library will now be searched after the
+ iraf libraries are linked, rather than at the location of the -lname
+ in the link line. This allows searching of special host libraries
+ after the iraf externals have been generated and before the standard
+ Sun libraries libc, libm, etc. are searched. If the old behavior
+ is desired it can be achieved by using a reference of the form
+ libname.a in place of the -lname. (4/30)
+
+unix/shlib/mkshlib.csh
+ Modified to link against -lresolv, if such exists, when building the
+ iraf shared image. This allows the statically linked iraf executables
+ to use the name server. By default only SunOS executables which are
+ dynamically linked use the name server. The -lresolv code will fall
+ back on the /etc/hosts file if the name server does not respond, so
+ this should be safe. (4/30)
+
+dev/hosts
+ Added kingfisher (aliased as 'kingfishe') to hosts file on tucana,
+ orion, gemini and ursa. (4/30 MJF)
+
+unix/hlib/mkiraf.csh
+ Updated the terminal type prompt slightly. (4/30)
+
+unix/hlib/irafuser.csh
+ Disabled the -Bstatic option for linking the HSI executables. This
+ causes f68881_used undefined error messages from the linker on a
+ Sun-3 (but it is ok on a sparc). (4/30)
+
+dev/wpix.imh +
+ Added a second version of the test image dev$pix called dev$wpix.
+ This is dev$pix with a WCS in the image header. To save space, both
+ image headers point to the same pixel file. (4/30)
+
+unix/hlib/motd
+unix/hlib/login.cl
+unix/hlib/zzsetenv.def
+pkg/cl/cl.par
+ Changed IRAF version to V2.10EXPORT. (4/30)
+
+--------------------------
+Built initial V2.10EXPORT distribution files and began testing of same.
+V2.10EXPORT was installed from the network archive on ursa, orion, and
+several mountain nodes to check with problems having to do with how the
+distribution was built. (4/30)
+
+local/.login
+ 1. Commented out the "setenv TERM sun". This was getting pretty
+ annoying as I usually use an xterm. Better to let the login inherit
+ the terminal type.
+ 2. Added a set prompt statement for a "iraf@hostname% " type prompt.
+ 3. Made the "setenv iraf" a bit smarter. iraf is still set to a
+ constant value, but the file now checks to see if $iraf exists and
+ if not sets $iraf to `(cd ..;cwd)`/. The constant value is still
+ desirable to allow use of symbolic directory links.
+ (5/02)
+
+unix/os/zzstrt.c
+ Modified this routine to map the data and bss sections of the iraf
+ shared image with execute permission. There are cases where the Sun
+ compilers can generate executable code in the data segment. Old Sun
+ hardware does not implement hardware checking for execute
+ permission, but some of the new hardware does. This was causing a
+ routine (iraf networking using the name server library, which is
+ linked -pic) to fail on a new Sun multiprocessor system which would
+ execute fine on older hardware. (5/02)
+
+unix/bin.sparc/gterm.e
+unix/bin.sparc/imtool.e
+ Rebuilt these executables under SunOS 4.1.1. The versions built under
+ 4.1.2 would cause shared library version older than expected warning
+ messages when run on a 4.1.1 system. (5/02)
+
+ (It is not necessary to do this for the bin.mc68020 versions since
+ our Sun-3s are still all running 4.1.1).
+
+unix/hlib/install
+ 1. Smartened up the code used to guess the iraf root directory. It now
+ looks for /iraf/iraf before /iraf in the "pretty name" section (needed
+ to support symbolic links). When all done, it checks to see if the
+ directory actually exists and if not sets the value to (cd ../..;cwd)
+ instead, assuming install is being run from $iraf/unix/hlib. This
+ latter feature also has the effect of ignoring an incorrect value of
+ $iraf set before running the install script.
+ 2. Added a "set hlib = " to the "Set the BINDIRS" section. An old
+ value of hlib set when install was run would otherwise be inherited
+ ignoring the new value of $iraf set in the script. (5/02)
+
+sys/imfort/imflsh.x
+ The integer function bfflsh was being called as a subroutine with the
+ wrong number of arguments. (5/02)
+
+--------------------------
+Performed a sysgen to pick up the zzstrt.c change above, and rebuilt the
+distribution files. (5/02)
+
+unix/hlib/install
+ Added a $iraf relative definition of $host, since this is used in the
+ MODEFILES definition but is not defined in the script, hence would be
+ inherited from outside, possibly with the wrong value. (5/03)
+
+unix/os/zfioks.c
+ Fixed a minor bug in the new zfioks code. If client authorization
+ fails (as when one has different authorization codes in .irafhosts
+ files on different nodes) the driver is supposed to shutdown the
+ old in.irafksd daemon and start another one via rsh for the new
+ authorization code. This was failing as a status value was not being
+ cleared before doing the rsh. The rsh would succeed but then the
+ client would see a bad status and give up (unnecessarily), falling
+ back on a password prompt and rexec call to make the connection.
+ It was actually working due to the redundancy in the driver, but
+ due to the bug one would get the unnecessary password prompt for the
+ rexec. (5/04)
+
+dev/tapecap
+ Fixed a typo (wrong device entry) in the mtst1.qic-24 entry. (5/05)
+
+unix/os/zfmkdr.c
+ This routine was missed a while back when the UMASK support was
+ redone. (5/06)
+
+dev/tapecap
+ The entries for the QIC drives were modified to fix a problem where,
+ e.g., every other file on a tape would be read in an operation such
+ as rfits. Currently the :se capability is only enabled for the QIC
+ drive on ursa, since this appears to be needed only for the ST
+ driver bug seen on this system. The fb#2000 capability (which avoids
+ file skip operations which cause problems on the QIC drives due to
+ (I think) buffered data being lost) is more generic and harmless so
+ I moved that to the generic device entry. (5/07)
+
+sys/imio/iki/ikiopen.x
+sys/imio/iki/ikiinit.x
+sys/imio/iki/ikildd.x
+sys/imio/iki/iki.h
+ IKI was modified to add a flag word for each driver which can be
+ used to note IKI level characteristics of the different image kernels.
+ This was used to flag that the QPF driver cannot write to or create
+ QPOE images. In a new copy operation, iki_open will not automatically
+ preserve the image type if the read-only flag is set for the input
+ image type. Hence, in a new copy of a QPOE image, the type of the
+ new image will be controlled by the imtype environment variable rather
+ than trying to make a .qp image. For other images types a new-copy
+ operation will preserve the image type as before. Explicitly giving
+ the image extension for a new image always forces that type of image
+ to attempt to be created, whether it can be created by the image
+ kernel or not. (5/07)
+
+sys/imio/iki/stf/stfhextn.x
+ This bug was unrelated to the above change but was found during
+ testing (in fact it has been there for years). In v2.10, "imtype"
+ is set by default, with value "imh". In an imcopy operation such as
+
+ imcopy foo.hhh foo2
+
+ the output image preserves the image type of the input image,
+ i.e., an STF image is created. What was happening was that an STF
+ image was being created named "foo2.imh", since imtype was set to
+ "imh" and this is a legal STF image extension. I hacked stfhextn.x
+ to ignore imtype if set to "imh". (5/07)
+
+pkg/dataio/fits/fits_wheader.x
+pkg/dataio/fits/mkpkg
+ Modified the wfits file format message to include a "blkfac=xxx"
+ field. The xxx is the blocking factor for variable blocked devices,
+ and the string "fixed" for fixed block devices. (5/07)
+
+--------------------------
+Rebuilt distribution files. (5/07)
+
+dev/hosts
+ Added 'dynamo' to orion, gemini, and ursa. Primary name is
+ 'dynamo.kpno.noao.edu' since this is all it responds to, but made an
+ alias named 'dynamo'. Not added to Tucana while release being worked
+ on, I'll do it later. (5/8/92 MJF)
+
+dev/termcap
+ Made an entry for the machine in Pat Osmer's office, lw8, on gemini,
+ ursa, and orion. Added to Tucana by JB. (5/8/92 MJF)
+
+unix/os/zfiomt.c
+ 1. Changed the builtin defaults for the maximum and optimum record
+ sizes to 64512. This is a more conservative value, smaller than the
+ original defaults (maxrec was previously 65535), hence less likely
+ to cause a read error. The builtin defaults are overridden in most
+ tapecap entries but will be used in user-written tapecap entries
+ which do not set maxrec/optrec explicitly and are likely to rely
+ heavily on the builtin defaults. The value 64512 is the largest
+ multiple of 1024 less than 65536, and is the minphys value in SunOS.
+ On some devices a read request larger than this value cannot be
+ serviced and will result in an i/o error.
+
+ 2. The maxrec value set in tapecap was not being used for file
+ positioning where the driver searches for EOT by skipping a file
+ and reading a record to check for EOT (a read after a fsf which
+ returns zero signals EOT). On some devices the large read request
+ could cause the read operation to return an error.
+
+ 3. If a nonzero maxrec value is set, the driver now guarantees that
+ optrec will not be greater than maxrec (this was not necessary since
+ MTIO does this anyway, but it seems advisable to apply the constraint).
+ (5/28)
+
+pkg/images/tv/wcslab.par
+pkg/images/tv/wcslab/doc/wcslab.hlp
+ Changed the default value of the fill parameter from no to yes.
+ (LED 5/29)
+
+pkg/xtools/doc/inlfit.hlp
+ The xtools inlfit help was not hooked up due to a bug in the inlfit
+ help page. (LED 5/29)
+
+pkg/images/doc/imstat.hlp
+ Fixed a bug in the definition of variance in the imstatistics
+ task help page. (LED 5/29)
+
+sys/mtio/mtio.h
+ Changed the magtape lock file directory from uparm$ to tmp$. Storing
+ the lok (magtape position) files in uparm causes problems if the
+ user starts up two concurrent CLs with different uparms, and then
+ tries to command the same device from both CLs. Since they would have
+ different uparms they would have different copies of the lok file for
+ the device, and MTIO could get confused about the tape position.
+ Years ago, in the early days of MTIO the lok files were moved to
+ uparm to avoid multi-user problems (see below), but the multi-user
+ problem is tractable and less of a problem than the concurrent-CL
+ problem dealt with here. (5/29)
+
+pkg/system/x_system.x
+pkg/system/mkpkg
+pkg/system/system.cl
+pkg/system/mtclean.x +
+pkg/system/mtclean.par +
+sys/mtio/mkpkg
+sys/mtio/README
+sys/mtio/mtclean.x +
+ Added a new (hidden) system task called MTCLEAN. This is called at
+ CL startup time to delete old magtape lok files. Previously the
+ login.cl file would delete these files using "delete
+ uparm$mt*.lok". This approach is no longer discriminating enough
+ however, when the lok files are stored in tmp$ which is a public
+ directory. The MTCLEAN task is like "delete uparm$mt*.lok" except
+ that it leaves a lok file alone if it belongs to a different user
+ who currently has the drive allocated. If the lok file is for a
+ device which is not currently allocated it is unconditionally
+ deleted. If the lok file belongs to the current user it is deleted
+ only if it is "stale", i.e., older than a certain interval
+ (currently one hour, and a parameter default).
+
+ It is harmless to delete lok files in the sense that MTIO will
+ automatically recover (by rewinding the tape) if the lok file is
+ lost, so it is safest to err on the side of occasionally deleting a
+ lok file which is current. However, this will only happen if the
+ user has not allocated the drive and someone starts up a CL, or if
+ someone using an allocated drive starts up a second CL and the lok
+ file is older than the "stale" threshold. (5/29)
+
+unix/hlib/motd
+unix/hlib/login.cl
+pkg/cl/cl.par
+ Changed the login.cl version string to force a mkiraf to pick up
+ the "mtclean" addition. This was done by adding a "revision 1"
+ to the logver string. (5/29)
+
+pkg/obsolete/doc/imtitle.hlp
+pkg/obsolete/doc/mkhistogram.hlp
+pkg/obsolete/doc/radplt.hlp
+pkg/obsolete/doc/oimcombine.hlp
+ Added a "USE INSTEAD" section to the help pages for the obsolete
+ tasks. (5/29 LED)
+
+pkg/system/doc/rewind.hlp
+ Added some comments on the "initcache" parameter to the help page
+ for the REWIND task. (5/29)
+
+dev/tapecap
+ Added support for the HP DAT drive under the ApUNIX driver. (6/03)
+
+unix/hlib/clpackage.men
+ At Bob Hanisch's request changed "obsoleted tasks" to "obsolete
+ tasks" so that stickers for obsoleted grammar won't cringe when
+ reading this menu. (6/19)
+
+unix/hlib/login.cl
+ Several minor changes were made to the template login.cl over the
+ past couple of weeks.
+
+ 1. The "stty xterm" statement in if(envget("TERM")=="xterm") was
+ changed to "stty xterm nl=44". Since xterm does not have a screen
+ size sense query (like gterm) we can't set the screen size correctly,
+ but it is better to set a small wrong value than a large wrong value
+ like the termcap default of 65.
+ 2. Added an if(deftask("mtclean")) to prevent mtclean from being
+ called if it isn't defined, i.e., when running irafo=v2.9.
+ 3. Moved the cl<loginuser.cl to after the user package task
+ definitions, to allow the user to override these definitions in
+ their loginuser.cl file. (6/20)
+
+pkg/plot/t_pradprof.x
+ The new pradprof task was using the file name template expansion
+ routines instead of the image name template expansion routines
+ producing an error if the input image name was an image section.
+ (6/23/92, Davis)
+
+pkg/images/imutil/imcopy.x
+ Modified imcopy to write its verbose output to STDOUT instead of
+ STDERR. (6/24/92, LED)
+
+sys/mwcs/wfmspec.x
+ Fixed a logical error affecting computation of the inverse
+ transformation. This could cause DISPCOR (resampling to linear
+ coordinates) to fail in some cases. (6/24)
+
+dev/imtoolrc
+ Updated the comments section slightly. (6/24)
+
+sys/gty/README
+ Updated gtyopen entry. (7/3)
+
+doc/newsfile
+ Added the V2.10 revisions summary to the newsfile. (7/4)
+
+doc/v210revs.ms +
+ Archived the V2.10 revisions summary document source. (7/5)
+
+doc/suniraf.ms
+ Installed an updated version of the Sun/IRAF installation guide. (7/5)
+
+doc/sunsmg.ms
+ Installed an updated version of the Sun/IRAF site manager's guide.
+ (7/7)
+
+--------------------------------
+V2.10.0 (patch0) generated. (7/07)
+
+dev/hosts
+ Added a new machine, piscis, to hosts file. Also added on Gemini,
+ Ursa, and Orion. (7/9 MJF)
+
+local/login.cl
+ Updated to V2.10.0 revision 1. The SOS4 distribution (patch0 and
+ as.sos4) was updated to pick up this change. (7/09)
+
+unix/hlib/motd
+ Updated version to 2.10.1DEVELOP. (7/15)
+
+doc/suniraf.ms
+ Fixed a typo: "cat /path/nb.sos4.spc/[ib].*" (ib -> nb). (7/17)
+
+pkg/plot/t_implot.x
+ Changed an incorrect real array index to an int. (FV 7/21)
+
+unix/shlib/mkshlib.csh
+ Modified to not link the shared image with -lresolve on a 386i. (7/21)
+
+pkg/images/filters/t_gauss.x
+ An incorrect convolution kernel was being computed in the case
+ theta=90.0, 0. < ratio < 1.0, and bilinear=yes, because the sigma
+ argument were not being correctly entered into the routine which
+ computes the gaussian function in that case. (7/23 LED)
+
+pkg/math/nlfit/nlfit.gx
+pkg/math/nlfit/nliter.gx
+ Due to precision problems the nlfit code can go into an infinite
+ loop if convergence is slow and the tolerance is set low.
+ Added some checks to trap this condition (7/24 LED).
+
+dev/hosts
+ Added benhur (Ron Probst's Sun) to the hosts files on tucana, orion,
+ gemini, and ursa - this is not a new machine but it must have slipped
+ through the crack during the v2.10 upgrade. (7/24 jvb)
+
+--------------------------------
+IRAF V2.10.1 (patch-1) released. Tucana system version number incremented to
+V2.10.2 (7/24)
+
+lib/finfo.h
+ 1. This file contained a series of defines FI_[RW]OWNER etc. giving
+ the bit *number* (1, 2, 3, etc.) for the file permissions bitflags.
+ Bitflags are preferable and more conventional so I added a parallel
+ set of statements FF_[RW]OWNER, FF_[RW]GROUP, etc., defining the
+ bitflags.
+
+ 2. Two new file permissions flags FF_RDLOCK and FF_WRLOCK were added.
+ These are normally zero (as before) but can be set by the zfinfo
+ kernel routine to indicate that a temporary read or write lock is in
+ place on the file. (7/24)
+
+sys/fio/fwtacc.x
+ The routine had a number of problems. It was rewritten to use the
+ new FF_{RD|WR}LOCK flags returned by zfinfo to determine whether a
+ temporary lock is preventing access to a file. The "wait for
+ access" will occur only if "filewait" is enabled in the environment
+ and a temporary lock is in place on the file. This should fix the
+ bogus "waiting for access to file" messages we have been seeing
+ occasionally. (7/24)
+
+sys/gty/gtyopen.x
+sys/tty/ttyopen.x
+ The code which scans along looking for the `:' character when
+ expanding ":tc=device:" fields could run off the end of the string
+ if the : character was missing. Added checks for beginning of
+ string and EOS. (7/28)
+
+pkg/images/imfit/t_imsurfit.x
+ Fixed a bug in the section reading code. Imsurfit is supposed to switch
+ the order of the section delimiters in x and y if x2 < x1 or y2 < 1.
+ Unfortunately the y test in the code was if (y2 < x1) instead of
+ if (y2 < y1). Whether or not the code actually works correctly
+ depends on the value of x1 relative to x2. This bug was not present
+ in 2.9.1 but is present in subsequent releases. (7/30 LED)
+
+mkpkg
+noao/mkpkg
+ Added a means to set the spoolfile name to the "mkpkg summary"
+ function of the package root mkpkg file. One can now generate the
+ summary with a command such as
+
+ mkpkg summary spool=filename
+
+ to cause the sumary to be generated from file "filename". (8/03)
+
+sys/osb/ieee.gx
+sys/osb/ieeer.x
+sys/osb/ieeed.x
+unix/as.sparc/ieee.gx
+unix/as.sparc/ieeer.x
+unix/as.sparc/ieeed.x
+unix/as.mc68020/ieee.gx
+unix/as.mc68020/ieeer.x
+unix/as.mc68020/ieeed.x
+unix/as.i386/ieee.gx
+unix/as.i386/ieeer.x
+unix/as.i386/ieeed.x
+ 1. There was a (normally) harmless bug here in that the real and
+ double versions of the ieenan common had the same name, i.e. were
+ shared. There are now separate ieenanr, ieenand commons.
+
+ 2. The code which detects a NaN uses the technique of equivalencing
+ an integer array of length 1 (real) or 2 (double) to the floating
+ value so that a bitmask can be used to check for the NaN exponent
+ (here NaN actually means any non-finite IEEE value). On most systems
+ the exponent for a double will be in the first integer of the 2
+ element array, but on a 386i (Intel) the second longword is used.
+ The code was modified to parameterize this offset and flag it as
+ machine dependent. (8/15)
+
+unix/hlib/mkpkg.sf.I386
+ 1. Added entries for the i386 versions of ieeer.x, ieeed.x.
+ 2. Set up mwcs$wftan.x to be compiled with no optimization. The
+ optimized version of this routine returns a garbage value for the
+ declination (it calculates it correctly but the code which outputs
+ the value to the w[] output array is incorrect). (8/16)
+
+pkg/cl/pfiles.c
+ When pfileload is called to load the parmeters for a pset task the
+ parameter file name assigned to the pset can come from the pset
+ parameter of a running task which uses the pset. Hence, pfileload
+ scans the task descriptors on the task to see if any reference the
+ pset. The "newtask" pointer, set during task startup, was being
+ used to start the scan of the control stack containing the task
+ descriptors. This could fail in some circumstances as newtask is an
+ invalid pointer except when a new task is being initialized. (8/17)
+
+ This problem was an interesting case study in debugging techniques.
+ I at first tried to use dbx on this problem; this is normally
+ desirable with CL problems due to the lengthy procedures common in C
+ code. This was on the Sun 386i where the problem was seen. I had a
+ lot of trouble getting dbx on the 386i to use the source files, even
+ though the files were compiled -g. Eventually it became clear that
+ dbx will not permit source code debugging on the 386 if the iraf
+ shared image is used (there is no such problem on the other Suns).
+ Source code debugging would work if the process was linked -z. Of
+ course, then the problem went way. The 386i is very slow so by the
+ time I determined that I was wasting my time I had wasted 2 hours.
+ Looking at the problem with adb, I found the problem within 20
+ minutes.
+
+pkg/images/filters/mkpkg
+pkg/images/filters/t_fmedian.x
+pkg/images/filters/fmedian.x
+pkg/images/filters/fmd_buf.x
+pkg/images/filters/fmd_maxmin.x
+ The fmedian task could crash with a segmentation violation if image
+ pixel to integer mapping was turned off (hmin = zmin and hmax = zmax)
+ and the input image contained data outside the range defined by zmin
+ and zmax. Added calls to amink and amaxk for integer images and a
+ call to amapr for floating point data to protect against out of bounds
+ data. (8/18/92, Davis)
+
+sys/imio/iki/qpf/qpfwattr.x
+ Modified to return INDEF as the value of the integral over an
+ attribute range list, if no range list is defined or either or both
+ ends of the range are open. (8/18)
+
+sys/mwcs/mwsaveim.x
+ The expression "if (ndim == 1 || (ndim == 2 && ...))" was incorrect
+ as the ndim==2 case contained references to CD matrix elements that
+ might not contain valid floating point values in the case of a 1 dim
+ wcs. (8/18)
+
+pkg/images/imutil/imcopy.x
+ Added a call to flush after the verbose status output so the the
+ output will appear immediately on the terminal. (8/19 LED)
+
+unix/os/zxwhen.c
+ Added some #ifdef i386 code to reenable the floating point exceptions
+ following such an exception. On the other Sun systems this is
+ automatic, but on the 386i it has to be done explicitly. (8/20)
+
+ Note 8/21 - the above fix works fine under the debugger, but there
+ are still problems trapping repeated floating exceptions when a
+ 386i process executes normally. There are no such problems on any
+ of the other Suns (the interface is the same) so this tends to
+ indicate a problem with the 386i.
+
+dev/termcap
+dev/graphcap
+ Added entries for Kermit terminal emulator supplied by Pat Seitzer.
+ The termcap entry is for MS Kermit 3.0 in VT320 mode; graphcap for
+ Kermit3.10 and CGA or VGA display. (8/20 ShJ)
+
+unix/os/zfiomt.c
+ 1. The "ue" option (update-eot, or force search for EOT) was not
+ working correctly - it had never been used until recently.
+ 2. The "ow" option (overwrite EOF) was tested and optimized. (8/20)
+
+sys/fmtio/dtcscl.x
+ This routine scales a double floating value to determine its mantissa
+ and exponent when printing the number. For numbers smaller than .1
+ this is done as follows:
+
+ while (v < 0.1d0) {
+ v = v * 10.0d0
+ e = e - 1
+
+ The problem with this seemingly simple piece of code is that if V is
+ an IEEE subnormal value and IEEE underflow-to-zero is enabled, any
+ arithmetic operation on V will return a zero. Hence, even though
+ V is nonzero to start with, V * 10 returns zero. If V underflows to
+ zero the code segment above will enter an infinite loop. To fix
+ this a test for v==0 was added to the loop to check for underflow.
+
+ On machines which have good hardware support for IEEE floating
+ computations involving subnormals the best thing to do is to NOT
+ underflow to zero, but rather to retain the subnormal values. This
+ increases the precision of floating point computations in small
+ number arithmetic. On some systems however, underflow (or inexact)
+ requires a trap and recomputation in a trap handler to produce the
+ correct IEEE result, and this can be very inefficient.
+
+ As an example, In the case of Sun/IRAF we currently have underflow
+ to zero enabled due to the expense of recomputation for the ffpa and
+ some early sparc systems. Suns with these processors will silently
+ underflow to zero. Some other Sun systems do not employ
+ recomputation of subnormals and these systems ignore the request to
+ underflow to zero, returning a valid IEEE subnormal instead. This
+ includes the 386i and some sparc based systems (different sparc
+ systems have different floating point units). Hence, the behavior
+ of systems even within the Sun product line will vary in the way
+ subnormals are treated.
+
+ (A subnormal is a number smaller than about 1.175e-38 for real and
+ 2.225e-308 for double). (8/21)
+
+sys/gio/fpnormd.x
+sys/gio/fpnormr.x
+ These routines (called by fp_equal[rd]) scale floating point numbers
+ in a way similar to dtcscl.x, above. In principle they could be
+ subject to the same problem with underflow to zero and infinite loops,
+ so I added a check for underflow to these routines as well. (8/21)
+
+unix/os/zfioks.c
+ 1. Fixed a byte swap bug in the server side code that was preventing
+ it from constructing the network address properly to call back the
+ client. This affected only the "little-endian" machines, such as
+ the decstation and 386i.
+ 2. Changed the default value of MAXCONN from 0 to 1, since that is
+ probably what it should be anyway (I think I got the 0 out of someone
+ else's code). (8/21)
+
+unix/os/tape.c
+ Will now increment the file number at close time after writing a
+ file to tape. (8/21)
+
+dev/hosts
+ Added kale (Bruce Bohannan's d/t Sun) to the hosts files on gemini,
+ ursa, orion, and tucana. (9/3 jb)
+
+unix/os/tape.c
+ 1. Increased the maximum i/o buffer size to 262144 and changed the
+ default read request size to 64512.
+ 2. Added a "seek" command, for testing i/o to devices that respond
+ to a seek request. "seek" to report the current offset, seek nnn[bkm]"
+ to seek to the given block, kilobyte offset, or megabyte offset.
+ The block size is whatever was used in the last read request, or
+ 64512 at program entry. (9/07)
+
+sys/osb/zzeps2.f
+ Added an alternate version of the machine epsilon computation program
+ which may avoid problems seen on some systems with excess precision
+ due to the epsilon value being accumulated in a register. (9/10)
+
+sys/imio/imaccess.x
+ Was failing to strip off the ksection before calling iki_access.
+ Modified to treat a ksection similarly to an image section, i.e.,
+ immap is called to test for the existence of the object specified
+ by the full notation, if a section or ksection is given. (9/11)
+
+doc/unixsmg.ms
+ Installed a new version of the UNIX/IRAF Site Manager's Guide, newly
+ updated for V2.10. (9/13)
+
+doc/irixiraf.ms +
+doc/dsuxiraf.ms +
+doc/vxuxiraf.ms +
+ Installed new SGI IRIX, Decstation Ultrix, and VAX Ultrix
+ Installation Guides. (9/14)
+
+dev/hosts
+ Updated the lapis entry on gemini, ursa, orion, and tucana. (9/14 RLS)
+
+unix/as.vax/ieeer.s
+unix/as.vax/ieeed.s
+ Updated to the V2.10 versions. (9/21)
+
+unix/as.rs6000 +
+ Added the rs/6000 version of this directory. (9/21)
+
+unix/os/zgtime.c
+ The expression that converts the cpu time from clock ticks to msec
+ could result in integer overflow for very large numbers. Restructured
+ the code to avoid this problem, while preserving the maximum precision
+ for small numbers. (9/22)
+
+unix/hlib/libc/knames.h
+ Added a #define for zzstmt. This should be there, but though missing
+ did not cause a problem as no C code currently uses ZZSTMT. (9/22)
+
+mkpkg
+ Merged in changes for DSUX, AIX3. (9/23)
+
+lib/plio.h
+ The definitions for I_DATA and I_OPCODEMASK were modified to coerce
+ the macro argument to int, to avoid a short/int type clash when the
+ macro is called with a short integer argument. (9/23)
+
+noao/lib/mkpkg.inc
+noao/lib/mkpkg.sf.DSUX -
+noao/lib/mkpkg.sf.DDEC +
+noao/lib/mkpkg.sf.DMIP +
+noao/lib/mkpkg.sf.AIX3 +
+ Merged in mkpkg support for DSUX and AIX3. (9/23)
+
+pkg/images/tv/display/iisofm.x
+ Added the int in "y[i] = max (int(y[i])," to fix a short/int type
+ clash. (9/23)
+
+pkg/images/tv/iis/ids/idsinit.x
+pkg/images/tv/iis/iism70/iissplit.x
+pkg/plot/t_gkidir.x
+ More fixes for short/int type clashes. (9/23)
+
+sys/gio/gki/gkiclose.x
+ In "call zcall2 (epa, Mems[gki+GKI_CLOSEWS_D-1], n)", the gki pointer
+ was missing. (9/23)
+
+sys/gio/ncarutil/autograph/agdash.f
+sys/gio/ncarutil/autograph/agdflt.f
+sys/gio/ncarutil/autograph/aglbls.f
+sys/gio/ncarutil/autograph/agsetp.f
+ Several declarations of the form CHARACTER*504 in these files were
+ changed to CHARACTER*500. The Fortran compiler on AIX does not allow
+ character variables longer than 500. IRAF does not use any of the
+ NCAR autograph code anyway. (9/23)
+
+sys/imio/imsetr.x
+ In the two statements
+
+ IM_PLFLAGS(im) = or (IM_PLFLAGS(im), PL_RLIO)
+ IM_PLFLAGS(im) = and (IM_PLFLAGS(im), not(PL_RLIO))
+
+ the second "(im)" was missing. (9/23)
+
+sys/mwcs/mwtransd.x
+ Changed the expression "* -ltv_1[i]" to "* (-ltv_1[i])". The AIX
+ compiler did not like this expression. (9/23)
+
+sys/plio/pllrop.x
+sys/plio/pllsten.x
+sys/plio/plp2l.gx
+sys/plio/plr2l.gx
+ Same thing, placed parens around the -dv in "M_DH + -dv". (9/23)
+
+sys/plio/plp2l.gx
+sys/plio/plr2l.gx
+ Had to add an int to "and (int(pv), I_DATAMAX)" to avoid a short/int
+ type clash. (9/23)
+
+sys/plio/plrrop.gx
+ Added an "int" to fix three cases of short/int type clash. (9/23)
+
+sys/qpoe/qpiomkidx.x
+ Added an int to fix a short/int type clash. (9/23)
+
+sys/vops/fftx.f
+ This routine contained a declaration "x(2), y(2)" where the arrays
+ X,Y are of arbitrary length. Later on in the code the third and
+ fourth elements of each array were referenced and this caused a
+ compiler message about an incorrect constant array subscript.
+ Changed the declaration to "x(*), y(*)". (9/23)
+
+unix/gdev/iism75/zrdm75.x
+ Added an int to fix a short/int type clash. (9/23)
+
+unix/hlib/libc/kernel.h
+unix/os/zgtime.c
+ Changed the #define name "HZ" to "CLKFREQ" to reduce the probability
+ of a name clash, as happened on the RS/6000. (9/23)
+
+math/bevington/legfit.f
+ This file, unmodified since 1985, had the character ^? at the end of
+ line 77, which is a comment line. Evidently most compilers ignore
+ comment lines, but the VMS-5 Fortran compiler didn't like this one.
+ (9/24)
+
+sys/osb/strupk.c
+ This routine was calling the C strlen(), which was an inadvertent
+ interface violation (VOS code bypassing the kernel and using host
+ facilities. This caused a link failure on VMS/IRAF, after the
+ str routines in the VMS/IRAF kernel were renamed to avoid name
+ collisions with host library routines (hence strlen was no longer
+ in libos.a). The routine was rewritten to use a for loop instead
+ of strlen. (9/24)
+
+dev/hosts
+ Added a stis1 entry on gemini,ursa & tucana for Rich Reed. (10/1 RLS)
+
+pkg/images/imarith/t_imcombine.x
+pkg/images/imarith/icaclip.gx
+pkg/images/imarith/iccclip.gx
+pkg/images/imarith/icgrow.gx
+pkg/images/imarith/iclog.x
+pkg/images/imarith/icombine.com
+pkg/images/imarith/icombine.gx
+pkg/images/imarith/icombine.h
+pkg/images/imarith/icpclip.gx
+pkg/images/imarith/icscale.x
+pkg/images/imarith/icsclip.gx
+pkg/images/imarith/icsetout.x
+pkg/images/imcombine.par
+pkg/images/doc/combine.hlp
+ The weighting was changed from using the square root of the exposure
+ time or image statistics to using the values directly. This
+ corresponds to variance weighting. Other options for specifying the
+ scaling and weighting factors were added; namely from a file or from
+ a different image header keyword. The \fInkeep\fR parameter was
+ added to allow controlling the maximum number of pixels to be
+ rejected by the clipping algorithms. The \fIsnoise\fR parameter was
+ added to include a sensitivity or scale noise component to the noise
+ model. Errors will now delete the output image. (9/30/92, Valdes)
+
+unix/hlib/extern.pkg
+ On Gemini, added definitions for the ccdacq package as mounted
+ from Ursa. (10/5 RLS)
+
+dev/hosts
+ Modified a number of these hosts files on different CCS Suns and
+ IRAF development systems to establish and check IRAF networking
+ to/from felis. (10/5 jb)
+
+unix/os/zfioks.c
+ A new connect protocol has been added to iraf networking called
+ rexec-callback. This is a variation on the rexec protocol. Rexec
+ is used to start up the remote kernel server as before, but instead
+ of communicating via the rexec stdio stream to the remote process,
+ the server calls the client back on a private socket set up by the
+ client. This ensures a direct socket connection, which is not
+ always guaranteed when using the rexec stdio streams. For example
+ when using rexec to start up a kernel server on a VMS host running
+ Multinet, the stdio streams are routed through a VMS mailbox on the
+ VMS side. This fails due to lost data resulting from the mailbox
+ being too small, and would be inefficient even if it worked.
+
+ The rexec-callback connect protocol is enabled in the .irafhosts file
+ entry for a node (since this is where protocol selection currently
+ occurs for rexec vs. rsh). To enable the rexec-callback protocol,
+ one adds the string "rexec-callback" after the password field for a
+ node, e.g.,
+
+ robur : <username> <password> rexec-callback
+
+ A number of related changes were made to the VMS/IRAF networking
+ driver, which is new for V2.10. These are documented in the VMS/IRAF
+ upgrade notes file. (10/06)
+
+ [NOTE - the way the rexec-connect protocol is enabled was changed;
+ see the entry for zfioks below. 10/11]
+
+sys/mtio/mtlocknam.x
+ The magtape lock file name is now constructed as "node!tmp$mtxx.lok"
+ rather than "tmp$mtxx_node.lok", causing the lock file to be
+ maintained on the same node as the drive itself. (10/07)
+
+sys/ki/kienvreset.x
+ This routine is called to propagate runtime changes of environment
+ variables to remote iraf kernel servers. It was passing all
+ variables, but was modified to filter out redefinitions of the
+ host-specific variables "iraf", "host", and "tmp". This is necessary
+ as these variables may have different values on different hosts.
+ It is also needed to be consistent with kiopenks.x. (10/07)
+
+unix/boot/bootlib/tape.c
+unix/boot/rtar/rtar.hlp
+unix/boot/wtar/wtar.hlp
+ Replaced RTAR and WTAR by new versions updated for V2.10 magtape
+ i/o. The old versions read the dev$devices file to map iraf device
+ names like "mta" to the corresponding host device names. In V2.10
+ the tapecap file replaces the devices file, and the tapecap file
+ format is too complex to be worth parsing in a HSI utility, so in
+ V2.10 host magtape device names such as "/dev/nrmt8", "MSA0" etc.
+ must be used with RTAR and WTAR. The VMS/IRAF versions of these
+ utilities now restore file dates properly, provided the VMS logical
+ name IRAFGMTOFF is defined correctly (see the VMS notes file for the
+ details). (10/10)
+
+sys/ki/ki.h
+sys/ki/kiconnect.x
+ The dev$hosts file now supports two types of host entries, "connect"
+ entries and "route" entries. A connect entry is what we have always
+ had, e.g.
+
+ ursa u : ursa!/iraf/iraf/bin.sparc/irafks.e
+
+ A route entry is an entry such as that for node "draco" below:
+
+ robur : robur!irafks
+ draco : @robur!draco
+
+ another use is for logical node names, e.g.,
+
+ lpnode : @ursa
+
+ A route entry is denoted by the character `@' as the first character
+ in the server command field. In a reference to a network object
+ such as "node!foo", if node is defined as "@bar", the string "node"
+ is replaced by "bar", i.e., by whatever follows the @, after which
+ the network object name is rescanned. For example, given the
+ definitions for node robur and draco above, "draco!foo" and
+ "robur!draco!foo" are equivalent references. IRAF networking will
+ automatically map the former reference to the latter internally.
+
+ This facility provides a simple static routing capability for IRAF
+ networking, allowing connects to specific nodes to be routed through
+ another node. This can be used, for example, to use a certain node
+ as a gateway between different types of networks, such as tcp/ip and
+ decnet. (10/11)
+
+unix/os/zfioks.c
+ A number of features were added to the unix/iraf network driver.
+
+ o The connect protocol may now be specified in the hosts
+ file entry for a node. For example,
+
+ robur : -rcb robur!irafks
+
+ causes the rexec-callback connect protocol to be used to
+ connect to node robur. The possible protocols are -rsh
+ (rsh), -rex (rexec) and -rcb (rexec-callback), with the
+ default being -rsh. (The "irafks" in the above example
+ is a VMS symbol defined in the VMS/IRAF irafuser.com file,
+ used to start the kernel server on a VMS node).
+
+ o A new argument "-log <file>" is now supported on the irafks
+ command line. Since the irafks command line is taken from
+ the dev$hosts file in a normal client connect, the hosts
+ file can be edited to turn on zfioks level debug logging.
+ For example,
+
+ tucana t : -log ks.out tucana!/usr/iraf/bin.sparc/...
+
+ Any file can be specified, for example /dev/tty. If the
+ -log argument is given before the node!cmd as in the example
+ above, logging is enabled on the local node. If the -log
+ argument follows the node!cmd, it is processed by the kernel
+ server on the remote node and enables logging on that node.
+
+ This is related to irafks level logging. irafks level
+ logging is a feature that irafks has supported for some
+ time. It is enabled by including "-d <file>" on the irafks
+ command line.
+
+ o The networking daemon for the in.irafksd daemon may now be
+ started manually (normally it is started via a rsh command
+ from a client during a rsh connect). For example,
+
+ irafks.e in.irafksd <port> <auth> [timeout]
+
+ would start the daemon on the specified port. Clients would
+ have to specify the given auth code to connect to the port.
+ The daemon executes with the UID of the calling process.
+ Care should be taken to avoid security problems, e.g., this
+ should be used only with "safe" accounts. Currently,
+ commands such as sps, ps, etc. will show the full command
+ line including the auth code so there is little security.
+
+ When the daemon is started in this way the irafks.e will
+ exit immediately, leaving the daemon running as a forked
+ process. The daemon runs forever until killed, unless a
+ timeout is specified.
+
+ o Arguments such as "rexec-callback" are no longer supported
+ in the .irafhoss file. Instead, this scheme has been
+ generalized to permit any network parameter to be overridden
+ for a particular node in the user's .iraf hosts file.
+ The parameters that can be set are "port", "auth", "hiport",
+ "timeout", and "protocol". These are all numeric parameters
+ except "protocol" which should be specified as "rsh", "rex",
+ or "rcb". For example,
+
+ corvus : none none port=20000 auth=12345
+
+ would cause connects to node corvus to be directed to
+ socket 20000 using the auth code 12345. The login name
+ and password are not used when connecting to a running
+ daemon, so they are given as "none" in the example.
+
+ These changes should be backwards compatible with the V2.10.1
+ version of IRAF networking.
+
+ In case it isn't obvious, the above changes combined with the
+ enhancements to VMS/IRAF networking support (tcp/ip servers, runtime
+ selection of either tcp/ip or decnet transport) allow connections to
+ be made transparently to any VMS node running decnet, using a node
+ running both tcp/ip and decnet (e.g. a VMS node running Multinet) as
+ a gateway between SPAN and the Internet. For example, "type
+ draco!login.com", where draco is a decnet node, given the hosts file
+ configuration showed in the examples, would result in 1) "draco"
+ being replaced by "robur!draco" causing the reference to be routed
+ to node robur via rexec-connect, 2) robur passes the request to node
+ draco via decnet. This requires a .irafhosts file on the gateway
+ node (robur) since there is no way to respond to a password prompt
+ from a kernel server running as a network process on a remote node.
+ (10/11)
+
+unix/os/zmain.c
+ Problems were encountered passing irafks commands such as -log or
+ -rcmd to the irafks task when called as a standalone host process.
+ This was because the IRAF zmain for unix/iraf was intercepting all
+ `-' prefixed command arguments. The zmain was changed to filter out
+ only those arguments it uses, e.g., -c, -C, -d <file>, and -w. For
+ completeness a new flag -h (host process) was added. This is the
+ same as calling the process with no arguments, i.e., it is the
+ default. Unknown flags will no longer cause a usage message to be
+ printed, instead they are just passed on to the iraf task. (10/11)
+
+pkg/cl/builtin.c
+ The internal name clscan(), used to implement the CL scan() function,
+ was changed to clscans() to avoid a name clash with the FMTIO routine
+ clscan. This only happens on systems where Fortran and C externals
+ share the same name space, and shared libraries are used. (10/12)
+
+pkg/system/references.cl
+ Changed a couple of "uniq"s to "unique", which is the full name of
+ the LISTS task used in the script. (10/12)
+
+pkg/cl/grammar.y
+ The CL grammar was changed to give a higher precedence to the
+ exponentiation operator than to unary minus. The former precedence
+ was inconsistent with the Fortran expression syntax that the CL
+ is supposed to emulate. (10/12)
+
+sys/ki/kbzstt.x
+ This routine was calling zsttks (the status routine for the networking
+ driver) with a fixed channel code of zero. This worked up until now
+ as most iraf network drivers ignore the channel code in zsttks, but
+ this is not the case with the new VMS/IRAF driver. (10/13)
+
+dev/graphcap
+ Added entries for em4010vg (em4010 for VGA) and vwsregis (regis
+ emulator for VWS 3.3 and later). (10/14)
+
+sys/gio/fpequalr.x
+sys/gio/fpequald.x
+ These routines could fail when comparing small numbers to zero.
+ For example, fp_equalr (1.0e-10, 0.0) would return false even though
+ the numbers are equivalent to within the machine epsilon. This is
+ incorrect given the definition of fp_equal, even though the numbers
+ are in fact not equal. The routine would fail because zero is a
+ special case: it cannot be normalized with fp_norm. It was necessary
+ to add code to handle the special case of either input operand being
+ exactly zero. (10/18)
+
+unix/os/zfiomt.c
+ 1. Two new device capability switches were added. ":ce" means
+ ignore the status of the close() system call when closing a device
+ opened read-only. ":eo", used only in the VMS version of the
+ driver, disables writing of the double tape mark at EOT when a tape
+ opened for writing is closed.
+
+ 2. The ":nf" parameter was modified to allow an integer value to be
+ given. Without a parameter, ":nf" means rewind and space forward
+ to backspace files on a tape, e.g., because this is faster than BSF.
+ An entry such as ":nf#5" means do a BSF if the file is 5 files or
+ less back, but if more files must be skipped do a rewind and space
+ forward. This parameter is intended mainly to help optimize file
+ seeks on slow devices like cartridge tapes.
+
+ 3. The ":fc" parameter (device does a FSF on CLRO [close read-only])
+ was put in when the driver was written to accomodate some SysV systems
+ but had never been tested. As it turns out, AIX is such a system and
+ it was necessary to make minor changes. In particular, the OS does
+ not always do a FSF - it only does this when the file is partly read.
+ If EOF has been reached on the file (hence the tape is positioned to
+ the first record of the next file) then the FSF is skipped.
+
+ 4. I added a couple of zmtdbg calls during multifile skips to cause
+ the file number to be updated more frequently, when using the status
+ output feature. (10/18)
+
+pkg/proto/t_imcntr.x
+ Modified the imcntr task to use image templates and to check for
+ constant data. (10/27/92 LED)
+
+dev/termcap
+dev/graphcap
+ Added "lwg", an HP IIIp LaserJet on Canopus, to these files on Ursa
+ and Gemini at Frank Bull's request. (10/27/92 MJF)
+
+dev/termcap
+dev/graphcap
+ Added entries for xgterm. (10/27)
+
+sys/libc/cenvget.c
+ Changed envgets() to use ENVFIND rather than ENVGETS, so that the
+ routine will detect the environment variable not found condition
+ and return NULL in that case. (10/27)
+
+sys/gio/gks/gschup.x
+ Changed the character up vector to be calculated as the nearest integer
+ instead of just being truncated to an integer. (ShJ 10/29/92)
+
+dev/hosts
+ Added BigX to the hosts files on tucana, BigX, ursa, gemini, and
+ orion to establish IRAF networking for our new server. (11/12 jb)
+
+dev/hosts
+ Added claret to the hosts files on tucana. (11/13 RLS)
+
+sys/symtab/stalloc.x
+sys/symtab/stsqueeze.x
+sys/symtab/stpstr.x
+sys/symtab/symtab.h
+ The symtab package could fail with an "out of memory" error during
+ symbol table or string buffer reallocation in applications which
+ call stsqueeze to free unused storage (as when doing an stsave to
+ save to a file). This was caused by the buffer increment being
+ increased by a factor of two during overflow, combined with stsqueeze
+ returning the unused space. Two changes were made, either of which
+ will avoid the problem: 1) stsqueeze now reinitializes the buffer
+ increment when the buffer length is reset, and 2) the buffer increment
+ is now allowed to grow larger than a fixed value (32K) defined in
+ symtab.h. (11/16)
+
+sys/qpoe/qpmacro.x
+ 1. The code which scans a file and decodes macros was using a large, but
+ fixed size, string buffer to store the macro value. This was
+ overflowing when extremely large time filters were stored in QPDEFS
+ as macros. The routine was rewritten to use a dynamically reallocated
+ buffer.
+ 2. The variables nodeffilt and nodefmask, which are false by default,
+ could only be set true since the "set nodeffilt" type statement does
+ not have a value and there is no unset. For the moment, this was
+ fixed as a special case by initializing the values of these parameters
+ to the default before scanning the QPOE macro file. (11/17)
+
+sys/qpoe/zzdebug.x
+ In the expand debug routine, used to test macro expansion, increased
+ the size of the output buffer to 128k to accomodate extremely large
+ macros. (11/17)
+
+sys/qpoe/qpioparse.x
+ A bug which would cause "filter=..." terms in expressions to be
+ discarded was fixed. (11/17)
+
+sys/qpoe/README
+ Added optbufsize to the list of QPDEFS parameters. (11/17)
+
+sys/mwcs/imwcs.h
+ Increased the size of the string buffer used in the FITS read code
+ from 20480 chars to 102400 chars. This fixed size buffer is not
+ (easily) reallocatable because the card descriptors use pointers to
+ point to the FITS card data in the buffer. The buffer is only
+ allocated while a header is being read so the size isn't really an
+ issue. (11/17)
+
+sys/mwcs/mwsctran.x
+ The internal variable pdim, the dimensionality of the linear portion
+ of the transform, used to size the vector and matrix buffers for the
+ linear algebra, was not being computed correctly. This could cause
+ problems when the dimension of a WCS in the transform was less than
+ the dimension of the full MWCS system. The problem was a typo in the
+ statement
+
+ pdim = min (WCS_NDIM(w1), WCS_NDIM(w1))
+
+ the second w1 was changed to w2. (11/17)
+
+unix/os/zfioks.c
+ Fixed a typo affecting stderr debug out to /dev/console. (11/18)
+
+------------------------
+Patch 2.10.2 built; tucana irafx version incremented to v2.10.3. (11/18)
+
+pkg/cl/scan.c
+ Removed several calls to "makelower". These were forcing parameter
+ name operands to lower case. (11/20)
+
+sys/imio/iki/qpf/qpfwfilter.x
+ The QPF interface uses a sequence of QPFILTxx cards to record in the
+ image header the QPOE filter used to generate an image. To avoid
+ overfilling the header, excessively long filter strings are truncated.
+ The truncation limit was increased from 1024 chars to 4096, increasing
+ the number of output cards from a maximum of 16 to 64. In addition,
+ if truncation occurs the string "..." is now written to the end of the
+ last card to indicate that the filter string has been truncated. (11/20)
+
+sys/mwcs/wfmspec.x
+ Installed a new version of the multispec function driver. (11/20)
+
+mkpkg
+ Added an entry for the f2c architecture. (11/21)
+
+dev/devices -
+dev/hostlogin -
+ Deleted these obsolete files, no longer used. (11/21)
+
+unix/os/zopdpr.c
+ Added #ifdef SYSV support. (11/21)
+
+unix/boot/mkpkg/sflist.c
+ A call to strcpy had an extra argument. (11/21)
+
+unix/boot/spp/rpp/rpprat/gtok.r
+unix/boot/spp/rpp/rppfor/gtok.f
+ Due to some commented out code, the external variable index was not
+ used and was causing a warning message. (11/21)
+
+sys/mwcs/iwrfits.x
+ Added a call to idb_close, to return the descriptor allocated by
+ idb_open. (11/23)
+
+unix/hlib/login.cl
+ Added lprm to the unix foreign task definitions. (11/24)
+
+dev/hosts
+ Fixed the pathname to irafks.e for cephus (11/27 MJF)
+
+dev/hosts
+ Updated pathname to irafks.e for pegasus on tucana, ursa, gemini,
+ and bigx. (11/30 jb)
+
+iraf/doc/aixiraf.ms +
+ Installed the IBM AIX/IRAF installation guide. (11/30)
+
+pkg/plot/crtpict/calchgms.x
+ Fixed an argument type mismatch (int->short) in a call to amaps on
+ line 158. This was causing a floating divide by zero in the
+ case of a user supplied lookup table when calculating the transformed
+ histogram. (12/05 ShJ)
+
+pkg/cl/unop.c
+ On some systems (sparc) CL expressions such as -(big-floating) would
+ abort with a floating operand error. This was the result of integer
+ overflow occuring when the floating value was assigned to an int.
+ The CL was checking for this case, but would fail for negative
+ values. (12/10)
+
+unix/boot/wtar/wtar.hlp
+ Updated a couple of paragraphs to document the recent changes to
+ the utility. (12/23)
+
+dev/termcap
+dev/graphcap
+ Added entries for Kermit terminal emulator supplied by Pat Seitzer.
+ The termcap entry is for MS Kermit 3.0 in VT320 mode; graphcap for
+ Kermit3.12 and CGA or VGA display. (1/7 MJF)
+
+unix/boot/bootlib/tape.c
+ Replaced a call to ACLRB by functionally equivalent C code. The ACLRB
+ works under normal circumstances, but fails in a NOVOS bootstrap.
+ (1/08 1992)
+
+sys/imio/db/imgnfn.x
+pkg/images/doc/hedit.hlp
+ The header keyword template package had a builtin limit of 128 on the
+ maximum number of keywords matching a pattern (e.g. *). This builtin
+ limit was increased to 1024. (1/11)
+
+dev/hosts
+ Added Dick Joyce's machine "charfman" to the file on Gemini
+ (i.e., where Dick's IRAF comes from - networking was totally
+ down). (1/13 RLS)
+
+./math/iminterp/arbpix.x
+./math/interp/arbpix.x
+./noao/astutil/t_setairmass.x
+./noao/digiphot/photcal/evaluate/phprint.x
+./noao/mtlocal/cyber/cykeywords.x
+./noao/mtlocal/cyber/t_ridsfile.x
+./noao/onedspec/ecidentify/ecline.x
+./noao/onedspec/irsiids/t_bswitch.x
+./noao/onedspec/irsiids/t_flatdiv.x
+./noao/onedspec/irsiids/t_flatfit.x
+./noao/onedspec/irsiids/t_sums.x
+./noao/twodspec/apextract/peaks.x
+./noao/twodspec/multispec/fitclean.x
+./noao/twodspec/multispec/fitsmooth.x
+./noao/twodspec/multispec/intgauss5.x
+./noao/twodspec/multispec/peaks.x
+./noao/twodspec/multispec/solve.x
+./noao/twodspec/multispec/t_fitfunc.x
+./pkg/bench/xctest/lintran.x
+./pkg/images/lib/sigl2.x
+./pkg/images/tv/display/sigl2.x
+./pkg/images/tv/iis/src/sigl2.x
+./pkg/lists/lintran.x
+./pkg/plot/crtpict/sigl2.x
+./pkg/proto/t_imscale.x
+./sys/clio/clgeti.x
+./sys/clio/clgetl.x
+./sys/clio/clgetr.x
+./sys/clio/clgets.x
+./sys/clio/clglpi.x
+./sys/clio/clglpl.x
+./sys/clio/clglpr.x
+./sys/clio/clglps.x
+./sys/clio/clputi.x
+./sys/gio/calcomp/t_calcomp.x
+ These files were modified to replace equals-INDEF type constructs by
+ IS_INDEF type constructs. (1/15).
+
+unix/mkpkg
+ Modified the "mkpkg summary" feature to work for either cc or gcc.
+ (1/15)
+
+unix/os/zfiotx.c
+ Modified to use the TCSETAW ioctl instead of TCSETAF in some cases
+ (SysV systems only). (1/15)
+
+pkg/dataio/reblock/t_reblock.x
+pkg/dataio/doc/reblock.hlp
+ Added support for multiple disk file input and output to the reblock
+ task. (1/20/93 LED)
+
+dev/hosts
+ Added Daryl Willmarth's machine "jannu" on Tucana.
+ (1/20 FV)
+
+dev/hosts
+ At Ed Anderson's request, added nodes anasazi and prometheus to
+ dev$hosts on tucana, ursa and gemini. The lacerta pathname was
+ updated in these files as well. (1/21/93 ShJ)
+
+dev/termcap
+dev/graphcap
+ Cleaned up the VMS specific entries for lw6-10 so all are available
+ now from VMS/IRAF. Graphcap needed a vapl6 entry; termcap needed
+ entries for vapple[6,8-10]. (1/20/93 ShJ)
+
+dev/devices.hlp
+ Updated the first section of this file to have accurate locations for
+ the various printers and to include the device names for generating
+ PostScript output files. (1/21/93 ShJ)
+
+pkg/images/filters/fmedian.x
+ The fmedian task was printing a lot of garbage debugging information
+ under iraf 2.10.2. Removed the eprintf statements. (1/25/93 LED)
+
+pkg/system/phelp.cl
+ Changed the default value for the parameter "all" to "yes". This
+ causes phelp to print help for all modules matching the given
+ template, rather than just the first one. (1/26)
+
+pkg/system/doc/help.hlp
+ Added a description of the "all" parameter. (1/26)
+
+sys/etc/xerstmt.x
+ The code which modifies the `error (ddd, "message")' command sent to
+ the CL when a task aborts was modified to eliminate characters such
+ as newline or double quote which could cause the syntax of the
+ generated command to be invalid. (There are 31 cases of "call error"
+ statements in the core distribution which contain unwanted newline
+ characters in the message string). (1/27)
+
+pkg/images/tv/wcslab/wcslab.x
+ Fixed a bug in the axis mapping code in wcslab which was causing the
+ task to fail in some circumstances if the input image was a section
+ of a higher dimensioned parent image. (1/28/93, Davis)
+
+vms/gdev/sgidev/sgi2veps.for +
+vms/gdev/sgidev/mkpkg.com
+vms/hlib/sgiqueue.com
+dev/graphcap
+ Added an SGI translator for Encapsulated PostScript to VMS/IRAF.
+ As with the Unix version of the translator, the device names are
+ eps, epsl and epsh. The output file is named sgixxxxx.eps and
+ is left in the users home$ directory. (2/1/93 ShJ)
+
+unix/hlib/install
+ Added a number of statements such as "rm -f $TEMP >& /dev/null" to
+ ensure that any existing temp files are deleted before trying to
+ create new ones (file creation can fail due to permissions problems).
+ (2/01)
+
+vms/gdev/sgidev/sgi2vapl.for
+ Modified to close the output file before sending it to the printer
+ queue with sndjbcw. Without this, the file wouldn't be closed until
+ the program finished, possibily resulting in an intermittent error:
+ %RMS-E-FLK, file currently locked by another user. This was more
+ likely to be seen on a [relatively] fast machine such as Robur, when
+ the queue processing could turn on before the translator completed.
+ In this case, the output file would still be open [and locked] by the
+ executing sgi2vapl program. (2/2/93 ShJ)
+
+dev/hosts
+ Modified this file on all hosts for Fred Gillett's new Sun called
+ turkey. (2/2/93 jb)
+
+dev/hosts
+ Added the GONG machines soi and mdi to hosts files on tucana, orion
+ and ursa. Added on gemini by Nigel. (2/2/93 MJF)
+
+pkg/images/tv/wcslab/wcslab.h
+pkg/images/tv/wcslab/wcs_desc.h
+pkg/images/tv/wcslab/wcslab.x
+pkg/images/tv/wcslab/wlwcslab.x
+ Removed a dependency on the file gio.h from the wcslab task.
+ (2/11/93 LED)
+
+pkg/images/imutil/t_imslice.x
+ Removed an error check in imslice, that was preventing the task from
+ being used to reduce the dimensionality of images where
+ IM_LEN(im,slice_dimension) = 1.
+ (2/16/93 LED)
+
+dev/imtoolrc
+dev/graphcap
+ Added a new frame buffer, imt37, at Skip Schaller's request for
+ the Loral 1200x800 CCDs. (2/17/93 MJF) Modified imt37 and imt26
+ (cryocam) to suit KPNO nomenclature. (2/18/93 RLS)
+
+pkg/images/tv/imexamine/ierimexam.x
+pkg/images/tv/doc/imexamine.hlp
+ The simple gaussian fitting was inadequate and gave biased answers.
+ Replaced this algorithm with NLFIT version. It is still just a two
+ parameter fit with the center and sky being determined and then fixed
+ as before. (3/2/93, Valdes)
+
+dev/hosts
+ Merged all differences on ursa, gemini, orion, and bigx back into
+ tucana's hosts file. (3/5/93 jb)
+
+pkg/images/tv/imexamine/iestatistics.x
+ The statistics computation was done in real precision, using aavgr,
+ which gives an incorrect standard deviation, presumable because of
+ precision truncation, when the mean is large and the actual data
+ noise is small. The routine was changed to use the double
+ precision version, aavgd, which gives the correct results.
+ (3/10/93, Valdes)
+
+noao/mkpkg
+ Added support for HPUX. (3/14)
+
+pkg/cl/main.c
+ Modified memneed(), used to allocate space at the end of the
+ dictionary, to quad align the allocated storage. (3/14)
+
+pkg/cl/pfiles.c
+ Modified this code to remove an assumption about the amount of
+ space allocated by memneed. (3/14)
+
+sys/imfort/tasks/mkpkg -
+sys/imfort/tasks/README
+ Deleted the mkpkg, which is system dependent. (3/14)
+
+unix/os/alloc.c
+ Modified alloc to allow the drive in it unallocated state to be
+ owned by any system uid (any uid < 10), rather than insisting that
+ the drive be owned by root. If the drive is owned by any system
+ uid and has world rw permission it can be allocated under this
+ new scheme. This avoids requiring that the system manager set
+ the device ownership to root on systems where the device is owned
+ by bin or some other system uid. (3/15)
+
+mkpkg
+ Added irix and hpux support. (3/15)
+
+dev/hosts
+ Added otter to hosts file on tucana, ursa, gemini, orion, and
+ bigx. (3/24 jb)
+
+dev/graphcap
+dev/termcap
+ Added entries for lw15|lwcloset to tucana, ursa, gemini, orion, and
+ bigX. (3/26 ShJ)
+
+sys/libc/cread.c
+ The case of EOF on a text file was not being handled correctly. (3/31)
+
+sys/fio/ffilsz.x
+ The file size was not being computed correctly in the case of a file
+ opened for writing and positioned to EOF, with some unwritten data
+ in the file buffer. (4/05)
+
+pkg/cl/exec.c
+ The LT_STDINB, LT_STDOUTB flags were not being propagated into the
+ task descriptor correctly (they were being treated as additional
+ cases of mutually exclusive task types). (4/07)
+
+pkg/images/doc/gauss.hlp
+ Fixed two sign error in the equations in the documentation for
+ the gauss task. (4/13 LED)
+
+unix/hlib/libc/stdio.h
+ Added a declaration for gets(). (4/16)
+
+pkg/images/imarith/imcombine.gx
+ There was no error checking when writing to the output image. If
+ an error occurred (the example being when an imaccessible imdir was
+ set) obscure messages would result. Errchks were added.
+ (4/16/93, Valdes)
+
+pkg/images/doc/rotate.hlp
+ Fixed a bug in the rotate task help page which implied that automatic
+ image size computation would occur if ncols or nlines were set to 0
+ instead of ncols and nlines. (4/17/93, LED)
+
+sys/imio/iki/stf/stfrgpb.x
+ This code was directly referencing fields of the GPB in calls to
+ imaddX routines to build the image header. Since fields in STF
+ group parameter blocks are often not aligned, this could fail for
+ type double on machines that require that double values be double
+ aligned. The code was modified to copy the values out to
+ temporary variables (which the compiler will automatically align),
+ passing the aligned temporary values in the imaddX calls. (5/04)
+
+dev/graphcap
+ Merged in latest xgterm entries (these are not compatible with
+ early prerelease versions). (5/05)
+
+./lib/gescape.h
+./lib/gim.h +
+./lib/gio.h
+./lib/gki.h
+./lib/gset.h
+./lib/scr/cursor.key
+./lib/scr/xgterm.gui +
+./pkg/language/doc/cursors.hlp
+./pkg/plot/t_implot.x
+./sys/etc/prpsio.x
+./sys/gio/cursor/giotr.x
+./sys/gio/cursor/grcaxes.x
+./sys/gio/cursor/grccmd.x
+./sys/gio/cursor/grcredraw.x
+./sys/gio/cursor/grcwcs.x
+./sys/gio/cursor/gtrctrl.x
+./sys/gio/cursor/gtrdelete.x
+./sys/gio/cursor/gtropenws.x
+./sys/gio/cursor/gtrrcur.x
+./sys/gio/cursor/gtrwsclip.x +
+./sys/gio/cursor/gtrwstran.x
+./sys/gio/cursor/mkpkg
+./sys/gio/cursor/rcursor.x
+./sys/gio/gactivate.x
+./sys/gio/ggcur.x
+./sys/gio/gim/mkpkg +
+./sys/gio/gim/README +
+./sys/gio/gim/gimrasini.x +
+./sys/gio/gim/gimcrras.x +
+./sys/gio/gim/gimderas.x +
+./sys/gio/gim/gimwpix.x +
+./sys/gio/gim/gimrpix.x +
+./sys/gio/gim/gimqras.x +
+./sys/gio/gim/gimsetmap.x +
+./sys/gio/gim/gimrcmap.x +
+./sys/gio/gim/gimwcmap.x +
+./sys/gio/gim/gimimap.x +
+./sys/gio/gim/gimcpras.x +
+./sys/gio/gim/gimgetmap.x +
+./sys/gio/gim/gimenmap.x +
+./sys/gio/gim/gimref.x +
+./sys/gio/gim/gimsetras.x +
+./sys/gio/gim/gimrefpix.x +
+./sys/gio/gki/gkifaset.x
+./sys/gio/gki/gkigcur.x
+./sys/gio/gki/gkiprint.x
+./sys/gio/gki/gkircval.x
+./sys/gio/gki/gkiwesc.x +
+./sys/gio/gki/mkpkg
+./sys/gio/gmprintf.x +
+./sys/gio/gmsg.x +
+./sys/gio/gopen.x
+./sys/gio/gplcache.x
+./sys/gio/greset.x
+./sys/gio/gsetr.x
+./sys/gio/gstatr.x
+./sys/gio/gsview.x
+./sys/gio/gswind.x
+./sys/gio/mkpkg
+./sys/gio/sgikern/sgifa.x
+./sys/gio/stdgraph/mkpkg
+./sys/gio/stdgraph/stdgraph.com
+./sys/gio/stdgraph/stdgraph.h
+./sys/gio/stdgraph/stgescape.x
+./sys/gio/stdgraph/stgfaset.x
+./sys/gio/stdgraph/stggcur.x
+./sys/gio/stdgraph/stggim.x +
+./sys/gio/stdgraph/stginit.x
+./sys/gio/stdgraph/stgopen.x
+./sys/gio/stdgraph/stgopenws.x
+./sys/gio/stdgraph/stgrcur.x
+./sys/gio/stdgraph/stgreset.x
+./sys/gio/stdgraph/stgscur.x
+./sys/gio/stdgraph/stgwtty.x
+./sys/tty/tty.h
+./sys/tty/ttyopen.x
+ Merged in a number of changes made to add IRAF-side support for the
+ prototype widget server. These will be documented in detail later.
+ The changes should be backwards compatible; any compatibility
+ problems should be reported. (5/05)
+
+pkg/images/geometry/t_imshift.x
+ Added support for type ushort images to the imshift task in the
+ case that the pixel shifts are integral not fractional.
+ (5/8/93 Davis)
+
+pkg/images/imarith/icmedian.gx
+ The median calculation is now done so that the original input data
+ is not lost. This slightly greater inefficiency is required so that
+ an output sigma image may be computed if desired. (5/10/93, Valdes)
+
+images/doc/imshift.hlp
+ Fixed a typo in the name of the "interp_type" param. (5/13/92 MJF)
+
+dev/tapecap
+ Added support (mto*) for the new Exabyte 8500 drive on Argo.
+ Added lo/hi/comp aliases for the ST driver entries. (5/17)
+
+dev/hosts
+ Added aldebaran to all hosts files - needed temporarily until this
+ machine becomes argo. (5/19 jb)
+
+pkg/images/tv/display/t_display.x
+ The code for the fill+ option did not handle the case of a non-square
+ display frame buffer correctly. (5/19)
+
+pkg/plot/phistogram.x
+ Fixed a bug in the way the phistogram task was reading in data
+ redirected from the standard input. (5/20 LED)
+
+/dev/hosts
+ Added lemming to all hosts files. (5/25 jb)
+
+images/imarith/icgdata.gx
+ There was an indexing error in setting up the ID array when using
+ the grow option. This caused the CRREJECT/CCDCLIP algorithm to
+ fail with a floating divide by zero error when there were non-zero
+ shifts. (5/26/93, Valdes)
+
+sys/ki/kixnode.x
+ This routine used a fixed length intermediate buffer which could
+ result in truncation of a resource name. Modified to base the buffer
+ size on the size of the resource string being edited. (5/29)
+
+doc/iraf92.tex
+doc/iraf92f3.eps
+ Installed ADASS-93 IRAF paper sources. (6/02)
+
+doc/ports/aux_port.doc
+ Installed AUX/IRAF port notes. (6/02)
+
+lib/gescape.h
+lib/gim.h
+sys/gio/cursor/giotr.x
+sys/gio/cursor/gtropenws.x
+sys/gio/cursor/rcursor.x
+sys/gio/gim/README
+sys/gio/gim/gimlcmap.x
+sys/gio/gim/gimwcmap.x
+sys/gio/gim/mkpkg
+sys/gio/sgikern/sgifa.x
+sys/gio/stdgraph/mkpkg
+sys/gio/stdgraph/stggcur.x
+sys/gio/stdgraph/stggim.x
+sys/gio/stdgraph/stgopenws.x
+sys/gio/stdgraph/stgrcur.x
+sys/gio/stdgraph/stgscur.x
+ Various files updated as part of display interfaces enhancements;
+ notes to be added later. (6/02)
+
+dev/hosts
+ Added odysseus to tucana/orion. Nigel added it to ursa/gemini.
+ (6/15MF)
+
+sys/vops/arav.gx
+ Changed the termination condition to cause loop termination if an
+ interation results in fewer pixels being rejected. This shouldn't
+ happen, but is possible due to arithmetic errors when the algorithm
+ is near convergence. (6/19)
+
+sys/imio/iki/oif/oifopix.x
+ Improved the error handling for the case where there is no pixel
+ storage file. (6/21)
+
+gio/ncarutil/conbd.f
+gio/ncarutil/conrec.f
+ Dimension of array IR in subroutine STLINE was increased from 20k
+ to 80k. This array, in common block CONRE2, holds the starting
+ location of all contours at a given level. Larger data arrays, and
+ users wanting to contour each pixel rather than subsampling or block
+ averaging, have necessitated the gradual increase of this array
+ over the years from its original value of 500 to 80000. (ShJ 6/21)
+
+pkg/plot/phistogram.x
+ Fixed a bug in the way phistogram was binning real data read in from
+ a list or image that was causing to create one less bin than required
+ to hold the data. (26/6/93, Davis)
+
+dev/hosts
+ Added sandalwood to all hosts files, ie tucana, bigx, ursa, gemini,
+ and orion. (jb 7/1/93)
+
+doc/vmsiraf.ms +
+doc/vmsiraf.ms.v29 +
+ Installed the new, extensively revised VMS/IRAF manual. (7/01)
+
+unix/hlib/buglog.csh
+ Modified to also append a new buglog entry to the bugs.log file in
+ the network archive (~ftp/iraf/v210/bugs.log). (7/02)
+
+pkg/utilities/t_surfit.x +
+pkg/utilities/surfit.par +
+pkg/utilities/doc/surfit.hlp +
+pkg/utilities/x_utilities.x
+pkg/utilities/mkpkg
+pkg/utilities/utilities.cl
+pkg/utilities/utilities.men
+pkg/utilities/utilities.hd
+ A task for fitting a 2D function or "surface" to an irregularly
+ sampled set of x, y, and z points has been added to the utilities
+ package. (fv 7/6)
+
+pkg/images/geometry/geomap.par
+pkg/images/geometry/t_geomap.x
+pkg/images/geometry/geogmap.x
+pkg/images/geometry/geofit.x
+ Fixed a bug in the error handling code in geomap which was producing
+ a segmentation violation on exit if the user's coordinate list
+ had fewer than 3 data points. Also improved the error messages
+ presented to the user in both interactive and non-interactive mode.
+ (7/7/93, LED)
+
+unix/os/zfmkcp.c
+ This routine makes a zero-length copy of a file, preserving the file
+ mode bits so that the application need not know about the host
+ system's view of file types, permissions, etc. The routine was
+ modified to preserve the file mode bits EXCEPT that the new file has
+ read and write permission enabled for the owner (it is likely that
+ an IRAF application creating a new, zero length copy of a file or
+ file template will want to write to the file). (7/07)
+
+dev/hosts
+ Added pandora. (7/10/93 jb)
+
+sys/mwcs/mwsave.x
+ Added a missing call to sfree. (7/13)
+
+pkg/system/doc/help.hlp
+ Deleted a comment about using device=text with the help task and
+ added another example showing how to use help | type dev=text to
+ get a text file copy of a help page. (7/23)
+
+pkg/images/filters/t_median.x
+pnkg/images/filters/t_mode.x
+ Removed an extraneous invalid argument from the call to eprintf
+ inside an iferr block. (7/28/93)
+
+-------------------
+V2.10.3 BETA, first release. (7/29)
+
+mkpkg
+unix/hlib/strip.iraf
+ Minor updates to strip a few things that were being missed. mkpkg
+ strip at the iraf root now prints some helpful messages. (8/01)
+
+unix/hlib/login.cl
+ Added dbx and gdb to the default user package. (8/01)
+
+pkg/images/imarith/t_imcombine.x
+ The algorithm for making sure there are enough file descriptors
+ failed to account for the need to reopen the output image header
+ for an update. Thus when the number of input images + output
+ images + logfile was exactly 60 the task would fail. The update
+ occurs when the output image is unmapped so the solution was to
+ close the input images first except for the first image whose
+ pointer is used in the new copy of the output image. (8/4/93 fv)
+
+pkg/images/imfit/fit1d.x
+ When the input and output images are the same there was an typo error
+ such that the output was opened separately but then never unmapped
+ resulting in the end of the image not being updated. Fixing the
+ typo means that only one I/O pointer is used in READ_WRITE mode
+ as intended. (8/6/93 fv)
+
+sys/mkpkg
+sys/memdbg/ +
+lib/libmemdbg.a +
+unix/hlib/mkpkg.sf.SUN4 +
+unix/as.sparc/zrtadr.s +
+ Added a new system library -lmemdbg. This is a debug version of MEMIO,
+ used to log calls to the MEMIO routines and check programs for
+ memory leaks (unfreed buffers). See the README file in the memdbg
+ directory for details on usage. (8/08)
+
+pkg/softools/memchk.par +
+pkg/softools/memchk.x +
+pkg/softools/mkpkg
+pkg/softools/softools.cl
+pkg/softools/softools.men
+pkg/softools/x_softools.x
+ Added a new task MEMCHK to the softools package. This is used in
+ conjunction with the memdbg facility. (8/08)
+
+pkg/system/sort.x
+ This very old program had some pretty small buffer sizes and hence
+ was slow sorting large files. The buffer sizes were increased by
+ about a factor of 10. (8/08)
+
+sys/clio/clclose.x
+sys/clio/mkpkg
+sys/etc/main.x
+ Made a minor modification to the IRAF main to close the stdio
+ streams during process shutdown. This makes memdbg output a little
+ less confusing, although the system still allocates a number of
+ buffers that exist for the lifetime of the process and are never
+ freed. (8/08)
+
+sys/fio/stropen.x
+ Added a call to strclose to free the file pushback buffer if any.
+ This is only necessary when pushback is used on a string buffer
+ opened as a file, as in parsers. (8/08)
+
+sys/fio/vfnmap.x
+ Added a missing sfree. (8/08)
+
+sys/vops/aselk.gx
+sys/vops/lz/mkpkg
+sys/vops/mkpkg
+sys/vops/vops.calls
+sys/vops/vops.men
+sys/vops/vops.syn
+ Added a missing VOPS routine aselk, the vector/scalar version of the
+ existing asel routine. (8/08)
+
+lib/evvexpr.h +
+sys/fmtio/evvexpr.x +
+sys/fmtio/evvexpr.y +
+sys/fmtio/evvexpr.gy +
+sys/fmtio/evvexpr.com +
+sys/fmtio/mkpkg
+ Installed a new FMTIO routine evvexpr, a vector version of the old
+ evexpr with many other enhancements (expanded datatypes, intrinsic
+ functions, etc.). Refer to the imexpr help page and the comments
+ at the top of evvepxr.gy for details. (8/08)
+
+pkg/images/images.hd
+pkg/images/images.men
+pkg/images/images.cl
+pkg/images/x_images.x
+pkg/images/imarith/mkpkg
+pkg/images/imarith/imexpr.x +
+pkg/images/imarith/imexpr.gx +
+pkg/images/imarith/gettok.x +
+pkg/images/imarith/gettok.h +
+pkg/images/doc/imexpr.hlp +
+ Installed a new task IMEXPR, used to evaluate general image
+ expressions. Refer to the help page for details. (8/08)
+
+unix/boot/mkpkg/host.c
+ The routine h_direq in this file is supposed to be smart enough
+ to be able to match up directories even when symbolic links are
+ used. It was being fooled by a case where the name of the iraf
+ root directory is not a simple "iraf" - for example on tucana the
+ root directory is currently called "iraf/iraf.develop". When
+ h_direq fails it can cause mkpkg special file list entries to
+ be ignored. (8/11)
+
+sys/fmtio/evvexpr.gy
+ Swapped the precedence of the unary minus and exponentiation operators
+ (the latter should have higher precedence). (8/12)
+
+sys/fmtio/evvexpr.gy
+ 1. The input arguments to the intrinsic functions INT and NINT were
+ being coerced to floating before performing the operation (harmless
+ but unnecessary, and inefficient).
+ 2. The code for the intrinsic functions "short" and "long" was missing
+ and was added. (9/04)
+
+unix/hlib/mkpkg.sf.SUN3
+unix/hlib/mkpkg.sf.SUN4
+ Added the compiler switch "-Ns2048" for fmtio$evvexpr.x. This routine
+ (which is computer generated from evvexpr.gy and which is enormous)
+ was overflowing the Fortran compiler symbol table. Interestingly,
+ I got the same error message and had to add exactly the same switch,
+ using the Sun Fortran compiler on the Sun and F2C on A/UX! (9/04)
+
+dev/termcap
+dev/graphcap
+ Added HP LaserJet 4M 600dpi printer 'lw16' to graphcap/termcap file
+ on tucana, orion, gemini, ursa, and bigx. (9/17/93 MJF)
+
+dev/hosts
+ Modified herbie entry on all hosts. Herbie now feeds off of
+ gemini. (jb 9/23/93)
+
+sys/mwcs/mwgctran.gx
+ Fixed a typo that was preventing LTV from being output correctly.
+ (9/24)
+
+pkg/images/imarith/icscale.x
+pkg/images/doc/imcombine.hlp
+ The help indicated that user input scale or zero level factors
+ by an @file or keyword are multiplicative and additive while the
+ task was using then as divisive and subtractive. This was
+ corrected to agree with the intend of the documentation.
+ Also the factors are no longer normalized. (9/24/93, Valdes)
+
+pkg/images/imarith/icsetout.x
+ The case in which absolute offsets are specified but the offsets are
+ all the same did not work correctly. (9/24/93, Valdes)
+
+sys/gio/gmsg.x
+sys/gio/gmprintf.x
+ 1. gmsg (and indirectly gmsg[bcsilrdx]) was modified to format a
+ message as required to the set the value of an OBM parameter object.
+ Previously it was working, but it would send any message to any
+ UI object and this would have required that applications format
+ messages specially for UI parameters.
+ 2. Reviewing gmprintf.x it appeared that the routine was never
+ finished and won't work - I added a comment to that effect. The
+ gmsg routines should prove more useful anyway. (9/26)
+
+sys/gio/stdgraph/stgopenws.x
+ When reactivating a device in certain circumstances a flag was not
+ being set to tell the kernel that the device was activated. A symptom
+ of this was that in a cursor read, colon commands would not be echoed
+ or the 'C' key would appear to do nothing (the characters were
+ actually being output but since the dialog box was never activated
+ they were not being printed). (10/01)
+
+dev/graphcap
+ The xgterm entry was modified to add a new field to the cursor
+ return struct. (10/7)
+
+sys/gio/stdgraph/stgopen.x
+sys/gio/stdgraph/stgopenws.x
+sys/gio/stdgraph/stgclose.x
+sys/gio/stdgraph/stgreset.x
+sys/gio/stdgraph/stgrcur.x
+sys/gio/stdgraph/stgrtty.x
+sys/gio/stdgraph/stdgraph.com
+sys/gio/stdgraph/stdgraph.h
+ The stdgraph kernel was modified to allow a message to be returned
+ as part of a cursor read. The cursor value struct for devices such
+ as xgterm contains a field "nchars" defining the number of chars,
+ default zero, following the fixed size cursor value struct. If this
+ data is present it is read as part of the cursor read, and played
+ in a dynamically reallocatable message buffer in the stdgraph
+ kernel. The next stg_readtty call (as used in CL cursor reads or
+ when reading from STDIN when graphics is activated) returns data from
+ this message buffer rather than reading from the terminal. A new
+ routine stg_msglen was added to allow the kernel to be queried to
+ see how much message data is buffered. The message buffer is
+ emptied in each cursor read or after the first stg_readtty call.
+ (10/7)
+
+sys/gio/cursor/rcursor.x
+ In a colon cursor read, the rcursor code (=gcur, clgcur) now calls
+ stg_msglen and echoes the ":" only if there is no buffered message
+ data. (10/7)
+
+sys/gio/gmsg.x
+ The messaging routine gmsg now automatically disables and renables
+ F_FLUSHNL if this is set on STDOUT, as this interferes with the
+ operation of gmsg. (10/7)
+
+pkg/images/imarith/icsetout.x
+ Added MWCS calls to update the axis mapping when using the project
+ option in IMCOMBINE. (10/8, Valdes)
+
+dev/hosts
+ Added node sol to tucana at Ed Anderson's request. (10/8 ShJ)
+
+pkg/dataio/imtext/t_rtextimage.x
+pkg/dataio/imtext/t_wtextimage.x
+pkg/dataio/imtext/rt_cvtpix.x
+pkg/dataio/rtextimage.par
+pkg/dataio/wtextimage.par
+pkg/dataio/doc/rtextimage.hlp
+pkg/dataio/doc/wtextimage.hlp
+ A parameter was added to select whether to read or write the pixel
+ values. This is complementary to rfits/wfits and allows use of
+ these tasks to store and restore image headers. (10/22 FV)
+
+dev/hosts
+ Updated argo entry now that it has been updated to a sparc - on
+ all servers. (10/27 jb)
+
+pkg/images/icgrow.gx
+pkg/images/icpclip.gx
+pkg/images/icsclip.gx
+pkg/images/icaclip.gx
+pkg/images/iccclip.gx
+pkg/images/t_imcombine.x
+pkg/images/doc/imcombine.hlp
+ If there were fewer initial pixels than specified by nkeep then the
+ task would attempt to add garbage data to achieve nkeep pixels. This
+ could occur when using offsets, bad pixel masks, or thresholds. The
+ code was changed to check against the initial number of pixels rather
+ than the number of images. Also a negative nkeep is no longer
+ converted to a positive value based on the number of images. Instead
+ it specifies the maximum number of pixels to reject from the initial
+ set of pixels. (11/8, Valdes)
+
+sys/fio/stropen.x
+ There was an off by one problem with marking the end of the string
+ buffer, making it possible to run off the end of the buffer by one
+ char before overflow would occur. (11/10)
+
+pkg/images/tv/display/t_display.x
+ Changed the format of the z1=,z2= message to produce something that
+ can be cut and pasted into another CL display command to use the
+ same scaling. (11/12)
+
+pkg/images/imarith/t_imarith.x
+pkg/images/doc/imarith.hlp
+ If no calculation type is specified then it will be at least real
+ for a division. Since the output pixel type defaults to the
+ calculation type if not specified this will also result in a
+ real output if dividing two integer images. (11/12/93, Valdes)
+
+sys/ki/irafks.x
+ 1. Modified the code which handles ZFSTT optbufsize,maxbufsize requests
+ for the binary file drivers to also query the maxbufsize for ZFIOKS
+ and return the minimum of this value and the device value. This
+ prevents the size of a binary file data transfer from exceeding the
+ max size network transfer.
+ 2. The irafks.exe executable was updated in our VMS/IRAF system.
+ (11/17)
+
+sys/ki/kbzstt.x
+ While looking at this code I noticed that the internal variable
+ kb_maxbufsize could be used before being initalized. Although I am
+ not aware of this having caused any problems, I modified the code to
+ properly initialize the variable. (11/17)
+
+sys/vops/arav.gx
+ The change made on 6/19 (to avoid an infinite loop condition that
+ could arise due to roundoff errors) introduced a bug that would cause
+ the routine to return after one iteration, without rejecting any
+ data. (11/18)
+
+sys/fmtio/gargs.x
+ Was not properly checking for indefinite or overflow in the double
+ to short conversion. (11/22)
+
+sys/gio/gmsg.x
+ The gmsg routines now do an automatic gflush before sending the
+ message. The gflush and a flush of STDOUT are always done regardless
+ of whether the output device supports messaging, to ensure that the
+ flush semantics are not device dependent. (11/24)
+
+pkg/proto/t_bscale.x
+ Added a call to flush after the status printout so that the output will
+ appear after each image is processed. (11/29 LED)
+
+dev/hosts
+ Modified deneb entry at Ed Anderson's request. (12/1 ShJ)
+
+sys/imio/iki/stf/stfcopyf.x
+ Added errchk declarations for getline and putline. (12/10)
+
+doc/ports/notes.aix +
+ It appears that we never installed the notes file from the AIX/IRAF
+ port so I went ahead and did this. (12/13)
+
+sys/imio/iki/stf/stfcopyf.x
+ Increased the size of the internal arrays to MAX_PCOUNT+NKW, and
+ added a constraint on a loop index to ensure that images with large
+ GPBs would not exceed this limit. (12/20)
+
+dev/hosts
+ Modified herbie entry at Lisa Wells' request. (12/22 ShJ)
+
+pkg/images/geometry/t_geomap.x
+pkg/images/geometry/geofit.x
+pkg/images/geometry/geograph.x
+ Fixed a bug in the geomap code which caused the linear portion of
+ the transformation to be computed incorrectly if the x and y fits
+ had a different functional form. (12/29/93 LED)
+
+unix/hlib/buglog.csh
+ The buglog will now log the bug to adass.iraf.bugs in addition to
+ all the usual places. (01/06 1994)
+
+noao/lib/zzsetenv.def
+ Added a definition of "noao$bin(arch)/" to 'pkglibs' so that the
+ smw and asttools libraries would be picked up by other packages
+ using '-p noao' when the package is configured generically.
+ (1/10/94 MJF)
+
+math/gsurfit/gssub.gx
+math/gsurfit/gssubd.x
+ The gsurfit double precision routine gssubd was incorrectly calling
+ the real precision routine gsgeti instead of the double precision
+ routine dgsgeti due to an error in the gssub.gx file. This bug
+ results in the wrong value of the parameter GSNSAVE being returned
+ to the calling routine gssubd in the double precision case.
+ (1/17/94 Davis)
+
+unix/hlib/buglog.csh
+ Changed the default version to V2.10. (1/21)
+
+sys/gio/stdgraph/stgwtty.x
+ Due to a too-nonspecific test for the termination of a graphics
+ message, a newline occuring at just the right position in a text
+ message could cause termination of a message. This was causing
+ large messages to be prematurely terminated (actually this could
+ occur in any message but it was more likely to be seen in a large
+ message). (1/24)
+
+dev/termcap
+ Added an entry for xgterm called "oldgterm". This is for using
+ xgterm with old versions of IRAF. It makes the text window look
+ like an xterm but the graphics is gterm. (1/27)
+
+sys/memdbg/README
+ Fixed a couple of typos. (1/28)
+
+pkg/plot/t_implot.x
+pkg/plot/implot.par
+pkg/plot/doc/implot.hlp
+ The step for the j/k keys may now be set by a task parameter. (2/02 fv)
+
+sys/gio/gmsg.x
+ 1. The dtoc and xtoc functions were being called incorrectly in the
+ gmsg[rdx] routines.
+ 2. Corrected a minor typo in a procedure header. (2/04)
+
+pkg/dataio/doc/bintxt.hlp
+pkg/dataio/doc/mtexamine.hlp
+pkg/dataio/doc/rcardimage.hlp
+pkg/dataio/doc/reblock.hlp
+pkg/dataio/doc/rfits.hlp
+pkg/dataio/doc/rtextimage.hlp
+pkg/dataio/doc/txtbin.hlp
+pkg/dataio/doc/wcardimage.hlp
+pkg/dataio/doc/wfits.hlp
+pkg/dataio/doc/wtextimage.hlp
+ Added a "SEE ALSO" section to most of the help pages, and fixed a
+ number of other minor formatting errors. (2/13)
+
+pkg/cl/login.cl
+ Updated this file. (2/14)
+
+pkg/cl/lexicon.c
+ When skipping leading whitespace before a token, will now recognize
+ an escaped newline and skip the newline as well. (2/14)
+
+sys/memdbg/README
+ Added a couple more minor comments. (2/18)
+
+unix/as.sparc/zrtadr.s
+ MEMDBG was not returning valid values for the RETADR (return
+ address) field. This was traced to a problem with as$zrtadr.s.
+ Evidently the real zrtadr.s was lost back when MEMDBG was written,
+ probably due to an accidental cc -S after the package had already
+ been debugged. The version in as.sparc was the assembler for the
+ dummy version (zrtadr.c) in sys/memdbg. I had to rewrite the real
+ assembler version of this routine from scratch (ouch). (2/18)
+
+dev/graphcap
+gio/stdgraph/stggim.x
+ The refresh pixels function was broken due to the graphcap entry for
+ this function being aliased to that for read pixels (RP). This
+ would cause an "incomplete or reentrant format" error when trying to
+ do a gim_refreshpix from an IRAF imaging application. (2/24)
+
+gio/gim/gimrefpix.x
+ Edited the procedure header description to reflect a change in the
+ definition of the GtRefreshPixels routine in the gterm widget. (2/25)
+
+dev/graphcap
+sys/gio/stdgraph/stggim.x
+ The name for the ME capability (refresh mapping) used in the xgterm
+ graphcap entry was a redefinition of the marker-end capability used
+ for drawing polymarkers. Changed the name to MN. We need a more
+ rigorous way to register device capability names to avoid this sort
+ of problem. I usually search the graphcap file, but in this case
+ the named was used in the stdgraph kernel but was not actually defined
+ for any existing device. (3/03)
+
+sys/imio/imwrpx.x
+ This code assumed that IM_PIXTYPE was int, the same as the type of
+ the pixel masks. Modified to convert the pixel values if necessary
+ when writing to the output mask. (Note that this is not necessary
+ when *reading* a mask, as IM_PIXTYPE will always be int in that
+ case). (3/07)
+
+sys/plio/plp2l.gx
+sys/plio/plp2r.gx
+ Modified this code to apply a max(0,value) to the input pixel values,
+ i.e. to clip at zero. Masks permit only nonnegative pixel values.
+ Negative input values could cause the data to be improperly encoded.
+ (3/07)
+
+pkg/math/gsurfit/gs_eval.gx
+ The sfree statement was commented out in the routines gs_evpoly
+ and dgs_evpoly. This results in over-utilization of memory and
+ occasionally in out of memory errors for tasks which make many
+ successive calls to gsvector or dgsvector if the surface type
+ is polynomial. (3/08/94 LED)
+
+dev/graphcap
+dev/termcap
+ Added entries for lw14 as requested by Ed Anderson. (3/28/94 ShJ)
+
+pkg/images/tv/imexamine/ierimexam.x
+ Changed the gaussian fitting code to use a fraction of the fitting
+ radius as the initial value for the full-width half-maximum in cases
+ where the moment analysis failed, thus avoiding an occasional
+ floating overflow error. (4/15/94 LED)
+
+dev/graphcap
+ Updated the VMS solitaire entries for the new location of the
+ qsoli.com file, usr3\072[irafext.nlocal.lib]qsoli.com. (ShJ 4/19/94)
+
+unix/os/mkpkg
+unix/os/zfiond.c +
+unix/hlib/libc/kernel.h
+unix/hlib/libc/knames.h
+sys/fio/mkpkg
+sys/fio/ndopen.x
+sys/fio/zzdebug.x
+ Installed a new FIO driver, the ND or network device driver. This
+ driver can potentially support any connection oriented, streaming
+ type network or IPC communications domain. The initial set of
+ supported communications domains are Internet sockets, UNIX domain
+ sockets, and FIFO pipes. The type of connection is specified by
+ the "filename" argument to the driver at open time. Both client
+ and server connections are supported.
+
+ A client or a server opens a network device connection as follows:
+
+ fd = ndopen (filename, mode)
+
+ The mode is NEW_FILE for a server, anything else for a client.
+ The file descriptor is bidirectional. The "filename" string syntax
+ is determined by the ND driver and is transparent to IRAF system
+ and applications code. For the UNIX/IRAF ND driver, here are some
+ examples:
+
+ inet:5177 # Internet socket, server
+ inet:5177:foo.bar.edu # Internet socket, client
+ unix:/tmp/.IMT%d # UNIX domain socket
+ fifo:/dev/imt1i:/dev/imt1o # FIFO (named pipe)
+
+ Refer to the comments in fio$ndopen.x and os$zfiond.c for further
+ information. The file fio$zzdebug.x contains sample client and
+ server tasks. (5/01)
+
+sys/fio/zzdebug.x
+ Added two tasks "client" and "server" for testing the ND driver.
+ These also demonstrate how to do bidirectional i/o on a streaming
+ file descriptor.
+ (5/01)
+
+dev/graphcap
+unix/gdev/zfiogd.x
+ Modified the display server interface to use the ND driver. These
+ changes allow use of socket connections to talk to the display
+ server, but are backwards compatible and will work with older
+ display server that only support fifos.
+
+ 1. The "/dev/imt1" was deleted from the imtool graphcap entries and
+ replaced by the null string. This causes the GD (not ND) driver
+ to use a default network address for the connection: the default
+ is 1) personal (per-user) unix domain socket at /tmp/.IMT<uid>,
+ 2) standard imtool fifo pair at /dev/imt1[io], 3) fail.
+
+ 2. The GD driver was modified to use the ND driver instead of
+ the BF driver for generic device "imtool". The user may define
+ IMTDEV in their host environment to override the ND "pathname"
+ given in the graphcap entry for the device.
+
+ The new image display server ximtool also supports all three ND
+ protocols (tcp/ip sockets, UNIX domain sockets, fifos) and will
+ simultaneously listen for connections on all three. Multiple
+ connections are supported, e.g. the user can be running imexamine
+ on one frame while client applications load images into 1 or more
+ other frames. Problems can still result if multiple clients try
+ to simultaneously access the same frame buffer, or if different
+ clients have different notions of the frame buffer configuration.
+ (5/01)
+
+unix/hlib/mkpkg.sf.SUN3
+ Set the compile flags for evvexpr.x to "$xc -c -/Ns2048 -/Nx2048"
+ for the Sun-3 (larger compiler tables). (5/07)
+
+sys/gio/cursor/gtrctrl.x
+ Modified to set the SKIPOPEN flag on openws only for interactive
+ (inline) graphics kernels. A F_CANCEL on the graphics spool
+ buffer in the prpsio code was cancelling the openws for a subkernel
+ and preventing it from being passed to the kernel. The SKIPOPEN
+ is used to keep the giotr code from sending the openws again
+ when the grahics data is processed. A better solution might be
+ to just omit the gki_write in gtrctrl but the current approch
+ appears to work. This fixes several bugs seen recently with
+ graphics subkernels (SGI, IMD, etc.) where e.g. a gflush was
+ necessary to make a plot appear, or to keep separate plots from
+ being overplotted. (5/07)
+
+sys/fio/putline.x
+ Putline would flush the output buffer after the last character
+ written if the number of characters written exactly filled the
+ buffer. This was harmless in most cases, but would prevent using
+ putline to write the last character in a stropen file. This
+ behavior was not quite correct, as FIO normally flushes the buffer
+ only when one tries to write to the next character after the end of
+ the buffer.
+
+ This bug was causing the STF image kernel to fail to read STF
+ images, due to the use of stropen in the kernel. The bug was seen
+ only recently due to a recent fix to stropen which caused the top of
+ the buffer to be changed by one character. The routine was changed
+ to flush only when writing beyond the end of the current buffer.
+ (5/07)
+
+sys/fmtio/evvexpr.gy
+ The code for the || operator was incorrect, it was computing the
+ and instead. (5/07)
+
+pkg/images/imarith/imexpr.x
+ This code is supposed to generate an integer image for a boolean
+ operand when automatic determination of the output image type is
+ enabled, but this was incompletely implemented. Modified to
+ generate a TY_SHORT image if the operant type is boolean and
+ automatic determination of the output image type is enabled. (5/07)
+
+sys/fmtio/evvexpr.gy
+ Changed MAX_ARGS from 16 to 17 in the arglist structure to double
+ align the storage for the operand structs. (5/08)
+
+sys/mwcs/wfmspec.x
+ Modified wf_msp_init to fix a problem in the computation of the
+ inverse transformation which could occur when the first physical
+ pixel in an image was greatly different from the first logical
+ pixel. (5/08)
+
+---------------------------------
+Another 2.10.3 beta released and installed on all the downtown tucana
+sysems. (5/08/94)
+
+pkg/utilities/curfit.gx
+ Removed the explicit x axis limits to allow the GTOOLS default
+ buffer to be applied so that the end points don't fall on
+ the vertical axes. (5/10/94 FV)
+
+lib/evvexpr.h
+sys/fmtio/evvexpr.gy
+ Added padding to the operand struct to cause arrays of operand
+ structures to be double aligned. (5/10)
+
+sys/gio/cursor/giotr.x
+ This file was evidently not updated when the change to gtrctrl.x
+ was made on 5/07, but both were modified to fix the gflush or
+ overlaid plots problem. (5/10)
+
+sys/fmtio/mkpkg
+ Restructured the mkpkg so that the code which calls the generic
+ preprocessor is called both when mkpkg is run in the source
+ directory, and during a sysgen update. (5/10)
+
+sys/vops/mkpkg
+ Minor cosmetic edit. (5/10)
+
+pkg/images/geometry/t_geotran.x
+ In cases where the geomap database was undefined and the geometric
+ transformation was linear, geotran was unnecessarily overiding the
+ size of the output image specified by the user, if this size was
+ bigger than the default output size (the size of the output image
+ which would include all the input image pixels if no user shifts
+ were applied). (5/10/94, Davis)
+
+pkg/images/imarith/icaclip.gx
+pkg/images/imarith/iccclip.gx
+pkg/images/imarith/icpclip.gx
+pkg/images/imarith/icsclip.gx
+ The reordering step when a central median is used during rejection
+ but the final combining is average was incorrect if the number
+ of rejected low pixels was greater than the number of pixels
+ not rejected. See bug #244. (5/25/94, Valdes)
+
+dev/hosts
+ Modified irafks.e path to deneb on all the servers, added dynamo.
+ (6/3/94 MJF)
+
+pkg/images/imarith/icaclip.gx
+pkg/images/imarith/iccclip.gx
+pkg/images/imarith/icpclip.gx
+pkg/images/imarith/icsclip.gx
+ The restoration of deleted pixels to satisfy the nkeep parameter
+ was being done inside the iteration loop causing the possiblity
+ of a non-terminating loop; i.e. pixels are rejected, they are
+ restored, and the number left then does not statisfy the termination
+ condition. The restoration step was moved following the iterative
+ rejection. (6/6/94, Valdes)
+
+pkg/images/geometry/xregister/rgxicorr.x
+ The path names to the xregister task interactive help files was
+ incorrect. (6/13/94, Davis)
+
+math/nlfit/nlfit.gx
+math/nlfit/nlfitr.x
+math/nlfit/nlfitd.x
+ Fixed a divide by zero error in the nlscatter routine which occurs
+ if the fit has no degrees of freedom and the weighting type is
+ WTS_SCATTER. (6/13/94 Davis)
+
+math/nlfit/nlchomat.gx
+math/nlfit/nlchomatr.x
+math/nlfit/nlchomatd.x
+ Changed the singular matrix test to avoid problems with matrices
+ whose diagonal elements have values in the same dynamic ranges as
+ the machines epsilon. (6/15/94 Davis)
+
+pkg/utilities$t_polyfit.x
+pkg/utilities$pfregres.f
+ Added a trap for rmul values < 0.0 and > 1.0 to the polyfit routine
+ to avoid floating operand errors caused by trying to take the square
+ route of a negative number. (6/20/94 LED)
+
+pkg/images/geometry/geofit.x
+ A routine expecting two char arrays was being passed two real arrays
+ instead resulting in a segmentation violation if calctype=real
+ and reject > 0. (6/21/94, Davis)
+
+pkg/plot/t_surface.x
+ The surface task no longer calls error when the input array is
+ unsuitable for plotting (constant valued, entirely below floor or
+ above ceiling). The surf_limits procedure was modified to call
+ eprintf and then return an error value to the calling program, which
+ terminates the task quietly. This less drastic error exit will
+ allow [e.g., IRAF test] scripts to continue after calling SURFACE
+ with an invalid input image. (ShJ 6/23/94)
+
+unix/os/zfiond.c
+ Fixed a typo, fd2 was being used where fd1 was intended, in an
+ fcntl call after an open for a client fifo. (6/24)
+
+unix/os/zshlib.c
+ Fixed a syntax error on the last line, an extra ';' following a
+ stubbed out function declaration. (6/24)
+
+pkg/images/tv/imexaine/ierimexam.x
+ The Gaussian fitting can return a negative sigma**2 which would
+ cause an FPE when the square root is taken. This will only occur
+ when there is no reasonable signal. The results of the gaussian
+ fitting are now set to INDEF if this unphysical result occurs.
+ (7/7, Valdes)
+
+unix/gdev/sgidev/sgi2uapl.c
+unix/gdev/sgidev/sgi2ueps.c
+ Merged in changes from Solaris port having to do with the declaration
+ of a file descriptor as (FILE *) rather than int, added some #idefs
+ to sgi2uapl.c needed by Solaris. Also modified the header ID string
+ produced by sgi2uapl to be "%!PS", this is required by certain HP
+ LaserJet 4M printers. (7/8/94 MJF)
+
+pkg/utilities$t_polyfit.x
+ Revoved the dependent variable normalization which was not doing
+ anything to improve the numerical statbility of the routine and which
+ was causing problems in the computation of the reduced chi-squared
+ and standard deviation statistics.
+ (7/11/94 LED)
+
+sys/fio/zfiott.x
+ Modified the ttyio logging code to flush the output after each
+ log message. (7/23)
+
+pkg/images/tv/wcslab/wcslab.x
+ Fixed an initialization bug in wcslab that was causing the axis labels
+ of the plot to be drawn incorrectly the first time wcslab was run.
+ This was only a bug under 2.10.3
+ (26/7/94 Davis)
+
+pkg/images/geometry/xregister/rgxregions.x
+ The routine strncmp was being called (with a missing number of
+ characters argument) instead of strcmp. This was causing a bus error
+ under solaris but not under sun os whenever the user set the regions
+ parameter to "grid ...". (7/27/94 LED)
+
+unix/hlib/libc/kernel.h
+ Replaced this file with the version from the Solaris port, which
+ replaces the overused PFI definition by definitions of PFI, PFV,
+ and SIGFUNC. (7/30)
+
+pkg/images/geometry/xregister/rgxcorr.x
+ A procedure was being incorrectly declared as an integer function.
+ (8/02 LED)
+
+unix/os/zfiotx.c
+unix/os/zzstrt.c
+ The terminal driver (zfioty i.e. zfiotx) has long had a weakness
+ in that it had no protection against confusion over the terminal
+ state if the terminal was accessed by two or more different file
+ descriptors. This was the chief cause of the cursor hang problem
+ seen with xgterm occasionally. The ehist/eparam code in the CL
+ was using two different file descriptors to set the terminal modes,
+ and when the second when in and out of raw mode it would leave the
+ first descriptor thinking the terminal was in raw mode while it was
+ not, causing the cursor to be read in "cooked" mode. This would
+ cause the \r (CR) delimiter in a cursor read to be mapped to \n
+ hence making it impossible to read the cursor.
+
+ The terminal driver was rewritten to maintain an internal array
+ of descriptors of open terminal devices. When a file descriptor
+ is used to access a terminal device the driver maps the file
+ descriptor to its internal terminal device descriptor, which is
+ used to uniquely maintain state information for the device. This
+ ensures that the device is handled consistently regardless of what
+ file descriptor is used to set the device mode.
+
+ The zzstrt code had to be modified to call ZOPNTY on each of the
+ three stdio streams, to initialize the terminal device descriptor
+ for the user terminal. The driver looks for a special filename
+ ("unix-stdin" etc.) and uses the already open stream (stdin, stdout,
+ or stderr) if one of the standard streams is specified. (8/02)
+
+dev/graphcap
+ Changed the xgterm graphcap entry to recognize either \r or \n as
+ the trailer code for a cursor read. This is a safeguard to permit
+ terminating a cursor read should the tty port somehow get raw mode
+ cleared, e.g. by some third party process. (8/02)
+
+pkg/images/tv/imexamine/ierimexam.x
+ World coordinates printed in the 'r' profile graph are now formated.
+ (8/02, Valdes)
+
+unix/hlib/login.cl
+ Modified to eliminate the stty xterm case. This causes problem when
+ TERM is set to xterm in the host environment, but the terminal is
+ an xgterm. Now, if the user sets the terminal type to xgterm in
+ their mkiraf, this is the value which will be used. (8/10)
+
+unix/hlib/mkiraf.csh
+ Added "xgterm" to the list of suggested terminal types. (8/10)
+
+-------------------------------
+2.10.3 beta-3 release cut (Solaris). (8/10)
+
+pkg/images/iminfo/imheader.x
+ Changed the way this task tests whether a valid pixel file exists.
+ This fixes the bug where [NO PIXEL FILE] is printed when the pixel
+ file field in the header is something other than a filename. (8/15)
+
+-------------------------------
+2.10.3 beta-3 release updated (Solaris). (8/17)
+
+doc/ports/notes.solaris +
+ Installed notes file from Solaris/IRAF port. (8/17)
+
+unix/boot/spp/xc.c
+ Modified XC to support PKGENV values listing multiple packages.
+ Formerly XC supported multiple package environments (-p pkgenv)
+ on the command line, but permitted only a single package to be
+ given in PKGENV. MKPKG has long supported both options. (8/18)
+
+unix/os/zfiotx.c
+ The terminal driver had a bug affecting nonblocking raw mode
+ (IO_RAW+IO_NDELAY). IO_NDELAY was implementing using fcntl O_NDELAY
+ on the file descriptor, which sets asynchronous mode on the
+ device with which the file descriptor is associated, i.e., the
+ tty port for a terminal device. This will fail if some other
+ process, e.g. the unix wall/rwall task, opens and writes to the tty
+ device, clearing asynchronous mode and causing the next read of
+ the tty by the IRAF process to block. It was necessary to modify
+ ZGETTX to handle a nonblocking raw mode read as a special case.
+ Select() is used to poll the device to see if there is any data to
+ be read, and the read is performed only if there is data to be
+ read. (8/18)
+
+-------------------------------
+2.10.3 beta-3 release updated (Solaris). (8/18)
+
+local/login.cl
+ Modified as per login.cl revision of 8/10. (8/22)
+
+sys/fmtio/dtoc3.x
+ Fixed a bug that would prevent numbers from being rounded correctly
+ in special cases. The bug affected only fixed format where the
+ number being printed was smaller than the number of decimal places.
+ For example, 0.09 printed with %.1f would be printed as 0.0 as
+ rounding was not being done properly. (9/10)
+
+sys/etc/prchdir.x
+sys/etc/prenvset.x
+sys/etc/prupdate.x
+ Modified prupdate to add an argument "flushout", used to force flushing
+ of the command output to the specified subprocess. Modified prchdir
+ and prenvset to use the new calling sequence for prupdate. prchdir
+ calls prupdate with flushout=YES, prenvset uses flushout=NO. This
+ should fix a problem where chdir requests could be buffered and later
+ flushed after one of the referenced directories had been deleted,
+ causing the chdir sequence to fail. (9/14)
+
+sys/mwcs/mwrotate.x
+ When rotating about a nonzero center this code was failing to
+ shift back to the original center after the rotate. (9/16)
+
+sys/mwcs/mwtransd.x
+ The matrix multiplication in mw_axtran was not being done properly.
+ The code would work in the most common cases but would fail when
+ rotation (non-diagonal matrix) was combined was an axis flip. (9/16)
+
+unix/os/zfiotx.c
+ tty_reset was being called incorrectly in zclstx(). (9/17)
+
+sys/clio/clgcur.x
+ Removed the limitation imposed by this routine on the maximum
+ length of the string which can be returned. (9/20)
+
+pkg/images/tv/tvmark/mkmark.x
+ Replaced a seek to EOF call with a flush call in the the tvmark task
+ "add object" procedure. On SunOS systems the seek to EOF was apparently
+ forcing the flush while on Solaris systems it was not, resulting in the
+ added objects never being written to the coordinate file.
+ (10/3 LED)
+
+dev/hosts
+ added entry for hohokam at Ed Anderson's request. (ShJ 10/5/94)
+
+sys/vops/awvg.gx
+ Modified to always use double precision for the loop variables
+ sum, sumsq, etc., even if the data is single precision. (10/06)
+
+sys/mwcs/wfmspec.x
+ Code was added to perform a direct search if the default, faster
+ inversion algorithm fails. (10/07)
+
+pkg/dataio/doc/rfits.hlp
+ Removed a confusing reference to difficulties reading images with
+ very long lines from the bugs section of the help page.
+ (10/10/94 LED)
+
+pkg/images/imfit/fit1d.x
+ A Memc in the ratio output option was incorrectly used instead of Memr
+ when the bug fix of 11/16/93 was made. (10/14/94, Valdes)
+
+dev/termcap
+ Added a two-up termcap entry for lw16 called "lw16p2" (10/20/94 MJF)
+
+pkg/images/iminfo/imheader.x
+ Restructured the code which tests for the pixel file to avoid a
+ potential reentrant printf. (10/24)
+
+sys/fmtio/ctod.x
+ Fixed a typo in the comment specifying the lexical form of a
+ sexagesimal number. (10/24)
+
+pkg/images/imarith/imexpr.gx
+ The @file form of the expression parameter was failing due to the
+ newline at the end of the expression as read from the text file.
+ Modified to convert all newlines to spaces when the file is read
+ in. This should work as when invoked this way the included file
+ can only contain a single expression, and no expression syntax
+ requires a newline to be entered. (10/25)
+
+dev/termcap
+dev/graphcap
+ Added a new HP LJ 4 600dpi laserwriter to all servers (10/26/94 MJF)
+
+sys/gio/gim/gimlcmap.x
+ Fixed a case of an intrinsic function called with mixed type
+ arguments. (10/28)
+
+sys/gio/glabax/glabax.x
+ Modified to use the graphcap capability "fa" instead of "FS" to
+ test whether the output device has a fill area capability. (11/04)
+
+unix/boot/mkpkg/mkpkg
+ Changed a "cc" to a "$(CC)". (11/04)
+
+pkg/images/tv/imexamine/iecolon.x
+pkg/images/tv/doc/imexamine.imh
+lib/src/imexamine.key
+ 1. The "label" parameter was incorrectly attributed to the surface
+ plot instead of the contour plot.
+ 2. The "axes" parameter for the surface plot was missing in the code
+ though noted in the help.
+ 3. Updated the help and key file to show the label parameter belongs
+ to the e plot and to show the axes parameter.
+ (11/08)
+
+pkg/images/xregister.par
+pkg/images/doc/xregister.hlp
+pkg/images/geometry/xregister/t_xregister.x
+pkg/images/geometry/xregister/rgxcorr.x
+pkg/images/geometry/xregister/rgxicorr.x
+pkg/images/geometry/xregister/rgxcolon.x
+pkg/images/geometry/xregister/rgxdbio.x
+ The xregister task was modified to to write the output shifts file
+ in either text database format (the current default) or in simple text
+ format. The change was made so that the output of xregister could
+ both be edited more easily by the user and be used directly with the
+ imshifts task. (11/11 LED)
+
+pkg/images/geometry/xregister/rgxbckgrd.x
+ In several places the construct array[1++nx-wborder] was being used
+ instead of array[1+nx-wborder]. The Sun compilers did not catch this,
+ but the IBM/RISC6000 compilers did. (11/16/94, LED)
+
+dev/hosts
+ At eanderson's request, added entry for dyevushka and deleted helios.
+ (11/17/94 ShJ)
+
+dev/hosts
+ At eanderson's request, added entry for mimbres and changed equuleus.
+ (11/18/94 MJF)
+
+pkg/images/geometry/t_imshift.x
+pkg/images/geometry/t_magnify.x
+pkg/images/geometry/geotran.x
+pkg/images/geometry/xregister/xrgximshift.x
+ The buffering margins set for the bicubic spline interpolants were
+ increased to improve the flux conservation properties of the interpolant
+ in cases where the data is undersampled. (12/6/94, Davis)
+
+unix/boot/spp/xpp/xppcode.c
+ Increased MAX_STRINGS from 100 to 256. (12/14)
+
+pkg/cl/param.c
+pkg/cl/modes.c
+pkg/cl/operand.c
+ Made minor changes to improve handling of INDEF.
+ 1) When scanning into a string parameter the string "INDEF" is no
+ longer converted to an indefinite operand, it is left as string data
+ (the INDEF test was being performed unconditionally for all operand
+ types, which was incorrect).
+ 2) Fixed bugs in a couple of places were indefinite was being
+ confused with undefined, or where indefinite was being treated as
+ an invalid operand. (12/23)
+
+------------
+The following changes are being merged back in following the DEC Alpha/OSF
+port. (12/30)
+
+unix/hlib/libc/spp.h
+ Set XLONG to int (32 bits) instead of long. This should work for
+ both 32 and 64 bit platforms. (12/30)
+
+unix/os/zdojmp.c
+ This code assumed that jmpbuf was an int array and that a pointer
+ could be stored in the first integer element. This fails on 64
+ bit machines where pointers are 64 bits and ints are 32. Modified
+ to coerce the jmpbuf array to long so that both 32 and 64 bit
+ machines will be supported. (12/30)
+
+unix/boot/wtar/wtar.c
+ Fixed a bug in WTAR involving coercion of a pointer to an integer
+ (line 536, bp = ...). (12/30)
+
+sys/gio/gks/gcas.x
+ Changed the procedure name from "gca" to "gcas". There is already
+ another procedure in the same library called "gca". "gcas" is
+ supposed to be the type short version. (12/30)
+
+sys/gio/ncarutil/autograph/agrstr.f
+ Commented out statements number 901, 902: "no path to this statement".
+ These statements are never called as the code that calls them is also
+ commented out. (12/29)
+
+sys/gio/ncarutil/autograph/agsave.f
+ Same thing, statement 901. (12/29)
+
+sys/gio/ncarutil/conlib/consld.f
+ Commented out statement functions SCRTCH and IARVL. These are never
+ called and result in a warning message. (12/29)
+
+sys/gio/ncarutil/conrec.f
+ Commented out three lines around line 1226. These lines were no
+ longer used because other code had been commented out, and were
+ resulting in a "Variable XX is used before it value has been
+ defined" warnings. (12/29)
+
+sys/gio/nspp/sysint/encd.f
+ Commented out several lines that were no longer used and were causing
+ a "no path to this statement" warning. (12/29)
+
+math/deboor/setdat2.f
+math/deboor/setdat3.f
+ This library contains three files setdat.f, setdat2.f, setdat3.f
+ all of which contain a procedure "setdat", causing library conflicts.
+ These routines are not really part of the library anyway and are
+ only used to generate data for examples in DeBoor's book, but to
+ avoid the library conflicts I changed the names of the second and
+ third procedures to setdt2, setdt3. (12/29)
+
+pkg/cl/bkg.c
+pkg/cl/builtin.c
+pkg/cl/compile.c
+pkg/cl/config.h
+pkg/cl/debug.c
+pkg/cl/decl.c
+pkg/cl/errs.c
+pkg/cl/exec.c
+pkg/cl/gram.c
+pkg/cl/main.c
+pkg/cl/mem.h
+pkg/cl/modes.c
+pkg/cl/opcodes.c
+pkg/cl/opcodes.h
+pkg/cl/operand.c
+pkg/cl/param.c
+pkg/cl/prcache.c
+pkg/cl/scan.c
+pkg/cl/stack.c
+pkg/cl/task.c
+ The CL has long defined the dictionary and stack as arrays of
+ unsigned integer. This causes problems on a 64 bit machine like
+ the Alpha where integer and pointer are not the same size.
+ To avoid this problem a new type "memel" was defined in a typedef
+ in config.h. The CL code was modified as necessary to declare
+ all dictionary and stack storage and references using this new
+ type. (12/29)
+
+pkg/cl/scan.c
+ The varargs code in this routine failed to compile on the Alpha,
+ which defines va_list as a structure rather than a variable.
+ This caused a (va_list) cast to fail. After studying this for
+ a while I couldn't find any way to safely and portably use varargs
+ to fake an argument list as an array. The solution adopted was
+ to just make a normal call to sscanf, putting the variable number
+ of arguments on the argument list in the normal fashion as v[0],
+ v[1], v[2], and so on. The current implementation imposes a
+ limit of at most 32 arguments for a CL scan operation. (12/29-30)
+
+mkpkg
+noao/mkpkg
+ Added an entry for the "alpha" architecture. (12/29)
+
+unix/hlib/mkfloat.csh
+ 1. Modified to look for .E files as well as .e files.
+ 2. The script was failing because tar -tf would output file names
+ with a trailing space after the filename (surely a bug in OSF1 tar).
+ Had to add a filter to trim the whitespace.
+ 3. Modified the script to treat the "generic" architecture specially,
+ avoiding any attempt to restore any binaries etc. (12/29)
+
+sys/libc/zzdebug.c -> zztest.c
+ Renamed zzdebug.c zztest.c to avoid a name conflict with the zzdebug.x
+ in the same directory. (12/29)
+
+unix/hlib/libc/stdio.h
+ In struct _iobuf, changed the type declarations from long and int
+ to XLONG and XINT. (12/29)
+
+dev/hosts
+ Added an entry for "lyra" to the hosts table. (12/29)
+
+unix/os/zopdir.c
+ 1. Modified to use (conditionally) the newer versions of
+ opendir/readdir.
+ 2. Testing revealed a bug in this file. This was preventing commands
+ such as "dir /" from working on Solaris, due to a bug in the code
+ which strips trailing slashes from directory names.
+ 3. zopdir would pass back a pointer coerced to an int as the "file
+ descriptor" but this would fail on 64 bit systems where pointers
+ don't fit in 32 bits. Modified the routine to allocate a kernel
+ file descriptor for the directory and pass back a normal fd instead.
+
+ Items 1 and 2 above were actually made in the Solaris port. (12/30)
+
+pkg/dataio/fits/t_wfits.x
+ Wfits was using the name of the @file instead of the first file as the
+ root output fits file name if the number of output files was 1.
+ (1/18/94 LED)
+
+unix/os/alloc.c
+ Fixed a bug in alloc.e which could allow some files in /dev/ to be
+ allocated even though the file permissions didn't permit this. (1/18)
+
+tags
+ Edited this old tags file to change absolute pathnames such as
+ "/usr/iraf/sys/..." to "sys/...". (1/19)
+
+dev/hosts
+ Added lyra to this file on ursa. (01/20 jb)
+
+unix/os/zfiond.c
+ Added a check for the status returned by getstr() to avoid attempting
+ undefined operations on a null return value. (1/27)
+
+sys/fio/zzdebug.x
+ Added a task "daytime" to the FIO zzdebug. This demonstrates use
+ of the zfiond driver to connect to the TCP/IP "daytime" service to
+ print out the date and time. (1/27)
+
+hlib/extern.pkg
+ Added the ccdacq package from ursa to permit help to be accessed
+ via the irafhelp web page per Jeannette's request. (2/1 RLS)
+
+iraf/dev/hosts
+ Added katmai to the hosts files on tucana, ursa, gemini, bigx and
+ orion. (2/7/95 jb)
+
+pkg/math/curfit/doc/curfit.spc
+ Fixed a bug in the specification of the Legendre polynomials.
+ (2/15 LED)
+
+pkg/images/tv/imexamine/iejimexam.x
+ Fixed a pointer addressing error found by Zarate. (2/16 FV)
+
+pkg/plot/t_implot.x
+pkg/plot/pltwcs.x
+ When trying to plot a column of a 1D image the physical axis was
+ being set to zero and then used inapproprriately as a pointer offset
+ causing an error on the Dec Alpha port. The axis now defaults to
+ 1 and also the task now beeps when attempting a column plot rather
+ than plotting a point point line. (2/16 FV)
+
+sys/imio/iki/stf/stfopix.x
+ The pointer o_im (old image header) was being used in an expression
+ even for new (non new-copy) images. Whether or not the pointer was
+ actually referenced would depend on the Fortran compiler and how
+ it evaluated the expression. (2/18 1995)
+
+sys/gio/cursor/grcread.x
+ A call to grc_message was missing the "stream" argument. (2/23)
+
+pkg/system/help/helpdb.x
+ The final call to error() was missing the errcode argument. (2/23)
+
+sys/gio/gki/gkiexe.x
+ The code for GETCELLARRAY was incorrectly using zcall7 instead of
+ zcall6. (2/23)
+
+sys/gio/stdgraph/stgreset.x
+ Not all polyline and fillarea attributes were being reset when a
+ open or close workstation (stg_reset) occurred. Added initializations
+ for PLTYPE, FASTYLE, PLWIDTH. (2/25)
+
+unix/hlib/extern.pkg
+ Installed IMCNV for use on tucana. (3/2 MJF)
+
+pkg/images/geometry/xregister/rgxtools.x
+ Changed some incorrect amovr and amovi calls to the correct amovkr
+ and amovki calls. (3/15 LED)
+
+pkg/dataio/fits/fits_cards.x
+ Added some wfits code to filter any "END " keywords out of the
+ image header userarea. (3/17 LED)
+
+pkg/images/tv/doc/display.hlp
+ Clarified the explanation of the 'zrange' parameter to indicate that
+ if min/max values are defined they will be used, otherwise the image
+ is subsampled using nsample_lines to approximate the min/max when
+ determining the mapping. (3/22 MJF)
+
+pkg/plot/t_gkixt.x
+pkg/plot/doc/gkiextract.hlp
+ Increased the size of the index array from 2048 to 8192 to accomodate
+ very large metacode files. Added a note to the help page mentioning
+ the limit. (3/22 MJF)
+
+pkg/images/geometry/xregister/t_xregister.x
+ Added a test on the status code returned from the fitting routine to
+ prevent the xregister task from writing an output image when the user
+ quits the task in in interactive mode. (3/31/95, Davis)
+
+dev/hosts
+ Added 'vanilla' to the mountain sites on all servers. (4/5/95 MJF)
+
+sys/imio/iki/stf/stfrfits.x
+ Added an errchk for open. (4/03 1995)
+
+sys/fio/open.x
+ Added errchks for fgetfd, filopn, seek. (4/03)
+
+pkg/images/tv/mkpkg
+pkg/images/tv/wcslab/mkpkg
+ The general purpose routines in WCSLAB were moved into libds.a. (4/10)
+
+pkg/images/tv/doc/imexamine.hlp
+ Fixed a typo in the equation for ellipticity. (4/10)
+
+pkg/images/tv/imedit/t_imedit.x
+pkg/images/doc/imedit.hlp
+ The 'j', 'k', 'n', and 'u' keys were added to those recorded in the
+ logfile. (4/11, FV)
+
+sys/gio/imdkern/t_imdkern.x
+ The IMD kernel was modified to add a new debug option that will
+ work even when the kernel is run as a generic subkernel of the CL.
+ For example if we do a "set idkdebug = /tmp/idk.out" then the
+ kernel will log GKI input to the file ikd.out. In debug mode output
+ is flushed after every output line, hence one can do a "tail -f" on
+ the file to monitor the kernel during execution, to see what the
+ CL is sending it. Currently this feature is only available in the
+ IMD kernel but it would be easy to add it to other graphics kernels
+ if needed. (4/13)
+
+sys/etc/prpsio.x
+ The pseudofile i/o controller was modified to fix what has been
+ referred to as the "imdkern bug", where the IMD kernel would not
+ flush its output to the image display as it used to prior to 2.10.3.
+
+ What happened was that the addition of GUI support in 2.10.3
+ included support for bidirectional GIO, where the application sends
+ a request to the graphics server and reads back the response. The
+ pseudofile i/o system buffers messages in the graphics streams in
+ the CL and in order to support bidirectional transfers it is
+ necessary to cancel the i/o buffer for the graphics stream to
+ prepare for a possible response. No bug was found in this code, but
+ what was happening was that when a control message was sent to
+ PSIOCTRL a request such as close-workstation would write the GKI
+ request to the graphics stream; this stream is just a file buffer in
+ the CL and any data written there is not passed to the graphics
+ subkernel until the subkernel reads from its input stream. In most
+ circumstances subsequent graphics output would cause the buffered
+ control request to be passed on to the subkernel and this is what
+ was happening in versions of IRAF prior to 2.10.3. The addition of
+ the cancel-stream statements in 2.10.3 would cause these buffered
+ control requests to be discarded. In the case of imdkern the kernel
+ would never see the close-workstation request, and the output would
+ not be flushed until an event occurred such as shutting down the
+ kernel with gflush.
+
+ The fix was to modify the PSIOCTRL handling in prpsio.x to push an
+ XMIT request on the psio control stack, to cause the buffered
+ control requests to be passed on to the subkernel in the next
+ iteration of the pseudofile i/o controller. (4/13)
+
+kifndnode.x
+kignode.x
+kilnode.x
+kimapname.x +
+kishownet.x
+mkpkg
+ KI was modified to change the way logical node names are handled.
+ A logical node name is an environment variable which maps to a
+ node name from the dev$hosts table. Logical node names are used
+ to create symbolic links to physical node names, providing physical
+ node name independence, or to otherwise alias node names without
+ having to modify the hosts table.
+
+ The initial implementation of this feature was dangerous as logical
+ node names and other environment variables share the same name
+ space and inadvertent name collisions could occur. The fix was to
+ require a special syntax to define a logical node name: an environment
+ variable is treated as a logical node name only if the node delimiter
+ character "!" is appended to the value string. For example, "set
+ alpha = foo.bar.edu!" would define logical node alpha to be the same
+ as foo.bar.edu. (4/13)
+
+unix/hlib/motd
+ Version number incremented to V2.10.4BETA. (4/13)
+
+sys/fmtio/evvexpr.gy
+ This routine was modified as follows to fix bugs seen in IMEXPR.
+ 1. There was a bug affecting binary scalar/vector boolean operations
+ where the vector operand was the second operand: the type conversion
+ would fail if the vector operand was of type boolean. The routine
+ xvv_boolop was modified to treat any input boolean operands as
+ integer (they are stored in expressions operands as integers anyway),
+ this avoids the special case and is a bit more general. The test
+ case used was the expression "(J <= 5 && I <= 10) ? 0 : a".
+ 2. xvv_quest was modified to permit int as well as bool for the
+ input conditional. A bug was fixed where the routine would fail
+ if the input conditional was a scalar but the data operands were
+ vectors; the code was assuming a vector conditional in this case.
+ For example, "(J <= 5) ? 0 : a" would fail, as (J <= 5) is a scalar
+ (J is a constant when evaluating the expression for a line). (4/14)
+
+sys/gio/gascale.x
+sys/gio/grscale.x
+ These routines can modify or set a WCS but they were not setting
+ the WF_MODIFIED flag, a recent addition with the GUI support. This
+ fixes a problem first seen with IMPLOT where cursor reads would in
+ some cases print NDC coordinates instead of pixel coordinates. (4/15)
+
+sys/osb/miinelem.x
+ The miinelem routine was incorrectly rounding up to the next full
+ mii_type when computing the number of mii_type items that can fit in
+ a char array of a given length. (Bug reported by Phil Hodge May94).
+ (4/17)
+
+pkg/images/doc/fit1d.hlp
+ Added a description of the interactive parameter to the fit1d help
+ page (4/17 LED).
+
+sys/mwcs/mkpkg
+sys/mwcs/mwsave.x
+sys/mwcs/mwload.x
+ 1. The mw_save/mw_load routines are supposed to encode a MWCS in a
+ machine independent form and later restore it, but due to a bug the
+ encoded MWCS was not fully machine independent. mw_save uses pl_p2li
+ to compress the integer part of the MWCS descriptor, but mw_save
+ was using miipak32 to encode this for external storage. This is
+ incorrect since pl_p2li produces a type short rather than integer
+ array. The bug was harmless on big-endian machines like a Sun or
+ on any machine when the saved MWCS was read back on the same machine,
+ but would cause the saved MWCS to fail to load when tranferred to a
+ machine with a different architecture. The fixed code now uses
+ mii{pak,upk}16 to transform the data. mw_load can still read old
+ saved MWCS provided they were written on a machine of the same
+ architecture.
+ 2. mw_load now initializes the axis map to a 1 to 1 mapping as in
+ a call to mw_open to create a new MWCS (formerly the axis map
+ storage was zeroed following a mw_load). The axis map is not saved
+ and restored over a mw_save/mw_load sequence. (4/18)
+
+sys/mwcs/zzdebug.x
+ Added two new debug tasks "save" and "load". SAVE creates a dummy
+ MWCS, calls mw_save to encode it , and then saves it to a file
+ "mwcs.sav" in the current directory. LOAD calls mw_load to load
+ the named MWCS save file. Both routines call mw_show to display
+ the MWCS so that one can easily verify that it has been saved and
+ restored correctly. (4/18)
+
+sys/mwcs/iwewcs.x
+ The routine iw_enterwcs could set the RA axis incorrectly for a ra/dec
+ projection where the ra/dec axes were not axes 1/2 or 2/1 and the
+ CDELT keywords were used rather than the CD matrix. (4/18)
+
+sys/mwcs/imwcs.h
+sys/mwcs/iwctype.x
+sys/mwcs/iwpstr.x
+sys/mwcs/mwcs.h
+sys/mwcs/mwsaveim.x
+ The maximum number of WCS attributes was increased from 256 to 512.
+ The WAT and WSV keyword handling code was modified to permit more
+ than 999 keywords to be output; the format changes to omit the
+ underscore if the index value exceeds 999. These changes should be
+ backwards compatible while allowing more complex WCS to be stored.
+ (4/19)
+
+pkg/system/rename.x
+pkg/system/rename.par
+pkg/system/doc/rename.hlp
+ Modified the task to allow a destination directory to be specified
+ without changing the filename. A new "field" parameter option "all"
+ was added and made the default so the entire filename is changed (or
+ moved in the case of a destination directory). When field is set to
+ "extn" filenames without an extension will not have the new
+ extension appended so a filename isn't generated which can get
+ overwritten. (3/14/95 MJF 4/19 DCT)
+
+pkg/cl/builtin.c
+ Appending the output of a foreign task now works correctly; previously
+ it would overwrite any existing output file. For example, "ls >> foo"
+ will append the output of ls to file foo. The bug addressed here
+ affected only explicit redirection of the output of a foreign task.
+ Previous version of the CL would correctly redirect the output of a
+ foreign task so long as the task was called indirectly, e.g. from
+ within a CL script. (4/19)
+
+sys/etc/oscmd.x
+ Added clobber checking for the output redirection files if any.
+ (4/19)
+
+unix/shlib/mkshlib.csh
+ We had another one of those nasty occurrences where the iraf shared
+ library is rebuilt and suddenly nothing runs anymore (this happened
+ after the trivial modifications to oscmd.x above). The problem was
+ traced to the setting of the "environ" pointer in low shared image
+ memory by vlibinit when the shared image is mapped by zzstrt. The
+ environ variable is part of the Sun startup code and is one of the
+ first objects linked into the shared library image. The problem was
+ that the data for this variable was located in the end of the last
+ page of text, but since the text was mapped readonly a segvio would
+ occur when attempting to write to this variable. The fix, at least
+ for the moment, was to add a ".align 4096" to the end of V.s to
+ force the data segment to be aligned to a page boundary. (4/20)
+
+sys/imio/iki/stf/stfdelete.x
+ stfdelete now checks to see if the pixel file exists before trying
+ to delete it. It is not considered an error if there is no pixel
+ file. (4/20)
+
+pkg/cl/config.h
+ Doubled the size of the stack and dictionary. (4/21)
+
+unix/hlib/zzsetenv.def
+ The default printer and stdplot devices were changed to "lp", which
+ on unix systems is the default line printer device. If the user
+ has PRINTER set in their host environment IRAF printer output will
+ be directed to the user specified device. The default printer
+ device may still be overridden from within IRAF by setting an
+ environment variable or via a parameter override. (4/28)
+
+unix/hlib/libc/kernel.h
+unix/os/zawset.c
+ A number of changes were made to ZAWSET (called by BEGMEM) to improve
+ memory utilization for IRAF tasks that request and use very large
+ amounts of memory. These changes should be backwards compatible and
+ the usages of ZAWSET and BEGMEM were not changed.
+
+ 1. Modified to make it easier to determine whether the setrlimit
+ code is used on different platforms.
+ 2. Removed the setrlimit that was being performed at process
+ initialization time to set the soft limit on a processes memory.
+ It is questionable whether this should be limited by default on
+ modern systems which are mostly personal workstations, and it
+ is better to use the "limit" command in the CSH (or equivalent)
+ to do this outside of IRAF, under user control.
+ 3. In kernel.h, increased the default WSS to 8 Mb and the builtin
+ max WSS to 256 Mb. These values are used only on platforms where
+ ZAWSET can't determine the value from the UNIX kernel, e.g. using
+ getrlimit. Assuming MAXWORKSET is not defined (see below) the
+ max WSS value compiled into the IRAF kernel, e.g. 256 Mb, will
+ however serve as an upper limit on the amount of memory reported
+ as available to an IRAF task.
+ 4. Added support for an environment variable "MAXWORKSET". This
+ value if defined sets an upper limit on the working set reported
+ to a task via ZAWSET (or BEGMEM). This can be used to override
+ the builtin upper limit. If the platform supports getrlimit and
+ a memoryuse limit is defined which is less than MAXWORKSET, the
+ getrlimit value will be used instead: this the current limit,
+ as opposed to the maximum limit. The units of MAXWORKSET are Mb,
+ e.g. "setenv MAXWORKSET 32" sets the maximum working set to 32 Mb.
+ Since MAXWORKSET is used by the host-level kernel code it must be
+ set in the host environment, not in IRAF.
+
+ A quick survey of SunOS, Solaris, and OSF/1 shows that the system
+ default getrlimit returns the amount of available physical memory
+ (57 Mb) on OSF/1, but an "unlimited" value (2 Gb) on the Sun systems.
+ The OSF/1 value is what zawset ideally wants to return, i.e. the
+ maximum amount of physical memory available to the process before
+ paging occurs. This can be difficult to determine on many unix
+ platforms and currently the builtin kernel limit of 256 Mb will be
+ what is returned on platforms like SunOS/Solaris that don't report
+ the physical memory value. With further research we may be able to
+ find a way to do reliably return the correct value on platforms
+ like Sun, however this can be a very system dependent feature to
+ implement. In the meantime the MAXWORKSET environment variable,
+ or "limit" in the cshell (etc.) can be used to fine tune ZAWSET on
+ platforms that can't determine the max physical memory. (5/02)
+
+unix/hlib/zzsetenv.def
+ Changed "gterm" to "xgterm" for the default values of stdgraph
+ and terminal. (5/03)
+
+sys/gio/fpequald.x
+sys/gio/fpequalr.x
+ The comparison could fail if either operand was zero and the other
+ was a very small nonzero number. (5/10)
+
+------------------------------
+V2.10.4 distribution (beta test for the NOAO servers) prepared. (5/10/95)
+
+unix/hlib/login.cl
+ Added a note about the trailing "!" needed for "set node =" in
+ V2.10.4. (5/11)
+
+sys/etc/xerpop.x
+unix/hlib/libc/libc.h
+ Changed the C construct {XERPSH();stmt;}if(XERPOP()) to
+ {XERPSH();stmt;}if(XERPOPI()), and added a new routine XERPOPI to
+ xerpop.x. The original construct was incorrect as it was treating
+ the result of the boolean function xerpop() as an integer. (5/12)
+
+------------------------------
+V2.10.4 distribution upgrade prepared. (5/14)
+
+pkg/cl/scan.c
+ Fixed a nasty bug in the scan code affecting scans into a string
+ parameter; the string buffer was being improperly referenced. This
+ bug has been in place since the scan code was modified on 12/29/94
+ but evidently was never seen as IRAF is not exercised enough on
+ tucana. Showed up right away when V2.10.4 moved to the user nodes.
+ (5/15)
+
+unix/os/zawset.c
+ On Solaris it turns out that setrlimit, when used to set the soft
+ memory limit, sets a hard limit on memory allocation for the process,
+ causing malloc requests to fail if the set limit is exceeded. This
+ is not really the point of begmem/zawset, so the code was modified
+ to only call setrlimit if one attempts to increase the current "soft"
+ memory limit. Requests for less working set than the soft limit
+ do not result in a call to setrlimit, and the routine merely indicates
+ that the requested space is available. (5/15)
+
+unix/hlib/zzsetenv.def
+ Updated "version" to 2.10.4EXPORT. (5/19)
+
+unix/hlib/spy.cl
+ Rewrote spy.cl to work on both BSD and SYSV systems (SunOS and
+ Solaris in the case of Solaris/IRAF). (5/19)
+
+------------------------------
+V2.10.4 distribution upgrade prepared. (5/21)
+
+dev/hosts
+ Added Tod Lauer's machine seurat to hosts file on all servers (5/25 MJF)
+
+sys/imio/db/imgnfn.x
+ This code supported, for keyword selection, only naxis[1-3]. Added
+ support for axes up to 7. (5/26)
+
+sys/fmtio/evvexpr.gy
+ 1. Modified the conditional expression code (xvv_quest) to consider
+ the dimension of the condition operand as well as that of the two
+ data operands when computing the dimension of the expression result.
+ For example, if the condition is a vector but the two data operands
+ are scalars, the expression result should be a vector (formerly it
+ was a scalar). The datatype of the expression is still determined
+ solely by the datatypes of the two data operands.
+ 2. The condition operand for a conditional expression may now be any
+ integer type, i.e. short or long as well as int, in addition to bool.
+ If int is permitted it doesn't make much sense to exclude short and
+ long.
+ 3. The logical not code (e.g. "!a") was modified to permit integer
+ class operands (short, int, long) as well as boolean. (5/27)
+
+------------------------------
+V2.10.4 distribution upgrade prepared. (5/29)
+
+dev/hosts
+ Corrected path name to irafks.e for pyxis on all servers (5/31 MJF)
+
+dev/hosts
+ Added lonestar and tribble to all downtown servers (6/6 MJF)
+
+------------------------------
+IRAF V2.10.4 system copied to iraf.export and V2.11 development begun. (6/12)
+
+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)