Changes for version 0.005 - 2026-04-26

  • add configurable separator support (optional third argument to read)
  • add pure Perl fallback when XS cannot be loaded ($BACKEND variable)
  • add read_pp() as public API for the pure Perl implementation
  • add $field argument support to read_pp() to match XS behavior
  • add `use 5.010` to Colon::Config module to declare minimum Perl version
  • fix threaded perl support (pTHX_ for internal helpers)
  • fix STRLEN type safety on 64-bit platforms
  • fix NULL pointer comparison in XS parser
  • fix namespace in error messages (Colon::Config, not Config::Colon)
  • fix embedded \r handling in pure Perl fallback
  • fix numeric string validation for field argument (looks_like_number)
  • fix croak on negative field index in read()
  • fix Windows compatibility by using croak() macro instead of Perl_croak()
  • fix Perl 5.10.0 compatibility by adding ppport.h for newSVpvn_flags
  • fix read_pp() to strip all trailing \r, not just one
  • fix read_pp() whitespace handling to match XS (only space/tab, not \s)
  • fix read_pp() XS/PP byte-level parity for whitespace and special chars
  • fix read_pp() separator validation to match XS behavior
  • fix read_pp() field validation to match XS behavior
  • fix read_pp() to suppress warnings on int() conversion of field argument
  • remove Carp and Scalar::Util dependencies from read_pp() validation
  • C89 compliance fixes for older compilers (block-comment style, decl-before-stmt)
  • improve documentation with custom separator examples
  • add test coverage for '#' character inside values
  • replace Travis CI with GitHub Actions workflow
  • add XS portability lint and edge case tests
  • add CI matrix: Linux (Perl 5.10–devel), macOS, Windows

Documentation

Modules

XS helper to read a configuration file using ':' as separator