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: . MySQLDynXML | mcbrown | 29 Aug |