cpan IO-Tty 1.28

latest release: 1.29
5 hours ago

Bug Fixes:

  • PR #69 - Fix make_slave_controlling_terminal() on Solaris/HP-UX to use
    _open_tty() instead of IO::Tty->open(), ensuring STREAMS modules (ptem,
    ldterm, ttcompat) are pushed via I_PUSH when the slave is opened for
    controlling terminal setup. Parallel fix to the slave() method fix in
    1.24.
  • PR #74 - Fix Perl 5.40+ "Possible memory corruption: ioctl overflowed
    3rd argument" warning in clone_winsize_from() and get_winsize(). Use
    pack_winsize(0,0,0,0) to pre-allocate the ioctl buffer with SvCUR
    matching sizeof(struct winsize) instead of an empty string.
  • PR #76, PR #79 - Fix diagnostic warnings being silently suppressed when
    callers use lexical "use warnings" (the modern standard since Perl 5.6).
    $^W and PL_dowarn only fire under perl -w; replaced with
    warnings::enabled() in IO::Tty and IO::Pty (PR #76) and ckWARN(WARN_IO)
    in Tty.xs (PR #79).
  • PR #77 - Fix file descriptor leak in IO::Pty when new_from_fd() fails
    after pty_allocate() or _open_tty() returns raw C-level fds. Added
    POSIX::close() calls on the raw fds before croaking at three sites in
    new() and slave().
  • PR #78 - Fix openpty() detection on Alpine Linux and other musl-based
    systems where openpty() has moved from libutil into libc (glibc 2.34+).
    Probe libc first before falling back to -lutil.
  • PR #80 - Fix -Wsign-compare compiler warnings: change namebuflen
    parameter type from int to size_t in open_slave() and allocate_pty()
    to match the return type of strlcpy() and the size argument of snprintf().
  • PR #81 - Fix spurious "_FORTIFY_SOURCE requires compiling with
    optimization" warnings during configure probes when $Config{optimize}
    (e.g. -Os) is separate from $Config{ccflags}. Include optimize flags in
    all configure probe compilations.
  • PR #84 - Fix header probes in Makefile.PL missing platform extension
    defines (_GNU_SOURCE, _BSD_VISIBLE, etc.) that function probes already
    included. Bare #includes could cause HAVE_PTY_H and similar to be unset
    on strict POSIX systems even when the header exists.

Improvements:

  • PR #86 - Use L<> instead of C<> for cross-module POD references in
    Tty.pm and Pty.pm so MetaCPAN renders IO::Pty, IO::Handle, and IO::Stty
    as clickable links.

Maintenance:

  • PR #70 - Modernize POD in Tty.pm and Pty.pm: remove stale platform
    version references (FreeBSD 4.4, OpenBSD 2.8, HPUX 10.20, Solaris 2.6),
    replace defunct SourceForge/mailing list URLs with GitHub issue tracker.
  • PR #73 - Modernize the try example script: add strict/warnings, my
    declarations, 3-arg open, and lexical filehandles. The script is shipped
    to CPAN and referenced in POD as the canonical usage example.
  • PR #75 - Strengthen test coverage for set_raw() and winsize: verify all
    termios flags set by cfmakeraw (iflag, oflag, PARENB, CSIZE, CS8, VMIN,
    VTIME) and add a test for the unpack_winsize() length-validation croak.
  • PR #85 - Update GitHub Actions to Node.js 24 versions: actions/checkout
    v6, cross-platform-actions/action v1, perl-actions/install-with-cpm v2.
    Required before GitHub forces Node.js 24 in June 2026.

Don't miss a new IO-Tty release

NewReleases is sending notifications on new releases.