[gnumeric] Fix a regression in chart series evaluation. [#624263]



commit 7caba53cd0c883e309482a013df59b1d0b97315d
Author: Jean Brefort <jean brefort normalesup org>
Date:   Tue Jul 13 21:17:35 2010 +0200

    Fix a regression in chart series evaluation. [#624263]

 ChangeLog                |    4 ++++
 NEWS                     |    3 ++-
 plugins/excel/ChangeLog  |    4 ++++
 plugins/excel/ms-chart.c |    2 +-
 src/graph.c              |   25 ++++++++++++-------------
 5 files changed, 23 insertions(+), 15 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 44f00f6..0bc5f78 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2010-07-13  Jean Brefort  <jean brefort normalesup org>
 
+	* src/graph.c (gnm_go_data_vector_load_len): fixed a regression. [#624263]
+
+2010-07-13  Jean Brefort  <jean brefort normalesup org>
+
 	* src/cell-draw.c (cell_calc_layout): fixed alignment in cells with rtl
 	text and rtl sheets. [see #623241]
 	* src/cellspan.c (cell_calc_span): ditto.
diff --git a/NEWS b/NEWS
index 3f23482..8049757 100644
--- a/NEWS
+++ b/NEWS
@@ -31,7 +31,8 @@ Andreas:
 
 Jean:
 	* Fix strong/weak cursor display. [#623241]
-	* Fix regression in ms_excel_chart_read. [#623960]I
+	* Fix regression in ms_excel_chart_read. [#623960]
+	* Fix a regression in chart series evaluation. [#624263]
 	* Install a self-consistent headers list.
 
 Morten:
diff --git a/plugins/excel/ChangeLog b/plugins/excel/ChangeLog
index 116b6b8..dbdcc05 100644
--- a/plugins/excel/ChangeLog
+++ b/plugins/excel/ChangeLog
@@ -1,3 +1,7 @@
+2010-07-13  Jean Brefort  <jean brefort normalesup org>
+
+	* ms-chart.c (chart_write_AREAFORMAT): fixed the auto flag. [see #624263]
+
 2010-07-10  Jean Brefort  <jean brefort normalesup org>
 
 	* ms-chart.c (end): do not crash when a chart has more than one
diff --git a/plugins/excel/ms-chart.c b/plugins/excel/ms-chart.c
index 08fdcea..52fbb1c 100644
--- a/plugins/excel/ms-chart.c
+++ b/plugins/excel/ms-chart.c
@@ -4010,7 +4010,7 @@ chart_write_AREAFORMAT (XLChartWriteState *s, GOStyle const *style, gboolean dis
 			break;
 		}
 
-		if (style->fill.auto_back && !disable_auto)
+		if (style->fill.auto_type && style->fill.auto_fore && style->fill.auto_back && !disable_auto)
 			flags |= 1;
 		if (style->fill.invert_if_negative)
 			flags |= 2;
diff --git a/src/graph.c b/src/graph.c
index ef93791..78c3034 100644
--- a/src/graph.c
+++ b/src/graph.c
@@ -482,23 +482,22 @@ gnm_go_data_vector_load_len (GODataVector *dat)
 
 	eval_pos_init_dep (&ep, &vec->dep);
 	if (vec->val == NULL && vec->dep.texpr != NULL) {
-		if (gnm_expr_is_rangeref (vec->dep.texpr->expr)) {
+		GSList *l;
+		if (gnm_expr_is_rangeref (vec->dep.texpr->expr) && ((l = gnm_expr_top_get_ranges (vec->dep.texpr)))) {
 			GSList *l = gnm_expr_top_get_ranges (vec->dep.texpr);
 			unsigned len = g_slist_length (l);
-			if (l) {
-				if (l->next == NULL) /* only one range */
-					vec->val = (GnmValue *) l->data;
-				else {
-					GSList *cur = l;
-					unsigned i;
-					vec->val = value_new_array_empty (len, 1);
-					for (i = 0; i < len; i++) {
-						vec->val->v_array.vals[i][0] = (GnmValue *) cur->data;
-						cur = cur->next;
-					}
+			if (l->next == NULL) /* only one range */
+				vec->val = (GnmValue *) l->data;
+			else {
+				GSList *cur = l;
+				unsigned i;
+				vec->val = value_new_array_empty (len, 1);
+				for (i = 0; i < len; i++) {
+					vec->val->v_array.vals[i][0] = (GnmValue *) cur->data;
+					cur = cur->next;
 				}
-				g_slist_free (l);
 			}
+			g_slist_free (l);
 		} else {
 			vec->val = gnm_expr_top_eval (vec->dep.texpr, &ep,
 				GNM_EXPR_EVAL_PERMIT_NON_SCALAR | GNM_EXPR_EVAL_PERMIT_EMPTY);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]