# NeXtMidas 1.8.X Release Notes

This is the last release that is compatible with Java versions earlier than Java 1.4.
All future releases will require Java version 1.4 (or later) to build and run.

  Tested on:
  Platform | OS Version | JDK | Browser | DLLs
  --- | --- | --- | --- | ---
  Linux | RedHat 9.0 | 1.4.2 | Mozilla 1.4 | (n/a)
  RedHat Enterprise Linux 3 (WS) | 1.4.2 | Netscape 4.76 Mozilla 1.4 | (n/a)
  Sun/SPARC | Solaris 8 | 1.4.2 | Netscape 4.76 Mozilla 1.4 | (n/a)
  Tru64 | Tru64 UNIX 5.1B | 1.4.2 | Netscape 4.76 | (n/a)
  Windows | Windows 2000 | 1.4.2 | Netscape 4.76 | DLL's built with cygwin (gcc 2.95.2-6)
  Windows XP Professional (SP1) | 1.4.2 | Netscape 7.1 Internet Explorer 6.0 | Pre-built DLL's used

  #### Online Documentation

  - `Via Web Browser: $NMROOT/htdocs/help/index.html`
  - `NeXtMidas Shell: Run HELP/GUI`

  #### What Might Break

  - `GCONTROL / GDialog` -- Signature changed to support more flexible button names and control. (See `HELP gcontrol`)
  - `QUERY` -- Command signature has changed. (see New Features)
  - `SEDIT` -- (see New Features)
  - `GCONTROL Button` -- When a button group is not given a default item to be displayed as selected, this previously resulted in state never being displayed (selected button displayed as pressed). Now, regardless of whether or not a default item is indicated, the behavior of the buttons is that they will show state. If this is not the desired behavior, you must now use the `/NOSTATE` switch, or indicate `NOSTATE` in the `FLAGS` switch. (see New Features)
  - `Constants` -- The values for the following constants have been revised to match those published in the third edition of WGS 84 (NIMA TR8350.2):

          EARTH_ECCENTRICITY                -- Added precision.
          EARTH_GRAV_CONSTANT_W_ATMOS       -- Revised.
          EARTH_GRAV_CONSTANT_W_ATMOS_ORIG  -- NEW (old EARTH_GRAV_CONSTANT_W_ATMOS).
          EARTH_GRAV_CONSTANT_WO_ATMOS      -- Revised.
          EARTH_GRAV_CONSTANT_WO_ATMOS_ORIG -- NEW (old EARTH_GRAV_CONSTANT_WO_ATMOS).

    (For more information run `HELP/GUI` and search for "revised WGS 84".)
  - `RESULTS` -- Result names that use special non-alphanumeric characters (such as '-') may cause problems.
  - `Java Classes` -- In Java 1.4.0 and Java 5.0 Sun Microsystems added the keywords `assert` and `enum` to the Java language. Any classes, methods or variables named `assert` or `enum` must be renamed. (See http://java.sun.com/j2se/1.5.0/compatibility.html for details.)

  #### New Features Added

  - Support for plotting image data from NGA (National Geospatial-Intelligence Agency). Makes use of unaltered OpenmapTM JAR file.
  - Support for eXtra long (64-bit) integer (`X:`) results. (see `HELP RESULTS`)
  - Library support for `MFTP`, the Midas File Transfer Protocol.
  - Improved JavaDoc documentation of Java source code in the SYS option tree.
  - `QUERY` -- Command enhanced to show method signatures. See `HELP QUERY` for more details.
  - `SEDIT` -- Command enhancements:
    - Added ability to perform multiple operations per line.
    - Added `NELEM` function (see `HELP SEDIT`).
  - `LIST` -- Command enhancements:
    - Added the ability to be pushed to and popped from the graphics panel with the `CTRL-P` hotkeys. (This has always been a feature of the `PLOT` command.)
    - Added ability to use `SHIFT` key to make multi-cell selections.
  - `IMPORTENV` -- Command added to extract environment variables. (Unix Only)
  - `INVOKE` -- Improvements to handle more complex arguments.
  - `PLOT` -- Added the ability to export the plot as an image file.
  - `HELP` -- Improvements to the `HELP/GUI` system including the ability to perform searches. (Unix Only)
  - New look to roll-down labels uses shading instead of bars. (Since NeXtMidas 1.8.1)

  #### Coming Attractions

  - Ability to run X-Midas commands from NeXtMidas shell.
  - Ability to write macros that work as servlets.
  - Further improvements to the online help system.
  - Further improvements to the JavaDoc documentation of Java source code in the SYS option tree.
  - Improved NeXtMidas User's Guide.
  - Reductions in the memory footprint.

  #### Known Issues

  - `UNITS` -- File units for LATITUDE, LONGITUDE and ALTITUDE are different from X-Midas.
  - `GCONTROL` -- Closing a panel may result in Java issuing a NullPointerException.
  - `GCONTROL` -- Behavior of `BUTTON` is incorrect when given a initial value that does not match a button.
  - `FORALL` -- The `FORALL` confidence test may fail on Windows if the user's `AUX` directory is not on the `C:` drive.
  - `CALL` -- Results parameters are not properly passed when a macro calls a `SUBROUTINE`.
  - `PYTHON` -- Python does not run properly on some Tru64 systems.
  - `IF` -- File equality tests `FEQ/H` and `FEQ` do not properly compare subrecord entries.
  - `DataFile` -- IEEE file headers for Type 3000/5000 files not read properly on EEEI systems (and vice versa).
  - `DataFile` -- Set data methods do not properly write data to IEEE files on EEEI systems (and vice versa).

  #### Bugs Fixed

  Bug fixes are listed in order of Bug/DR number. The list of "Files Modified" is intended as a guide and may or may not be complete.
  Bugs Fixed in 1.8.2:

  Bug Num | Files Modified | Description
  --- | --- | ---
  501659-3 | nxm.sys.intr.Call.java nxm.sys.test.test_config.tbl nxm.sys.test.test_subroutine.java nxm.sys.test.test_call.java | Calling a SUBROUTINE does not work as it did in the past. - Access to the REGISTRY differs from NeXtMidas 1.7.3. - Reverted to functionality of NeXtMidas 1.7.3.
  508278-1 | nxm.sys.libg.Layer2D.java nxm.sys.exp.plot.exp nxm.sys.test.test_plot.mm nxm.sys.test.test_plot_lps.mm nxm.sys.test.test_plot_lps.mmp1 | Plots do not work with /LPS=1.
  509178-1 | nxm.sys.prim.plot.java nxm.sys.libg.MPlot.java nxm.sys.exp.plot.exp | Need on-axis readout in plot. - Default readout on title and on axis if NOT in macro.
  509628-1 | nxm.sys.libg.MPlot.java | Delta Lat/Lon reversed on readout.
  509787-1 | nxm.sys.lib.Time.java nxm.sys.test.test_timex.mm | Time.getSoD(..) returns incorrect value.
  509795-1 | nxm.sys.exp.files.exp | FILES can return duplicates if two AUX's point to same location. - Explain file notes this behavior.

  Bugs Fixed in 1.8.1:

  Bug Num | Files Modified | Description
  --- | --- | ---
  500643-7 | nxm.sys.libg.MPlot.java nxm.sys.libg.View.java | Plot fails to wrap ellipses.
  501659-3 | nxm.sys.intr.Shell.java nxm.sys.test.test_config.tbl nxm.sys.test.test_subroutine.java nxm.sys.test.test_call.java | Calling a SUBROUTINE does not work as it did in the past. - Access to the REGISTRY differs from NeXtMidas 1.7.3. - Reverted to functionality of NeXtMidas 1.7.3.
  503641-1 | nxm.sys.libg.GMenu.java nxm.sys.libg.MPlot.java nxm.sys.prim.plot.java nxm.sys.test.dr503641-1.mm nxm.sys.test.dr503641-1.mmp | Plot needs a LEGEND switch and dynamic update.
  506012-1 | nxm.sys.libg.GDialog.java nxm.sys.libg.GLabel.java nxm.sys.libg.GMenu.java nxm.sys.libg.GPanel.java nxm.sys.libg.GPipeMonitor.java nxm.sys.libg.GPrompt.java nxm.sys.libg.GValue.java nxm.sys.libg.MColor.java nxm.sys.libg.MWindow.java nxm.sys.libg.Theme.java nxm.sys.prim.panel.java | Enhanced look of label roll downs to use shading instead of bars.
  506539-1 | nxm.sys.libg.GridSheet.java | LIST: Unable to select rows when AUTOSELECT=FALSE.
  506542-1 | nxm.sys.intr.Foreach.java nxm.sys.test.test_foreach.mm nxm.sys.exp.foreach.exp | Need ability to iterate over KeyVectors like the REG.PLOT.LAYERS.
  506543-1 | nxm.sys.mcr.make.mm | MAKE does not call the BUILDOPT macro when building an option tree.
  507351-1 | nxm.sys.lib.Shell.java | Applets fail to run on Windows due to security exceptions on startup. - Work-around implemented in Shell.java.
  n/a | nxm.sys.mcr.sd360.mm | Removed deprecated use of GDIALOG control graphic.
  n/a | nxm.sys.test.test_timer.mm | Fixed check for time to be >= instead of >.
  n/a | htdocs.shell.jnlp htdocs.demo.jnlp | Changed links in Java WebStart to use new server.
  n/a | nxm.sys.intr.Help.java nxm.sys.docs.NeXtMidasUsersGuide.html | Added NeXtMidas User's Guide to Online Help. - Accessable via a web browser at "$NMROOT/nxm/sys/docs/NeXtMidasUsersGuide.html" - Preliminary version of document, final version will be included with future release.
  n/a | nxm.sys.docs.InstallationGuide.html | Added NeXtMidas Installation Guide to the docs area. - Accessable via a web browser at "$NMROOT/nxm/sys/docs/InstallationGuide.html"

  Bugs Fixed in 1.8.0:

  Bug Num | Files Modified | Description
  --- | --- | ---
  11185-3 | nxm.sys.prim.list.java nxm.sys.libg.GridSheet.java | List needs to support the PUSH/POP function
  12074-3 |  | Issues with Map. NIMA image support added.
  13169-4 |  | Need a way to extract timecode from a zoom on a plot.
  13498-3 |  | List primitive problems.
  13520-1 | nxm.sys.cfg.keystore nxm.sys.intr.Generate.java | HRT: Need to run NeXtMidas from a JAR file.
  14988-4 | nxm.sys.libg.MFrame.java | Garbage collector behavior needs to be understood. Used a profiler to fix DR 504030-1.
  15182-4 |  | RMIF problems with MULTI type channel options.
  15470-3 |  | Change to MPLOT for Lat/Lon.
  15773-4 | nxm.sys.exp.remove.exp nxm.sys.intr.Remove.java | REMOVE does not work with wildcards.
  15782-3 |  | PLOT/MPLOT setting and getting X1 or X2 is inconsistant.
  500002-4 |  | Keyword using wrong method for adding .key keywords.
  500015-1 |  | PLOT shortcomings.
  500017-4 |  | Plots revert to initial values when they shouldn't.
  500044-3 | nxm.sys.libg.Symbols.java nxm.sys.libg.Line.java | Change symbol in plot.
  500065-4 | nxm.sys.exp.gcontrol.exp nxm.sys.test.test_gcontrol.mm nxm.sys.libg.GDialog.java nxm.sys.intr.Gcontrol.java | DIALOG box needs to be extended.
  500097-4 | nxm.sys.lib.Results.java nxm.sys.test.benchmark.mm nxm.sys.test.test_results.mm | Can create invalid result names.
  500129-4 | nxm.sys.docs.ReleaseNotes180.html nxm.sys.lib.Convert.java nxm.sys.lib.Data.java nxm.sys.test.test_convert.mm nxm.sys.test.test_get.mm nxm.sys.test.vax_master.prm | CONVERT: problem from eeei2vax and ieee2vax. A signed shift (>>) was used where an unsigned shift (>>>) was needed. Also had to regenerate VAX master files.
  500142-4 | nxm.sys.lib.Table.java nxm.sys.test.test_results.mm | Need to indicate when Tables are malformed
  500204-1 | nxm.sys.libg.GDialog.java | GCONTROL Dialog children need control over messages.
  500209-3 |  | Using FID in macro causes EXCEPTIONS.
  500330-7 | nxm.sys.prim.convert.java nxm.lib.TextFile.java | Problem converting large XML to tables and large tables to XML. Fix XML to Table conversion to NOT pack TAG=VAL pairs on cosecutive reads. Fix write method to handle strings > 4096
  500332-7 |  | Call routine not returning error on bad input.
  500334-7 | nxm.sys.prim.panel.java | Macro window exit message not sent so macro may close gracefully.
  500916-3 | nxm.sys.test.test_convert.mm nxm.sys.test.tbl2b_master.prm nxm.sys.prim.convert.java nxm.sys.lib.DataFile.java | CONVERT has a bug in FORM string parsing.
  500984-3 | nxm.sys.libg.GridSheet.java | ArrayIndexOutOfBoundsException occurs when calling getSelectedRowData() after closing a file.
  501241-3 | nxm.sys.prim.textdisplay.java | TEXTDISPLAY uses 100% of CPU Process method changed to return NOOP.
  501336-1 | nxm.sys.inc.DataTypes.java nxm.sys.lib.Convert.java nxm.sys.lib.Data.java nxm.sys.lib.Results.java nxm.sys.test.test_results.mm | Results are allowed to be set with invalid types.
  501358-1 | nxm.sys.exp.plot.exp | Use of '~' character is confusing. Added comments on use of '~' character in menus and MENU usage in general.
  501366-1 | nxm.sys.cfg.commands.cnf nxm.sys.docs.ReleaseNotes170.html nxm.sys.exp.query.exp nxm.sys.intr.Query.java nxm.sys.lib.NTerminal.java nxm.sys.lib.Terminal.java | Enhance to reduce output.
  501479-1 | nxm.sys.test.test_importenv.mm nxm.sys.prim.importenv.java nxm.sys.exp.importenv.exp nxm.sys.cfg.commands.cnf | Import/Export Unix environment variables. Partially Implemented: Import is implemented, export is in development.
  501583-1 |  | NXM161B1: MSZ (salem) widget and panel DR's.
  501603-1 | nxm.sys.libg.GText.java | WINDOWS GTEXT color not visible.
  501804-1 |  | NXM161B2: Gdialog problem accessing widgets table.
  502145-1 | nxm.sys.docs.ReleaseNotes161.html nxm.sys.net.datagramdata.java nxm.sys.prim.sourcedg.java | NXM161B2: Sourcedg enhancements/improvments.
  502312-1 | nxm.sys.exp.history.exp nxm.sys.intr.History.java nxm.sys.test.test_history.mm | History is backwards and case sensitive.
  502368-1 | nxm.sys.lib.KeyObject.java | KeyObject limit.
  502426-1 | nxm.sys.libg.GridSheet.java | GridSheet enhancements.
  502427-1 | nxm.sys.libg.MColor.java | Mcolor: add more standard SVG colors.
  502428-1 | nxm.sys.libg.Layer2D.java | Layer2d: divide by zero problem.
  502563-1 | os.dos.nmmake.bat os.dos.nmclean.bat | Build script needs a "clean" target. Partially Implemented: Works on Windows, support for Unix is in development.
  502674-1 | nxm.sys.docs.ReleaseNotes180.html nxm.sys.exp.sedit.exp nxm.sys.intr.Sedit.java nxm.sys.test.test_sedit.mm | NeXtMidas sedit could use nele function.
  502677-1 |  | Deprecated message OPEN TEMPLATE.
  502686-1 | nxm.sys.libg.GridSheet.java nxm.sys.prim.list.java | LIST: sends DESELECT message on LM click.
  502692-1 | nxm.sys.host.rmif.for | RMIF.FOR problem with adjunct headers.
  502748-1 | nxm.sys.cfg.commands.cnf nxm.sys.docs.ReleaseNotes180.html nxm.sys.exp.sedit.exp nxm.sys.intr.Sedit.java nxm.sys.lib.Args.java nxm.sys.test.test_sedit.mm | SEDIT ability to perform multiple operations per line.
  502750-1 | nxm/sys/lib/Results.java | Would like to be able to do INLINE SEDITs.
  502787-1 | nxm.sys.test.test_list.mm nxm.sys.prim.list.java nxm.sys.libg.GridSheet.jav | LIST: enhance row/col set colors to take fg or bg or BOTH.
  502915-1 | nxm.sys.intr.Fname.java nxm.sys.test.test_fname.mm | FNAME problem with single-character result name.
  502930-1 | nxm.sys.libg.Layer2D.java | SD360: exception when FFT size changed quickly.
  502932-1 | nxm.sys.exp.noop.exp nxm.sys.prim.noop.java | NOOP: Please enhance for better rate control.
  502933-1 | nxm.sys.intr.Help.java | HELP needs HELP. Improved link generation. Updated links in 22 Help/Explain files in the SYS tree.
  502953-1 | nxm.sys.mcr.forall.mm nxm.sys.exp.run.exp nxm.sys.intr.Run.java nxm.sys.test.test_run_assist.mm nxm.sys.test.test_run.mm nxm.sys.cfg.commands.cnf nxm.sys.test.test_forall.mm nxm.sys.test.test_config.tbl | FORALL command does not work as stated in explain file. Added /GLOBAL and /PARENT switches to RUN that lets a command run using an alternate results set.
  502998-1 | nxm.sys.net.datagramdata.java | Enhancement to sourcedg/datagramdata to skip data.
  503775-1 | nxm.sys.libg.MPlot.java | AddFeatures(Table) method requested to be added to baseline.
  503776-1 | nxm.sys.intr.Call.java nxm.sys.test.test_call.mm | Invalid procedure names are not reported to user.
  503081-1 | nxm.sys.libg.GMenu.java | CHOICE widget not returning default entered.
  503634-1 | nxm.sys.lib.NTerminal.c | nM> prompt shows up twice on Windows
  503635-1 | nxm.sys.intr.Find.java | FIND confidence test fails on Windows
  503640-1 | nxm.sys.intr.Generate.java | GENERATE: Add inc to the list of extensions in the jar list.
  504030-1 | nxm.sys.libg.MFrame.java | Memory leak in Mframe while running graphics primitives. Removed dispose method. Added an InputContext class variable and assign it in the constructor. Implemented a public method getInputContext.
  504088-1 | nxm.sys.intr.Help.java | HELP window does not display on Windows.
  504089-1 | nxm.sys.cfg.build.props nxm.sys.intr.Help.java nxm.sys.lib.Build.java | Search on NM help.
  504090-1 | nxm.sys.intr.Calculator.java nxm.sys.test.test_calculator.mm | NeXtMidas calculator error.
  504091-1 | nxm.sys.prim.fcalculator.java nxm.sys.test.test_fcalculator.mm | NeXtMidas calculator command error.
  504094-1 | nxm.sys.lib.Foreign.java nxm.sys.lib.Shell.java nxm.sys.lib.Terminal.java nxm.sys.libg.GTerminal.java nxm.sys.libg.MPlot.java nxm.sys.prim.shellgui.java | SHELLGUI window closes.
  504095-1 |  | TEXTDISPLAY window won't close.
  504096-1 | nxm.sys.prim.datalist.java nxm.sys.lib.DataFile.java nxm.sys.lib.BaseFile.java | nxm.sys.lib.BaseFile error.
  504097-1 | nxm.sys.lib.Args.java | nxm.sys.lib.Args error.
  504098-1 | nxm.sys.test.test_results.mm nxm.sys.lib.Args.java | Stack trace when processing caret with an unmatched curly-brace. Modified Args to print error message when there is a syntax error in a caret expression.
  504133-1 | nxm.sys.inc.DataTypes.java | Min/Max constants incorrect.
  504134-1 | nxm.sys.lib.Util.java | nxm.sys.lib.Util: Join method creates extraneous StringBuffer(s)
  504135-1 | n/a | Util class method isWhiteSpace should use JDK 1.4 method Closed non-discrepant because we have to support JDK 1.1
  504136-1 | n/a | Util class method isWhiteSpace should use JDK 1.4 method Closed non-discrepant because we have to support JDK 1.1
  504137-1 | nxm.sys.lib.Util.Java | Util getTime method should be static or removed
  504818-1 | nxm.sys.libg.GridSheet.java | List enhancement request.
  504969-1 | nxm.sys.test.test_foreach.mm nxm.sys.intr.Foreach.java nxm.sys.exp.foreach.exp | FOREACH needs to be able to iterate for key VALUE. Added new INTABLE/V function to iterate over VALUES in a table instead of KEYS in a table.
  505193-1 | nxm.sys.lib.Build.java nxm.sys.intr.Help.java | JavaDoc files overwritten on make/build. Modified to build JavaDoc files for each tree individually.
  505194-1 | nxm.sys.mcr.make.mm nxm.sys.exp.make.exp nxm.sys.mcr.buildopt.mm nxm.sys.exp.buildopt.exp nxm.sys.cfg.commands.cnf | MAKE needs enhancement to only build source code.
  505448-1 | nxm.sys.net.HSource.java nxm.sys.net.HPage.java | Improvements to HSource and HPage.
  505451-1 | nxm.sys.lib.KeyObject.java | Invoke can not handle Java long (Midas X) types.
  505535-1 | nxm.sys.libg.GMenu.java nxm.sys.intr.Gcontrol.java nxm.sys.exp.gcontrol.exp | Need way to show or not show the state of a button regardless of default item. If a button group has no default item selected, it is assumed that the state is not shown (not displayed as pressed when selected). Want to be able to choose state independent of default item.
  505538-1 | nxm.sys.prim.list.java | LIST throws null pointer exception when coming up without a file input.
  505560-1 | nxm.sys.lib.Parser.java | SEDIT ELEM function does not work with colon (:) delimiter.
  505684-1 | nxm.sys.lib.KeyObject.java nxm.sys.intr.Invoke.java nxm.sys.exp.invoke.exp nxm.sys.test.test_invoke.mm | INVOKE does not work with quotes around comma separated string Fix in KeyObject. Tests added to test_invoke. Updated INVOKE explain file.
  505596-1 | nxm.sys.test.test_results.mm nxm.sys.lib.Convert.java nxm.sys.lib.DataFile.java nxm.sys.inc.DataTypes.java nxm.sys.lib.Data.java nxm.sys.lib.Convert.java nxm.sys.lib.Args.java | Need support for eXtra long (64-bit) integer type. Partially Implemented: Use of X: is supported in the results table and within macros, support for use by native methods and files is in development.
  505748-1 | nxm.sys.libg.GWidget.java | Dialog box throws NullPointerException on close.

(Back to Release Notes Summary)