Revision history for Config-XrmDatabase

0.09      2026-11-10 16:13:55-05:00 America/New_York

  [BUG FIX]

    * a '*' immediately before the last component of a key didn't
      match zero components, e.g. 'a*b' didn't match 'a.b'.

    * match precedence didn't follow libX11 when a '*' matched zero
      components.  At each level, what matched (name, then class,
      then '?') now takes precedence over the binding which precedes
      it, e.g. for name 'a.b' and class 'A.B', 'a*b' now beats both
      'a.?' and 'a.B'.

  [DEPRECATION]

    * Config::XrmDatabase::Util

      * is_wildcard is deprecated.  It was documented as testing for
        '*' and '?', but actually tests for the binding operators '.'
        and '*'.  it now emits a 'deprecated' warning.

      * is_binding_operator replaces is_wildcard. same API.

  [DOCUMENTATION]

    * documentation now distinguishes between bindings and the '?'
      operator, and has a detailed explanation of the match algorithm.

    * various corrections.

  [TESTS]

    * The code which generates the reference results from the actual libX11
      library (utils/fake) now interfaces with it via FFI::Platypus.

    * tests now include

       * cases where '*' matches zero components.
       * interior nodes  without values
       * the key returned by query( return_value => 'all' )

    * generated keys now use name components as often as class
      components and '?'; previously they were very rare due to a
      random number normalization bug..


0.08      2025-10-06 01:56:27-04:00 America/New_York

  [MISC]

    * Perl as of 5.034 has native, but experimental try/catch; tweak
      to avoid warnings

  [BUILD]

    * update build infrastructure, perlcritic policies, make
      perlcritic happier

0.07      2021-10-07 16:51:22-04:00 America/New_York

  [BUG FIX]

    * error message thrown on error didn't convert from internal
      representation

0.06      2021-09-09 17:16:32-04:00 America/New_York

  [BUG FIX]

    * stringified version of db (via write_file or to_string) was
      missing a trailing newline

0.05      2021-09-09 17:16:32-04:00 America/New_York

  [BUG FIX]

    * write_file wasn't loading a required module

  [ENHANCEMENT]

    * add to_string method

0.04      2021-08-24 15:51:23-04:00 America/New_York

  [ENHANCEMENT]

    * constructor can bulk load entries

0.03      2021-08-24 15:51:23-04:00 America/New_York

  [API BREAKAGE]

    * The to_kv method now takes an option hash, not a single value.

    * The query routine didn't document its return value (?!?) and
      what it returned has changed. So is this really an API break?

    * minimum Perl is now 5.26.


  [BUG FIX]

    * query(): the name of the matched key was incorrectly generated.

    * merge() was totally broken.

  [ENHANCEMENTS]

    * new method to_kv_arr, similar to to_kv, but the resource names
      are returned as arrays of components.

    * query() return value

        * by default returns the value on match or undef on failure.

        * may alternatively return a reference to the value so the
          user can distinguish between an undef value and a failed
          match

        * may alternatively return a hash of all of the data
          associated with the db entry that matched

    * query() failure action may now be specified

        * returns undef (default)

        * throws exception

        * caller can provide callback


0.02      2021-08-20 14:54:32-04:00 America/New_York

  [BUILD]

    * don't run tests matching against the Xresources code results if AUTOMATED_TESTING is set.

  [ENHANCEMENTS]

    * database entries keep track of how many times they've been
      matched.

    * new to_kv() method which returns the DB has a hash.

    * to_kv() can return the number of times a key was successfully
      matched by queries against the database


0.01      2021-08-19 15:09:41-04:00 America/New_York

* First release upon an unsuspecting world.
