Revision history for Termbox

0.6.1  2026-08-18
    - Prevent installing the Termbox package if it has already been loaded
    - Fix Type (undef to remove callback) of tb_set_func() in STRICT mode
    - Improving the Documentation and Examples

0.6.0  2026-07-28
    - Added DEBUG(), TRACE(), and TRACE_LEAVE() helper functions.
    - Added configurable debug tracing via TB_DEBUG_LEVEL.
    - Added Termbox::tb_debug_handler() callback interface.
    - Added optional tracing of public tb_* API calls and return values.
    - Added ACKNOWLEDGEMENT section to the POD documentation.

0.5.4  2026-07-27
    - Add dirty lines tracking for efficient rendering
    - Use warnings::warnif() for deprecation warnings
    - Refine errno mappings and improve $! error reporting
    - Document additional Windows-specific behavior in POD

0.5.3  2026-07-23
    - Remove Win32::IPC dependency by using WaitForSingleObject (Win32::API)
    - Fix Windows event polling timeout handling for ignored console input events
    - Clear pending UTF-16 high surrogate state on Windows resize events
    - Fix tb_strerror() to return a error string when tb_last_errno() is not set
    - Fix missing last in WINDOW_BUFFER_SIZE_EVENT causing false return ()
    - Skip WINDOW_BUFFER_SIZE_EVENT when dimensions are unchanged
    - Fix TB_* attribute constants for TB_OPT_ATTR_W 32/64 truecolor mode

0.5.2  2026-07-21
    - Rename Termbox::PP::WCWidth to Terminal::WCWidth
    - Improve Unicode width calculation in Terminal::WCWidth
    - Fix TB_OPT_EGC handling when TB_LIB_OPTS is enabled
    - Improve POD documentation, including TB_LIB_OPTS behavior

0.5.1  2026-07-20
    - Fix :colors export for TB_OPT_ATTR_W (32->16); thanks to David Cantrell
    - Fix CRLF handling in t/00-begin.t (__DATA__ parsing broke on Unix)
    - Ensure safe handling of global termbox filehandles during init/deinit
    - Add TB_LIB_OPTS compile-time option to enforce consistent library defaults

0.5.0  2026-07-17
    - Terminal: add Windows Virtual Terminal support (again, see v0.3)
    - Change default wcwidth() backend to builtin-based version
    - Fix escape sequence handling in extract_event() (correct TB_ERR propagation)
    - Fix use :colors (as FFI) instead of :color when importing constants
    - Improve Unicode::UCD backend (long property names, emoji fallback)
    - Optimize tb_present by removing accessor overhead and inlining logic

0.4.7  2026-07-13
    - Fix missing Unicode::UCD::search_invlist() on older Perl
    - Fix Perl 5.10 syntax error with consecutive labels (DEFAULT:/case:)

0.4.6  2026-07-12
    - Terminal: keep a live file handle so that the assigned fd stays reliable
    - Terminal: restore tty state through the open file handle during shutdown
    - Fix: route tb_printf through tb_printf_inner()
    - Fix: use global->{outbuf} consistently
    - API: first argument for send_literal() and send_num() can be undefined

0.4.5  2026-07-10
    - Fix POD type definitions
    - Align subroutine call signatures closer to C implementation
    - Normalize version numbers of builtin modules for consistency
    - Add strict and warnings to all modules
    - Add additional eXTended tests to the package

0.4.4  2026-07-07
    - Fix on older Perl versions where Unicode::UCD::prop_invmap() is not available
    - Automatically fall back to bundled wcwidth() implementation if needed
    - Hide Termbox compatibility package from PAUSE (no_index + source annotation)
    - Avoid UNAUTHORIZED indexing warnings for Termbox namespace

0.4.3  2026-07-01
    - Change: store cell contents as Perl strings instead of codepoints
    - Change: treat tb_set_cell*/tb_extend_cell() as a Perl string
    - Add: exported constant definition documented in the POD

0.4.2  2026-06-18
    - Validation: refactor to compiled signatures, remove check() calls
    - API/Templates: stricter validation, refactor type definitions
    - Dependencies: reduce non-core dependencies
    - Fix: consistent return values and improved undef handling
    - Add: comprehensive POD documentation
    
0.4.1  2026-06-03
    - Tests: stabilize terminfo tests for CI environments
    - Terminal: fix resize handling (ioctl, SIGWINCH, ESC fallback)

0.4.0  2026-06-03
    - API: refactor from termbox-go to termbox2 (C API)
    - API: remove Go API compatibility layer; use termbox2 semantics
    - Platform: remove Win32 support
    - Threads: drop threads support/dependency (no longer required)
    - Build: reduce non-core dependencies (now near-zero)
    - Compat: adjust behavior to match termbox2.h (events/resize/terminfo paths)

0.3.10 2026-06-02
    - Tests: remove incorrect skip logic; terminal tests run reliably on real TTY
    - Terminal: fix SIGIO crash during shutdown (async I/O signal on fd close)
    - Terminal: ignore SIGIO in Close() to match termbox-go shutdown semantics
    - Tests: restore stable done_testing; full test suite completes reliably

0.3.9  2026-05-16
    - Terminal: fix get_term_size re-adjustment (see GH #7)
    - Tests: convert terminal tests to headless-capable CI skip logic
    - Build: add threads dependency to Makefile.PL

0.3.8  2026-05-15
    - Terminal: fix syncing changed cells back into front buffer during Flush (GH #4)
    - Terminal: adjust UTF-8 decoding behavior in extract_event

0.3.7  2026-05-15
    - Terminfo: preserve Go-like errno flow; clear stale errno before reads
    - Terminfo: make builtin compatibility matching deterministic
    - Terminfo: harden binary parsing against short reads and EOF; set EIO
    - Terminal::Backend: align X10 mouse decoding with Go Cb/Cx/Cy offsets
    - Terminal::Backend: make extract_raw_event a no-op on empty dst buffer
    - Terminal::Backend: guard flush against zero-byte writes
    - Terminal::Backend: replace invalid UTF-8 with U+FFFD and consume one byte
    - Tests: update terminal parse expectations for Go X10 decoding

0.3.6  2026-05-14
    - Win32: fix tb_peek_event timeout mapping undef to EventNone
    - Terminal: fix Init() F_SETOWN handling to use getpid()
    - Build: fix missing Import::Into dependency
    - Threads: add timer to main loop (remove yield)
    - Tests: clean up legacy resize and peek_event tests
    - Tests: document Test2/Test::Builder PID warning noise in ithreads tests

0.3.5  2026-05-03
    - Terminal: fix RGB background rendering bug
    - Terminal: fix get_term_size ioctl buffer layout and field order
    - Terminal: fix unsynchronized access to $inbuf
    - Threads: update Thread::Queue usage; :shared no longer required
    - Unicode: update WCWidth tables to 17.0.0
    - Threads: add threads->yield() to main loop
    - Terminal: handle partial writes during flush

0.3.4  2025-11-02
    - Win32: switch from error codes

0.3.3  2025-05-14
    - Win32: change legacy tb_peek_event behavior

0.3.2  2025-04-30
    - Win32: fix SIGIO handling for Windows VT
    - Win32: fix INPUT_RECORD EventType padding

0.3.1  2024-06-17
    - Win32: encapsulate Win32::API imports
    - Terminal: fix Unicode handling

0.3.0  2024-06-06
    - Terminal: add Windows VT support
    - Misc: bug fixes

0.2.0  2024-05-31
    - Terminal: add initial terminal support

0.1.1  2024-05-16
    - Project: initial GitHub upload
    - Release: first public version
    - Misc: improvements and bug fixes

0.1.0  2024-04-24
    - Release: first version (Win32-only)
    - Legacy: add legacy support
