diff -pruN 1.776-1/Changes 1.777-1/Changes
--- 1.776-1/Changes	2025-09-26 06:48:34.000000000 +0000
+++ 1.777-1/Changes	2025-10-15 07:21:02.000000000 +0000
@@ -1,6 +1,10 @@
 Revision history for Term::Choose
 
 
+1.777   2025-10-15
+    - Set the width of all format code points to zero.
+    - Minor corrections to documentation
+
 1.776   2025-09-26
     - Unicode 17.
 
diff -pruN 1.776-1/META.json 1.777-1/META.json
--- 1.776-1/META.json	2025-09-26 08:23:25.000000000 +0000
+++ 1.777-1/META.json	2025-10-15 07:43:13.000000000 +0000
@@ -39,7 +39,7 @@
          "requires" : {
             "Carp" : "0",
             "Exporter" : "0",
-            "Term::Choose::LineFold::XS" : "0.003",
+            "Term::Choose::LineFold::XS" : "0.004",
             "constant" : "0",
             "perl" : "5.010001",
             "strict" : "0",
@@ -58,6 +58,6 @@
          "web" : "https://github.com/kuerbis/Term-Choose"
       }
    },
-   "version" : "1.776",
+   "version" : "1.777",
    "x_serialization_backend" : "JSON::PP version 4.16"
 }
diff -pruN 1.776-1/META.yml 1.777-1/META.yml
--- 1.776-1/META.yml	2025-09-26 08:23:25.000000000 +0000
+++ 1.777-1/META.yml	2025-10-15 07:43:13.000000000 +0000
@@ -25,7 +25,7 @@ no_index:
 requires:
   Carp: '0'
   Exporter: '0'
-  Term::Choose::LineFold::XS: '0.003'
+  Term::Choose::LineFold::XS: '0.004'
   constant: '0'
   perl: '5.010001'
   strict: '0'
@@ -33,5 +33,5 @@ requires:
 resources:
   bugtracker: https://github.com/kuerbis/Term-Choose/issues
   repository: https://github.com/kuerbis/Term-Choose.git
-version: '1.776'
+version: '1.777'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.020'
diff -pruN 1.776-1/Makefile.PL 1.777-1/Makefile.PL
--- 1.776-1/Makefile.PL	2025-09-26 00:37:09.000000000 +0000
+++ 1.777-1/Makefile.PL	2025-10-15 07:21:26.000000000 +0000
@@ -20,7 +20,7 @@ if ( $^O eq 'MSWin32' ) {
 my $has_xs = eval { require Term::Choose::LineFold::XS };
 my %prereqs_xs;
 if ( $has_xs ) {
-    %prereqs_xs = ( 'Term::Choose::LineFold::XS' => '0.003', );
+    %prereqs_xs = ( 'Term::Choose::LineFold::XS' => '0.004', );
 }
 
 
diff -pruN 1.776-1/debian/changelog 1.777-1/debian/changelog
--- 1.776-1/debian/changelog	2025-09-28 21:12:02.000000000 +0000
+++ 1.777-1/debian/changelog	2025-10-21 19:15:52.000000000 +0000
@@ -1,3 +1,10 @@
+libterm-choose-perl (1.777-1) unstable; urgency=medium
+
+  * Import upstream version 1.777.
+  * Bump test and runtime dependency on libterm-choose-linefold-xs-perl.
+
+ -- gregor herrmann <gregoa@debian.org>  Tue, 21 Oct 2025 21:15:52 +0200
+
 libterm-choose-perl (1.776-1) unstable; urgency=medium
 
   * Import upstream version 1.776.
diff -pruN 1.776-1/debian/control 1.777-1/debian/control
--- 1.776-1/debian/control	2025-09-28 21:12:02.000000000 +0000
+++ 1.777-1/debian/control	2025-10-21 19:15:52.000000000 +0000
@@ -8,7 +8,7 @@ Testsuite: autopkgtest-pkg-perl
 Build-Depends:
  debhelper-compat (= 13),
 Build-Depends-Indep:
- libterm-choose-linefold-xs-perl (>= 0.003) <!nocheck>,
+ libterm-choose-linefold-xs-perl (>= 0.004) <!nocheck>,
  libterm-readkey-perl <!nocheck>,
  libtest-fatal-perl <!nocheck>,
  perl,
@@ -22,7 +22,7 @@ Depends:
  ${misc:Depends},
  ${perl:Depends},
 Recommends:
- libterm-choose-linefold-xs-perl (>= 0.003),
+ libterm-choose-linefold-xs-perl (>= 0.004),
  libterm-readkey-perl,
 Description: module to choose items from a list interactively
  Term::Choose allows one to create prompts where the user can choose
diff -pruN 1.776-1/lib/Term/Choose/Constants.pm 1.777-1/lib/Term/Choose/Constants.pm
--- 1.776-1/lib/Term/Choose/Constants.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/Constants.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Exporter qw( import );
 
diff -pruN 1.776-1/lib/Term/Choose/LineFold/PP/CharWidthAmbiguousWide.pm 1.777-1/lib/Term/Choose/LineFold/PP/CharWidthAmbiguousWide.pm
--- 1.776-1/lib/Term/Choose/LineFold/PP/CharWidthAmbiguousWide.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/LineFold/PP/CharWidthAmbiguousWide.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Exporter qw( import );
 
@@ -154,7 +154,9 @@ sub table_char_width { [
 [   0x5c4,    0x5c5, 0],
 [   0x5c6,    0x5c6, 1],
 [   0x5c7,    0x5c7, 0],
-[   0x5c8,    0x60f, 1],
+[   0x5c8,    0x5ff, 1],
+[   0x600,    0x605, 0],
+[   0x606,    0x60f, 1],
 [   0x610,    0x61a, 0],
 [   0x61b,    0x61b, 1],
 [   0x61c,    0x61c, 0],
@@ -163,8 +165,8 @@ sub table_char_width { [
 [   0x660,    0x66f, 1],
 [   0x670,    0x670, 0],
 [   0x671,    0x6d5, 1],
-[   0x6d6,    0x6dc, 0],
-[   0x6dd,    0x6de, 1],
+[   0x6d6,    0x6dd, 0],
+[   0x6de,    0x6de, 1],
 [   0x6df,    0x6e4, 0],
 [   0x6e5,    0x6e6, 1],
 [   0x6e7,    0x6e8, 0],
@@ -192,12 +194,12 @@ sub table_char_width { [
 [   0x829,    0x82d, 0],
 [   0x82e,    0x858, 1],
 [   0x859,    0x85b, 0],
-[   0x85c,    0x896, 1],
+[   0x85c,    0x88f, 1],
+[   0x890,    0x891, 0],
+[   0x892,    0x896, 1],
 [   0x897,    0x89f, 0],
 [   0x8a0,    0x8c9, 1],
-[   0x8ca,    0x8e1, 0],
-[   0x8e2,    0x8e2, 1],
-[   0x8e3,    0x902, 0],
+[   0x8ca,    0x902, 0],
 [   0x903,    0x939, 1],
 [   0x93a,    0x93a, 0],
 [   0x93b,    0x93b, 1],
diff -pruN 1.776-1/lib/Term/Choose/LineFold/PP/CharWidthDefault.pm 1.777-1/lib/Term/Choose/LineFold/PP/CharWidthDefault.pm
--- 1.776-1/lib/Term/Choose/LineFold/PP/CharWidthDefault.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/LineFold/PP/CharWidthDefault.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Exporter qw( import );
 
@@ -34,7 +34,9 @@ sub table_char_width { [
 [   0x5c4,    0x5c5, 0],
 [   0x5c6,    0x5c6, 1],
 [   0x5c7,    0x5c7, 0],
-[   0x5c8,    0x60f, 1],
+[   0x5c8,    0x5ff, 1],
+[   0x600,    0x605, 0],
+[   0x606,    0x60f, 1],
 [   0x610,    0x61a, 0],
 [   0x61b,    0x61b, 1],
 [   0x61c,    0x61c, 0],
@@ -43,8 +45,8 @@ sub table_char_width { [
 [   0x660,    0x66f, 1],
 [   0x670,    0x670, 0],
 [   0x671,    0x6d5, 1],
-[   0x6d6,    0x6dc, 0],
-[   0x6dd,    0x6de, 1],
+[   0x6d6,    0x6dd, 0],
+[   0x6de,    0x6de, 1],
 [   0x6df,    0x6e4, 0],
 [   0x6e5,    0x6e6, 1],
 [   0x6e7,    0x6e8, 0],
@@ -72,12 +74,12 @@ sub table_char_width { [
 [   0x829,    0x82d, 0],
 [   0x82e,    0x858, 1],
 [   0x859,    0x85b, 0],
-[   0x85c,    0x896, 1],
+[   0x85c,    0x88f, 1],
+[   0x890,    0x891, 0],
+[   0x892,    0x896, 1],
 [   0x897,    0x89f, 0],
 [   0x8a0,    0x8c9, 1],
-[   0x8ca,    0x8e1, 0],
-[   0x8e2,    0x8e2, 1],
-[   0x8e3,    0x902, 0],
+[   0x8ca,    0x902, 0],
 [   0x903,    0x939, 1],
 [   0x93a,    0x93a, 0],
 [   0x93b,    0x93b, 1],
diff -pruN 1.776-1/lib/Term/Choose/LineFold/PP.pm 1.777-1/lib/Term/Choose/LineFold/PP.pm
--- 1.776-1/lib/Term/Choose/LineFold/PP.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/LineFold/PP.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Exporter qw( import );
 
diff -pruN 1.776-1/lib/Term/Choose/LineFold.pm 1.777-1/lib/Term/Choose/LineFold.pm
--- 1.776-1/lib/Term/Choose/LineFold.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/LineFold.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Exporter qw( import );
 
@@ -195,7 +195,7 @@ Term::Choose::LineFold
 
 =head1 VERSION
 
-Version 1.776
+Version 1.777
 
 =cut
 
diff -pruN 1.776-1/lib/Term/Choose/Linux.pm 1.777-1/lib/Term/Choose/Linux.pm
--- 1.776-1/lib/Term/Choose/Linux.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/Linux.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Term::Choose::Constants qw( :all );
 use Term::Choose::Screen    qw( hide_cursor show_cursor normal );
diff -pruN 1.776-1/lib/Term/Choose/Opt/Mouse.pm 1.777-1/lib/Term/Choose/Opt/Mouse.pm
--- 1.776-1/lib/Term/Choose/Opt/Mouse.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/Opt/Mouse.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Term::Choose::Constants qw( :all );
 
diff -pruN 1.776-1/lib/Term/Choose/Opt/Search.pm 1.777-1/lib/Term/Choose/Opt/Search.pm
--- 1.776-1/lib/Term/Choose/Opt/Search.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/Opt/Search.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Term::Choose::Constants qw( ROW COL );
 use Term::Choose::Screen    qw( up clear_to_end_of_screen show_cursor hide_cursor );
diff -pruN 1.776-1/lib/Term/Choose/Opt/SkipItems.pm 1.777-1/lib/Term/Choose/Opt/SkipItems.pm
--- 1.776-1/lib/Term/Choose/Opt/SkipItems.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/Opt/SkipItems.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Term::Choose::Constants qw( :all );
 
diff -pruN 1.776-1/lib/Term/Choose/Screen.pm 1.777-1/lib/Term/Choose/Screen.pm
--- 1.776-1/lib/Term/Choose/Screen.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/Screen.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Exporter qw( import );
 
diff -pruN 1.776-1/lib/Term/Choose/ValidateOptions.pm 1.777-1/lib/Term/Choose/ValidateOptions.pm
--- 1.776-1/lib/Term/Choose/ValidateOptions.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/ValidateOptions.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 use Exporter qw( import );
 
diff -pruN 1.776-1/lib/Term/Choose/Win32.pm 1.777-1/lib/Term/Choose/Win32.pm
--- 1.776-1/lib/Term/Choose/Win32.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose/Win32.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 
 
 use Encode qw( decode );
diff -pruN 1.776-1/lib/Term/Choose.pm 1.777-1/lib/Term/Choose.pm
--- 1.776-1/lib/Term/Choose.pm	2025-09-25 14:26:12.000000000 +0000
+++ 1.777-1/lib/Term/Choose.pm	2025-10-15 07:22:00.000000000 +0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use 5.10.1;
 
-our $VERSION = '1.776';
+our $VERSION = '1.777';
 use Exporter 'import';
 our @EXPORT_OK = qw( choose );
 
@@ -1280,7 +1280,7 @@ Term::Choose - Choose items from a list
 
 =head1 VERSION
 
-Version 1.776
+Version 1.777
 
 =cut
 
@@ -1911,10 +1911,10 @@ implementations, providing faster perfor
 
 =head3 Term::ReadKey
 
-If L<Term::ReadKey> is available it is used C<ReadKey> to read the user input and C<GetTerminalSize> to get the
-terminal size. Without C<Term::ReadKey> C<getc> is used to read the input and C<stty size> to get the terminal size.
+If L<Term::ReadKey> is available, C<ReadKey> is used to read the user input and C<GetTerminalSize> to get the
+terminal size. Without C<Term::ReadKey>, C<getc> is used to read the input and C<stty size> to get the terminal size.
 
-If the OS is MSWin32 it is used L<Win32::Console> to read the user input and to get the terminal size.
+If the OS is MSWin32, it is used L<Win32::Console> to read the user input and to get the terminal size.
 
 =head2 Decoded strings
 
diff -pruN 1.776-1/tools/build_TCF_char_width_table_modules.pl 1.777-1/tools/build_TCF_char_width_table_modules.pl
--- 1.776-1/tools/build_TCF_char_width_table_modules.pl	2025-09-25 13:54:47.000000000 +0000
+++ 1.777-1/tools/build_TCF_char_width_table_modules.pl	2025-10-11 08:00:20.000000000 +0000
@@ -103,8 +103,8 @@ for my $c ( 0x0 .. 0x10ffff ) {
     my $east_asian_width = width_east_asian( $east_asian_width_table, $c );
     my $print_width;
     if ( $category =~ /^(?:Cc|Cs)\z/ ) {
-        # Other, control
-        # Other, surrogate
+        # Cc = Control
+        # Cs = Surrogate
         $print_width = [ -1, -1 ];
     }
     elsif ( $c == 0x00AD ) {
@@ -113,20 +113,15 @@ for my $c ( 0x0 .. 0x10ffff ) {
         # Ambiguous
         $print_width = [ 1, 2 ];
     }
-    elsif ( $category =~ /^(?:Mn|Me)\z/ ) {
-        # Mn = Mark, nonspacing
-        # Me = Mark, enclosing
-        # categories might not be up to date
-        $print_width = [ 0, 0 ];
-    }
-    elsif ( $category eq 'Cf' && $bidi_class ne 'AN' ) {
-        # Cf = Other, format
-        # AN = bidi clas arbic number
-        # https://www.unicode.org/versions/Unicode14.0.0/ch09.pdf # 9.2 Arabic -> Signs Spanning Numbers -> Unlike ...
+    elsif ( $c >= 0x1160 && $c <= 0x11FF || $c >= 0x0D7B0 && $c <= 0x0D7FF ) {
+        # https://devblogs.microsoft.com/oldnewthing/20201009-00/?p=104351
         $print_width = [ 0, 0 ];
     }
-    elsif ( $c >= 0x1160 && $c <= 0x11FF || $c >= 0x0D7B0 && $c <= 0x0D7FF ) {
-#        # https://devblogs.microsoft.com/oldnewthing/20201009-00/?p=104351
+    elsif ( $category =~ /^(?:Cf|Me|Mn)\z/ ) {
+        # Cf = Format
+        # Me = Enclosing Mark
+        # Mn = Nonspacing Mark
+        # categories might not be up to date
         $print_width = [ 0, 0 ];
     }
     elsif ( $east_asian_width =~ /^(?:W|F)\z/ ) {
@@ -135,7 +130,7 @@ for my $c ( 0x0 .. 0x10ffff ) {
         $print_width = [ 2, 2 ];
     }
     elsif ( $east_asian_width eq 'A' ) {
-        # A = Ambiguous,
+        # A = Ambiguous
         $print_width = [ 1, 2 ];
     }
     else {
diff -pruN 1.776-1/tools/update_version.pl 1.777-1/tools/update_version.pl
--- 1.776-1/tools/update_version.pl	2025-09-25 14:25:39.000000000 +0000
+++ 1.777-1/tools/update_version.pl	2025-10-15 07:22:07.000000000 +0000
@@ -9,8 +9,8 @@ use FindBin;
 
 
 
-my $old = '1.775';
-my $new = '1.776';
+my $old = '1.776';
+my $new = '1.777';
  
 my $pattern_our = qr/^our \$VERSION = '\Q$old\E';/;
 my $replacement_our = "our \$VERSION = '$new';";
diff -pruN 1.776-1/xt/prereqs.t 1.777-1/xt/prereqs.t
--- 1.776-1/xt/prereqs.t	2025-04-26 18:32:29.000000000 +0000
+++ 1.777-1/xt/prereqs.t	2025-09-26 15:30:56.000000000 +0000
@@ -13,6 +13,9 @@ prereq_ok( undef, [
             Win32::Console::ANSI
             Win32::Console::PatchForRT33513
 
+            Term::Choose
+            Term::Choose::LineFold::PP
+
             Term::Form::ReadLine
 
             Data_Test_Arguments Data_Test_Choose
diff -pruN 1.776-1/xt/vars.t 1.777-1/xt/vars.t
--- 1.776-1/xt/vars.t	2025-04-27 07:02:51.000000000 +0000
+++ 1.777-1/xt/vars.t	2025-09-26 15:36:38.000000000 +0000
@@ -6,6 +6,8 @@ use Test::Vars tests => $^O eq 'MSWin32'
 
 vars_ok( 'lib/Term/Choose/Screen.pm', ignore_vars => [ '$size' ] );
 
+vars_ok( 'lib/Term/Choose/Linux.pm', ignore_vars => [ '$mode_stty' ] ); ##
+
 
 my @modules = qw(
 lib/Term/Choose.pm
@@ -14,7 +16,6 @@ lib/Term/Choose/LineFold.pm
 lib/Term/Choose/LineFold/PP.pm
 lib/Term/Choose/LineFold/PP/CharWidthAmbiguousWide.pm
 lib/Term/Choose/LineFold/PP/CharWidthDefault.pm
-lib/Term/Choose/Linux.pm
 lib/Term/Choose/Opt/Mouse.pm
 lib/Term/Choose/Opt/Search.pm
 lib/Term/Choose/Opt/SkipItems.pm
