diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /doc/notes.v210 | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'doc/notes.v210')
-rw-r--r-- | doc/notes.v210 | 9642 |
1 files changed, 9642 insertions, 0 deletions
diff --git a/doc/notes.v210 b/doc/notes.v210 new file mode 100644 index 00000000..41eec3c8 --- /dev/null +++ b/doc/notes.v210 @@ -0,0 +1,9642 @@ +System Notes File for IRAF Version 2.10. +Begun 15 May 1990. +------------------------------------------- + +pkg/cl/cl.par +doc/notes.v29 + +local/notes.v210 + +doc/bugs.v28 + +local/bugs.log +unix/hlib/buglog.csh +unix/hlib/motd +unix/hlib/zzsetenv.def + Switched IRAFX development systems to version 2.10. (5/15) + +unix/hlib/install + Added xyacc to the list of HSI tasks to be installed as command in + the unix local/bin. (5/16) + +dev/graphcap + Updated entries for devices uapl[123457] and vapl[123457] to include + newly measured values of xs, ys and ar. (5/21 ShJ) + +mkpkg +bin.dsux + +noao/mkpkg +noao/bin.dsux + +noao/lib/mkpkg.inc +noao/lib/mkpkg.sf.MIPS +noao/lib/mkpkg.sf.DSUX + +local/.login +unix/hlib/cl.csh +unix/hlib/install +unix/hlib/irafuser.csh [DSUX ONLY] +unix/hlib/mkpkg.inc +unix/mkpkg.sh +unix/setarch.sh + +unix/os/irafpath.c +unix/os/zgcmdl.c + 1. Modified DECstation/IRAF to change the architecture name from "mips" + to "dsux". Anyone having IRAFARCH defined in their environment as + "mips" will have to change it to "dsux" to run IRAF. + 2. A couple of the files in OS were modified to change #ifdef mips + constructs to also check for #ifdef ultrix. If both mips and ultrix + are defined it is a DECstation, otherwise at present we will assume + the OS is umips. (5/27) + +mkpkg +noao/mkpkg + Modified so that the same mkpkg file can be used for DSUX and MIPS + systems without change. (5/27) + +local/COPYRIGHT - +local/COPYRIGHTS + + Replaced the COPYRIGHT file by the more carefully prepared COPYRIGHTS + file from the network archive. (5/27) + +doc/ports/notes.mips - +doc/ports/notes.dsux + + Renamed the notes file for the DECstation port. (5/28) + +sys/mwcs/README + + Added a README file to MWCS, containing an interface summary. (6/5) + +sys/mwcs/iwewcs.x + The code which computes CRPIX when reconstructing the Wterm from a + FITS header was optimized with a "if (have_ltv)" but this was + incorrect, since the computation uses both the LTV and LTM portions + of the Lterm (hence it is necessary to test have_ltm as well). + The result was that, given an Lterm consisting of only a scale term + and no shift, the code could fail to restore the correct Wterm + reference pixel coordinate. (6/7) + +dev/termcap [tucana, orion, gemini] + Added Rob's 3 two-column landscape mode printer entries. (6/12/90 SRo) + +* + Removed world write permission from all iraf files. Only a few were + affected, but there were a few files and directories that happened + to have world write perm, and none should (too easy for users to + delete or modify files, accidentally or otherwise). (6/18) + +pkg/softools/mkttydata.hlp + Deleted the explicit instructions for performing a sysgen-relink, + which are no longer applicable to all versions of IRAF, and added + comments to the affect that use of MKTTYDATA to cache termcap or + graphcap entries is inadvisable for most sites. (6/19) + +sys/qpoe/QPOE.hlp + Revised and updated the section on QPEX; the documentation for this + section was out of date. (6/20) + +lib/syserrmsg + Changed the error message for SYS_QPUKNPAR from "attempt to delete a + nonexistent parameter" to "unknown parameter". This message is used + for all unknown parameter references, not just parameter deletions. + (6/22) + +sys/qpoe/qpgpsym.x +sys/qpoe/qpgmsym.x +sys/qpoe/qpaccessf.x +sys/qpoe/README + 1. The QPOE macro facility supports two kinds of macros, global macros + defined in an external QPDEFS type file which affect all QPOE file + references, and datafile-local macros defined as "macro" type + parameters in the individual QPOE file headers. There was a problem + with the latter feature (datafile-local macros) due to QPOE header + parameter references employing full macro expansion. A routine + such as qp_write would perform macro expansion on the parameter name, + and if the referenced parameter was the macro parameter itself, one + would get the parameter pointed to by the macro alias rather than + the macro parameter, making it impossible to access macro parameters + once defined. The solution adopted was to disable expansion of + datafile-local macros in low level header parameter accesses. + Datafile-local macros are still used in expressions, hence can be + used to define things like event struct fields names. Also, global + macros are still used in header parameter accesses, hence header + parameters may still be aliased using global defines. + + 2. The routine qp_expandtext was reclassed as an interface routine + instead of an internal routine. If aliasing of header parameters + using datafile-local macro parameters is desired, this routine may + be called to conditionally translate the parameter name before + accessing the parameter, allowing the name to be aliased. (6/24) + +unix/boot/rtar/rtar.c +unix/boot/rtar/rtar.hlp + Added two new switches to RTAR. + + -m Do not restore the file modify times. + -u Do not attempt to reset the user and group ids. + (6/25) + +sys/qpoe/qpclose.x + A qp_open to create a new qpoe file followed immediately by a qp_close + would create a file with no qpoe file header descriptor, causing an + error when the file was subsequently opened with qp_open. qp_close + was checking for the case of an open/close with no header writes and + was forcing a qp_bind in this case, but the QP_MODIFIED flag was zero + so the file header was not being updated. Added a QP_MODIFIED(qp)=YES + to force the file header to be updated, if qp_close is called on a + new qpoe file before any header modifications have been made. (6/26) + +sys/gio/imdkern/imdopen.x +sys/gio/imdkern/imdopenws.x + The imd_openws routine in the new IMD kernel was given a calling + sequence of imd_openws(devname,n,frame,color,mode) when the kernel + was first written. However, this routine is one of the externally + callable driver routines and the calling sequence is fixed as defined + by the GKI interface (the calling sequence must be the same for all + GIO kernels). The IMD kernel will work fine when run standalone, + but could die on a segmentation violation when called as a GIO + subkernel, since the subkernel interface is GKI. By chance this + escaped all our testing, as the argument list mismatch can easily + go undetected, depending upon the chance contents of the registers + or stack locations associated with the missing input arguments. (7/1) + +unix/hlib/mkiraf.csh + Modified the unix/iraf mkiraf script to prevent the user from running + mkiraf in an iraf system directory (any iraf directory other than + iraf/local). (7/5) + +unix/hlib/mkpkg.inc +unix/shlib/edsym.c + 1. In the tucana/irafx mkpkg.inc, deleted the -T from the default + link flags to allow editing of shared image symbols. + + 2. When shared image versions were added a while back I forgot + to add version support to EDSYM, the symbol table editor. The + program has been modified to examine the text segment of the + file being edited to determine the shared library version number, + and use this to access the correct shared image (e.g., S5.e is + the version 5 shared image). With these changes, executables + linked in the default way will again have the correct symbols + for the shared image (allowing use of adb or dbx to examine + locations in the shared image, without having to relink -z). (7/5) + +unix/boot/spp/xc.c + Modified XC to automatically disable the call to EDSYM (the symbol + table editor) when linking a host program (xc -h). (7/6) + +sys/imfort/mkpkg +sys/imfort/imfparse.x +sys/imfort/imfmkpfn.x +sys/imfort/imftrans.x + + 1. Due to the use of vfn_translate in imfparse.x, the directory prefix + field, if any, of the image name was being discarded. This would + prevent use of IMFORT to access images other than in the current + directory. The use of vfn_translate was inadvisable in any case, + as it performs more VFN translation than is desired, and IMFORT is + supposed to allow unrestricted use of host filenames. The fix was + to replace the call to vfn_translate by a call to a new internal + imfort routine imf_trans. This will still do a very limited amount + of escape sequence encoding on the image filename, allowing mixed + case and multiple "." delimited fields to be input and translated + as for IRAF vfns, e.g., on VMS. Since such filenames are not legal + in VMS (mixed case is legal but is not very useful in VMS) this + level of translation should be fairly safe. + + This was introduced into V2.9 on 11/28/89 (when the IMFORT pixel-file- + clobber bug was fixed). It is surprising that the problem was not + reported earlier. Most people must access only images in the current + directory. (7/6) + + 2. The call to vfn_encode in imf_parse was not quite right either. + vfn_encode only returns the next field of a pathname, and when + imf_parse was called with a path and a non-image 3 char extension, + part of the path would be lost. The solution was to replace the + call to vfn_encode by a call to the new imf_trans routine, which + avoids just this problem. (7/9) + +dev/hosts [tucana, orion, gemini] + Changed cmd field for draco, to use known object "241", which + currently points at usr$0:[rooke]irafks.com, but will shortly + point to usr$3:[irafext.kpnolocal.src.dni]irafks.com. (7/12 SRo) + +dev/graphcap [tucana, orion, gemini] + Added iism70d field for draco-hosted iis, aliased to iism70c & iism70l + for backward compatibility. Changed DD in default iism70 entry to + point to draco, using iia0, as we currently have no UNIX-hosted iis. + (7/12 SRo) + +unix/os/zmain.c +unix/os/zzsetk.c +unix/os/zfiopr.c + Added a new facility to UNIX/IRAF for debugging interprocess + communication (IPC). This feature will also be useful for debugging + tasks standalone, particularly in cases where a bug seen when the + task is run from the CL is difficult to reproduce when the task + is run standalone. + + The facility is this: if LOGIPC is defined in the host environment + when an iraf process is started, the process will create two files + PID.in and PID.out, where PID is the process id. Everything read + from the IPC input file is copied to the .in file, and everything + written to the IPC output (e.g., sent back to the CL) is copied to + the .out file. This is done only for connected subprocesses. + It will work for any connected subprocess, e.g., normal cached + processes and graphics subkernels in both foreground and background + CLs, but not the i/o of the CL itself since it is not driven by IPC. + + The IPC streams saved are an exact binary copy of whatever was sent + via IPC, including the binary IPC packet headers, binary graphics + data, etc. However, most IPC traffic is textual in nature, so it + will usually be possible to read the IPC files with a file pager, + or even "cat" them to the screen (not avisable if graphics data is + involved). + + A particularly interesting use of this feature is to allow a process + to be run under the CL in the normal fashion, then rerun under the + debugger using the saved IPC input to duplicate the input and actions + of the process when run under the CL. For example: + + % setenv LOGIPC + % cl + cl> dir + cl> logout + % unsetenv LOGIPC + + Will run the CL, saving the IPC of all subprocesses (x_system.e). + We can then run the system process manually, using the saved IPC + input: + + % $iraf/bin/x_system.e -c < PID.in + + To run the process under ADB or DBX, using the saved input: + + % adb $iraf/bin/x_system.e + :r <PID.in -c + or + % dbx $iraf/bin/x_system.e + dbx> r -c < PID.in + + Note that the redirection has to be given first for ADB, and last + for DBX. [In recent versions of SunOS there must be no space after + the "<" in the :r command to adb.] + + Running a task in this way is not identical to running the task + standalone, e.g. using a DPARAM file for parameter input, because + the exact runtime context of the process as run under the CL is + reproduced. The differences are subtle but can be important when + trying to reproduce a bug seen when the process is run under the + CL. For example, the functioning of the task is slightly differenct + when the -c flag is used, the environment is passed in via IPC rather + than being read from hlib$zzsetenv.def, and so on. Except for + possible kernel level differences associated with spawning the + process by forking a shell rather than the CL, the process should + execute identically as it did under the CL. (7/17) + +sys/vops/amov.gx + This routine could fail, corrupting the data array, in some + cases when the input and output arrays overlap. The same + problem exists in standard V2.9 iraf except that in most iraf + implementations, a host optimized version of AMOV is used, + hence the bug has not been seen. (7/19) + +sys/imfort/tasks/pcube.f + This file contained a subroutine containing the following sequence of + statements (irrelevant statements ommitted): + + subroutine pcuber (pix, nx,ny,nz, i1,i2, j1,j2, k1,k2) + real pix(nx,ny,nz) + integer nx, ny, nz + + On the MIPS, this produced a warning about nx/ny/nz already having + been declared. Probably when the compiler processes the REAL + statement it assumes the parameters are type integer. This seems + reasonable, so I moved the INTEGER card up before the REAL and the + warning went away. (7/19) + +sys/imfort/tasks/mkim.f + This task creates a test image where the pixel value is computed based + on the position of the pixel in the image. The relation being used + was (j*ncols+i), which is the pixel number starting at [1,1], except + that the value is offset by a line, which is ok but not what one would + expect. I changed it to ((j-1)*ncols+i). (7/19) + +vms/hlib/sigqueue.com + Added qualifiers /passall/nofeed to the ln03 print command. (7/20 ShJ) + +pkg/utilities/doc/polyfit.hlp + Added the missing "statistical" heading under the weighting section + in the polyfit task help page. (7/23/90 LED) + +sys/plio/pllpr.x +sys/plio/pllnext.x +sys/plio/pll2r.gx +sys/plio/pll2p.gx +sys/plio/plcmpress.x + These files each contained statements of the form + + (foo * I_SHIFT) + goo + + where foo is type short and I_SHIFT is an integer constant. The VMS + Fortran compiler, due to a misfeature or otherwise, evaluates a short + times an integer literal using short integer arithmetic, causing + integer overflow in the short integer intermediate expression. The + solution adopted was to replace the "foo" in expressions such as the + above by "int(foo)". (7/24) + +vms/os/zmain.c + The vms/iraf process main was modified to add support for calling + iraf tasks on the host system command line, a feature which was added + to unix/iraf some time ago. As with unix/iraf, any extra command + line arguments are passed on to the iraf main as the iraf command to + be executed. The vms/iraf version has the additional feature that + the process stdin and stdout/stderr may be redirected on the command + line, using the usual syntax <file >file >>file. This is NOT THE + SAME as redirecting the i/o of the iraf task, with 4>file etc. + arguments to the task. Both or either form of redirection may be + used, but the process main arguments must preceed the command to be + passed to the iraf main. (7/24) + +noao/lib/strip.noao + Added ONEDSPEC to the list of packages to be stripped; don't know + why this was missing. (7/25) + +pkg/utilities/t_curfit.x,curfit.gx + Moved the ic_close(rd) calls out of the input file/image loop + and into the main routine. The pointer to icfit was being freed + after the first file of data was fit and not reallocated before the + next fit was initiated resulting in a segmentation violation. + (LED 7/30/90) + +dev/hosts [tucana only] + Added adonis (engineering hp9000/370) to network for hpux testing. + (7/30/90 SRo) + +math/gsurfit/gsder.gx,gsderd.x + Corrected a typo in the gsder.gx routine which was causing a + pointer to be passed to the salloc routine instead of a size. + If the pointer addresses became very large this caused + an out of memory allocation error. This error has been in existence + as long as the package but only showed up on the MIPS. + (8/1/90 LED) + +sys/imio/iki/oif/oifmkpfn.x + Modified to check for the null image, and return "dev$null" as + the pixel file name in this case. (8/4) + +unix/boot/spp/xc.c + 1. All internal system executables called by XC (currently xpp.e, + rpp.e, and edsym.e) are now located using the iraf routine + os_sysfile, rather than searching through the host system + directories /usr/bin, /usr/local/bin, and so on. This ensures + that XC will always find these executables, regardless of where + the iraf host level commands xpp, rpp, etc. are installed (XC does + not even care if these are installed as user commands, anymore). + + 2. The technique used to locate host commands such as f77 and cc + was changed to the following sequence: [1] first the directories + defined by the user's $PATH are searched (using execvp), [2] the + internally defined directory SYSBINDIR is searched (this defaults + to /usr/lang on a Sun), [3] the internally defined directory + LOCALBINDIR is searched (defaults to /usr/local/bin). + + 3. When linking on a Sun/IRAF system, -lI77 is searched only if + the old (pre-V1.3) compilers are being used, as I77 has been + deleted with the V1.3 compiler. + + The result of the above change for Sun/IRAF is that the revised XC + will work with either the new V1.3[.1] compiler, or any of the old + compilers. If both compilers are installed, either may be + selected using $PATH. If the system contains only the new + compiler at /usr/lang and the user has not included this directory + in their path, XC will still find the compiler. (8/4) + + NOTE - Although IRAF can now make use of the new V1.3 compilers, + these are NOT fully supported yet. These appear to be largely new + compilers. A new set of system default compiler switches will + have to be developed, and the full iraf system recompiled from + scratch and tested before the new compilers are fully supported. + In particular, note that there is no guarantee that sources + compiled with the new compiler will link correctly with iraf + objects produced by the old compiler, or that old iraf objects + will link properly with the system libraries included with the + new compiler. The default iraf mkpkg compiler switches may not + be correct for the new compilers. Compiler bugs are likely. + +unix/boot/spp/xpp/decl.c +unix/boot/spp/xpp/xppcode.c + Modified the code which outputs runtime initialization statements + to output these statements after any DATA initialization statements + (they were coming out before the DATA statements). Runtime + initialization is used to zero the function value of real and double + functions upon procedure entry. (8/7) + +sys/qpoe/README +sys/qpoe/mkpkg +sys/qpoe/qpio.h +sys/qpoe/qpmacro.x +sys/qpoe/qpoe.h +sys/qpoe/qpopen.x + 1. The builtin interface default blocking factor for QPOE was changed + from 8 to 1. + + 2. The default blocking factor may now be specified individually for + each datafile, by defining the optional parameter "defblock" in the + QPOE header. If a datafile default is given this overrides the + builtin interface default; any global SET value overrides both, + and setting the block factor in the runtime filter expression or + in a runtime call to an interface seti routine will override both + the datafile and global defaults. + + 3. In a related change made while implementing the above feature, + qp_open was modified so that interface parameters set in global + SET statements (as in QPDEFS) will override datafile parameters + inherited from an existing datafile in a NEW_COPY operation. + In other words, if the user explicitly specifies a parameter such + as "pagesize" or "bucketlen" in their QPDEFS, this will override + the default value inherited from an old datafile when a new copy + is made. As before, any runtime qp_seti calls made once the new + datafile has been opened will override these defaults. This was + necessary to be consistent with the rule that the most recently + specified value for a parameter takes precedence. (8/8) + +pkg/system/directory.x + A couple of obscure bugs were fixed which affected unsorted + directory listings. (8/8) + +pkg/images/imarith/imasub.gx + Fixed a bug in the special path for subtracting an image from + the constant zero; i.e. negation via subtraction. (8/15) + +pkg/images/imutil/hedit.x + Modified hedit to use the maximum of the default task min_lenuserarea + value (28800) and the "min_lenuserarea" environment variable if + defined. The previous version always used the default value. (8/15 LED) + +dev/graphcap [tucana, orion] + Known object irafks.e is failing due to some problem with its I/O + channels at startup time; this happened apparently without any change + to VMS or IRAF software. IIS access via dni from tucana or orion + still works if the user has an irafks.com in their login directory. + Changed draco!iis to dnidraco!iis, so that the private irafks.com + is used. Will have to fix known object irafks.e later. (8/17/90 SRo) + +pkg/dataio/t2d/t_t2d.x + Increased OBUF_PAD, which controls the size of a data record read, + from 20000 to 32767 chars. This value limits the maximum size of + an input data record in the tape record, and it is a read error if + the actual record is larger. (Also increased SZ_OBUF to the next + larger power of two and increased the max ranges, not that the latter + is likely to matter). (8/22) + +dev/uhosts + Updated this file to reflect changes in the NOAO internet. This file + is a modified version of tucana's /etc/hosts file. (ShJ 8/29) + +dev/graphcap + Added entries for all colors of imd devices; color indices 202 through + 217 are now available. Also added a device "imddicomed" suitable for + drawing black, variable width lines destined for dicomed output via + the imdkernel. The imd entry was modified so xs=ys=#0.263, indicating + a physically square device. (8/30 ShJ) + +unix/hlib/config.h + Changed MT_SZBDEFIBUF (the default maximum input buffer size for + magtape i/o) from 32768 to 65535. This more nearly reflects the + maximum record size of most modern devices, and the change was needed + to permit the full range of blocking factors for tapes. (9/3) + +unix/os/zfiomt.c +unix/os/zfiomt.c.BSD + + Installed the temporary "hacked magtape driver" for SunOS, which + includes Exabyte support. This will be replaced shortly in V2.10 + but is what is being shipped in V2.9.1. This driver supports the + following combinations of devices and host drivers (given the + current chaotic situation with tape drivers on Suns it is unlikely + that any combinations not tested will work): + + 1/2" reel tape 4.0.3 all except ST (SCSI tape) driver + 1/2" reel tape 4.1 untested, but should work + + Exabyte 4.0.3 Sun ST driver, Ciprico RT driver + sparcstation under 4.0.3 not tested + Exabyte 4.1 Sun ST driver, except sparcstation + + 1/4" cartridge tape and 1/2" reel tape on the Sun SCSI driver (at + least under 4.0.3) is not currently supported. The Exabyte on the + sparcstation version of the ST driver is not currently supported + due to serious bugs in the sparcstation version of the ST driver, + which is different than any other version of the ST driver. + + The driver automatically determines whether the current system is + running 4.0.3 or 4.1 and adjusts it behavior accordingly. The + behavior of the ST driver differs from 4.0.3 to 4.1, and worse, + the driver ioctls changed, which prevents magtape code compiled + under 4.0.3 from even running on 4.1. zfiomt works around this + by using the hardwired values of the iocts for the two SunOS + versions. (9/3) + +unix/os/tape.c + + This file (not part of the runtime iraf system) is a host level + magtape test program, which should compile and run on most unix + systems. It is kind of like the unix "mt" program, except that it + runs as a command interpreter, allowing one to open a drive and + issue a series of commands to exercise the drive. All the + standard driver ioctls are provided, plus commands for reading and + writing data records, and various interpreter control commands. + The program is useful for exercising drivers (and drives) to + determine exactly what they do when the various driver ioctls are + issued. + + The following commands are provided: + + open [device [r|w]] rewind fsf [n] + close read [nrec [bufsz]] fsr [n] + log [file] write [nrec [bufsz]] bsf [n] + run <file> weof bsr [n] + verbose status quit + + The "write" command writes records of the given size (default 1024) + containing a comment such as "file M, block N" at the beginning of + each record. The "read" command prints out the first 80 printable + chars or so of each record read, omitting unprintable chars. These + commands can be used to prepare test tapes and determine to what + record the tape is positioned after a given ioctl or command is + issued. (The program is also useful as a crude mtexamine type + program). (9/3) + +unix/boot/spp/xc.c [Sun/IRAF only] + The SunOS version of the XC compiler, which makes a stab at trying + to support the version 1.3 Sun Fortran and other compilers, was + modified as follows: + + o When a compile is performed with the new compilers in the + path, the compiler runtime BIN directory /usr/lang/SC0.0 + (or whatever - the path is generated at runtime to reflect + whereever the user installed the compiler) is passed as + in -L/usr/lang/SC0.0 to the CC command used to link. This + is necessary because the version of CC used to link may be + the old C compiler, which will not automatically search + the compiler BIN directory /usr/lang. + + The actual library search path specified depends upon + whether FLOAT_OPTION is defined in the user environment. + For example, if FLOAT_OPTION is defined in the user + environment as "ffpa", the search path command line options + will be -L/usr/lang/SC0.0/ffpa -L/usr/lang/SC0.0 (where + the user specified path (/usr/lang) and BIN version (SC0.0) + are determined automatically at runtime). Referencing the + right version of each library is necessary in order to get + the library version optimized for the local floating point + hardware on Sun-3s. + + o The host libraries searched to link with the 1.3 compilers + were changed to -lF77 -lm. It appears that -lU77 was + eliminated in 1.3, as well as the -lI77 noted earlier. + + Using, e.g., f77 to perform the link would avoid the need to have + XC know the details of the host libraries but is probably not a + workable solution since iraf programs are not Fortran programs + ("host" programs linked with xc -h are not necessarily Fortran + programs either). f77 would set up the startup files etc. + required by f77 programs, whereas an iraf program is to the host + system a C program which uses some of the f77 libraries. If f77 + could be used to link a C program then it might provide an + alternative to having XC know what host libraries to link against, + but I doubt if this would work. + + It should be noted that while we are attempting to support the new + compilers, full support cannot be expected until the IRAF project + begins using these compilers routinely. (9/3) + + Addendum - Note on 1.3 compilers. Testing the new XC with the 1.3 + compilers on a Sun-3, I find that FLOAT_OPTION no longer works as + it used to. If FLOAT_OPTION is defined in the environment and one + does, e.g., a cc to compile a file, a message is printed warning that + FLOAT_OPTION is being ignored and the the default (fsoft) is being + used. It is necessary to explicitly compile with -f68881 or whatever + to get the desired architecture. This is not a problem for mkpkg or + fc, since these utilities automatically generate the -float arguments, + but if one calls xc directly the argument must be given. (9/4) + +dev/graphcap [orion, tucana] + Changed dni networking to draco back to normal (known object) mode + after fixing vms irafks.e startup problem (kpnolocal version). + (9/4/90 SRo) + +dev/hosts [orion only] + Added columba to hosts file (gemini & tucana were okay). (9/7/90 SRo) + +-------------------- +All tucana architectures and irafx@draco were updated to the latest snapshot +of V2.10. orion, pegasus, columba, cephus, and iraf@draco were updated to +V2.9.1 and the V2.9 distribution files rebuilt in the network archive. +(3-9 Sept.) + +sys/imio/db/idbfind.x + Commented out a couple of lines of code in the code which scans + an unblocked header. The erroneous code was harmless given a + normal header containing nonempty cards, but could result in header + cards being skipped if blank header lines were encountered. (9/11) + +doc/ports/notes.mips + + Archived the notes for the the MIPS port. (9/17) + +unix/os/tape.c + Installed a newer version which is more conservative about the use + of the status (NOP) ioctl. (9/17) + +math/curfit/cvrestore.gx,cvrestorer.x,cvrestored.x +math/gsurfit/gsrestore.gx,gsrestorer.x,gsrestored.x +math/surfit/isreplace.x + Changed all the int() calls to nint() calls in the above math + package restore routines. This is a totally safe way for the + math routines to do the required floating point to integer + conversions and removes any potential precision problems for + tasks which read the math package structures back from a text + file. This change was made in response to problems encountered + with reading text databases on the HP. (LED 9/18) + +unix/hlib/zzsetenv.def + Removed the default imdir=tmp$ entry. Having this in zzsetenv.def + prevents use of a host level environment definition to set the per-user + default, and isn't necessary as IMIO will default to imdir=HDR$ if + imdir is not defined. (10/2) + +dataio/doc/wfits.hlp + Added some comments to the wfits help page concerning the unwisdom + of writing to EOT on a blank tape. Updated the section describing + the tape blocking factors and added an example showing how + wfits can be used to write exabyte tapes with large blocking + factors. (LED 10/3) + +----------- +f68881,ffpa,sparc binaries updated on tucana. (10/16) + +unix/boot/spp/xpp/xppcode.c + Fixed a typo on line 888, changing "op >= &sbuf" to "op >= &obuf". + (10/19) + +pkg/images/imhistogram.par +pkg/images/iminfo/imhistogram.x +pkg/images/doc/imhistogram.hlp + Added a new parameter binwidth to the imhistogram task so that the + user can define the imhistogram resolution in terms of intensity + units or number of bins. (LED 10/26) + +pkg/images/tv/doc/display.hlp + Modified the description of zrange to note that the minimum and + maximum pixel values, if not already known, are estimated rather + than computed by examination of the full image. (11/5) + +sys/INDEX + + I added a MKTAGS procedure index listing to the SYS directory, + to make it easier for people to locate VOS routines without having + to know about MKTAGS (since few do, it seems). This file contains + a list of all the procedures defined in all the .x source files in + the sys$ directories, giving the calling sequence and source file + and line number for each. (11/8) + +dev/graphcap +unix/sun/imtoolrc + Added a new entry for the GONG Cache Monitor. (11/9/90 ShJ) + +sys/qpoe/qpexdebug.x + Modified to print the lookup table zero to NDIGITS_DP precision, + in the case of a double precision lookup table. (11/9) + +sys/qpoe/zzdebug.x + 1. Modified the `hlist' task to survive the case of a symbol + returned by qp_gnfn not being found by qp_gpsym; this can happen + when the symbol name is a macro. + 2. Modified the default debug event list struct to agree with that + of PROS/Einstein datafiles, for convenience sake when debugging with + this data (the zzdebug code is crude and uses a wired-in compile + time event struct). (11/10) + +dev/hosts +dev/devices +dev/devices.hlp + 1. Added node ursa. + 2. The 1/2" drives now have a default density of 6250 instead of 1600. + 3. devices.hlp file updated to reflect the above changes. + (ShJ 11/12) (CB 11/12) + +pkg/images/images.hd +pkg/images/rotate.cl +pkg/images/imlintran.cl +pkg/images/register.cl +pkg/images/register.par + Added src="script file name" entries to the IMAGES help database + for the tasks ROTATE, IMLINTRAN, and REGISTER. Changed the CL + script for REGISTER to a procedure script to remove the ugly + local variable declarations. Added a few comments to the scripts. + (LED 11/12) + +sys/qpoe/README +sys/qpoe/mkpkg +sys/qpoe/qpexgetat.x + +sys/qpoe/qpexattrl.gx + + Added the following new routines to QPEX: + + nc = qpex_getattribute (ex, attribute, outstr, maxch) + nr = qpex_attrl[ird] (ex, attribute, xs, xe, xlen) + + The qpex_getattribute routine is like qpex_getfilter, except that it + returns only that portion of the current compiled filter which + pertains to the named attribute. The filter expression for the + attribute is returned as a text string. The family of routines + qpex_attrl[ird] are similar, except that they return the filter for + the named attribute as a binary range list. In both cases, the + actual filter is stored internally in the QPEX descriptor as a + compiled program, hence the attribute or expression is only a + representation of the actual filter. Unless there is a bug they + should amount to the same thing, but one should be aware that the + internal form of the compiled filter is not a simple range list. + (11/12) + +sys/qpoe/zzdebug.x + Added a new debug task TFILTER, used to verify time filtering. Also + tests qpex_attrld, qpex_getattribute, and the use of QPEX and QPIO + independently, using qpex_seti to set the event attribute filter and + rewind the event list. Time filtering is tested by filtering the + event list once using the normal optimized time filtering code, + saving the x/y of each event which passes the filter in a memory + array. The event list is then rewound, the filter removed, + qpex_attrld called to get the time filter as a binary range list, + and the raw event list is manually filtered and the x/y of each + event which passes the filter saved in memory. The filter results + are then compared to see if they agree. (11/12) + + [I wasted half a day getting TFILTER working, due to a very uncommon + problem. Changing the name of the task in the task statement in the + QPOE zzdebug.x would cause QPEX parsing (totally unrelated) to fail + in some cases and work in others. I traced this to particular file, + but when it was recompiled the bug went away. The newly compiled + object, though, was identical to that on orion (V2.9.1). Short of + recalling files from a backup tape, it was impossible to look into + this further.] + +sys/qpoe/qpexeval.x + In testing the time filtering code with the new debug task I found + the following bugs. + + 1. The code which evaluates the filter expression for a single event + was not initializing the value of the expression to false before + evaluation. In most cases this step is redundant (which is probably + why I didn't put it in the original code) but it turns out that + there is a case in the lookup table code used to evaluate long range + lists where the old expression value is pushed before evaluating a + subexpression, and an undefined value could be pushed causing events + near a range boundary to occasionally be passed when they shouldn't. + + 2. The first thing the lookup table code does is map the data value + to a bin of the lookup table. This involves an INT operation, and + values a fraction of a data value left of the first bin of the table + would have a fractional negative value which INT would convert to + a zero, causing values just left of the first bin to erroneously be + mapped into the first bin. (11/14) + +unix/os/tape.c + Was opening the tape drive with mode 1 when open-write was specified; + changed this to open with mode 2, read-write. (11/15) + +sys/qpoe/qpexcode.gx + Nested range list evaluation lookup tables occur where a bin of the + table at level N maps to so many closely spaced ranges that another + lookup table at level N+1 is needed to evaluate the range list for a + value that maps into the bin. Using the new TFILTER debug task to + test nested floating time filter lookup tables, I found that a + couple of internal variables were not being saved on the stack when + the routine recursed to generate code for the new table. (This is + the first time this feature was ever tested, as it has not been + needed until now). (11/15) + +sys/qpoe/qpex.h + Increased the size of the program and data buffers used for + expression evaluation by QPEX. These can overflow at runtime + causing a program abort and the memory is dynamically allocated so + we may as well be more generous. There is still a builtin default + upper limit, but if someone does come up with a filter which is + large enough to overflow either buffer the size can be increased in + QPDEFS before compiling the filter. (11/15) + +pkg/system/doc/help.hlp + Added REFERENCES and PHELP to the "SEE ALSO" section. (11/16) + +unix/os/mkpkg.sh + Modified the bootstrap code to avoid compiling sources such as + getproc.c and tape.c into LIBOS, since these are not part of the + library. The new version compiles all z*.c files plus an explicit + list of other files which are part of the kernel, such as + irafpath.c, prwait.c, and so on. (11/19) + +pkg/images/doc/gauss.hlp + Added a detailed mathematical description of the form of the + Gaussian kernel used in the GAUSS task to the help page. (28/11/90) + +pkg/images/filters/t_convolve.x + CONVOLVE was not decoding the legal 1D kernel "1.0 2.0 1.0" correctly + although the alternate form "1.0 2.0 1.0;" worked. Leading blanks in + string kernels as in for example " 1.0 2.0 1.0" also generated + an error. Fixed these bugs and added some additional error checking + code. (11/28/90 Davis) + +dev/hosts [draco, iraf and irafx] + Changed path to irafks.e to use "bin.dsux" for cephus. Other + DECstation installations left as "bin.mips. Node equuleus uses + mips as IRAF architecture; couldn't check virgo (passwd changed?). + (11/28/90 CB) + +unix/boot/spp/xc.c + While testing the magtape driver code on Ursa (Sun 470, SunOS 4.1) + I had occasion to compile a file and found that XC failed with the + message "f77 not found". The following two changes were made. + + 1. There was an actual bug in the code for "run". This would build + the path of the executable, e.g., "/usr/lang/f77", but not use it, + calling execv with only the task name, e.g. "f77". Hence the routine + would only work if the executable was found in the user's path. + + 2. Evidently the V1.3 compiler cannot even execute unless the + directory containing the f77 driver (normally /usr/lang) is in the + user's path. Since we want XC to function properly whether or not + the user has /usr/lang in their path, I modified XC to use PUTENV to + add /usr/lang to PATH in the environment for the XC process, if f77 + is found in this directory. (If f77 is in some nonstandard location + then the user will already have the directory in their path). + (12/1) + +dev/hosts [tucana only] + Added madrona (George Jacoby) to network. + (12/4/90 FV) + +sys/qpoe/qpgettok.x + Edited the description of TOK_IDENTIFIER in the file header. The list + of legal identifier characters ommitted certain characters. (12/4) + +pkg/dataio/fits/t_rfits.x + Modified the rfits task so that it will supply a temporary root output + file name if old_irafname="yes" or quit with a clear error message if + old_irafname="no", in the case where the user sets the output file + to the null string "". (12/6/90 LED) + +dev/hosts + Modified the dev/hosts file on draco (iraf and irafx) so that + the kernel server was started on orion-gw rather than orion. + (12/6/90 jvb) + +pkg/system/cmdstr.x + Would ignore any parameter the name of which began with "mode". + Fixed to ignore only the mode parameter (I guess this is right; + actually it is not obvious if the mode parameter really has to + be skipped, although it should be safe to do so). (12/11) + +doc/ports/notes.dsux + Fixed a typo; a Dec 1990 date should have been Dec 1989. (12/13) + +sys/imio/impmap.x + The "flags" value was being passed to im_pmopen, rather than "mode", + causing im_pmopen to get an access mode of zero. This was harmless + when opening masks read only but prevented opening new masks. (12/14) + +sys/imio/immap.x + The case of a NEW_COPY .pl image (mask image) was broken out as a + special case. A mask image is created with mode NEW_IMAGE, set to + the logical size of the image being copied, and im_make_newcopy is + called to copy the header and other inheritable image attributes. + + This is not a normal create-mask operation because the new mask is + actually an image stored as a mask which is a new copy of another + image; this is not the same as a new mask which is created for use + with some reference image. The main difference is that a mask is + always associated with the physical image matrix, and inherits any + runtime section defined for the reference image, whereas an image + which is a new copy of another image is sized according to any + section defined for the old image. In other words, a new-copy .pl + mask-image created from a section of an existing image will be the + size of the section being copied, rather than the size of the full + image. Normal mask operations do not work that way, which is why + im_pmmap cannot be called directly in this case to make a NEW_COPY + mask. (12/15) + +sys/imio/impmmap.x +sys/imio/impmopen.x + The flag PL_BOOL (create boolean mask) was being set in IM_PLFLAGS + by im_pmopen, but that was incorrect as this routine doesn't have + access to the image descriptor. Moved the flag setting code to + im_pmmap. (12/15) + +sys/imio/impmhdr.x + +sys/imio/impmmap.x +sys/imio/imunmap.x + The IMIO image mask support was modified to save the image header in + the PLIO save file, and restore the header when the mask is later + mapped onto an image descriptor. The image title string and header + cards are stored in the mask "title" string as an arbitrarily long + string consisting of a number of lines of text. In effect, this + gives PLIO mask images (.pl images) the same header functionality + as, e.g., OIF format images. Mask images can now be dynamically + created, edited, etc., and have full headers, so they can be + considered full fledged images except for the one restriction that + the pixel type is always integer (with 28 bit unsigned integer + pixels). The semantics of accessing or copying sections, world + coordinates, etc., are the same as for any other image format. + Randomly accessing an image should be efficient despite the + compression, since the mask lines are compressed and indexed + individually. + + One possibly useful feature of image masks is that they represent + the first machine independent image format for iraf. Character + data is stored as byte packed ascii strings, and the save format + for mask image data is an MII short integer sequence. + + Mask images provide a general image compression capability for + integer images. If you try to store a floating image in a mask it + will work, but the data will be converted to integer (with + incredible compression if the data converts to zeros!). Since the + compression algorithm was designed for masks there will be little + compression for noisy 16 bit images. 32 bit integer images, or any + smooth (low noise) integer image will compress to some degree. + Compression factors for actual image masks, of course, will be very + large, with factors of 100-1000 being common. (12/17) + +sys/imio/iki/iki.h +sys/imio/iki/ikiinit.x +sys/imio/iki/mkpkg +sys/imio/iki/plf/README + +sys/imio/iki/plf/mkpkg + +sys/imio/iki/plf/plf.h + +sys/imio/iki/plf/plfcopy.x + +sys/imio/iki/plf/plfdelete.x + +sys/imio/iki/plf/plfrename.x + +sys/imio/iki/plf/plfaccess.x + +sys/imio/iki/plf/plfnull.x + + Added limited support to the IKI interface for PLIO image masks. + A new mini-kernel PLF was added; this consists of about half of + an IKI kernel (the access/copy/delete/rename primitives), with + the open/close, header access, and i/o functions being performed + directly in the IMIO code and in the IMPM code in IMIO. With + this change operations such as imaccess, imdelete, imrename, etc. + will work for .pl image masks as for the other image formats. + + In principle everything related to image masks should be isolated to + an IKI kernel, but the mask i/o stuff does not fit the current image + kernel model very well, and it was simpler to solve the problem as a + special case in the IMIO code. This will be cleaned up later as + part of the new image structures project when the IKI interface is + redesigned. (12/17) + +pkg/images/imfit/imsurfit.x +pkg/images/imfit/t_imsurfit.x +pkg/images/lib/pixlist.h +pkg/images/lib/pixlist.x + Changed the package prefix of the "pixlist" package, used internally + within IMSURFIT, from "pl" to "prl" (pixel range list) to avoid a + name conflict with the system interface PLIO. (12/18) + +sys/imio/immap.x + Modified so that the .pl extension does not have to be given + explicitly for the code therein to recognize a mask image. (12/18) + +sys/plio/plloadf.x + Modified to make specification of the .pl extension optional when + opening an existing save file. (12/18) + +sys/imio/immap.x +sys/imio/imunmap.x +sys/imio/iki/ikiinit.x +sys/imio/iki/plf/mkpkg +sys/imio/iki/plf/plfclose.x +sys/imio/iki/plf/plfupdhdr.x +sys/imio/iki/plf/plfopen.x + The special case nature of the code to map pixel mask images in + IMMAP led to further complications, to the point where it became + worthwhile to scrap this and move the open procedure into the + IKI PLF kernel where it belongs. Added open, update header, and + close procedures to the PLF image kernel and deleted the special + case code in immap.x and imunmap.x The main thing still missing + from this kernel is the i/o, which is still handled directly in + IMIO (pixel masks do not fit the virtual file model very well). + (12/20) + +sys/imio/imopsf.x + The code in this file which copies the descriptor of the reference + image was doing too much. Replaced by some code that copies only + selected fields. The concept of what a reference image means in + this case is still muddy, however, so I doubt if this stuff is right + yet. (12/20) + +sys/imio/imioff.x + The impkden computation could result in a divide by zero if the + logical block size was 1 char. Alignment does nothing in such a + case anyhow, so I put an IF around this code to skip it if the + logical block size is given as 1 char. This is the case in some + of the new image kernels which do not do anything so simple as + store pixels on a blocked device. (12/20) + +sys/qpoe/qpoe.h +sys/qpoe/qpgettok.x +sys/qpoe/qpioopen.x +sys/qpoe/qpioparse.x +sys/qpoe/qpexeval.x +sys/qpoe/qpexmodfil.x + QPOE has a parameter "deffilt" which can be used to define a default + event attribute filter for event i/o. Previously, either the default + filter was used or a user specified filter was used, i.e., if the + user specified a filter it would *replace* the default filter. This + was changed so that the user specifed filter would add to or modify + the default filter, on an attribute by attribute basis. In effect + the data is run through the default filter, then the result is run + through the user filter. + + The expected use of the default filter, which is stored in the + datafile with the data, is to exclude "bad" data from normal analysis. + Since all the data is nonetheless present, the default filter can + be overridden to get at the normally excluded data. This can be done + by editing the value of the deffilt parameter, deleting the parameter, + or by overriding elements of the filter in the user specified filter + at run time. + + For example, + + cl> countpoe "foo.qp[time:=@times]" + + would replace the time term of the default filter with the time list + from the file "times", preserving any other terms of the default + filter, whereas + + cl> countpoe "foo.qp[time+=@times]" + or + cl> countpoe "foo.qp[time=@times]" + + would modify the filter for the time attribute, passing only those + events which pass both the default time filter and the time filter + given in the file "times". The new assignment operator ":=" must + be used to override any existing filter term; if the usual "=" is + used, the default filter term, if any, remains in effect. + + The default filter is a string of the form "attr=expr[,attr=expr...]". + This is parsed at qpio_open time just as the user specified filter + is, hence the default filter may reference macros, include files, + etc. Operators such as qpex_getattribute and qpex_attrl will return + the final filter or range list as used to filter the data, produced + by combining the default and user filters. (12/27) + +sys/qpoe/zzdebug.x + Added a new debug task SETFILT, used to set the value of the "deffilt" + parameter in a QPOE datafile. (12/27) + +sys/qpoe/QPDEFS + 1. Added a comment at the top to make it more clear that this file + is only intended as an example of a QPDEFS file, and to give some + pointers regarding how to use the global macro facility. + 2. Changed the event structure definitions to match those now used + in qpoe$zzdebug.x. (12/28) + +sys/qpoe/qpexpand.x + This routine copies the input string to the output string, expanding + any macros or include file references in the process. The problem + was that qp_gettok returns a string token with the quotes removed, + and qp_expand was merely copying tokens out, resulting in the quotes + being stripped from string tokens. qp_expand was modified to + restore the quotes to string tokens written to the output stream. + I checked various other places where text is pushed back, and all + other instances preserved the quotes. (12/29) + +sys/qpoe/qpgettok.x + Added support for the builtin symbol or macro "$DFN". When + encountered in the input stream being processed by qp_gettok(), this + results in the datafile name being returned as a string token. This + can be used, for example, in macros used to call external tasks, + e.g., [time=`mytask($DFN,arg,...)`]. (12/29) + +sys/qpoe/qpiogetev.x + When rereading an event list opened and read earlier, and a PLRIO + descriptor was created, any existing PLRIO descriptor would not be + closed first. Added a plr_close call to deal with this case. (12/29) + +sys/qpoe/zzdebug.x + Added a new debug task TESTPOE, used to make simple artificial or test + qpoe files for testing purposes. This was used to check out a bug + report that events with x=y=1 would pass a filter containing a mask + which excluded this corner of the image, however I was unable to + duplicate the problem. (12/30) + +sys/qpoe/qpioparse.x + This routine was missing a call to qp_closetext(), causing it to leave + an open file descriptor behind. This would cause a task which did + many qpio_open() calls to eventually run out of file descriptors. + [FDEBUG is very useful to diagnose problems like this). (12/30) + +sys/qpoe/qpioopen.x +sys/qpoe/qpioclose.x + While working on other things I noticed that qpio_open() was not + setting the IO_EXCLOSE flag when calling qpex_open to open an + expression evaluator. This did not matter much as qpio_close was + not checking the flag to see if it needed to close the QPEX, but in + the rare circumstance that a new QPEX was set with qpio_seti() an + open descriptor would have been left behind. Also a QPEX passed in + with qpio_seti() woudl be closed by qpio_close() when it shouldn't. + Modified qpio_open() to set the flag and qpio_close to check it. + (12/30) + +lib/qpset.h +lib/qpioset.h +sys/qpoe/qpoe.h +sys/qpoe/qpio.h +sys/qpoe/qpseti.x +sys/qpoe/qpstati.x +sys/qpoe/qpioseti.x +sys/qpoe/qpiostati.x +sys/qpoe/qpmacro.x +sys/qpoe/qpioopen.x + Since the default filter (and probably mask eventually) are now much + more dangerous or noticeable than previously, I added switches in all + the usual places to disable the use of these defaults. Specifically, + in <qpset.h> we have + + QPOE_NODEFFILT + QPOE_NODEFMASK + + (default off, i.e., use default filter or mask. In <qpioset.h> we + have the same thing, just at the level of a specific QPIO descriptor: + + QPIO_NODEFFILT + QPIO_NODEFMASK + + And for global control by the user we have the new global set options + + set nodeffilt + set nodefmask + + which do what they say (omit or comment out these definitions to + enable use of the default filter and mask). (12/31) + +sys/qpoe/qpioparse.x + As an alternative to the "attr := expr" syntax, which can only + override any earlier filter terms for the referenced attribute (such + as terms of the default filter) I added some new syntax which can + disable the entire default filter and mask for a particular filter + expression. This is done by adding a "!" after the leading "[", and + before the new filter, e.g.: + + display "foo[!time=@times.lst,pha=(3,8:11)]" + + would temporarily disable both the default filter and mask. This + does not affect the use of ! within expressions since an expression + cannot be the first term of a filter. (12/31) + +sys/qpoe/qpioopen.x + A QPOE file is supposed to be able to contain more than one event + list, so the default filter/mask facility was modified to permit + a different default filter or mask to be specified for each event + list. For example, to define a default filter for event list "foo", + one would insert the parameter "deffilt.foo" into the datafile. + When looking for the default filter or mask, qpio_open() will look + first for the "def[filt|mask].<evl>" parameter, then "def[filt|mask]". + (1/1/91) + +sys/qpoe/qpiolmask.x +sys/qpoe/qpioopen.x +sys/qpoe/qpiosetfil.x + The default mask mechanism was modified to provide the same + semantics as the default filter. If a default mask is defined and + nodefmask is not set, the default mask is used as a spatial filter + for event i/o. If a default mask is defined, nodefmask is not set, + and a user mask is also specified, the user mask is edited using the + default mask as a stencil (the new mask is the user mask, with only + those pixels set which were also set in the default mask). Setting + nodefmask, QPOE_NODEFMASK, QPIO_NODEFMASK, or using ! or mask:= in a + filter expression disables the default mask. If the mask is set + with an explicit qpio_seti() call the default mask is ignored. (1/1) + +sys/plio/plsten.x + This routine was evidently not working at all, due to an internal + interface change that was never propagated to this routine. The + call to pl_linestencil was missing the maxpixval argument for both + the source and destination line lists. (1/1) + +sys/qpoe/qpexcode.gx + The QPEX parser syntax for bitmask expressions was generalized + somewhat to permit expression negation and parens, e.g., "%1", + "!%1", "!(%1)", "!(!%1)", etc. are now handled properly. Range + lists are still not supported for bitmask expressions, as it is + not clear that such a feature would be useful (one can just enter + a different bitmask instead). (1/1) + +sys/qpoe/README + Updated this file to reflect all recent changes to the QPOE + interfaces. (1/2) + +pkg/dataio/doc/rcardimage.hlp +pkg/dataio/cardimage/t_rcardimage.x + Modified the rcardimage help page to include an example of how + to reformat an odd-blocked cardimage tape with reblock. + Modified the rcardimage task to print a clearer error message + when it encounters an odd-blocked rcardimage tape. (1/3 LED) + +pkg/system/help/help.par +pkg/system/help/t_help.x +pkg/system/help/tlist.x +pkg/system/help/help.h + The HELP task was modified to add a new parameter "curpack", default + value "AskCL". With this default the help task will issue a clcmdw + to ask the CL the name of the current package; this is necessary to + preserve the current semantics of HELP (in the case of task redefs, + help for the task in the current package is returned). The reason + for the new parameter is to allow the current package to be + specified explicitly to avoid the clcmdw query, e.g., when calling + the task at the host level. (1/4) + +dev/hosts + Added noctua to iraf hosts table. (1/8/91 SRo) + +pkg/dataio/fits/fits_rimage.x +pkg/dataio/fits/fits_wimage.x + The scaling routines in rfits and wfits were modified to minimize + the precision lost when converting from real pixels to fits integers + and vice versa. (1/17/91 LED) + +dev/hosts + Added aquarius to iraf hosts table on tucana and Draco/iraf. + (1/17/91 jvb) + +unix/hlib/extern.pkg [orion, tucana] + Added steward package at iraftest level after numerous discussions. + (1/22/91 SRo) + +dev/devices [ursa] + Added argo and libra exabytes, since these machines are hosted by + ursa now. Just tacked onto the end (mt[fgh]); perhaps we should + establish noao conventions for which letters represent 9track, + cartridge, exabyte, dat. (1/28/91 SRo) + +pkg/images/gradient.par +pkg/images/laplace.par +pkg/images/gauss.par +pkg/images/convolve.par +pkg/images/doc/gradient.hlp +pkg/images/doc/laplace.hlp +pkg/images/doc/gauss.hlp +pkg/images/doc/convolve.hlp +pkg/images/filter/t_gradient.x +pkg/images/filter/t_laplace.x +pkg/images/filter/t_gauss.x +pkg/images/filter/t_convolve.x +pkg/images/filter/convolve.x +pkg/images/filter/xyconvolve.x +pkg/images/filter/radcnv.x + Modified the convolution operators (laplace, gauss, and convolve) to + make use of symmetries in the convolution kernel to compute the + convolution much faster. Laplace now makes use of radial + symmetry in the y direction as well as the x direction + resulting in a modest decrease in execution time. Gauss now + computes 2 indepedent 1D convolutions in x and y if the user + specified kernel is separable in x and y instead of the full 2D + kernel. (1/29/91 LED) + +dev/hosts + Added Doug Rabin's mozart to irafx host table. (1/30/91 SRo) + +-------------------------- +Tucana system upgraded from SunOS 4.0.3 to 4.1.1. (2/4) +Began revisions of Sun/IRAF to support SunOS 4.1. (2/5) + +./* + The iraf root was relocated to /u3/iraf on tucana, retaining link + at /usr/iraf. All of the iraf runtime files (sources and bins) are + now consolidated on /u3. (2/6) + +unix/* + Did a bootstrap of the system (mc68020 version) under 4.1.1 without + incident. (2/6) + +local/.login +local/.exrc + Made a number of changes for 4.1.1. Added OPENWINHOME and MANPATH + definitions. Added /usr/lang (default location of new Fortran + compiler) to the default PATH. FLOAT_OPTION is no longer defined + as it is not used by the new compilers and causes a warning message + to be issued. The default IRAFARCH for Sun-3 systems is now f68881 + if the f68881 binaries are installed. EXINIT is no longer defined, + added a .exrc file instead to allow for vi macros such as the very + useful "@". Deleted the susp/eof control in STTY, it seems time to + abandon the DEC defaults and go with the UNIX standard ctrl/z and + ctrl/d instead. (2/6) + +unix/boot/spp/xc.c + The SunOS version of XC was modified to look for the IRAFARCH + environment variable and add a -f68881, -ffpa, etc. switch to the + f77 or cc command line. Specifying any switch beginning with -/f on + the XC command line overrides the use of IRAFARCH. With this change + the architecture used for both compilation and linking is controlled + entirely by IRAFARCH, and FLOAT_OPTION is no longer used. So long + as IRAFARCH is specified and all modules of a program are compiled + with the same setting, mixing of modules or libraries compiled for + different architectures is ruled out. (2/6) + +unix/shlib/edsym.c + Looking at the edsym code I note that lseek(fd,o,L_SET) is now + considered obsolete and one is supposed to use lseek(fd,o,SEEK_SET) + instead, including <unistd.h> to define SEEK_SET. L_SET is still + defined for backwards compatibility so I think I will leave things + as they are for now. (No changes.) (2/6) + +unix/shlib/mkshlib.csh + 1. Modified to support the new Sun V1.3 Fortran compiler. The iraf + shared image is linked explicitly with LD and it is necessary to + specify exactly the directories, objects, and libraries to be + linked. These are much different for the new compiler than for the + old one. For example, for f68881 one links with + /usr/lang/SC0.0/crt0.o, /usr/lang/SC0.0/f68881/_crt1.o, the libm.a + in SC0.0/f68881 (linking with the SC0.0 version of libm.a causes + Mlog10[ds] to be unresolved), and the libF77.a in SC0.0. In + principle the directory /usr/lang can be relocated so this is + defined as a variable at the top of the file. + + 2. The following error message was being reported (by edsym) when + linking shared with XC under SunOS 4.1: + + cannot read shared image version number from <file>.e + + In the code which generates the S.s file (the shared library) I + moved ushlib from data space to text space. Evidently under 4.1.1 + the system is more clever and can have initialized data at addresses + for which corresponding file offsets do not exist in the executable + file. This results in a seek to an offset beyond the end of the .e + file, leading to the error message shown above. Since ushlib is not + modified at runtime we can just as easily have it in text space, + which avoids the problem. A simple workaround for this problem is + to link -e (no edsym symbol table editing). (2/6) + +unix/hlib/mkpkg.inc + Added -libmil (use inline templates) and -dalign (double align type + double data) to the list of default mkpkg compile switches for the + new compiler. By default the compiler will use optimization level -O3 + and on a Sun-4, will compile -cg87. This latter option is necessary + for code compiled for a Sun-4 to run on both older and newer Suns, + which have different floating point units. There is another option + -cg89 which tells the compile to take advantage of certain features + of the newer floating point units (e.g. hardware sqrt) but we can't + use that for binaries that must run on all sparc systems. (2/6) + +unix/hlib/mkpkg.sf.SUN3 +unix/hlib/mkpkg.sf.SUN4 + Commented out all the bug entries, we should start over with this + new compiler. (2/6) + +--------------------- +Started full f68881 sysgen/recompile. (2/6) + +unix/hlib/mkpkg.sf.SUN3 + The files vops$ak/{abnekx.x,abnex.x} and vops$lz/aveqx.x, all of + which contain equality comparisons of complex numbers, produced the + following message from the V1.3 compiler: + + warning: unexpected parent of complex expression subtree + + Compiling the files without optimization avoids the problem. The + floating point or complex equalities used in these routines are + questionable, but there does not appear to be anything wrong with + the code. (2/7) + +unix/boot/spp/xpp/decl.c + The d_runtime() routine returns in a char argument any runtime + initialization text needed for a procedure. The routine would do + nothing if no initialization was required, which was incorrect, as + any old text in the string buffer argument would then be reused. + Modified to write an EOS into the output string in this case. + This bug was introduced as a result of a recent change in V2.10 + iraf. (2/7) + +pkg/cl/compile.c + The CL failed to come up after the sysgen. This was eventually + traced to the compile() function. This contains a register flag + "status" which was used without being initialized. The routine + would operate correctly provided the (random) value of the variable + was anything other than ERR. This is highly likely which is why + the bug has gone undetected for so long. (2/7) + +unix/sun/Makefile + Changed the suggested values of FLOAT from fswitch/fsingle for + Sun-3/other to -f68881/"". (2/7) + +----------------------------------- +Sysgen of f68881 binaries for core system completed. +Sparc bootstrap completed; sparc sysgen begun. +Sysgen of f68881 binaries for noao packages begun. (2/7) + +unix/hlib/mkpkg/host.c + In the sparc sysgen I got an error message complaining that a $purge + directive had failed. It turns out that the unix/iraf version of + h_purge in host.c is a no-op and does not even return an exit status, + which is incorrect as the status of the routine is checked by the + portable mkpkg code. I modified it to always return an exit status + of OK. Checking the rest of the routines in the file, there was + one other routine which inconsistently returned status values and I + fixed that as well. (2/8) + +unix/hlib/mkpkg.inc + Deleted the "-dalign" switch from all X*FLAGS entries. It turns out + that the CL does not begin to double align double data, and cannot + be easily modified to do so, so this cannot be used, at least with + the CL C code (SPP pretty much double aligns all double data so there + is no problem there). This option only affects Sun-4s, i.e., the + already compiled f68881 code is not affected by this switch. (2/8) + +----------------------------------- +ffpa sysgen begun. (2/8) + +unix/boot/spp/xc.c + The ffpa sysgen went fine except that all the links failed with a + ffpa_used unresolved external message. This was occurring due to + the -Bstatic and the reference was occuring in one of the C libraries. + It was necessary to add a -f<float-option> switch to the CC command + used for the link to avoid the problem. XC explicitly links all the + right Fortran libraries for a given architecture, but it is still + necessary to pass the -fxxx flag for the benefit of the C libraries. + (2/8) + +bin.ffpa/S.e +bin.f68881/S.e +bin.sparc/S.e +unix/boot/spp/xc.c + Since shared image version support has been around for a year or so + and V2.10 no longer uses the older shared images I deleted S.e and + S4.e in the recent sysgens, leaving only the current (actually V2.9) + shared image S5.e. It turns out however, that XC needs to have a + file entry S.e in the directory containing the real shared image in + order to permit runtime searching to find the file (runtime searching + is necessary to provide architecture support, IRAFULIB support, etc.). + XC could search for S<n>.e except that it is difficult to determine + the shared image version number. The simple solution was to add a + file entry S.e in each of the core system BIN directories. This is + not an actual shared image, rather a zero length directory entry used + to flag the directory containing the real shared image or images. + If this marker file is not present the system will still run, but + link time EDSYM symbol editing will be disabled. (2/10) + +unix/shlib/mkshlib.csh +unix/os/zmain.c +unix/os/zzstrt.c +unix/os/zshlib.c + It turned out that zmain/zzstrt were using the ushlib vector to pass + the sh_debug flag, used to map the shared image text writable so + that debug breakpoints can be set (as in :r -w in adb). This was a + bit of a trick and doesn't work any more since I moved ushlib to the + text segment, so I made sh_debug an explicit variable in data space. + It is defined in the shared library (libshare.a) or in zshlib.o if + linking unshared. (2/10) + +unix/hlib/install + I added a rm -f preceeding each ln -s, since ln will not clobber + any existing link. This could occur in certain cases when link + /usr/include/iraf.h already existed but had the wrong value. (2/10) + +unix/as.sparc/oscmd.s + +unix/hlib/mkpkg.sf.SUN4 + After the sparc sysgen with the new compiler all OS escapes would + fail with the error "cannot open `A'". This was traced to a host + compiler error for file oscmd.x. The null string "" was being passed + to a subroutine; in Fortran this is a short array of length 1 + initialized to zero, but the compiler was initializing the value to + random garbage, in this case A (in tests I ran other values were + generated). Other identical cases of "" being passed to subroutines + in the same file were compiled correctly. Compiling without + optimization did not help, so I had to edit the assembler and place + the file on the special file list. (2/10) + +--------------------------------- +SunOS 4.1.1 / Sun Fortran 1.3.1 upgrades completed (except for full +testing and further bug fixing). (2/10) + +iraf/dev/devices [Ursa only] + Added mti to the devices file for libra's 9track tape drive. It + was interesting that there was no entry in the devices file when + libra was served by orion - but then the host names were the same + for both orion and libra's mtas. + +sys/qpoe/qpioparse.x + The event list filter syntax supports runtime specification of the + event coordinate system to be used with the notation key=(xoff,yoff) + where xoff,yoff are event field specifiers, e.g., (s0,s2). Fixed + two problems with the code in this routine which parses the KEY + keyword: 1) whitespace etc. was not being skipped properly, causing + the key= expression to be rejected, and 2) the offset values were + being used directly, which is incorrect, since at the user level + event struct offsets are specified in bytes, whereas in the QPIO + descriptor short integer offsets are used for efficiency reasons. + With these problems fixed the key=(x,y) feature checks out, i.e., + QPIO itself handles the key properly and it was only the parsing + routine which had problems. (2/10) + +dev/devices [tucana] + deleted mt device aliases no longer used in OS 4.1.1 (2/12 ShJ) + +sys/qpoe/qprenamef.x + This routine renames a header parameter by creating a new one and + setting the deleted bit in the old one. There was a subtle bug + which could cause the old parameter to fail to be deleted. The + routine was indeed setting the delete bit in the symstruct of the + old parameter, but it was doing so *after* adding the new parameter + to the SYMTAB symbol table. This was not correct because the + symstruct of the first parameter was being referenced by an absolute + pointer the value of which was computed before the new parameter + was added. In SYMTAB adding a new parameter can cause the symbol + table to be reallocated, invalidated any such pointer. (2/13) + +sys/qpoe/qpgnfn.x + 1. The pattern string input by the user was being used almost directly, + after only * -> ?* mapping. Any match was accepted. This is + incorrect because we want to accept matches which only match the + *entire* field name. It is necessary to constrain the match to + begin at the beginning of the string being checked, and verify that + the entire string is matched. + 2. Sorting was not working correctly. The package was using zero + indexed string buffer offsets internally, and calling STRSRT with + this index array. This is incorrect because STRSRT expects a one + indexed index array. The result was that the list would be sorted + ignoring the first character of each string. (2/13) + +sys/qpoe/zzdebug.x + Added a "sort" parameter to the HLIST task. (2/13) + +sys/imio/db/imgnfn.x +sys/imfort/db/imgnfn.x +pkg/images/doc/hedit.hlp + Since the QPOE gnfn code was derived from IMIO I figured the IMIO + code might have the same bug and indeed it did (the pattern matching + bug, not the sort bug). Fixing this should fix the problem of HSELECT + matching field names using a prefix-match rather than full match. + The IMIO version was mapping * to ?* and was constraining the match + to the beginning of the name, but was not checking for a full + length match. This was not completely trivial as the name being + matched is embedded in a FITS card, hence space or "=" terminates + the name, rather than EOS. (2/13) + +sys/ki/ki.h +sys/ki/kighost.x + Added support for an optional environment variable "irafhostnametable". + If defined, this specifies the host pathname of the hosts file to be + used for iraf networking. The default is dev$hosts. (2/13) + + [Changed variable name to "irafhnt". The original name was too long, + this could conceivably cause problems on some systems. (5/13)] + +unix/hlib/mkpkg.sf.SUN4 + Evidently with the latest OS, the sparc register set is no longer + saved with the version of SETJMP found on a Sun-4. This would cause + a process executed on a Sun-4 to die in the iraf main during error + recovery, upon return from the ZSVJMP call. Compiling without + optimization so that the compiler does not cache values in registers + seems to avoid the problem. I added etc$main.x to the special file + list to be compiled without optimization, although this is probably + going to be sufficiently common problem that we might want to + consider some more machine independent way of always compiling + without optimization routines that use ZSVJMP. (2/14) + +pkg/images/doc/hedit.hlp +pkg/images/doc/hselect.hlp +pkg/images/doc/imheader.hlp +pkg/images/doc/imgets.hlp + Added a reference to the imgets and imheader tasks in the SEE ALSO + sections of the HEDIT and HSELECT tasks. Added a reference to the + HSELECT and HEDIT tasks in the SEE ALSO sections of the IMHEADER + and IMGETS tasks. (2/22/91 LED) + +pkg/images/imfit/imsurfit.x + Fixed a bug in the deviant pixel rejection code in the IMSURFIT + task. If the parameter upper > 0 and lower = 0.0 or vice versa + the rejection limits were not being computed correctly. In the + former case all point with negative residuals were rejected + instead of none and in the latter case all points with positive + residuals were rejected instead of none. (2/25/91 LED) + +sys/fio/getlline.x +sys/fio/glongline.x + Added some comments to the file headers noting that the size of + the output buffer must be at least SZ_LINE characters larger than + the length of the longest line to be read. (3/01) + +sys/mwcs/iwewcs.x + The value of the (obsolete) FITS keyword CROTA2, which is input in + decimal degrees, was being used without first converting to radians. + There is no problem when the CD matrix notation is used instead. (3/12) + +pkg/images/tv/display/sigl2.x + The routine si_blkavgs, which is used to block average an image + (when scaling a large image to fit into a small display window) + would accumulate the sum of several short integer image lines in + a short integer buffer. This could lead to integer overflow in + the case of images with large pixel values. The routine was + modified to accumulate into a buffer of type long. (Note that + the problem affected only block averaging in Y, X was being + handled correctly by the vector operator ABAV.). (3/20) + +dev/hosts + Updated grus from 68881 to sparc. (3/21/91 SRo) + +dev/hosts + Added herbie, Stuart Jeffries' new workstation to table. (4/2/91 SRo) + +sys/fio/fstati.x +sys/fio/fmkpbbuf.x + 1. A fstati on F_UNREAD returns the number of unread characters in the + file buffer. This was ignoring any pushback; the fstati routine was + modified to count pushed back data as well as any data remaining to + be read in the current buffer area. Zero will be returned only if + the file buffer is empty and there is no pushed back data. + 2. fmkppbuf (make pushback buffer) will now automatically create the + normal file i/o buffer if any pushback occurs. Probably this is not + necessary but we may as well make sure that pushback before any file + i/o occurs is not different than after i/o has occurred and a buffer + has been created. (4/2) + +sys/imio/iki/oif/mkpkg +sys/imio/iki/oif/oifgpfn.x + Added an "include <knet.h>" to oifgpfn.x. This is needed for the + zfsubd call in the routine. (4/3) + +sys/ki/kfsubd.x + Was not returning the length of the output string correctly in + the case of a file on the local node, but with the node name + prefix included. (4/3) + +dev$hosts + Added khaki, lapis, taupe, scarlet, and elsol to dev$hosts on + tucana, orion, gemini, and ursa. (4/5 jb) + +pkg/images/geometry/geofit.x +pkg/images/geometry/geogmap.x +pkg/images/doc/geomap.hlp + Cross-term fitting will now work in the case where xxorder=2 + and xyorder=2 (x fit) and in the case where yxorder=2 and + yyorder=2 (y fit). (4/9/91) + +dev$hosts + Added aliases to dev$hosts on tucana, orion, gemini, and ursa + for machines on mountain (machine.kpno.noao.edu). (4/10 jb) + +hlib$extern.pkg + Swapped RV0 for RV since this will be the new package. No tucana + users are working w/ RV at present anyway. (4/16 MJF) + +pkg/images/geometry/t_blkavg.x +pkg/images/geometry/blkavg.gx +pkg/images/geometry/blkavg.x + The blkavg task was partially modified to support complex image data. + The full modifications cannot be made because of an error in abavx.x + and the missing routine absux.x. (4/18/91 LED) + +pkg/images/imarith/t_imcombine.x + Changed the order in which images are unmapped to unmap the output + images last. Closing the input images frees file descriptors + which are needed for the temporary file used when updating + STF images. Previously IMCOMBINE would fail for STF images which + used the full number of file descriptors, had a sigma output + image, and a logfile. (4/22/91, Valdes) + +math/curfit/cv_b1eval.gx +math/curfit/cv_beval.gx +math/curfit/cv_feval.gx +math/curfit/cvaccum.gx +math/curfit/cvacpts.gx +math/curfit/cvchomat.gx +math/curfit/cvfree.gx +math/curfit/cvinit.gx + Did some cleaning up in the .gx files to make the code easier to + read. (4/23/91, LED) + +sys/ki/ki.h + Increased the maximum number of nodes from 64 to 128. This is only a + stopgap measure; eventually the code should be rewritten to eliminate + the fixed size static host name table. (4/29) + +dev/devices.hlp +dev/graphcap +dev/termcap + Added "lw6" and removed "imagen" from these files on tucana, gemini, + ursa, orion and irafx@draco. (4/30 ShJ) + +pkg/images/doc/imarith.hlp + Fixed some formating problems in the IMARITH help page. (5/2/91 LED) + +math/curfit/cvpower.gx + Changed the amovk$t (INDEFR,,,) call to amovk$t (INDEF,,,) to avoid + the double precision version of the routine being called with + INDEFR. This problem was caught with f2c on the Mac. (5/6/91 LED). + +math/gsurfit/gs_f1deval.gx + Changed the amulk$t (,,,2.,,,) call to amulk$t (,,,2$f,,,) to remove + a type dependency mismatch in the routine. This problem was caught + with f2c on the Mac. (5/6/91 LED). + +math/curfit/cverrors.gx +math/curfit/cvpower.gx +math/curfit/cvrefit.gx +math/curfit/cvrestore.gx + Finished cleaning up the .gx files in the curfit directory. (5/6/91 LED) + +unix/hlib/login.cl + The line + + if (access ("home$loginuser.cl") cl < "home$loginuser.cl" + + causes the following statement to be ignored if the IF is true. + This is a CL bug, but for now the workaround is to add a null + statement ; to the line following the IF. (5/6) + +unix/sun/imtoolrc + Added a new config imt31|imtret for the Reticon CCD (1240x400_ + at the request of CTIO. (5/8) + +lib/math/curfit.h +lib/math/gsurfit.h +lib/math/iminterp.h +lib/math/interp.h +lib/math/surfit.h + Added dictionary string definitions for the interpolator types and + weights. Use of these strings insures that strdic/clgwrd will + return the correct type code. Currently one has to assume the code + definitions will not change or put a lookup table with a data + statement containing the macro definitions. The code would also + have to be modified to add new types. The dates were restored to + their original values to avoid recompilation. (5/9, Valdes) + + [I updated the dates on the above files and performed sysgen updates + over the weekend. It is dangerous to modify files without modifing + the file date, as this can break various automatic system maintenance + procedures. (5/11DCT)] + +unix/hlib/login.cl + The noao and proto packages are now loaded by default in the standard + login.cl. This indirectly includes images, tv, and plot. (5/11) + +pkg/images/imarith/t_imarith.x + There was a missing statement to set an error flag if the operand + image dimensions do not agree. (5/14/91, Valdes/Schaller) + +pkg/images/minmax.par +pkg/images/imutil/t_minmax.x +pkg/images/imutil/minmax.x +pkg/images/doc/minmax.hlp + Modified the minmax task to compute the minimum and maximum + pixel values with the correct precision if the input images are + of type double precision or complex. Note that does not get + around the fact that the minimum and maximum pixel values are + stored in the image header as type real. (5/16/91 Davis) + +pkg/images/listpixels.par +pkg/images/iminfo/listpixels.x +pkg/images/doc/listpixels.hlp + Modified the listpixels task to print the image pixel coordinates + in logical, physical or world coordinates. The default is logical + as before. (5/17/91 Davis) + +unix/boot/spp/xc.c +unix/boot/mkpkg/main.c +unix/boot/mkpkg/mkpkg.h + These tasks have supported multiple -p pkg arguments for some time, + but would only pass one such argument on to subprocesses. XC was + modified to pass multiple -p pkg arguments on to XPP and MKPKG was + modified to load the mkpkg.inc file for multiple enviroments + (formerly it would load multiple environments, but would only read + one mkpkg.inc in addition to the global core system one). The PKGENV + environment variable was generalized; this can be now be a + whitespace delimited list of packages, not just a single package + name. It was not necessary to modify MKPKG to pass -p pkg stuff + on to XC, since this is done explicitly in the package mkpkg.inc + files (by redefining XFLAGS and LFLAGS). (5/21) + +sys/vops/asqr.gx + Changed to test for <0 rather than <=0, since taking the square root + of zero is a legal operation. (6/3) + +pkg/dataio/fits/fits_read.x +pkg/dataio/fits/fits_write.x + Modified the fits reader and writer to deal correctly with + image sections in the IRAFNAME header parameter. (11/6 LED) + +pkg/images/iminfo/imhistogram.x + The imhistogram task has been modified to print out the value + at the middle of the histogram bin instead of the value of the + left most edge if the output type is list. (11/6 LED) + +pkg/dataio/doc/wfits.hlp +pkg/dataio/fits/wfits.h +pkg/dataio/fits/t_wfits.x +pkg/dataio/fits/fits_write.x +pkg/dataio/fits/fits_wheader.x + The wfits task has been modified to write IEEE format FITS files, + fits bitpix = -32 and -64, instead of scaled integers if the input + image pixel type is real or double respectively and if the wfits + parameter bitpix is left at the default. If the user overrides the + default and elects to scale the data, a warning message with an + estimate of the maximum precision loss is provided. (11/6 LED) + +dev/termcap + Fixed typo so that "stty wyse" works, not just "stty wyse75". + (6/12/91 SRo) + +dev/devices [gemini only] + Updated the devices file on gemini for Tom Duvall's two Exabytes + on his workstation. They are called rst0 and rst1 so this + causes duplicate entries in the devices file for different + mt[devices]. (6/13/91 jb) + +sys/etc/mkpkg +sys/etc/qsort.x +sys/etc/xqsort.x + + Added a new routine XQSORT, a variant on the old QSORT routine. + This is identical to qsort except for an extra argument which is + private to the compare routine and merely passed on to the compare + routine by xqsort. The intent of this is to avoid the need for + initialization routines and commons to pass context information + on to the compare routine. The datatype of the "private data" + argument is int but a pointer can be passed as well, as in C where + an integer cast is used to pass pointer data in an integer. Since + a pointer can be passed, if necessary any arbitrarily complex + descriptor can be passed on to the compare routine. (6/15) + + !NOTE -- the name of this procedure had to be changed to "gqsort". + !See note below. (6/27) + +lib/clio.h +lib/clset.h +sys/clio/README +sys/clio/mkpkg +sys/clio/clcache.x +sys/clio/clstati.x +sys/clio/clepset.x + +sys/clio/clgpseta.x + +sys/clio/clppseta.x + +sys/clio/clgpset.x +sys/clio/clppset.x + 1. Added a full CLIO interface definition to the README file. + + 2. The pset routines cl[gp]pset, used to get/put the values of + string valued parameters, where named to cl[gp]pseta as the old + names were too misleading (what does it mean to get/put a pset). + The old routines are retained for compatibility but are now + considered obsolete. + + 3. The CLGFIL routines are also now considered obsolete. clgstr + and fntgfn etc. should be used instead. It doesn't make any sense + to have a system routine that arbitrarily combines two such + different facilities as get-string and the file name template + package (if this is justified then any number of other equally + logical combinations are possible too). + + 4. Added a new routine CLEPSET to the pset package. This is called + to "edit" a pset. So far as the application is concerned all this + means is that the pset values can be changed by the operation. In + the specific case of the current combination of CLIO and the CL, + EPARAM is called to edit the pset and the edited values are updated + in the parameter cache in the local process. This routine is still + considered experimental. (6/22) + +pkg/cl/task.h +pkg/cl/exec.c +pkg/cl/opcodes.c + Minor changes to the CL were required to support the CLEPSET + routine. clepset uses dparam to efficiently obtain the edited pset + and update the local parameter cache. A way was needed to redirect + the output of a task like dparam back to CLIO in a subprocess. A + hidden special file ("IPC$IPCIO-OUT" currently, but this could + change at any time) was defined such that if a task is run with the + output redirected as in "dparam > IPC$IPCIO-OUT" the stdout of the + task is sent to t_out, the CLIN of the subprocess which issued the + command. When the task terminates the message "# IPC$IPCIO-FINISHED\n" + is sent to mark the end of the output from the task. + + These changes are considered internal to CLIO. The method used to + implement this feature is a minimum-modification approach which + only solves a part of a more general problem, hence this facility + should not be used outside of CLIO. (6/22) + +sys/clio/README +sys/clio/clcache.x +sys/clio/clio.com +sys/clio/clepset.x +sys/etc/main.x + 1. Added a new routine clc_compress() to the CLIO parameter cache + code, with a call to this routine in clepset(). The caching + mechanism handles parameter updates by simply redefining the + parameter and its value in the symbol table; if there are many + parameter updates significant wasted space can result. clc_compress + rebuilds the cache symbol table, saving only the most recent entry + for each parameter. + + 2. Modified clc_init() to permit it to be called repeatedly to + reinitialize the parameter cache. Modified main.x to use clc_init + instead of clc_mark/clc_free to reinitialize the cache before + running a task. This was done to eliminate the external marker, + which would be invalidated after rebuilding the cache symbol table + in an operation such as clc_compress. (6/23) + +sys/gio/imdkern/idk.x + The arguments "frame" and "color" to the idk_open procedure were + being modified by the procedure, causing the external values to be + preserved across open/close workstation calls. This was causing + the automatic frame number detection logic to fail when displaying + to multiple frames without restarting the kernel. (6/23) + +sys/clio/README +sys/clio/mkpkg +sys/clio/clcache.x +sys/clio/cllpset.x + + Added a new routine clc_list(fd,pset,format) to the parameter + cache package, and a corresponding routine cllpset(pp,format) to + the pset package. These are used to list the contents of a pset, + or of the full parameter cache, to an output file using a caller + specified format. (6/23) + +sys/fio/fseti.x + Added a call to fcanpb() in the F_CANCEL code to cancel any pushed + back input. (6/24) + +dev/hosts + Added radix (Richard Green) to host table. (6/27/91 SRo) + +sys/etc/mkpkg +sys/etc/qsort.x +sys/etc/xqsort.x - +sys/etc/gqsort.x + + It was necessary to change the name of the recently added procedure + "xqsort" to "gqsort" to avoid a library name conflict. The old + qsort procedure is defined in hlib$iraf.h as "xqsort". The best + thing to do would have been to change this definition to something + more obscure, but this would have required recompiling all existing + applications that use qsort, and worse, since there would be a new + procedure xqsort with a different calling sequence, existing + applications using the new shared image would get the new xqsort + and would have died with a segvio when the program was executed. + It is easier to pick a new name then force recompilation of the + existing applications. (6/27) + +dev/termcap +dev/graphcap + Added new entry for pericomdg submitted by Skip Schaller. Modified + existing termcap entry for vi501 as suggested by Alan Koski. (7/5 ShJ) + +dev$hosts + Added aliases to dev$hosts on tucana, orion, gemini, ursa, + and draco for downtown node "morrison". (CB, 7/5/91) + +ursa!hlib$extern.pkg + Set ccdacq as a top level package to point to /u2/rooke/ice/ccdaqcq. + (7/5/91 SRo) + +sys/pmio/miogl.x + The activation code in this routine was not initializing the "ve" + vector. The error was harmless in the typical case where the + i/o range is the full image, but could lead to an error when + mio_setrange was used to specify a subregion, becasuse the "ve" + vector was only used in the latter case. (7/6) + +sys/pmio/zzdebug.x + Added a "region" parameter to the MIO zzdebug task, to allow testing + of mio_setrange. (7/6) + +sys/imio/db/imgnfn.x +sys/imio/db/idbkwlu.x +sys/imio/db/imgftype.x +sys/imio/db/idbpstr.x +sys/imio/db/idbgstr.x + 1. The image keyword list (gnfn) stuff, which was modified earlier + to require full keyword matches for header keywords, would still + permit partial matches for the standard builtin keywords (there + was a second call to patmatch, used to check the stadard keywords, + which was missed earlier). + 2. Tightened up the keyword matching performed on the naxisN keywords. + Formerly there would have been a conflict if a user keyword happened + to have a name such as "naxisNfoo". + 3. In imgftype, there was some code in the procedure to check for + "i_" and naxisN which was apparently redundant (idb_kwlookup already + does this) so I deleted the code. (7/8) + +pkg/system/help/helpdb.x +pkg/system/help/helpdir.x + 1. Added a new routine hd_debug to helpdir.x. This dumps the + descriptor of a compiled help directory to a file and is used for + debugging purposes (it is not used in the runtime system). + + 2. The routine hdb_make_rhd, used to make the root help directory + (directory of packages), contained a line HD_NMODULES(hd) = + HDB_NENTRIES(db) which was incorrect; this could add extra, + unitialized modules to the help directory just assembled, possibly + leading to a segementation violation when later the unitialized + entries were referenced. This was causing segmentation violations + when many external packages were loaded (the bug would only come + into effect with root help directories, and each external package + has one). The bug has always been there, it is just more likely to + cause a problem when there are many packages. (7/10) + +sys/qpoe/qpexmodfil.x + A filter expresion such as "foo = expr" is supposed to be the same + as "foo += expr", adding to any existing filter term, instead of + replacing the existing filter as with "foo := expr". This code had + it the other way around, i.e., = was the same as := (replace). (7/15) + +unix/hlib/login.cl + Modified the template login.cl as follows: + 1. Added code to check the environment variable TERM, if it exists, + for the special cases "sun" and "xterm". This won't work in many + cases but should make it easier for people to customize things if + they want, without requiring a loginuser.cl. + 2. If the file ".hushiraf" is seen during login the message of the + day is not printed and cl.menus is set to no. This makes it + possible to get a simple cl prompt without all the other verbiage + being printed, which experienced users don't necessarily want + to see during every login. + 3. Deleted some old stuff that has been commented out for quite a + while without causing problems. (7/15) + +pkg/system/doc/mkdir.hlp + Fixed a typo. (7/18) + +dev/hosts + Added enzo to the hosts table (Frank Hill's new machine). Did this on + tucana and gemini. (7/19 jb) + +pkg/images/imarith/imc* - +pkg/images/imarith/ic* + +pkg/images/imarith/t_imcombine.x +pkg/images/imarith/mkpkg +pkg/images/imarith/generic/mkpkg +pkg/images/imcombine.par +pkg/images/doc/imcombine.hlp + Replaced old version of IMCOMBINE with new version supporting masks, + offsets, and new algorithms. (7/19 fv) + +lib/math/iminterp.h +math/iminterp/arbpix.x +math/iminterp/arider.x +math/iminterp/arieval.x +math/iminterp/asider.x +math/iminterp/asieval.x +math/iminterp/asifit.x +math/iminterp/asiffree.x +math/iminterp/asigrl.x +math/iminterp/asiinit.x +math/iminterp/asirestore.x +math/iminterp/asisave.x +math/iminterp/asivector.x +math/iminterp/ii_1dinteg.x +math/iminterp/ii_eval.x +math/iminterp/ii_pc1deval.x +math/iminterp/im1interpdef.h +math/iminterp/doc/arbpix.hlp +math/iminterp/doc/arider.hlp +math/iminterp/doc/arieval.hlp +math/iminterp/doc/asider.hlp +math/iminterp/doc/asieval.hlp +math/iminterp/doc/asifit.hlp +math/iminterp/doc/asigrl.hlp +math/iminterp/doc/asiinit.hlp +math/iminterp/doc/asivector.hlp + The 1D image interpolation routines were replaced with new versions + modified by Frank Valdes to support sinc interpolation. (7/26/91 Davis) + +sys/qpoe/qprlmerge.gx + +sys/qpoe/qpexattrl.gx +sys/qpoe/qpexgetat.x +sys/qpoe/README +sys/qpoe/mkpkg +sys/qpoe/gen/mkpkg +sys/qpoe/zzdebug.x + The qpex_attrl routine would fail for attribute expressions + containing multiple eterms (filter subexpressions). Instead of + AND-ing the successive filter terms, it was combining them (OR-ing + them) to produce a single expression, and parsing the result + to return the output range list. + + 1. Modified qpex_getattribute to return expressions containing + multiple eterms with a semicolon rather than a comma delimiting + each eterm, so that the eterms can be distinguished. + 2. Added a new routine qp_rlmerge, used to merge (AND) two range + lists of any datatype. + 3. Modified qpex_attrl to parse each eterm separately and merge + the resultant range list into the output range list. + 4. Added a new debug task mergei and used this to test the new + merge range list routine. (7/27) + +sys/imio/iki/stf/stfrgpb.x + Added a check for a group index out of range. (7/28) + +sys/pmio/miopl.gx +sys/pmio/miogl.gx +sys/pmio/miostati.x +sys/pmio/mioseti.x +sys/pmio/miosrange.x +sys/pmio/mio.h + MIO_SETRANGE still wasn't working correctly so I had a more careful + look at the mio_[gp]l routines. + + 1. The fix made earlier to initialize the "ve" vector was incorrect, + as any data that wants to be saved between calls has to be saved in + the i/o descriptor and "ve" is a local variable. Moved the "ve" + initialization to immediately before the call to imggsc, where the + variable is used. + + 2. Made extensive changes to the way the "V" vector is handled. + This is passed back by the routines in each call to give the + coordinates of the first pixel of the referenced line segment. + Modified the routine to pass back a vector matching the image + dimension rather than of length IM_MAXDIM, to lessen the chance + of overrunning the client's buffer. Fixed a bug that was preventing + the routine from returning correct vector coordinates when doing + i/o on a subregion (mio_setrange) of the image. Fixed a bug that + would cause the data pointer to be offset when accessing subregions. + + 3. By default the coordinates of the V vector returned by the + mio_[gp]l routines will be relative to any subregion specified + with a prior call to mio_setrange. This is convenient when using + mio_setrange to randomly access subregions of the image. If this + is not what is desired it is now possible to follow the mio_setrange + call with a call to "mio_seti(mio,P_REGCOORDS,NO)" to cause the + V vector to be returned in image rather than region relative + coordinates. This is more convenient for applications that use + mio_setrange only to optimize i/o and want this to be transparent + to the rest of the code. (7/28) + +pkg/images/geometry/t_imshift.x + The shifts file pointer was not being correctly initialized to NULL + in the case where no shifts file was declared. When the task + was invoked repeatedly from a script, this could result in an array + being referenced, for which space not been previously allocated. + (LED 7/29/91) + +unix/hlib/extern.pkg URSA ONLY + Changed ccdacq from /u2/rooke/ice/ccdacq/ to + /ursa/iraf/extern/ice/ccdacq. We now have "production" and development + versions on ursa. (7/31/91 SRo) + +dev/hosts + Added mira, Mike Merrill's machine - this had been added to gemini + but not to tucana. (8/3/91 jb) + +mkpkg +noao/mkpkg + Added a new entry point "arch" as an alias for "showfloat". The + command "mkpkg arch" will print the current architecture. (8/06) + +pkg/xtools/inlfit/ + +pkg/xtools/doc/inlfit.hlp + +pkg/xtools/mkpkg + The interactive non-linear least squares fitting package inlfit + developed by Pedro Gigoux and used by the photcal package has + been added to xtools. (8/7/91 LED) + +dev/hosts [tucana, gemini, ursa] + Changed lapis to /usr/iraf/iraf. Other mountain systems should be + changed as Jim Davis gets around to them. (8/8/91 SRo) + +sys/libc/qsort.c + Added the copyright notice from the BSD source. Berkeley finally + made this source publically available without a unix source license, + provided the copyright notice is retained. (8/11) + +sys/imio/iki/stf/stfaddpar.x + Added a case for TY_BOOL (LOGICAL*4), and changed the abbreviated + type names "INT*4" etc. to their full Fortran equivalents. (Bug + fix contributed by B.Simon). (8/11) + +sys/mwcs/mwgsys.x + +sys/mwcs/mkpkg + Added source for the routine mw_gsystem. This was in the interface + specification but was missing from the interface. (8/11) + +unix/sun/imtoolrc +unix/sun/imtool.c + Added several new entries to the imtoolrc file. Increased the + maximum number of frame buffer configuration entries from 64 to 128, + and added a comment to the file suggesting that users add their + custom additions starting with config #64. (8/11) + +pkg/plot/phistogram.par +pkg/plot/phistogram.x +pkg/plot/phminmax.x +pkg/plot/doc/phistogram.hlp + Added a new task phistogram to the plot package. Phistogram takes + input from either an image or a list and permits full control over + the plotting parameters. The histogram computation is done in + and identical manner to the imhistogram task. (8/14/91 LED) + +pkg/plot/pradprof.par +pkg/plot/t_pradprof.x +pkg/plot/doc/pradprof.hlp + Added a new task pradprof to the plot package. (8/16/91 LED) + +unix/gdev/sgidev/mkpkg.sh +unix/gdev/sgidev/sgi2ueps.c + Installed new SGI to EPS (encapsulated postscript) graphics driver. + (8/16) + +dev/graphcap + 1. Installed a minor bug fix affecting the vhpl (VMS) entry. + 2. Added entries for the EPS driver. Device "eps" is the default + portrait mode output, "epsl" provides landscape mode. (8/16) + +dev/hosts [tucana, gemini, ursa] + Changed khaki to /usr/iraf/iraf. (8/16 jb) + +pkg/cl/exec.c + There was a bug in the oneof() function in how the "alldone" flag + is set to cause termination of a background process. The flag + would be set when attempting to pop (at task termination) a task + that has the T_BATCH flag set. The problem is that this test + would result in the continued execution of the task *after* execution + of the background command completed. In the normal case of a + background command submitted interactively on the command line this + would be harmless as the task would be "cl", which would see EOF + on the stdin and exit. In more complex cases, e.g., an executable + task or a script reading from a file, this could result in an + attempt to read from a stream that existed in the foreground CL + but which was never opened in the background CL. + + The particular case in which this showed up was in the OBSERVE task + in CCDACQ, when submitting the command "display <image> 1 &" to + the CL from the subprocess, using clcmd. The display task would + run normally, being left behind in the process cache as the first + non-system process. The task descriptor for the observe task in + the background cl would be set up to read from a connected subprocess, + and after execution of the display command would resume waiting for + commands from the subprocess. Meanwhile, the subprocess actually + in the cache would be display rather than observe, and display would + have already terminated, resulting in deadlock with both the CL + (observe) and the display task executable waiting for a command. + Due to the deadlock the background job would never terminate and + after this sequence had repeated several times background job + submission would fail in the foreground cl with "no more background + job slots". (8/18) + +pkg/plot/phistogram.par +pkg/plot/phistogram.x +pkg/plot/phminmax.x +pkg/plot/doc/phistogram.hlp + The new phistogram task has been restored to the plot package after + the disk crash. (8/26/91 LED) + +pkg/plot/pradprof.par +pkg/plot/t_pradprof.x +pkg/plot/doc/pradprof.hlp + The new pradprof task has been restored to the plot package after + the disk crash. (8/26/91 LED) + +dev/graphcap + Added the six new ICE imtool frame buffer entries. (8/27/91 SRo) + +sys/qpoe/qpexmodfil.x + There was a simple bug in the buffer reallocation code which would + cause filter expansion to fail for expressions longer than 1024 + characters. A "sz_expr = INC_SZEXPRBUF" should have been + "sz_expr = sz_expr + INC_SZEXPRBUF". (9/04) + +unix/shlib/mkshlib.csh [not modified] + After a sysgen all sparc executables would fail to run due to an + access violation. This was due to a problem with the shared image; + the data and text segments were overlapping by 8 bytes, evidently + due to a linker bug in SunOS 4.1.1. I worked around the problem by + manually relinking the shared image including a dummy object "foo.o" + in the link to make the text segment slightly larger. Since the + text size of the shared image will change as soon as any code is + changed, it doesn't seem worthwhile to devise a more permanent + workaround. It looks like the linker fails to align the data segment + properly if etext is close to a page boundary. (9/07) + +unix/hlib/math.h + Changed the name of the define "E" to "BASE_E", to decrease the + chance of accidental name aliases. (9/17) + +pkg/images/doc/magnify.hlp + Fixed a bug in the magnify task help page. + (9/18/91 LED) + +pkg/images/filters/t_gauss.x + The code which computes the gaussian kernel in the gauss task + was producing a divide by zero error if ratio=0.0 and bilinear=yes + (2.10 version only). (9/18/91 LED) + +sys/gio/gadraw.x + It was possible for integer overflow to occur for case linear in the + assignments mx=x,my=y. Added 0:MAXNDC pre-clipping for case linear. + (9/20) + +pkg/system/help/helpdb.x + There were still problems with the code in helpdb which reorders + the package index help directory to depth-first order. A bug + which would cause commands such as "help lists.*" to print each + module twice was traced to this code. The help directory + reordering code was rewritten (inverting the two main loops) to + ensure that the reordered help directory does not have any holes + in it, and that the number of modules is correct. (9/21) + +dev$hosts + Changed aliases in dev$hosts on tucana, orion, gemini, ursa, + and draco for downtown node "morrison" to "vegemite". (CB, 9/21/91) + +----------------------------------------------------------------------- +Merge changes (including many minor bug fixes) from A/UX IRAF port. +This includes support for GCC and ANSI C, and limited SYSV support. (9/21) + +unix/hlib/install + 1. Added a #!/bin/csh at the top of the script. + 2. Added a "set path" so that explicit paths to executables can be + avoided. Changed "/etc/chown" to "chown" (this utility is in + different places on different systems). + 3. I had trouble on A/UX with the $hbin/sgi2* $hlib/sgi2* stuff in + MODEFILES. The second did not expand to anything and the string + "$hlib/sgi2*" was left in MODEFILES with the * unexpanded, causing + problems later when appended to a directory prefix. Since there are + not supposed to be any executables in hlib anyhow I deleted the + second reference. + 4. In the code which checks the MODEFILES, I added a test to see if + $file exists as named, before looking for it in each of the + directories. Otherwise the $hbin/sgi2* entries, which are already + fully resolved pathnames, expand to pathnames referencing + nonexistent directories when a BINDIRS prefix is prepended. + This could cause the install script to bomb on A/UX. + 5. Changed all occurrences of constructs like `ls ...` to `$LS ...` + with LS defined as /bin/ls at the top of the file. The problem is + that a subshell is spawned to evaluate the command in the back + ticks, and if "ls" is defined as an alias in a .cshrc file, as is + typically necessary on SYSV systems (to get -C) the alias will be + used, causing the output to be different than expected by the script. + (9/21) + +unix/hlib/irafuser.csh + Generalized somewhat - added some commented out GCC definitions, + and new definitions for CC, F77, HSI_F77LIBS, and RANLIB. These + are used in the mkpkg.sh files (used to bootstrap the HSI). (9/22) + +unix/hlib/mkfloat.csh + Added a definition TARXFLGS, with BSD and SYSV versions. (9/22) + +unix/boot/bootlib/mkpkg.sh +unix/boot/generic/mkpkg.sh +unix/boot/mkpkg/mkpkg.sh +unix/boot/rmbin/mkpkg.sh +unix/boot/rmfiles/mkpkg.sh +unix/boot/rtar/mkpkg.sh +unix/boot/spp/mkpkg.sh +unix/boot/spp/mkxc.sh +unix/boot/spp/rpp/mkpkg.sh +unix/boot/spp/rpp/ratlibc/mkpkg.sh +unix/boot/spp/rpp/ratlibf/mkpkg.sh +unix/boot/spp/rpp/rppfor/mkpkg.sh +unix/boot/spp/xpp/mkpkg.sh +unix/boot/wtar/mkpkg.sh +unix/boot/xyacc/mkpkg.sh +unix/gdev/sgidev/mkpkg.sh +unix/os/mkpkg.sh +unix/shlib/mkpkg.sh + Changed all occurrences of "cc" to "$CC" and all occurrences of "f77" + to "$F77". Changed all occurrences of "ranlib" to $RANLIB. (9/22) + +unix/setarch.sh + The A/UX version of "test" does not have the -h flag to test for + symbolic links, so the existing script did not work. Still trying + to find a portable way to do this, I changed the script to use the + construct: if [ "`ls -d as`" = "as" ]; then ... (9/22) + +unix/os/alloc.c + 1. The file header comment section contained the sequence "for the + /dev/* entries...". The "/*" would cause a warning from gcc that + there might be a comment buried in another comment, which can cause + a comment to terminate prematurely. In this case it was harmless + and indeed there was no error, but I changed the text to eliminate + the warning. + 2. Moved the #include <sys/types.h> to before the #include <utmp.h>, + as the A/UX version of the latter requires the former, and SunOS + doesn't care. (9/22) + +unix/os/prwait.c + In pr_getipc(), deleted unused variables error_code, error_status, + waitpid. (9/22) + +unix/os/zalloc.c + 1. In ZDVALL, deleted unused variable x_status. + 2. Deleted unused variable i in loggedin(). (9/22) + +unix/os/zfioks.c +unix/hlib/irafuser.csh + 1. Deleted the old, commented out code for rcmd(), as variables + defined for this were being reported as unused. Added a comment + explaining that rcmd and friendly-host authentication cannot be + used without making the process suid root. + 2. Added #ifdef SYSV support for SYSV termio. Terminal driver ioctls + are used in this routine to set raw mode for the password prompts. + 3. GCC was complaining that the setjmp/longjmp used in zardks, + zawrks could cause certain register variables to become undefined + (op and nbytes in zardks, ofd in zawrks), so I changed the storage + class from register to auto for these variables. + 4. GCC would still warn that longjmp could clobber the values of + several local variables in zardks. Evidently this is a feature of + ANSI C. The values of automatic variables not declared "volatile" + are not guaranteed to be preserved in a longjmp. Added a -DANSI to + irafuser.csh and some #ifdef ANSI code to zfioks.c to provide the + necessary (but not non-ANSI backwards compatible) definitions. (9/22) + +unix/os/zfiolp.c + I had to change the declaration + + static PKCHAR xnullstr[1] = XEOS; + to + static PKCHAR xnullstr[1] = { XEOS }; + + (PKCHAR=short and XEOS=0) or GCC would complain about an invalid + initializer. Must be a feature of the ANSI C syntax. (9/22) + +unix/os/zfiotx.c +unix/hlib/libc/kernel.h + 1. Modified to add #ifdef SYSV support for SysV terminal i/o. + 2. GCC complained about some functions which were used (default + storage class extern) and later declared static; added static + declarations for these functions to the file header to eliminate + these (harmless) warning messages. + 3. Another longjmp warning, this time in zgettx. Variable "op" might + not be saved over a longjmp. In this case I was able to avoid the + problem merely by moving the op initialization statement to after + the setjmp. (9/22) + +unix/os/zfxdir.c + Deleted unused local variable "ch". (9/22) + +unix/os/zgcmdl.c + Deleted unused local variable "ev". (9/22) + +unix/os/zgtime.c + Had to #ifndef SYSV the #include <sys/timeb.h> as this file does + not exist on SysV systems. (9/22) + +unix/os/zmain.c + Deleted unused local variables "junk" and "wsetsize". (9/22) + +unix/os/zwmsec.c + Added "static" to explicitly specify the storage class in the first + declarations of "napmsx", which is declared static in the source + given later in the file. (9/22) + +unix/os/zxwhen.c + 1. GCC did not realize that the call to kernel_panic in zxwhen was + an exit, and would warn that the value of variable "vex", used later + in the procedure, could be unitialized. Added a statement to init + this to null to avoid the warning message. + 2. In zxgmes, the char pointer to the returned error message was + not being initialized if no error had occurred. Modified to return + the null string in this case. (9/22) + +unix/os/zzstrt.c + Added #ifdef SUNOS4 conditionals around certain declarations which + are used only the #ifdef SUNOS4 code which follows, to avoid unused + variable warnings on non-Sun systems. (9/22) + +unix/boot/bootlib/envinit.c + Deleted the unused variable "osfn" in loadpkgenv. (9/22) + +unix/boot/bootlib/bootlib.h + Deleted the commented out #define NOVOS definition, which causes + a /* in comment warning and doesn't need to be in this file anyhow. + (9/22) + +unix/boot/bootlib/osfcopy.c + 1. Deleted the unused variable "binary_file". + 2. Added a return at the end of the function, to guarantee that + a function value was returned. (9/22) + +unix/boot/bootlib/ostime.c + Modified with #ifdef SYSV for SysV. This whole business needs to + be redone sometime to provide rigorously correct time primitives + for iraf. (9/22) + +unix/boot/bootlib/vfn2osfn.c + Local variable "first_time" defined but never used. (9/22) + +unix/boot/generic/generic.c + 1. In copy_comment(), added an entry time initializer for the + local variable "flag". + 2. GCC complained about the variable "ch" in evaluate_expr() possibly + being used before being initialized. This looked harmless in this + case, but I added a global initializer to eliminate the warning + message. (9/22) + +unix/boot/mkpkg/host.c + 1. Deleted a couple of unused "exit_status" variables. Changed some + "return(exit_status=N)" constructs to separate assignment and return + statements in cases where the function does not return a value. + 2. Deleted unused variable "ip" in search_mkpkgfile(). + 3. Added a #ifdef SYSV to the code which calls RANLIB, since this is + not used on SYSV (COFF) systems. (9/22) + +unix/boot/mkpkg/mkpkg +unix/boot/mkpkg/mkpkg.h +unix/boot/mkpkg/scanlib.c + 1. Added a #include "mkpkg.h" to scanlib.c. This file includes extern.h + which references a structure defined in mkpkg.h. + 2. Deleted unused local variable "key" in h_scanlibrary(). + 3. Replaced the MAX_SYMBOLS definition in scanlib.c by MAX_LIBFILES, + as there is also a MAX_SYMBOLS in mkpkg.h which means something + quite different. (9/22) + +unix/boot/mkpkg/sflist.c + In sf_scanlist, the GCC static analysis indicated that variable "tail" + could possibly be used without being initialized. Added code to + initialize tail=head before scanning the list. (9/22) + +unix/boot/mkpkg/tok.c + 1. In do_if(), in the event of a syntax error the local variable "bval" + could be used without being initialized. Once again probably harmless + but it makes GCC complain. + 2. Unused variable "ch" in do_call(). + 3. Module do_include() was not returning an exit status in all + cases. (9/22) + +unix/boot/rmfiles.c + 1. Unused variable "i" in main(). + 2. Another warning from GCC static analysis suggesting that local + variable "fp" might be being used before being initialized (definitely + not in this case, but I added an initializer to avoid the message). + (9/22) + +unix/boot/wtar/wtar.c + Unused variable "op" in putheader(). (9/22) + +unix/boot/spp/xc.c + 1. Unused variable "cmdbuf" in main(). + 2. Variable "append" in sys() could be used before being + initialized. (9/22) + +unix/boot/spp/xpp/xppcode.c + 1. Unused variable "irafdefs" in do_include(). + 2. parse_task_statement() did not return a function value in all cases. + 3. accum() did not return a function value in all cases. + 4. Unused variable "digit" in charcon(). Function did not return + a value in all cases. + 5. Variable "value" not initialized in all cases (when an error + occurs, but it causes a warning message). (9/22) + +unix/boot/spp/xpp/decl.c + 1. Local variable "sp" was not being initialized in all cases (i.e., + when an error occurred). + 2. Added a new procedure d_declfunc which is called to output function + declarations. Currently this doesn't do anything special, but it + provides a single point of modification should it be necessary to do + any special processing of function declarations in the future (for + example intrinsic functions). (9/22) + +unix/boot/spp/rpp/ratlibc/getlin.c + The local variable "c" was not being initialized in all cases. (9/22) + +unix/gdev/sgidev/sgidispatch.c + Deleted unused local variables "maxch" and "status". (9/22) + +unix/os/gmttolst.c + Added #ifdef SYSV support. SYSV uses a global variable "timezone" + (a questionable construct - see below) while BSD uses a time_info + structure returned in a function call. (9/23) + +unix/os/zzstrt.c + This problem was indirect and hence difficult to track down. The + time-task feature of iraf, e.g., "$imstat dev$pix", when run for the + first time in a new process, would return a clock time such as + "-416:+0" instead of "0:13" or whatever. Thereafter it would be ok, + until the process was restarted. This turned out to be due to the + clock time returned by the first call to ZGTIME being wrong. The + eventual solution was to add a call to TZSET to zzstrt to initialize + the SysV time stuff before any time calculations take place. What I + suspect was happening is that in gmt_to_lst I was accessing + "timezone", which is a global data variable in SysV, but the value + was being changed sometime later in an indirect call to TZSET. + Using a global variable for something like this that is evidently + not constant is a very questionable feature of SVID (unless this + was a bug in A/UX). (9/23) + +unix/os/mkpkg.sh + Changed the "rm alloc.o" to "rm -f alloc.o", as the .o file is + not being left behind on this system, using GCC. (9/23) + +unix/os/zfiopl.c + In zclspl, another case of an array aggregate initializer "= val;" + having to be changed to "= { val };" when initializing an array of + length 1. (9/23) + +unix/os/zoscmd.c + 1. Modified so that if SYSV is defined, "fork" is used instead of + the BSD-ism "vfork". + 2. On Sun systems <vfork.h> is included (disables the global optimizer + on sparc systems due to nonstandard register usage). (9/23) + +unix/boot/spp/rpp/ratlibr/defs + Replaced by the version rpprat/defs (they should be the same, although + in this case the differences did not affect the ratlib code). (9/24) + +unix/boot/spp/rpp/ratlibr/Makefile +unix/boot/spp/rpp/rpprat/Makefile + These makefiles now use a .r.f rule using /usr/local/bin/ratfor to + generate the .f files, rather than using f77 -F, which requires + replacing the host version of ratfor. (9/24) + +unix/boot/spp/rpp/ratlibf/*.f +unix/boot/spp/rpp/rppfor/*.f + Regenerated all the preprocessor Fortran sources. The new files are + lower case. Although upper case source is standard Fortran, all + modern compilers I am aware of accept lower case source (SPP outputs + lower case after all), and a case sensitive compiler may generate + upper case externals for upper case procedure names, causing a case + mismatch when linking with the C support library. (9/24) + +unix/boot/spp/rpp/ratlibc/r4tocstr.c + Installed a minor bug fix which allows the routine to accept as + input character arrays consisting of either one char per integer, or + a char plus 3 blanks per integer. The old F66 convention of + assigning one Hollerith character to a binary integer can generate + either type of integer value. (9/24) + +sys/imfort/imemsg.x + This file contained four Fortran escapes (error message strings) + which ran over the 72 character line limit of Fortran. (9/24) + +sys/gio/nspp/portlib/gridal.f + The equivalence on line 4 was incorrect (or at least ill-advised) + due to a dimension error. The code "mfmtx(1),ifmt(1))" should + have been "mfmtx(1),ifmt(1,1))". (9/24) + +sys/gio/nspp/portlib/z8zpbd.f +sys/gio/nspp/portlib/z8zpii.f + The z8zpbd.f file was using DATA statements to initialize variables + in common (works on most systems but is technically illegal). I + moved all the remaining DATA statements out of z8zpbd.f into run + time initialization statements in z8zpbd.f (9/24) + +unix/boot/spp/xc.c + The routine printargs() was attempting to print one more argument + than it should, due to a <= that should have been a < in a FOR loop. + (9/24) + +pkg/system/help/lroff/textout.x + Modified to eliminate the ENTRY point. (9/24) + +sys/fmtio/ctotok.x + Local variable numch never used (this is old code so I don't know + why no other compiler has found this). (9/24) + +sys/fmtio/evexpr.y +sys/fmtio/evexpr.x + The second argument (a debug flag) to yyparse (xev_parse) is a + boolean, but xev_parse was being called elsewhere with an integer + argument. Changed to a boolean since the Y*cc code contains many + if (yydebug) constructs. (9/24) + +sys/etc/main.x + FREDIR is a subroutine but was being called as a function in one + place in this file. (9/24) + +sys/tty/ttyputl.x + This file contained a statement call putci (fd, "_") which was + incorrect, since the argument "_" is type char but is supposed to + be integer. (9/24) + +sys/gio/gopen.x + 1. The pointer array graphcap_file was not being used. + 2. Local string variable graphcap never used. (9/24) + +sys/pmio/pmplls.x + The second call to pl_plls was missing the ll_depth argument. (9/24) + +sys/qpoe/qpppar.x + The second call to qp_sizeof was missing an argument. (9/24) + +sys/imfort/bfio.x + There was an extra "status" argument to one of the calls to + zsttbf. (9/24) + +sys/gio/ncarutil/conran.f + Local variable LNGTHS not used. (9/24) + +pkg/plot/crtpict/t_crtpict.x + A call to gargwrd was missing the maxch argument. (9/24) + +pkg/plot/t_graph.x + Variable window declared but not used. (9/24) + +pkg/plot/t_velvect.x + Variable nset declared but not used. (9/24) + +sys/fmio/fmlfundel.x + The two calls to fmio_bind and fmio_errck were both lacking the + fm argument. (9/24) + +sys/ki/kireceive.x + A call to strcpy was missing an argument. (9/24) + +sys/imio/imopsf.x + The call to pl_ssize had an extra unused argument. (9/24) + +sys/etc/pagefiles.x + ttyctrl, which is an integer function, was being called as a + subroutine. (9/24) + +sys/imio/iki/oif/oifclose.x +sys/imio/iki/oif/oifdelete.x + The integer function protect() was being called as a subroutine. + (9/24) + +sys/plio/plglr.gx + The routine pl_rangerop was being called incorrectly. (9/24) + +sys/plio/plprop.gx + The VOPS routine argt (replace if greater than) was being + called incorrectly in three places. (9/24) + +sys/plio/plascii.x + The subroutine pl_glpi() was being called as a function. (9/24) + +sys/plio/pldebug.x + The integer function pl_l2ri() was being called as a subroutine. + (9/24) + +sys/pmio/pmglp.gx + The routine pl_pixrop was being called incorrectly. (9/24) + +sys/qpoe/qpioopen.x + A call to syserr was being made where syserrs was intended. (9/24) + +sys/gio/cursor/grccmd.x + External pr_psio() declared but never used. (9/24) + +sys/gio/stdgraph/stgclws.x + External std_onerror() declared but never used. (9/24) + +sys/libc/qsort.c + The static function qst() was being used before being declared, + resulting in an extern/static declaration inconsistency. (9/24) + +sys/ki/irafks.x + The "task irafks = onentry" was incorrect since ONENTRY is an integer + function. This was harmless since the purpose of the task statement + was merely to get an iraf main, but I set up a dummy t_irafks task + to avoid the type clash. (9/24) + +pkg/cl/bkg.c + Static function bkg_close() used before being declared static. + Added a static function declaration to the file header. (9/24) + +pkg/cl/debug.c + Same as above, function dd_f(). (9/24) + +pkg/cl/edcap.c + Same as above, function map_escapes(). (9/24) + +pkg/cl/pfiles.c + Same as above, function mapname(). (9/24) + +pkg/cl/cl.x + Same problem as in irafks, above. ONENTRY is a function and should + not be referenced as a subroutine in the task statement. Added a + dummy t_cl procedure to avoid the type clash. (9/24) + +------------------- +End of revisions merge from A/UX GCC/ANSI-C/F2C work. + +dev/graphcap +dev/devices.hlp + Output can now be directed to the default UNIX `lpr' device using + any of the aliases "lpr", "lp", or "lw". The actual device is + defined by the value of PRINTER if defined in the user's environment, + else is the "lp" device in /etc/printcap. (9/23) + + (lw is no longer an alias for the NOAO/Tucson device lw1) + +pkg/images/iminfo/t_imstat.x +pkg/images/doc/imstat.hlp + Corrected a bug in the mode computation in imstatistics. The parabolic + interpolation correction for computing the histogram peak was being + applied in the wrong direction. Note that for dev$pix the wrong answer + is actually closer to the expected answer than the correct answer + due to binning effects. (LED 9/24) + +unix/hlib/iraf.h +unix/hlib/libc/xnames.h + Added the following name redefinitions. On systems where Fortran and + C share the same name space these can cause name collisions. (9/28) + + define fatal xfatal + define fchdir xfchdr + define fscan xfscan + define getopt xgtopt + define getpid xgtpid + define getuid xgtuid + define rename xfrnam + define reset xreset + define scan xxscan + +------------------------------------------- +Started a full bootstrap and recompile for the sparc architecture. (9/28) + +sys/fmtio/tokdata.inc + Deleted the DATA statement for numch, which is no longer used by + ctotok.x, the routine which includes this file. (9/29) + +lib/plset.h + Added PL$T_LEN defines for type long, required for the generic + expansion of plglr.gx in PLIO. (9/29) + +unix/boot/mkpkg/host.c + Added a return(OK) to h_purge(), which is a no-op on unix systems. + (9/29) + +pkg/images/imarith/mkpkg +pkg/images/imarith/imsum.gx +pkg/images/imarith/generic/mkpkg +pkg/images/imarith/generic/imsum.h - + Images failed to link, with all the imsum externals reported as + undefined externals. + 1. Edited imsum.gx and changed `include "imsum.h"' to `include + "../imsum.h"'. + 2. Deleted generic/imsum.h and the code in imarith/mkpkg which + generates it. There should not be multiple copies of global header + files. + 3. Rebuilt the generic/mkpkg using mkmlist, to ensure that the + library list is correct (all the imsum entries were missing). (9/29) + +noao/artdata/mkheader.x + 1. Fixed a "local variable ua never used" warning, caused by some code + being commented out. + 2. I was also surprised to see the construct `fd = immap (fname, ...)' + in this file. FD means file descriptor whereas immap returns an + image descriptor. FNAME means file name but an image name is not a + file name. FD is declared pointer in this file but is used later in + the same routine to hold a file descriptor, which is an integer. + This code is illegally accessing the user area of the image header. + (9/29) + +noao/twodspec/longslit/illumination.x + This file failed to compile, with the following errors: + local variable "clgeti" never used + attempt to use undefined variable "im" + attempt to use untyped function "clgetr" + 1. Changed the call to clgetr to a call to clgeti, since the + parameter being fetched is integer. Added a declaration for im. + 2. In the process of doing this I noticed that in the call + iferr (axis = imgeti (im, "dispaxis")) { + the variable IM was being used before being initialized (or declared). + I changed the "im" to "in" but couldn't be certain this was correct + since there are two input image pointers (I think; I couldn't be + certain they were both input since there are no #[IOU] markers in the + comments). (9/29) + +noao/twodspec/longslit/response.x +noao/twodspec/longslit/fluxcalib.x + Similar construct. Changed calls to clgetr to clgeti in both + routines. (9/29) + +unix/hlib/extern.pkg + All the digiphot packages failed to link, due to the cross link + against the V2.9 versions of the TABLES libraries (due to the + recent name changes in iraf.h all code has to be recompiled for + V2.10). I temporarily created a local copy of TABLES in + /u3/extra/tables and compiled this with V2.10. (9/29) + +bin.sparc/S5.e +bin.sparc/S6.e + + Installed the V2.9.3 version of S5.e (the V2.9 shared image) from ursa. + S6.e is the V2.10 shared image. (9/29) + +unix/boot/xyacc/mkpkg.sh + Added a rm -f *.o to delete the xyacc objects after a bootstrap. (9/29) + +--------------------------------------------- +Begin f68881 bootstrap and full sysgen-recompile. (9/29) + +sys/ki/koscmd.x + The output spool file on the local node was being opened with zopntx, + but written to with kputtx with an invalid channel descriptor, causing + the output to be lost when attempting to redirect the output. The + fix was to change the call to kputtx to a call to zputtx. (9/30) + +dev/imtoolrc + +unix/hlib/install + Copied imtoolrc into dev so that the frame buffer entries in graphcap + and imtoolrc can be more easily maintained together, and so that + the user does not have to modify a source directory (unix/sun) in + order to change a runtime configuration file (imtoolrc). Modified + the install script to make /usr/local/lib/imtoolrc a link to the + file in DEV, instead of a copy of the file. (9/30) + +noao$rv/ + +noao$mkpkg +noao$noao.hd +noao$noao.cl +noao$noao.men +noao$lib/strip.noao +noao$lib/zzsetenv.def +noao$lib/scr/fxcor.key + +noao$lib/scr/specmode.key + +noao$lib/scr/fftmode.key + + Installed the RV0 package as the NOAO.RV package and recompiled for + the f68881. A sparc executable was built separately and installed in + noao$bin.sparc. The noao helpdb was also recompiled to include the + new rv help pages. (9/30 MJF) + +hlib$extern.pkg + Removed the RV0 package definition from the V2.10 iraf. (9/30 MJF) + +hlib$extern.pkg + Removed the testphot package definition from the V2.10 iraf. (9/30 LED) + +bin.f68881/S5.e + Replaced by the V2.9.3 version. (9/30) + +unix/os/zfioks.c +unix/os/zfiotx.c + Fixed minor typos in the #ifdef SYSV code. (10/02) + +unix/boot/mkpkg.pkg.c + Deleted declarations for a couple of unused variables. (10/02) + +unix/os/zawset.c + Added SYSV support. (10/02) + +unix/os/zfiopr.c + Added SYSV support (vfork is defined as fork). On Sun systems + <vfork.h> is conditionally included. (10/02) + +unix/os/zgtenv.c + Replaced a comment within a comment construct (example from <iraf.h>) + by a version which substitutes @ for *, to avoid GCC warning messages + about a possible problem with nested comments. (10/02) + +unix/os/zopdpr.c + Added SYSV support for vfork/fork as above, plus nice() is used + for SYSV instead of the BSD {get|set}priority. (10/02) + +unix/boot/spp/rpp/rpprat/gtok.r +unix/boot/spp/rpp/rppfor/gtok.f + Commented out the declaration for the unused variable "digits". (10/02) + +math/gsurfit/mkpkg + Contained a statement $ifeq (USE_GENERIC, YES) which was incorrect, + as a lower case "yes" is required since $ifeq uses a simple string + comparison. I noticed this because a bug had been fixed in a .gx + file, but was still present in the real/double files, which had not + been modified since 1987. (10/02) + +math/nlfit/nlfitdefr.h +math/nlfit/nlfitdefd.h +math/nlfit/nlzero.gx + Corrected several bugs in the way the aclr$t routines were being + called in the nlzero(rd) routine. (10/3/91 LED) + +pkg/plot/phistogram.x + Corrected some type mismatch problem in calls to gset. (10/3/91 LED) + +sys/gio/ncarutil/pwrity.f + Unused variable LEN on line 335. (10/02) + +sys/gio/ncarutil/pwrzi.f +sys/gio/ncarutil/pwrzs.f +sys/gio/ncarutil/pwrzt.f + Variables HIGH,WIDE,WHITE, and LNGTH not used (same problem in + all three files). (10/02) + +sys/ki/koscmd.x + In the call to zopntx to open the local spool file (when redirecting + the output), the unpacked version of the filename was being used + instead of the packed version required by the kernel routine. (10/05) + +pkg/plot/crtpict/calchgms.x + Changed the declarations for the variables min_val and max_val in + the procedure crt_user_hgram from int to short. (10/5/91 LED) + +dev$hosts + Added felis to dev$hosts for Shopbell. On tucana only since irafks.e + on felis seems quirky. (10/5/91 MJF) + +pkg/dataio/fits/fits_rpixels.x + 1. The rfits task has been modified to accept a short last record, i.e. + a last record that has not been padded out to 2880 bytes, without + generating any warning messages. Short last records were only a + problem for IRAF 2.9 when the blocking code was rewritten. + (10/8/91 LED) + +unix/boot/generic/generic.c + The -k (clobber) option would fail to clobber an existing file if + account executing generic did not own the file. (10/09) + +pkg/images/iminfo/t_imstat.x + Corrected a bug in the kurtosis computation, wherein a 4.0 was + being subtracted from the sum instead of a 3.0 (10/11/91 LED) + +unix/boot/spp/xc.c + Minor typo in run() code. (10/11) + +pkg/dataio/fits/fits_cards.x + Changed the name of the IRAF-B/P keyword to IRAF-BPX to conform to the + new FITS standard. (10/15/91 LED) + +unix/sun/README +unix/sun/gterm.c +unix/sun/halley.lut +unix/sun/heat.lut +unix/sun/imtool.c +unix/sun/imtool.icon +unix/sun/screendump.c + I have been holding off on installing this for a couple of weeks + in the hopes of finishing the planned work, but rather than delay + longer I have installed this version, to be updated later. The + main changes or new features are as follows. + + 1. Screendump parameters (R_DISPOSE etc.) are now in the setup panel. + 2. A number of new builtin lookup table options (e.g. HEAT) have + been added. + 3. User defined lookup tables are now supported. + 4. Updating of the global screen colortable is now a setup panel + option. This allows it to be turned off, which makes imtool + better behaved under openwindows. + + Features not yet in are EPS support, more flexibility in the use + of FIFOs, and maybe socket support. (10/20) + +unix/os/zfiomt.c +unix/os/zalloc.c +unix/os/alloc.c +sys/mkpkg +sys/mtio/* +sys/gty/* +sys/libc/(some) +sys/ki/(some) +pkg/cl/builtin.c +dev/tapecap + Installed the new magtape i/o subsystem. I will document this more + fully later. Usage is much as before. The key file controlling the + configuration is dev$tapecap. A description of the tapecap + parameters is given in os$zfiomt.c. Testing and configuration of + the tapecap file is only rudimentary at this point. I have + successfully tested thus far with the DC2000 cartridge tape and + floppy disk on lepus, the DAT drive on coma, and the 1/2inch 6250 + bpi tape on tucana. There is some confusion (dev$devices out of + date) regarding the device entries for the 1/4inch cartridge drive + on tucana so I did not complete the tapecap entry for this drive. + The driver is new and MTIO has been extensively revised. The new + GTY interface provides a general termcap style database facility + which is used for tapecap. (10/20) + +dev/termcap + Added a new entry for "xirafhelp". (11/10) + +dev/hosts + Added sonoma to the hosts file on tucana and ursa. (11/13 jb) + +pkg/plot/t_graph.x +plt/plot/doc/graph.hlp + 1. Local variables overplot,append in t_graph were declared int + but were used everywhere as bool. + 2. Missing .le in help page entry for overplot. (11/20) + +lib/fio.h + Added a comment for LEN_RAWCMD. (11/20) + +lib/fset.h +sys/fio/fseti.x +sys/fio/fstati.x +unix/hlib/libc/fset.h + Added a new fset option F_IOMODE. The value field is a bit flag + consisting of either IO_NORMAL (normal line by line i/o with echo) + or some combination of, currently, IO_RAW and IO_NDELAY. F_RAW is + also still defined and if used in a fseti call will set F_IOMODE + to IO_RAW with IO_NDELAY disabled. On a fstati query, F_RAW checks + if IO_RAW mode is set, and F_IOMODE returns the i/o mode as a bit + flag integer word. (11/20) + + [Note - the fset integer codes were modified. This will require + [that all layered software which uses fset/fstat be recompiled.] + +sys/etc/prpsio.x + Testing revealed that while both raw mode and NDELAY (nonblocking + i/o) worked from a stand alone process, and raw mode worked from + a subprocess, NDELAY would not work from a subprocess. This was + due to the prpsio code, which must check for the i/o mode control + strings and make a local fseti call if these are seen. The prpsio + code would set raw mode but was ignoring NDELAY, hence setting + IO_RAW+IO_NDELAY in a subprocess would result in only raw mode + being set in the pseudofile i/o control process (the CL). (11/20) + +sys/tty/ttyread.x + Modified to set F_IOMODE rather than F_RAW. Since this routine + uses NDELAY it it worth updating to use the new bit flags. Most + of the old VOS code still uses F_RAW=(YES|NO), which is fine so + long as only raw mode is being set. (11/20) + +pkg/cl/mkpkg + Added <libc/fset.h> to the header file dependency list for + history.c. (11/20) + +sys/tty/mkpkg + Entry in library dependency list for ttygsize.x was incorrect; + rebuilt list with mkmlist. (11/21) + +dev/graphcap +dev/imtoolrc + Added imt13-16, imttall128 (128x1056), imttall256 (256x1056), + imtwide128 (1056x128), and imtwide256 (1056x256) for use in + spectroscopy at request of KPNO. Also added aliases for the new + KPNO 1992 chip names to the six entries between imt32 and imt37. + (11/22/91 SRo) + +unix/sun/imtoolrc + Installed the above mentioned imtoolrc in the imtool source + directory. (11/22) + +sys/fio/fstati.x + Fixed a bug which could cause fstati(fd,F_UNREAD) to return an + incorrect unread character count for pushed back data. (11/27) + +mwcs.h +mwswtype.x + Removed the compile time SZ_ATVAL restriction on the length of + a WCS attribute value. The size of an attribute value string is + now determined dynamically at run time and the buffers sized + accordingly. (11/27) + +mwsaveim.x + Deleted the call to mw_ssystem, which would force mw_saveim to + save the default world system. mw_saveim will now save the current + world system instead; the application should call mw_ssystem first + if it wishes to save a particular system. This applies only to + the use of mw_saveim with the current FITS-header images. In future + image formats mw_saveim will save the entire MWCS and it will not + be necessary to specify which WCS to save. (11/27) + +wfinit.x +wfmspec.x + +wfsin.x + +wfgls.x + +wfarc.x + +iwewcs.x +mkpkg + Installed four new MWCS function drivers: + + sin sin projection + arc arc projection + gls global sinusoidal projection + multispec multispec image format (ONEDSPEC etc.) + (11/27) + +pkg/dataio/mtexamine/mkpkg + The mkpkg was missing an entry for fseti.h (among other things). + Rebuilt library module list with mkmlist. (11/27) + +sys/mtio/mtio.h + Was getting truncation of tapecap entry string during tape testing + on orion. This was traced to a buffer size being set too small in + zopnmt.x (SZ_DEVCAP). Increased to 512 chars. (11/27) + +unix/os/zfiomt.c + Fixed a bug in the new V2.10 zfiomt.c which affected appending to + a tape after a rewind. (12/01) + +unix/os/zfiomt.c + 1. RE now causes a read error to be ignored not only when positioning + to EOT, but on a file read if recno=1 (a read a the beginning of a + file is used by high level programs like mtexamine to detect EOT). + 2. The tapeused counter was not being updated properly (the size of + a filemark was not being counted) when EOF was seen on a read. (12/02) + +dev/tapecap + Installed a new, better organized and more complete version of the + tapecap file. This now includes support for the HP 88780 and Exabyte + drives under SunOS. (12/02) + +unix/os/zfiomt.c + 1. When passed a tapecap device entry containing multiple entries for + the same capability, the driver was allowing later entries to + override the first entry, whereas the termcap convention is that + the first entry given overrides any later (tc=) entries. + 2. Added support for negated entries, as in ":nb@:". (12/02) + +pkg/dataio/cardimage/mkpkg + The mkpkg was missing several file dependencies including + fset.h. (LED 12/03) + +pkg/dataio/fits/mkpkg + The mkpkg was missing several some file dependencies. + (LED 12/03) + +pkg/dataio/imtext/mkpkg + The mkpkg was missing several some file dependencies. + (LED 12/03) + +vms/gdev/zfiovi.c + Installed a bug fix (actually workaround for an apparent VMS problem) + reported by STScI. The lock enqueue code can receive the status + SS$_VALNOTVALID even though the value block is apparently valid. + The workaround is to issue a warning but otherwise ignore the + condition. Hopefully this is correct. (12/03) + +dev/tapecap + Replaced with new version with expanded support for QIC cartridge + drives. Unfortunately not yet fully tested due to system problems + with the QIC-11/24 drive I was using for testing. (12/05) + +sys/mwcs/wfsin.x + The forward transform now checks for a negative value before taking + a square root. (12/06) + +unix/os/zfiomt.c + Installed a new version of the new magtape driver which adds + support for status output to a TCP/IP socket. I also have a new + program XTAPEMON (not currently installed in IRAF) which listens + on a socket and accepts connections from the the new driver (or + any similar client) displaying tape status messages in a window + on any X server while the drive is being accessed. + + Status output may be directed to either a file or a socket, using + the syntax ":so=foo:". If foo is an absolute pathname beginning + with / then output is to a file (this field is interpreted by the + unix driver so we are talking about unix pathnames). Otherwise, the + field is assumed to refer to a socket of the form ":so=[host][,port]", + e.g., ":so=lepus:", ":so=lepus,5138", ":so=,2345:", and so on. + If no host is specified localhost is assumed. If no port is + specified the default port is used. + + In practice, the minimal specification is ":so:". This will cause + the drive to atempt to open a socket connection to the default port + on the local host. If no server is registered the connection will + fail harmlessly. If xtapemon is running on the local host it will + accept the connection. Currently, xtapemon supports multiple + concurrent servers (using consecutive port numbers) but the driver + does not, unless the port number is given explicitly. Multiple + clients are allowed to access the same server, e.g., multiple + processes in the same process tree. + + Note that status output, if enabled, is output in an ascii text + stream to either a socket or a file (including things like + /dev/ttyX, /dev/tty, /dev/console etc. as well as disk files). + Hence the xtapemon utility, while useful for workstations running X, + is not required in any way to use the new magtape system or even to + view status output. In the simplest case, "devstatus" may be used + to print the drive status. (12/15) + +unix/os/zopdir.c + The zopdir routines were modified to read the UNIX directory into a + buffer and sort it, before returning filenames to the caller (some + VOS routine). UNIX directories are not stored in sort order on + disk, and previously, IRAF routines which read directories to + produce file lists but which did not sort the list for some reason, + could produce what appeared to be randomly ordered lists (for + example, in image templates). + + A practical result of this revision is that dir sort- will produce + a listing which is sorted across the columns rather than along the + columns. This may be preferable when listing very large directories. + (12/15) + +sys/etc/main.x +sys/etc/onentry.x # INTERFACE CHANGE +pkg/cl/cl.x +sys/ki/irafks.x + The calling sequence for ONENTRY was modified to add a third + argument "command". This is used to pass any optional arguments + given on the host command line when the process is executed at + the host level. Since the purpose of the ONENTRY procedure is to + provide an alternative to the normal iraf process level command + interpreter, the procedure should get full access to the command line. + (12/26) + +dev/irafhosts + +unix/os/zfioks.c +sys/ki/irafks.x + Totally new networking driver. This version supports both RSH and + REXEC connection protocols. The default RSH protocol avoids + password prompts. In addition, a feature is provided to spawn a + daemon process in.irafksd which makes it much faster to fork a new + kernel server, once the first RSH connection to a server node has + been made. The new kernel server is largely backwards compatible + (although due to magtape i/o changes V2.10 networking cannot be used + with older systems anyhow). The new driver still uses a .irafhosts + file, but it need not contain passwords, and the file is automatically + created and read protected. Details to follow. (12/26) + + Here is some more information on the new networking system (12/31). + + The new driver support three different connection protocols. The + default protocol uses rsh|remsh to spawn a networking daemon which + is used thereafter to start iraf kernel server processes on that + node (more on the this later). This is the most efficient protocol, + and does not require any passwords. A rsh only protocol is also + supported which requires a rsh connection every time a connection is + made. This is slightly more secure than the rsh/daemon protocol but + considerably less efficient. Finally, the old rexec protocol is + still supported. This is what is used if a password is given for a + node in the .irafhosts file. It is also now possible to use iraf + networking even if no rsh or rexec service is available, by manually + starting the iraf networking daemon on a server node. + + The rsh/daemon protocol works as follows. The client calls the + zfioks driver to open a connection. zfioks reads the irafhosts file + and determines that the rsh/daemon protocol should be used for the + named host. zfioks attempts to connect to the daemon process on the + remote host. If the connection is made the client passes its port + number and an authorization code to the daemon, the daemon forks to + create a new irafks kernel server, which then connects to the client + via the client supplied port number, and the connection is made. If + the client cannot connect to the daemon, the client forks and execs + the rsh task which is used to start up the daemon process on the + remote host. The client can then connect to the daemon in the usual + way. + + When the daemon is first started with rsh, the client passes a + unique long integer authorization code. All subsequent connections + to the daemon must supply the same code or the connection will be + refused. The authorization code is given in the irafhosts file. + Since this networking scheme avoids any suid root processes, the + daemon process runs with the uid of the user whose client issued + the original rsh request to start the daemon. Each user has their + own daemon process on each server node. The daemon is started + automatically when the first connection is made. After a certain + period of inactivity (default 1 hour) the daemon process will exit. + + Once a daemon has been started with rsh (this takes several seconds) + a network connection can be made very quickly, as all that is + required is a connect to a remote socket, a fork of the daemon + process, and a connect back to the client supplied socket. The + irafks server and the client zfioks driver will then be directly + connected via a socket. The daemon process is just the usual + irafks.e running as a daemon, which is why it only needs to fork to + spawn a new irafks server. Only one daemon process is required per + user per server node, but there can be any number of irafks + servers. Any number of client hosts can connect to a single server + host via a single daemon process, provided the user has set up a + .irafhosts with the same authorization code on each client node (if + this is not done the connection will still be made, but will require + an expensive rsh connect on each call). + + The new driver still uses the .irafhosts file, although most of the + motivation for including passwords in the file is gone. The + .irafhosts file is required and will be created automatically by the + system if not present. If an old style .irafhosts file is present + it will be replaced by the new version of the file. The system + automatically read protects the file. The .irafhosts file contains + three regions: some header comments, some keyword=value networking + parameters, and the user supplied host list. + + The irafhosts keywords are as follows. + + port The TCP port number used by the daemon process. + Normally set to "default", which tells the driver + to assign a port for each user based on HIPORT + and the user uid code. If PORT is set to "none" + use of the daemon is disabled and rsh will be used + for every connect (this is provided in case someone + doesn't feel the authorization code scheme is + secure enough). + + auth The user authorization code. Set to "default" in + dev$irafhosts, but replaced by a unique authorization + code when the user uses networking for the first time + and the .irafhosts file is created. + + hiport Used to dynamically assign unique port numbers + (see "port" above). hiport defines the top of the + reserved port region used for the irafks daemon. + Normally set to "default" (47000). + + timeout The idle time in seconds after which the daemon + will exit. Normally set to "default". The builtin + default timeout is 1 hour. + + The format of a host-list entry is as follows. + + host-name ":" login-name password + + The default host-list entry is the following. + + * : <user> <user> + + This enables the rsh/daemon protocol for all server nodes. + The login-name field may be set to "none" to disable networking + for a node, or to the actual user login name to cause the + connection to a node to be made with different login name than + that of the user on the local host. Setting the password field + to an explicit password causes the rexec connect protocol to + be used for that node. Setting the password to "?" causes the + driver to prompt for the password, after which the rexec protocol + is used to make the connection. + + In actual practice, all of this is automatic and the user never + needs to look at or modify the .irafhosts file, unless they want + to customize things. Once the .irafhosts file has been created + by the system it should be copied to the user's login directory + on other nodes in the local network. If this is not done iraf + networking will still work, but will be less efficient if iraf + clients running on different hosts try to connect to the same + server (they will have different authorization codes and the + driver will have to fall back on the rsh connect protocol for + every connection). + + The system template irafhosts file is dev$irafhosts. The iraf + system manager can set the default network parameters in this file + if they don't like the builtin defaults. Note that the hostlogin + file is no longer used. It was confusing for the files to have + different names so dev$hostlogin was replaced by dev$irafhosts. + + COMPATIBILITY. By default the system will try to use one of the + rsh protocols, hence the server as well as the client must be + running v2.10 iraf. To connect to a pre-v2.10 server from a v2.10 + client the rexec protocol must be enabled by setting the password + field in the irafhosts file. A v2.9 client should be able to + transparently connect to a v2.10 server. In all cases where v2.9 + and v2.10 clients and servers are being mixed, remote magtape + access cannot be used since the protocols have changed in v2.10. + +sys/ki/kzopmt.x + The devcap string was not being passed at the correct offset. + (12/29) + +sys/ki/irafks.x + Fixed a couple of problem in the zfiomt server code which were + preventing magtape i/o from working over the network. The server + was missing an entry for the new zzstmt routine. (12/29) + +unix/os/zfioks.c + Fixed a bug that was causing remote device allocation/deallocation + to fail, when accessing a device over the network. SIGCLD was + being received by the server when the alloc.e terminated and was + executing a longjmp to a stack frame that no longer existed (the + zfioks driver, with all its forks, has several parallel execution + paths all in the same code). + + With this fix remote magtape access seems to be working again using + the new magtape and networking drivers. (12/30) + +unix/os/zfiomt.c + For a read (zzrdmt), the recsize output to the status output was + changed from the requested read size to the actual read size, i.e., + the actual size of the record read. (1/02/92) + +unix/hlib/iraf.h +sys/mtio/mtio.h + Moved the definition of EOT from mtio.h to iraf.h, so that applications + can use it (required for mtparse/mtname). (1/02) + +sys/etc/xalloc.x + Changed mt_allocate/mt_deallocate to mtallocate/mtdeallocate, to be + consistent with the other extern MTIO routines. (1/02) + +sys/mtio/README +sys/mtio/mkpkg +sys/mtio/mtalloc.x +sys/mtio/mtcap.x +sys/mtio/mtdealloc.x +sys/mtio/mtglock.x +sys/mtio/mtgtyopen.x + +sys/mtio/mtio.h +sys/mtio/mtname.x + +sys/mtio/mtneedf.x + +sys/mtio/mtopen.x +sys/mtio/mtparse.x +sys/mtio/mtpos.x +sys/mtio/mtrdlock.x +sys/mtio/mtrewind.x +sys/mtio/mtstatus.x + 1. An interface summary was added to the README file. + 2. Revised MTIO to add a number of new externally callable user + routines. The following is excerpted from the README file. + + yes|no = mtfile (fname) # Is fname a magtape device? + yes|no = mtneedfileno (mtname) # No file number given? + gty = mtcap (mtname) + mtfname (mtname, fileno, outstr, maxch) + + mtparse (mtname, device, fileno, recno, attrl, maxch) + mtencode (mtname, maxch, device, fileno, recno, attrl) + + fd = mtopen (mtname, acmode, bufsize) + mtrewind (mtname, initcache) + mtposition (mtname, file, record) + + Use CLOSE to close a file descriptor opened with mtopen. + Use GTYCLOSE to close a termcap descriptor opened with mtcap. + MTNAME is the full magtape device specification, i.e, "mt[...]". + + The new routines are MTCAP, MTNEEDFILE, MTFNAME, MTPARSE, and + MTENCODE. MTCAP opens the GTY descriptor for the device specified + in mtname. MTNEEDFILE tells whether a file number is specified in + the given mtname. MTFNAME constructs a magtape file name, given an + existing mtname and a file number. + + The MTPARSE and MTENCODE routines are lower level and are provided in + case a mtname needs to be edited or constructed which the simpler + routines given above cannot deal with. MTPARSE parses an mtname + into the device name, file and record numbers (set to ERR if not + given) and tapecap attribute list, if any. MTNAME does the reverse, + building a mtname from these pieces. (1/02) + +dev/tapecap +unix/os/zfiomt.c + Added a new capability "fb" to tapecap. This specifies the default + FITS block factor for each type of device. (1/02) + +unix/os/zfioks.c + 1. Tested the password prompting option (password = ?). Fixed a + bug in the SysV version of the password prompting code. + 2. Tested the in.irafksd idle-timeout feature, seems to work. + 3. Added a timeout feature to the handshaking that goes on between + client and server during a connect. The connect will now fail and + shutdown automatically if there is no response for 45 seconds during + a connect (e.g., because the guy on the other end is not what we + expect it to be). (1/02) + +sys/qpoe/qpiosetrg.x + Changed the dimension of the VS, VE input array arguments from "ndim" + to "ARB". (1/07) + +sys/etc/xgdevlist.x + Added a call to ki_xnode to propagate the network node prefix, if any, + to the output resource string. (1/07) + +sys/ki/irafks.x + The devpos struct (position information) was not being passed back + properly when closing a magtape device opened for network access. + (1/07) + +sys/mtio/mtparse.x + When called with sz_attrl=0, could write to attrl[0] (write off the + beginning of the array). Zero is of course not a legal index, but + the routine should be able to accept it as a size, indicating that + the attrl string is not desired. In cases like this the application + must still allow space for 1 char of output, e.g., the EOS. (1/08) + +sys/mtio/mtrewind.x +sys/mtio/mtposition.x + These routines were constructing the magtape device name in order to + position to a specific file, but were discarding the attrl field, + preventing use of tapecap attributes on the command line in a rewind. + Changed to use mtfname to construct the device name. (1/08) + +sys/ki/irafks.x + Modified the debug output logging code to print more of the ARG + array in the command packet. Modified the zfiomt interface debug + logging code to include devcap in the diagnostic output. (1/08) + +sys/ki/kzrwmt.x +sys/ki/kzopmt.x +sys/ki/kopdpr.x +sys/ki/kgfdir.x + These routines were not computing the value of p_sbuflen correctly. + This can affect optional string arguments passed in the networking + packet header. (1/08) + +unix/hlib/irafuser.csh + Changed the definition of mkz to link "-z -/Bstatic". Omitting the + -Bstatic has caused too much trouble on SunOS, when linking on one + version of SunOS and executing on a different version. (1/08) + +unix/hlib/login.cl + Added a definition for the convenience alias "cls" (unix clear;ls) + to the template login.cl. (1/08) + +sys/mtio/mtopen.x +sys/mtio/mtcache.x +sys/mtio/mtrdlock.x + Modified to pass the mtname parameter though to mtallocate, which + can be called by mtrdlock.x in some circumstances. (1/08) + +unix/os/zfiomt.c + 1. Repeated calls to mtexamine on the same tape would result in the + tapeused value incrementing slightly in each iteration. This was + due to the space for the last (EOT) filemark being counted in each + read of the tape. The problem would only show up on some drives; + this was because the file mark size is only set to a nonzero value + for some devices in tapecap. + 2. Modified the driver to record the checksum of the status output + device, and check to see if the device has changed when the driver + is opened repeatedly. It will now automatically (witout flpr) + detect any changes and close and reopen the status device. + 3. Status output to a file is now enabled if there is a / anywhere + in the filename, not just as the first character. Hence, :so=./file + would write to a file in the current directory. (1/08) + +sys/mtio/mtgtyopen.x + Modified to permit inclusion of device capabilities in the tapecap + definition. The syntax of a tapecap environment definition is now + <tapecap-file><device-capabilities>, e.g., "home$tapecap:so". Either + field can be omitted. For example, set tapecap = ":so=host" would + cause MTIO to use the default tapecap (dev$tapecap) but enable + status output to the named host for all magtape operations. + + Device capabilities can now be specified in the tapecap device + entries, in the tapecap environment variable, or on the command line + (as in "mta[:so=host]"). The precedence is the command line, which + overrides everything, the tapecap environment variable, which + overrides the tapecap file entries, and the tapecap file entry + (followed lastly by the builtin defaults where applicable). (1/09) + +unix/os/zfioks.c + 1. Modified the rsh based connect code to add a fallback to rexec + (with a password prompt) if the rsh fails for any reason. If the + connect succeeds, the daemon process will still be started as with + rsh, hence all further connects will suceed by direct connection to + the daemon. In practice, what this means is that if an attempt is + made to connect to a node to which rsh cannot connect (e.g., because + there is no entry in hosts.equiv on the server node), the system + will print "access denied", prompt for the user password, and then + connect normally. Subsequent connects will succeed immediately, + without any further password prompts, until the daemon process times + out and shuts down. + + 2. If the integer variable "KSAUTH" is defined in the user + environment, the value of "auth" in the user .irafhosts file is + ignored and the environment value is used instead. This makes it + possible to dynamically assign authorization codes in the user + environment at login time, if someone doesn't like having their + kernel server authorization code in the .irafhosts file. (1/10) + +dev/termcap +dev/graphcap + Modified and tested these entries for lw9 and lw10 on tucana, + ursa, and gemini. (1/20 - jb) + +unix/hlib/zzsetenv.def +unix/hlib/clpackage.men +unix/hlib/clpackage.hd +unix/hlib/clpackage.cl + Added entries for the new core system PROTO and OBSOLETE packages. + (1/23) + +sys/mwcs/mwcs.h + Increased MAX_WATTR from 64 to 256, and resized the main MWCS + descriptor accordingly. (1/30) + +pkg/proto/* + +pkg/obsolete/* + +unix/hlib/clpackage.cl +unix/hlib/clpackage.hd +unix/hlib/clpackage.men +unix/hlib/zzsetenv.def + Added the new core IRAF system packages PROTO and OBSOLETE (the old + NOAO package PROTO is renamed NPROTO for noao-proto). PROTO is for + prototype or adhoc (interim, not fully general) tasks. OBSOLETE is + for obsoleted tasks that are one step away from disappearing. (Jan 92) + +pkg/images/tv/* + The TV package was extensively revised, adding the new tasks IMEDIT, + IMEXAMINE, TVMARK, and WCSLAB and moving all the IIS control tasks + (which don't work with display servers such as imtool or saoimage) + to a new subpackage IIS. The new tasks are from the old NOAO PROTO + package, except for WCSLAB, which is contributed software from STScI + written by Jonathan Eisenhamer. (Jan 92) + +unix/hlib/login.cl + 1. All the major core system packages are now loaded automatically + at login time (dataio, images, lists, plot, proto, tv, utilities). + The NOAO package is present but is commented out. + 2. The USER package was redone, adding many common unix tasks + as foreign task aliases. + 3. The CL parameter showtype is now initialized to yes, causing + packages and psets to be marked in package lists. (2/08) + +pkg/images/tv/mkpkg +unix/hlib/mkpkg.inc + Added a USE_IIS conditional. This can be set to "no" in mkpkg.inc + on systems where the IIS package will not be used, to avoid trying + to build the package. (2/10) + +pkg/cl/cl.par + Updated the value of the version parameter to V2.10BETA (should have + done this a few months ago). (2/10) + +unix/hlib/login.cl +pkg/cl/cl.par +pkg/images/images/cl + Set up a mechanism to automatically detect and warn about out of + date login.cl files. A new parameter "logver", for login.cl file + version, was added to cl.par, with the default value being the null + string. The real value is set by an assignment in the login.cl. + When the IMAGES package is loaded, images.cl compares the value of + cl.logver with cl.version and complains (harmlessly) if there is a + mismatch, suggesting that `mkiraf' be used. It is a bit of a kludge + to use images.cl for this, but it is a simple technique and should + work fine, since it is unlikely that anyone using IRAF will not be + loading the IMAGES package at some point (clpackage.cl and system.cl + cannot be used as they are read too early in the load cycle, and + obviously login.cl cannot be used). If there is any question about + the comparative dates of IRAF and the user's login.cl this can be + determined by executing "lpar cl" after the CL starts up. (2/10) + + It is very important with V2.10 that the new login.cl be used. + Magtape i/o depends upon this as does the new package loading scheme. + +imio/iki/oif/oifopix.x +imio/iki/oif/oifupdhdr.x +imio/iki/oif/oifopen.x + A couple of changes were made to improve error recovery for OIF + format images, in the event that a task aborts before an image + creation operation completes. Previously this could leave a pixel + file behind with no associated header file. + + 1. The header of a new image is now updated at open time and at + pixel file create time, as well as when the image is closed. A + legal image results even if the operation is aborted before the + pixel file is created, or before writing the pixel file completes. + 2. The header file is now closed after the immap for new images + and read-write images, as has always been the case for read-only + images. The header is reopened as necessary when updated. In the + case of a new image, it is necessary to close the header or the + header file will be deleted by FIO if the task aborts before the + file is completed and closed. Closing the header of a new image + also frees a file descriptor, and important consideration for + applications that open many images. (2/11) + +unix/os/zfprot.c + The protection code will now silently clobber any existing ..foo + file entry when protecting file foo. There is a slight risk in + this, but it should be miniscule as .. prefixed files are very + rarely encountered (other than for IRAF image header file protection). + Also, the clobber can only occur when a file is protected, a rare + operation in itself except for OIF format images. (2/11) + +sys/gty/gtyopen.x + Modified to allow a device entry input as a character string to be + opened on a GTY descriptor. The routine already permitted a caplist + to be input which would override selected fields of the named device + entry, so the change was to allow the termcap file and device entry + name to be omitted. This routine is a useful corollary to GTYCAPS; + gtycaps takes an open GTY descriptor and returns the device + capability list (caplist) as a string, and gtyopen can now be used + to take the caplist and open another descriptor on it. This makes + it possible to store device entries in any form, not just in termcap + file form. (2/12) + +sys/mtio/mtcap.x + Fixed a bug in this routine. MTCAP takes a magtape device + specification as input and returns as output the GTY tapecap + descriptor corresponding to the named magtape device. The problem + was that it was calling mt_gtyopen and returning the gty descriptor + returned by this routine directly to the client. The client + subsequently calls gtyclose to free the descriptor, but mt_gtyopen + is used within MTIO to cache the most recently referenced tapecap + device entry. When the client closes the descriptor the cache is + left pointing to a nonexistent descriptor. The routine was modified + to call GTYCAPS to get the caplist of the cached descriptor, then + open a new descriptor on this with GTYOPEN. (2/12) + +sys/imio/iki/oif/oifrename.x + This routine calls immapz (what a kludge) to open the image header + and read/edit the pixel file name. A minor modification was required + to preserve the header file name in the descriptor to allow the + subsequent header update to succeed, now that the header file is + closed and reopened for updating. (2/13) + + +pkg/dataio/wfits.par +pkg/dataio/doc/wfits.hlp +pkg/dataio/fits/wfits.h +pkg/dataio/fits/t_wfits.x +pkg/dataio/fits/fits_write.x +pkg/dataio/fits/fits_wheader.x +pkg/dataio/fits/fits_wimage.x +pkg/dataio/fits/fits_wpixels.x + Modified wfits to fetch the default fits blocking factor for a device + from the dev$tapecap file. The user can still overrride this value + (which is usually set to 10) for variable blocked devices, but is no + longer required to know or set the block size for fixed block devices + like cartridge tapes. (2/13 LED) + +unix/as.sparc/ieee.gx + +unix/as.sparc/ieeer.x + +unix/as.sparc/ieeed.x + +unix/hlib/mkpkg.sf.SUN4 +unix/as.mc68020/ieee.gx + +unix/as.mc68020/ieeer.x + +unix/as.mc68020/ieeed.x + +unix/hlib/mkpkg.sf.SUN3 + Installed a custom Sun version of the IEEE-floating to native-floating + conversion routines. The code is actually fairly portable SPP code, + but includes Sun Fortran escapes used for NaN mapping. The routines + iee[sg]nan[rd], used to set|get the reserved (native) magic value + used to replace or match NaNs, are now functional (formerly they + were stubbed out for SunOS). On Sun-3s and Sun-4s, which are IEEE + and unswapped, the only function of the IEEE conversion routines + is to map NaNs to and from the reserved (ieesnan[rd]) value. + + ieemap[rd] (YES|NO) # enable/disable NaN mapping + + A new routine IEEMAP[RD] (YES|NO) is used to explicitly enable or + disable NaN mapping. Note that NaN mapping occurs on both input + and output, for both the scalar and vector conversion routines. + NaN mapping is automatically enabled if IEESNAN[RD] is called. + "call ieemap[rd](NO)" should be called before using the conversion + routines, if NaN mapping is not desired. (2/14) + +pkg/dataio/fits/fits_rheader.x + Modified rfits to replace control characters decimal 0 (00X) to + 31 (1FX) and decimal 127 (7FX) in fits card images with the blank + character. The new fits standard now explicitly defines these + as illegal in fits headers. (LED 14/2/92) + +unix/gdev/sgidev/sgi2uapl.c +unix/sun/screencopy.c + The call to the Postscript "setmatrix" operator was replaced by a + functionally equivalent series of calls to the operators + "initmatrix", "scale", and "translate", in an attempt to make + the Postscript output of these routines more device independent. + (2/14) + +unix/as.sparc/ieee.gx +unix/as.sparc/ieeed.x +unix/as.sparc/ieeer.x +unix/as.sparc/ieee.gx +unix/as.sparc/ieeed.x +unix/as.sparc/ieeer.x + The SunOS IEEE conversion package was modified to add support for + counting any NaN values encountered during input and output + conversions (the portable vops$ieee.gx still remains to be updated). + + The new routines are as follows. + + ieestat[rd] (nin, nout) + ieezstat[rd] () + + IEEZSTAT zeros the counters (since there is no "open" procedure in + this package this must be done explicitly). IEESTAT returns the + number of NaNs encountered in the IEEE input (nin) and the number of + NaN values output (nout). (2/14) + + +unix/as.sparc/ieee.gx +unix/as.sparc/ieeed.x +unix/as.sparc/ieeer.x +unix/as.sparc/ieee.gx +unix/as.sparc/ieeed.x +unix/as.sparc/ieeer.x + I made one change to the IEEE interface - the calling sequence for + IEEMAP[RD] is now + + ieemap[rd] (mapin, mapout) + + i.e., mapping can be enabled independently for input and output. + + The semantics of the IEESNAN routine were also changed slightly. + IEESNAN now has the side effect of enabling mapping for both input + and output (it did this before) and zeroing the statistics counters + (this is new). Hence, setting the native pseudo-NaN value will + initialize the NaN mapping code. (2/15) + +sys/osb/ieee.gx + Installed a new version of the "portable" IEEE conversions package. + This is identical to the version developed for SunOS, with the code + which initializes the IEEE NaN constant commented out (since the way + this is done is system dependent). The new version of the portable + ieee.gx includes the new IEEMAP and IEESTAT/IEEZSTAT routines, and + if input mapping is enabled is capable of detecting and converting + input NaN values to the local pseudo-NaN value. It will also + attempt to convert pseudo-NaN to IEEE-NaN upon output (if mapout is + enabled), but since the IEEE-NaN constant is not initialized the + output NaN value will be something else, usually zero. An + as$ieee.gx version of the file is required to set the true IEEE-NaN + value. In principle this can be done portably using an integer + equivalenced to a floating variable, but the current version does + not bother with that (for output; a similar technique is used to + recognize NaN values in the input). (2/15) + +pkg/images/tv/display/t_display.x + Added a call to IMGIMAGE to strip any image section from the image + name stored in the WCS passed to the display server. Since the WCS + output by display refers to the full image matrix ignoring any + section, defining the image as a section was incorrect. The WCS + still does not deal correctly with dimensional reduction when + displaying images greater than 2 dimensions. + + This was tested with both image raster and QPOE data using RIMCURSOR + to generate coordinates and seems to work correctly. In particular, + the correct physical coordinates are generated for QPOE data + regardless of the QPOE block factor or image section. (2/16) + +sys/qpoe/qpioparse.x + Fixed a bug that was preventing the key=(x,y) (alternate coordinate + system) feature of QPIO from working properly. The code was setting + the IO_EVXOFF field twice but was not setting IO_EVYOFF; hence, given + a key such as key=(dx,dy), XOFF was being set to DY and YOFF would + retain its old value, probably Y. A reasonable looking image would + result but it was the wrong image (we were seeing key=(dy,y)). (2/16) + +sys/imio/iki/qpf/qpf.h +sys/imio/iki/qpf/qpfwfilter.x + Fixed a bug in the code which writes the QPIO filter to the QPF image + header, which would cause it to omit all but the last card when + writing filters longer than will fits on a single QPFILTxx header + card. (2/16) + +sys/imio/imparse.x + The routine was modified to make it a little more forgiving regarding + variations on the standard image section syntax, and to improve error + detection of invalid section specifications. (2/16) + +pkg/dataio/fits/fits_rimage.x +pkg/dataio/fits/fits_wimage.x + Modified rfits so that the ieee +/-NaNs, and +/-Infs are correctly + mapped to a user specified native floating point number. Underflow + values are automatically converted to 0.0. A warning message is + printed on the terminal if any bad pixels were replaced. A warning + message is also printed if valid floating point pixel values > + MAX_REAL or < -MAX_REAL were detected which can happen for both fits + bitpix -32 and -64 images. Imreplace can be used to replace these + explicitly. (LED 2/17/92) + +pkg/dataio/fits/fits_wheader.x + Modified the short_header=yes option in wfits so that the image + pixel type, fits bitpix, and the scaling parameters are printed on + the standard output, along with the image name, size, and number of + records written. (LED 2/17/92) + +pkg/dataio/fits/fits_params.x + Modified wfits so that string parameters that are 1) written + explictly by wfits, and 2) <= 20 characters long including quotes, + will have the / in column 33 instead of 2 spaces past the end of the + string. The affected keywords are OBJECT, ORIGIN, DATE, IRAFNAME, + IRAF-BPX, and IRAFTYPE. (LED 2/17/92) + +pkg/dataioo/fits/rfits.com +pkg/dataio/fits/t_rfits.x +pkg/dataio/fits/fits_read.x + Implemented a scan mode in rfits so that devices which have a slow + single-file file skip function (e.g. dat drives) can be used more + efficiently with the rfits make_image=no option. (LED 2/18/92) + + +dataio$fits/t_rfits.x +dataio$fits/t_wfits.x + Changed the maximum sequence number that can be appended to an output + root image of fits file name from 999 to 9999. This is actually + a format limitation %04d than a numerical limitation. (LED 2/18/92) + +sys/qpoe/qpiogetfil.x + Modified to remove an unneeded trailing comma which was being returned + in some circumstances in the reconstructed filter expression output + by the routine. (2/18) + +sys/qpoe/zzdebug.x + The zzdebug would not link any more due to a routine being referred + to by a name which had since changed (qp_rlmerge). (2/18) + +sys/imio/iki/qpf/mkpkg +sys/imio/iki/qpf/qpfwattr.x + + Added a new routine qpf_wattr to QPF. This is called when an + image descriptor is set up for a QPOE image. The routine checks + for the existence of a series of QPOE header paramters "defattr1", + "defattr2", etc. If present, these are string value parameters, + the string value specifying the name of a parameter to be added + to the output image header, and how to compute the value of the + parameter. For example, defattr1 might have the value + + exptime = integral time:d + + meaning add a parameter "exptime" to the output image header, giving + as the value of the parameter the integral of the range-list of + attribute "time", type double, of the event attribute expression + used to filter the event list used to create the output image. (In + other words, compute EXPTIME, the total exposure time for the + filtered image). Currently, the syntax of the DEFATTRn parameter is + very limited and must be similar to that shown in the example, but + the parameter and attribute names can be anything, and the datatype + can be int, real, or double. Since the parameter is string valued + it will be easy to generalize in the future should we need to do + so. (2/18) + +sys/imio/iki/qpf/qpfcopypar.x + Improved the error recovery. (2/18) + +pkg/cl/gram.c + Constants such as 0:00:60 or even 0:00:59.999999999 could trigger + an "illegal constant" error abort in CL scripts, due to round off + errors in the CL code. Technically there is no reason one cannot + have a number such as 0:00:60 (or 0:00:any-positive-number for + that matter), since the result is well defined, so I relaxed the + overly stringent error checking in the gram.c code. (2/19) + +sys/gio/cursor/grcwcs.x + The code which computes the scale terms for an axis could die on + a divide by zero error when presented with an axis that has no + range. It will now detect the condition and set the scale term to + 1.0; the value is arbitrary, since there is no range on the axis + and deviations from the mean will always be zero. (2/19) + +sys/imio/iki/stf/stfrdhdr.x +sys/imio/iki/stf/stfwfits.x + The STF image kernel was modified slightly to support images with + GROUPS=F. When the FITS image header is read, if GCOUNT=F the + parameters GCOUNT, PCOUNT, and PSIZE are initialized as for an image + with a single group and no GPB. The header update code was modified + to omit these parameters when updating an image for which GROUPS=F, + since the parameters should not be present in the FITS image header + if the image unless GROUPS=T. (2/19) + +sys/imio/iki/oif/oifrename.x + An image rename operation such as pix.0001.imh -> pix.imh would + succeed for the header file but would fail to rename the pixel + file. This would often pass unnoticed using a hidden imdir, but + is very evident when using imdir=HDR$. The problem was due to the + use of fnroot in oifrename, in a test to see if the root image + name is the same for the rename operation. This would fails as + fnroot cannot descriminate between image extensions and file + extensions. I replaced the calls to fnroot by calls to zfnbrk, + to get the root offset and hence strip off any logical directory + prefix, which was the point of the original call to fnroot. (2/19) + +unix/os/zfiomt.c + It turns out there was still one case where the new magtape driver + did not emulate the simple unix model of open, write,write,write, + close, open, write,write,write, close, open, etc. The exception was + minor, but caused a problem with the TIB SI driver for the HP drive + on a Sun (the only one of these we have seen so far is at STScI). + The result was a double EOT between each file on the tape, when + appending files with WFITS. + + What was happening is that when the driver was opened to append a + file to the tape, it opened the drive read-only to position the + tape, then closed it and reopened write-only for writing. This is + done to avoid clobbering the tape if an abort occurs during the + file positioning operation. What was happening was that when already + positioned to EOT, the drive would be opened read-only, no positioning + would occur since the tape was already at EOT, the drive would be + closed, and reopened for writing. Hence there was an unnecessary + open-read/close before writing each tape. This should be harmless - + it does not move the tape or talk to the hardware - but it was + triggering a bug in the host driver. + + Evidently (this is my theory at least), this host driver is pretty + clever and delays writing the double file mark marking end of tape. + So long as you just append files it never write the EOT, until the + tape is rewound. A rewind or backspace should trigger writing of + the EOT. What I think was happening was that the open-read would + trigger writing of the delayed-EOT. The host driver would write + two tapemarks and backspace over the second one. Only problem is, + it had already written one (one is always written after every file + even with delayed EOT), so you end up with a double file mark, or + EOT, between every file on the tape. This is a blatant bug in the + host driver. We were able to duplicate this using only using UNIX + TAR by writing a small C program which did close(open(/dev/xxx,0)); + and was called before using tar to append each file. + + As a workaround I have revised the iraf driver to avoid opening the + tape read-only for positioning unless some positioning is actually + necessary. If all one does is append files, the positioning open + is avoided and the simple unix semantics are exactly duplicated, + i.e., all the driver does is open for writing, write the file, and + close. (2/19) + +pkg/dataio/fits/fits_write.x + Replace a call to imgimage with one to imgcluster since the + original purpose of the imgimage call was to extract the root + image name. (have not yet rebuilt dataio) (2/20/92 LED) + +------------------------ +Beta system cut and installed on URSA (2/20). + +unix/os/zfiomt.c + Fixed a bug having to do with error recovery in the event that the + device cannot be opened (as when attempting to rewind or deallocate + a device that is offline). (2/22) + +unix/hlib/login.cl + Modified the template login.cl to allow V2.10 login.cl files to be + used with V2.9 IRAF (available as "irafo" on our systems). It + was necessary to add conditional references for LOGVER and PROTO. + Also, the NOAO package is now loaded by default. (2/22) + +pkg/plot/crtpict.par + Changed the default output device from "dicomed" to "film_recorder". + The latter is a generic device alias set in graphcap to point to + whatever the desired local device may be. (2/22) + +local/login.cl + Updated to V2.10. Edited so that it is fairly generic and has a + chance to work when the system is installed on a different host. + (2/22) + +dev/tapecap + 1. Added local entries for node ursa. + 2. Added a SCSI 5 entry for the Sun HP drive. (2/22) + +dev/graphcap + Additions for Solitaire film recorder. Set the default generic + "film_recorder" entry to point to the solitaire. The Solitaire + is currently interfaced via a custom graphics kernel (modified + version of the SGI kernel) which resides outside the standard + IRAF system, in the NLOCAL package. (2/22) + +pkg/system/rewind.par + Changed the default for the "initcache" parameter from yes to no. + initcache causes rewind to "forget" how many files there are on the + tape, forcing a rescan the next time one seeks to EOT. It is + arguable whether it is safer to init the tape status cache on a + rewind or now, but it sure can be a lot faster on devices with + many files to retain this information. (2/22) + +------------------------- +Beta distribution files regenerated to pick up these changes. (2/22) + +unix/bin.mc68020/gterm.e.403 +unix/bin.mc68020/imtool.e.403 + Added SunOS 4.0.3 versions of the GTERM and IMTOOL executables, + for the convenience of those who have not updated to 4.1.x (as is + the case with argo, locally). (2/23) + +unix/as.sparc/ieee.gx +unix/as.mc68020/ieee.gx +sys/osb/ieee.gx + Fixed a typo in the generic code for ieevupk - an "amovr" should have + been a "amov$t". This would cause type double vector unpack operations + to fail for large numbers. (2/25) + +unix/os/zfiomt.c + Added a new capability "fe" to tapecap. This stands for "file + equivalent" and is the amount of tape in Kb which, in a file read, + is equivalent to a file-skip-forward 1 file operation. This + capability can be used by applications which scan large tapes + containing many files to decide whether to read the rest of the + file, or close the file immediately and open to the next file (which + implies a FSF). On devices (like some DAT drives) where a FSF + operation can be slower than a file read, it is faster to read + small files than to FSF to the next file. If the fe parameter is + missing the value is assumed to be zero, meaning that FSF is faster + than reading the file. Note that "fe" is not used by the driver, + it is an optional parameter provided for use by tape applications + as a device-dependent optimization. (2/27) + +pkg/dataio/fits/fits_read.x + Changed the interpreation of the fe parameter as read from + dev$tapecap from MB to KB. (2/27 LED) + +dev$hosts + Added spud and pantera to hosts file on tucana, orion, gemini and + ursa (MJF 2/28) + +sys/etc/erract.x + Replaced an explicit reference to the common "zjucom" by the symbol + JUMPCOM defined in config.h. (This was a historical oddity, harmless, + but would cause a problem if the name of the common was ever changed + in config.h). (2/29) + +sys/etc/onexit.x +sys/etc/onerror.x + A procedure was added to both of these small packages, for removing + previously posted onerror or onexit procedures. + + onerror_remove (procname) + onexit_remove (procname) + + Previously there was no way to deactivate such procedures, other than + during error recovery or task termination. (2/29) + +sys/mtio/mtupdlock.x + This procedure calls FATAL if an error occurs while updating a lock + file. This was causing problems with magtape error recovery, + because mt_sync, which causes the lock files to be updated, is + posted by MTIO as an ONERROR procedure. If an error occurred and + the lock file could not be updated, FATAL would abort the task, + error recovery would call mt_sync, which would try again to update + the lock file, leading to error recursion or errors during error + recovery, and various nasty scenarios. With this change magtape + error recovery appears to be working correctly again. I tried + several mtexamine runs, aborting each with a ctrl/c (but omitting + the flpr) and the system recovered perfectly each time. (2/29) + +sys/mtio/mtdealloc.x + Added calls to mtdeallocate to sync the MTIO cache (update the lock + files with the current tape position) and then clear the cache, + clearing the entry for the deallocated device as well as forcing all + devices to reload their lock files. This was the source of the + problem where allocating and deallocating device A and then allocating + device B would cause devstatus B to fail. Following this fix various + tests with two devices allocated and accessed together or alternately + were performed without seeing any problems. (2/29) + +pkg/system/rewind.par + Changed the default for the initcache parameter back to yes. It is + essential that the cache be initialized when a tape is removed and a + new tape mounted, and it more likely that the user will rewind the + tape (in software) than that they will deallocate/reallocate. (3/01) + + rewind init[+|-] appears to be working correctly now, probably as a + result of one of the bug fixes made during the period 2/29-3/01. + +unix/os/zfiomt.c + The tapeused counter is now cleared when opening a tape and the tape + position is undefined. This condition forces a rewind and clears + all cached data. (3/01) + +sys/ki/kzopmt.x +sys/mtio/mtcache.x +sys/mtio/zclsmt.x +sys/mtio/zopnmt.x + A number of changes were made to these routines during two days of + beating on the system with ctrl/c interrupts to improve error + recovery. With these improvements the magtape i/o system again + appears to be solid with respect to error recovery. A tape task can + be interrupted either during positioning or during a read and the + system should recover completely, without need to do a flpr (I + didn't do any flprs during all this testing). Interrupting a write + is ok too, but will leave a partial file on the tape. Any kind of + interrupt will cause the tape position to be marked undefined, + forcing a rewind the next time the tape is accessed, and clearing + all cached information (clearing cached tape information when an + interrupt occurs during a read is not necessary in all + circumstances, but simplifies things and is probably safer). + + 1. The kzopmt routine (KI) had a serious bug in that it did not + allocate a KI channel descriptor until after the device open. This + is ok for most devices, but not for tapes since the device open + implies a tape positioning operation which may take a very long + time, and hence is suspectible to interrupts. FIO and MTIO error + recovery has to be able to close a tape device which is "partially + open", or open read-only for positioning, prior to the i/o operation. + The close operation would fail as the kzclmt routine would be + expecting a KI channel descriptor but would not get one, causing + a bogus file descriptor to be closed. This would cause the tape + close to fail and could in some cases result in a segmentation + violation or process panic shutdown. + + 2. zopnmt was modified to update the cached file position after + the driver open. This was necessary to mark the cached entry + for updating, to allow an undefined position to be written in the + event that an interrupt occurred during i/o. + + 3. zclsmt required minor changes for both the interrupt-while- + positioning and interrupt-during-i/o cases. In the IWP case mt_sync + is now called with a status of ERR to cause an undefined position + to be written. In the IDIO case MT_FILNO = -1 in the internal + MTIO descriptor is used to flag error recovery, but due to the + calling sequence of the driver open having changed with the new + driver, MT_FILNO was being overwritten with a valid tape position + during the device close. This would cause a valid position to be + written to the .lok file when a tape operation was interrupted + while i/o was in progress. + + 4. The file position cache code underwent several subtle modifications. + Probably these were not necessary but they bullet-proof the code a + little bit. + + The result of all these changes is that, following an interrupt of + a tape operation, 1) devstatus should always show file=-1, record=-1, + and 2) the next tape operation should cause an automatic rewind + followed by a space forward to the indicated file. It should not be + necessary to flush the process cache. Any other behavior, even if + harmless, is considered incorrect. (3/01) + +sys/etc/xalloc.x +sys/mtio/mtalloc.x +sys/mtio/mtstatus.x + Modified the "devstatus" command to print the tape status file + (.lok file) even if the device is not allocated, provided the file + exists. This is desirable since taping is now permitted even on + unallocated devices, and it is useful to be able to see the tape + status file to see what file the tape is positioned to, how much + tape has been used, etc. If the device has not been allocated + devstatus will still issue a warning message to that effect, as it + has always done, followed by the contents of the .lok file (tape + status file), if such exists. Since existence of the tape status + file no longer necessarily implies that the tape has been allocated, + the header message in the file was changed from "Magtape device X + allocated to ..." to "Magtape device X status ...". (3/01) + +sys/mwcs/mwshow.x + + Added a new routine MW_SHOW to MWCS. This is used to print a + representation of a MWCS to an output file (usually, for debugging + purposes when writing an application). + + call mw_show (mw, out, what) + + The routine does not yet print all that it could about the MWCS. + The argument "what" is not yet used. This routine was described + in the original interface but had never been implemented. (2/25-3/01) + +sys/mwcs/mwcs.h +sys/mwcs/mwsv.h + +sys/mwcs/wfinit.x +sys/mwcs/mwload.x +sys/mwcs/mkpkg + In IRAF v2.10 we increased the max number of WCS attributes, which + affected the size of the MWCS descriptor. This caused the WCS stored + in old QPOE files to be unreadable, since it turns out that while + the MWCS interface (mw_save) encodes a MWCS descriptor in a machine + independent form for external storage, this form is essentially just + a copy of the internal MWCS binary descriptor. When the internal + descriptor changed the old saved descriptors could not be read. + Since QPOE is a runtime binary format there is no requirement that + the files be readable from one version of iraf to the next, but it + is desirable to minimize such incompatibilities, or at least detect + them and issue an appropriate error message. + + Really fixing this problem in a general way is not easy given the + complexity of the MWCS descriptor. What I did was define a separate + MWSV save file descriptor in mwsv.h, deleting the old SV_ entries + from mwcs.h. The old save structure had some extra space in it for + just this sort of emergency, which is zeroed out in the old MWCS + savefile descriptors. Fields giving the MWSV version number, number + of WCS, and WCSLEN (WCS substructure length) were added to the save + descriptor. Since these fields are zero in the old descriptors the + "version number" of these old descriptors is zero. The mw_load code + was modified to use a builtin MWSV version zero value for WCSLEN, + and calculate NWCS, allowing it to read these old descriptors. New + descriptors are written using the actual values for NWCS and WCSLEN + and a version number of 1. Hence, the new mw_[save|load] code can + both read old descriptors and write and read the new descriptor with + its larger max number of WCS attributes. + + I also discovered and fixed a minor problem in the save code. The + SV header (integer) was being read and written directly without use + of the MII routines, hence the MWCS save/load code was not fully + machine independent. The appropriate MII routines were added to + pack and unpack (byte swap) the save header. This won't affect + existing saved MWCS written on big-endian machines like Sun, since + the MII routines merely copy the data on such machines. (2/25-3/01) + +sys/mwcs/mwsctran.x + Fixed a typo in the error checking code. There was a "mw_system" + reference which should have been "mw_ssystem". (3/04) + +plot/pltwcs.x +plot/t_graph.x + Modifications were made to produce a label appropriate for the + wcs type selected rather than always use the world system label + in the image; i.e. if plotting in logical wcs the label is + "Logical pixel" rather than something like "Wavelength (Angstroms)". + The change affects pcol(s), prow(s), and graph. (3/04 FV) + +dev$hosts + Added solarium and taco to the hosts file on tucana and orion. Nigel + added these to ursa and gemini. He also notes that lyra, carina and + aquila can be deleted. (3/4/92 MJF) + +unix/bin.mc68020.403 + +unix/bin.mc68020/gterm.e.403 - +unix/bin.mc68020/imtool.e.403 - + Added a complete bin.mc68020 directory compiled and linked for + SunOS 4.0.3. Deleted the 4.0.3 versions of gterm.e and imtool.e + from the SunOS 4.1.1 version of bin.mc68020. + + In case this problem occurs again here are the symptoms: + + ld.so: warning: /usr/lib/libc.so.0.12 has older revision than expected + ld.so: call to undefined procedure _tolower from 0x20266 + + This occurs when executing any HSI executable on a 4.0.3 system. + If this occurs the solution will be to install bin.mc68020.403 as + bin.mc68020, i.e., + + % mv bin.mc68020 bin.mc68020.411; mv bin.mc68020.403 bin.mc68020 + + Currently there are no plans to ship V2.10 with the 4.0.3 binaries + installed by default. Linking the HSI -Bstatic also avoids this + problem but the executables are quite a bit larger and there may + still be subtle problems which are dependent upon SunOS versions, + e.g., with alloc.e. (3/05) + +sys/imio/iki/qpf/qpfwattr.x + Modified to deal with the case where there is no filter expression + and the QPEX descriptor is NULL. (3/05) + +pkg/images/iminfo/listpixels.x + Modified the listpixels task to use the MWCS axis "format" + attributes if they are present in the image header, and added + support for dimensionally reduced images whose coordinate + transformations are dependent on the reduced axis. (3/6/92 LED) + +pkg/lists/rimcursor.par +pkg/lists/rimcursor.x +pkg/lists/doc/rimcursor.hlp + Added two new parameters wxformat and wyformat to the rimcursor task. + These formats if defined take precedence over the formats stored in + the WCS in the image header, and the internal default format for + all values of the wcs parameter. (Davis 9/3/92) + +sys/mio/mtupdlock.x + This, routine, which updates the magtape device status file (aka + lockfile) was a bit too zealous about error checking and could fail + to update the status file and cause a fatal exit of the task in + circumstances where this was not really necessary, for example when + the old status file did not exist or could not be read. This could + result in the message "fatal error while closing magtape file". I + modified the routine to recover if the old file could not be read + and to take an error exit only if the new status file could not be + written. The error message was changed to "Fatal error writing + magtape device lockfile". (3/10) + +sys/imio/iki/stf/stfaddpar.x + The stf_addpar routine is used for a new image or a new copy of a + non-STF image to add parameters to the GPB. As each parameter is + added a parameter is also added to the open image descriptor (image + header). The imaddX calls for the image header would initialize + the value of any existing header parameters, causing any existing + WCS to be lost (since the standard GPB parameters are for the WCS). + The fix was to omit the imaddX call if the named parameter already + exists in the image header. (3/10) + +sys/imio/iki/stf/stfaddpar.x + The value of STF_PSIZE was being computed incorrectly. There was + an implicit assumption that the CTYPEn field was the same size as + SZ_DOUBLE, evidently made in the original code to simplify the + expression. Rewrote to use an explicit 8 bytes for the CTYPEn field, + and also reordered and commented the expression for clarity. (3/10) + +pkg/images/iminfo/t_imstat.x + Precision was being lost unnecessarily in the computation of the + standard deviation, skew, and kurtosis because two of the + intermediate variables in the computation were real instead of + double precision. (3/10/92, Davis) + +dev$hosts + Added 'elric' to hosts file on tucana, orion, and ursa. Previously + added to gemini by Nigel. (3/11 MJF) + +pkg/images/imutil/t_imslice.x +pkg/images/doc/imslice.hlp + Added wcs support to the imslice task. (3/12 LED) + +unix/os/zfiomt.c + Discovered and fixed another error recovery problem. During testing + using WFITS to write a number of very small images, the program was + spending most of the time doing the file close on the magtape device + (which writes a tape mark and takes a finite time for such a device). + An interrupt would therefore usually occur during the close, resulting + in a half-completed file close; error recovery closes open files, and + the driver was bombing as part of the descriptor had already been + deallocated. The fix was to modify ZZCLMT to check for a partially + deallocated descriptor before proceeding to close the file. (3/14) + +unix/os/zfiomt.c + When appending files to a tape, the space for the file mark was not + being counted, causing an incorrect tapeused value when writing to + DAT or Exabyte. (3/14) + +unix/os/zfiomt.c + Added two new tapecap device parameters "ro" and "rr". If "ro" + (rewind-on-open) is set the tape is rewound on every open to get to + a known position, after which the driver will space forward to the + desired file. If "rr" (rewind-after-close-readonly) is set the tape + is rewound when closed following a readonly operation. These + options are rather drastic, but are provided to deal with drives that + leave the tape in an unknown position after a file operation. (3/15) + + I also looked into the problem of fast techniques for finding the EOT + of large tapes containing hundreds of files. This is important as + seeking to the end of tape file by file where are hundreds of files + can be very time consuming. + + At least in the case of a DAT with the ApUNIX driver there is no + system and driver independent way to do this because the driver does + not report an error if one attempts a fsf N where N is greater than + the number of files on the tape. However, such an operation *does* + leave the drive positioned to EOT, hence operations with large N can + be used to position to EOT or append to a tape. This is perhaps + most easily explained with some examples. Assume we have a tape mta + with 100 files on it. + + wfits dev$pix mta[999] appends a file + mtex mta[999] positions to EOT + mtex mta[998] after the above, reads last file + + After one of the above operations the driver will report that + there are 999 or 998 files on the tape. A mtex of the full tape + would automatically correct this figure. + + Of course if the user knows that there are 100 files on the tape + they could just write to mta[101] or read mta[100], and the driver + would immediately position to the indicated file using a multifile + space operation (if enabled in tapecap). + + Further studies will be needed to determine if there is any way + to exploit this sort of drive behavior in the driver to make things + transparent to the user. + +sys/fmtio/dtoc.x +sys/fmtio/fprfmt.x +sys/fmtio/parg.x +sys/libc/printf.c + Added two new format specifiers %H and %M to FMTIO. These are + identical to %h and %m except that the value to be output is divided + by 15.0 (to convert degrees to hours) before being printed. (3/15) + +pkg/lists/doc/rimcursor.hlp + Added an explanation of the %H format and example of its use to + the rimcursor help page. (3/16 LED) + +sys/fmtio/lexdata.inc +sys/fmtio/doc/lexnum.hlp + The action for the character B in the DHR production was incorrect; + changed from d_d (reduce decimal) to HEX (go to the HEX production). + (3/16) + +sys/fmtio/dtoc3.x + The DTOC3 code had a very nasty problem which showed up on a specific + machine (lepus, mc68882 fp). There is some code in this routine which + goes as follows: + + do i = 1, no_digits { + v = v * 10.0d0 + j = v + v = v - j + (etc.) + + where V is double and J is integer. In the case where this failed + the number being printed was 6 and upon entry to the above loop V + was 0.6 (normalized to 0-1). The int operation J=V was setting J to + 5, but the V=V-J was returning 1.0. In the next loop V was 1 and + V * 10 was 10, causing digit conversion to fail, since the value + being digitized must be a single digit. + + In mathematical terms the code was correct but evidently it was + failing due to some sort of roundoff problem. I added some code + to try to detect this condition and correct it. The statement + J=V was also replaced by J=INT(V+EPSILOND) to round up numbers + which are integral to within the machine epsilon (e.g., 5.99999999 + with 16 or so 9s becomes 6). (3/22) + + This sounds similar to a problem which has been reported before, + it may fix the older problem. + +sys/etc/oscmd.x +unix/as.sparc/oscmd.s + I encountered some sort of bizarre (i.e. very subtle) problem with + a minilanguage which would send an OS escape to the CL to be + executed, while there were already parameter set statements buffered + in the CLOUT. The CL (actually prpsio code) would get both in the + same read and it was causing some problem which I did not have time + to investigate. Added a call to flush(CLOUT) to avoid the problem, + is safer anyway. (3/22) + + [need to add as.mc68020 version or remove from special file list] + +pkg/images/tv/wlutil.x + Wcslab was not working correctly if an image larger than the frame + buffer was displayed with fill=no. (3/25/92 LED) + +dataio$fits/t_rfits.x: Davis, Mar 25, 1992 + Rfits was using the value of the iraf_file parameter instead of the + name of the first output image, if the value was an @file, e.g + "@outlist" and the number of output files was 1. + +dev$hosts + Added Rob Hubbard's machine 'deneb' to hosts file. Added to gemini + and ursa by Ed Anderson (3/31/92 MJF) + +qpiogetfil.x +qpexpand.x +qpexgetfil.x +qpexgetat.x + These routines return the string length of the output string as the + function value. If the output string overflows maxch characters are + returned, however the function value in this case could be maxch-1, + causing the calling routine to fail to detect string overflow. The + code was modified to return maxch if string overflow occurs. (3/31) + +qpmacro.x + Modified to permit QPDEFS statements such as "set nodeffilt", i.e., + a SET statement with no value assignment. (3/31) + +qpex.h + Doubled the default size of the program, data, and expression buffers. + (3/31) + +qpexparse.gx + Timing tests on filter expressions containing many floating range + list terms (e.g. large time filters) revealed that this routine was + very inefficient in its used of fp_equal[rd]. I optimized a couple + of inner loops slightly and was able to speed up expression + compilation by a factor of 10-15. (3/31) + +qpexdebug.x + Modified to allow for output of the full expression string when + used with very long range lists. (3/31) + +-------------------------- +TUCANA upgraded from a 3/160 to a Sparcstation 2. +SunOS 4.1.2, Sun Fortran 1.4, Sun C compiler. (4/03) + +unix/mkpkg + + Added a mkpkg file providing a "mkpkg summary" facility for compressing + reboot output. (4/04) + +unix/shlib/mkshlib.csh + Added support for Sun Fortran 1.4, for sparc only so far. (4/04) + +unix/hlib/mkpkg.sf.SUN4 + Commented out the special file list entry for oscmd.x, I doubt if + it is needed any more. (4/04) + +-------------------------- +Completed a full sparc bootstrap and sysgen-compile for SunOS 4.1.2, +Sun Fortran 1.4, and the unbundled C compiler. (4/04) + +unix/hlib/irafuser.csh +unix/bin.sparc + Set up the HSI to link the HSI executables -Bstatic. I don't like + doing this as the resulting bin is 3.6 Mb, but the libc.a shared + library versions are too much of a headache. HSI executables + linked shared under SunOS 4.1.2 will generate a shared library + warning message when run under 4.1.1, and this is just a micro + version difference. The mc68020 executables (and local nodes) are + still at 4.1.1 so there is no problem there. (4/05) + +unix/boot/mkpkg/host.c + The code used to check two iraf directory pathnames for equality + could fail for pathnames such as /u3/iraf/iraf, containing more than + one "iraf/". This caused the special file list to be ignored in + the recent upgrades and full sysgen. (4/06) + + [all affected files recompiled] + +unix/hlib/install + Modified the install script to choose /usr/local/bin over /local/bin + if both are found. (4/06) + +noao/mkpkg +noao/nobsolete/mkpkg + + Added a stubbed-out mkpkg to nobsolete. Uncommented the commented-out + entries for nobsolete in noao/mkpkg. Restore the original package + build order, which builds all the main packages first followed by + imred. (4/06) + +sys/etc/prpsio.x + The code which intercepts raw mode control sequences would erroneously + match any terminal output string of the same length as a raw mode + control sequence and which begins with ESC (a full equality test was + not being performed). (4/06) + +unix/os/zfiomt.c + Due to a data structure change, tapecap parameter negation as in + "mta[:xx@]" to negate parameter xx wasn't working. (4/07) + +pkg/images/iminfo/listpixels.x + Added a formats parameter for formatting the output pixel + coordinates to the listpixels task. These formats take precedence + over the formats stored in the WCS in the image header and the + previous default format. (4/7/92, Davis) + +unix/os/zfaloc.c +unix/os/zfiobf.c +unix/os/zoscmd.c + Modified these routines to use the user's UMASK to compute the file + mode for a new file. zfiotx.c already does this, although it isn't + entirely correct (one can add more permissions with umask but one + always gets at least 0644 for new text files). The other routines + make full use of umask now. (4/07) + +unix/os/zfaloc.c + Since I was already working on zfaloc I also added a feature to + permit full preallocation of files on unix systems. The default + behavior of zfaloc, for efficiency reasons, is to physically + preallocate only the last block of the file, leaving the remainder + of the file blocks to be allocated when data is written to the file. + Now, if "ZFALOC" is defined in the user's host environment, full + preallocation of the file is enabled. If the variable is defined + but has no string value all zfaloc files are fully preallocated, + otherwise, the string value is a comma delimited list of substrings, + and a file will be fully preallocated only if one of those substrings + matches a substring of the file name in the zfaloc call. This allows + files in certain directories or of certain types to be fully + preallocated while others are allocated in the normal fashion, so + that the behavior of the routine can be customized for a given + type of application. (4/07) + +dev/hosts + Corrected the Loden entry on Gemini for Rich Reed. We should + verify all these paths in the master system. (4/07 RLS) + +dev/pix.imh +dev/pix.pix + Replaced dev$pix by a version that has the header tweaked up a bit. + (4/08) + +dev/termcap + Added entries to allow two-up page printing on all printers. Change + also made to gemini and ursa termcap files. (4/8 MJF) + +pkg/plot/t_pcol.x +pkg/plot/t_implot.x +pkg/plot/t_graph.x +pkg/plot/t_pcols.x +pkg/plot/t_prows.x +pkg/plot/pltwcs.x +pkg/plot/graph.par +pkg/plot/prow.par +pkg/plot/prows.par +pkg/plot/pcol.par +pkg/plot/pcols.par +pkg/plot/doc/graph.hlp +pkg/plot/doc/implot.hlp +pkg/plot/doc/prow.hlp +pkg/plot/doc/prows.hlp +pkg/plot/doc/pcol.hlp +pkg/plot/doc/pcols.hlp + 1. Modified GRAPH, IMPLOT, PROW(S), and PCOL(S) to define and set a + coordinate format in plots. This allows graphs to be made in + DD:MM:SS and related formats. + 2. Modified GRAPH, IMPLOT, PROW(S), and PCOL(S) to use any WCS + attribute coordinate format found in the images. + 3. Added xformat and yformat parameters to GRAPH, PROW(S), and + PCOL(S) to define coordinate plot formats. This allows having a + format when a format attribute in not found in the images, to + override a format attribute, and to allow setting the format in + simple text input. For example, GRAPH can plot formated RA and DEC + from a list of input RA and DEC coordinates. + 4. Added a ":f format" to IMPLOT to allow specifying/overriding the + WCS attribute format. + 5. Added <space> as a key in IMPLOT to print coordinate and pixel + value information: + line=256, column=142, coordinate=13:27:55.6, value=222. + (4/9 Valdes) + +pkg/cl/exec.c + The symptom of this bug was that if a package which has package + parameters was loaded at login time and the package parameters were + later edited, the edited values would not be used. + + This was traced to a problem with the pfile pointer in the package + descriptor pointing to a discarded copy of the package pset. The + PACKAGE command, executed in the package script task when the package + was loaded, would quite correctly set up the package descriptor + pointing to the runtime copy of the package pset for the package + script task. When EOF of the login.cl was reached the package + script task would terminate and the runtime pset would be copied + back to the main package pset and the runtime pset freed - but the + package descriptor was left pointing to the old, no longer used pset. + + The fix was to modify oneof() (that's "on-eof"), called when a task + terminates, to check if the task is a package script task and if + so fix the package descriptor to point to the main pset. (4/09) + +pkg/cl/builtin.c +pkg/cl/pfiles.c + "unlearn pkgname" will now unlearn the package parameters of package + pkgname, as well as the parameters of each task in the package (but + it does not descend into subpackages). (4/09) + +sys/libc/cprintf.c + +sys/libc/scanf.c +sys/libc/mkpkg + Added an interface of the VOS printf routines to LIBC. These are + the routines c_printf, c_fprintf, c_parg[bcsilrd], and c_pargstr. + LIBC already has unix stdio-like print routines, but the VOS + routines avoid the varargs stuff, and do automatic type conversion. + (4/11) + +pkg/cl/gram.c +pkg/cl/debug.c +pkg/cl/y.output +pkg/cl/ytab.c +pkg/cl/ytab.h +pkg/cl/grammar.y +pkg/cl/opcodes.c +pkg/cl/compile.c +pkg/cl/opcodes.h +pkg/cl/scan.c +pkg/cl/builtin.c +pkg/cl/mkpkg + Added the long-awaited ability to scan from a pipe (or whatever the + stdin is connected to). Also added the new formatted scan and print + routines scanf, fscanf, and printf. These are like the unix/stdio + versions but use FMTIO, supporting such FMTIO features as %h and + %*.*. For example, + + cl> printf ("%d foo %g\n") | scanf ("%d foo %g", i, x) + + or + while (fscanf (list, "%d %s", i, s1) != EOF) + printf ("i=%d, s1=`%s'\n", i, s1) + + Don't forget the [f]scan routines, which may still be more convenient + for simple unformatted scans. + + The new printf routine uses the VOS PARG routines to pass argument + operands, hence provides automatic type conversion on output. If an + incorrect number of arguments are passed an incomplete format error + will result. The scanf routine is an interface to the LIBC scanf + routine (actually, u_doscan). The CL scanf/fscanf routines call the + LIBC scanf which parses the format string and writes the output + values whose addresses are passed in a manually crafted varargs + argument list. Since scanf writes directly into the value fields of + the output parameter descriptors, no automatic type conversion is + possible and there is no checking for string overflow when writing + to a string valued parameter. Care should be taken to make sure the + scanf format matches the datatypes of the output parameters. (4/11) + +pkg/cl/debug.c + Fixed a minor problem with the uncompiled output, where non-string + values output for pushconst would contain a trailing '. (4/11) + +unix/os/zfiobf.c +unix/os/zfiotx.c +unix/hlib/libc/kernel.h + Tested the recently added umask support and made a few changes. The + umask semantics for text files are now identical to those for binary + files etc. (4/11) + +unix/hlib/zzsetenv.def + Added an entry for the gty system source directory. (4/17) + +pkg/plot/doc/gdevices.hlp + +pkg/plot/gdevices.par + +pkg/plot/gdevices.x + +pkg/plot/mkpkg +pkg/plot/plot.cl +pkg/plot/plot.hd +pkg/plot/plot.men +pkg/plot/x_plot.x + Added a new task GDEVICES to PLOT. This task will scan the active + graphcap database and print a table of the available devices in the + given class of devices (by default the stdimage devices), giving for + each device a list of the device aliases, the device resolution in + X and Y, and a short descriptive string if one was given in the + graphcap entry for the device. See the help file for examples. (4/18) + +sys/mwcs/imwcs.h +sys/mwcs/iwctype.x +sys/mwcs/iwsaxmap.x +sys/mwcs/mwloadim.x +sys/mwcs/mwsaveim.x + Various changes were made to fix the MWCS "dimension mismatch" + problem. This would happen during an image open (iw_saxmap) when + the dimension of the WCS was different than that of the image and + an image section was in use. The error was being detected in + mw_saxmap and was correct, i.e., the routine was being called + incorrectly by iw_saxmap, part of the image header interface code. + + Evidently axis mapping was not fully implemented; it worked for + runtime read-only maps of an image, but failed when making a new + image which was a reduced-dimension section of another image + (e.g., imcopy dev$pix[*,10] pix1 would do it). The new image would + retain the original WCSDIM which would not match the physical image + dimension when the new image was later opened with a section and + a new axis map created. + + The fix was to preserve the axis map in an mw_saveim/mw_loadim + operation, and in iw_setaxmap, merge the new axis map for the + reduced-dimension image into the axis map associated with the stored + MWCS. A new image header parameter WAXMAPnn was added to store the + axis map. iwsaxmap.x now reads the old axis map of dimension + MI_NDIM, and merges it with the axis map for the new image of + dimension IM_NPHYSDIM. (4/19) + +sys/mwcs/mwloadim.x +sys/mwcs/mwopen.x + The axis map, even if unused, is initialized to the unitary + transformation when a new MWCS is created. (4/19) + +sys/mwcs/iwctype.x +sys/mwcs/mwsaveim.x + The FITS CD matrix as used in MWCS was transposed relative to what + the draft FITS standard requires. Modified the iwctype.x code (input) + and mwsaveim.x (output) to swap the I,J axes in the CDi_j keyword, + in effect transposing the matrix as seen by MWCS. (4/19) + +sys/mwcs/iwewcs.x + Deleted the comma in "axis 1: axtype=ra, axis 2: axtype=dec" (in the + "ra,"). The attribute list syntax does not permit a comma in this + context and it is included in the axtype string value. (4/19) + +sys/mwcs/iwewcs.x + Modified the code which sets up the CD matrix in the case when no + CD matrix is given in the image header (in which case CDELT/CROTA2 + is normally used instead) to use a double DO-loop to initialize the + CD matrix to the unitary matrix. The old code had two bugs: 1) the + full WCSDIM dimensioned CD matrix was not being initialized when + CDELT/CROTA2 were used instead of the CDi_j notation, and 2) mk_idmd + was being used to initialize IW_CD to the unitary matrix of dimension + ndim, but this was no good as IW_CD has a fixed dimension of MAX_DIM. + It is necessary to use an explicit DO-loop instead. (4/19) + +sys/mwcs/iwpstr.x + Added a statement "Memc[bigstr+nchars] = EOS" after the blank fill + loop - the string was not explicitly EOS terminated. (4/19) + +sys/mwcs/mwgwtermr.x + Changed the aclrr in the code used to initialize the CD matrix, to a + call to mw_mkidmr, which makes the identity matrix. Formerly a zero + matrix was being returned instead of the identity matrix. (4/19) + +sys/mwcs/mwmkidmr.x + +sys/mwcs/mkpkg + Added a new routine mw_mkidmr, used to create an identity matrix of + type real. (4/19) + +pkg/images/imutil/imdelete.x + A portion of the image title string is now included in the "delete + image..." message when the verify option is enabled. (4/20) + +sys/gio/cursor/gtr.h + Increased the default max graphics frame buffer from 64K to 128K. + (4/20) + +unix/hlib/login.cl +unix/hlib/zzsetenv.def + Added a commented out entry for "imtype" to the template login.cl. + Added values for imtype, cmbuflen, and min_lenuserarea to zzsetenv.def. + The values for imtype and cmbuflen are the same as the builtin + defaults. The value for min_lenuserarea is temporarily set to 20K, + until the real problem of image header truncation can be in the IMIO + code. (4/20) + +pkg/proto/proto.cl +pkg/proto/proto.men +pkg/proto/proto.hd +pkg/proto/x_proto.x +pkg/proto/mkpkg +pkg/proto/wcsreset.par +pkg/proto/t_wcsreset.x +pkg/proto/doc/wcsreset.hlp + A new task wcsreset has been added to the proto package. + (4/21 LED) + +sys/gio/glabax/glbfind.x + GLABAX now uses a different, hopefully better algorithm for determining + the spacing of the minor ticks (formerly the tick spacing algorithm + used was the same as used for the major ticks). As before, NMINOR + is used as only a starting point for the automatic algorithm. It + is now possible however to disable the automatic algorithm by giving + a negative NMINOR, in which case exactly abs(nminor) ticks will be + drawn. (4/21) + +sys/fio/vfntrans.x + The code in the vfn_translate routine which recognizes subdirectories + was not sufficiently discriminating about "." and "..", and would + treat . prefixed files as subdirectories during translation. (4/21) + +sys/fio/fntgfn.x + Modified the file template code to check for a leading "." in the + pattern string and automatically enable listing of the hidden files + in a directory in this case. (4/21) + +pkg/proto/proto.cl +pkg/proto/proto.men +pkg/proto/proto.hd +pkg/proto/x_proto.x +pkg/proto/mkpkg +pkg/proto/wcsedit.par +pkg/proto/t_wcsedit.x +pkg/proto/doc/wcsedit.hlp +lib/scr/wcsedit.key + A new task wcsedit has been added to the proto package. + (4/22 LED) + +unix/os/zfiotx.c + In a normal raw mode read the terminal driver has interrupts + enabled, but catches any interrupt occuring during a read and maps + it into 003. This approach doesn't work for nonblocking raw mode + reads because since reads don't block, the driver spends only a + miniscule amount of time in the ZGETTX read code. This would cause + interrupts to abort a task doing nonblocking raw mode reads. The + fix was to have the driver put the terminal into true raw mode, with + signals disabled, when nonblocking raw mode is in effect. This + applies to suspend as well as interrupt. (4/22) + +sys/imfort/db/imputd.x +sys/imfort/db/mkpkg + The double precision value could be truncated in some cases when + copying the formatted string into the 20 char value field. Modified + (like imio/db/imputd.x) to use a loop, decreasing the formatted + precision until the value fits. (4/22) + +-------------------------- +"Final" V2.10.0 beta generated. After this only minor bug fix type changes +will be made. + +pkg/images/register.par +pkg/images/geotran.par +pkg/images/doc/register.hlp +pkg/images/doc/geotran.hlp + Changed the default values of the parameters xscale and yscale in + the register and geotran tasks from INDEF to 1.0 (4/23 Davis) + +pkg/images/geometry/t_imtrans.x + Modified the imtranspose task to pick up the axis map and copy + it to the wcs of the output image. (4/23 Davis) + +pkg/images/geometry/t_blkavg.x +pkg/images/geometry/t_blkrep.x + Modified the blkrep and blkavg tasks to set axbits explicitly in + the calls to mw_shift and mw_scale. Axbits set to 0, meaning + all axes, was producing a "singular matrix" error from mwcs. + (4/23 Davis) + +unix/os/zgtenv.c + A link of an IMFORT program using V2.10 IRAF, compiled on a 4.1.1 + system, would fail with an + + ld: Undefined symbol + _tolower + + on a 4.0.3 system. This is actually the second time I have run + into this problem. It is caused by SunOS changing tolower from + a macro to a library routine in 4.1. The problem was avoided by + changing the iraf code to define a macro to_lower which is used + instead. (4/23) + +dev/imtoolrc +dev/graphcap + Added new imt entries for Nigel's Solitaire formats. These are + named imt17|imtssy and imt18|imtssn for resolutions of 1008x648 and + 1024x680 respectively. Also added to gemini, ursa and orion. (4/23 MJF) + +pkg/images/geometry/t_imslice.x + Modified the imslice task to read the old and write a new axis map. + (4/23 LED) + +pkg/images/geometry/t_imstack.x + Modified the imstack task to read the old and write a new axis map. + (4/23 LED) + +pkg/cl/grammar.y + When scan from a pipe was used in a procedure script the scan would + not write into a parameter belonging to the procedure calling scan. + This was happening because except for the call by reference arguments, + scan is implemented as a CL task. The usual parameter search order + would apply, i.e., task (scan), package, cl, hence the parameters for + the task calling scan would not be seen. This could be gotten around + by referencing the parameters as task.pname, but this should not be + necessary. It was necessary to change the cl compiler to convert + names such as "param" to "task.param" when compiling scan statements + (scan as a task). This is only done if no task or package name is + given and the current task's pset includes the named parameter. (4/26) + +dev/hosts + Corrected the loden entry and updated the khaki entry (it's now + a sparc) for Rich Reed on tucana, gemini, and ursa. I had fixed + the loden entry previously (4/7). It must have been clobbered + somehow in the last three weeks. (4/27 RLS) + +dev/termcap +dev/graphcap + Added contributed entries for the HP LaserJet III series printers. + These entries are known to work but given the variety of PostScript + cartridges available may need some adjusting. Included in 2.10 + because the HP sgi translators are now distributed. (4/27 MJF) + +pkg/dataio/fits/fits_read.x + Modified rfits to use the tapecap fe parameter if present and + greater than 0 to skip to EOF. (4/27 LED) + +sys/mtio/mtio.h +sys/mtio/mtcache.x +sys/mtio/mtcache.com + The symptoms of the bug fixed here were as follows: when testing the + fixed block cartridge drive, mtexamine and rfits make+ would work fine, + but rfits make- would fail with a read error. The failure would only + occur the second time the task was run, on the tenth file, and only + when diagnostic output was enabled. The read error was occurring + because, for some reason, the read request being issued by IRAF was + not a multiple of the device block size for this fixed block device. + + It took about 5 hours to track this one down as it took a while to + find a repeatable test case (I used LOGIPC), and the actual bug was + far removed from the read error seen during testing. What was + happening was that the 1) the read error was due to a read request + not a multiple of the device block size, 2) the bad read request + was due to a device open with no tapecap information (the driver + actually works in this case, using all the builtin defaults which + are correct for most variable block UNIX devices), 3) the lack of + tapecap information was due to an invalid string pointer passed to + the zopnmt routine at open time, 4) the bad pointer was due to the + real GTY pointer being clobbered by a bug in the mtcache code. The + entire MTIO descriptor was being cached, including the runtime fields + as well as the positional fields. When a cached entry was recalled + the GTY pointer stored in the descriptor would be overwritten. Since + the cache is updated in the first open following task invocation the + cached values for the runtime fields would normally be valid and no + error would be seen. (4/29) + +pkg/proto/doc/suntoiraf.hlp + Replaced the suntoiraf help pages with an updated one. (4/30 LED) + +unix/boot/spp/xc.c + If a library specified as -lname does not resolve to an iraf library + (i.e. it is a host library) the library will now be searched after the + iraf libraries are linked, rather than at the location of the -lname + in the link line. This allows searching of special host libraries + after the iraf externals have been generated and before the standard + Sun libraries libc, libm, etc. are searched. If the old behavior + is desired it can be achieved by using a reference of the form + libname.a in place of the -lname. (4/30) + +unix/shlib/mkshlib.csh + Modified to link against -lresolv, if such exists, when building the + iraf shared image. This allows the statically linked iraf executables + to use the name server. By default only SunOS executables which are + dynamically linked use the name server. The -lresolv code will fall + back on the /etc/hosts file if the name server does not respond, so + this should be safe. (4/30) + +dev/hosts + Added kingfisher (aliased as 'kingfishe') to hosts file on tucana, + orion, gemini and ursa. (4/30 MJF) + +unix/hlib/mkiraf.csh + Updated the terminal type prompt slightly. (4/30) + +unix/hlib/irafuser.csh + Disabled the -Bstatic option for linking the HSI executables. This + causes f68881_used undefined error messages from the linker on a + Sun-3 (but it is ok on a sparc). (4/30) + +dev/wpix.imh + + Added a second version of the test image dev$pix called dev$wpix. + This is dev$pix with a WCS in the image header. To save space, both + image headers point to the same pixel file. (4/30) + +unix/hlib/motd +unix/hlib/login.cl +unix/hlib/zzsetenv.def +pkg/cl/cl.par + Changed IRAF version to V2.10EXPORT. (4/30) + +-------------------------- +Built initial V2.10EXPORT distribution files and began testing of same. +V2.10EXPORT was installed from the network archive on ursa, orion, and +several mountain nodes to check with problems having to do with how the +distribution was built. (4/30) + +local/.login + 1. Commented out the "setenv TERM sun". This was getting pretty + annoying as I usually use an xterm. Better to let the login inherit + the terminal type. + 2. Added a set prompt statement for a "iraf@hostname% " type prompt. + 3. Made the "setenv iraf" a bit smarter. iraf is still set to a + constant value, but the file now checks to see if $iraf exists and + if not sets $iraf to `(cd ..;cwd)`/. The constant value is still + desirable to allow use of symbolic directory links. + (5/02) + +unix/os/zzstrt.c + Modified this routine to map the data and bss sections of the iraf + shared image with execute permission. There are cases where the Sun + compilers can generate executable code in the data segment. Old Sun + hardware does not implement hardware checking for execute + permission, but some of the new hardware does. This was causing a + routine (iraf networking using the name server library, which is + linked -pic) to fail on a new Sun multiprocessor system which would + execute fine on older hardware. (5/02) + +unix/bin.sparc/gterm.e +unix/bin.sparc/imtool.e + Rebuilt these executables under SunOS 4.1.1. The versions built under + 4.1.2 would cause shared library version older than expected warning + messages when run on a 4.1.1 system. (5/02) + + (It is not necessary to do this for the bin.mc68020 versions since + our Sun-3s are still all running 4.1.1). + +unix/hlib/install + 1. Smartened up the code used to guess the iraf root directory. It now + looks for /iraf/iraf before /iraf in the "pretty name" section (needed + to support symbolic links). When all done, it checks to see if the + directory actually exists and if not sets the value to (cd ../..;cwd) + instead, assuming install is being run from $iraf/unix/hlib. This + latter feature also has the effect of ignoring an incorrect value of + $iraf set before running the install script. + 2. Added a "set hlib = " to the "Set the BINDIRS" section. An old + value of hlib set when install was run would otherwise be inherited + ignoring the new value of $iraf set in the script. (5/02) + +sys/imfort/imflsh.x + The integer function bfflsh was being called as a subroutine with the + wrong number of arguments. (5/02) + +-------------------------- +Performed a sysgen to pick up the zzstrt.c change above, and rebuilt the +distribution files. (5/02) + +unix/hlib/install + Added a $iraf relative definition of $host, since this is used in the + MODEFILES definition but is not defined in the script, hence would be + inherited from outside, possibly with the wrong value. (5/03) + +unix/os/zfioks.c + Fixed a minor bug in the new zfioks code. If client authorization + fails (as when one has different authorization codes in .irafhosts + files on different nodes) the driver is supposed to shutdown the + old in.irafksd daemon and start another one via rsh for the new + authorization code. This was failing as a status value was not being + cleared before doing the rsh. The rsh would succeed but then the + client would see a bad status and give up (unnecessarily), falling + back on a password prompt and rexec call to make the connection. + It was actually working due to the redundancy in the driver, but + due to the bug one would get the unnecessary password prompt for the + rexec. (5/04) + +dev/tapecap + Fixed a typo (wrong device entry) in the mtst1.qic-24 entry. (5/05) + +unix/os/zfmkdr.c + This routine was missed a while back when the UMASK support was + redone. (5/06) + +dev/tapecap + The entries for the QIC drives were modified to fix a problem where, + e.g., every other file on a tape would be read in an operation such + as rfits. Currently the :se capability is only enabled for the QIC + drive on ursa, since this appears to be needed only for the ST + driver bug seen on this system. The fb#2000 capability (which avoids + file skip operations which cause problems on the QIC drives due to + (I think) buffered data being lost) is more generic and harmless so + I moved that to the generic device entry. (5/07) + +sys/imio/iki/ikiopen.x +sys/imio/iki/ikiinit.x +sys/imio/iki/ikildd.x +sys/imio/iki/iki.h + IKI was modified to add a flag word for each driver which can be + used to note IKI level characteristics of the different image kernels. + This was used to flag that the QPF driver cannot write to or create + QPOE images. In a new copy operation, iki_open will not automatically + preserve the image type if the read-only flag is set for the input + image type. Hence, in a new copy of a QPOE image, the type of the + new image will be controlled by the imtype environment variable rather + than trying to make a .qp image. For other images types a new-copy + operation will preserve the image type as before. Explicitly giving + the image extension for a new image always forces that type of image + to attempt to be created, whether it can be created by the image + kernel or not. (5/07) + +sys/imio/iki/stf/stfhextn.x + This bug was unrelated to the above change but was found during + testing (in fact it has been there for years). In v2.10, "imtype" + is set by default, with value "imh". In an imcopy operation such as + + imcopy foo.hhh foo2 + + the output image preserves the image type of the input image, + i.e., an STF image is created. What was happening was that an STF + image was being created named "foo2.imh", since imtype was set to + "imh" and this is a legal STF image extension. I hacked stfhextn.x + to ignore imtype if set to "imh". (5/07) + +pkg/dataio/fits/fits_wheader.x +pkg/dataio/fits/mkpkg + Modified the wfits file format message to include a "blkfac=xxx" + field. The xxx is the blocking factor for variable blocked devices, + and the string "fixed" for fixed block devices. (5/07) + +-------------------------- +Rebuilt distribution files. (5/07) + +dev/hosts + Added 'dynamo' to orion, gemini, and ursa. Primary name is + 'dynamo.kpno.noao.edu' since this is all it responds to, but made an + alias named 'dynamo'. Not added to Tucana while release being worked + on, I'll do it later. (5/8/92 MJF) + +dev/termcap + Made an entry for the machine in Pat Osmer's office, lw8, on gemini, + ursa, and orion. Added to Tucana by JB. (5/8/92 MJF) + +unix/os/zfiomt.c + 1. Changed the builtin defaults for the maximum and optimum record + sizes to 64512. This is a more conservative value, smaller than the + original defaults (maxrec was previously 65535), hence less likely + to cause a read error. The builtin defaults are overridden in most + tapecap entries but will be used in user-written tapecap entries + which do not set maxrec/optrec explicitly and are likely to rely + heavily on the builtin defaults. The value 64512 is the largest + multiple of 1024 less than 65536, and is the minphys value in SunOS. + On some devices a read request larger than this value cannot be + serviced and will result in an i/o error. + + 2. The maxrec value set in tapecap was not being used for file + positioning where the driver searches for EOT by skipping a file + and reading a record to check for EOT (a read after a fsf which + returns zero signals EOT). On some devices the large read request + could cause the read operation to return an error. + + 3. If a nonzero maxrec value is set, the driver now guarantees that + optrec will not be greater than maxrec (this was not necessary since + MTIO does this anyway, but it seems advisable to apply the constraint). + (5/28) + +pkg/images/tv/wcslab.par +pkg/images/tv/wcslab/doc/wcslab.hlp + Changed the default value of the fill parameter from no to yes. + (LED 5/29) + +pkg/xtools/doc/inlfit.hlp + The xtools inlfit help was not hooked up due to a bug in the inlfit + help page. (LED 5/29) + +pkg/images/doc/imstat.hlp + Fixed a bug in the definition of variance in the imstatistics + task help page. (LED 5/29) + +sys/mtio/mtio.h + Changed the magtape lock file directory from uparm$ to tmp$. Storing + the lok (magtape position) files in uparm causes problems if the + user starts up two concurrent CLs with different uparms, and then + tries to command the same device from both CLs. Since they would have + different uparms they would have different copies of the lok file for + the device, and MTIO could get confused about the tape position. + Years ago, in the early days of MTIO the lok files were moved to + uparm to avoid multi-user problems (see below), but the multi-user + problem is tractable and less of a problem than the concurrent-CL + problem dealt with here. (5/29) + +pkg/system/x_system.x +pkg/system/mkpkg +pkg/system/system.cl +pkg/system/mtclean.x + +pkg/system/mtclean.par + +sys/mtio/mkpkg +sys/mtio/README +sys/mtio/mtclean.x + + Added a new (hidden) system task called MTCLEAN. This is called at + CL startup time to delete old magtape lok files. Previously the + login.cl file would delete these files using "delete + uparm$mt*.lok". This approach is no longer discriminating enough + however, when the lok files are stored in tmp$ which is a public + directory. The MTCLEAN task is like "delete uparm$mt*.lok" except + that it leaves a lok file alone if it belongs to a different user + who currently has the drive allocated. If the lok file is for a + device which is not currently allocated it is unconditionally + deleted. If the lok file belongs to the current user it is deleted + only if it is "stale", i.e., older than a certain interval + (currently one hour, and a parameter default). + + It is harmless to delete lok files in the sense that MTIO will + automatically recover (by rewinding the tape) if the lok file is + lost, so it is safest to err on the side of occasionally deleting a + lok file which is current. However, this will only happen if the + user has not allocated the drive and someone starts up a CL, or if + someone using an allocated drive starts up a second CL and the lok + file is older than the "stale" threshold. (5/29) + +unix/hlib/motd +unix/hlib/login.cl +pkg/cl/cl.par + Changed the login.cl version string to force a mkiraf to pick up + the "mtclean" addition. This was done by adding a "revision 1" + to the logver string. (5/29) + +pkg/obsolete/doc/imtitle.hlp +pkg/obsolete/doc/mkhistogram.hlp +pkg/obsolete/doc/radplt.hlp +pkg/obsolete/doc/oimcombine.hlp + Added a "USE INSTEAD" section to the help pages for the obsolete + tasks. (5/29 LED) + +pkg/system/doc/rewind.hlp + Added some comments on the "initcache" parameter to the help page + for the REWIND task. (5/29) + +dev/tapecap + Added support for the HP DAT drive under the ApUNIX driver. (6/03) + +unix/hlib/clpackage.men + At Bob Hanisch's request changed "obsoleted tasks" to "obsolete + tasks" so that stickers for obsoleted grammar won't cringe when + reading this menu. (6/19) + +unix/hlib/login.cl + Several minor changes were made to the template login.cl over the + past couple of weeks. + + 1. The "stty xterm" statement in if(envget("TERM")=="xterm") was + changed to "stty xterm nl=44". Since xterm does not have a screen + size sense query (like gterm) we can't set the screen size correctly, + but it is better to set a small wrong value than a large wrong value + like the termcap default of 65. + 2. Added an if(deftask("mtclean")) to prevent mtclean from being + called if it isn't defined, i.e., when running irafo=v2.9. + 3. Moved the cl<loginuser.cl to after the user package task + definitions, to allow the user to override these definitions in + their loginuser.cl file. (6/20) + +pkg/plot/t_pradprof.x + The new pradprof task was using the file name template expansion + routines instead of the image name template expansion routines + producing an error if the input image name was an image section. + (6/23/92, Davis) + +pkg/images/imutil/imcopy.x + Modified imcopy to write its verbose output to STDOUT instead of + STDERR. (6/24/92, LED) + +sys/mwcs/wfmspec.x + Fixed a logical error affecting computation of the inverse + transformation. This could cause DISPCOR (resampling to linear + coordinates) to fail in some cases. (6/24) + +dev/imtoolrc + Updated the comments section slightly. (6/24) + +sys/gty/README + Updated gtyopen entry. (7/3) + +doc/newsfile + Added the V2.10 revisions summary to the newsfile. (7/4) + +doc/v210revs.ms + + Archived the V2.10 revisions summary document source. (7/5) + +doc/suniraf.ms + Installed an updated version of the Sun/IRAF installation guide. (7/5) + +doc/sunsmg.ms + Installed an updated version of the Sun/IRAF site manager's guide. + (7/7) + +-------------------------------- +V2.10.0 (patch0) generated. (7/07) + +dev/hosts + Added a new machine, piscis, to hosts file. Also added on Gemini, + Ursa, and Orion. (7/9 MJF) + +local/login.cl + Updated to V2.10.0 revision 1. The SOS4 distribution (patch0 and + as.sos4) was updated to pick up this change. (7/09) + +unix/hlib/motd + Updated version to 2.10.1DEVELOP. (7/15) + +doc/suniraf.ms + Fixed a typo: "cat /path/nb.sos4.spc/[ib].*" (ib -> nb). (7/17) + +pkg/plot/t_implot.x + Changed an incorrect real array index to an int. (FV 7/21) + +unix/shlib/mkshlib.csh + Modified to not link the shared image with -lresolve on a 386i. (7/21) + +pkg/images/filters/t_gauss.x + An incorrect convolution kernel was being computed in the case + theta=90.0, 0. < ratio < 1.0, and bilinear=yes, because the sigma + argument were not being correctly entered into the routine which + computes the gaussian function in that case. (7/23 LED) + +pkg/math/nlfit/nlfit.gx +pkg/math/nlfit/nliter.gx + Due to precision problems the nlfit code can go into an infinite + loop if convergence is slow and the tolerance is set low. + Added some checks to trap this condition (7/24 LED). + +dev/hosts + Added benhur (Ron Probst's Sun) to the hosts files on tucana, orion, + gemini, and ursa - this is not a new machine but it must have slipped + through the crack during the v2.10 upgrade. (7/24 jvb) + +-------------------------------- +IRAF V2.10.1 (patch-1) released. Tucana system version number incremented to +V2.10.2 (7/24) + +lib/finfo.h + 1. This file contained a series of defines FI_[RW]OWNER etc. giving + the bit *number* (1, 2, 3, etc.) for the file permissions bitflags. + Bitflags are preferable and more conventional so I added a parallel + set of statements FF_[RW]OWNER, FF_[RW]GROUP, etc., defining the + bitflags. + + 2. Two new file permissions flags FF_RDLOCK and FF_WRLOCK were added. + These are normally zero (as before) but can be set by the zfinfo + kernel routine to indicate that a temporary read or write lock is in + place on the file. (7/24) + +sys/fio/fwtacc.x + The routine had a number of problems. It was rewritten to use the + new FF_{RD|WR}LOCK flags returned by zfinfo to determine whether a + temporary lock is preventing access to a file. The "wait for + access" will occur only if "filewait" is enabled in the environment + and a temporary lock is in place on the file. This should fix the + bogus "waiting for access to file" messages we have been seeing + occasionally. (7/24) + +sys/gty/gtyopen.x +sys/tty/ttyopen.x + The code which scans along looking for the `:' character when + expanding ":tc=device:" fields could run off the end of the string + if the : character was missing. Added checks for beginning of + string and EOS. (7/28) + +pkg/images/imfit/t_imsurfit.x + Fixed a bug in the section reading code. Imsurfit is supposed to switch + the order of the section delimiters in x and y if x2 < x1 or y2 < 1. + Unfortunately the y test in the code was if (y2 < x1) instead of + if (y2 < y1). Whether or not the code actually works correctly + depends on the value of x1 relative to x2. This bug was not present + in 2.9.1 but is present in subsequent releases. (7/30 LED) + +mkpkg +noao/mkpkg + Added a means to set the spoolfile name to the "mkpkg summary" + function of the package root mkpkg file. One can now generate the + summary with a command such as + + mkpkg summary spool=filename + + to cause the sumary to be generated from file "filename". (8/03) + +sys/osb/ieee.gx +sys/osb/ieeer.x +sys/osb/ieeed.x +unix/as.sparc/ieee.gx +unix/as.sparc/ieeer.x +unix/as.sparc/ieeed.x +unix/as.mc68020/ieee.gx +unix/as.mc68020/ieeer.x +unix/as.mc68020/ieeed.x +unix/as.i386/ieee.gx +unix/as.i386/ieeer.x +unix/as.i386/ieeed.x + 1. There was a (normally) harmless bug here in that the real and + double versions of the ieenan common had the same name, i.e. were + shared. There are now separate ieenanr, ieenand commons. + + 2. The code which detects a NaN uses the technique of equivalencing + an integer array of length 1 (real) or 2 (double) to the floating + value so that a bitmask can be used to check for the NaN exponent + (here NaN actually means any non-finite IEEE value). On most systems + the exponent for a double will be in the first integer of the 2 + element array, but on a 386i (Intel) the second longword is used. + The code was modified to parameterize this offset and flag it as + machine dependent. (8/15) + +unix/hlib/mkpkg.sf.I386 + 1. Added entries for the i386 versions of ieeer.x, ieeed.x. + 2. Set up mwcs$wftan.x to be compiled with no optimization. The + optimized version of this routine returns a garbage value for the + declination (it calculates it correctly but the code which outputs + the value to the w[] output array is incorrect). (8/16) + +pkg/cl/pfiles.c + When pfileload is called to load the parmeters for a pset task the + parameter file name assigned to the pset can come from the pset + parameter of a running task which uses the pset. Hence, pfileload + scans the task descriptors on the task to see if any reference the + pset. The "newtask" pointer, set during task startup, was being + used to start the scan of the control stack containing the task + descriptors. This could fail in some circumstances as newtask is an + invalid pointer except when a new task is being initialized. (8/17) + + This problem was an interesting case study in debugging techniques. + I at first tried to use dbx on this problem; this is normally + desirable with CL problems due to the lengthy procedures common in C + code. This was on the Sun 386i where the problem was seen. I had a + lot of trouble getting dbx on the 386i to use the source files, even + though the files were compiled -g. Eventually it became clear that + dbx will not permit source code debugging on the 386 if the iraf + shared image is used (there is no such problem on the other Suns). + Source code debugging would work if the process was linked -z. Of + course, then the problem went way. The 386i is very slow so by the + time I determined that I was wasting my time I had wasted 2 hours. + Looking at the problem with adb, I found the problem within 20 + minutes. + +pkg/images/filters/mkpkg +pkg/images/filters/t_fmedian.x +pkg/images/filters/fmedian.x +pkg/images/filters/fmd_buf.x +pkg/images/filters/fmd_maxmin.x + The fmedian task could crash with a segmentation violation if image + pixel to integer mapping was turned off (hmin = zmin and hmax = zmax) + and the input image contained data outside the range defined by zmin + and zmax. Added calls to amink and amaxk for integer images and a + call to amapr for floating point data to protect against out of bounds + data. (8/18/92, Davis) + +sys/imio/iki/qpf/qpfwattr.x + Modified to return INDEF as the value of the integral over an + attribute range list, if no range list is defined or either or both + ends of the range are open. (8/18) + +sys/mwcs/mwsaveim.x + The expression "if (ndim == 1 || (ndim == 2 && ...))" was incorrect + as the ndim==2 case contained references to CD matrix elements that + might not contain valid floating point values in the case of a 1 dim + wcs. (8/18) + +pkg/images/imutil/imcopy.x + Added a call to flush after the verbose status output so the the + output will appear immediately on the terminal. (8/19 LED) + +unix/os/zxwhen.c + Added some #ifdef i386 code to reenable the floating point exceptions + following such an exception. On the other Sun systems this is + automatic, but on the 386i it has to be done explicitly. (8/20) + + Note 8/21 - the above fix works fine under the debugger, but there + are still problems trapping repeated floating exceptions when a + 386i process executes normally. There are no such problems on any + of the other Suns (the interface is the same) so this tends to + indicate a problem with the 386i. + +dev/termcap +dev/graphcap + Added entries for Kermit terminal emulator supplied by Pat Seitzer. + The termcap entry is for MS Kermit 3.0 in VT320 mode; graphcap for + Kermit3.10 and CGA or VGA display. (8/20 ShJ) + +unix/os/zfiomt.c + 1. The "ue" option (update-eot, or force search for EOT) was not + working correctly - it had never been used until recently. + 2. The "ow" option (overwrite EOF) was tested and optimized. (8/20) + +sys/fmtio/dtcscl.x + This routine scales a double floating value to determine its mantissa + and exponent when printing the number. For numbers smaller than .1 + this is done as follows: + + while (v < 0.1d0) { + v = v * 10.0d0 + e = e - 1 + + The problem with this seemingly simple piece of code is that if V is + an IEEE subnormal value and IEEE underflow-to-zero is enabled, any + arithmetic operation on V will return a zero. Hence, even though + V is nonzero to start with, V * 10 returns zero. If V underflows to + zero the code segment above will enter an infinite loop. To fix + this a test for v==0 was added to the loop to check for underflow. + + On machines which have good hardware support for IEEE floating + computations involving subnormals the best thing to do is to NOT + underflow to zero, but rather to retain the subnormal values. This + increases the precision of floating point computations in small + number arithmetic. On some systems however, underflow (or inexact) + requires a trap and recomputation in a trap handler to produce the + correct IEEE result, and this can be very inefficient. + + As an example, In the case of Sun/IRAF we currently have underflow + to zero enabled due to the expense of recomputation for the ffpa and + some early sparc systems. Suns with these processors will silently + underflow to zero. Some other Sun systems do not employ + recomputation of subnormals and these systems ignore the request to + underflow to zero, returning a valid IEEE subnormal instead. This + includes the 386i and some sparc based systems (different sparc + systems have different floating point units). Hence, the behavior + of systems even within the Sun product line will vary in the way + subnormals are treated. + + (A subnormal is a number smaller than about 1.175e-38 for real and + 2.225e-308 for double). (8/21) + +sys/gio/fpnormd.x +sys/gio/fpnormr.x + These routines (called by fp_equal[rd]) scale floating point numbers + in a way similar to dtcscl.x, above. In principle they could be + subject to the same problem with underflow to zero and infinite loops, + so I added a check for underflow to these routines as well. (8/21) + +unix/os/zfioks.c + 1. Fixed a byte swap bug in the server side code that was preventing + it from constructing the network address properly to call back the + client. This affected only the "little-endian" machines, such as + the decstation and 386i. + 2. Changed the default value of MAXCONN from 0 to 1, since that is + probably what it should be anyway (I think I got the 0 out of someone + else's code). (8/21) + +unix/os/tape.c + Will now increment the file number at close time after writing a + file to tape. (8/21) + +dev/hosts + Added kale (Bruce Bohannan's d/t Sun) to the hosts files on gemini, + ursa, orion, and tucana. (9/3 jb) + +unix/os/tape.c + 1. Increased the maximum i/o buffer size to 262144 and changed the + default read request size to 64512. + 2. Added a "seek" command, for testing i/o to devices that respond + to a seek request. "seek" to report the current offset, seek nnn[bkm]" + to seek to the given block, kilobyte offset, or megabyte offset. + The block size is whatever was used in the last read request, or + 64512 at program entry. (9/07) + +sys/osb/zzeps2.f + Added an alternate version of the machine epsilon computation program + which may avoid problems seen on some systems with excess precision + due to the epsilon value being accumulated in a register. (9/10) + +sys/imio/imaccess.x + Was failing to strip off the ksection before calling iki_access. + Modified to treat a ksection similarly to an image section, i.e., + immap is called to test for the existence of the object specified + by the full notation, if a section or ksection is given. (9/11) + +doc/unixsmg.ms + Installed a new version of the UNIX/IRAF Site Manager's Guide, newly + updated for V2.10. (9/13) + +doc/irixiraf.ms + +doc/dsuxiraf.ms + +doc/vxuxiraf.ms + + Installed new SGI IRIX, Decstation Ultrix, and VAX Ultrix + Installation Guides. (9/14) + +dev/hosts + Updated the lapis entry on gemini, ursa, orion, and tucana. (9/14 RLS) + +unix/as.vax/ieeer.s +unix/as.vax/ieeed.s + Updated to the V2.10 versions. (9/21) + +unix/as.rs6000 + + Added the rs/6000 version of this directory. (9/21) + +unix/os/zgtime.c + The expression that converts the cpu time from clock ticks to msec + could result in integer overflow for very large numbers. Restructured + the code to avoid this problem, while preserving the maximum precision + for small numbers. (9/22) + +unix/hlib/libc/knames.h + Added a #define for zzstmt. This should be there, but though missing + did not cause a problem as no C code currently uses ZZSTMT. (9/22) + +mkpkg + Merged in changes for DSUX, AIX3. (9/23) + +lib/plio.h + The definitions for I_DATA and I_OPCODEMASK were modified to coerce + the macro argument to int, to avoid a short/int type clash when the + macro is called with a short integer argument. (9/23) + +noao/lib/mkpkg.inc +noao/lib/mkpkg.sf.DSUX - +noao/lib/mkpkg.sf.DDEC + +noao/lib/mkpkg.sf.DMIP + +noao/lib/mkpkg.sf.AIX3 + + Merged in mkpkg support for DSUX and AIX3. (9/23) + +pkg/images/tv/display/iisofm.x + Added the int in "y[i] = max (int(y[i])," to fix a short/int type + clash. (9/23) + +pkg/images/tv/iis/ids/idsinit.x +pkg/images/tv/iis/iism70/iissplit.x +pkg/plot/t_gkidir.x + More fixes for short/int type clashes. (9/23) + +sys/gio/gki/gkiclose.x + In "call zcall2 (epa, Mems[gki+GKI_CLOSEWS_D-1], n)", the gki pointer + was missing. (9/23) + +sys/gio/ncarutil/autograph/agdash.f +sys/gio/ncarutil/autograph/agdflt.f +sys/gio/ncarutil/autograph/aglbls.f +sys/gio/ncarutil/autograph/agsetp.f + Several declarations of the form CHARACTER*504 in these files were + changed to CHARACTER*500. The Fortran compiler on AIX does not allow + character variables longer than 500. IRAF does not use any of the + NCAR autograph code anyway. (9/23) + +sys/imio/imsetr.x + In the two statements + + IM_PLFLAGS(im) = or (IM_PLFLAGS(im), PL_RLIO) + IM_PLFLAGS(im) = and (IM_PLFLAGS(im), not(PL_RLIO)) + + the second "(im)" was missing. (9/23) + +sys/mwcs/mwtransd.x + Changed the expression "* -ltv_1[i]" to "* (-ltv_1[i])". The AIX + compiler did not like this expression. (9/23) + +sys/plio/pllrop.x +sys/plio/pllsten.x +sys/plio/plp2l.gx +sys/plio/plr2l.gx + Same thing, placed parens around the -dv in "M_DH + -dv". (9/23) + +sys/plio/plp2l.gx +sys/plio/plr2l.gx + Had to add an int to "and (int(pv), I_DATAMAX)" to avoid a short/int + type clash. (9/23) + +sys/plio/plrrop.gx + Added an "int" to fix three cases of short/int type clash. (9/23) + +sys/qpoe/qpiomkidx.x + Added an int to fix a short/int type clash. (9/23) + +sys/vops/fftx.f + This routine contained a declaration "x(2), y(2)" where the arrays + X,Y are of arbitrary length. Later on in the code the third and + fourth elements of each array were referenced and this caused a + compiler message about an incorrect constant array subscript. + Changed the declaration to "x(*), y(*)". (9/23) + +unix/gdev/iism75/zrdm75.x + Added an int to fix a short/int type clash. (9/23) + +unix/hlib/libc/kernel.h +unix/os/zgtime.c + Changed the #define name "HZ" to "CLKFREQ" to reduce the probability + of a name clash, as happened on the RS/6000. (9/23) + +math/bevington/legfit.f + This file, unmodified since 1985, had the character ^? at the end of + line 77, which is a comment line. Evidently most compilers ignore + comment lines, but the VMS-5 Fortran compiler didn't like this one. + (9/24) + +sys/osb/strupk.c + This routine was calling the C strlen(), which was an inadvertent + interface violation (VOS code bypassing the kernel and using host + facilities. This caused a link failure on VMS/IRAF, after the + str routines in the VMS/IRAF kernel were renamed to avoid name + collisions with host library routines (hence strlen was no longer + in libos.a). The routine was rewritten to use a for loop instead + of strlen. (9/24) + +dev/hosts + Added a stis1 entry on gemini,ursa & tucana for Rich Reed. (10/1 RLS) + +pkg/images/imarith/t_imcombine.x +pkg/images/imarith/icaclip.gx +pkg/images/imarith/iccclip.gx +pkg/images/imarith/icgrow.gx +pkg/images/imarith/iclog.x +pkg/images/imarith/icombine.com +pkg/images/imarith/icombine.gx +pkg/images/imarith/icombine.h +pkg/images/imarith/icpclip.gx +pkg/images/imarith/icscale.x +pkg/images/imarith/icsclip.gx +pkg/images/imarith/icsetout.x +pkg/images/imcombine.par +pkg/images/doc/combine.hlp + The weighting was changed from using the square root of the exposure + time or image statistics to using the values directly. This + corresponds to variance weighting. Other options for specifying the + scaling and weighting factors were added; namely from a file or from + a different image header keyword. The \fInkeep\fR parameter was + added to allow controlling the maximum number of pixels to be + rejected by the clipping algorithms. The \fIsnoise\fR parameter was + added to include a sensitivity or scale noise component to the noise + model. Errors will now delete the output image. (9/30/92, Valdes) + +unix/hlib/extern.pkg + On Gemini, added definitions for the ccdacq package as mounted + from Ursa. (10/5 RLS) + +dev/hosts + Modified a number of these hosts files on different CCS Suns and + IRAF development systems to establish and check IRAF networking + to/from felis. (10/5 jb) + +unix/os/zfioks.c + A new connect protocol has been added to iraf networking called + rexec-callback. This is a variation on the rexec protocol. Rexec + is used to start up the remote kernel server as before, but instead + of communicating via the rexec stdio stream to the remote process, + the server calls the client back on a private socket set up by the + client. This ensures a direct socket connection, which is not + always guaranteed when using the rexec stdio streams. For example + when using rexec to start up a kernel server on a VMS host running + Multinet, the stdio streams are routed through a VMS mailbox on the + VMS side. This fails due to lost data resulting from the mailbox + being too small, and would be inefficient even if it worked. + + The rexec-callback connect protocol is enabled in the .irafhosts file + entry for a node (since this is where protocol selection currently + occurs for rexec vs. rsh). To enable the rexec-callback protocol, + one adds the string "rexec-callback" after the password field for a + node, e.g., + + robur : <username> <password> rexec-callback + + A number of related changes were made to the VMS/IRAF networking + driver, which is new for V2.10. These are documented in the VMS/IRAF + upgrade notes file. (10/06) + + [NOTE - the way the rexec-connect protocol is enabled was changed; + see the entry for zfioks below. 10/11] + +sys/mtio/mtlocknam.x + The magtape lock file name is now constructed as "node!tmp$mtxx.lok" + rather than "tmp$mtxx_node.lok", causing the lock file to be + maintained on the same node as the drive itself. (10/07) + +sys/ki/kienvreset.x + This routine is called to propagate runtime changes of environment + variables to remote iraf kernel servers. It was passing all + variables, but was modified to filter out redefinitions of the + host-specific variables "iraf", "host", and "tmp". This is necessary + as these variables may have different values on different hosts. + It is also needed to be consistent with kiopenks.x. (10/07) + +unix/boot/bootlib/tape.c +unix/boot/rtar/rtar.hlp +unix/boot/wtar/wtar.hlp + Replaced RTAR and WTAR by new versions updated for V2.10 magtape + i/o. The old versions read the dev$devices file to map iraf device + names like "mta" to the corresponding host device names. In V2.10 + the tapecap file replaces the devices file, and the tapecap file + format is too complex to be worth parsing in a HSI utility, so in + V2.10 host magtape device names such as "/dev/nrmt8", "MSA0" etc. + must be used with RTAR and WTAR. The VMS/IRAF versions of these + utilities now restore file dates properly, provided the VMS logical + name IRAFGMTOFF is defined correctly (see the VMS notes file for the + details). (10/10) + +sys/ki/ki.h +sys/ki/kiconnect.x + The dev$hosts file now supports two types of host entries, "connect" + entries and "route" entries. A connect entry is what we have always + had, e.g. + + ursa u : ursa!/iraf/iraf/bin.sparc/irafks.e + + A route entry is an entry such as that for node "draco" below: + + robur : robur!irafks + draco : @robur!draco + + another use is for logical node names, e.g., + + lpnode : @ursa + + A route entry is denoted by the character `@' as the first character + in the server command field. In a reference to a network object + such as "node!foo", if node is defined as "@bar", the string "node" + is replaced by "bar", i.e., by whatever follows the @, after which + the network object name is rescanned. For example, given the + definitions for node robur and draco above, "draco!foo" and + "robur!draco!foo" are equivalent references. IRAF networking will + automatically map the former reference to the latter internally. + + This facility provides a simple static routing capability for IRAF + networking, allowing connects to specific nodes to be routed through + another node. This can be used, for example, to use a certain node + as a gateway between different types of networks, such as tcp/ip and + decnet. (10/11) + +unix/os/zfioks.c + A number of features were added to the unix/iraf network driver. + + o The connect protocol may now be specified in the hosts + file entry for a node. For example, + + robur : -rcb robur!irafks + + causes the rexec-callback connect protocol to be used to + connect to node robur. The possible protocols are -rsh + (rsh), -rex (rexec) and -rcb (rexec-callback), with the + default being -rsh. (The "irafks" in the above example + is a VMS symbol defined in the VMS/IRAF irafuser.com file, + used to start the kernel server on a VMS node). + + o A new argument "-log <file>" is now supported on the irafks + command line. Since the irafks command line is taken from + the dev$hosts file in a normal client connect, the hosts + file can be edited to turn on zfioks level debug logging. + For example, + + tucana t : -log ks.out tucana!/usr/iraf/bin.sparc/... + + Any file can be specified, for example /dev/tty. If the + -log argument is given before the node!cmd as in the example + above, logging is enabled on the local node. If the -log + argument follows the node!cmd, it is processed by the kernel + server on the remote node and enables logging on that node. + + This is related to irafks level logging. irafks level + logging is a feature that irafks has supported for some + time. It is enabled by including "-d <file>" on the irafks + command line. + + o The networking daemon for the in.irafksd daemon may now be + started manually (normally it is started via a rsh command + from a client during a rsh connect). For example, + + irafks.e in.irafksd <port> <auth> [timeout] + + would start the daemon on the specified port. Clients would + have to specify the given auth code to connect to the port. + The daemon executes with the UID of the calling process. + Care should be taken to avoid security problems, e.g., this + should be used only with "safe" accounts. Currently, + commands such as sps, ps, etc. will show the full command + line including the auth code so there is little security. + + When the daemon is started in this way the irafks.e will + exit immediately, leaving the daemon running as a forked + process. The daemon runs forever until killed, unless a + timeout is specified. + + o Arguments such as "rexec-callback" are no longer supported + in the .irafhoss file. Instead, this scheme has been + generalized to permit any network parameter to be overridden + for a particular node in the user's .iraf hosts file. + The parameters that can be set are "port", "auth", "hiport", + "timeout", and "protocol". These are all numeric parameters + except "protocol" which should be specified as "rsh", "rex", + or "rcb". For example, + + corvus : none none port=20000 auth=12345 + + would cause connects to node corvus to be directed to + socket 20000 using the auth code 12345. The login name + and password are not used when connecting to a running + daemon, so they are given as "none" in the example. + + These changes should be backwards compatible with the V2.10.1 + version of IRAF networking. + + In case it isn't obvious, the above changes combined with the + enhancements to VMS/IRAF networking support (tcp/ip servers, runtime + selection of either tcp/ip or decnet transport) allow connections to + be made transparently to any VMS node running decnet, using a node + running both tcp/ip and decnet (e.g. a VMS node running Multinet) as + a gateway between SPAN and the Internet. For example, "type + draco!login.com", where draco is a decnet node, given the hosts file + configuration showed in the examples, would result in 1) "draco" + being replaced by "robur!draco" causing the reference to be routed + to node robur via rexec-connect, 2) robur passes the request to node + draco via decnet. This requires a .irafhosts file on the gateway + node (robur) since there is no way to respond to a password prompt + from a kernel server running as a network process on a remote node. + (10/11) + +unix/os/zmain.c + Problems were encountered passing irafks commands such as -log or + -rcmd to the irafks task when called as a standalone host process. + This was because the IRAF zmain for unix/iraf was intercepting all + `-' prefixed command arguments. The zmain was changed to filter out + only those arguments it uses, e.g., -c, -C, -d <file>, and -w. For + completeness a new flag -h (host process) was added. This is the + same as calling the process with no arguments, i.e., it is the + default. Unknown flags will no longer cause a usage message to be + printed, instead they are just passed on to the iraf task. (10/11) + +pkg/cl/builtin.c + The internal name clscan(), used to implement the CL scan() function, + was changed to clscans() to avoid a name clash with the FMTIO routine + clscan. This only happens on systems where Fortran and C externals + share the same name space, and shared libraries are used. (10/12) + +pkg/system/references.cl + Changed a couple of "uniq"s to "unique", which is the full name of + the LISTS task used in the script. (10/12) + +pkg/cl/grammar.y + The CL grammar was changed to give a higher precedence to the + exponentiation operator than to unary minus. The former precedence + was inconsistent with the Fortran expression syntax that the CL + is supposed to emulate. (10/12) + +sys/ki/kbzstt.x + This routine was calling zsttks (the status routine for the networking + driver) with a fixed channel code of zero. This worked up until now + as most iraf network drivers ignore the channel code in zsttks, but + this is not the case with the new VMS/IRAF driver. (10/13) + +dev/graphcap + Added entries for em4010vg (em4010 for VGA) and vwsregis (regis + emulator for VWS 3.3 and later). (10/14) + +sys/gio/fpequalr.x +sys/gio/fpequald.x + These routines could fail when comparing small numbers to zero. + For example, fp_equalr (1.0e-10, 0.0) would return false even though + the numbers are equivalent to within the machine epsilon. This is + incorrect given the definition of fp_equal, even though the numbers + are in fact not equal. The routine would fail because zero is a + special case: it cannot be normalized with fp_norm. It was necessary + to add code to handle the special case of either input operand being + exactly zero. (10/18) + +unix/os/zfiomt.c + 1. Two new device capability switches were added. ":ce" means + ignore the status of the close() system call when closing a device + opened read-only. ":eo", used only in the VMS version of the + driver, disables writing of the double tape mark at EOT when a tape + opened for writing is closed. + + 2. The ":nf" parameter was modified to allow an integer value to be + given. Without a parameter, ":nf" means rewind and space forward + to backspace files on a tape, e.g., because this is faster than BSF. + An entry such as ":nf#5" means do a BSF if the file is 5 files or + less back, but if more files must be skipped do a rewind and space + forward. This parameter is intended mainly to help optimize file + seeks on slow devices like cartridge tapes. + + 3. The ":fc" parameter (device does a FSF on CLRO [close read-only]) + was put in when the driver was written to accomodate some SysV systems + but had never been tested. As it turns out, AIX is such a system and + it was necessary to make minor changes. In particular, the OS does + not always do a FSF - it only does this when the file is partly read. + If EOF has been reached on the file (hence the tape is positioned to + the first record of the next file) then the FSF is skipped. + + 4. I added a couple of zmtdbg calls during multifile skips to cause + the file number to be updated more frequently, when using the status + output feature. (10/18) + +pkg/proto/t_imcntr.x + Modified the imcntr task to use image templates and to check for + constant data. (10/27/92 LED) + +dev/termcap +dev/graphcap + Added "lwg", an HP IIIp LaserJet on Canopus, to these files on Ursa + and Gemini at Frank Bull's request. (10/27/92 MJF) + +dev/termcap +dev/graphcap + Added entries for xgterm. (10/27) + +sys/libc/cenvget.c + Changed envgets() to use ENVFIND rather than ENVGETS, so that the + routine will detect the environment variable not found condition + and return NULL in that case. (10/27) + +sys/gio/gks/gschup.x + Changed the character up vector to be calculated as the nearest integer + instead of just being truncated to an integer. (ShJ 10/29/92) + +dev/hosts + Added BigX to the hosts files on tucana, BigX, ursa, gemini, and + orion to establish IRAF networking for our new server. (11/12 jb) + +dev/hosts + Added claret to the hosts files on tucana. (11/13 RLS) + +sys/symtab/stalloc.x +sys/symtab/stsqueeze.x +sys/symtab/stpstr.x +sys/symtab/symtab.h + The symtab package could fail with an "out of memory" error during + symbol table or string buffer reallocation in applications which + call stsqueeze to free unused storage (as when doing an stsave to + save to a file). This was caused by the buffer increment being + increased by a factor of two during overflow, combined with stsqueeze + returning the unused space. Two changes were made, either of which + will avoid the problem: 1) stsqueeze now reinitializes the buffer + increment when the buffer length is reset, and 2) the buffer increment + is now allowed to grow larger than a fixed value (32K) defined in + symtab.h. (11/16) + +sys/qpoe/qpmacro.x + 1. The code which scans a file and decodes macros was using a large, but + fixed size, string buffer to store the macro value. This was + overflowing when extremely large time filters were stored in QPDEFS + as macros. The routine was rewritten to use a dynamically reallocated + buffer. + 2. The variables nodeffilt and nodefmask, which are false by default, + could only be set true since the "set nodeffilt" type statement does + not have a value and there is no unset. For the moment, this was + fixed as a special case by initializing the values of these parameters + to the default before scanning the QPOE macro file. (11/17) + +sys/qpoe/zzdebug.x + In the expand debug routine, used to test macro expansion, increased + the size of the output buffer to 128k to accomodate extremely large + macros. (11/17) + +sys/qpoe/qpioparse.x + A bug which would cause "filter=..." terms in expressions to be + discarded was fixed. (11/17) + +sys/qpoe/README + Added optbufsize to the list of QPDEFS parameters. (11/17) + +sys/mwcs/imwcs.h + Increased the size of the string buffer used in the FITS read code + from 20480 chars to 102400 chars. This fixed size buffer is not + (easily) reallocatable because the card descriptors use pointers to + point to the FITS card data in the buffer. The buffer is only + allocated while a header is being read so the size isn't really an + issue. (11/17) + +sys/mwcs/mwsctran.x + The internal variable pdim, the dimensionality of the linear portion + of the transform, used to size the vector and matrix buffers for the + linear algebra, was not being computed correctly. This could cause + problems when the dimension of a WCS in the transform was less than + the dimension of the full MWCS system. The problem was a typo in the + statement + + pdim = min (WCS_NDIM(w1), WCS_NDIM(w1)) + + the second w1 was changed to w2. (11/17) + +unix/os/zfioks.c + Fixed a typo affecting stderr debug out to /dev/console. (11/18) + +------------------------ +Patch 2.10.2 built; tucana irafx version incremented to v2.10.3. (11/18) + +pkg/cl/scan.c + Removed several calls to "makelower". These were forcing parameter + name operands to lower case. (11/20) + +sys/imio/iki/qpf/qpfwfilter.x + The QPF interface uses a sequence of QPFILTxx cards to record in the + image header the QPOE filter used to generate an image. To avoid + overfilling the header, excessively long filter strings are truncated. + The truncation limit was increased from 1024 chars to 4096, increasing + the number of output cards from a maximum of 16 to 64. In addition, + if truncation occurs the string "..." is now written to the end of the + last card to indicate that the filter string has been truncated. (11/20) + +sys/mwcs/wfmspec.x + Installed a new version of the multispec function driver. (11/20) + +mkpkg + Added an entry for the f2c architecture. (11/21) + +dev/devices - +dev/hostlogin - + Deleted these obsolete files, no longer used. (11/21) + +unix/os/zopdpr.c + Added #ifdef SYSV support. (11/21) + +unix/boot/mkpkg/sflist.c + A call to strcpy had an extra argument. (11/21) + +unix/boot/spp/rpp/rpprat/gtok.r +unix/boot/spp/rpp/rppfor/gtok.f + Due to some commented out code, the external variable index was not + used and was causing a warning message. (11/21) + +sys/mwcs/iwrfits.x + Added a call to idb_close, to return the descriptor allocated by + idb_open. (11/23) + +unix/hlib/login.cl + Added lprm to the unix foreign task definitions. (11/24) + +dev/hosts + Fixed the pathname to irafks.e for cephus (11/27 MJF) + +dev/hosts + Updated pathname to irafks.e for pegasus on tucana, ursa, gemini, + and bigx. (11/30 jb) + +iraf/doc/aixiraf.ms + + Installed the IBM AIX/IRAF installation guide. (11/30) + +pkg/plot/crtpict/calchgms.x + Fixed an argument type mismatch (int->short) in a call to amaps on + line 158. This was causing a floating divide by zero in the + case of a user supplied lookup table when calculating the transformed + histogram. (12/05 ShJ) + +pkg/cl/unop.c + On some systems (sparc) CL expressions such as -(big-floating) would + abort with a floating operand error. This was the result of integer + overflow occuring when the floating value was assigned to an int. + The CL was checking for this case, but would fail for negative + values. (12/10) + +unix/boot/wtar/wtar.hlp + Updated a couple of paragraphs to document the recent changes to + the utility. (12/23) + +dev/termcap +dev/graphcap + Added entries for Kermit terminal emulator supplied by Pat Seitzer. + The termcap entry is for MS Kermit 3.0 in VT320 mode; graphcap for + Kermit3.12 and CGA or VGA display. (1/7 MJF) + +unix/boot/bootlib/tape.c + Replaced a call to ACLRB by functionally equivalent C code. The ACLRB + works under normal circumstances, but fails in a NOVOS bootstrap. + (1/08 1992) + +sys/imio/db/imgnfn.x +pkg/images/doc/hedit.hlp + The header keyword template package had a builtin limit of 128 on the + maximum number of keywords matching a pattern (e.g. *). This builtin + limit was increased to 1024. (1/11) + +dev/hosts + Added Dick Joyce's machine "charfman" to the file on Gemini + (i.e., where Dick's IRAF comes from - networking was totally + down). (1/13 RLS) + +./math/iminterp/arbpix.x +./math/interp/arbpix.x +./noao/astutil/t_setairmass.x +./noao/digiphot/photcal/evaluate/phprint.x +./noao/mtlocal/cyber/cykeywords.x +./noao/mtlocal/cyber/t_ridsfile.x +./noao/onedspec/ecidentify/ecline.x +./noao/onedspec/irsiids/t_bswitch.x +./noao/onedspec/irsiids/t_flatdiv.x +./noao/onedspec/irsiids/t_flatfit.x +./noao/onedspec/irsiids/t_sums.x +./noao/twodspec/apextract/peaks.x +./noao/twodspec/multispec/fitclean.x +./noao/twodspec/multispec/fitsmooth.x +./noao/twodspec/multispec/intgauss5.x +./noao/twodspec/multispec/peaks.x +./noao/twodspec/multispec/solve.x +./noao/twodspec/multispec/t_fitfunc.x +./pkg/bench/xctest/lintran.x +./pkg/images/lib/sigl2.x +./pkg/images/tv/display/sigl2.x +./pkg/images/tv/iis/src/sigl2.x +./pkg/lists/lintran.x +./pkg/plot/crtpict/sigl2.x +./pkg/proto/t_imscale.x +./sys/clio/clgeti.x +./sys/clio/clgetl.x +./sys/clio/clgetr.x +./sys/clio/clgets.x +./sys/clio/clglpi.x +./sys/clio/clglpl.x +./sys/clio/clglpr.x +./sys/clio/clglps.x +./sys/clio/clputi.x +./sys/gio/calcomp/t_calcomp.x + These files were modified to replace equals-INDEF type constructs by + IS_INDEF type constructs. (1/15). + +unix/mkpkg + Modified the "mkpkg summary" feature to work for either cc or gcc. + (1/15) + +unix/os/zfiotx.c + Modified to use the TCSETAW ioctl instead of TCSETAF in some cases + (SysV systems only). (1/15) + +pkg/dataio/reblock/t_reblock.x +pkg/dataio/doc/reblock.hlp + Added support for multiple disk file input and output to the reblock + task. (1/20/93 LED) + +dev/hosts + Added Daryl Willmarth's machine "jannu" on Tucana. + (1/20 FV) + +dev/hosts + At Ed Anderson's request, added nodes anasazi and prometheus to + dev$hosts on tucana, ursa and gemini. The lacerta pathname was + updated in these files as well. (1/21/93 ShJ) + +dev/termcap +dev/graphcap + Cleaned up the VMS specific entries for lw6-10 so all are available + now from VMS/IRAF. Graphcap needed a vapl6 entry; termcap needed + entries for vapple[6,8-10]. (1/20/93 ShJ) + +dev/devices.hlp + Updated the first section of this file to have accurate locations for + the various printers and to include the device names for generating + PostScript output files. (1/21/93 ShJ) + +pkg/images/filters/fmedian.x + The fmedian task was printing a lot of garbage debugging information + under iraf 2.10.2. Removed the eprintf statements. (1/25/93 LED) + +pkg/system/phelp.cl + Changed the default value for the parameter "all" to "yes". This + causes phelp to print help for all modules matching the given + template, rather than just the first one. (1/26) + +pkg/system/doc/help.hlp + Added a description of the "all" parameter. (1/26) + +sys/etc/xerstmt.x + The code which modifies the `error (ddd, "message")' command sent to + the CL when a task aborts was modified to eliminate characters such + as newline or double quote which could cause the syntax of the + generated command to be invalid. (There are 31 cases of "call error" + statements in the core distribution which contain unwanted newline + characters in the message string). (1/27) + +pkg/images/tv/wcslab/wcslab.x + Fixed a bug in the axis mapping code in wcslab which was causing the + task to fail in some circumstances if the input image was a section + of a higher dimensioned parent image. (1/28/93, Davis) + +vms/gdev/sgidev/sgi2veps.for + +vms/gdev/sgidev/mkpkg.com +vms/hlib/sgiqueue.com +dev/graphcap + Added an SGI translator for Encapsulated PostScript to VMS/IRAF. + As with the Unix version of the translator, the device names are + eps, epsl and epsh. The output file is named sgixxxxx.eps and + is left in the users home$ directory. (2/1/93 ShJ) + +unix/hlib/install + Added a number of statements such as "rm -f $TEMP >& /dev/null" to + ensure that any existing temp files are deleted before trying to + create new ones (file creation can fail due to permissions problems). + (2/01) + +vms/gdev/sgidev/sgi2vapl.for + Modified to close the output file before sending it to the printer + queue with sndjbcw. Without this, the file wouldn't be closed until + the program finished, possibily resulting in an intermittent error: + %RMS-E-FLK, file currently locked by another user. This was more + likely to be seen on a [relatively] fast machine such as Robur, when + the queue processing could turn on before the translator completed. + In this case, the output file would still be open [and locked] by the + executing sgi2vapl program. (2/2/93 ShJ) + +dev/hosts + Modified this file on all hosts for Fred Gillett's new Sun called + turkey. (2/2/93 jb) + +dev/hosts + Added the GONG machines soi and mdi to hosts files on tucana, orion + and ursa. Added on gemini by Nigel. (2/2/93 MJF) + +pkg/images/tv/wcslab/wcslab.h +pkg/images/tv/wcslab/wcs_desc.h +pkg/images/tv/wcslab/wcslab.x +pkg/images/tv/wcslab/wlwcslab.x + Removed a dependency on the file gio.h from the wcslab task. + (2/11/93 LED) + +pkg/images/imutil/t_imslice.x + Removed an error check in imslice, that was preventing the task from + being used to reduce the dimensionality of images where + IM_LEN(im,slice_dimension) = 1. + (2/16/93 LED) + +dev/imtoolrc +dev/graphcap + Added a new frame buffer, imt37, at Skip Schaller's request for + the Loral 1200x800 CCDs. (2/17/93 MJF) Modified imt37 and imt26 + (cryocam) to suit KPNO nomenclature. (2/18/93 RLS) + +pkg/images/tv/imexamine/ierimexam.x +pkg/images/tv/doc/imexamine.hlp + The simple gaussian fitting was inadequate and gave biased answers. + Replaced this algorithm with NLFIT version. It is still just a two + parameter fit with the center and sky being determined and then fixed + as before. (3/2/93, Valdes) + +dev/hosts + Merged all differences on ursa, gemini, orion, and bigx back into + tucana's hosts file. (3/5/93 jb) + +pkg/images/tv/imexamine/iestatistics.x + The statistics computation was done in real precision, using aavgr, + which gives an incorrect standard deviation, presumable because of + precision truncation, when the mean is large and the actual data + noise is small. The routine was changed to use the double + precision version, aavgd, which gives the correct results. + (3/10/93, Valdes) + +noao/mkpkg + Added support for HPUX. (3/14) + +pkg/cl/main.c + Modified memneed(), used to allocate space at the end of the + dictionary, to quad align the allocated storage. (3/14) + +pkg/cl/pfiles.c + Modified this code to remove an assumption about the amount of + space allocated by memneed. (3/14) + +sys/imfort/tasks/mkpkg - +sys/imfort/tasks/README + Deleted the mkpkg, which is system dependent. (3/14) + +unix/os/alloc.c + Modified alloc to allow the drive in it unallocated state to be + owned by any system uid (any uid < 10), rather than insisting that + the drive be owned by root. If the drive is owned by any system + uid and has world rw permission it can be allocated under this + new scheme. This avoids requiring that the system manager set + the device ownership to root on systems where the device is owned + by bin or some other system uid. (3/15) + +mkpkg + Added irix and hpux support. (3/15) + +dev/hosts + Added otter to hosts file on tucana, ursa, gemini, orion, and + bigx. (3/24 jb) + +dev/graphcap +dev/termcap + Added entries for lw15|lwcloset to tucana, ursa, gemini, orion, and + bigX. (3/26 ShJ) + +sys/libc/cread.c + The case of EOF on a text file was not being handled correctly. (3/31) + +sys/fio/ffilsz.x + The file size was not being computed correctly in the case of a file + opened for writing and positioned to EOF, with some unwritten data + in the file buffer. (4/05) + +pkg/cl/exec.c + The LT_STDINB, LT_STDOUTB flags were not being propagated into the + task descriptor correctly (they were being treated as additional + cases of mutually exclusive task types). (4/07) + +pkg/images/doc/gauss.hlp + Fixed two sign error in the equations in the documentation for + the gauss task. (4/13 LED) + +unix/hlib/libc/stdio.h + Added a declaration for gets(). (4/16) + +pkg/images/imarith/imcombine.gx + There was no error checking when writing to the output image. If + an error occurred (the example being when an imaccessible imdir was + set) obscure messages would result. Errchks were added. + (4/16/93, Valdes) + +pkg/images/doc/rotate.hlp + Fixed a bug in the rotate task help page which implied that automatic + image size computation would occur if ncols or nlines were set to 0 + instead of ncols and nlines. (4/17/93, LED) + +sys/imio/iki/stf/stfrgpb.x + This code was directly referencing fields of the GPB in calls to + imaddX routines to build the image header. Since fields in STF + group parameter blocks are often not aligned, this could fail for + type double on machines that require that double values be double + aligned. The code was modified to copy the values out to + temporary variables (which the compiler will automatically align), + passing the aligned temporary values in the imaddX calls. (5/04) + +dev/graphcap + Merged in latest xgterm entries (these are not compatible with + early prerelease versions). (5/05) + +./lib/gescape.h +./lib/gim.h + +./lib/gio.h +./lib/gki.h +./lib/gset.h +./lib/scr/cursor.key +./lib/scr/xgterm.gui + +./pkg/language/doc/cursors.hlp +./pkg/plot/t_implot.x +./sys/etc/prpsio.x +./sys/gio/cursor/giotr.x +./sys/gio/cursor/grcaxes.x +./sys/gio/cursor/grccmd.x +./sys/gio/cursor/grcredraw.x +./sys/gio/cursor/grcwcs.x +./sys/gio/cursor/gtrctrl.x +./sys/gio/cursor/gtrdelete.x +./sys/gio/cursor/gtropenws.x +./sys/gio/cursor/gtrrcur.x +./sys/gio/cursor/gtrwsclip.x + +./sys/gio/cursor/gtrwstran.x +./sys/gio/cursor/mkpkg +./sys/gio/cursor/rcursor.x +./sys/gio/gactivate.x +./sys/gio/ggcur.x +./sys/gio/gim/mkpkg + +./sys/gio/gim/README + +./sys/gio/gim/gimrasini.x + +./sys/gio/gim/gimcrras.x + +./sys/gio/gim/gimderas.x + +./sys/gio/gim/gimwpix.x + +./sys/gio/gim/gimrpix.x + +./sys/gio/gim/gimqras.x + +./sys/gio/gim/gimsetmap.x + +./sys/gio/gim/gimrcmap.x + +./sys/gio/gim/gimwcmap.x + +./sys/gio/gim/gimimap.x + +./sys/gio/gim/gimcpras.x + +./sys/gio/gim/gimgetmap.x + +./sys/gio/gim/gimenmap.x + +./sys/gio/gim/gimref.x + +./sys/gio/gim/gimsetras.x + +./sys/gio/gim/gimrefpix.x + +./sys/gio/gki/gkifaset.x +./sys/gio/gki/gkigcur.x +./sys/gio/gki/gkiprint.x +./sys/gio/gki/gkircval.x +./sys/gio/gki/gkiwesc.x + +./sys/gio/gki/mkpkg +./sys/gio/gmprintf.x + +./sys/gio/gmsg.x + +./sys/gio/gopen.x +./sys/gio/gplcache.x +./sys/gio/greset.x +./sys/gio/gsetr.x +./sys/gio/gstatr.x +./sys/gio/gsview.x +./sys/gio/gswind.x +./sys/gio/mkpkg +./sys/gio/sgikern/sgifa.x +./sys/gio/stdgraph/mkpkg +./sys/gio/stdgraph/stdgraph.com +./sys/gio/stdgraph/stdgraph.h +./sys/gio/stdgraph/stgescape.x +./sys/gio/stdgraph/stgfaset.x +./sys/gio/stdgraph/stggcur.x +./sys/gio/stdgraph/stggim.x + +./sys/gio/stdgraph/stginit.x +./sys/gio/stdgraph/stgopen.x +./sys/gio/stdgraph/stgopenws.x +./sys/gio/stdgraph/stgrcur.x +./sys/gio/stdgraph/stgreset.x +./sys/gio/stdgraph/stgscur.x +./sys/gio/stdgraph/stgwtty.x +./sys/tty/tty.h +./sys/tty/ttyopen.x + Merged in a number of changes made to add IRAF-side support for the + prototype widget server. These will be documented in detail later. + The changes should be backwards compatible; any compatibility + problems should be reported. (5/05) + +pkg/images/geometry/t_imshift.x + Added support for type ushort images to the imshift task in the + case that the pixel shifts are integral not fractional. + (5/8/93 Davis) + +pkg/images/imarith/icmedian.gx + The median calculation is now done so that the original input data + is not lost. This slightly greater inefficiency is required so that + an output sigma image may be computed if desired. (5/10/93, Valdes) + +images/doc/imshift.hlp + Fixed a typo in the name of the "interp_type" param. (5/13/92 MJF) + +dev/tapecap + Added support (mto*) for the new Exabyte 8500 drive on Argo. + Added lo/hi/comp aliases for the ST driver entries. (5/17) + +dev/hosts + Added aldebaran to all hosts files - needed temporarily until this + machine becomes argo. (5/19 jb) + +pkg/images/tv/display/t_display.x + The code for the fill+ option did not handle the case of a non-square + display frame buffer correctly. (5/19) + +pkg/plot/phistogram.x + Fixed a bug in the way the phistogram task was reading in data + redirected from the standard input. (5/20 LED) + +/dev/hosts + Added lemming to all hosts files. (5/25 jb) + +images/imarith/icgdata.gx + There was an indexing error in setting up the ID array when using + the grow option. This caused the CRREJECT/CCDCLIP algorithm to + fail with a floating divide by zero error when there were non-zero + shifts. (5/26/93, Valdes) + +sys/ki/kixnode.x + This routine used a fixed length intermediate buffer which could + result in truncation of a resource name. Modified to base the buffer + size on the size of the resource string being edited. (5/29) + +doc/iraf92.tex +doc/iraf92f3.eps + Installed ADASS-93 IRAF paper sources. (6/02) + +doc/ports/aux_port.doc + Installed AUX/IRAF port notes. (6/02) + +lib/gescape.h +lib/gim.h +sys/gio/cursor/giotr.x +sys/gio/cursor/gtropenws.x +sys/gio/cursor/rcursor.x +sys/gio/gim/README +sys/gio/gim/gimlcmap.x +sys/gio/gim/gimwcmap.x +sys/gio/gim/mkpkg +sys/gio/sgikern/sgifa.x +sys/gio/stdgraph/mkpkg +sys/gio/stdgraph/stggcur.x +sys/gio/stdgraph/stggim.x +sys/gio/stdgraph/stgopenws.x +sys/gio/stdgraph/stgrcur.x +sys/gio/stdgraph/stgscur.x + Various files updated as part of display interfaces enhancements; + notes to be added later. (6/02) + +dev/hosts + Added odysseus to tucana/orion. Nigel added it to ursa/gemini. + (6/15MF) + +sys/vops/arav.gx + Changed the termination condition to cause loop termination if an + interation results in fewer pixels being rejected. This shouldn't + happen, but is possible due to arithmetic errors when the algorithm + is near convergence. (6/19) + +sys/imio/iki/oif/oifopix.x + Improved the error handling for the case where there is no pixel + storage file. (6/21) + +gio/ncarutil/conbd.f +gio/ncarutil/conrec.f + Dimension of array IR in subroutine STLINE was increased from 20k + to 80k. This array, in common block CONRE2, holds the starting + location of all contours at a given level. Larger data arrays, and + users wanting to contour each pixel rather than subsampling or block + averaging, have necessitated the gradual increase of this array + over the years from its original value of 500 to 80000. (ShJ 6/21) + +pkg/plot/phistogram.x + Fixed a bug in the way phistogram was binning real data read in from + a list or image that was causing to create one less bin than required + to hold the data. (26/6/93, Davis) + +dev/hosts + Added sandalwood to all hosts files, ie tucana, bigx, ursa, gemini, + and orion. (jb 7/1/93) + +doc/vmsiraf.ms + +doc/vmsiraf.ms.v29 + + Installed the new, extensively revised VMS/IRAF manual. (7/01) + +unix/hlib/buglog.csh + Modified to also append a new buglog entry to the bugs.log file in + the network archive (~ftp/iraf/v210/bugs.log). (7/02) + +pkg/utilities/t_surfit.x + +pkg/utilities/surfit.par + +pkg/utilities/doc/surfit.hlp + +pkg/utilities/x_utilities.x +pkg/utilities/mkpkg +pkg/utilities/utilities.cl +pkg/utilities/utilities.men +pkg/utilities/utilities.hd + A task for fitting a 2D function or "surface" to an irregularly + sampled set of x, y, and z points has been added to the utilities + package. (fv 7/6) + +pkg/images/geometry/geomap.par +pkg/images/geometry/t_geomap.x +pkg/images/geometry/geogmap.x +pkg/images/geometry/geofit.x + Fixed a bug in the error handling code in geomap which was producing + a segmentation violation on exit if the user's coordinate list + had fewer than 3 data points. Also improved the error messages + presented to the user in both interactive and non-interactive mode. + (7/7/93, LED) + +unix/os/zfmkcp.c + This routine makes a zero-length copy of a file, preserving the file + mode bits so that the application need not know about the host + system's view of file types, permissions, etc. The routine was + modified to preserve the file mode bits EXCEPT that the new file has + read and write permission enabled for the owner (it is likely that + an IRAF application creating a new, zero length copy of a file or + file template will want to write to the file). (7/07) + +dev/hosts + Added pandora. (7/10/93 jb) + +sys/mwcs/mwsave.x + Added a missing call to sfree. (7/13) + +pkg/system/doc/help.hlp + Deleted a comment about using device=text with the help task and + added another example showing how to use help | type dev=text to + get a text file copy of a help page. (7/23) + +pkg/images/filters/t_median.x +pnkg/images/filters/t_mode.x + Removed an extraneous invalid argument from the call to eprintf + inside an iferr block. (7/28/93) + +------------------- +V2.10.3 BETA, first release. (7/29) + +mkpkg +unix/hlib/strip.iraf + Minor updates to strip a few things that were being missed. mkpkg + strip at the iraf root now prints some helpful messages. (8/01) + +unix/hlib/login.cl + Added dbx and gdb to the default user package. (8/01) + +pkg/images/imarith/t_imcombine.x + The algorithm for making sure there are enough file descriptors + failed to account for the need to reopen the output image header + for an update. Thus when the number of input images + output + images + logfile was exactly 60 the task would fail. The update + occurs when the output image is unmapped so the solution was to + close the input images first except for the first image whose + pointer is used in the new copy of the output image. (8/4/93 fv) + +pkg/images/imfit/fit1d.x + When the input and output images are the same there was an typo error + such that the output was opened separately but then never unmapped + resulting in the end of the image not being updated. Fixing the + typo means that only one I/O pointer is used in READ_WRITE mode + as intended. (8/6/93 fv) + +sys/mkpkg +sys/memdbg/ + +lib/libmemdbg.a + +unix/hlib/mkpkg.sf.SUN4 + +unix/as.sparc/zrtadr.s + + Added a new system library -lmemdbg. This is a debug version of MEMIO, + used to log calls to the MEMIO routines and check programs for + memory leaks (unfreed buffers). See the README file in the memdbg + directory for details on usage. (8/08) + +pkg/softools/memchk.par + +pkg/softools/memchk.x + +pkg/softools/mkpkg +pkg/softools/softools.cl +pkg/softools/softools.men +pkg/softools/x_softools.x + Added a new task MEMCHK to the softools package. This is used in + conjunction with the memdbg facility. (8/08) + +pkg/system/sort.x + This very old program had some pretty small buffer sizes and hence + was slow sorting large files. The buffer sizes were increased by + about a factor of 10. (8/08) + +sys/clio/clclose.x +sys/clio/mkpkg +sys/etc/main.x + Made a minor modification to the IRAF main to close the stdio + streams during process shutdown. This makes memdbg output a little + less confusing, although the system still allocates a number of + buffers that exist for the lifetime of the process and are never + freed. (8/08) + +sys/fio/stropen.x + Added a call to strclose to free the file pushback buffer if any. + This is only necessary when pushback is used on a string buffer + opened as a file, as in parsers. (8/08) + +sys/fio/vfnmap.x + Added a missing sfree. (8/08) + +sys/vops/aselk.gx +sys/vops/lz/mkpkg +sys/vops/mkpkg +sys/vops/vops.calls +sys/vops/vops.men +sys/vops/vops.syn + Added a missing VOPS routine aselk, the vector/scalar version of the + existing asel routine. (8/08) + +lib/evvexpr.h + +sys/fmtio/evvexpr.x + +sys/fmtio/evvexpr.y + +sys/fmtio/evvexpr.gy + +sys/fmtio/evvexpr.com + +sys/fmtio/mkpkg + Installed a new FMTIO routine evvexpr, a vector version of the old + evexpr with many other enhancements (expanded datatypes, intrinsic + functions, etc.). Refer to the imexpr help page and the comments + at the top of evvepxr.gy for details. (8/08) + +pkg/images/images.hd +pkg/images/images.men +pkg/images/images.cl +pkg/images/x_images.x +pkg/images/imarith/mkpkg +pkg/images/imarith/imexpr.x + +pkg/images/imarith/imexpr.gx + +pkg/images/imarith/gettok.x + +pkg/images/imarith/gettok.h + +pkg/images/doc/imexpr.hlp + + Installed a new task IMEXPR, used to evaluate general image + expressions. Refer to the help page for details. (8/08) + +unix/boot/mkpkg/host.c + The routine h_direq in this file is supposed to be smart enough + to be able to match up directories even when symbolic links are + used. It was being fooled by a case where the name of the iraf + root directory is not a simple "iraf" - for example on tucana the + root directory is currently called "iraf/iraf.develop". When + h_direq fails it can cause mkpkg special file list entries to + be ignored. (8/11) + +sys/fmtio/evvexpr.gy + Swapped the precedence of the unary minus and exponentiation operators + (the latter should have higher precedence). (8/12) + +sys/fmtio/evvexpr.gy + 1. The input arguments to the intrinsic functions INT and NINT were + being coerced to floating before performing the operation (harmless + but unnecessary, and inefficient). + 2. The code for the intrinsic functions "short" and "long" was missing + and was added. (9/04) + +unix/hlib/mkpkg.sf.SUN3 +unix/hlib/mkpkg.sf.SUN4 + Added the compiler switch "-Ns2048" for fmtio$evvexpr.x. This routine + (which is computer generated from evvexpr.gy and which is enormous) + was overflowing the Fortran compiler symbol table. Interestingly, + I got the same error message and had to add exactly the same switch, + using the Sun Fortran compiler on the Sun and F2C on A/UX! (9/04) + +dev/termcap +dev/graphcap + Added HP LaserJet 4M 600dpi printer 'lw16' to graphcap/termcap file + on tucana, orion, gemini, ursa, and bigx. (9/17/93 MJF) + +dev/hosts + Modified herbie entry on all hosts. Herbie now feeds off of + gemini. (jb 9/23/93) + +sys/mwcs/mwgctran.gx + Fixed a typo that was preventing LTV from being output correctly. + (9/24) + +pkg/images/imarith/icscale.x +pkg/images/doc/imcombine.hlp + The help indicated that user input scale or zero level factors + by an @file or keyword are multiplicative and additive while the + task was using then as divisive and subtractive. This was + corrected to agree with the intend of the documentation. + Also the factors are no longer normalized. (9/24/93, Valdes) + +pkg/images/imarith/icsetout.x + The case in which absolute offsets are specified but the offsets are + all the same did not work correctly. (9/24/93, Valdes) + +sys/gio/gmsg.x +sys/gio/gmprintf.x + 1. gmsg (and indirectly gmsg[bcsilrdx]) was modified to format a + message as required to the set the value of an OBM parameter object. + Previously it was working, but it would send any message to any + UI object and this would have required that applications format + messages specially for UI parameters. + 2. Reviewing gmprintf.x it appeared that the routine was never + finished and won't work - I added a comment to that effect. The + gmsg routines should prove more useful anyway. (9/26) + +sys/gio/stdgraph/stgopenws.x + When reactivating a device in certain circumstances a flag was not + being set to tell the kernel that the device was activated. A symptom + of this was that in a cursor read, colon commands would not be echoed + or the 'C' key would appear to do nothing (the characters were + actually being output but since the dialog box was never activated + they were not being printed). (10/01) + +dev/graphcap + The xgterm entry was modified to add a new field to the cursor + return struct. (10/7) + +sys/gio/stdgraph/stgopen.x +sys/gio/stdgraph/stgopenws.x +sys/gio/stdgraph/stgclose.x +sys/gio/stdgraph/stgreset.x +sys/gio/stdgraph/stgrcur.x +sys/gio/stdgraph/stgrtty.x +sys/gio/stdgraph/stdgraph.com +sys/gio/stdgraph/stdgraph.h + The stdgraph kernel was modified to allow a message to be returned + as part of a cursor read. The cursor value struct for devices such + as xgterm contains a field "nchars" defining the number of chars, + default zero, following the fixed size cursor value struct. If this + data is present it is read as part of the cursor read, and played + in a dynamically reallocatable message buffer in the stdgraph + kernel. The next stg_readtty call (as used in CL cursor reads or + when reading from STDIN when graphics is activated) returns data from + this message buffer rather than reading from the terminal. A new + routine stg_msglen was added to allow the kernel to be queried to + see how much message data is buffered. The message buffer is + emptied in each cursor read or after the first stg_readtty call. + (10/7) + +sys/gio/cursor/rcursor.x + In a colon cursor read, the rcursor code (=gcur, clgcur) now calls + stg_msglen and echoes the ":" only if there is no buffered message + data. (10/7) + +sys/gio/gmsg.x + The messaging routine gmsg now automatically disables and renables + F_FLUSHNL if this is set on STDOUT, as this interferes with the + operation of gmsg. (10/7) + +pkg/images/imarith/icsetout.x + Added MWCS calls to update the axis mapping when using the project + option in IMCOMBINE. (10/8, Valdes) + +dev/hosts + Added node sol to tucana at Ed Anderson's request. (10/8 ShJ) + +pkg/dataio/imtext/t_rtextimage.x +pkg/dataio/imtext/t_wtextimage.x +pkg/dataio/imtext/rt_cvtpix.x +pkg/dataio/rtextimage.par +pkg/dataio/wtextimage.par +pkg/dataio/doc/rtextimage.hlp +pkg/dataio/doc/wtextimage.hlp + A parameter was added to select whether to read or write the pixel + values. This is complementary to rfits/wfits and allows use of + these tasks to store and restore image headers. (10/22 FV) + +dev/hosts + Updated argo entry now that it has been updated to a sparc - on + all servers. (10/27 jb) + +pkg/images/icgrow.gx +pkg/images/icpclip.gx +pkg/images/icsclip.gx +pkg/images/icaclip.gx +pkg/images/iccclip.gx +pkg/images/t_imcombine.x +pkg/images/doc/imcombine.hlp + If there were fewer initial pixels than specified by nkeep then the + task would attempt to add garbage data to achieve nkeep pixels. This + could occur when using offsets, bad pixel masks, or thresholds. The + code was changed to check against the initial number of pixels rather + than the number of images. Also a negative nkeep is no longer + converted to a positive value based on the number of images. Instead + it specifies the maximum number of pixels to reject from the initial + set of pixels. (11/8, Valdes) + +sys/fio/stropen.x + There was an off by one problem with marking the end of the string + buffer, making it possible to run off the end of the buffer by one + char before overflow would occur. (11/10) + +pkg/images/tv/display/t_display.x + Changed the format of the z1=,z2= message to produce something that + can be cut and pasted into another CL display command to use the + same scaling. (11/12) + +pkg/images/imarith/t_imarith.x +pkg/images/doc/imarith.hlp + If no calculation type is specified then it will be at least real + for a division. Since the output pixel type defaults to the + calculation type if not specified this will also result in a + real output if dividing two integer images. (11/12/93, Valdes) + +sys/ki/irafks.x + 1. Modified the code which handles ZFSTT optbufsize,maxbufsize requests + for the binary file drivers to also query the maxbufsize for ZFIOKS + and return the minimum of this value and the device value. This + prevents the size of a binary file data transfer from exceeding the + max size network transfer. + 2. The irafks.exe executable was updated in our VMS/IRAF system. + (11/17) + +sys/ki/kbzstt.x + While looking at this code I noticed that the internal variable + kb_maxbufsize could be used before being initalized. Although I am + not aware of this having caused any problems, I modified the code to + properly initialize the variable. (11/17) + +sys/vops/arav.gx + The change made on 6/19 (to avoid an infinite loop condition that + could arise due to roundoff errors) introduced a bug that would cause + the routine to return after one iteration, without rejecting any + data. (11/18) + +sys/fmtio/gargs.x + Was not properly checking for indefinite or overflow in the double + to short conversion. (11/22) + +sys/gio/gmsg.x + The gmsg routines now do an automatic gflush before sending the + message. The gflush and a flush of STDOUT are always done regardless + of whether the output device supports messaging, to ensure that the + flush semantics are not device dependent. (11/24) + +pkg/proto/t_bscale.x + Added a call to flush after the status printout so that the output will + appear after each image is processed. (11/29 LED) + +dev/hosts + Modified deneb entry at Ed Anderson's request. (12/1 ShJ) + +sys/imio/iki/stf/stfcopyf.x + Added errchk declarations for getline and putline. (12/10) + +doc/ports/notes.aix + + It appears that we never installed the notes file from the AIX/IRAF + port so I went ahead and did this. (12/13) + +sys/imio/iki/stf/stfcopyf.x + Increased the size of the internal arrays to MAX_PCOUNT+NKW, and + added a constraint on a loop index to ensure that images with large + GPBs would not exceed this limit. (12/20) + +dev/hosts + Modified herbie entry at Lisa Wells' request. (12/22 ShJ) + +pkg/images/geometry/t_geomap.x +pkg/images/geometry/geofit.x +pkg/images/geometry/geograph.x + Fixed a bug in the geomap code which caused the linear portion of + the transformation to be computed incorrectly if the x and y fits + had a different functional form. (12/29/93 LED) + +unix/hlib/buglog.csh + The buglog will now log the bug to adass.iraf.bugs in addition to + all the usual places. (01/06 1994) + +noao/lib/zzsetenv.def + Added a definition of "noao$bin(arch)/" to 'pkglibs' so that the + smw and asttools libraries would be picked up by other packages + using '-p noao' when the package is configured generically. + (1/10/94 MJF) + +math/gsurfit/gssub.gx +math/gsurfit/gssubd.x + The gsurfit double precision routine gssubd was incorrectly calling + the real precision routine gsgeti instead of the double precision + routine dgsgeti due to an error in the gssub.gx file. This bug + results in the wrong value of the parameter GSNSAVE being returned + to the calling routine gssubd in the double precision case. + (1/17/94 Davis) + +unix/hlib/buglog.csh + Changed the default version to V2.10. (1/21) + +sys/gio/stdgraph/stgwtty.x + Due to a too-nonspecific test for the termination of a graphics + message, a newline occuring at just the right position in a text + message could cause termination of a message. This was causing + large messages to be prematurely terminated (actually this could + occur in any message but it was more likely to be seen in a large + message). (1/24) + +dev/termcap + Added an entry for xgterm called "oldgterm". This is for using + xgterm with old versions of IRAF. It makes the text window look + like an xterm but the graphics is gterm. (1/27) + +sys/memdbg/README + Fixed a couple of typos. (1/28) + +pkg/plot/t_implot.x +pkg/plot/implot.par +pkg/plot/doc/implot.hlp + The step for the j/k keys may now be set by a task parameter. (2/02 fv) + +sys/gio/gmsg.x + 1. The dtoc and xtoc functions were being called incorrectly in the + gmsg[rdx] routines. + 2. Corrected a minor typo in a procedure header. (2/04) + +pkg/dataio/doc/bintxt.hlp +pkg/dataio/doc/mtexamine.hlp +pkg/dataio/doc/rcardimage.hlp +pkg/dataio/doc/reblock.hlp +pkg/dataio/doc/rfits.hlp +pkg/dataio/doc/rtextimage.hlp +pkg/dataio/doc/txtbin.hlp +pkg/dataio/doc/wcardimage.hlp +pkg/dataio/doc/wfits.hlp +pkg/dataio/doc/wtextimage.hlp + Added a "SEE ALSO" section to most of the help pages, and fixed a + number of other minor formatting errors. (2/13) + +pkg/cl/login.cl + Updated this file. (2/14) + +pkg/cl/lexicon.c + When skipping leading whitespace before a token, will now recognize + an escaped newline and skip the newline as well. (2/14) + +sys/memdbg/README + Added a couple more minor comments. (2/18) + +unix/as.sparc/zrtadr.s + MEMDBG was not returning valid values for the RETADR (return + address) field. This was traced to a problem with as$zrtadr.s. + Evidently the real zrtadr.s was lost back when MEMDBG was written, + probably due to an accidental cc -S after the package had already + been debugged. The version in as.sparc was the assembler for the + dummy version (zrtadr.c) in sys/memdbg. I had to rewrite the real + assembler version of this routine from scratch (ouch). (2/18) + +dev/graphcap +gio/stdgraph/stggim.x + The refresh pixels function was broken due to the graphcap entry for + this function being aliased to that for read pixels (RP). This + would cause an "incomplete or reentrant format" error when trying to + do a gim_refreshpix from an IRAF imaging application. (2/24) + +gio/gim/gimrefpix.x + Edited the procedure header description to reflect a change in the + definition of the GtRefreshPixels routine in the gterm widget. (2/25) + +dev/graphcap +sys/gio/stdgraph/stggim.x + The name for the ME capability (refresh mapping) used in the xgterm + graphcap entry was a redefinition of the marker-end capability used + for drawing polymarkers. Changed the name to MN. We need a more + rigorous way to register device capability names to avoid this sort + of problem. I usually search the graphcap file, but in this case + the named was used in the stdgraph kernel but was not actually defined + for any existing device. (3/03) + +sys/imio/imwrpx.x + This code assumed that IM_PIXTYPE was int, the same as the type of + the pixel masks. Modified to convert the pixel values if necessary + when writing to the output mask. (Note that this is not necessary + when *reading* a mask, as IM_PIXTYPE will always be int in that + case). (3/07) + +sys/plio/plp2l.gx +sys/plio/plp2r.gx + Modified this code to apply a max(0,value) to the input pixel values, + i.e. to clip at zero. Masks permit only nonnegative pixel values. + Negative input values could cause the data to be improperly encoded. + (3/07) + +pkg/math/gsurfit/gs_eval.gx + The sfree statement was commented out in the routines gs_evpoly + and dgs_evpoly. This results in over-utilization of memory and + occasionally in out of memory errors for tasks which make many + successive calls to gsvector or dgsvector if the surface type + is polynomial. (3/08/94 LED) + +dev/graphcap +dev/termcap + Added entries for lw14 as requested by Ed Anderson. (3/28/94 ShJ) + +pkg/images/tv/imexamine/ierimexam.x + Changed the gaussian fitting code to use a fraction of the fitting + radius as the initial value for the full-width half-maximum in cases + where the moment analysis failed, thus avoiding an occasional + floating overflow error. (4/15/94 LED) + +dev/graphcap + Updated the VMS solitaire entries for the new location of the + qsoli.com file, usr3\072[irafext.nlocal.lib]qsoli.com. (ShJ 4/19/94) + +unix/os/mkpkg +unix/os/zfiond.c + +unix/hlib/libc/kernel.h +unix/hlib/libc/knames.h +sys/fio/mkpkg +sys/fio/ndopen.x +sys/fio/zzdebug.x + Installed a new FIO driver, the ND or network device driver. This + driver can potentially support any connection oriented, streaming + type network or IPC communications domain. The initial set of + supported communications domains are Internet sockets, UNIX domain + sockets, and FIFO pipes. The type of connection is specified by + the "filename" argument to the driver at open time. Both client + and server connections are supported. + + A client or a server opens a network device connection as follows: + + fd = ndopen (filename, mode) + + The mode is NEW_FILE for a server, anything else for a client. + The file descriptor is bidirectional. The "filename" string syntax + is determined by the ND driver and is transparent to IRAF system + and applications code. For the UNIX/IRAF ND driver, here are some + examples: + + inet:5177 # Internet socket, server + inet:5177:foo.bar.edu # Internet socket, client + unix:/tmp/.IMT%d # UNIX domain socket + fifo:/dev/imt1i:/dev/imt1o # FIFO (named pipe) + + Refer to the comments in fio$ndopen.x and os$zfiond.c for further + information. The file fio$zzdebug.x contains sample client and + server tasks. (5/01) + +sys/fio/zzdebug.x + Added two tasks "client" and "server" for testing the ND driver. + These also demonstrate how to do bidirectional i/o on a streaming + file descriptor. + (5/01) + +dev/graphcap +unix/gdev/zfiogd.x + Modified the display server interface to use the ND driver. These + changes allow use of socket connections to talk to the display + server, but are backwards compatible and will work with older + display server that only support fifos. + + 1. The "/dev/imt1" was deleted from the imtool graphcap entries and + replaced by the null string. This causes the GD (not ND) driver + to use a default network address for the connection: the default + is 1) personal (per-user) unix domain socket at /tmp/.IMT<uid>, + 2) standard imtool fifo pair at /dev/imt1[io], 3) fail. + + 2. The GD driver was modified to use the ND driver instead of + the BF driver for generic device "imtool". The user may define + IMTDEV in their host environment to override the ND "pathname" + given in the graphcap entry for the device. + + The new image display server ximtool also supports all three ND + protocols (tcp/ip sockets, UNIX domain sockets, fifos) and will + simultaneously listen for connections on all three. Multiple + connections are supported, e.g. the user can be running imexamine + on one frame while client applications load images into 1 or more + other frames. Problems can still result if multiple clients try + to simultaneously access the same frame buffer, or if different + clients have different notions of the frame buffer configuration. + (5/01) + +unix/hlib/mkpkg.sf.SUN3 + Set the compile flags for evvexpr.x to "$xc -c -/Ns2048 -/Nx2048" + for the Sun-3 (larger compiler tables). (5/07) + +sys/gio/cursor/gtrctrl.x + Modified to set the SKIPOPEN flag on openws only for interactive + (inline) graphics kernels. A F_CANCEL on the graphics spool + buffer in the prpsio code was cancelling the openws for a subkernel + and preventing it from being passed to the kernel. The SKIPOPEN + is used to keep the giotr code from sending the openws again + when the grahics data is processed. A better solution might be + to just omit the gki_write in gtrctrl but the current approch + appears to work. This fixes several bugs seen recently with + graphics subkernels (SGI, IMD, etc.) where e.g. a gflush was + necessary to make a plot appear, or to keep separate plots from + being overplotted. (5/07) + +sys/fio/putline.x + Putline would flush the output buffer after the last character + written if the number of characters written exactly filled the + buffer. This was harmless in most cases, but would prevent using + putline to write the last character in a stropen file. This + behavior was not quite correct, as FIO normally flushes the buffer + only when one tries to write to the next character after the end of + the buffer. + + This bug was causing the STF image kernel to fail to read STF + images, due to the use of stropen in the kernel. The bug was seen + only recently due to a recent fix to stropen which caused the top of + the buffer to be changed by one character. The routine was changed + to flush only when writing beyond the end of the current buffer. + (5/07) + +sys/fmtio/evvexpr.gy + The code for the || operator was incorrect, it was computing the + and instead. (5/07) + +pkg/images/imarith/imexpr.x + This code is supposed to generate an integer image for a boolean + operand when automatic determination of the output image type is + enabled, but this was incompletely implemented. Modified to + generate a TY_SHORT image if the operant type is boolean and + automatic determination of the output image type is enabled. (5/07) + +sys/fmtio/evvexpr.gy + Changed MAX_ARGS from 16 to 17 in the arglist structure to double + align the storage for the operand structs. (5/08) + +sys/mwcs/wfmspec.x + Modified wf_msp_init to fix a problem in the computation of the + inverse transformation which could occur when the first physical + pixel in an image was greatly different from the first logical + pixel. (5/08) + +--------------------------------- +Another 2.10.3 beta released and installed on all the downtown tucana +sysems. (5/08/94) + +pkg/utilities/curfit.gx + Removed the explicit x axis limits to allow the GTOOLS default + buffer to be applied so that the end points don't fall on + the vertical axes. (5/10/94 FV) + +lib/evvexpr.h +sys/fmtio/evvexpr.gy + Added padding to the operand struct to cause arrays of operand + structures to be double aligned. (5/10) + +sys/gio/cursor/giotr.x + This file was evidently not updated when the change to gtrctrl.x + was made on 5/07, but both were modified to fix the gflush or + overlaid plots problem. (5/10) + +sys/fmtio/mkpkg + Restructured the mkpkg so that the code which calls the generic + preprocessor is called both when mkpkg is run in the source + directory, and during a sysgen update. (5/10) + +sys/vops/mkpkg + Minor cosmetic edit. (5/10) + +pkg/images/geometry/t_geotran.x + In cases where the geomap database was undefined and the geometric + transformation was linear, geotran was unnecessarily overiding the + size of the output image specified by the user, if this size was + bigger than the default output size (the size of the output image + which would include all the input image pixels if no user shifts + were applied). (5/10/94, Davis) + +pkg/images/imarith/icaclip.gx +pkg/images/imarith/iccclip.gx +pkg/images/imarith/icpclip.gx +pkg/images/imarith/icsclip.gx + The reordering step when a central median is used during rejection + but the final combining is average was incorrect if the number + of rejected low pixels was greater than the number of pixels + not rejected. See bug #244. (5/25/94, Valdes) + +dev/hosts + Modified irafks.e path to deneb on all the servers, added dynamo. + (6/3/94 MJF) + +pkg/images/imarith/icaclip.gx +pkg/images/imarith/iccclip.gx +pkg/images/imarith/icpclip.gx +pkg/images/imarith/icsclip.gx + The restoration of deleted pixels to satisfy the nkeep parameter + was being done inside the iteration loop causing the possiblity + of a non-terminating loop; i.e. pixels are rejected, they are + restored, and the number left then does not statisfy the termination + condition. The restoration step was moved following the iterative + rejection. (6/6/94, Valdes) + +pkg/images/geometry/xregister/rgxicorr.x + The path names to the xregister task interactive help files was + incorrect. (6/13/94, Davis) + +math/nlfit/nlfit.gx +math/nlfit/nlfitr.x +math/nlfit/nlfitd.x + Fixed a divide by zero error in the nlscatter routine which occurs + if the fit has no degrees of freedom and the weighting type is + WTS_SCATTER. (6/13/94 Davis) + +math/nlfit/nlchomat.gx +math/nlfit/nlchomatr.x +math/nlfit/nlchomatd.x + Changed the singular matrix test to avoid problems with matrices + whose diagonal elements have values in the same dynamic ranges as + the machines epsilon. (6/15/94 Davis) + +pkg/utilities$t_polyfit.x +pkg/utilities$pfregres.f + Added a trap for rmul values < 0.0 and > 1.0 to the polyfit routine + to avoid floating operand errors caused by trying to take the square + route of a negative number. (6/20/94 LED) + +pkg/images/geometry/geofit.x + A routine expecting two char arrays was being passed two real arrays + instead resulting in a segmentation violation if calctype=real + and reject > 0. (6/21/94, Davis) + +pkg/plot/t_surface.x + The surface task no longer calls error when the input array is + unsuitable for plotting (constant valued, entirely below floor or + above ceiling). The surf_limits procedure was modified to call + eprintf and then return an error value to the calling program, which + terminates the task quietly. This less drastic error exit will + allow [e.g., IRAF test] scripts to continue after calling SURFACE + with an invalid input image. (ShJ 6/23/94) + +unix/os/zfiond.c + Fixed a typo, fd2 was being used where fd1 was intended, in an + fcntl call after an open for a client fifo. (6/24) + +unix/os/zshlib.c + Fixed a syntax error on the last line, an extra ';' following a + stubbed out function declaration. (6/24) + +pkg/images/tv/imexaine/ierimexam.x + The Gaussian fitting can return a negative sigma**2 which would + cause an FPE when the square root is taken. This will only occur + when there is no reasonable signal. The results of the gaussian + fitting are now set to INDEF if this unphysical result occurs. + (7/7, Valdes) + +unix/gdev/sgidev/sgi2uapl.c +unix/gdev/sgidev/sgi2ueps.c + Merged in changes from Solaris port having to do with the declaration + of a file descriptor as (FILE *) rather than int, added some #idefs + to sgi2uapl.c needed by Solaris. Also modified the header ID string + produced by sgi2uapl to be "%!PS", this is required by certain HP + LaserJet 4M printers. (7/8/94 MJF) + +pkg/utilities$t_polyfit.x + Revoved the dependent variable normalization which was not doing + anything to improve the numerical statbility of the routine and which + was causing problems in the computation of the reduced chi-squared + and standard deviation statistics. + (7/11/94 LED) + +sys/fio/zfiott.x + Modified the ttyio logging code to flush the output after each + log message. (7/23) + +pkg/images/tv/wcslab/wcslab.x + Fixed an initialization bug in wcslab that was causing the axis labels + of the plot to be drawn incorrectly the first time wcslab was run. + This was only a bug under 2.10.3 + (26/7/94 Davis) + +pkg/images/geometry/xregister/rgxregions.x + The routine strncmp was being called (with a missing number of + characters argument) instead of strcmp. This was causing a bus error + under solaris but not under sun os whenever the user set the regions + parameter to "grid ...". (7/27/94 LED) + +unix/hlib/libc/kernel.h + Replaced this file with the version from the Solaris port, which + replaces the overused PFI definition by definitions of PFI, PFV, + and SIGFUNC. (7/30) + +pkg/images/geometry/xregister/rgxcorr.x + A procedure was being incorrectly declared as an integer function. + (8/02 LED) + +unix/os/zfiotx.c +unix/os/zzstrt.c + The terminal driver (zfioty i.e. zfiotx) has long had a weakness + in that it had no protection against confusion over the terminal + state if the terminal was accessed by two or more different file + descriptors. This was the chief cause of the cursor hang problem + seen with xgterm occasionally. The ehist/eparam code in the CL + was using two different file descriptors to set the terminal modes, + and when the second when in and out of raw mode it would leave the + first descriptor thinking the terminal was in raw mode while it was + not, causing the cursor to be read in "cooked" mode. This would + cause the \r (CR) delimiter in a cursor read to be mapped to \n + hence making it impossible to read the cursor. + + The terminal driver was rewritten to maintain an internal array + of descriptors of open terminal devices. When a file descriptor + is used to access a terminal device the driver maps the file + descriptor to its internal terminal device descriptor, which is + used to uniquely maintain state information for the device. This + ensures that the device is handled consistently regardless of what + file descriptor is used to set the device mode. + + The zzstrt code had to be modified to call ZOPNTY on each of the + three stdio streams, to initialize the terminal device descriptor + for the user terminal. The driver looks for a special filename + ("unix-stdin" etc.) and uses the already open stream (stdin, stdout, + or stderr) if one of the standard streams is specified. (8/02) + +dev/graphcap + Changed the xgterm graphcap entry to recognize either \r or \n as + the trailer code for a cursor read. This is a safeguard to permit + terminating a cursor read should the tty port somehow get raw mode + cleared, e.g. by some third party process. (8/02) + +pkg/images/tv/imexamine/ierimexam.x + World coordinates printed in the 'r' profile graph are now formated. + (8/02, Valdes) + +unix/hlib/login.cl + Modified to eliminate the stty xterm case. This causes problem when + TERM is set to xterm in the host environment, but the terminal is + an xgterm. Now, if the user sets the terminal type to xgterm in + their mkiraf, this is the value which will be used. (8/10) + +unix/hlib/mkiraf.csh + Added "xgterm" to the list of suggested terminal types. (8/10) + +------------------------------- +2.10.3 beta-3 release cut (Solaris). (8/10) + +pkg/images/iminfo/imheader.x + Changed the way this task tests whether a valid pixel file exists. + This fixes the bug where [NO PIXEL FILE] is printed when the pixel + file field in the header is something other than a filename. (8/15) + +------------------------------- +2.10.3 beta-3 release updated (Solaris). (8/17) + +doc/ports/notes.solaris + + Installed notes file from Solaris/IRAF port. (8/17) + +unix/boot/spp/xc.c + Modified XC to support PKGENV values listing multiple packages. + Formerly XC supported multiple package environments (-p pkgenv) + on the command line, but permitted only a single package to be + given in PKGENV. MKPKG has long supported both options. (8/18) + +unix/os/zfiotx.c + The terminal driver had a bug affecting nonblocking raw mode + (IO_RAW+IO_NDELAY). IO_NDELAY was implementing using fcntl O_NDELAY + on the file descriptor, which sets asynchronous mode on the + device with which the file descriptor is associated, i.e., the + tty port for a terminal device. This will fail if some other + process, e.g. the unix wall/rwall task, opens and writes to the tty + device, clearing asynchronous mode and causing the next read of + the tty by the IRAF process to block. It was necessary to modify + ZGETTX to handle a nonblocking raw mode read as a special case. + Select() is used to poll the device to see if there is any data to + be read, and the read is performed only if there is data to be + read. (8/18) + +------------------------------- +2.10.3 beta-3 release updated (Solaris). (8/18) + +local/login.cl + Modified as per login.cl revision of 8/10. (8/22) + +sys/fmtio/dtoc3.x + Fixed a bug that would prevent numbers from being rounded correctly + in special cases. The bug affected only fixed format where the + number being printed was smaller than the number of decimal places. + For example, 0.09 printed with %.1f would be printed as 0.0 as + rounding was not being done properly. (9/10) + +sys/etc/prchdir.x +sys/etc/prenvset.x +sys/etc/prupdate.x + Modified prupdate to add an argument "flushout", used to force flushing + of the command output to the specified subprocess. Modified prchdir + and prenvset to use the new calling sequence for prupdate. prchdir + calls prupdate with flushout=YES, prenvset uses flushout=NO. This + should fix a problem where chdir requests could be buffered and later + flushed after one of the referenced directories had been deleted, + causing the chdir sequence to fail. (9/14) + +sys/mwcs/mwrotate.x + When rotating about a nonzero center this code was failing to + shift back to the original center after the rotate. (9/16) + +sys/mwcs/mwtransd.x + The matrix multiplication in mw_axtran was not being done properly. + The code would work in the most common cases but would fail when + rotation (non-diagonal matrix) was combined was an axis flip. (9/16) + +unix/os/zfiotx.c + tty_reset was being called incorrectly in zclstx(). (9/17) + +sys/clio/clgcur.x + Removed the limitation imposed by this routine on the maximum + length of the string which can be returned. (9/20) + +pkg/images/tv/tvmark/mkmark.x + Replaced a seek to EOF call with a flush call in the the tvmark task + "add object" procedure. On SunOS systems the seek to EOF was apparently + forcing the flush while on Solaris systems it was not, resulting in the + added objects never being written to the coordinate file. + (10/3 LED) + +dev/hosts + added entry for hohokam at Ed Anderson's request. (ShJ 10/5/94) + +sys/vops/awvg.gx + Modified to always use double precision for the loop variables + sum, sumsq, etc., even if the data is single precision. (10/06) + +sys/mwcs/wfmspec.x + Code was added to perform a direct search if the default, faster + inversion algorithm fails. (10/07) + +pkg/dataio/doc/rfits.hlp + Removed a confusing reference to difficulties reading images with + very long lines from the bugs section of the help page. + (10/10/94 LED) + +pkg/images/imfit/fit1d.x + A Memc in the ratio output option was incorrectly used instead of Memr + when the bug fix of 11/16/93 was made. (10/14/94, Valdes) + +dev/termcap + Added a two-up termcap entry for lw16 called "lw16p2" (10/20/94 MJF) + +pkg/images/iminfo/imheader.x + Restructured the code which tests for the pixel file to avoid a + potential reentrant printf. (10/24) + +sys/fmtio/ctod.x + Fixed a typo in the comment specifying the lexical form of a + sexagesimal number. (10/24) + +pkg/images/imarith/imexpr.gx + The @file form of the expression parameter was failing due to the + newline at the end of the expression as read from the text file. + Modified to convert all newlines to spaces when the file is read + in. This should work as when invoked this way the included file + can only contain a single expression, and no expression syntax + requires a newline to be entered. (10/25) + +dev/termcap +dev/graphcap + Added a new HP LJ 4 600dpi laserwriter to all servers (10/26/94 MJF) + +sys/gio/gim/gimlcmap.x + Fixed a case of an intrinsic function called with mixed type + arguments. (10/28) + +sys/gio/glabax/glabax.x + Modified to use the graphcap capability "fa" instead of "FS" to + test whether the output device has a fill area capability. (11/04) + +unix/boot/mkpkg/mkpkg + Changed a "cc" to a "$(CC)". (11/04) + +pkg/images/tv/imexamine/iecolon.x +pkg/images/tv/doc/imexamine.imh +lib/src/imexamine.key + 1. The "label" parameter was incorrectly attributed to the surface + plot instead of the contour plot. + 2. The "axes" parameter for the surface plot was missing in the code + though noted in the help. + 3. Updated the help and key file to show the label parameter belongs + to the e plot and to show the axes parameter. + (11/08) + +pkg/images/xregister.par +pkg/images/doc/xregister.hlp +pkg/images/geometry/xregister/t_xregister.x +pkg/images/geometry/xregister/rgxcorr.x +pkg/images/geometry/xregister/rgxicorr.x +pkg/images/geometry/xregister/rgxcolon.x +pkg/images/geometry/xregister/rgxdbio.x + The xregister task was modified to to write the output shifts file + in either text database format (the current default) or in simple text + format. The change was made so that the output of xregister could + both be edited more easily by the user and be used directly with the + imshifts task. (11/11 LED) + +pkg/images/geometry/xregister/rgxbckgrd.x + In several places the construct array[1++nx-wborder] was being used + instead of array[1+nx-wborder]. The Sun compilers did not catch this, + but the IBM/RISC6000 compilers did. (11/16/94, LED) + +dev/hosts + At eanderson's request, added entry for dyevushka and deleted helios. + (11/17/94 ShJ) + +dev/hosts + At eanderson's request, added entry for mimbres and changed equuleus. + (11/18/94 MJF) + +pkg/images/geometry/t_imshift.x +pkg/images/geometry/t_magnify.x +pkg/images/geometry/geotran.x +pkg/images/geometry/xregister/xrgximshift.x + The buffering margins set for the bicubic spline interpolants were + increased to improve the flux conservation properties of the interpolant + in cases where the data is undersampled. (12/6/94, Davis) + +unix/boot/spp/xpp/xppcode.c + Increased MAX_STRINGS from 100 to 256. (12/14) + +pkg/cl/param.c +pkg/cl/modes.c +pkg/cl/operand.c + Made minor changes to improve handling of INDEF. + 1) When scanning into a string parameter the string "INDEF" is no + longer converted to an indefinite operand, it is left as string data + (the INDEF test was being performed unconditionally for all operand + types, which was incorrect). + 2) Fixed bugs in a couple of places were indefinite was being + confused with undefined, or where indefinite was being treated as + an invalid operand. (12/23) + +------------ +The following changes are being merged back in following the DEC Alpha/OSF +port. (12/30) + +unix/hlib/libc/spp.h + Set XLONG to int (32 bits) instead of long. This should work for + both 32 and 64 bit platforms. (12/30) + +unix/os/zdojmp.c + This code assumed that jmpbuf was an int array and that a pointer + could be stored in the first integer element. This fails on 64 + bit machines where pointers are 64 bits and ints are 32. Modified + to coerce the jmpbuf array to long so that both 32 and 64 bit + machines will be supported. (12/30) + +unix/boot/wtar/wtar.c + Fixed a bug in WTAR involving coercion of a pointer to an integer + (line 536, bp = ...). (12/30) + +sys/gio/gks/gcas.x + Changed the procedure name from "gca" to "gcas". There is already + another procedure in the same library called "gca". "gcas" is + supposed to be the type short version. (12/30) + +sys/gio/ncarutil/autograph/agrstr.f + Commented out statements number 901, 902: "no path to this statement". + These statements are never called as the code that calls them is also + commented out. (12/29) + +sys/gio/ncarutil/autograph/agsave.f + Same thing, statement 901. (12/29) + +sys/gio/ncarutil/conlib/consld.f + Commented out statement functions SCRTCH and IARVL. These are never + called and result in a warning message. (12/29) + +sys/gio/ncarutil/conrec.f + Commented out three lines around line 1226. These lines were no + longer used because other code had been commented out, and were + resulting in a "Variable XX is used before it value has been + defined" warnings. (12/29) + +sys/gio/nspp/sysint/encd.f + Commented out several lines that were no longer used and were causing + a "no path to this statement" warning. (12/29) + +math/deboor/setdat2.f +math/deboor/setdat3.f + This library contains three files setdat.f, setdat2.f, setdat3.f + all of which contain a procedure "setdat", causing library conflicts. + These routines are not really part of the library anyway and are + only used to generate data for examples in DeBoor's book, but to + avoid the library conflicts I changed the names of the second and + third procedures to setdt2, setdt3. (12/29) + +pkg/cl/bkg.c +pkg/cl/builtin.c +pkg/cl/compile.c +pkg/cl/config.h +pkg/cl/debug.c +pkg/cl/decl.c +pkg/cl/errs.c +pkg/cl/exec.c +pkg/cl/gram.c +pkg/cl/main.c +pkg/cl/mem.h +pkg/cl/modes.c +pkg/cl/opcodes.c +pkg/cl/opcodes.h +pkg/cl/operand.c +pkg/cl/param.c +pkg/cl/prcache.c +pkg/cl/scan.c +pkg/cl/stack.c +pkg/cl/task.c + The CL has long defined the dictionary and stack as arrays of + unsigned integer. This causes problems on a 64 bit machine like + the Alpha where integer and pointer are not the same size. + To avoid this problem a new type "memel" was defined in a typedef + in config.h. The CL code was modified as necessary to declare + all dictionary and stack storage and references using this new + type. (12/29) + +pkg/cl/scan.c + The varargs code in this routine failed to compile on the Alpha, + which defines va_list as a structure rather than a variable. + This caused a (va_list) cast to fail. After studying this for + a while I couldn't find any way to safely and portably use varargs + to fake an argument list as an array. The solution adopted was + to just make a normal call to sscanf, putting the variable number + of arguments on the argument list in the normal fashion as v[0], + v[1], v[2], and so on. The current implementation imposes a + limit of at most 32 arguments for a CL scan operation. (12/29-30) + +mkpkg +noao/mkpkg + Added an entry for the "alpha" architecture. (12/29) + +unix/hlib/mkfloat.csh + 1. Modified to look for .E files as well as .e files. + 2. The script was failing because tar -tf would output file names + with a trailing space after the filename (surely a bug in OSF1 tar). + Had to add a filter to trim the whitespace. + 3. Modified the script to treat the "generic" architecture specially, + avoiding any attempt to restore any binaries etc. (12/29) + +sys/libc/zzdebug.c -> zztest.c + Renamed zzdebug.c zztest.c to avoid a name conflict with the zzdebug.x + in the same directory. (12/29) + +unix/hlib/libc/stdio.h + In struct _iobuf, changed the type declarations from long and int + to XLONG and XINT. (12/29) + +dev/hosts + Added an entry for "lyra" to the hosts table. (12/29) + +unix/os/zopdir.c + 1. Modified to use (conditionally) the newer versions of + opendir/readdir. + 2. Testing revealed a bug in this file. This was preventing commands + such as "dir /" from working on Solaris, due to a bug in the code + which strips trailing slashes from directory names. + 3. zopdir would pass back a pointer coerced to an int as the "file + descriptor" but this would fail on 64 bit systems where pointers + don't fit in 32 bits. Modified the routine to allocate a kernel + file descriptor for the directory and pass back a normal fd instead. + + Items 1 and 2 above were actually made in the Solaris port. (12/30) + +pkg/dataio/fits/t_wfits.x + Wfits was using the name of the @file instead of the first file as the + root output fits file name if the number of output files was 1. + (1/18/94 LED) + +unix/os/alloc.c + Fixed a bug in alloc.e which could allow some files in /dev/ to be + allocated even though the file permissions didn't permit this. (1/18) + +tags + Edited this old tags file to change absolute pathnames such as + "/usr/iraf/sys/..." to "sys/...". (1/19) + +dev/hosts + Added lyra to this file on ursa. (01/20 jb) + +unix/os/zfiond.c + Added a check for the status returned by getstr() to avoid attempting + undefined operations on a null return value. (1/27) + +sys/fio/zzdebug.x + Added a task "daytime" to the FIO zzdebug. This demonstrates use + of the zfiond driver to connect to the TCP/IP "daytime" service to + print out the date and time. (1/27) + +hlib/extern.pkg + Added the ccdacq package from ursa to permit help to be accessed + via the irafhelp web page per Jeannette's request. (2/1 RLS) + +iraf/dev/hosts + Added katmai to the hosts files on tucana, ursa, gemini, bigx and + orion. (2/7/95 jb) + +pkg/math/curfit/doc/curfit.spc + Fixed a bug in the specification of the Legendre polynomials. + (2/15 LED) + +pkg/images/tv/imexamine/iejimexam.x + Fixed a pointer addressing error found by Zarate. (2/16 FV) + +pkg/plot/t_implot.x +pkg/plot/pltwcs.x + When trying to plot a column of a 1D image the physical axis was + being set to zero and then used inapproprriately as a pointer offset + causing an error on the Dec Alpha port. The axis now defaults to + 1 and also the task now beeps when attempting a column plot rather + than plotting a point point line. (2/16 FV) + +sys/imio/iki/stf/stfopix.x + The pointer o_im (old image header) was being used in an expression + even for new (non new-copy) images. Whether or not the pointer was + actually referenced would depend on the Fortran compiler and how + it evaluated the expression. (2/18 1995) + +sys/gio/cursor/grcread.x + A call to grc_message was missing the "stream" argument. (2/23) + +pkg/system/help/helpdb.x + The final call to error() was missing the errcode argument. (2/23) + +sys/gio/gki/gkiexe.x + The code for GETCELLARRAY was incorrectly using zcall7 instead of + zcall6. (2/23) + +sys/gio/stdgraph/stgreset.x + Not all polyline and fillarea attributes were being reset when a + open or close workstation (stg_reset) occurred. Added initializations + for PLTYPE, FASTYLE, PLWIDTH. (2/25) + +unix/hlib/extern.pkg + Installed IMCNV for use on tucana. (3/2 MJF) + +pkg/images/geometry/xregister/rgxtools.x + Changed some incorrect amovr and amovi calls to the correct amovkr + and amovki calls. (3/15 LED) + +pkg/dataio/fits/fits_cards.x + Added some wfits code to filter any "END " keywords out of the + image header userarea. (3/17 LED) + +pkg/images/tv/doc/display.hlp + Clarified the explanation of the 'zrange' parameter to indicate that + if min/max values are defined they will be used, otherwise the image + is subsampled using nsample_lines to approximate the min/max when + determining the mapping. (3/22 MJF) + +pkg/plot/t_gkixt.x +pkg/plot/doc/gkiextract.hlp + Increased the size of the index array from 2048 to 8192 to accomodate + very large metacode files. Added a note to the help page mentioning + the limit. (3/22 MJF) + +pkg/images/geometry/xregister/t_xregister.x + Added a test on the status code returned from the fitting routine to + prevent the xregister task from writing an output image when the user + quits the task in in interactive mode. (3/31/95, Davis) + +dev/hosts + Added 'vanilla' to the mountain sites on all servers. (4/5/95 MJF) + +sys/imio/iki/stf/stfrfits.x + Added an errchk for open. (4/03 1995) + +sys/fio/open.x + Added errchks for fgetfd, filopn, seek. (4/03) + +pkg/images/tv/mkpkg +pkg/images/tv/wcslab/mkpkg + The general purpose routines in WCSLAB were moved into libds.a. (4/10) + +pkg/images/tv/doc/imexamine.hlp + Fixed a typo in the equation for ellipticity. (4/10) + +pkg/images/tv/imedit/t_imedit.x +pkg/images/doc/imedit.hlp + The 'j', 'k', 'n', and 'u' keys were added to those recorded in the + logfile. (4/11, FV) + +sys/gio/imdkern/t_imdkern.x + The IMD kernel was modified to add a new debug option that will + work even when the kernel is run as a generic subkernel of the CL. + For example if we do a "set idkdebug = /tmp/idk.out" then the + kernel will log GKI input to the file ikd.out. In debug mode output + is flushed after every output line, hence one can do a "tail -f" on + the file to monitor the kernel during execution, to see what the + CL is sending it. Currently this feature is only available in the + IMD kernel but it would be easy to add it to other graphics kernels + if needed. (4/13) + +sys/etc/prpsio.x + The pseudofile i/o controller was modified to fix what has been + referred to as the "imdkern bug", where the IMD kernel would not + flush its output to the image display as it used to prior to 2.10.3. + + What happened was that the addition of GUI support in 2.10.3 + included support for bidirectional GIO, where the application sends + a request to the graphics server and reads back the response. The + pseudofile i/o system buffers messages in the graphics streams in + the CL and in order to support bidirectional transfers it is + necessary to cancel the i/o buffer for the graphics stream to + prepare for a possible response. No bug was found in this code, but + what was happening was that when a control message was sent to + PSIOCTRL a request such as close-workstation would write the GKI + request to the graphics stream; this stream is just a file buffer in + the CL and any data written there is not passed to the graphics + subkernel until the subkernel reads from its input stream. In most + circumstances subsequent graphics output would cause the buffered + control request to be passed on to the subkernel and this is what + was happening in versions of IRAF prior to 2.10.3. The addition of + the cancel-stream statements in 2.10.3 would cause these buffered + control requests to be discarded. In the case of imdkern the kernel + would never see the close-workstation request, and the output would + not be flushed until an event occurred such as shutting down the + kernel with gflush. + + The fix was to modify the PSIOCTRL handling in prpsio.x to push an + XMIT request on the psio control stack, to cause the buffered + control requests to be passed on to the subkernel in the next + iteration of the pseudofile i/o controller. (4/13) + +kifndnode.x +kignode.x +kilnode.x +kimapname.x + +kishownet.x +mkpkg + KI was modified to change the way logical node names are handled. + A logical node name is an environment variable which maps to a + node name from the dev$hosts table. Logical node names are used + to create symbolic links to physical node names, providing physical + node name independence, or to otherwise alias node names without + having to modify the hosts table. + + The initial implementation of this feature was dangerous as logical + node names and other environment variables share the same name + space and inadvertent name collisions could occur. The fix was to + require a special syntax to define a logical node name: an environment + variable is treated as a logical node name only if the node delimiter + character "!" is appended to the value string. For example, "set + alpha = foo.bar.edu!" would define logical node alpha to be the same + as foo.bar.edu. (4/13) + +unix/hlib/motd + Version number incremented to V2.10.4BETA. (4/13) + +sys/fmtio/evvexpr.gy + This routine was modified as follows to fix bugs seen in IMEXPR. + 1. There was a bug affecting binary scalar/vector boolean operations + where the vector operand was the second operand: the type conversion + would fail if the vector operand was of type boolean. The routine + xvv_boolop was modified to treat any input boolean operands as + integer (they are stored in expressions operands as integers anyway), + this avoids the special case and is a bit more general. The test + case used was the expression "(J <= 5 && I <= 10) ? 0 : a". + 2. xvv_quest was modified to permit int as well as bool for the + input conditional. A bug was fixed where the routine would fail + if the input conditional was a scalar but the data operands were + vectors; the code was assuming a vector conditional in this case. + For example, "(J <= 5) ? 0 : a" would fail, as (J <= 5) is a scalar + (J is a constant when evaluating the expression for a line). (4/14) + +sys/gio/gascale.x +sys/gio/grscale.x + These routines can modify or set a WCS but they were not setting + the WF_MODIFIED flag, a recent addition with the GUI support. This + fixes a problem first seen with IMPLOT where cursor reads would in + some cases print NDC coordinates instead of pixel coordinates. (4/15) + +sys/osb/miinelem.x + The miinelem routine was incorrectly rounding up to the next full + mii_type when computing the number of mii_type items that can fit in + a char array of a given length. (Bug reported by Phil Hodge May94). + (4/17) + +pkg/images/doc/fit1d.hlp + Added a description of the interactive parameter to the fit1d help + page (4/17 LED). + +sys/mwcs/mkpkg +sys/mwcs/mwsave.x +sys/mwcs/mwload.x + 1. The mw_save/mw_load routines are supposed to encode a MWCS in a + machine independent form and later restore it, but due to a bug the + encoded MWCS was not fully machine independent. mw_save uses pl_p2li + to compress the integer part of the MWCS descriptor, but mw_save + was using miipak32 to encode this for external storage. This is + incorrect since pl_p2li produces a type short rather than integer + array. The bug was harmless on big-endian machines like a Sun or + on any machine when the saved MWCS was read back on the same machine, + but would cause the saved MWCS to fail to load when tranferred to a + machine with a different architecture. The fixed code now uses + mii{pak,upk}16 to transform the data. mw_load can still read old + saved MWCS provided they were written on a machine of the same + architecture. + 2. mw_load now initializes the axis map to a 1 to 1 mapping as in + a call to mw_open to create a new MWCS (formerly the axis map + storage was zeroed following a mw_load). The axis map is not saved + and restored over a mw_save/mw_load sequence. (4/18) + +sys/mwcs/zzdebug.x + Added two new debug tasks "save" and "load". SAVE creates a dummy + MWCS, calls mw_save to encode it , and then saves it to a file + "mwcs.sav" in the current directory. LOAD calls mw_load to load + the named MWCS save file. Both routines call mw_show to display + the MWCS so that one can easily verify that it has been saved and + restored correctly. (4/18) + +sys/mwcs/iwewcs.x + The routine iw_enterwcs could set the RA axis incorrectly for a ra/dec + projection where the ra/dec axes were not axes 1/2 or 2/1 and the + CDELT keywords were used rather than the CD matrix. (4/18) + +sys/mwcs/imwcs.h +sys/mwcs/iwctype.x +sys/mwcs/iwpstr.x +sys/mwcs/mwcs.h +sys/mwcs/mwsaveim.x + The maximum number of WCS attributes was increased from 256 to 512. + The WAT and WSV keyword handling code was modified to permit more + than 999 keywords to be output; the format changes to omit the + underscore if the index value exceeds 999. These changes should be + backwards compatible while allowing more complex WCS to be stored. + (4/19) + +pkg/system/rename.x +pkg/system/rename.par +pkg/system/doc/rename.hlp + Modified the task to allow a destination directory to be specified + without changing the filename. A new "field" parameter option "all" + was added and made the default so the entire filename is changed (or + moved in the case of a destination directory). When field is set to + "extn" filenames without an extension will not have the new + extension appended so a filename isn't generated which can get + overwritten. (3/14/95 MJF 4/19 DCT) + +pkg/cl/builtin.c + Appending the output of a foreign task now works correctly; previously + it would overwrite any existing output file. For example, "ls >> foo" + will append the output of ls to file foo. The bug addressed here + affected only explicit redirection of the output of a foreign task. + Previous version of the CL would correctly redirect the output of a + foreign task so long as the task was called indirectly, e.g. from + within a CL script. (4/19) + +sys/etc/oscmd.x + Added clobber checking for the output redirection files if any. + (4/19) + +unix/shlib/mkshlib.csh + We had another one of those nasty occurrences where the iraf shared + library is rebuilt and suddenly nothing runs anymore (this happened + after the trivial modifications to oscmd.x above). The problem was + traced to the setting of the "environ" pointer in low shared image + memory by vlibinit when the shared image is mapped by zzstrt. The + environ variable is part of the Sun startup code and is one of the + first objects linked into the shared library image. The problem was + that the data for this variable was located in the end of the last + page of text, but since the text was mapped readonly a segvio would + occur when attempting to write to this variable. The fix, at least + for the moment, was to add a ".align 4096" to the end of V.s to + force the data segment to be aligned to a page boundary. (4/20) + +sys/imio/iki/stf/stfdelete.x + stfdelete now checks to see if the pixel file exists before trying + to delete it. It is not considered an error if there is no pixel + file. (4/20) + +pkg/cl/config.h + Doubled the size of the stack and dictionary. (4/21) + +unix/hlib/zzsetenv.def + The default printer and stdplot devices were changed to "lp", which + on unix systems is the default line printer device. If the user + has PRINTER set in their host environment IRAF printer output will + be directed to the user specified device. The default printer + device may still be overridden from within IRAF by setting an + environment variable or via a parameter override. (4/28) + +unix/hlib/libc/kernel.h +unix/os/zawset.c + A number of changes were made to ZAWSET (called by BEGMEM) to improve + memory utilization for IRAF tasks that request and use very large + amounts of memory. These changes should be backwards compatible and + the usages of ZAWSET and BEGMEM were not changed. + + 1. Modified to make it easier to determine whether the setrlimit + code is used on different platforms. + 2. Removed the setrlimit that was being performed at process + initialization time to set the soft limit on a processes memory. + It is questionable whether this should be limited by default on + modern systems which are mostly personal workstations, and it + is better to use the "limit" command in the CSH (or equivalent) + to do this outside of IRAF, under user control. + 3. In kernel.h, increased the default WSS to 8 Mb and the builtin + max WSS to 256 Mb. These values are used only on platforms where + ZAWSET can't determine the value from the UNIX kernel, e.g. using + getrlimit. Assuming MAXWORKSET is not defined (see below) the + max WSS value compiled into the IRAF kernel, e.g. 256 Mb, will + however serve as an upper limit on the amount of memory reported + as available to an IRAF task. + 4. Added support for an environment variable "MAXWORKSET". This + value if defined sets an upper limit on the working set reported + to a task via ZAWSET (or BEGMEM). This can be used to override + the builtin upper limit. If the platform supports getrlimit and + a memoryuse limit is defined which is less than MAXWORKSET, the + getrlimit value will be used instead: this the current limit, + as opposed to the maximum limit. The units of MAXWORKSET are Mb, + e.g. "setenv MAXWORKSET 32" sets the maximum working set to 32 Mb. + Since MAXWORKSET is used by the host-level kernel code it must be + set in the host environment, not in IRAF. + + A quick survey of SunOS, Solaris, and OSF/1 shows that the system + default getrlimit returns the amount of available physical memory + (57 Mb) on OSF/1, but an "unlimited" value (2 Gb) on the Sun systems. + The OSF/1 value is what zawset ideally wants to return, i.e. the + maximum amount of physical memory available to the process before + paging occurs. This can be difficult to determine on many unix + platforms and currently the builtin kernel limit of 256 Mb will be + what is returned on platforms like SunOS/Solaris that don't report + the physical memory value. With further research we may be able to + find a way to do reliably return the correct value on platforms + like Sun, however this can be a very system dependent feature to + implement. In the meantime the MAXWORKSET environment variable, + or "limit" in the cshell (etc.) can be used to fine tune ZAWSET on + platforms that can't determine the max physical memory. (5/02) + +unix/hlib/zzsetenv.def + Changed "gterm" to "xgterm" for the default values of stdgraph + and terminal. (5/03) + +sys/gio/fpequald.x +sys/gio/fpequalr.x + The comparison could fail if either operand was zero and the other + was a very small nonzero number. (5/10) + +------------------------------ +V2.10.4 distribution (beta test for the NOAO servers) prepared. (5/10/95) + +unix/hlib/login.cl + Added a note about the trailing "!" needed for "set node =" in + V2.10.4. (5/11) + +sys/etc/xerpop.x +unix/hlib/libc/libc.h + Changed the C construct {XERPSH();stmt;}if(XERPOP()) to + {XERPSH();stmt;}if(XERPOPI()), and added a new routine XERPOPI to + xerpop.x. The original construct was incorrect as it was treating + the result of the boolean function xerpop() as an integer. (5/12) + +------------------------------ +V2.10.4 distribution upgrade prepared. (5/14) + +pkg/cl/scan.c + Fixed a nasty bug in the scan code affecting scans into a string + parameter; the string buffer was being improperly referenced. This + bug has been in place since the scan code was modified on 12/29/94 + but evidently was never seen as IRAF is not exercised enough on + tucana. Showed up right away when V2.10.4 moved to the user nodes. + (5/15) + +unix/os/zawset.c + On Solaris it turns out that setrlimit, when used to set the soft + memory limit, sets a hard limit on memory allocation for the process, + causing malloc requests to fail if the set limit is exceeded. This + is not really the point of begmem/zawset, so the code was modified + to only call setrlimit if one attempts to increase the current "soft" + memory limit. Requests for less working set than the soft limit + do not result in a call to setrlimit, and the routine merely indicates + that the requested space is available. (5/15) + +unix/hlib/zzsetenv.def + Updated "version" to 2.10.4EXPORT. (5/19) + +unix/hlib/spy.cl + Rewrote spy.cl to work on both BSD and SYSV systems (SunOS and + Solaris in the case of Solaris/IRAF). (5/19) + +------------------------------ +V2.10.4 distribution upgrade prepared. (5/21) + +dev/hosts + Added Tod Lauer's machine seurat to hosts file on all servers (5/25 MJF) + +sys/imio/db/imgnfn.x + This code supported, for keyword selection, only naxis[1-3]. Added + support for axes up to 7. (5/26) + +sys/fmtio/evvexpr.gy + 1. Modified the conditional expression code (xvv_quest) to consider + the dimension of the condition operand as well as that of the two + data operands when computing the dimension of the expression result. + For example, if the condition is a vector but the two data operands + are scalars, the expression result should be a vector (formerly it + was a scalar). The datatype of the expression is still determined + solely by the datatypes of the two data operands. + 2. The condition operand for a conditional expression may now be any + integer type, i.e. short or long as well as int, in addition to bool. + If int is permitted it doesn't make much sense to exclude short and + long. + 3. The logical not code (e.g. "!a") was modified to permit integer + class operands (short, int, long) as well as boolean. (5/27) + +------------------------------ +V2.10.4 distribution upgrade prepared. (5/29) + +dev/hosts + Corrected path name to irafks.e for pyxis on all servers (5/31 MJF) + +dev/hosts + Added lonestar and tribble to all downtown servers (6/6 MJF) + +------------------------------ +IRAF V2.10.4 system copied to iraf.export and V2.11 development begun. (6/12) + +unix/hlib/motd +unix/hlib/zzsetenv.def + Develop system version number incremented to V2.11. (6/12) + +pkg/images/geometry/t_geotran.x +pkg/images/geometry/geotran.x +pkg/images/geometry/geotimtran.x + Fixed a bug in the buffering of the x and y coordinate surface + interpolants which can cause a memory corruption error if, the + nxsample or nysample parameters are > 1, and the nxblock or nyblock + parameters are less than the x and y dimensions of the input image. + Took the opportunity to clean up the code. (6/13/95, LED) + + +pkg/math/curfit/cvpower.gx +pkg/math/curfit/cvpowerr.x +pkg/math/curfit/cvpowerd.x +pkg/math/curfit/doc/curfit.hd +pkg/math/curfit/doc/curfit.men +pkg/math/curfit/doc/cvepower.hlp + Added the new routine cvepower to the curfit math library. Cvepower + computes the errors in the power series coefficients equivalent + to the fitted Legendre and Chebyshev coefficients. Cvepower is + available in both real and double precision versions. (6/13/95, LED) + + +pkg/images/fmedian.hlp +pkg/images/fmode.hlp +pkg/images/median.hlp +pkg/images/mode.hlp +pkg/images/fmedian.par +pkg/images/fmode.par +pkg/images/median.par +pkg/images/mode.par +pkg/images/filters/fmedian.h +pkg/images/filters/fmode.h +pkg/images/filters/median.h +pkg/images/filters/mode.h +pkg/images/filters/t_fmedian.x +pkg/images/filters/t_fmode.x +pkg/images/filters/t_median.x +pkg/images/filters/t_mode.x +pkg/images/filters/fmedian.x +pkg/images/filters/fmode.x +pkg/images/filters/median.x +pkg/images/filters/mode.x +pkg/images/filters/fmd_buf.x +pkg/images/filters/fmd_hist.x +pkg/images/filters/fmd_maxmin.x +pkg/images/filters/med_buf.x +pkg/images/filters/med_sort.x + Added minimum and maximum good data parameters to the fmedian, fmode, + median, and mode filtering tasks. Removed the 64X64 kernel size limit + in the median and mode tasks. Replaced the common blocks with + structures and .h files. (6/20/95, LED) + +pkg/images/frmedian.hlp +pkg/images/frmode.hlp +pkg/images/rmedian.hlp +pkg/images/rmode.hlp +pkg/images/frmedian.par +pkg/images/frmode.par +pkg/images/rmedian.par +pkg/images/rmode.par +pkg/images/filters/frmedian.h +pkg/images/filters/frmode.h +pkg/images/filters/rmedian.h +pkg/images/filters/rmode.h +pkg/images/filters/t_frmedian.x +pkg/images/filters/t_frmode.x +pkg/images/filters/t_rmedian.x +pkg/images/filters/t_rmode.x +pkg/images/filters/frmedian.x +pkg/images/filters/frmode.x +pkg/images/filters/rmedian.x +pkg/images/filters/rmode.x +pkg/images/filters/med_utils.x + Added new ring median and modal filtering tasks frmedian, rmedian, + frmode, and rmode to the images package. (6/20/95, LED) + +doc/ports/notes.osf1 + + Added notes file from DEC Alpha OSF/1 port. (6/21) + +sys/fio/fioclean.x +sys/fio/stropen.x + Two new internal routines str{set,get}mode were added to stropen.x. + These are used to set or query the file access mode as stored for + the string file, which represents these in a file-dependent way. + fio_cleanup was modified to force the access mode of a string file + to READ_ONLY before closing it during file cleanup, to prevent the + writing of the trailing EOS when closing a string file opened for + writing. The latter could cause a segmentation violation if the + string buffer was no longer in a mapped region of memory, as is + possible if the string file is still open (i.e. not closed normally) + following task termination when fio_cleanup is called. This problem + was found when testing the OSF/1 version of IRAF. (6/21, merged from + OSF1 revision of 6/06) + +dev/termcap + Added "lp" as an alias for "lpr". (6/26) + +dev/hosts + Added solstice to the downtown servers (tucana,ursa,gemini,orion,bigx) + at Ed Anderson's request (6/26 RLS) + +unix/hlib/mkpkg + Changed "mkshlib.csh" references to "./mkshlib.csh" to make the + script more robust in cases where the user has the path screwed + up. (7/03) + +dev/tapecap + Added support for device mtc|mtcc for BIGX, an HPDAT drive using the + ST driver. Also generic device st-hpdat, the HPDAT on ST. (7/18) + +dev/hosts + Added aten, volans, & musca to all servers, deleted vegemite (7/18 MJF) + +dev/hosts + Added soleil to all downtown server at Ed Anderson's request. (7/27 MJF) + +sys/fmtio/strdic.x + Was not ignoring leading whitespace on the string to be tested, when + computing the length "len" of the string. (7/31) + +pkg/proto/t_wcsreset.x + Added an error check to the mw_openim command so wcsreset can erase + the world coordinate systems of images with wcss that it cannot + read correctly. (1/8/95, Davis) + +pkg/xtools/inlfit/incopy.gx +pkg/xtools/inlfit/incopyr.x +pkg/xtools/inlfit/incopyd.x + Changed 4 MEMP (Memi) references to Mem$t references. (02/8/95, Davis) + +dev/tapecap + Modified gemini entry to change WangDat to an HP drive. (8/10) + +sys/fio/zzdebug.x + Replaced the t_ndopen debug task by a more recent version. (8/28) + +lib/gio.h +sys/gio/gplcache.x +sys/gio/gctran.x + The WCS transformation caching mechanism used in gctran was not + reliable and could fail in some cases where the WCS was changed more + frequently than gctran was called. To make caching of WCS related + information more robust a new field GP_WCSORD was added to the GIO + descriptor. This is set to a unique integer ordinal when a WCS is + fixed. If the ordinal changes any routines that cache WCS information + should invalidate their cache (unless they cache it on the basis of + WCSORD). WCSORD will differ for WCS stored in different graphics + descriptors, so testing WCSORD also does an implicit test that the + GP has changed. (8/28) + +sys/mwcs/iwewcs.x + Modified so that if an image contains a partial Lterm consisiting + of an LTV but no LTM, the missing LTM will default to the identity + matrix instead of the zero matrix (the latter causes a segvio if you + try to invert it). An image with a zero LTM is illegal but MWCS + should not die with a segvio in this case. (8/29) + +sys/imio/immaky.x +sys/imio/mkpkg + When copying an image section IMIO will call MWCS to update the Lterm + of the output image. This requires that it load any existing WCS + so that it can be modified and written out to the output image. IMIO + was modified to put the mw_open in an iferr block, printing a warning + message if the WCS cannot be loaded, rather than aborting the immap. + Aborting means that all IRAF imaging tasks fails to access the image + if it contains a WCS of a type not supported by IMIO. (8/29) + +sys/mwcs/iwgbfits.x + The code which reads in multiline FITS strings (WATi_j etc.) would + always read 68 characters per card. This was changed to read at + most 68 characters, terminating if newline, EOS, or a single closing + quote is seen in the input data. This allows the string on a line to + be less than 68 characters. It also avoids a bug seen with non-blocked + headers where the cards may contain less than 80 characters. (8/29) + +sys/mwcs/iwpstr.x + The final card of a multi-card string is no longer blank filled, i.e. + the closing quote will appear at the end of the string instead of in + column 80. (8/30) + +sys/mwcs/mwsaveim.x + The code which puts spaces between a sequence of attribute=value + keywords in a WCS attribute list was improved to avoid an unnecessary + space at the end of the list (spaces are now only used between the + members of the list). (8/30) + +sys/imio/db/impstr.x + When writing a string valued parameter the code checks for a trailing + quote and tries to add one if it is missing. The closing quote is + omitted if it would overwrite a data character - it isn't required + when reading cards unless the string ends before column 80. (8/30) + +sys/mwcs/mwsave.x + The DBUF offset in the save header was not being aligned to double. + (8/30) + +------------------------------------- +V2.10.4 patch 1 generated. (8/30) + +doc/rev2.hlp + Renamed this file to rev2.txt, it is not a help file. (9/03) + +unix/boot/bootlib/osfiletype.c + Added ".gz" to the list of "source" file types. Also added ".fit" + as an alias for ".fits". (9/03) + +mkpkg +noao/mkpkg + Added entries for linux and linuz architectures. (9/06) + +unix/hlib/strip.iraf +noao/lib/strip.noao + Replaced by updated versions, some files moved around and others + have been added. (9/06) + +local/.cshrc + Added "." and moved /usr/lang up in the hierarchy. (9/21) + +hlib/extern.pkg + Added the helpdb for the finder package on gemini and ursa. The + package is still loaded through the nlocal package. (10/12 RLS) + +sys/mwcs/imwcs.h + CROTA was being stored internally as an integer, causing small + truncation errors of non-integral rotational angles. (10/18) + +dev/graphcap +dev/imtoolrc + Added a new 8192x8192 frame buffer (imt7|imt8192). Redefined the + old imt7 (imt4x1) as imt19. (11/01) + +pkg/images/tv/imexamine/ierimexam.x +pkg/images/tv/imexamine/stfmeasure.x + +pkg/images/tv/imexamine/starfocus.h + +pkg/images/tv/imexamine/mkpkg +pkg/images/tv/doc/imexamine.hlp +lib/src/imexamine.key + New FWHM estimates based on the enclosed flux and a direct + measurement were added to the 'a' and 'r' keys. The weights for + the Gaussian fit were modified to reduce the influence of pixels + outside the half-maximum radius. The ? help and help page were + revised to described the new output and algorithms. (11/09) + +dev/hosts + Added 'inti' to all downtown servers. (11/20 MJF) + +pkg/images/median.par +pkg/images/rmedian.par +pkg/images/mode.par +pkg/images/rmode.par +pkg/images/fmedian.par +pkg/images/frmedian.par +pkg/images/fmode.par +pkg/images/frmode.par +pkg/images/doc/median.hlp +pkg/images/doc/rmedian.hlp +pkg/images/doc/mode.hlp +pkg/images/doc/rmode.hlp +pkg/images/doc/fmedian.hlp +pkg/images/doc/frmedian.hlp +pkg/images/doc/fmode.hlp +pkg/images/doc/frmode.hlp +pkg/images/filters/t_median.x +pkg/images/filters/t_rmedian.x +pkg/images/filters/t_mode.x +pkg/images/filters/t_rmode.x +pkg/images/filters/t_fmedian.x +pkg/images/filters/t_frmedian.x +pkg/images/filters/t_fmode.x +pkg/images/filters/t_frmode.x + Added a verbose parameter to the median, rmedian, mode, rmode, fmedian, + frmedian, fmode, and frmode tasks. (11/27/95, Davis) + +dev/hosts + Corrected path to irafks.e for cephus on all servers (11/30 MJF) + +unix/boot/spp/xpp/xppcode.c + Modified XPP to make keyword recognition case sensitive. Keywords + such as "int", "char", "procedure", etc. must be lower case to be + recognized. This permits macros to use the upper case versions of + these keywords. (12/05) + +pkg/cl/debug.c + Added INDXINCR and PUSHINDEX to the debug code. (12/14) + +pkg/cl/builtin.c +pkg/cl/compile.c +pkg/cl/debug.c +pkg/cl/exec.c +pkg/cl/grammar.y +pkg/cl/main.c +pkg/cl/opcodes.c +pkg/cl/opcodes.h +pkg/cl/prcache.c + 1. Fixed minor bugs in the CL array code which showed up on the 64bit + DEC Alpha. The array code had builtin assumptions about the size of + structures stored in CL memory, but on 64 bit systems the CL stack + and dictionary have a 64 bit memel size, rather than 32 bit. + + 2. Added a new builtin "d_trace" which permits instruction and + process tracing during execution. Typing d_trace without any + arguments toggles this feature. An optional argument 0 or 1 may be + used to disable or enable instruction tracing. A source line trace + feature might have been nicer, but instruction tracing should still + be of use for tracking down bugs in scripts, or otherwise revealing + what is going on when the CL executes a task. (12/16) + +sys/fmio/zzdebug.x + Added a parameter to the create datafile task to allow specification + of FM_MAXPTPAGES (max page table pages), for testing large datafiles. + (12/18) + +dev/hosts + Added new solaris machine oso to all servers. (1/29/96 MJF) + +pkg/images/imarith/imexpr.gx + Modified imexpr so that it will accept an image name that looks like + a number in the first few characters, but which is really an image + name. For example, "123.imh" or "../foo.imh". The previous version + of imexpr was treating any string which looked like a number in the + first few characters as a numeric constant. (2/8/96 LED 2/14 DCT). + +dev/hosts + Eliminated all references to /gemini and /ursa since all machines + have been updated such that /iraf is the correct path. Merged all + changes from other servers to tucana so all hosts files are now + identical, new machines added include ozzie, verdi, corondito and + pearl.kpno. Backups of previous files will be maintained. (2/14 MJF) + +pkg/images/geometry/t_geotran.x +pkg/images/geometry/geograph.x +pkg/images/doc/geomap.hlp + Corrected the definition of skew in the routines which, compute the + geometric interpretation of the 6-coefficient fit, compute the + coefficients from the geometric parameters, and in the relevant help + pages. (2/19/96, LED) + +sys/fio/zzdebug.x + Spiffed up the "daytime" debug/test task to permit entry of a host + name, so that one can use this to find out what time it is at some + site halfway around the world. (2/23) + +pkg/images/tv/imexamine/iejimexam.x +pkg/images/tv/jimexam.par +pkg/images/tv/doc/imexamine.hlp + There were several errors in this which only showed up when using a + world WCS. The parameter prompt and help now indicate the initial + sigma value is in pixels even when fitting in world coordinates. + (2/27/96, FV) + +pkg/images/tv/imexamine/iemw.x + The inverse WCS function was incorrect and is fixed. (2/27/96, FV) + +pkg/dataio/doc/rfits.hlp + Added a note about support for unsigned short integers to the + rfits help page. (2/27/96, LED) + +pkg/xtools/icfit/icvshow.gx +pkg/xtools/icfit/icshow.x +pkg/xtools/icfit/icerrors.gx + All output except the tabular part of :xyshow now begins with + the comment character. (2/29, Valdes) + +pkg/utilities/curfit.gx + Removed repeated output and added a comment character to the table + header line. (2/29, Valdes) + +dev/hosts + Changed GONG machines soi/mdi to use bin.ssun after solaris upgrades. + (3/8/96 MJF) + +sys/fmio/fmio.h +sys/fmio/fmlfopen.x +sys/fmio/fmlfbwr.x +sys/fmio/fmlfbrd.x +sys/fmio/fmioextnd.x +sys/fmio/fmclose.x + 1. Changed the lfile pagemap (LF_PAGEMAP) from type short to int. + This is entirely an internal array, created at lfile open time from + the global pagemap, and never written out, so there should be no + problem changing the datatype of the array. A type short lfile + pagemap limits the maximum datafile size by limiting the max file + offset to 32K datafile pages. This is not a problem for the global + page table as the global table stores the lfile number in each PTE, + with the offset of the PTE entry giving the associated file offset + (page number). + 2. Increased the default lfile pagemap size and increment on + overflow. (3/11) + +lib/qpset.h +sys/qpoe/qpoe.h +sys/qpoe/qpstati.x +sys/qpoe/qpseti.x +sys/qpoe/qpopen.x +sys/qpoe/qpmacro.x +sys/qpoe/qpbind.x + Added a new parameter "maxptpages" (QPOE_MAXPTPAGES) to QPOE. This + is a datafile control parameter similar to "maxlfiles" or "pagesize". + The pagesize and matptpages together determine the maximum datafile + size. In the past we have had to increase the pagesize to accomodate + very large datafiles, but beyond a certain point it is better to + increase the maximum page table size (maxptpages). Since QPOE files + can be very large it is necessary to allow control of this parameter + from within QPOE. (3/11) + +dev/hosts + Added Doug Geisler's machine kukita to all servers. (3/11/96 MJF) + +sys/fmtio/dtoc.x + Added some rounding to avoid printing numbers such as 12:29:60.0 + when formatting sexagesimal (HMS or MS) numbers. (3/12) + +sys/mwcs/iwewcs.x + Modified the code which computes the CD matrix from CDELT/CROTA. + The old code computed the diagonal (scale) terms correctly but the + rotation terms were evidently incorrect. The old code was based on + the 1988 Hanisch and Wells WCS paper and the new code is based on a + more recent paper by Mark Calabretta et. al. which supercedes the + 1988 representation. The affect of this change should be limited + as it only affects rotated images for which CDELT is given but no + CD matrix is defined. (3/13) + +pkg/images/tv/src/iecolon.x +pkg/images/tv/src/starfocus.h +pkg/images/tv/src/stfmeasure.x +pkg/images/tv/src/ierimexam.x +pkg/images/tv/rimexam.par +pkg/images/doc/imexamine.hlp +lib/scr/imexamine.key + The radial profile fitting and width measurements now have an option to + use a Gaussian or Moffat profile model. The model is selected by a + new "fittype" parameter. A new "beta" parameter may be specified as + INDEF to be determined from the fit or have a fixed value. The Moffat + profile model does better in producing consistent FWHM values so + this is the default. (3/16, Valdes) + +math/gsurfit/gsrestore.gx +math/gsurfit/gsrestorer.x +math/gsurfit/gsrestored.x + Changed the type declaration of the xmin, xmax, ymin, ymax variables + from real to PIXEL to avoid machine precision problems. (3/21 Davis) + +pkg/cl/builtin.c + Modified the clprintf code to support INDEF operands. (3/23) + +pkg/images/tv/imedit/epsearch.x +pkg/images/tv/imedit/epgcur.x + 1. The search algorithm produced incorrect results if part of the + aperture was off the edge (negative image coordinates). + 2. The rounding was incorrect when part of the aperture was off the + edge (negative image coordinates). + 3. A floating operand error occurs when a key is given without + coordinates. + (3/26, Valdes) + +pkg/plot/t_implot.x + When the vector being plotted was constant the 'l' and 'c' keys + selecting lines/columns from the right plot axis did not work. The + code was fixed for this case. (3/27, Valdes) + +pkg/images/geometry/xregister/rgxfit.x + Changed several Memr[] references to Memi[] in the rg_fit routine. + This type conversion bug was causing a floating point error + in the xregister task on the Dec Alpha machines if the coords file + was defined, and could potentially cause problems on other machines. + (Davis, April 3, 1996) + +unix/os/gmttolst.c +unix/boot/bootlib/ostime.c + Removed the type long variables gmtl, lstl and modified all calls to + localtime() so that the argument is of type time_t. This is standard + for all modern systems. Some older systems still require that the + argument be type long, but as this is nonstandard it should be + ifdef-ed in the source for these older systems. (4/04 1996) + +unix/hlib/libc/libc.h + The macros Memcptr and Memiptr included a "+ 1" which shouldn't have + been there. The one indexing correction was already being done in + the Memc/Memi macros and Memcptr/Memiptr take a zero indexed C pointer + as input. This was causing a bug in LIBC version of realloc, which + is not used anywhere in the IRAF system code. (4/05) + +pkg/images/tv/imexamine/ierimexam.x +pkg/images/tv/imexamine/stfmeasure.x + Fixed incorrect datatype declaration "real np" -> "int np" in various + related places. (4/9/96, Valdes) + +unix/os/zmain.c + Added a #ifdef SYSV conditional to change the calling sequence for + setpgrp() for SYSV and BSD systems. (4/24) + +sys/imio/iki/plf/plfopen.x + Fixed an imerr() call which had the wrong argument type. (5/06) + +sys/libc/realloc.c + Modified to work when called with a null pointer. (5/06) + +sys/gio/stdgraph/stgdrawch.x + The text drawing routines were not controlling the polyline width + when drawing characters in software mode using polylines. There is + no line width attribute for graphics text and we probably don't want + one, so the code was modified to force the line width to 1 when + drawing software characters. (5/10) + +unix/boot/bootlib/osgetenv.c + The envinit code calls _os_getenv to fetch the value of "pkglibs". + This code assumes that _os_getenv returns the string argument, but + nothing was being returned if the named environment variable was not + found. Changed it to return a NULL-terminated empty string in this + case. (5/10) + +sys/etc/mkpkg +sys/etc/onentry.x +sys/etc/main.x +unix/os/zmain.c + 1. The IRAF main (irafmn) was changed to an integer function and + modified to return an exit status. If a task aborts and the main + exits without running any more tasks (as when executing a task at + the host level where only a single task is run) then the error status + of the task is returned. In normal use as a connected process this + condition never occurs and the main always returns XOK as the status. + + 2. Several calls to sys_panic in various etc$ routines were modified + to ensure that a zero error code is not returned. sys_panic returns + the error code as the exit status of the process. + + 3. The process main (zmain.c) was modified to call IRAF_MAIN as an + integer function and to return its exit status. + 4. The call to exit() in zmain.c was changed to _exit(). (5/11) + +pkg/plot/t_graph.x +pkg/plot/graph.par +pkg/plot/doc/graph.hlp + Added parameters "ltypes" and "colors" to specify a list of line types + and colors when doing multiple data sets. (5/13, Valdes) + +---------------------------------------- +V2.10.4 patch 2 release. (5/22 1996) + +unix/boot/bootlib/envinit.c + Fixed a typo in some code that went "printf (stderr, ...)" (should be + fprintf), also changed following fflush to flush stderr. (5/27) + +unix/boot/bootlib/vfn2osfn.c + Deleted some unneeded semicolons from some stub routines, e.g. in + "KI_SEND(){};" the ; should not be there. (5/27) + +unix/boot/generic/mkpkg.sh +unix/boot/mkpkg/mkpkg.sh +unix/boot/rmbin/mkpkg.sh +unix/boot/rmfiles/mkpkg.sh +unix/boot/rtar/mkpkg.sh +unix/boot/wtar/mkpkg.sh +unix/boot/spp/mkpkg.sh +unix/boot/spp/mkxc.sh +unix/boot/rpp/mkpkg.sh +unix/boot/xpp/mkpkg.sh +unix/boot/xyacc/mkpkg.sh + Replaced HSI_CF by HSI_LF in the link line (5/28) + +unix/hlib/irafuser.csh + Added a dummy definition of HSI_LF (not used in SunOS/IRAF but is + needed on other platforms). (5/28) + +unix/boot/rmfiles/mkpkg.sh + Added a (char *) declaration for vfn2osfn(). (5/28) + +pkg/cl/grammar.h +pkg/cl/globals.c + Added global definitions for parse_state, proc_script, and parse_pfile + to globals.c and modified grammar.h to define these as extern (found + with the IRIX 5.3 port). (6/03) + +pkg/obsolete/<imcombine> - + The old (V2.9) IMCOMBINE task was removed. (6/14 FV) + +pkg/obsolete/t_fixpix.x + +pkg/obsolete/fixcol.gx + +pkg/obsolete/t_fixline.gx + +pkg/obsolete/ofixpix.par + +pkg/obsolete/doc/ofixpix.hlp + +pkg/obsolete/mkpkg +pkg/obsolete/x_obsolete.x +pkg/obsolete/obsolete.cl +pkg/obsolete/obsolete.hd +pkg/obsolete/obsolete.men + Moved the V2.10.4 version of PROTO.FIXPIX to OBSOLETE and renamed + it to OFIXPIX. (6/14 FV) + +pkg/proto/generic/ + +pkg/proto/imfunc.x -> generic/ +pkg/proto/imrep.x -> generic/ + Added a generic directory for generic files. The generic procedures + imfunc.x and imrep.x are now in this directory. (6/14 FV) + +pkg/proto/t_fixpix.x +pkg/proto/fpfixpix.gx +pkg/proto/fixpix.par +pkg/proto/text2mask.par + +pkg/proto/t_text2mask.x + +pkg/proto/t_mask2text.x + +pkg/proto/doc/fixpix.hlp +pkg/proto/doc/text2mask.hlp + +pkg/proto/mkpkg +pkg/proto/x_proto.x +pkg/proto/proto.cl +pkg/proto/proto.hd +pkg/proto/proto.men + Replaced the old version of FIXPIX by a new version that works with + mask images. Two new tasks were also added, TEXT2MASK and + MASK2TEXT, that convert from the old text file description to mask + images and back. The MASK2TEXT task is hidden to discourage + continued use of the text file description. (6/14 FV) + +unix/boot/spp/xc.c + Fixed a couple bugs in the PKGENV processing code. (7/05) + +doc/ports/notes.irix + + Installed the notes file from the IRIX 5.3 port. (7/07) + +unix/os/irafpath.c + Added entries for Solaris, Linux, FreeBSD. (7/17) + +unix/os/zfaloc.c +unix/os/zfiobf.c + Changed type of lseek() to off_f. (7/17) + +unix/boot/spp/xpp/xppcode.c + Changed warn() to a static function. (7/17) + +mkpkg +noao/mkpkg + Added an entry for the "freebsd" architecture. (7/17) + +pkg/images/filters/median.x + The routine mde_yefilter was being called with too many arguments. + (7/18 LED) + +pkg/xtools/inlfit/ingresults.gx + Changed several INDEFR references to INDEF references so that INDEF + as the correct data type (real or double) in the output .x files. + (7/18 LED) + +sys/gio/fpequald.x +sys/gio/fpequalr.x + Backed off the tolerance slightly, from 10*EPSILON to 32*EPSILON. + (7/25) + +sys/imfort/bfio.x + In zfaloc, the first arg to strpak was changed from fname (a Fortran + character variable which was incorrect) to sppname. (7/17(26)) + +pkg/images/imarith/icsort.gx + There was an error in the ic_2sort routine when there are exactly + three images that one of the explicit cases did not properly keep + the image identifications. See buglog 344. (8/1 FV) + +dev/hosts + Revised the list of Kitt Peak hosts. (8/7 RLS) + +pkg/proto/fields.par +pkg/proto/doc/fields.hlp + Changed the default lines in FIELDS to an open upper limit. (8/22 FV) + +pkg/images/tv/imexamine/stfmeasure.x + Fixed bug in evaluation of enclosed flux profile in which the scaled + radius was used for the gaussian subtraction stage instead of pixels. + This does not currently affect IMEXAM because the scale is fixed + at 1. (8/29, FV) + +unix/os/zfnbrk.c + Modified this routine to ignore file or directory characters other + than those it considers to be file or directory name delimiters. + On platforms that permit it, the effect is to permit characters (such + as + and -) in filenames other than simple identifier characters. + There is no expectation at this point however that all IRAF code will + permit this. (9/03) + +dev/hosts + Updated the hosts file on all Tucson servers for rainbow, Jim + Deveny's new Sun. (9/10/96 jb) + +pkg/system/phelp.cl + Modified to copy the "template" argument into a local variable since + it is referenced twice in the script. (10/10) + +sys/fio/fioclean.x + The file descriptor was being accessed after the file had been + closed. (10/11) + +unix/os/zfiond.c + Added a ":<flag>" field to the ND network driver. The only protocol + flags currently supported are "text" and "binary". If "text" is + specified then the datastream is assumed to consist of byte packed + ascii text, and the driver will automatically convert to and from + SPP chars during i/o. (10/29) + +sys/fio/zzdebug.x + Added a new debug task "http". Given a hostname and a HTTPD-root + relative file path the task will connect to the HTTP server on the + given host and fetch the file at the given path. The output + consists of the HTTP/1.0 protocol header followed by a blank line + and the contents of the requested file. (10/29) + +pkg/images/tv/wcslab/t_wcslab.x +pkg/images/tv/doc/wcslab.hlp + Added an "overplot" option to append to a plot but with a different + viewport. (11/06/96 Valdes) + +pkg/images/imarith/t_imcombine.x +pkg/images/imarith/icombine.gx + Changed the error checking to catch additional errors relating to too + many files. (11/12/96, Valdes) + +dev/hosts + Added driftwood to all downtown servers. (11/18/96 MJF) + +dev/hosts + Updated block of KPNO hosts on solaris tree on Gemini. + This was up to date on development system. (11/19/96 RLS) + +sys/fmtio/sscan.x +sys/fmtio/fscan.x +sys/fmtio/clscan.x +sys/fmtio/scan.com + Modified scan.com to dimension scanbuf locally as SZ_SCANBUF instead of + SZ_COMMAND, in the process increasing the size from 1024 to 4096. + Modified sscan to check for overflow of the scan buffer. (11/19) + +sys/ki/ki.h + Increased maximum network hosts in the in-core host table from 128 to + 256. (11/21) + +pkg/images/tv/imedit/epgsfit.x +pkg/images/tv/imedit/epcolon.x +pkg/images/tv/doc/imedit.hlp +pkg/images/tv/imedit/imedit.par + Added a median background if the xorder or yorder is zero. + (11/22/96 Valdes) + +dev/hosts + Cleaned up the hosts table: Deleted + adonis aldebaran auriga + columba crater irafdemo + libra noctua octans + omega serpens suntest + verdi vela + Fixed path names for mytoy and scorpius (11/21/96 MJF) + +pkg/images/imarith/icsetout.x +pkg/images/doc/imcombine.hlp + A new option for computing offsets from the image WCS has been added. + (11/30/96 Valdes) + +pkg/images/tv/display/sigm2.x + + Added a version of the spatial interpolation routines that allows masks + to interpolate the input across bad pixels. (12/5/96, Valdes) + +pkg/images/tv/display/t_display.x + 1. Fixed numerous problems with the coordinate system. + 2. Fixed a bug in how ztrans=log was done. + (12/5/96, Valdes) + +pkg/images/tv/display/iishdr.x +pkg/images/tv/display/iisers.x + Replaces SPP int -> short assignments by calls to achtiu because of + overflow problems with some VMS fortran compilers. + (12/6/96, Valdes as reported by Zarate) + +pkg/images/tv/display/imdmapfr.x +pkg/images/tv/display/imdputwcs.x + + Added two routines to hide knowledge of the channel structure and + other details from the calling routines. (12/11/96, Valdes) + +dev/hosts + Changed hohokam to ssun, updated all servers w/ master copy from + tucana to remove hosts and fix /gemini path names. (1/7/97 MJF) + +dev/hosts + Changed the following SWN machines to bin.ssun: + aquarius aten bokchoy + carina (new) hedgehog herbie + inti mdi potosi + soi soleil + Updated all servers. (1/15/97 MJF) + +pkg/xtools/dttext.x + Added the routine dtgetd to the text database package. (1/16/97 LED) + +dev/hosts + Changed norma to a solaris box. (1/24/97 MJF) + +unix/boot/bootlib/osfiletype.c + Added several entries for files considered to be "source" files. + These include .pl, .gif, .jpeg, and .tiff (.fits is already present). + There are cases where it may make sense to include these files in + the machine indendent source tree, e.g. for small test data files + or for online help. (1/11) 1997 + +dev/hosts + Added George's linux box aloe to all servers. (2/13/97 MJF) + +unix/boot/spp/xpp/decl.c +unix/boot/spp/xpp/xppcode.c + The recent change of warn() to static in xppcode.c caused a problem + as warn is also used in decl.c. Changed warn() back to an external + function but changed the name to xpp_warn to avoid whatever the + platform-specific problem was that resulted in the original fix + (probably warn was an internal function in some platform system + library). (3/03) + +sys/mwcs/wfmspec.x + On line 327, changed din=log10(in[1]) to din=log10(din). (3/04) + +-------------------------------- +Did a diff/merge of recent tucana HSI changes into the Solaris/IRAF HSI. +Replaced the "unix" directory on tucana SunOS/IRAF by the version from +Solaris/IRAF. This HSI is supposed to work for both SunOS and Solaris +(SunOS compatibility was preserved but never tested during the Solaris/IRAF +port). Did a bootstrap and sysgen under both SunOS and Solaris. + +Mounted tucana iraf.develop as iraf.develop on Data. tucana iraf (irafx) +is now solaris/iraf as well as sunos/iraf, they are the same thing. One +benefit of this is that irafx is now available on solaris systems in the +building (although we do have to update the ssun binaries periodically or +it does no one any good). A complication is that since we have to update +the ssun binaries, it is now more likely that the architecture may be set +to something other than sparc. (3/19 1997) + +local/.cshrc +local/.login + Modified to work for both SunOS and Solaris. (3/19) + +unix/as.sparc/enbint.s + This file from Solaris/IRAF isn't used by SunOS/IRAF, but it is + probably better to provide it in the library than to add conditionals + to the build files in OS. (3/19) + +unix/boot/bootlib/osfiletype.c +unix/boot/bootlib/vfn2osfn.c +unix/boot/spp/xpp/decl.c +unix/boot/spp/xpp/xppcode.c +unix/hlib/libc/kernel.h +unix/os/irafpath.c +unix/os/zfaloc.c +unix/os/zfiobf.c +unix/os/zfiomt.c +unix/os/zfiond.c +unix/os/zlocpr.c +unix/os/zzstrt.c + Assorted minor changes to make these files work for both SunOS + and Solaris. (3/19) + +unix/shlib/medit.c +unix/shlib/mkpkg +unix/shlib/mkpkg.sh +unix/shlib/mkshlib.sos4 +unix/shlib/mkshlib.ssol +unix/shlib/mkshlib.ssol-sc34 + Various file modifications and file name changes to make shlib + build for both SunOS and Solaris. (3/19) + +pkg/math/curfit/cvacpts.gx +pkg/math/curfit/cvacptsr.x +pkg/math/curfit/cvacptsd.x +pkg/math/curfit/doc/cvpower.hlp +pkg/math/curfit/cvpower.gx +pkg/math/curfit/cvpowerr.x +pkg/math/curfit/cvpowerd.x + The weights computed by the WTS_CHISQ option in the routines + cvacpts[rd] were not being forced to be positive as intended. (3/20) + + There was an inconsistency in the way the ncoeff argument to the + cvpower[rd] routines was being used internally. Ncoeff was intended + to be an output argument but was being used as an input argument by + one of the routines called by cvpower. (3/20) + +sys/mtio/mtgtyopen.x + MTIO was modified to add support for server-specific tapecap files. + When opening the tapecap file MTIO will now look for "tapecap.<node>" + followed by the default "tapecap". <node> should be the hostname + (as used by IRAF networking) of the server hosting the tape drives + described by the tapecap file. For example if host "gemini" serves + up some tape drives it's tapecap file is named "tapecap.gemini". + If a server-specific tapecap file is not found the default "tapecap" + (on the possibly remote server node) is used. This feature allows + a single IRAF installation to be shared by multiple servers. (3/21) + +dev/README +dev/tapecap.sunos + +dev/tapecap.solaris + + Since the Sun/IRAF DEV is now shared by both SunOS and Solaris it + now contains the template tapecap files for both systems. The README + in DEV contains some pointers on configuring tapecap and other device + files. (3/21) + +pkg/images/tv/display.par +pkg/images/tv/display/t_display.x +pkg/images/tv/display/zscale.x +pkg/images/tv/display/sigm2.x + +pkg/images/tv/display/maskcolor.x + +pkg/images/tv/display/dspmmap.x + +pkg/images/tv/display/display.h +pkg/images/tv/display/gwindow.h +pkg/images/tv/display/mkpkg +pkg/images/tv/doc/display.hlp + 1. Improved the structure of DISPLAY. + 2. Fixed coordinate system errors. + 3. Added parameters to display bad pixel masks and overlay masks. + 4. The z scaling sampling may use a pixel mask or image section. + 5. The z scaling excludes bad pixels. + (3/20, Valdes) + +-------------------------------- +The following series of revisions were made to increase the size of various +system buffers. This included a full system reboot and recompile. (3/24) + +lib/fio.h +sys/fio/vfnmap.x +sys/fio/vfntrans.x + Various buffer sizes affecting filename mapping were increased. + SZ_VFNFN (max length of the root field of a VFN) went from 32 -> 127. + SZ_OSDIR (max length of the osdir field of a VFN) from 79 -> 255. + SZ_FFNAME, an internal filename buffer, went from 127 -> 255. + In an unrelated change SZ_SPOOLBUF, the intial size of a spool + buffer, was increased from 1024 to 4096. (3/23) + +unix/hlib/config.h + 1. MAX_ROOTLEN was increased from 32 to 128. This is supposed to be the + limit the host system places on the root portion of a filename (that + is, only the root name, not the pathname). Anything in the range + 128-256 is typical for unix systems today. + 2. The maximum number of open VOS files was increased from 128 -> 256. + (3/23) + +sys/fio/fntgfn.x + SZ_PATTERN, SZ_TEMPLATE, SZ_LDIR, SZ_PATSTR were all increased, + although so far as I know there has never been a case of pattern + buffers overflowing. The new limit for a pattern string is about + 1024. (3/23) + +unix/hlib/iraf.h + SZ_FNAME went from 63 -> 255. + SZ_PATHNAME went from 127 -> 511. + SZ_LINE went from 161 -> 1023. + SZ_COMMAND went from 1024 -> 2047. (3/23) + +unix/hlib/iraf.h +unix/hlib/mach.h + MAX_EXPONENTD went from 38 (same as real) to 308, the value for + IEEE double. MAX_DOUBLE increased from 0.99d37 to 0.99d307. + INDEFD was changed from 1.6d38 to 1.6d308 for IEEE systems. (3/23) + +unix/hlib/libc/libc.h +unix/hlib/libc/spp.h + FIO_MAXFD, INDEFD, SZ_LINE, SZ_FNAME, SZ_PATHNAME, SZ_COMMAND were + updated to agree with the SPP values. (3/23) + +sys/imio/iki/stf/stfrdhdr.x + Unrelated STF bug fix. stfrdhdr.x was modified to handle the case + where datamin/datamax were not defined in the GPB, but were defined + in the main image header. (3/24) + +unix/boot/spp/xpp/xppmain.c + Removed a redundant SZ_PATHNAME. (3/24) + +unix/shlib/mkpkg +unix/shlib/mkshlib.sos4 + Changed the address of the shared library from 0xa000000 to 0x10000000. + This increases the maximum available per-process dynamic memory from + 167 MB to 268 MB (much more is possible if the process is statically + linked). (3/24) + +unix/os/zzstrt.c + Changed some address-related ints to unsigned just to be safe. (3/24) + +sys/etc/pagefiles.x + Increased SZ_LONGLINE from 1024 to 4096. At 1024 it was the same as + the new SZ_LINE, causing a loop test to fail. (3/25) + +pkg/images/tv/rimexam.par +pkg/images/tv/doc/rimexam.par + Changed the zero point of the magnitude scale from 30.0 to 25.0 + for the sake of consistency with other photometry tasks. (3/31, LED) + +pkg/images/tv/imexamine/ierimexam.x + The log output for 'a' or 'r' has one line per measurement as in + previous versions. The standard output, however, uses two lines to + print nicely on 80 column windows. (3/31, FV) + +pkg/dataio/mkpkg +pkg/dataio/dataio.cl +pkg/dataio/dataio.hd +pkg/dataio/dataio.men +pkg/dataio/x_dataio.x +pkg/dataio/import/ + +pkg/dataio/import.par + +pkg/dataio/export/ + +pkg/dataio/export.par + +pkg/dataio/doc/import.hlp + +pkg/dataio/doc/export.hlp + + Installed the IMPORT/EXPORT task for general use. The images database + used by the IMPORT task is currently defined to be stored in + dataio$import/images.dat. (3/31/97 MJF) + +pkg/proto/proto.cl +pkg/proto/proto.men +pkg/proto/proto.hd +pkg/proto/x_proto.x +pkg/proto/mkpkg + The tasks imalign, imcentroid, imfunction, imreplace, wcsedit, and + wcsreset have been deleted from the proto package and moved to the + reorganized images package. (3/31/97 LED) + +lib/imhdr.h +lib/imio.h + The sizes of the pixel file, header file, title and imhistory strings + were increased. Defines were added for the image header file and + pixel file "magic' strings. A couple fields were added relating to + byte swapping. IM_SWAPPED, in the image header, tells whether the + pixels in the disk image are byte swapped. (3/31) + +sys/imio/iki/oif/imhv1.h +sys/imio/iki/oif/imhv2.h +sys/imio/iki/oif/mkpkg +sys/imio/iki/oif/oif.h +sys/imio/iki/oif/oifmkpfn.x +sys/imio/iki/oif/oifopen.x +sys/imio/iki/oif/oifopix.x +sys/imio/iki/oif/oifrdhdr.x + +sys/imio/iki/oif/oifupdhdr.x +sys/imio/iki/oif/oifwrhdr.x + +sys/imio/iki/oif/oifwphdr.x - + It was necessary to change the OIF kernel to increase the maximum + path length for header and pixel files. This made it necessary to + change the disk image format, since the old format only allowed 80 + characters for the pixel file pathname. In the process reading and + writing the disk header was separated out from the in-memory + header. Support for two versions of the image and pixel file + headers were added. The "magic" string in the image or pixel file + header identifies the version. Old (version 1) image headers have + "imhdr" at the head of the file, with the string in SPP chars. The + new (version 2) headers have "imhv2" as the magic string. V2 headers + are byte packed and machine independent. The path limit is 255. + (3/31) + +sys/imio/immaky.x +sys/imio/imrdpx.x +sys/imio/imwrpx.x + 1. Support was added for byte swapping pixels. With the machine + independent V2 image header, this allows .imh images to be read on + any node (integer) or any IEEE-compatible node (floating). The + pixels are written in the native swap order of the creating host, + but the order is recorded in the IM_SWAPPED field of the image header, + and IMIO uses this to determine whether or not the pixels need to + be byte swapped during i/o. + 2. Minor changes to trim junk data after EOS delimited strings. + Since the V2 headers are byte packed the string data in these headers + can be viewed with Unix tools such as "less" and "strings". (3/31) + + Some pointers: "strings foo.imh" (or other tools like less) can be + used at the Unix level to look at V2 image headers. New images are + always written with host-native binary format pixels, so there is no + byte swapping involved for images read and written on the same + host. Images can any other (IEEE) host can be read or written but + there may be some slight overhead for byteswapping. If the image is + rewritten however using imcopy, the bytes will be swapped to the + native ordering of the new host. + +pkg/images/imutil/src/imheader.x + The only change so far was to eliminate some histogram dependence, + since this unused feature was removed from the standard IMIO in-memory + image header. (3/31) + +dev/pix.imh +dev/pix.pix +dev/wpix.imh + Regenerated using the V2 image format. (3/31) + +lib/imio.h +sys/imio/immapz.x +sys/imio/immaky.x +unix/hlib/zzsetenv.def +unix/hlib/login.cl + Increased the default size of the user area (min_lenuserarea) to + 64000 (about 800 80 char cards). There was some ambiguity about + units for min_lenuserarea; it should be consistently chars now. + Also increased the "padding" added to the header when creating a + new copy of an existing image which has a large header. (4/01) + +sys/imio/immaky.x + When the header of an old image is copied during an open-new-copy, + IMIO now recomputes the length of the user area of the input header. + Formerly if the header had grown since the image was opened, the + added data could be lost in a subsquent new-copy operation. (4/01) + +sys/etc/oscmd.x + Changed an fclobber(outfile) to fclobber(errfile). (4/02) + +sys/imfort/bfio.x + The little Fortran-callable file i/o package BFIO used in IMFORT + was enhanced to support writing and reading of fractional file blocks + so that files can be any size. The default random and sequential + buffer sizes were increased. In addition to the old random access + i/o routines bfread/bfwrite there are now sequential i/o routines + bfseek/bfrseq/bfwseq. (4/02) + +sys/imfort/mkpkg +sys/imfort/imfort.h +sys/imfort/imhv1.h + +sys/imfort/imhv2.h + +sys/imfort/oif.h +sys/imfort/imcrex.x +sys/imfort/imfgpfn.x +sys/imfort/imfupdhdr.x +sys/imfort/imgl1r.x +sys/imfort/imgl1s.x +sys/imfort/imgl2r.x +sys/imfort/imgl2s.x +sys/imfort/imgl3r.x +sys/imfort/imgl3s.x +sys/imfort/imgs1r.x +sys/imfort/imgs1s.x +sys/imfort/imgs2r.x +sys/imfort/imgs2s.x +sys/imfort/imgs3r.x +sys/imfort/imgs3s.x +sys/imfort/imopnx.x +sys/imfort/impl1r.x +sys/imfort/impl1s.x +sys/imfort/impl2r.x +sys/imfort/impl2s.x +sys/imfort/impl3r.x +sys/imfort/impl3s.x +sys/imfort/imps1r.x +sys/imfort/imps1s.x +sys/imfort/imps2r.x +sys/imfort/imps2s.x +sys/imfort/imps3r.x +sys/imfort/imps3s.x +sys/imfort/imrdhdr.x + +sys/imfort/imswap.x + +sys/imfort/imwpix.x + +sys/imfort/imwrhdr.x + + 1. IMFORT was brought up to date with IMIO to read and write the new + version 2 ".imh" images. As with IMIO, the old V1 format is still + supported but new images are written using the new machine independent + V2 format. + 2. Image headers can now be any size (the old IMFORT had a very + strict limit on the image header size). Since BFIO now writes partial + blocks, headers are no longer blocked out to 32768 bytes. + 3. "min_lenuserarea" is now supported as for IMIO (since IMFORT is + host level it must be defined in the host environment). The builtin + default header buffer is 64000 chars, which is about 800 card images. + (4/02) + +sys/imfort/mii.x + + A version of the MII routines mii{read,write}[silrc] modified to + use BFIO was added to IMFORT. These are used to read and write the + machine independent headers. (4/02) + +dev/hosts + Aliased 'kf' for kingfisher at Al Fowler's request (4/3 MJF) + +lib/qpioset.h +lib/syserrmsg +sys/qpoe/qpio.h +sys/qpoe/qpoe.h +sys/qpoe/qpiogetev.x +sys/qpoe/qpiogetfil.x +sys/qpoe/qpiomkidx.x +sys/qpoe/qpioopen.x +sys/qpoe/qpioparse.x +sys/qpoe/qpiorpix.gx +sys/qpoe/qpioseti.x +sys/qpoe/qpiostati.x +sys/qpoe/qpiosync.x + QPOE was modified to allow event coordinate (X,Y) key fields to be + of type int as well as short. All event handling code will now + accept either type. Keys may be specified using "i" as the field + type as well as "s", e.g. "key=(i10,s14)". X and Y do not have to + be the same type. There should be no significant CPU runtime + penalty, although obviously events with integer coordinate fields + will mean larger event files (file i/o times will be affected + accordingly). (4/03) + +lib/qpioset.h +lib/qpset.h +sys/qpoe/QPOE.hlp +sys/qpoe/README +sys/qpoe/qpcopyf.x +sys/qpoe/qpio.h +sys/qpoe/qpiogetfil.x +sys/qpoe/qpiolwcs.x +sys/qpoe/qpioopen.x +sys/qpoe/qpioparse.x +sys/qpoe/qpioseti.x +sys/qpoe/qpiostati.x +sys/qpoe/qpmacro.x +sys/qpoe/qpoe.h +sys/qpoe/qpopen.x +sys/qpoe/qpqueryf.x +sys/qpoe/qpseti.x +sys/qpoe/qpstati.x +sys/qpoe/zzdebug.x + Added support for separate X and Y blocking factors. The "block" + parameter is still recognized as before and will set both the X and + Y blocking factors, or "xblock" and "yblock" can be used to set only + one or the other. All occurrences have been updated, including + expressions, the QPDEFS environment, and qp_set qpio_set. (4/04) + +sys/qpoe/qpiorpix.gx + [INTERFACE CHANGE] + The calling sequence for qpio_readpix was modified to replace the + "block" argument by the two arguments xblock and yblock. A scan + indicates that none of the layered packages we have installed at + NOAO (including xray) currently uses this routine. (4/04) + +sys/plio/plrio.x + The plrio package provides an efficient lookup-table-based means of + randomly sampling 2D pixel masks. The code which recursively divides + a region into 4 quadrants could fail if the region being subdivided + was 1 pixel wide in either axis. If this happens 2 of the "quadrants" + will be valid and 2 will be degenerate. Added a test to detect and + discard these degenerate subregions. (4/04) + +sys/plio/plsectne.x +sys/plio/plsectnc.x + Both of these routines had a bug that could prevent them from + examining the full region requested (the routines check for section + not empty and section not constant). Line lists are segmented in + segments of at most I_DATAMAX (4095) pixels. If the mask is large + and has large regions of constant value, the list will consist of + successive segments all at the same value. The routines were only + checking the first such segment. The corrected code reads successive + segments until all the pixels in the region have been examined. (4/04) + +sys/plio/zzdebug.x + Fixed a couple of bugs and added several new routines to test the + above fixes. SECNE and SECNC test pl_sectnotempty and pl_sectnotconst. + RIO tests plrio random mask access. INVERT inverts a mask. (4/04) + +sys/imio/implhdr.x + These routines, which copy an image header to and from an encoded title + string in a PLIO save file, were modified to save the ctime, mtime, + limtime, minpixval, and maxpixval static fields of the image header + in addition to the title string. (4/04) + +sys/qpoe/qpexeval.x + The value of "pass" was not being initialized before starting + subprogram execution when evaluating a complex LUT bin. Added the + initialization and also some comments giving an overview of how the + evaluation is performed (since it took me several hours to figure + this out again). (4/04) + +sys/imio/iki/qpf/qpfcopypar.x +sys/imio/iki/qpf/zfioqp.x +sys/imio/iki/qpf/qpfopen.x +sys/imio/iki/qpf/qpf.h + Modified to support separate x and y blocking factors. (4/05) + +sys/plio/plupdate.x + This routine contains code which collapses successive mask lines + in Y to a single encoded mask line if the mask lines are equal, + thereby compressing the encoded mask in Y. The encoded mask lines + are encoded in short integer arrays and a multiply referenced + line has a reference count which is stored in a short integer field. + The code was modified to stop when this counter reaches MAX_SHORT, + adding a new line to the encoded mask and starting over. Combined + with the X segmentation of lines into blocks of at most 4095 pixels, + this should allow masks to be nearly any size despite the use of + short integers for the encoding. (4/05) + +sys/qpoe/qpiolwcs.x + Modified the LTV_2 term of the logical transformation to set the + fractional pixel zero point resulting from blocking the input data. + If for example 2 input pixels map to 1 on output, the range of the + output pixel (e.g. 0.5 to 1.5) maps to the range covered by the two + input pixels (e.g. 0.5 to 2.5), and the center of the output pixel + (e.g. x = 1.0) maps to the center of the range spanned by the input + pixels (e.g. 1.5). For 3 to 1, 1.0 maps back to 2.0 in the input, + for 4 to 1, 1.0 maps back to 2.5, and so on as (block+1)/2. (4/05) |