# What's New in Kermit 95 3.0

This document covers changes from Kermit 95 2.1.3, the last stable (and 
commercial) release. If you're upgrading from a previous Kermit 95 3.0 beta
release, the [Change Log](changes.md) may be of more interest as it
currently lists what has changed from beta-to-beta.

When the final K95 v3.0 release eventually happens, the content here will trade
places with all the beta content over in the change log so that that document is
only listing the changes between stable releases.

## Things to be aware of before upgrading from Kermit 95 2.1
* The third mouse button is now supported in k95g which may affect any scripts
  you have that map mouse buttons. On a three button mouse:
  * Previously: Left was button 1, Middle was unsupported, Right was button 2
  * Now: Left is button 1, Middle is button 2, Right is button 3
* Updates to the Dialer to support new SSH settings have resulted in the version
  number for the dialer data file being bumped. It is advised you take a backup
  of your existing data file before running the new version of the dialer for
  the first time.
  * On first start, your data file(s) will be upgraded to the new format
  * SSH connection scripts generated by the new dialer will not be compatible
    with Kermit 95 2.1.3 and older due to a difference in supported SSH options.
* K95G no longer opens COM1 by default. If you previously depended on this,
  you'll need to add `set port com1` to your k95custom.ini

### Dialer DEFAULT template changes
This release corrects some issues with the DEFAULT template which the Dialer
creates automatically on first run. The auto-created template has bad colour
values for colours 1 through 9 resulting in blue appearing green, etc (terminal
sessions that should have a blue background will have a green one). The correct
values are in the table below - these should be applied to the DEFAULT template
as well as any other connections or templates you've created via the
*GUI Settings* page:

<table>
<tr><th>Colour       </th><th>Red</th><th>Green</th><th>Blue</th></tr>
<tr><td>1 - blue     </td><td>0  </td><td>0    </td><td>127 </td></tr>
<tr><td>2 - green    </td><td>0  </td><td>127  </td><td>0   </td></tr>
<tr><td>3 - cyan     </td><td>0  </td><td>127  </td><td>127 </td></tr>
<tr><td>4 - red      </td><td>127</td><td>0    </td><td>0   </td></tr>
<tr><td>5 - magenta  </td><td>127</td><td>0    </td><td>127 </td></tr>
<tr><td>6 - brown    </td><td>127</td><td>127  </td><td>0   </td></tr>
<tr><td>7 - lightgray</td><td>192</td><td>192  </td><td>192 </td></tr>
<tr><td>8 - darkgray </td><td>127</td><td>127  </td><td>127 </td></tr>
<tr><td>9 - lightblue</td><td>0  </td><td>0    </td><td>255 </td></tr>
</table>

The default logfile names in the *Log File Settings* page should also start with
the `\` character - by default in prior versions they started with an invalid
non-printable character. In Kermit 95 the defaults did not start with
\v(appdata) so you may wish to just remove this prefix entirely instead of
correcting the first character.

If you currently have Kermit 95 2.1.3 or earlier installed these bugs likely 
won't affect you - while those bugs are present in K95 2.1.3, earlier releases
shipped with `C:\ProgramData\Kermit 95\dialinf.dat` which contains a DEFAULT 
template containing the correct values.

## New Supported Platforms

The following CPU architectures are new or returning in K95 3.0:
* Alpha (support was previously discontinued in March 2000)
* PowerPC (support was previously discontinued in April 1998)
* MIPS
* Itanium
* ARM32
* ARM64
* x86-64

The result of this is that Kermit 95 v3.0 is now available as a native 64bit
application on 64bit versions of Windows, including:
* Windows 10/11 on ARM64
* Windows XP/Vista/7/8/10/11 on x86-64
* Windows Server 2008 R2 on Itanium
* Microsoft-internal 64bit Windows 2000/XP on Alpha

Additionally, the following 32bit platforms are new or returning in K95 3.0
* Windows NT 3.50 on x86, Alpha and MIPS
* Windows NT 4.0 on Alpha, MIPS and PowerPC
* Windows 2000 RC on Alpha
* Windows RT/10 on ARM32
* IBM OS/2 2.0+ (support was previously dropped after K95 2.1.2)

As a result, Kermit 95 now runs on Windows NT 3.50 or newer on any CPU
architecture supported by Windows, in addition to IBM OS/2 2.0 or newer. Some
features are not available on older operating systems however.

## New Features
* New 3-clause BSD license. Source code now available!
* No licensing fees!
* Upgraded to C-Kermit 10 bringing 20 years of C-Kermit enhancements to Windows
  and OS/2
* <!-- 3.0 beta 7 --> REXX support has been extended to x86 systems running
  Windows XP or newer. This
  was previously an OS/2-only feature. You can now run REXX scripts and commands
  from the K95 command mode with the `rexx` command, and REXX scripts run from
  K95 can execute any Kermit 95 command by enclosing the K95 command in single
  quotes (eg, `'set parity none'`). For full details, see the REXX section of
  the K95 manual: https://kermitproject.org/k95manual/os2k95.html#os2rexx. The
  REXX implementation is the current Regina REXX release. regutil.dll is included
  but note that the Console I/O Routines it provides are not currently compatible
  with K95. The rexxre.dll external function package is also included providing
  support for POSIX regular expressions.
* <!-- 3.0 beta 7 --> New command to turn the menubar on or off: 
  `set gui menubar visible { on, off }`
  When the menubar is turned off in this way (rather than with the command line
  parameter), important menu items are moved on to the system/control/window menu
  (right-click on the title bar for the actions menu and a few other things):
  ![k95-sysmenu](https://github.com/user-attachments/assets/4a016ca5-f339-43c5-83e8-7b899b28d117)
* <!-- 3.0 beta 7 --> New command to turn the toolbar on or off: 
  `set gui toolbar visible { on, off }`
* <!-- 3.0 beta 7 --> New command to turn the statusbar on or off: 
  `set gui statusbar { on, off }`
* <!-- 3.0 beta 7 --> New screen scroll kverbs:
  * `\Kuphscn` - Scroll up half a screen
  * `\Kdnhscn` - Scroll down half a screen
* <!--- 3.0 beta 4 --> 
  The default `k95custom.ini` now outputs a message on startup directing new
  users to have a look at and optionally customise the file
* <!-- 3.0 beta 3 --> File save dialogs are now the modern (normal) type on
  Windows ME, 2000 and
  newer. Windows 95, 98 and NT4 retain the old Windows 95-look file dialogs as
  before.
* <!-- 3.0 beta 3 --> The screen update interval is no longer fixed at 100ms
  in K95G - you can now change it
  with the "set terminal screen-update fast" command. Smaller intervals will
  feel smoother. If the interval is too small for your computer elements that
  are supposed to blink (such as the cursor if noblink is not set) may not
  blink or may not blink consistently.
* <!-- 3.0 beta 2 --> PTY support on Windows 10 v1809 and newer
* <!-- 2.2 --> 
  Added `SET MSKERMIT FILE-RENAMING {ON, OFF}` which enables the use of
  the MS-DOS Kermit file collision unique name generation algorithm
  instead of the C-Kermit algorithm.
* <!-- 2.2 --> Named Pipe connections (both client and server side) have been added.
* <!-- 2.2 --> 
  Add a GUI dialog version of the `TYPE` command to K95G
* <!-- 2.2 --> 
  new `SET FTP BUG USE_SSL_V2 {ON, OFF}` command
* <!-- 2.2 --> 
  new `ON_CD` macro.  This macro is executed (if defined) whenever a
  change directory operation occurs.

### SSH Client
* <!-- 3.0 beta 2 --> New SSH backend based on libssh bringing support for the latest SSH standards
* <!-- 3.0 beta 3 --> New SSH-related command: set ssh v2 key-exchange-methods
* <!-- 3.0 beta 7 --> 
  Added new command `set ssh directory` which allows you to set the default
  location where K95 looks for user known hosts and identity files.
* <!-- 3.0 beta 7 --> 
  New command to allow removing individual port forwards (`SSH REMOVE 
  { local, remote }`) - previously Kermit 95 only had commands to remove *all*
  forwarded ports of a given type.
* <!-- 3.0 beta 7 --> 
  The SSH backend has been moved into a DLL. On startup, K95 attempts to
  load the backend DLL provided the `-#2` command line argument has not been
  supplied. If no SSH backend gets loaded, you can load one manually with the new
  `ssh load` command. This allows K95 to load the appropriate backend automatically
  based on operating system (Windows XP or not) and presence of MIT Kerberos for
  Windows. This removes the need to manually shuffle around ssh.dll variants, and
  also means that alternative SSH backends not based on libssh can now be supported
  should anyone want to build one, opening the door to SSH on vintage windows or
  OS/2 systems.
* <!-- 3.0 beta 3 --> Added support for "user@host" syntax to SSH command. "ssh root@myhost" should
  do the same as "ssh myhost /user:root" now. The implementation is pretty basic
  and may not handle weird input well but when it works it should be less
  confusing to new users.  
* <!-- 2.2 --> 
  new `SET SSH HEARTBEAT-INTERVAL <seconds>` command
* <!-- 2.2 --> 
  new `SKERMIT` command to connect to Kermit as an SSH subsystem
* <!-- 2.2 --> Debug logging of SSH operations added

### SSL/TLS Support
* <!-- 3.0 beta 5 --> Added TLS SNI support for the http and telnet clients
* <!-- 3.0 beta 3 --> Upgraded to the latest OpenSSL release fixing many security vulnerabilities
  and adding support for new algorithms.
* <!-- 3.0 beta 3 --> Added support for TLS 1.1, 1.2 and 1.3

### Terminal Emulation

* <!-- 3.0 beta 7 --> Added support xterms Bracketed Paste feature
* <!-- 3.0 beta 6 --> Implemented the DECRQCRA VT420 escape sequence which is required by esctest2.
  This is disabled by default due to its security risks, but can be enabled
  with `set terminal send-data on`. As C-Kermit doesn't currently have a VT420
  terminal option yet, select VT320 to make use of VT420 features.
* <!-- 3.0 beta 4 --> Terminal mouse reporting
  * X10 protocol (send button + coordinates on mouse down) supported for Linux
    and ANSI terminal types
  * X11/Normal, URXVT and SGR protocols (send button + modifiers + coordinates
    on mouse down and mouse up) supported for all terminal types
  * Mouse wheel supported for all but the X10 protocol: You can scroll the
    panels in midnight commander with the mouse wheel!
  * New command: `set mouse reporting x` where x is one of:
    * `disabled` - mouse events will not be reported
    * `enabled` - Applications can turn mouse reporting on. Mouse reports
      will be sent only if a mouse event is mapped to `\Kignore` (eg, if you
      map right-click to `\Kpaste` then right-click will never be sent)
    * `override` - Applications can turn mouse reporting on. All mouse  
      events will be sent to the remote host and any configured action in
      CKW will be ignored when mouse reporting is on. For example, if you
      map right-click to `\Kpaste` this will only have an effect outside of
      applications that turn mouse reporting on.
  * The `show mouse` command shows the mouse reporting setting plus current
    state (if it's active or not, and the protocol in use)
* <!-- 3.0 beta 3 --> Added mouse wheel support. By default, it scrolls one line at a time, or one
  screen at a time when holding Ctrl. You can remap this to whatever you like
  via the new "set mouse wheel" command which works like "set mouse button".
  K95 is able to send wheel scroll events to the remote host if mouse reporting
  is in the right mode
* <!-- 2.2 --> HyperLink Extensions were added to ANSI based terminals allowing URLs and
  UNCs to be specified within the terminal stream just like HREFs work in
  HTML
* <!-- 2.2 --> ADM5 terminal type added

## Removed Features

While every effort has been made to avoid removing features that were previously
supported, this has in some cases been unavoidable due to the very limited
development resources now available for Kermit 95.

Features that are *in italics* **may** return before final stable release
of Kermit 95 v3.0, or perhaps in a later release but there are no guarantees! 
If you *need* one of these features the best way to guarantee it returns is 
to make a pull request!

### On Windows
* SSH Client:
  * SSHv1 is no longer supported
  * A number of now obsolete ciphers, etc, are no longer supported
  * *SSH is no longer supported on Windows 9x/NT/2000*
  * *SSH Agent support is very limited*
  * *SSH over HTTP Proxies*
  * *SSH over SOCKS Proxies*
  * *Dynamic Port Forwarding*
  * *SET TCP settings no longer affect the SSH client*
* *DNS SRV is no longer supported*
* SSL/TLS is no longer supported on Windows 9x/NT/2000 as OpenSSL no longer 
  supports these platforms
* DECnet connection methods are only supported on Windows Server 2003 or older
  as Pathworks32 is not available for newer Windows releases
* *Meridian SuperLAT and TES32 are no longer supported*
* SRP Authentication is no longer supported as all available implementations in
  C are unmaintained and depend on out-of-date versions of OpenSSL. If you
  need this, it's still possible to build Kermit 95 from source with SRP
  support.
* Kerberos IV authentication is no longer supported as it is no longer included
  in current releases of MIT Kerberos for Windows. If you need this, it's still 
  possible to build Kermit 95 from source with Kerberos IV support.

### On IBM OS/2
* Support for PC/TCP 1.2 and IBM TCP/IP 1.2.1 is no longer included as the
  current Kermit Project no longer has access to the required SDKs. The DLLs
  from K95 2.1.2 should work if needed.
* TLS/SSL is no longer supported on OS/2 
* <u>The Dialer is no longer available due to difficulties getting it to build 
  with Open Watcom</u>
* <u>Legacy DES/CAST encyrption is no longer supported on OS/2</u>

## Minor Enhancements
* <!-- 3.0 beta 7 --> All executables (*.exe, *.dll) now have proper versioninfo resources
* <!-- 3.0 beta 7 --> K95G no longer opens COM1 by default. If you still want this behaviour, add
  `set port com1` to your k95custom.ini
* <!-- 3.0 beta 7 --> 
  The command `set gui toolbar off` has been renamed to
  `set gui toolbar disabled` to better describe what it actually does and to
  make room for new commands to turn it on and off. The previous syntax
  (`set gui toolbar { off, on }`) is still accepted for compatibility with
  existing scripts. `set gui toolbar on` still does nothing as it always has
  (disabling the toolbar is a session lockdown feature)
* <!-- 3.0 beta 7 --> 
  The command `set gui menubar off` has been renamed to
  `set gui menubar disabled` to better describe what it actually does and to
  make room for new commands to turn it on and off. The previous syntax
  (`set gui menubar { off, on }`) is still accepted for compatibility with
  existing scripts. `set gui menubar on` still does nothing as it always has
  (disabling the menubar is a session lockdown feature)
* <!-- 3.0 beta 7 --> 
  Improve exit time when the console version (k95.exe) is just being run to show
  usage information (`k95.exe -h` or `k95.exe --help`). Previously K95 would
  pause for about 5 seconds after printing usage information before returning
  you to the shell.
* <!-- 3.0 beta 6 --> 
  Help text for `set gui window position` updated: this command *is* supported
  and it does work.
* <!-- 3.0 beta 6 --> The default k95custom.ini now displays a message the console-mode version
  (k95.exe) is run pointing new users to the GUI version (k95g.exe)
* <!-- 3.0 beta 6 --> About window (Help -> About) now includes the beta number
* <!-- 3.0 beta 6 --> 
  Added help text for `set terminal autopage` and `set terminal autoscroll`
* <!-- 3.0 beta 6 --> Increased the maximum number of terminal columns from 256 to 512 in K95G.
  This should be enough to fill a 4K display at with a 10pt font or larger.
  As this change increases memory requirements by around 1MB whether the extra
  columns are used or not, it has only been increased in builds targeting
  modern PCs. Vintage PCs will still be limited to 256 columns.
* <!-- 3.0 beta 6 --> K95 no longer rejects updated OpenSSL DLLs provided the major and minor
  versions match.
* <!-- 3.0 beta 4 --> The sample k95custom.ini file now sets:
  * autodownload to "on" rather than "ask"
  * resize mode to change terminal dimensions
  * SSH heartbeat on
* <!-- 3.0 beta 4 --> New escape sequences in the terminal emulator
  * `CSI 1 8 ; Ps ; Ps t` - get text area size in characters (xterm)
  * `CSI > Pm t` - this is now parsed and ignored, previously this xterm-specific
    escape sequence would incorrectly minimise the window
* <!-- 3.0 beta 4 --> The "show features" command now includes the availability (or lack of) DECnet,
  SuperLAT and PTY support. Some of these are optional features for custom
  builds only and others may or may not be present depending on the compiler
  used.
* <!-- 3.0 beta 4 --> "show versions" now shows OS version more correctly
* <!-- 3.0 beta 4 --> k95custom.ini is now distributed as k95custom.sample to prevent customised
  user files from being accidentally overwritten when upgrading. The default
  k95.ini will now rename k95custom.sample to k95custom.ini if it can't find
  an existing k95custom.ini in any of the usual locations.
* <!-- 3.0 beta 4 --> Improvements to the terminal status line:
  * Increasing the window width now gives more space to the hostname and protocol
    fields
  * If the hostname and protocol text are too long to fit, the exit text
    ("Command: Alt-X" by default) is hidden to make room
  * Maximum length for exit text increased from 20 to 30 characters (where there
    is room to display it)
  * When there is sufficient room available an extra two columns of padding is
    inserted between the exit text and the hostname to match the other fields
* <!-- 3.0 beta 3 --> Added support for building with Visual C++ 2.0
* <!-- 3.0 beta 3 --> Adjusted how the cursor is drawn so it blinks more nicely in the GUI version
  of K95
* <!-- 3.0 beta 2 --> Added support for resizing DLL and PTY terminals when the CKW terminal is
  resized
* <!-- 3.0 beta 2 --> Now uses modern windows UI widgets on XP and newer
* <!-- 3.0 beta 2 --> Added Open Watcom 1.9 support (win32 target only) 
* <!-- 3.0 beta 1 --> Updated Windows version check
* <!-- 3.0 beta 1 --> Updated URLs in the Help menu for the new Kermit Project website
<!-- These were done by Jeff Altman for K95 2.2 -->
* -q (quiet) command line option suppresses all startup text allowing
  the connection to be used for stdio redirection of data over ssh.
* Removed restriction on use of auto wrap mode when DECCOLM is set.
* Added --noclose command line option to disable the File->Exit menu
  item and remove the System Menu Close menu item
* Applied the SET EXIT STATUS value to the termination of K95G via [x]
* Removed restriction of FTP GSSAPI exchanges limiting them to one
  round-trip
* Allow SET TITLE input to be surrounded by braces
* Replaced C runtime library stat() calls with home-grown version to allow
  for proper processing of UNCs in file transfer operations
* Add SET TELNET BUG AUTH-KRB5-DES which defaults to ON.  When OFF, 3DES
  encryption may be used with KRB5 Telnet authentication.
* added missing keymap assignments for IBM 3151 emulation
* When reading strings from the Windows registry, environment
  variables are now expanded
* SET DIALER BACKSPACE now clears the equivalent SET KEY and SET
  TERM KEY values
* added SET TCP HTTP-PROXY /AGENT:<agent>
* Improvements to Kerberos 5 support
* improved algorithm for calculating optimal number of overlapped
  I/O operations on serial connections
* added FTP MLSD parsing of extended strings
* UNC paths now supported for FTP operations
* Support for Pragma Systems Terminal Server connections were added
* Support for using HTTP Proxies to make HTTP connections was added
* added DG4xx Set Cursor Type sequence  <RS> F Q <type>
* timeouts were added to incoming tcp/ip server sockets to prevent
  denial-of-service attacks

## Other Changes

* <!-- 3.0 beta 6 --> Some minor changes to support a future replacement for the dialer.
* <!-- 3.0 beta 5 --> Ported to 64bit Windows
* <!-- 3.0 beta 5 --> Added support for building for 64bit Windows on the DEC Alpha (AXP64 target)
* <!-- 3.0 beta 5 --> Ported to Windows NT 3.10 but there are currently unresolved bugs (networking
  is broken for one)
* <!-- 3.0 beta 4 --> 
  The libssh version number is now included in the output of the `show ssh`
  command
* <!-- 3.0 beta 4 --> Dialer: removed SSH v1 options as CKW now supports SSH 2.0 exclusively
* <!-- 3.0 beta 4 --> Dialer: Updated the lists of available ciphers, macs and host key algorithms
  to match what K95 actually supports now
* <!-- 3.0 beta 4 --> The default k95custom.ini now sets the default browser to nothing which should
  result in Edge being used instead of Internet Explorer.
* <!-- 3.0 beta 2 --> Fixed file transfer crash on builds done with Visual C++ 2008 and newer
* <!-- 3.0 beta 1 --> Removed border from GUI dialog buttons
* <!-- 3.0 beta 1 --> Updated version number, copyright dates, icons
* <!-- 3.0 beta 1 --> Reworked the About dialog
* <!-- 3.0 beta 1 --> Removed licensing, registration and demo mode functionality
* <!-- 2.2 --> Default terminal type changed to VT220 because Solaris and Linux
  variations no longer include definitions for VT320
* <!-- 2.2 -->when a HANDLE to a communication device, SET EXIT HANGUP OFF is
  now the default

## Bug Fixes
* <!-- 3.0 beta 7 --> 
  Fix `fopen` causing a crash. This issue seems to have come in some recent
  version of the Microsoft C Runtime.
* <!-- 3.0 beta 7 --> Fix hitting backspace in an empty search-in-buffer crashing
* <!-- 3.0 beta 7 --> Fixed \Kexit (Alt+x by default) not updating the state of the associated
  toolbar button
* <!-- 3.0 beta 7 --> Fixed stdout parameter not working correctly
* <!-- 3.0 beta 7 --> Fixed a pair of issues in the OS/2 NetBIOS implementation which has likely
  been totally broken since Kermit 95 v1.1.17:
  * `SET HOST` doing nothing for NetBIOS connections
  * NetBIOS name not being correctly padded when making a connection to
    a NetBIOS Server
* <!-- 3.0 beta 7 --> Fixed K95G hanging when closing the window or using File->Exit with when
  a connection is active and GUI dialogs are turned off
* <!-- 3.0 beta 7 --> Fixed K95 bug 797: Dialer generated connection scripts will no longer include
  `SET LOGIN PROMPT` or `SET LOGIN PASSWORD` commands if those fields do not
  have a value as this broke the use of the standard login.ksc script.
* <!-- 3.0 beta 7 --> Fixed K95 bug 770: When editing an FTP entry in the dialer the general settings
  page doesn't load the port number causing it to be cleared on save.
* <!-- 3.0 beta 6 --> Fixed directory listings not reporting a size or modified time for files
  requiring more than 32 bits to store the file size on Windows NT 3.51 and
  newer. This issue will remain on NT 3.1/3.50.
* <!-- 3.0 beta 6 --> The default k95custom.ini no longer produces an error when it's run in the
  console version of K95 or in a build of K95 that lacks SSH support.
* <!-- 3.0 beta 6 --> Fixed not being able to resize the terminal area to greater than the primary
  display in K95G. For example, if the window was moved on to a display that
  was taller than the primary display and maximised the bottom of the terminal
  screen would not be correctly rendered. This fix only applies to modern
  versions of Windows.
* <!-- 3.0 beta 6 --> Fixed paging for the "help options all" command where argument help contains
  line breaks
* <!-- 3.0 beta 5 --> Fixed crash on startup under Crossover on MacOS and Wine on Linux
* <!-- 3.0 beta 5 --> 
  Fixed `show terminal` command showing autodownload as being "on" when it was
  actually set to "ask"
* <!-- 3.0 beta 5 --> Fixed receiving files with an as-name that includes a path using UNIX
  separators failing when autodownload is set to "ask" in the GUI version of CKW
  (receiving a file sent as `send foo.txt C:/temp/foo.txt` now works)
* <!-- 3.0 beta 5 --> Fixed K95 for modern Windows (XP SP3+) not setting modified time on received
  files
* <!-- 3.0 beta 5 --> Fixed entering plane-1 unicode values via Alt+n crashing the application (this
  bug was inherited from Kermit 95)
* <!-- 3.0 beta 5 --> The colours in the dialer *GUI Settings* for the DEFAULT template
  automatically created when first run were completely wrong. This bug affected
  Kermit 95 as well but most users wouldn't have seen it as the shipped
  dialinf.dat included a DEFAULT with the correct settings (along with a
  selection of other templates).
* <!-- 3.0 beta 5 --> The default log file names in the *Log File Settings* page for the DEFAULT
  template automatically created when first run begin with an invalid
  non-printable chracter instad of '\'. This bug affected Kermit 95 as well.
* <!-- 3.0 beta 4 --> 
  Fixed the `set mouse activate` command (aka `set terminal mouse`) in K95G -
  previously this command only worked in the old console version.
* <!-- 3.0 beta 4 --> Fixed support for the third mouse button in K95G - previously this only worked
  in the old console version. This change may affect your mouse button mapping!
* <!-- 3.0 beta 4 --> Fixed a mark being set (and not cleared on mouse button release) on drag when
  the drag event is mapped to `\Kignore`
* <!-- 3.0 beta 4 --> 
  The `show mouse` command no longer tries to output non-printable characters
  bound to mouse events
* <!-- 3.0 beta 4 --> The GUI window now resizes correctly on Windows NT 3.5x
* <!-- 3.0 beta 3 --> Fixed bug where some applications (eg, nano, htop) wouldn't come back properly
  after being suspended with Ctrl+Z and restored with `fg` when using the linux
  terminal type.
* <!-- 3.0 beta 3 --> Fixed terminal being cleared the first time you move the K95G window and
  possibly the other random occurrences of this happening
* <!-- 3.0 beta 3 --> Fixed terminal scrolling bug that appears when built with Open Watcom
* <!-- 3.0 beta 3 --> Fixed auto-download "ask" setting not working on Windows NT 3.51
* <!-- 3.0 beta 3 --> Receiving large files (>4GB) no longer fails with "Refused, size"
* <!-- 3.0 beta 3 --> Fixed the "space" command never reporting more than 4GB of available free
  space
* <!-- 3.0 beta 3 --> Fixed incorrect (too narrow) window size on first run
* <!-- 3.0 beta 2 --> Fixed file transfers when built with Visual C++ 5.0 and older
* <!-- 3.0 beta 2 --> Fixed detection of current windows releases
* <!-- 3.0 beta 2 --> Fixed network DLL support (set network type dll)
* <!-- 3.0 beta 1 --> 
  Fixed the pipe command
<!-- These were done by Jeff Altman for K95 2.2 -->
* Fixed parsing of SSH GLOBAL-KNOWN-HOSTS-FILE and USER-KNOWN-HOSTS-FILE
* Fixed HTTP POST to not insert extra blank line after headers
* SHOW TERMINAL did not display the status of "SET TERM ATTRIBUTE DIM"
* Fixed processing of VT control character.
* Fixed the parsing of \K{verb} to be an alias for \Kverb.
* Fixed writing to the VTxxx Status Line when the cursor in the display
  region is located on the right most margin.
* Fixed --title: command line option to make the behavior equivalent to
  the SET TITLE command.
* Fixed SET PRINTER /CHARACTER-SET:<cs> to assign the specified character
  set to the printer.  Previously attempts to set the character set would
  always result in Danish ASCII being assigned instead of the desired
  character-set.  Printer output of non-ASCII characters will be output
  as question marks instead.
* Fixed a bug in K95G which prevented proper recognition of mouse drag
  events when either the Shift or Ctrl keys were pressed.
* Fixed FTP SITE HELP to output response text even when verbose and
  debug modes are off.
* Fixed CVTDATE function to correctly process deltas containing negative
  months.
* Fixed Unique file name generation when the file system is 8.3 (FAT)
  restricted and the original filename only contains an extension.
* Fixed when SET FTP CHARACTER-SET-TRANSLATION ON, output from the FTP DIR
  and FTP TYPE commands would output as garbage
* Fixed the parsing of the FTP FEAT response
* SCO SGR Set fg/bg colors hack  (CSI 2;fg;bg m)  The implementation
  set the colors to black on black regardless to what was specified
* SCO Set Function Key hack (ESC Q fn quote ... quote)
  If the <fn> character is below '0', don't throw it away; instead
  push the character back into the input stream and reprocess it.
* IBM EDI Services fails randomly due to a "missing tmp rsa export
  key" error.
* Fixed a bug preventing (CSI Z) backtab from being executed.
* Fixed SEND /MOVE-TO:directory file transfers
* Fixed SET TERMINAL DEBUG ON
* Fixed BEEP INFORMATION (and any events that trigger an Informational
  audible notification)
* Fixed improper handling of DCS sequences consisting of an intermediary
  '$' character
* removed a Windows Event Log entry logged before the IKSD.KSC file could
  be processed to disable all logging
* fixed the ability to disable reverse dns lookups
* fixed code that checks if a name is a directory to work on network
  mapped file systems which do not provide creation date information
  for directories.
* fixed timeout parameters used on USB Serial devices
* Fixed FTP ASCII sends
* a handle leak in the IKSD Service was plugged
* SSH URLs did not properly set the window title
* extended command line options were not properly processed
* Corrections to START_TLS vs AUTH Telnet Protocol negotiation conflicts
* Inadvertant beep produced when setting the title in a terminal
  session removed
* Linux Character Set handling fixed
* Corrections to the AnnArbor terminal emulation handling of zSDP
* ENABLE QUERY command was fixed
* the passphrase dialog box for private keys accessed during SSL/TLS
  did not obscure passphrase input
* a SEND command embedded in a macro and executed as a function with
  \Fexecute(macro) would cause K95 to crash
* Fixed a bug preventing the execution of macros assigned to keys or
  mouse events when in terminal mode

<!-- If we can get DNS-SRV back
* DNS SRV record lookups for SSH did not work if a service name was not
  specified.
-->

## Source Changes
These are changes or improvements to Kermit 95s source code which don't directly
fix bugs or add new fatures, but may make doing these things in the future
easier.

* <!-- 3.0 beta 6 --> Fixed over 1,000 build warnings. Some of the things warned about could lead
  to application crashes on 64bit windows.
* <!-- 3.0 beta 7 --> Fixed a selection of build warnings, and improved compatibility with the
  Open Watcom compiler.
* <!-- 3.0 beta 5 --> Fixed build failure with Visual C++ 2017
* <!-- 3.0 beta 5 --> Fixed build failure with Visual C++ 4.1 and 4.2
* <!-- 3.0 beta 5 --> Fixed some reported build errors with Visual C++ 4.0 RISC Edition. MIPS should
  now build fine with TAPI disabled, PowerPC may also need debug logging turned
  off (`set CKF_DEBUG=no`).
* <!-- 3.0 beta 5 --> Fixed build issues with the DEC Alpha compiler in the NT 3.50 SDK. The linker
  supplied in the SDK is not compatible, however.
* <!-- 3.0 beta 5 --> Ported the core of the application to MinGW (GCC)
* <!-- 3.0 beta 5 --> Added support for Visual C++ 1.0/1.1 32-bit edition
* <!-- 3.0 beta 5 --> DES/CAST crypto can now be statically linked into k95.exe/k95g.exe/iksdnt.exe
  instead of being delivered as a shared dll (k95crypto.dll)
* <!-- 3.0 beta 5 --> 
  Building with jom (or any other sufficiently compatible nmake clone) instead
  of nmake is now supported for Visual C++ builds. Just `set make=jom.exe` to
  make better use of multicore systems.
* <!-- 3.0 beta 4 --> The Dialer now builds with Open Watcom 1.9 and Visual C++ 2.0
* <!-- 3.0 beta 4 --> 
  dropped the /ALIGN linker flag which has produced a linker warning since
  Visual C++ 5.0 SP3 (November 1997)
* <!-- 3.0 beta 2 --> Fixed building with Visual C++ 97 (5.0)
* <!-- 3.0 beta 2 --> Fixed building with Visual C++ 4.0
* <!-- 3.0 beta 2 --> Fixed building with the free Visual C++ 2003 toolkit & Platform SDK
* <!-- 3.0 beta 2 --> Fixed builds with Visual C++ 14.x (2015-2022)
* <!-- 3.0 beta 2 --> Fixed builds with free versions of Visual C++ that don't include MFC
* <!-- 3.0 beta 1 --> Unused KUI code deleted
* <!-- 3.0 beta 1 --> Fixed builds with Visual C++ 8 (2005)
* <!-- 3.0 beta 1 --> Fixed builds with Visual C++ 7.1 (2003)
* <!-- 3.0 beta 1 --> Fixed builds with Visual C++ 2010 and 2012
* <!-- 3.0 beta 1 --> Fixed builds with Visual C++ 6
* <!-- 3.0 beta 1 --> Fixed builds with Visual C++ 7

# To Check & Integrate

The following changes were in the K95 2.2 change log but its currently uncertain
if they made it into K95 3.0. The changes to the Dialer almost certainly didn't,
as the K95 3.0 dialer is based on code from k95 2.1.2, but the XYZMODEM stuff
might have if it didn't involve changes to the XYZMODEM library itself.

* the dialer did not save the values of menubar, toolbar, statusbar
  settings on the gui page
* the dialer's QUICK command now supports connections based on
  templates and includes a SaveAs operation (a poor man's clone)
* Xmodem-CRC checksums fixed
* Added SET SSH V2 AUTO-REKEY
* added SET ATTRIBUTES DATE OFF support for XYZmodem transfers
* the dialer did not preserve alternative port numbers for FTP connections
* Implemented {SEND, RECEIVE} {MOVE-TO, RENAME-TO} for XYZmodem transfers
* Fixed incorrect script generation by the dialer when Transaction
  Logging was turned on.  The SET TRANSACTION-LOG command was
  incompletely generated.
* Fixed Dialer Generated FTP Connection Scripts to perform login in a
  script safe manner.
* Fixed Dialer Generated FTP Connection Scripts to include commands
  specified as part of the Login page textbox
* Fixed the dialer to only generate SET LOGIN PROMPT and SET LOGIN
  PASSWORD output strings if the user provided a value in the dialer
  field.
* Dialer View->FTP option fixed to prevent displaying non-FTP items
* Dialer Status line only updates the value if it changes.
