texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

texinfo/tp Texinfo/Convert/Text.pm t/test_sort.t


From: Patrice Dumas
Subject: texinfo/tp Texinfo/Convert/Text.pm t/test_sort.t
Date: Thu, 21 Jul 2011 09:21:25 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        11/07/21 09:21:25

Modified files:
        tp/Texinfo/Convert: Text.pm 
        tp/t           : test_sort.t 

Log message:
        Fix @l and similar sorting, and add a test for sorting of index
        entries with letters.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Text.pm?cvsroot=texinfo&r1=1.41&r2=1.42
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_sort.t?cvsroot=texinfo&r1=1.6&r2=1.7

Patches:
Index: Texinfo/Convert/Text.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Text.pm,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- Texinfo/Convert/Text.pm     16 Jul 2011 06:37:48 -0000      1.41
+++ Texinfo/Convert/Text.pm     21 Jul 2011 09:21:24 -0000      1.42
@@ -135,9 +135,14 @@
 my %sort_brace_no_arg_commands = (
   'copyright' => 'C',
   'registeredsymbol' => 'R',
-  'today' => 't'
+  'today' => 't', 
 );
 
+foreach my $accent_letter ('o','O','l','L') {
+  $sort_brace_no_arg_commands{$accent_letter} = $accent_letter;
+}
+
+
 our %text_no_brace_commands = (
            '*', "\n",
            ' ', ' ',

Index: t/test_sort.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_sort.t,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- t/test_sort.t       22 Mar 2011 00:37:04 -0000      1.6
+++ t/test_sort.t       21 Jul 2011 09:21:25 -0000      1.7
@@ -1,7 +1,7 @@
 use strict;
 
 use Test::More;
-BEGIN { plan tests => 5 };
+BEGIN { plan tests => 6 };
 
 use lib '../texi2html/lib/Unicode-EastAsianWidth/lib/';
 use lib '../texi2html/lib/libintl-perl/lib/';
@@ -37,6 +37,7 @@
 @cindex @~e
 @cindex
 @cindex aaaaaaaaaaaa
address@hidden @l{}
 ');
 
 my ($index_names, $merged_indices, $index_entries) = 
@@ -49,8 +50,40 @@
 }
 
 # e is before E because they are equal and e appears before E in the document 
-my @entries_ref = ('!', '``', 'aaaaaaaaaaaa', 'e', 'E', 'e~');
+my @entries_ref = ('!', '``', 'aaaaaaaaaaaa', 'e', 'E', 'e~', 'l');
 
 cmp_deeply (address@hidden, address@hidden, 'sorted index entries');
 
+my $sorted_index_entries_by_letter 
+  = Texinfo::Structuring::sort_indices_by_letter($tree, $index_entries);
 
+my @letter_entries_ref = (
+   {'!' => [ '!' ]},
+   {'`' => [ '``' ]},
+   {'A' => [ 'aaaaaaaaaaaa' ]},
+   {'E' => [ 'e', 'E', 'e~']},
+   {'L' => [ 'l' ]},
+);
+ 
+my @letter_entries;
+foreach my $letter (@{$sorted_index_entries_by_letter->{'cp'}}) {
+  #my $letter_entry = {'letter' => $letter->{'letter'}};
+  my $letter_entry = {};
+  push @letter_entries, $letter_entry;
+  foreach my $entry (@{$letter->{'entries'}}) {
+    push @{$letter_entry->{$letter->{'letter'}}}, $entry->{'key'};
+  }
+}
+
+{
+local $Data::Dumper::Purity = 1;
+local $Data::Dumper::Maxdepth = 2;
+local $Data::Dumper::Indent = 1;
+#print STDERR "".Data::Dumper->Dump([$sorted_index_entries_by_letter])."\n";
+#foreach my $letter (@{$sorted_index_entries_by_letter->{'cp'}}) {
+#  print STDERR "AAA $letter->{'letter'} ".join('|',keys(%$letter))."\n";
+#}
+# print STDERR "".Data::Dumper->Dump(address@hidden)."\n";
+}
+
+cmp_deeply (address@hidden, address@hidden, 'by letter index entries');



reply via email to

[Prev in Thread] Current Thread [Next in Thread]