[gnumeric] Correctly evaluate array fucntions used as vectors. [697281]



commit 5ce41f8b6c94520d8981ebfff7684535ae42da5c
Author: Jean Brefort <jean brefort normalesup org>
Date:   Thu Apr 4 20:01:08 2013 +0200

    Correctly evaluate array fucntions used as vectors. [697281]

 ChangeLog   |    5 +++++
 NEWS        |    1 +
 src/graph.c |    4 +++-
 3 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 0ce88f0..0bdb44a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2013-04-04  Jean Brefort  <jean brefort normalesup org>
 
+       * src/graph.c (gnm_go_data_vector_load_len): correctly evaluate array
+       fucntions used as vectors. [697281]
+
+2013-04-04  Jean Brefort  <jean brefort normalesup org>
+
        * src/graph.c (gnm_go_data_vector_load_values),
        (gnm_go_data_vector_get_str): fix values and strings loading in case of
        arrays. [697107]
diff --git a/NEWS b/NEWS
index 398cca6..1ebceda 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,7 @@ Dominique Leuenberger:
 Jean:
        * Fix problems with sheet widgets.  [#696533]
        * Fixed graph data loading from vectors that are array values. [#697107]
+       [697281]
 
 Morten:
        * Improve ssconvert error handling.  [#695529]
diff --git a/src/graph.c b/src/graph.c
index 45527b9..581a301 100644
--- a/src/graph.c
+++ b/src/graph.c
@@ -35,6 +35,7 @@
 #include "auto-format.h"
 #include "ranges.h"
 #include "parse-util.h"
+#include "expr-impl.h"
 #include <goffice/goffice.h>
 
 #include <gsf/gsf-impl-utils.h>
@@ -534,7 +535,8 @@ gnm_go_data_vector_load_len (GODataVector *dat)
        eval_pos_init_dep (&ep, &vec->dep);
        if (vec->val == NULL && vec->dep.texpr != NULL) {
                GSList *l = NULL;
-               if (gnm_expr_is_rangeref (vec->dep.texpr->expr) && ((l = gnm_expr_top_get_ranges 
(vec->dep.texpr))) && l->next != NULL) {
+               if (GNM_EXPR_GET_OPER (vec->dep.texpr->expr) != GNM_EXPR_OP_FUNCALL &&
+                   gnm_expr_is_rangeref (vec->dep.texpr->expr) && ((l = gnm_expr_top_get_ranges 
(vec->dep.texpr))) && l->next != NULL) {
                        unsigned len = g_slist_length (l);
                        GSList *cur = l;
                        unsigned i;


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