Blob Blame History Raw
Quote escape sequences in pychart labels (e.g. '/')

2010-03-31  Miloslav Trma─Ź  <mitr@redhat.com>

	* src/report_tab.py (ReportTab.__repaint_chart): Quote all strings
	to protect against pychart escape sequences.

diff -r 467bd1382d59 -r 22497aedc623 src/report_tab.py
--- a/src/report_tab.py	Wed Mar 31 14:22:34 2010 +0200
+++ b/src/report_tab.py	Wed Mar 31 14:42:17 2010 +0200
@@ -30,6 +30,7 @@
 import pychart.canvas
 import pychart.category_coord
 import pychart.fill_style
+import pychart.font
 import pychart.legend
 import pychart.theme
 import rsvg
@@ -339,12 +340,12 @@
             return # Nothing to do
 
         if self.column_statistic is None:
-            data = [(row_range.get_label(), self.counts[row_range])
-                    for row_range in self.row_ranges]
+            data = [(pychart.font.quotemeta(row_range.get_label()),
+                     self.counts[row_range]) for row_range in self.row_ranges]
         else:
             data = []
             for row_range in self.row_ranges:
-                row = ([row_range.get_label()] +
+                row = ([pychart.font.quotemeta(row_range.get_label())] +
                        [self.counts.get((row_range, column_range))
                         for column_range in self.column_ranges])
                 data.append(row)
@@ -375,10 +376,9 @@
             legend = None
         else:
             legend = pychart.legend.T()
+        x_axis_label = pychart.font.quotemeta(self.row_statistic.field_name)
         area = pychart.area.T(size = (width, height),
-                              x_axis = pychart.axis.X(label =
-                                                      self.row_statistic.
-                                                      field_name),
+                              x_axis = pychart.axis.X(label = x_axis_label),
                               y_axis = pychart.axis.Y(format = '%d', label=''),
                               legend = legend,
                               x_coord = pychart.category_coord.T(data, 0),
@@ -393,9 +393,11 @@
         else:
             fill_it = pychart.fill_style.color_standards.iterate()
             for (col, column_range) in enumerate(self.column_ranges):
+                column_plot_label = pychart.font.quotemeta(column_range.
+                                                           get_label())
                 plot = pychart.bar_plot.T(data = data, hcol = col + 1,
                                           fill_style = fill_it.next(),
-                                          label = column_range.get_label(),
+                                          label = column_plot_label,
                                           cluster =
                                           (col, len(self.column_ranges)))
                 area.add_plot(plot)