Revision history for String-Tagged 0.24 2024-07-23 [BUGFIXES] * Workaround for Perl 5.32.1's buggy `isa` operator that breaks the isa cache 0.23 2023-10-13 [CHANGES] * Don't extend edge-anchored tags when appending a `String::Tagged` instance 0.22 2023-10-02 [CHANGES] * Add the same start/end/len options to `->clone` as `->iter_extents` takes [BUGFIXES] * Ensure that a `->substr` that splits a tag calculates its length correctly on the second half 0.21 2023-09-26 [CHANGES] * Added `->delete_all_tag` method * Make it safe to delete the currently-iterating tag during `->iter_extents` and related 0.20 2023-02-15 [CHANGES] * Added `->match_extents` method 0.19 2023-02-06 [CHANGES] * Document `sizepos` as a String::Tagged::Formatting tag * Swap all unit tests from `Test::More` to `Test2::V0` 0.18 2022-04-29 [CHANGES] * Extract String::Tagged::Extent into its own actual .pm file * Documentation style fixes * Requires perl 5.14+ [BUGFIXES] * Various fixes to make zero-length tags work correctly 0.17 2021-08-10 [CHANGES] * Added a ->join constructor method [BUGFIXES] * Fix spelling of "functionality" (RT130181) 0.16 2019-04-12 16:03:33 [CHANGES] * Print a more helpful message when ->sprintf encounters undef * A few docs improvements * Render linefeed as "." in ->debug_sprintf so line wrapping works [BUGFIXES] * Ensure ->substr preserves tags that are anchored both before and after 0.15 2017-10-02 16:09:35 [CHANGES] * Added ->from_sprintf constructor and ->sprintf convenience wrapper method 0.14 2017/04/24 15:46:45 [BUGFIXES] * Ensure that ->get_tag_extent can see non-initial tags (RT120691) 0.13 2017/03/16 17:59:47 [CHANGES] * Define a String::Tagged::Formatting spec name for monospace text * Updated documentation style to =head2 barename 0.12 2014/11/17 16:14:04 [BUGFIXES] * Fix for ->get_tag_at ignoring tags in some situations (RT100392) * Fix for ->substr for length of copied tags that start elsewhere than offset 0 in the copied chunk (RT100409) 0.11 2014/11/14 17:40:35 [CHANGES] * Added ->split method * Allow ->apply_tag/->unapply_tag/->delete_tag to take an Extent object instead of two integers for position * Added ->clone method with tag set restriction and conversion * Document the String::Tagged::Formatting spec [BUGFIXES] * Set the overload 'fallback' key 0.10 2014/09/08 17:48:53 [CHANGES] * Have ->apply_tagged return the object itself, for chaining * Have ->substr return a String::Tagged; add ->plain_substr for plain perl strings * Added ->matches [BUGFIXES] * Ensure ->get_tags_at at nonzero index works (RT98700) 0.09 2014/07/31 20:28:59 [CHANGES] * Have apply_tag, unapply_tag, delete_tag accessors return the object itself, so they're nice for chaining constructors 0.08 CHANGES: * Efficiency updates to improve the performance of common append operations 0.07 CHANGES: * Respect subclassing in ->concat and . operator * Added ->new_tagged convenience constructor * Added 'only' and 'except' filters to iteration methods 0.06 CHANGES: * Use Test::Identity to work around recent behavioural change in Test::More when comparing object references 0.05 CHANGES: * Allow use of ->new() as a clone constructor * Copy tags if ->set_substr/insert/append are passed a String::Tagged * Define . and .= operator overloads 0.04 CHANGES: * Added ->merge_tags() method * Created terminal colours/attributes example * Various small fixes to keep CPANTS happy 0.03 CHANGES: * use warnings BUGFIXES: * Ensure that, of multiple tags that start at the same position, the shortest one wins. 0.02 CHANGES: * New 'extent' API - methods to return extent objects * Added ->get_tag_extent() and ->get_tag_missing_extent() 0.01 First version, released on an unsuspecting world.