# New Features in x3270 3.3

x3270 3.3 is the current development line for x3270.

## Changes in x3270 3.3.7, 25. December 2007

- Bug Fixes:
  - Fixed the annoying delay when x3270 starts with an error pop-up.
  - Shortened the manpage so that it displays on non-groff platforms. The full text is still available in the HTML version.
  - Plugged a number of memory leaks.
- New Features:
  - (none)

## Changes in x3270 3.3.7alpha2, 13. August 2007

- Bug Fixes:
  - x3270 will now compile on platforms that do not support IPv6, such as Cygwin.
  - x3270 will no longer crash or spin when the -script option is used.
  - Shifted function keys should work again (they map to PF13-PF24).
  - The screen can now be resized larger, as well as smaller.
  - Removed the dependency on `<bitmaps/gray>`, which required installing an obscure X11 development package on some platforms.
- New Features:
  - Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
  - Added a SelectAll action, mapped to Ctrl-A.

## Changes in x3270 3.3.6, 23. June 2007

- Bug Fixes:
  - Fixed the highlighted attribute for individual regions of the screen (versus the highlighted field attribute); it had been accidentally disabled.
- New Features:
  - Added support for IBM Code Page 1047 (-charset cp1047).
  - Added proxy support via the -proxy option or the proxy resource.
  - Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
  - Pseudo-Color mode is no more. This was the mode that x3270 used when a 3278 model was specified, or if the m3279 resource were set to False. Pseudo-Color assigned colors to regions of the screen based on intensity and light-pen selectability, and did not support 3279 colors. Now turning off color or selecting a 3278 results in something that looks like a 3278 (i.e., it's green). To resurrect Pseudo-Color mode, set the following resources:
    x3270.inputColor: orange
    x3270.boldColor: cyan

## Changes in x3270 3.3.5, 1. February 2007

- Bug Fixes:
  - Fixed a crash when the user's home directory or the ~/.x3270connect file wasn't writeable.
  - Fixed some endcases when pasting text that wraps lines and a field skip is encountered.
  - Fixed the handling of SI characters in cut/pasted text.
  - Allow the use of ICU version 3.0 or greater.
  - Fixed a scripting hang when the host disconnects during Wait(output)).
  - Turned the unlockDelay option back on by default.
  - Fixed a problem where unlockDelay could result in the keyboard never unlocking, if the host unlocked the keyboard often enough.
  - Added a workaround for very old snprintf() implementations.
  - Fixed a problem with DBCS input corrupting existing DBCS subfields.
  - Fixed a problem with the Wait action in the expect glue. (Thanks to Jason Howk for the fix.)
  - Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
  - Fixed a SIGCHLD handler issue on AIX.
  - Fixed a problem with CR/LF translation on ASCII file transfers.
- New Features:
  - Added a -socket option to x3270, s3270 and c3270 to allow a script to connect to a Unix-domain socket to control the emulator, and added a -p option to x3270if to connect to the socket.
  - Added optional support for plugins, with a first plugin to implement command history on VM/CMS and TSO hosts.
  - Allow arbitrary color names (#rrggbb) to be used in color schemes.
  - Added support for hierarchical macro menus.
  - Added an XkSelector resource to allow transparent support of non-English keyboards.
  - Added preliminary support the 16-bit display fonts and the Persian character set.
  - Added Title and WindowState actions to allow the x3270 window title and icon state to bw changed respectively.

## Changes in x3270 3.3.4, 10. April 2005

- Bug Fixes:
  - The code once again builds on Cygwin and other systems not supporting IPv6.
  - The -xrm option works again in x3270.
  - The -name X Toolkit option works with x3270, though not yet with app-defaults files.
  - Removed spurious 'no child' error messages from pr3287 on some systems.
  - Removed unintended blank-line suppression from the output of PrintText html string.
  - Restored some missing keymap definitions (rlx, ow) and some missing lines from other keymap definitions (apl).
  - Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
  - Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
  - Removed spurious 'Wait timed out' errors in the Wait action.
- New Features:
  - Added a newer, more flexible version of Don Russell's RPQNAMES support.
  - Added support for IPv6.
  - Added an oldclick keymap to restore the pre-3.3 mouse click behavior.

## Changes in x3270 3.3.3b2, 1. February 2005

- Bug Fixes:
  - Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
  - Got separate app-defaults files (configure --enable-app-defaults) to work again.
  - Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
  - Fixed the titles of the Copyright and Configuration pop-ups.
  - Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
- New Features:

## Changes in x3270 3.3.3b1, 31. December 2004

- Bug Fixes:
  - Fixed the Transfer() action, which didn't work at all.
  - Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
  - Fixed c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
  - Fixed a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
  - Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
  - Fixed the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
  - Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
  - Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
  - Fixed make depend.
  - Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
  - Fixed crashes when the entire File or Options menus were suppressed.
  - Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
  - Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
  - Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
  - Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
  - Corrected a DBCS conversion problem with ICU 3.0.
  - Added variable buffer-size support to DFT file transfers.
  - Corrected a line-drawing character bug in c3270.
  - Fixed a buffer overflow problem in the ReadBuffer action.
  - Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
  - Allow 0 timeouts in Wait actions.

- New Features:
  - Added support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
  - Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
  - Added support for DBCS in pr3287, but only when started from an x3270 session.
  - Added Don Russell's RPQNAMES support.
  - Removed Minolta-copyrighted code, because of licensing problems.
  - Added an aidWait toggle to allow AID actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
  - Turned off the old scripting hack the delayed actually unlocking the keyboard for 50ms after the host says we can unlock it. Added a unlockDelay resource, which can be set to true to turn it back on.
  - Added a dftBufferSize resource to set the default DFT buffer size.
  - Added a Save Screen Text menu option to save the screen image in a file, optionally in HTML.
  - Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

## Changes in x3270 3.3.2, 1. December 2003

- Bug Fixes:
  - Corrected a screen-redraw crash when using fixedSize and xim.
  - Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
  - Fixed a problem with DBCS input when using a single DBCS/SBCS character set.
  - Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
- New Features:
  - Added support for Cyrillic keysyms to the Default() action.
  - Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
  - Error messages are now written to the trace file.
  - The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

## Changes in x3270 3.3.1alpha10, 29. August 2003

- Bug Fixes:
  - Made nondisplay fields invisible to the Ascii() action.
  - Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
  - Corrected a tight loop in the macro error cancellation logic.
  - Corrected a crash when connecting to a host and there is no menu bar visible.
  - Corrected crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
- New Features:
  - Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
  - Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
  - Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the x3270 command line, but can edit keymap definitions.
  - Added a Setverbose function to `x3270_glue.expect` to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)
  - Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
  - Added a fixedSize resource to force the x3270 to a particular size. fixedSize has the value width x height, in pixels. The 3270 display will float in the center of the window, if need be.
  - Added a new keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

## Changes in x3270 3.3.1alpha9, 24. July 2003

- Bug Fixes:
  - DBCS character set names are displayed only when DBCS support is built into x3270.
  - Removed the concept of 'per-host' resources. Use profiles for this.
  - Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
  - Fixed a Unicode conversion crash.
  - Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
- New Features:
  - User-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
  - The TELNET START-TLS option is now supported.

## Changes in x3270 3.3.1alpha8, 15. April 2003

- Bug Fixes:

- Builds cleanly on Linux with `-Wall -ansi -pedantic`.
- Builds without OpenSSL libraries being present.
- Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
- Auto-Skip fields work properly.
- "Dead" positions in DBCS fields are handled correctly.
- Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
- The Erase action now works properly with DBCS characters.
- The Visible Control Characters toggle now works properly.

- New Features:

- The Erase action is now the default for the BackSpace key.
- Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

## Changes in x3270 3.3.1, 14. February 2003

- Bug Fixes:
  - (Same as x3270 3.2.20)
- New Features:
  - DBCS support for Simplfied Chinese and Japanese, including integration with XIM.
  - Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'l:' (ell) prefix on the hostname.
  - A Visible Control Characters toggle replaces the 3270d Debug Font.
  - About x3270 pop-up split into three smaller pieces.