Commit Graph
51 Commits
Author SHA1 Message Date
Matthew R. Wilson 83e1a68bb0 Hack to fix VM telnet client shortcomings 2025-12-01 14:13:23 -08:00
Matthew R. Wilson 595fd63676 Fix example1 to persist codepage display value 2025-12-01 14:12:36 -08:00
Matthew R. Wilson 2c10f7f34d Add more code pages 2025-11-27 03:15:59 -08:00
Matthew R. Wilson ab58ba7a87 Handle out-of-order charset descriptors
The ZOC emulator returns the primary character set descriptor after the
alternate descriptor. Need to pick the right one based on searching for ID 0.
2025-11-27 00:27:40 -08:00
Matthew R. Wilson 7b7d375e91 Per-client codepage detection and handling 2025-11-25 16:31:09 -08:00
Matthew R. Wilson 1859568369 Add additional EBCDIC code pages 2025-11-15 01:40:56 -08:00
Matthew R. Wilson 2f96d51ac3 Groundwork for multi codepage support 2025-11-14 23:54:11 -08:00
Matthew R. Wilson c0ad185cd7 Fix bug in dynamic terminal size query 2025-11-10 20:41:22 -08:00
Matthew R. Wilson 1eee614349 Add link to Moshix' Minesweeper example application 2025-11-10 12:54:12 -08:00
Matthew R. Wilson e6838c397c Add support for graphic escape character set 2025-11-06 12:51:19 -08:00
Matthew R. Wilson 904699bf1e Fix broken EBCDIC conversions. Fully switch to CP1047<->UTF-8. 2025-10-25 16:06:14 -07:00
Matthew R. Wilson 86d2a23adf Add timeout for dynamic terminal size detection 2025-10-04 12:17:59 -07:00
Matthew R. Wilson c6be50cec6 Improve telnet negotiation compatbility
Respond to client "do" requests during the negotiation. This prevents the
negotiation from failing when connecting from the z/VM and CSI z/VSE telnet
clients.

Also don't treat unknown terminal device type as an error, just fall back on
assuming a 24x80 terminal. This shouldn't affect z/VM / z/VSE clients, which
identify correctly, but will return to the original go3270 behavior of not
caring about specific client device type.
2025-08-07 23:00:22 -07:00
Matthew R. Wilson f71d36fd9e Loosen terminal model name checking 2025-07-01 13:19:55 -07:00
Matthew R. Wilson b3f6fa398d Add support for 3279-4 model 2025-07-01 10:38:40 -07:00
Matthew R. Wilson 936206c28c Documentation updates 2025-07-01 10:38:27 -07:00
Matthew R. Wilson b6fa48f37f Alternate screen size support.
This is a relatively big new feature, which introduces small breaking changes
to the API:

 * NegotiateTelnet() now returns (DevInfo, error) instead of just error.  The
   function signature for the Tx type now has one additional DevInfo parameter.
 * RunTransactions() requires one additional parameter, the DevInfo (which is
   allowed to be nil).

Otherwise, existing behavior continues to work as-is and everything still
defaults to operating on the default 24x80 terminal size.

See example5 for a larger-terminal-aware application.

Pending some time to make sure no new bugs cropped up in this release and that
the alternate screen size support works in the wild, I anticipate this will
become the v1.0.0 release of go3270.
2025-06-29 12:58:18 -07:00
Matthew R. Wilson 3a38ce6e4a bugfix: Correct Response row and col values (swap them) 2025-06-07 14:04:21 -07:00
Matthew R. Wilson 38b0999238 Don't reset MDT when not clearing screen 2025-05-26 20:00:38 -07:00
Matthew R. Wilson 72db0fdc0e Add optional callback function to ScreenOpts 2025-05-23 14:01:20 -07:00
Matthew R. Wilson 78aaf72e84 Add RunTransactions() approach to application design 2025-04-13 22:04:54 -07:00
Matthew R. Wilson 7b5603eb11 Revert the whitespace "fix"
There was already a feature, Field.KeepSpaces, for the programmer to control
this. The new strip-only-trailing-spaces behavior was inconsistent with the
original design.
2025-04-12 16:57:42 -07:00
Matthew R. Wilson 5f2d7355e4 Non-screen-clearing update support
New ShowScreenOpts() function, which takes a new ScreenOpts struct, to control
various aspects of the ShowScreen behavior. This should now be used in favor of
the deprecated ShowScreen() and ShowScreenNoResponse() functions, and allows
for the additional of future options without needing to continue making new
functions or breaking the public API.
2025-04-12 16:56:24 -07:00
Matthew R. Wilson 19c6001a38 Preserve leading spaces in response fields 2025-04-08 15:36:47 -07:00
Matthew R. Wilson 276144f363 Add ShowScreenNoResponse() function 2025-04-06 16:22:57 -07:00
Matthew R. Wilson 21f273b327 Merge branch 'downarowiczd-master' 2023-11-11 15:03:20 -08:00
Matthew R. Wilson efb8f9edf9 Update numeric validation patch and round out example1 2023-11-11 15:02:02 -08:00
Dominik Downarowicz 54e3008e26 Add numeric-only validation support on fields 2023-10-26 18:08:40 +02:00
Matthew R. Wilson d39b10e79d Add auto-skip support to protected fields 2023-10-19 10:02:16 -07:00
Matthew R. Wilson b6d2a09532 #6: fix exclamation mark mapping 2021-02-04 17:36:06 -08:00
Matthew R. Wilson c72f89f1d7 Strip spaces from responses, unless caller wants them 2020-12-30 19:41:02 -08:00
Matthew R. Wilson cb57796dfc Issue #4: actually make it work 2020-12-30 17:27:57 -08:00
Matthew R. Wilson cfa06ec4bc Issue #4: add and use telnetRead() function 2020-12-30 15:55:31 -08:00
Matthew R. Wilson f01cf72d6d Add logging code for out-of-bounds buffer addresses 2020-12-27 01:31:20 -08:00
Matthew R. Wilson 123df70716 Add telnet options reference to readme 2020-12-26 02:02:58 -08:00
Matthew R. Wilson eddc39723a Add UnNegotiateTelnet() function 2020-12-26 01:42:53 -08:00
Matthew R. Wilson 8f57ca182b Update telnet code; add flushConnection() 2020-12-26 01:27:15 -08:00
Matthew R. Wilson 6c0f8b25fe Lower required Go version to 1.13 2020-12-23 19:39:52 -08:00
Matthew R. Wilson 7a7e8165dd Update README to reflect the 2 examples 2020-12-07 02:00:48 -08:00
Matthew R. Wilson fee74affa2 #1: Add HandleScreen() function as a higher-level interface to ShowScreen() 2020-12-07 01:59:04 -08:00
Matthew R. Wilson 1e6ae603e7 Issue #2: handle PA keys like Clear 2020-11-05 13:28:22 -08:00
Matthew R. Wilson a2aa93587d Update readme 2020-11-04 15:34:08 -08:00
Matthew R. Wilson f76690ef99 Add support for extended field attributes 2020-11-04 15:33:00 -08:00
Matthew R. Wilson 92a8a832bb Remove unused code 2020-11-04 14:56:39 -08:00
Matthew R. Wilson 0e3f2841c0 Add support for hidden fields 2020-11-04 14:54:11 -08:00
Matthew R. Wilson c35ae0227d Update example application with field validation 2020-11-04 13:30:43 -08:00
Matthew R. Wilson 655290c2ca Add link to intro video in readme 2020-11-02 23:19:49 -08:00
Matthew R. Wilson d27f1136eb Update readme 2020-11-02 17:46:55 -08:00
Matthew R. Wilson ebff6c7a2f Thing seem to be working! 2020-11-02 17:35:43 -08:00
Matthew R. Wilson adb42dea54 Early response parsing work 2020-11-02 16:12:45 -08:00