Revision history for Perl extension Text-ANSI-Fold

2.3303 2026-02-03T04:27:19Z

    - Fix panic in retrieve when splitwide replaces a wide character
      (length comparison changed to string equality for progress check)

2.3302 2026-02-01T15:52:56Z

    - Fix infinite loop when folding OSC 8 links at narrow width
      (pwidth now strips OSC sequences; word boundary and run-out
      pushback suppressed when no visible chars remain in folded text)
    - Add progress check in retrieve to panic on no-progress fold

2.3301 2026-02-01T14:44:21Z

    - Fix word boundary regex to skip OSC sequences
      (prevents splitting SGR sequences like \e[48;5;254m across fold boundaries)

2.33 2026-01-31T01:50:51Z

    - Add OSC 8 hyperlink state tracking across fold boundaries

2.32 2026-01-18T04:06:24Z

    - Fix OSC regex to conform to ECMA-48 specification
      (0x08-0x0d and 0x20-0x7e for command string)
    - Add OSC 8 hyperlink tests

2.31 2026-01-11T02:25:18Z

    - restore EL (Erase Line) sequence when folding
    - fix padding calculation for run-in (remove @bg_stack hack)
    - document margin parameter

2.30 2025-02-13T12:31:56Z

    - add Default_Ignorable_Code_Point to non-spacing character
    - CR at the end of string does not reset the position

2.29 2025-01-30T07:26:13Z

    - use Text::VisualWidth::PP@0.07
      this enables handling Emoji_Modifier and Zero_Width_Joiner

2.28 2025-01-27T13:22:37Z

    - imcomplete CSI sequence consumes zero width

2.2702 2024-12-30T23:48:13Z

    - rename "crackwide" to "splitwide"

2.2701 2024-11-20T09:41:03Z

    - improve "crackwide" behavior

2.27 2024-11-20T07:12:51Z

    - introduce "crackwide" and "lefthalf/righthalf" parameter

2.26 2024-11-17T09:01:37Z

    - treat VT as EOL as well
    - disable padding when width is negative

2.25 2024-11-15T07:43:18Z

    - treat NULL and "line/paragraph separator" as end-of-line
    - improve backspace handing
    - write CONTROL CHARACTERS section

2.24 2024-11-10T09:43:35Z

    - Improve formfeed character handling

2.23 2024-04-16T08:36:06Z

    - Rename tabstyle name 'pin' to 'needle'.

2.22 2024-03-23T09:22:27Z

    - Add new tabstyle (blank, triangle) and rename bar -> pin.

2.2104 2023-11-29T08:59:32Z

    - Localize $Text::VisualWidth::PP::EastAsian.

2.2103 2023-11-28T00:23:14Z

    - Validate given width is an integer.

2.2102 2023-02-20T09:52:02Z

    - Fix a bug of Hangul word bondary length calculation.

2.2101 2023-02-14T10:09:52Z

    - Avoid the panic caused by escape only line.

2.20 2023-02-07T14:19:18Z

    - Treat \p{Greek}, \p{Cyrillic}, \p{Hangul} as word character as well.

2.19 2023-01-06T02:30:22Z

    - Allow double-struck run-in/out characters with backspace.
    - Move git repository.

2.18 2023-01-05T06:24:41Z

    - Allow boundary word to include backspaces.

2.17 2022-12-19T10:07:17Z

    - Add middle-dot and emspace tabstyles.

2.16 2022-10-07T06:27:16Z

    - Make :regex tagged variables exportable.

2.15 2022-09-26T01:13:52Z

    - Fix bug of --boundary=word does not work with --prefix option.

2.14 2022-08-31T10:24:09Z

    - Method "text" has :lvalue attribute and is now assignable.
    - Non-number width parameter causes fatal error in fold().

2.1301 2022-08-05T08:10:23Z

    - Fix bug of losing "0" with word-boundary.

2.13 2022-03-02T05:13:45Z

    - Introduce "prefix" parameter.

2.12 2021-10-15T02:53:14Z

    - Accept 8-bit CSI and OSC sequence.
    - Avoid v5.16 error by loading 'charnames' only when < v5.16.

2.1101 2021-09-06T06:34:56Z

    - Fix bug of leaving EL after RESET when run-in.

2.11 2021-08-07T03:24:46Z

    - Make boundary parameter to take 'space' value.

2.10 2021-04-09T10:12:10Z

    - Add some new tab styles.
    - Accept multiple styles.

2.0903 2021-03-13T14:12:27Z

    - Fix option processing order bug. (sigh...)

2.0902 2021-03-13T07:11:48Z

    - Fix error message bugs.

2.0901 2021-03-13T06:52:47Z

    - Make 'tabstyle' option overridable by following options.

2.09 2021-03-13T05:44:34Z

    - Introduce 'tabstyle' option.

2.08 2020-12-16T05:03:22Z

    - Introduce 'tabhead' and 'tabspace' options.

2.07 2020-11-20T08:54:39Z

    - Add dependency for List::Util.

2.06 2020-11-12T04:18:29Z

    - More robust definition of CSI sequence.
    - Change keep_el -> discard.

2.05 2020-11-11T08:24:22Z

    - Fix word boundary handling bug introduced at 2.03.

2.04 2020-11-06T04:20:15Z

    - Add keep_el parameter to control keep Erase Line or not.

2.03 2020-11-06T03:29:06Z

    - Remember color at erase line sequence, and apply to padding string.

2.02 2020-11-04T05:31:35Z

    - Support backspaces.

2.01 2020-10-20T11:36:15Z

    - Implement tab expansion.

1.10 2020-09-19T04:56:59Z

    - Add prefix/postfix characters to prohibition rule.

1.09 2020-09-09T14:13:08Z

    - Update W3C.pm to 2020 version.

1.08 2020-07-13T00:05:27Z

    - Width parameter can take negative value and get the all rest.

1.07 2020-07-04T05:54:58Z

    - Eliminate indirect object call.

1.06 2020-06-09T06:30:59Z

    - Fix ANSI reset handling bug.

1.05 2020-04-28T08:34:30Z

    - Conform to ECMA-48 OPERATING SYSTEM COMMAND string terminator.

1.04 2020-04-03T01:26:58Z

    - Conform to ECMA-48 OPERATING SYSTEM COMMAND definition.

1.03 2020-03-30T14:10:39Z

    - Accept 0 in chops width array.

1.02 2019-11-02T01:51:42Z

    - Implement margin option and refine ANSI code handling.

1.01 2019-10-22T00:03:54Z

    - Implement line-break control (KINSOKU) for Japanese.

0.07 2019-09-19T12:11:24Z

    - configure() create private object when called by class method.
    - Make retrieve method handle padding properly.

0.06 2019-06-20T12:53:16Z

    - Ignore trailing formfeed and carriage return.

0.05 2018-12-07T00:54:35Z

    - Update "chops" funciton to accept array reference.

0.04 2018-11-19T05:10:31Z

    - Update "retrieve" function to take parameters.

0.03 2018-10-23T09:19:57Z

    - Add App::ansifold notation.

0.02 2018-07-21T14:56:01Z

    - Introduce string holding mechanism, with text() and chops() method.

0.01 2018-07-20T08:12:31Z

    - original version

