List:Commits« Previous MessageNext Message »
From:mcbrown Date:August 29 2007 10:16am
Subject:svn commit - mysqldoc@docsrva: r7575 - in trunk/tools: . MySQLDynXML
View as plain text  
Author: mcbrown
Date: 2007-08-29 12:16:35 +0200 (Wed, 29 Aug 2007)
New Revision: 7575

Log:
Adding compress_versions to core function list to compress versions from 5.1.1,5.1.2,5.1.3 to 5.1.1-5.1.3 (works on any list and any base list)
Added version compression to reservedwords output



Modified:
   trunk/tools/MySQLDynXML.pm
   trunk/tools/MySQLDynXML/ReservedWords.pm


Modified: trunk/tools/MySQLDynXML/ReservedWords.pm
===================================================================
--- trunk/tools/MySQLDynXML/ReservedWords.pm	2007-08-29 09:21:44 UTC (rev 7574)
+++ trunk/tools/MySQLDynXML/ReservedWords.pm	2007-08-29 10:16:35 UTC (rev 7575)
Changed blocks: 1, Lines Added: 4, Lines Deleted: 4; 1042 bytes

@@ -86,10 +86,10 @@
                  xml_entry(xml_literal($word),
                            sprintf('<footnote><para><literal>%s</literal> not reserved in: %s</para></footnote>")</entry>',
                                    $word,
-                                   join(', ',sort { $self->{notin}->{$word}->{$a} <=> 
-                                                        $self->{notin}->{$word}->{$b}}
-                                        keys  %{$self->{notin}->{$word}})
-                                   )));
+                                   join(', ',$self->{dynxmlcore}->compress_versions($self->{versions},$self->{notin}->{$word}))
+                                   )
+                           )
+                 );
         }
         else
         {


Modified: trunk/tools/MySQLDynXML.pm
===================================================================
--- trunk/tools/MySQLDynXML.pm	2007-08-29 09:21:44 UTC (rev 7574)
+++ trunk/tools/MySQLDynXML.pm	2007-08-29 10:16:35 UTC (rev 7575)
Changed blocks: 1, Lines Added: 72, Lines Deleted: 0; 2097 bytes

@@ -50,6 +50,78 @@
 
 }
 
+sub compress_versions
+{
+    my ($self,$baseversions,$versionlist) = @_;
+
+    my (@basesorted,@versorted) = ((),());
+
+    if (ref($baseversions) eq 'ARRAY')
+    {
+        @basesorted = sort { $self->vertodec($a) <=> $self->vertodec($b) } @{$baseversions};
+    }
+    elsif (ref($baseversions) eq 'HASH')
+    {
+        @basesorted = sort { $self->vertodec($a) <=> $self->vertodec($b) } keys %{$baseversions};
+    }
+
+    if (ref($versionlist) eq 'ARRAY')
+    {
+        @versorted = sort { $self->vertodec($a) <=> $self->vertodec($b) } @{$versionlist};
+    }
+    elsif (ref($versionlist) eq 'HASH')
+    {
+        @versorted = sort { $self->vertodec($a) <=> $self->vertodec($b) } keys %{$versionlist};
+    }
+
+    my $offset = 0;
+    my $first = $basesorted[0];
+    my $counter = 1;
+    my @compressed;
+
+    for(my $i=0;$i<scalar @versorted;$i++)
+    {
+        if ($versorted[$i] eq $basesorted[$i+$offset])
+        {
+            $counter++;
+            next;
+        }
+        else
+        {
+            # We're not in the sequence so create a compressed entry
+            if ($counter == 1)
+            {
+                push @compressed,$versorted[$i-1];
+            }
+            else
+            {
+                push @compressed,sprintf('%s-%s',$first,$versorted[$i-1]);
+            }
+            $first = $versorted[$i];
+            $counter = 1;
+            for (my $j = $i; $j < scalar(@basesorted);$j++)
+            {
+                if ($basesorted[$j] eq $versorted[$i])
+                {
+                    $offset = $j-$i;
+                    last;
+                }
+            }
+        }
+    }
+    if ($counter == 1)
+    {
+        push @compressed,$versorted[$i-1];
+    }
+    else
+    {
+        push @compressed,sprintf('%s-%s',$first,$versorted[$i-1]);
+    }
+
+    return @compressed;
+}
+
+
 sub vertodec
 {
     my ($self,$ver) = @_;


Thread
svn commit - mysqldoc@docsrva: r7575 - in trunk/tools: . MySQLDynXMLmcbrown29 Aug