----------------------------------------------------------------------

Release Notes: 

IDL Version 5.5                          Last Updated: August 24, 2001
----------------------------------------------------------------------
The information found in these release notes is separated into the
following sections:

  * New Features Added in IDL 5.5
  * Problems Corrected in IDL 5.5
  * Known Problems in IDL 5.5
  * Documentation Errata in IDL 5.5
  * Platforms Supported in IDL 5.5

=====================================================================
NEW FEATURES Added in IDL 5.5
=====================================================================

For more information on what's new in this release, see the "What's New
in IDL 5.5" manual located in the /info/docs directory of your CD-ROM,
or visit the RSI web site at www.ResearchSystems.com.

Additional information on new features which did not make it into the
"What's New in IDL 5.5" manual is found in the "Documentation Errata"
section in this release notes file.

   NOTE: The IDL Help file was not updated for this release. For
         information about the new features, refer to "What's New in
         IDL 5.5."

=====================================================================
PROBLEMS CORRECTED in IDL 5.5
=====================================================================
=-=-=-=-=-=-=-
ALL PLATFORMS:
=-=-=-=-=-=-=-

New STATUS Keyword for POLYWARP Support
---------------------------------------
When calculating polynomial coefficients for 45-degree rotations with
POLYWARP certain inputs may cause singular matrices. This rarely
happens with real data, but does happen with more idealized data (such
as squares or regular shapes). In this type of case, it is very easy to
get a failure in the INVERT. In IDL 5.5, a STATUS keyword has been
introduced for feedback on such rare occurrences.

Estimates for GAUSSFIT Functionality Improved
---------------------------------------------
In IDL 5.5, the way the estimates are constructed in GAUSSFIT if not
provided by the user has been improved. If the ESTIMATES array is not
specified, estimates are calculated by first subtracting a polynomial
of degree NTERMS-4 (only if NTERMS is greater than 3) and then forming
a simple estimate of the Gaussian coefficients.

Incorrect VOIGT Result Dimensions for Array Input Corrected
-----------------------------------------------------------
In IDL 5.5, the return result has been fixed to have correct
dimensions. Previously, if the A and U argument values were both
arrays, and U had more elements, the dimensions were incorrect.

ATAN Complex Output Corrected
-----------------------------
In IDL 5.5, the ATAN function now computes the complex arctangent for
complex input. Previously, for a complex number Z=X+iY, ATAN(Z) would
internally split Z into its real and imaginary components and compute
ATAN(Y, X). IDL code that uses this undocumented behavior should be
changed by replacing calls to ATAN(Z) with ATAN(IMAGINARY(Z),
REAL_PART(Z)).

For example, in IDL 5.4, to compute the argument (or angle) of a
complex number:
  z = COMPLEX(2, 1)
  PRINT, ATAN(z)*180/!PI    ; undocumented behavior
IDL prints:
  26.5651

Now, in IDL 5.5, to compute the argument:
  z = COMPLEX(2, 1)
  PRINT, ATAN(IMAGINARY(z), REAL_PART(z))*180/!PI
IDL prints:
  26.5651

HDF-EOS Data Output Enhancements
--------------------------------
IDL HDF-EOS routines now consistently handle the array ordering
between IDL and C used by the HDF-EOS library routines. In addition,
dimension size vectors and dimension name lists are also now in IDL
order rather than in C order. This was done so that IDL order is
maintained in the writing and reading of data arrays with the EOS
routines.
Enhanced routines include:

EOS_SW_DEFDATAFIELD
EOS_GD_DEFFIELD
EOS_SW_DEFGEOFIELD
EOS_GD_DEFTILE
EOS_SW_EXTRACTPERIOD
EOS_GD_READFIELD
EOS_SW_EXTRACTREGION
EOS_GD_READTILE
EOS_SW_PERIODINFO
EOS_GD_REGIONINFO
EOS_SW_READFIELD
EOS_GD_TILEINFO
EOS_SW_REGIONINFO
EOS_GD_WRITEFIELD
EOS_SW_WRITEDATAMETA
EOS_GD_WRITEFIELDMETA
EOS_SW_WRITEFIELD
EOS_GD_WRITETILE
EOS_SW_WRITEGEOMETA

Note that for the EOS_GD_READFIELD, EOS_SW_READFIELD,
EOS_GD_WRITEFIELD, and EOS_SW_WRITEFIELD routines, the START, STRIDE,
and EDGE keywords should also be specified in the IDL dimension order.

Note that EOS_GD_INQDIMS and EOS_SW_INQDIMS return dimension size and
name information without consideration of order.

Note that programs written with previous versions of IDL EOS routines
may have been created to intentionally compensate for the previous
behavior. Due to the array-handling enhancements in IDL 5.5, that
compensation of code may now generate incorrect results.

Arrays of 1 Element are Incorrectly Converted Into Scalars
----------------------------------------------------------
Previous versions of IDL contain an error that caused it to convert
single element array tags within structures into scalars when
referenced: 

     IDL> a = { tag:[1] }
     IDL> help, a.tag
     <Expression> INT = 1

This has been corrected in IDL 5.5 and now returns a single element
array as expected:

     IDL> a = { tag:[1] }
     IDL> help, a.tag
     <Expression> INT = Array[1]

Existing programs that depend on the old behavior may need to be
modified to include a subscript (e.g. b=a.tag[0] instead of b=a.tag).
This code should continue to work with older IDL versions as well since
IDL allows specifying a zero subscript with scalar values.

Executive Command .SKIP Behavior Improved
-----------------------------------------
The .SKIP executive command no longer executes a single statement
following the statements skipped. The .SKIP command only skips
statements leaving .STEP and .CONTINUE for executing them.

Multiple File Selection Fixed in CW_FILESEL
-------------------------------------------
Selection of multiple files now works properly using the CW_FILESEL
compound widget. The VALUE field of the event structure returned by
CW_FILESEL is a string containing the most recent filename selected, if
any. Even if the MULTIPLE keyword is set, VALUE will only contain the
most recently selected filename. To retrieve all of the currently
selected filenames, use the GET_VALUE keyword to WIDGET_CONTROL.

CW_ANIMATE Now Handles TrueColor Images
---------------------------------------
In previous releases, the CW_ANIMATE compound widget did not handle
TrueColor images; however, in IDL 5.5 TrueColor images are supported
and the IMAGE keyword can either be a 2D image or a 3D (24-bit) image.

Single TICKFORMAT for all levels of IDLgrAxis
---------------------------------------------
IDL 5.5 now allows a single provided TICKFORMAT string for all levels
of a multi-level axis.

BYTSCL Result for Integer Input Agrees with Byte and Float
----------------------------------------------------------
Previously, if the input to BYTSCL was one of the integer type, it
would produce different results than if the input was byte or floating.
In IDL 5.5, when using the BYTSCL function, the results for integer
type now agree with the results for floating-point type. You may notice
a slight difference in BYTSCL results for integer input.

Improved Results for Spectral Estimation with HANNING
-----------------------------------------------------
The formula to compute the HANNING window has been improved from 
0.5 * (1-Cos(2*!Pi*k/(N-1))) to 0.5 * (1-Cos(2*!Pi*k/N)). Because of
the change from 1/(N-1) to 1/N, the HANNING window will no longer
appear symmetric in the time domain, but will give improved results for
spectral estimation.

Restoring an IDLgrAxis Object Containing Multiple Levels
--------------------------------------------------------
Previously, IDL could not correctly restore an IDLgrAxis object when 
it contained multiple levels. The object was restored but most attempts
to use it resulted in errors or crashes. This problem has been fixed in
IDL 5.5 and IDL will now save/restore this object correctly. IDL 5.5
will also successfully restore this object from an IDL 5.4 save file.
Using IDL 5.4 will still fail. The only way to avoid this problem in
IDL 5.4 is to do the following:
1) Restore file containing axes.
2) Use obj->GetProperty to retrieve relevant properties for each
   multi-level axis (GetProperty should work on the restored axis
   objects)
3) Create a new axis with the retrieved properties.
4) Do not attempt to destroy the restored axis objects.

IDLgrAxis::GetProperty Behavior Fixed for TICKFORMAT and TICKUNITS
------------------------------------------------------------------
In IDL 5.4, when using IDLgrAxis::GetProperty to get the TICKFORMAT
property, an array of strings was returned even in cases where there is
only one level in the axis. For backwards compatibility of programs
written in IDL 5.3 and earlier, IDL 5.5 has been changed to use the
behavior used in IDL 5.3. In IDL 5.5, when using IDLgrAxis::GetProperty
to get the TICKFORMAT property, a scalar string is returned in cases
where there is only one level in the axis.

The TICKUNITS property (new in IDL 5.4) also changed in IDL 5.5 so that
using IDLgrAxis::GetProperty to get the TICKUNITS property returns a
scalar string in cases where there is only one level in the axis.

Using AXIS, YLOG=0 Clears a Logarithmic Axis
--------------------------------------------
The YLOG keyword for the AXIS procedure has been changed so that it can
be used to set a logarithmic axis (YLOG=1) as before, and now can also
clear the logarithmic axis (YLOG=0).

=-=-=-=-=-=-=-=-=
WINDOWS PLATFORM:
=-=-=-=-=-=-=-=-=

Paths Can Be Enclosed in Single or Double Quotes
------------------------------------------------
For executive commands that take a path as an argument, the path can
now be enclosed in single or double quotation marks. For example, the
.COMPILE executive command can now be used as follows:

   .COMPILE 'C:\My Files\test.pro'

as well as

   .COMPILE "C:\My Files\test.pro"

Exit/Entry of Top-Level Base Widget Generates an Event
------------------------------------------------------
In previous versions of IDL for Windows, top-level base widgets were
not able to process tracking events. In IDL 5.5, an enter event is
now generated by top-level base widgets whenever the mouse moves from a
child widget to the top-level base, and an exit event is generated
whenever the mouse moves from a top-level base to a child widget.

List Widgets Now Dynamically Get Horizontal Scroll Bars
-------------------------------------------------------
When a list widget is assigned a value that is longer than the width of
the widget, a horizontal scroll bar now appears on the widget. This is
true only when either the XSIZE or SCR_XSIZE keyword is specified. As
in earlier versions of IDL, if neither XSIZE nor SCR_XSIZE is
specified, the list widget dynamically changes width to accommodate
the longest value.

Base Widget Correct Resizing
----------------------------
Base widgets now resize properly, using the SCR_[XY]SIZE and [XY]SIZE
keywords. The main issue had been that the value supplied to [XY]SIZE
included the borders, title bar, and possibly a menu in addition to the
client area. So, using [XY]SIZE was identical to using SCR_[XY]SIZE.
This has changed. Now, a distinction is made between [XY]SIZE (client
area/viewport) and SCR_[XY]SIZE (total area: title bar, borders, menu,
client area).

Improvements Using WIDGET_BUTTON with Transparent Bitmaps
---------------------------------------------------------
As of IDL 5.5 for Windows, only 8-bit (or fewer) images have
transparency when creating multiple WIDGET_BUTTON widgets with /BITMAP
set. Also, note that with images greater than 8 bits per pixel, there
is no disabled counterpart to the bitmap.

Events Generated Only When Selecting A Button
---------------------------------------------
In previous versions of IDL, an event was generated when an already
selected button was selected again. This behavior has been changed in
IDL 5.5 such that an event is only generated when an unselected button
is selected.

Cross-platform Consistency of Widget Geometry Dimensions
--------------------------------------------------------
Previously, when using IDL for UNIX, the widget bases' 
geom.scr_[XY]size values were the same as the values for the 
internal client area (geom.[XY]size). If a menu bar was present, 
the geom.scr_ysize value did not include the height of the menu bar. 
The scr_Ysize value has been corrected to include the height of 
the menu bar, if present.

Also previously on IDL for UNIX, a base with a menu bar the y 
dimension of the TLB_GET_SIZE value included the height of both 
the client area and the menu bar. It has been corrected to 
include only the height of the client area.

   NOTE: When using IDL for UNIX, the geom.scr_[XY]size values do 
         not include the height and width of the window manager frame
         as they do on Windows. The geometry of the window manager
         frame is not accessible to the client application, and
         dimensions and offsets are based on the rectangle inside the
         window manager frame.

IDL Display Updating in ActiveX Control
---------------------------------------
In certain situations in previous releases, the IDL component to the
ActiveX control would not re-display (update). This problem has been
corrected in IDL 5.5.

=-=-=-=-=-=-=-=-=-=
MACINTOSH PLATFORM:
=-=-=-=-=-=-=-=-=-=

DIALOG_PICKFILE No Longer Changes The Current Working Directory
---------------------------------------------------------------
In IDL 5.5, the current working directory is no longer changed
following the use of DIALOG_PICKFILE.

Dollar Sign "$" Format Code Suppresses Line Return
--------------------------------------------------
In previous releases of IDL, the dollar sign ($) format code, used to
suppress the line return for user input, did not function correctly.
This has been fixed in this release.

=-=-=-=-=-=-=-
UNIX PLATFORM:
=-=-=-=-=-=-=-

FlexLM Licensing Conflict With IDL Causing Program Hangs Corrected
------------------------------------------------------------------
The conflict between FlexLM licensing and IDL that sometimes caused IDL
to hang on some UNIX (including Solaris and HP) systems has been
resolved in IDL 5.5.

Unmapped Bases and WIDGET_BASE
------------------------------
As of IDL 5.5, unmapped widget bases are no longer mapped if the group
leader is mapped. In the past, on IDL for UNIX, unmapping/mapping a
group leader would cause the group members to be minimized/restored. 
This was inconsistent with IDL for Macintosh and Windows in which 
mapping/unmapping the group leader had no effect on the group members.
Unmapping/mapping the leader now has no effect on the group members.
Minimizing/restoring the leader causes the group members to be
minimized/restored.

Ability to Redirect STDOUT to a File
------------------------------------
In IDL version 5.4 there was a problem with redirecting STDOUT to a
file. The problem has been fixed in this release.

Problems with CURSOR_IMAGE and CURSOR_MASK keywords to DEVICE
and IMAGE and MASK keywords to IDLgrWindow::SetCurrentCursor
------------------------------------------------------------
On Unix little-endian platforms (Intel based), the two bytes within
each integer were being used in the wrong order, resulting in cursors
that were split in half. Now, on all platforms, the high-order byte
gives the left half of the cursor, while the low-order byte gives the
right half.

Example:
Given a 16x16 byte array containing a 0 or 1 bitmap pattern, you can
construct a new cursor by entering the following commands:
     ; Assume variable bitmap contains a 16x16 byte array.
     bytes = CVTTOBM(bitmap)
     ; Left half becomes the high order, right becomes low order.
     image = 256*bytes[0,*] + bytes[1,*]
     ; Direct graphics:
     DEVICE, CURSOR_IMAGE=image
     ; Object graphics:
     oWindow->SetCurrentCursor, IMAGE=image
The above commands should now work on all platforms.

=====================================================================
KNOWN PROBLEMS in IDL 5.5
=====================================================================
=-=-=-=-=-=-=-
ALL PLATFORMS:
=-=-=-=-=-=-=-

Using Save As for an Existing IDL Project
-----------------------------------------
There is a known problem when using Save As for an IDL Project. If you
save a project in a different directory path than the original
location, the files contained within the IDL Project appear to be
included in the Save As operation. In reality, the files underneath the
project still reside in the original location and the IDL Project does
not resolve the new directory path.

Problems Reading Compressed HDF SD Data Sets
--------------------------------------------
You may encounter intermittent problems reading compressed HDF SD data
created with HDF version 4.0r2 or earlier.

MAP_SET Procedure Changes !X.TYPE System Variable
-------------------------------------------------
Using MAP_SET results in a change to the !X.TYPE value which is not
restored afterward.

Exporting Project to Paths that Contain Spaces
----------------------------------------------
There is a known problem in IDL for UNIX and IDL for Macintosh when
exporting an IDL Project to a directory whose full path contains any
spaces. For example, exporting to C:\My Files\MyProject or 
/home/user/My Files/MyProject will fail because of the space in "My
Files". To avoid this problem, export only to paths that do not contain
spaces.

WIDGET_CONTROL's /DEFAULT_BUTTON and /CANCEL_BUTTON
---------------------------------------------------
There is a known problem with the functionality of the 
/DEFAULT_BUTTON and /CANCEL_BUTTON features to WIDGET_CONTROL.

=-=-=-=-=-=-=-=-=
WINDOWS PLATFORM:
=-=-=-=-=-=-=-=-=

Accessing corrupt MrSID Files
-----------------------------
IDL will exit non-gracefully when accessing corrupt MrSID files. The
library used to access this type of file does not report any error
conditions and just exits non-gracefully causing IDL to do the same.

Online Help Text Not Visible Using High-Contrast Black Color Scheme
-------------------------------------------------------------------
Text in the IDL Online Help is not visible if you select the High
Contrast Black color scheme in the Windows "Display Properties"
dialog. If you need to use a high-contrast color scheme to view the IDL
Online Help, use the High Contrast White scheme. Alternatively, you
can use the PDF documentation, which allows you to control the zoom
factor.

IDL Events Not Handled During Slider Drag Events
------------------------------------------------
Due to a Windows limitation, IDL events cannot be handled while a 
scroll widget is being dragged.

On 16-bit TrueColor Devices, Exact Contents Not Returned in TVRD
----------------------------------------------------------------
There is a known problem that TVRD is not returning the exact contents
of the specified portion of the current graphics device. When using
TVRD on 16-bit TrueColor displays only 5 or 6 bits of pixel data are
stored for each color channel. Using TVRD on these displays returns
channel data where only the first 5 or 6 bits are significant; the
other bits are undetermined.

Problems Writing Files on Windows 98
------------------------------------
There is a known problem in the Windows 98 operating system when
writing more than 60 MB to a file in a single operation. This value was
determined by internal testing at Research Systems. This limitation
does not limit the size of the file, only how much data can be written
in a single write operation. As a workaround, you can segment your data
and write it out in smaller pieces. This problem does not exist on
Windows NT 4.0 or 2000.

=-=-=-=-=-=-=-=-=-=
MACINTOSH PLATFORM:
=-=-=-=-=-=-=-=-=-=

List Widgets Do Not Dynamically Resize or Get Horizontal Scroll Bars
--------------------------------------------------------------------
When neither the XSIZE nor SCR_XSIZE keyword is set for a list widget,
and the widget is assigned a value that is longer than the width of the
widget, the widget is supposed to dynamically resize to accommodate the
width of the longest value. This currently does not work in IDL for
Macintosh.

When either the XSIZE or SCR_XSIZE keyword is set for a list widget,
and the widget is assigned a value that is longer than the width of the
widget, a horizontal scroll bar is supposed to dynamically appear when
needed to accommodate the width of the longest value. This currently
does not work in IDL for Macintosh.

=-=-=-=-=-=-=-
UNIX PLATFORM:
=-=-=-=-=-=-=-

IDL 5.5 Requires a Patch for Solaris OS
---------------------------------------
The Motif library supplied by Sun in Solaris 8 requires a patch,
available at http://www.sunsolve.sun.com before it will work properly
with IDL. Without this patch, editable text and table widgets may cause
the IDL program to crash. The patch to use depends on the hardware
architecture on which you are running Solaris. For Sparc hardware (both
32- and 64-bit), the patch number is 108940-23. For Intel hardware, the
patch number is 108941-23.

EOS_EH_CONVANG fails on some 64-bit platforms:
----------------------------------------------
The EOS_EH_CONVANG function fails on some 64-bit platforms because of
a bug in the HDF-EOS library.

Shortcut Menu Limitations for Two-Button Mouse on Solaris
---------------------------------------------------------
There is a known problem with shortcut menu functionality
(otherwise known as context sensitive or pop-up menus) with a
two-button mouse. Under Solaris, there is no way to simulate a right
mouse button click with a two-button mouse.

HyperHelp Find Feature May Not Work if Old idl.fts File Exists
--------------------------------------------------------------
When you select the Find tab for the first time in the UNIX Online
Help, HyperHelp attempts to create a file called idl.fts in the same
directory as the idl.hlp file. If you do not have write permissions to
the directory in which idl.hlp is located, the idl.fts file will be
created in your $HOME/.hh directory. Although the default write
location for the idl.fts file is the help file directory, the default
read location (the directory in which HyperHelp first looks for an .fts
file) is the $HOME/.hh directory. Therefore, if a new version of IDL
is installed (which will contain a new idl.hlp file), and you have an
old idl.fts file in the $HOME/.hh directory, the Find feature will not
work, even if HyperHelp writes a new idl.fts file to the help file
directory, because HyperHelp will read the old idl.fts file from the
$HOME/.hh directory. 

If the Find feature is displaying topics that are different from the
topics you select in the Find window, make sure you don't have an
idl.fts file in your $HOME/.hh directory. If you do, shut down the IDL
Online Help, delete the idl.fts file from your $HOME/.hh directory,
reopen the IDL Online Help, select the Find tab, and rebuild the
idl.fts file.

Colors Used by the IDL Online Help System:
------------------------------------------
The IDL Online Help system uses up a certain number of available colors
on UNIX systems, depending on the help page being displayed. If you
need to reserve the maximum number of available colors for IDL
graphics, shut down the IDL Online Help.

Table Widget Row Labels Can Be Truncated:
-----------------------------------------
In table widgets, the width of the column containing row labels may not
be wide enough to accommodate the longest row label. For example, the
following code causes the first row label to be truncated:

PRO row_labels
  base = WIDGET_BASE()
  values = INDGEN(2,4)
  rLabels = ['This is a long row label','Two','Three','Four']
  wTable = WIDGET_TABLE(base, ROW_LABELS = rLabels, VALUE = values)
  WIDGET_CONTROL, base, /REALIZE
END

To change the size of the row label column, use the COLUMN_WIDTH and
USE_TABLE_SELECT keywords to WIDGET_CONTROL, as shown in the following
example:

PRO row_labels
  base = WIDGET_BASE()
  values = INDGEN(2,4)
  rLabels = ['This is a long row label', 'Two', 'Three', 'Four']
  wTable = WIDGET_TABLE(base, ROW_LABELS = rLabels, VALUE = values)
  WIDGET_CONTROL, base, /REALIZE
  WIDGET_CONTROL, wTable, USE_TABLE_SELECT = [-1,0,-1,3], $
     COLUMN_WIDTH = 150
END

See WIDGET_CONTROL in the IDL Reference Guide for more information on
the COLUMN_WIDTH and USE_TABLE_SELECT keywords.

TLB_SET_XOFFSET or TLB_SET_YOFFSET Fails Before Widget is Realized
------------------------------------------------------------------
Setting WIDGET_CONTROL, widget_id, TLB_SET_XOFFSET=value or
WIDGET_CONTROL, widget_id, TLB_SET_YOFFSET=value does not work unless
the widget specified by widget_id has been realized (i.e.,
WIDGET_CONTROL, widget_id, /REALIZE).

IDLDE Editor Problems When Running IDL 5.3 and 5.4 or 5.5 Concurrently
----------------------------------------------------------------------
There is a known problem with starting IDL 5.3 after running later
versions of IDL. Since preferences are stored in your home directory,
IDL 5.3 and subsequent versions will share this preferences file. The
color and font style coding for Motif have been removed so the
preference setting for Color Syntax may be incorrect when running IDL
5.3 after running subsequent versions of IDL. This can cause IDL to use
more system resources than necessary.

To fix this problem in IDL 5.3, select: File->Preferences and then
click on the Edit tab. You will notice that the Enable Edit option
under Colored Syntax is enabled. Even though it is enabled, it has not
been activated. Click the Apply button to activate the setting.

IDL for UNIX Breakpoint Markers Unaware of Line Insertions/Deletions
--------------------------------------------------------------------
There is a known problem that in IDL for UNIX breakpoint markers still
stay with the line number and do not update for changes made to the
code in the editor window.

IDLgrWindow Does Not Minimize in Linux Red Hat 7.1
With KDE Desktop Running the Kwin Window Manager
--------------------------------------------------
On Intel Linux Red Hat 7.1 using the KDE desktop with kwin window
manager, the minimize action for stand-alone object graphics windows
in IDL is inactive.

List Widgets Do Not Dynamically Resize
--------------------------------------
When neither the XSIZE nor SCR_XSIZE keyword is set for a list widget,
and the widget is assigned a value that is longer than the width of the
widget, the widget is supposed to dynamically resize to accommodate the
width of the longest value. This currently does not work in IDL for
UNIX.

Project->Export Doesn't Work if Path or Project Name Contains Spaces
--------------------------------------------------------------------
When using the Project->Export feature or make_rt script on UNIX, the
export operation will fail if either of the following contain spaces:

* The name of the .prj file
* The name of the directory to which the project is being exported

Children of Bulletin Board Bases
--------------------------------
Due to a Motif limitation, child widgets placed with offsets must be
within the parent (bulletin board base) to be displayed.

=====================================================================
DOCUMENTATION ERRATA in IDL 5.5
=====================================================================

   NOTE: The IDL Help file was not updated for this release. For
         information about the new features, refer to "What's New in
         IDL 5.5."

This section describes features or changes that are not included in 
the documentation shipped with IDL 5.5.

=-=-=-=-=-=-=-
ALL PLATFORMS:
=-=-=-=-=-=-=-

Documentation of Limits for BESELI, BESELJ, and BESELY X Values
---------------------------------------------------------------
The X value limitations for the BESELI, BESELJ, and BESELY functions
have all now been noted in documentation as:

BESELI x = 0...709
BESELJ x = 0...10^8
BESELY x = 0...10^8

BESELK has no limitation for the X value.

USA Keyword to MAP_CONTINENT 
Results in Multiple Coastlines Being Drawn
------------------------------------------
The USA keyword is used to map the outline of the states onto an
existing outline of the continent. The two outlines are derived from
different databases (the USA outline uses a geographical database, and
a geological database is used for the continent), thus the coastline is
drawn twice with some differences.

Handling Duplicate Locations When Using TRIANGULATE
---------------------------------------------------
The following information is needed at the end of the description for
the REPEATS keyword to TRIANGULATE in the Reference Guide:

   NOTE: Use the new GRID_INPUT procedure to handle repeated points
         (duplicate locations).

COND Argument Change
--------------------
The argument description has been changed to the following:
  A
   The two-dimensional array. For LNORM = 0 or 1, the array A must be
   square and can be either real or complex. For LNORM = 2, the array A
   may be rectangular and can only be real.

FINITE Example Change
---------------------
With the addition of the new SIGN keyword to FINITE, the second example
in the FINITE reference pages has changed with the following text:

A = FLTARR(10)

; Set some values to +/-NaN and positive or negative Infinity:
A[3] = !VALUES.F_NAN
A[4] = -!VALUES.F_NAN
A[6] = !VALUES.F_INFINITY
A[7] = -!VALUES.F_INFINITY

; Find the location of values in A that are positive or negative
Infinity:
PRINT, WHERE(FINITE(A, /INFINITY))

IDL prints:
            6           7

; Find the location of values in A that are NaN:
PRINT, WHERE(FINITE(A, /NAN))

IDL prints:
            3           4

; Find the location of values in A that are negative Infinity:
PRINT, WHERE(FINITE(A, /INFINITY, SIGN=-1))

IDL prints:
            7

; Find the location of values in A that are +NaN:
PRINT, WHERE(FINITE(A, /NAN, SIGN=1))

IDL prints:
            3

   Note: On some platforms, there is no distinction 
         between +NaN and -NaN.

HIST_2D Arguments, Keyword Descriptions, and Example Changes
------------------------------------------------------------
The argument description has been changed to the following:
  V1, V2
    The arguments are arrays containing the variables. V1 and V2 may be
    of any numeric type except complex. If V1 and V2 do not contain
    the same number of elements, then the extra elements in the longer
    array are ignored.

The keyword descriptions have been changed as follows:
  MIN1
    MIN1 is the minimum V1 value to consider. If this keyword is not
    specified and if the smallest value of V1 is greater than zero,
    then MIN1=0 is used, otherwise the smallest value of V1 is used.

  MIN2
    MIN2 is the minimum V2 value to consider. If this keyword is not
    specified and if the smallest value of V2 is greater than zero,
    then MIN2=0 is used; otherwise, the smallest value of V2 is used.

A second HIST_2D example is as follows:
  To return the 2D histogram made from two floating point images,
  restricting the range from -1 to +1, and with 101 bins:
     F1 = RANDOMN(seed, 256, 256)
     F2 = RANDOMN(seed, 256, 256)
     Result = HIST_2D(F1, F2, MIN1=-1, MAX1=1, $
             MIN2=-1, MAX2=1, BIN1=0.02, BIN2=0.02)
     TVSCL, Result

IMAGINARY Tip and See Also Change
---------------------------------
With the addition of the REAL_PART function to IDL 5.5, the Tip section
in the IMAGINARY description is no longer applicable and the See Also
should now include a reference to REAL_PART.

NORM Argument Change
--------------------
The argument description has been changed to the following:
  A
   A can be either a real or complex vector, or a real or complex
   two-dimensional array.

POLYFILL Reference Pages Changes
--------------------------------
The following changes occur for the following sections within the
POLYFILL reference pages:

The General Description:
The phrase "hardware dependent fill pattern" no longer applies and
should be removed.

Fill Methods (the description of the Solid fill method has completely
changed to the following text):
By default, POLYFILL fills the polygon with a solid color. For devices
that do not directly support filling with a solid color, the solid fill
is automatically emulated using the line-fill method.

Fill Methods (the description of the Patterned fill method has
completely changed to the following text):
Some output devices support filling with a pattern. For these devices,
the fill pattern array can be explicitly specified with the PATTERN
keyword. Refer to the description of that keyword for a list of devices
that support patterned fill.

PATTERN keyword description (The note in this description has
completely changed to the following text):
Note - This keyword is supported for the following devices: METAFILE, 
PRINTER (UNIX and Windows only), PS, WIN, X, and Z.

For the PostScript device, fill patterns are only supported with
language level 2. Use the LANGUAGE_LEVEL keyword to DEVICE to set the
PostScript language level to 2 if filled patterns are to be used.

On Windows 98, the pattern size is limited to 8 x 8.

QHULL's CONNECTIVITY Keyword Description Change
-----------------------------------------------
The example code statement within the CONNECTIVITY keyword description
of the QHULL procedure's reference page in the "What's New in IDL 5.5"
book is incorrect. This example code line should read:

   QHULL, lon, lat, tr, CONNECTIVITY = list, SPHERE = sphere

or

   QHULL, lon, lat, tr, CONNECTIVITY = list, /DELAUNAY

REBIN Description Change
------------------------
The equation provided in the REBIN description is incorrect. The first
line of the equation for F(X, p) should read:

F(X, p) = { X_p_ + (p - _p_) (X_p_+1 - X_p_) ...

where the symbol _p_ indicates flooring to the nearest lower integer.

SCALE Keyword for XVOLUME Scales in 3 Dimensions
------------------------------------------------
When using the SCALE keyword in an XVOLUME call, you can scale with a
3-element array of values [x, y, z]. Existing documentation only refers
to using scalar values with the SCALE keyword.

Using XOR with PLOT displays in PseudoColor
-------------------------------------------
In PseudoColor, using XOR with PLOT displays red polygons as white for
the Rainbow (#13) color table. This result is caused by PLOT initially
erasing the display. The PLOT routine actually erases the current
window display before drawing a PLOT. The erasing process is actually
filling the current window with pixels. These pixels throw off the XOR
calculations. A possible work around is to set the NOERASE keyword when
calling PLOT.
On color-indexed devices (PseudoColor), the pixel values are actually
indices into a color table. Logical functions applied to these pixel
values affect them as indices into a color table and not as the RGB
color values themselves. Also, on most color-indexed devices, the IDL
pixel values are mapped into a system palette, which results in a
translation of the pixel value as it is stored into the frame buffer.
The translated pixel values already written to the frame buffer may
have unexpected effects on graphical operations performed with
functions involving the destination pixel value (e.g., GXxor). This
use of pixel values as color table indices and system-specific palette
translations make it extremely difficult to get predictable results 
with SET_GRAPHICS_FUNCTION on color-indexed devices.

STRSPLIT Use with Separators
----------------------------
STRSPLIT does not work as expected with separators like '&&', which
consist of multiple occurrences of the same character. STRSPLIT
interprets the substring '&' as a separator, although this does not
match the specified pattern. You must call the STRSPLIT procedure with
the /REGEX keyword when the target string is more than one character.

Kernel Argument to CONVOL Need Not Be Square
--------------------------------------------
The CONVOL routine description in the IDL Reference Guide states for
the case where A is two-dimensional that "K is the l by l element
kernel". However in the subsequent formula, CONVOL accepts non-square
kernels (including one-dimensional kernels).

TVRD Results with 16-bit TrueColor Visuals
------------------------------------------
The IDL documentation should read as follows:

For the !D.TABLE_SIZE:

  TABLE_SIZE
  The number of color table indices.

  NOTE: For TrueColor visuals, !D.TABLE_SIZE will 
        always be 256. If the visual depth is less than
        24, IDL emulates 256 entries.

For the CHANNEL keyword to TVRD:

  NOTE: If the display is a TrueColor display, and
        both the CHANNEL and TRUE parameters are absent,
        the maximum RGB value in each pixel is returned.

CW_PDMENU Now Supports CONTEXT_MENU
-----------------------------------
In IDL 5.5, the CW_PDMENU function now supports the CONTEXT_MENU
keyword.

Overwriting HDF Vdata
---------------------
The Bugs entry in the Scientific Data Formats documentation for the
HDF_VD_WRITE routine is incorrect. HDF vdatas can be appended or
overwritten if they are defined at creation with a file interlacing
mode of FULL_INTERLACE. Records in a fully interlaced vdata are written
record-by-record which allows them to be appended or overwritten. For
further information, consult the "Writing to Multi-Field Vdatas"
section in the "HDF User's Guide" published by the National Center for
Supercomputing (available at http://hdf.ncsa.uiuc.edu/doc.html).

HDF_VD_GETNEXT Expects Vgroups, Not Vdata
-----------------------------------------
The HDF_VD_GETNEXT routine in the in the Scientific Data Formats manual
incorrectly states that it works with Vdata. This routine works with
Vgroups rather than Vdatas. The HDF_VG_GETNEXT routine should be used
instead of HDF_VD_GETNEXT.

=-=-=-=-=-=-=-=-=
WINDOWS PLATFORM:
=-=-=-=-=-=-=-=-=

Removal Of 8.3 File Clipping For Windows IDL
--------------------------------------------
Support for 8.3 filename clipping has been removed from Windows IDL
starting with this release. This completes the transition from Windows
3.1, with its 8.3 filename convention, to the longer file names that
are supported by 32-bit versions of the Windows operating system
(Starting with Windows NT and Windows 95). Filenames under Windows are
now handled in the same manner as on all other platforms. The user
visible effects of this changes are: 
   * The "Clip long filenames" check box is no longer present in the
     General Preferences Dialog box accessed from the IDLDE menu bar
     via File->Preferences. 
   * The TRUNCATED_FILENAME field of the !WARN system variable has been
     removed.
   * Windows IDL no longer truncates file names to 8.3 conventions
     under any circumstances

Command Recall Default Changed to 20 on Windows
-----------------------------------------------
The default number of commands saved in the recall buffer has been
changed from 10 to 20 in Windows for cross platform consistency.
However, if you import preferences when you install IDL 5.5, this
change in the default is superseded by the previous installation's
preferences.

Saving Session Preferences Change
---------------------------------
The Save Settings on Exit check box option in the General Preferences
dialog has been removed in this release. Preferences are now saved for
the session when the OK button is selected and when exiting IDL.

Escape and Enter Key Behavior in Widget Dialog Not as Documented
----------------------------------------------------------------
In the WIDGET_CONTROL description in the IDL Reference Guide, the
description for the CANCEL_BUTTON keyword states that pressing the
Escape key is the same as clicking the Cancel button. Similarly, the
description of the DEFAULT_BUTTON keyword states that pressing the
Enter key is the same as clicking the default button. Although this is
the desired behavior, due to a known problem, once any widget within a
base widget is given focus, pressing the Return or Escape keys does not
return an event.

=-=-=-=-=-=-=-=-=-=
MACINTOSH PLATFORM:
=-=-=-=-=-=-=-=-=-=

Improved IDE Components
-----------------------
As of IDL 5.4, many of the IDE components have been improved. The
performance of the IDL Log Window has been greatly increased, and IDL
Editor windows on the Macintosh now provide split-pane editing as well
as mouse-based debugging.

Search->Find Dialog Enhancements
--------------------------------
The Search->Find and Search->Replace feature was greatly enhanced in
IDL 5.4. The dialog now allows you to search over an arbitrary number
of files, or search files belonging to a specified project, or search
all open files, as well as the existing single file search
capabilities.

The IDL Find feature now also supports UNIX-style regular expression
searching as well as a batch mode which displays all search results in
a separate window. In addition, a droplist of recent entries (up to ten
search and replace terms) is available for convenient access.

IDLDE for Macintosh Enhancements
--------------------------------
Compiler errors encountered by IDL are now presented in the new IDL
Error Window. The current file containing the error can then be brought
up by double clicking on its entry in the table.

Background and text color can now be arbitrarily set for both IDL
Editor windows as well as for the IDL Log Window.

IDL Editor Windows now print chromacoded text in color.

MP Support for Volume Renderer
------------------------------
As of IDL 5.4, the IDL Volume renderer now supports Multiple Processor
(MP) MacOS systems.

SPAWN Behavior
--------------
As of IDL 5.4, spawn on the Macintosh now blocks by default like the
other IDL platforms. This means IDL will wait until the program spawned
quits (unless IDL itself was spawned). By specifying the NOWAIT keyword
to SPAWN one can force IDL to resume execution immediately after
issuing the command.

Hardware Acceleration Support for Multiple Monitor Systems
----------------------------------------------------------
As of IDL 5.4, OpenGL hardware acceleration on multiple monitor systems
is now supported. The renderer will drop back to Software OpenGL while
a window spans multiple monitors, or if the monitor the window is
currently on does not support hardware acceleration.

IDL Command Line Gains Auto Complete Feature
--------------------------------------------
As of IDL 5.4, if enabled in the General Preferences Panel, the command
will attempt to auto complete commands entered in the IDL Command Line
using the contents of the Command Line Recall Buffer. The Tab key or
the Right Arrow key will accept the auto completed command. Use of the
Return key will input only those characters typed.

IDL Macintosh Breakpoint Behavior
---------------------------------
As of IDL 5.4, a single click sets a breakpoint. A single
click on a set breakpoint removes it. An Option + a single click on a
set breakpoint will disable it.

=====================================================================
PLATFORMS SUPPORTED in IDL 5.5
=====================================================================
This table describes the computers and operating systems on which IDL
version 5.5 will run.

                                    Operating       Supported
Platform  Vendor     Hardware       System          Versions
--------  ------     --------       ---------       ---------
UNIX*     Compaq     Alpha          Tru64 UNIX      5.1
          Compaq     Alpha          Linux           Red Hat 6.2**
 
          HP         PA-RISC        HP-UX           11.0
 
          IBM        RS/6000        AIX             4.3
 
          Intel      Intel x86      Linux           Red Hat 6.0,7.1**
 
          SGI        Mips           IRIX            6.5.1
 
          SUN        SPARC          Solaris 2       8
          SUN        SPARC(64-bit   Solaris 2       8
                       Ultra)
          SUN        Intel x86      Solaris 2       8
 
Windows   Microsoft  Intel x86      Windows         98, NT 4.0, 2000
 
Macintosh  Apple     PowerMAC       MacOS           8.6, 9.x
                     Macintosh***

* For UNIX, the supported versions indicate that IDL was either built
(the lowest version listed) or tested on that version. You can install
and run IDL on other versions that are binary compatible with those
listed.

** IDL 5.5 was built on the Linux 2.2 kernel with glibc 2.1 using
Red Hat Linux. If your version of Linux is compatible with these, 
it is possible that you can install and run IDL on your version.

*** Includes G3, G4 and iMac

IDL Products Not Supported on Alpha Linux
-----------------------------------------
The DXF file format, IDL DataMiner, the MPEG file format, and IDL
Wavelet Toolkit are not supported on the Alpha Linux platform in IDL
5.5.

IDL Products Not Supported on 64-Bit IDL Platforms
--------------------------------------------------
The DXF file format and IDL DataMiner are not supported on 64-bit IDL
platforms.
