Bug 757125 - Make updateOperatorDictionary.pl read mirrorable property. r=karlt
authorFrédéric Wang <fred.wang@free.fr>
Mon, 28 May 2012 21:09:25 -0400
changeset 99645 57819b266920075e840a976ef14fd1f439eb488e
parent 99644 6d605438199cf30d64ee530986668e182292f6b1
child 99646 f0c3e8edc333d54052d87df47d4035519cc81bfc
push id173
push userlsblakk@mozilla.com
push dateFri, 24 Aug 2012 15:39:16 +0000
treeherdermozilla-release@bcc45eb1fb41 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskarlt
bugs757125
milestone15.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 757125 - Make updateOperatorDictionary.pl read mirrorable property. r=karlt
layout/mathml/operatorDictionary.xsl
layout/mathml/updateOperatorDictionary.pl
--- a/layout/mathml/operatorDictionary.xsl
+++ b/layout/mathml/operatorDictionary.xsl
@@ -42,16 +42,19 @@
           <xsl:if test="@*[.='true']">
             <xsl:attribute name="properties">
               <!-- largeop, movablelimits, stretchy, separator, accent, fence,
                    symmetric -->
               <xsl:for-each select="@*[.='true']">
                 <xsl:value-of select="name()"/>
                 <xsl:text> </xsl:text>
               </xsl:for-each>
+              <xsl:if test="../unicodedata/@mirror = 'Y'">
+                <xsl:text>mirrorable </xsl:text>
+              </xsl:if>
             </xsl:attribute> 
           </xsl:if>
           <xsl:if test="@priority">
             <xsl:attribute name="priority">
               <xsl:value-of select="@priority"/>
             </xsl:attribute> 
           </xsl:if>
           <xsl:if test="@linebreakstyle">
--- a/layout/mathml/updateOperatorDictionary.pl
+++ b/layout/mathml/updateOperatorDictionary.pl
@@ -292,23 +292,23 @@ for ($i = 0; $i < $n; $i++) {
     $_ = $entry->getAttribute("properties");
     $value[4] = (m/^(.*)largeop(.*)$/);
     $value[5] = (m/^(.*)movablelimits(.*)$/);
     $value[6] = (m/^(.*)stretchy(.*)$/);
     $value[7] = (m/^(.*)separator(.*)$/);
     $value[8] = (m/^(.*)accent(.*)$/);
     $value[9] = (m/^(.*)fence(.*)$/);
     $value[10] = (m/^(.*)symmetric(.*)$/);
+    $value[15] = (m/^(.*)mirrorable(.*)$/);
     $value[11] = $entry->getAttribute("priority");
     $value[12] = $entry->getAttribute("linebreakstyle");
 
     # not stored in the WG dictionary
     $value[13] = ""; # direction
     $value[14] = ""; # integral
-    $value[15] = ""; # mirrorable
 
     # 3.3) save the key and value
     push(@wg_keys, $key);
     $wg_hash{$key} = [ @value ];
 }
 $doc->dispose;
 @wg_keys = reverse(@wg_keys);
 
@@ -425,16 +425,17 @@ sub generateCommon {
     if ($v[3] ne "1") { $entry = "$entry minsize:$v[3]"; }
     if ($v[4]) { $entry = "$entry largeop"; }
     if ($v[5]) { $entry = "$entry movablelimits"; }
     if ($v[6]) { $entry = "$entry stretchy"; }
     if ($v[7]) { $entry = "$entry separator"; }
     if ($v[8]) { $entry = "$entry accent"; }
     if ($v[9]) { $entry = "$entry fence"; }
     if ($v[10]) { $entry = "$entry symmetric"; }
+    if ($v[15]) { $entry = "$entry mirrorable"; }
     return $entry;
 }
 
 sub completeCommon {
     # helper to add key and private data to generateCommon
     my($entry, $key, @v_moz, @v_wg) = @_;
     
     $entry = "$key = $entry";