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)
