Revision: 8986
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8986&view=rev
Author:   mdboom
Date:     2011-02-17 15:51:17 +0000 (Thu, 17 Feb 2011)

Log Message:
-----------
Fix long Unicode characters in SVG backend (fixes mathtext_stixsans test on 
narrow Python builds.)

Modified Paths:
--------------
    trunk/matplotlib/lib/matplotlib/backends/backend_svg.py
    trunk/matplotlib/lib/matplotlib/mathtext.py

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_svg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_svg.py     2011-02-17 
15:50:47 UTC (rev 8985)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_svg.py     2011-02-17 
15:51:17 UTC (rev 8986)
@@ -603,7 +603,7 @@
         if rcParams['svg.embed_char_paths']:
             new_chars = []
             for c in s:
-                path = self._add_char_def(prop, c)
+                path = self._add_char_def(prop, ord(c))
                 if path is not None:
                     new_chars.append(path)
             if len(new_chars):
@@ -628,7 +628,7 @@
             lastgind = None
             currx = 0
             for c in s:
-                charnum = self._get_char_def_id(prop, c)
+                charnum = self._get_char_def_id(prop, ord(c))
                 ccode = ord(c)
                 gind = cmap.get(ccode)
                 if gind is None:
@@ -680,13 +680,13 @@
             font = prop
         font.set_size(self.FONT_SCALE, 72)
         ps_name = font.get_sfnt()[(1,0,0,6)]
-        char_id = urllib.quote('%s-%d' % (ps_name, ord(char)))
+        char_id = urllib.quote('%s-%d' % (ps_name, char))
         char_num = self._char_defs.get(char_id, None)
         if char_num is not None:
             return None
 
         path_data = []
-        glyph = font.load_char(ord(char), flags=LOAD_NO_HINTING)
+        glyph = font.load_char(char, flags=LOAD_NO_HINTING)
         currx, curry = 0.0, 0.0
         for step in glyph.path:
             if step[0] == 0:   # MOVE_TO
@@ -724,7 +724,7 @@
             font = prop
         font.set_size(self.FONT_SCALE, 72)
         ps_name = font.get_sfnt()[(1,0,0,6)]
-        char_id = urllib.quote('%s-%d' % (ps_name, ord(char)))
+        char_id = urllib.quote('%s-%d' % (ps_name, char))
         return self._char_defs[char_id]
 
     def _draw_mathtext(self, gc, x, y, s, prop, angle):
@@ -742,8 +742,8 @@
 
         if rcParams['svg.embed_char_paths']:
             new_chars = []
-            for font, fontsize, thetext, new_x, new_y_mtc, metrics in 
svg_glyphs:
-                path = self._add_char_def(font, thetext)
+            for font, fontsize, char, new_x, new_y_mtc, metrics in svg_glyphs:
+                path = self._add_char_def(font, char)
                 if path is not None:
                     new_chars.append(path)
             if len(new_chars):
@@ -760,8 +760,8 @@
                 svg.append('translate(%f,%f)' % (x, y))
             svg.append('">\n')
 
-            for font, fontsize, thetext, new_x, new_y_mtc, metrics in 
svg_glyphs:
-                charid = self._get_char_def_id(font, thetext)
+            for font, fontsize, char, new_x, new_y_mtc, metrics in svg_glyphs:
+                charid = self._get_char_def_id(font, char)
 
                 svg.append('<use xlink:href="#%s" 
transform="translate(%f,%f)scale(%f)"/>\n' %
                            (charid, new_x, -new_y_mtc, fontsize / 
self.FONT_SCALE))

Modified: trunk/matplotlib/lib/matplotlib/mathtext.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mathtext.py 2011-02-17 15:50:47 UTC (rev 
8985)
+++ trunk/matplotlib/lib/matplotlib/mathtext.py 2011-02-17 15:51:17 UTC (rev 
8986)
@@ -329,10 +329,9 @@
 
     def render_glyph(self, ox, oy, info):
         oy = self.height - oy + info.offset
-        thetext = unichr_safe(info.num)
 
         self.svg_glyphs.append(
-            (info.font, info.fontsize, thetext, ox, oy, info.metrics))
+            (info.font, info.fontsize, info.num, ox, oy, info.metrics))
 
     def render_rect_filled(self, x1, y1, x2, y2):
         self.svg_rects.append(


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to