[gnumeric] Avoid analysis tool crashes if required plugins are not loaded
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnumeric] Avoid analysis tool crashes if required plugins are not loaded
- Date: Thu, 18 Jun 2009 16:15:30 -0400 (EDT)
commit ef53e73ef4523adadc59ff0bd49561cce8d643ca
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date: Thu Jun 18 14:14:52 2009 -0600
Avoid analysis tool crashes if required plugins are not loaded
2009-06-18 Andreas J. Guelzow <aguelzow pyrshep ca>
* *.c In all files in this directory replace gnm_func_lookup
with gnm_func_lookup_or_add_placeholder to avoid crashes
when plugins are not loaded.
NEWS | 1 +
src/tools/ChangeLog | 6 +
src/tools/analysis-anova.c | 40 ++++----
src/tools/analysis-chi-squared.c | 16 ++--
src/tools/analysis-exp-smoothing.c | 62 ++++++------
src/tools/analysis-frequency.c | 14 ++--
src/tools/analysis-histogram.c | 14 ++--
src/tools/analysis-kaplan-meier.c | 14 ++--
src/tools/analysis-tools.c | 178 ++++++++++++++++++------------------
9 files changed, 176 insertions(+), 169 deletions(-)
---
diff --git a/NEWS b/NEWS
index 37cf94c..d3b375b 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,7 @@ Andreas:
* Let the sort dialog guess whether there is a header
* Fix xls import of sheet labels [#586066]
* Fix html export [#586028]
+ * Avoid analysis tool crashes if required plugins are not loaded
Jody:
* GOString start of richtext and phonetic support.
diff --git a/src/tools/ChangeLog b/src/tools/ChangeLog
index 6e0e80d..7f4d350 100644
--- a/src/tools/ChangeLog
+++ b/src/tools/ChangeLog
@@ -1,3 +1,9 @@
+2009-06-18 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+ * *.c In all files in this directory replace gnm_func_lookup
+ with gnm_func_lookup_or_add_placeholder to avoid crashes
+ when plugins are not loaded.
+
2009-06-07 Andreas J. Guelzow <aguelzow pyrshep ca>
* dao.c (dao_adjust): avoid calling gnm_sheet_get_max_* with
diff --git a/src/tools/analysis-anova.c b/src/tools/analysis-anova.c
index 4cda737..750223c 100644
--- a/src/tools/analysis-anova.c
+++ b/src/tools/analysis-anova.c
@@ -95,25 +95,25 @@ analysis_tool_anova_two_factor_no_rep_engine_run (data_analysis_output_t *dao,
GnmFunc *fd_fdist;
GnmFunc *fd_finv;
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
- fd_offset = gnm_func_lookup ("OFFSET", NULL);
+ fd_offset = gnm_func_lookup_or_add_placeholder ("OFFSET", NULL, FALSE);
gnm_func_ref (fd_offset);
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
- fd_sumsq = gnm_func_lookup ("SUMSQ", NULL);
+ fd_sumsq = gnm_func_lookup_or_add_placeholder ("SUMSQ", NULL, FALSE);
gnm_func_ref (fd_sumsq);
- fd_average = gnm_func_lookup ("AVERAGE", NULL);
+ fd_average = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_average);
- fd_var = gnm_func_lookup ("VAR", NULL);
+ fd_var = gnm_func_lookup_or_add_placeholder ("VAR", NULL, FALSE);
gnm_func_ref (fd_var);
- fd_if = gnm_func_lookup ("IF", NULL);
+ fd_if = gnm_func_lookup_or_add_placeholder ("IF", NULL, FALSE);
gnm_func_ref (fd_if);
- fd_fdist = gnm_func_lookup ("FDIST", NULL);
+ fd_fdist = gnm_func_lookup_or_add_placeholder ("FDIST", NULL, FALSE);
gnm_func_ref (fd_fdist);
- fd_finv = gnm_func_lookup ("FINV", NULL);
+ fd_finv = gnm_func_lookup_or_add_placeholder ("FINV", NULL, FALSE);
gnm_func_ref (fd_finv);
dao_set_merge (dao, 0, 0, 4, 0);
@@ -433,25 +433,25 @@ analysis_tool_anova_two_factor_engine_run (data_analysis_output_t *dao,
GnmFunc *fd_fdist;
GnmFunc *fd_finv;
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
- fd_offset = gnm_func_lookup ("OFFSET", NULL);
+ fd_offset = gnm_func_lookup_or_add_placeholder ("OFFSET", NULL, FALSE);
gnm_func_ref (fd_offset);
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
- fd_sumsq = gnm_func_lookup ("SUMSQ", NULL);
+ fd_sumsq = gnm_func_lookup_or_add_placeholder ("SUMSQ", NULL, FALSE);
gnm_func_ref (fd_sumsq);
- fd_average = gnm_func_lookup ("AVERAGE", NULL);
+ fd_average = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_average);
- fd_var = gnm_func_lookup ("VAR", NULL);
+ fd_var = gnm_func_lookup_or_add_placeholder ("VAR", NULL, FALSE);
gnm_func_ref (fd_var);
- fd_if = gnm_func_lookup ("IF", NULL);
+ fd_if = gnm_func_lookup_or_add_placeholder ("IF", NULL, FALSE);
gnm_func_ref (fd_if);
- fd_fdist = gnm_func_lookup ("FDIST", NULL);
+ fd_fdist = gnm_func_lookup_or_add_placeholder ("FDIST", NULL, FALSE);
gnm_func_ref (fd_fdist);
- fd_finv = gnm_func_lookup ("FINV", NULL);
+ fd_finv = gnm_func_lookup_or_add_placeholder ("FINV", NULL, FALSE);
gnm_func_ref (fd_finv);
dao_set_merge (dao, 0, 0, 4, 0);
diff --git a/src/tools/analysis-chi-squared.c b/src/tools/analysis-chi-squared.c
index 358b618..e7f8964 100644
--- a/src/tools/analysis-chi-squared.c
+++ b/src/tools/analysis-chi-squared.c
@@ -60,21 +60,21 @@ analysis_tool_chi_squared_engine_run (data_analysis_output_t *dao,
? _("[>=5]\"Test of Independence\";[<5][Red]\"Invalid Test of Independence\"")
: _("[>=5]\"Test of Homogeneity\";[<5][Red]\"Invalid Test of Homogeneity\"");
- fd_mmult = gnm_func_lookup ("MMULT", NULL);
+ fd_mmult = gnm_func_lookup_or_add_placeholder ("MMULT", NULL, FALSE);
gnm_func_ref (fd_mmult);
- fd_row = gnm_func_lookup ("ROW", NULL);
+ fd_row = gnm_func_lookup_or_add_placeholder ("ROW", NULL, FALSE);
gnm_func_ref (fd_row);
- fd_transpose = gnm_func_lookup ("TRANSPOSE", NULL);
+ fd_transpose = gnm_func_lookup_or_add_placeholder ("TRANSPOSE", NULL, FALSE);
gnm_func_ref (fd_transpose);
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
- fd_min = gnm_func_lookup ("MIN", NULL);
+ fd_min = gnm_func_lookup_or_add_placeholder ("MIN", NULL, FALSE);
gnm_func_ref (fd_min);
- fd_offset = gnm_func_lookup ("OFFSET", NULL);
+ fd_offset = gnm_func_lookup_or_add_placeholder ("OFFSET", NULL, FALSE);
gnm_func_ref (fd_offset);
- fd_chiinv = gnm_func_lookup ("CHIINV", NULL);
+ fd_chiinv = gnm_func_lookup_or_add_placeholder ("CHIINV", NULL, FALSE);
gnm_func_ref (fd_chiinv);
- fd_chidist = gnm_func_lookup ("CHIDIST", NULL);
+ fd_chidist = gnm_func_lookup_or_add_placeholder ("CHIDIST", NULL, FALSE);
gnm_func_ref (fd_chidist);
dao_set_italic (dao, 0, 1, 0, 4);
diff --git a/src/tools/analysis-exp-smoothing.c b/src/tools/analysis-exp-smoothing.c
index f7346f8..64325d6 100644
--- a/src/tools/analysis-exp-smoothing.c
+++ b/src/tools/analysis-exp-smoothing.c
@@ -94,15 +94,15 @@ analysis_tool_exponential_smoothing_engine_ses_h_run (data_analysis_output_t *da
GnmExpr const *expr_alpha = NULL;
if (info->std_error_flag) {
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
- fd_sumxmy2 = gnm_func_lookup ("SUMXMY2", NULL);
+ fd_sumxmy2 = gnm_func_lookup_or_add_placeholder ("SUMXMY2", NULL, FALSE);
gnm_func_ref (fd_sumxmy2);
}
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
- fd_offset = gnm_func_lookup ("OFFSET", NULL);
+ fd_offset = gnm_func_lookup_or_add_placeholder ("OFFSET", NULL, FALSE);
gnm_func_ref (fd_offset);
if (info->show_graph)
@@ -268,16 +268,16 @@ analysis_tool_exponential_smoothing_engine_ses_r_run (data_analysis_output_t *da
GnmExpr const *expr_alpha = NULL;
if (info->std_error_flag) {
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
- fd_sumxmy2 = gnm_func_lookup ("SUMXMY2", NULL);
+ fd_sumxmy2 = gnm_func_lookup_or_add_placeholder ("SUMXMY2", NULL, FALSE);
gnm_func_ref (fd_sumxmy2);
}
- fd_average = gnm_func_lookup ("AVERAGE", NULL);
+ fd_average = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_average);
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
- fd_offset = gnm_func_lookup ("OFFSET", NULL);
+ fd_offset = gnm_func_lookup_or_add_placeholder ("OFFSET", NULL, FALSE);
gnm_func_ref (fd_offset);
if (info->show_graph)
@@ -449,17 +449,17 @@ analysis_tool_exponential_smoothing_engine_des_run (data_analysis_output_t *dao,
GnmExpr const *expr_gamma = NULL;
if (info->std_error_flag) {
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
- fd_sumxmy2 = gnm_func_lookup ("SUMXMY2", NULL);
+ fd_sumxmy2 = gnm_func_lookup_or_add_placeholder ("SUMXMY2", NULL, FALSE);
gnm_func_ref (fd_sumxmy2);
}
- fd_linest = gnm_func_lookup ("LINEST", NULL);
+ fd_linest = gnm_func_lookup_or_add_placeholder ("LINEST", NULL, FALSE);
gnm_func_ref (fd_linest);
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
- fd_offset = gnm_func_lookup ("OFFSET", NULL);
+ fd_offset = gnm_func_lookup_or_add_placeholder ("OFFSET", NULL, FALSE);
gnm_func_ref (fd_offset);
if (info->show_graph)
@@ -683,23 +683,23 @@ analysis_tool_exponential_smoothing_engine_ates_run (data_analysis_output_t *dao
GnmExpr const *expr_delta = NULL;
if (info->std_error_flag) {
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
- fd_sumxmy2 = gnm_func_lookup ("SUMXMY2", NULL);
+ fd_sumxmy2 = gnm_func_lookup_or_add_placeholder ("SUMXMY2", NULL, FALSE);
gnm_func_ref (fd_sumxmy2);
}
- fd_linest = gnm_func_lookup ("LINEST", NULL);
+ fd_linest = gnm_func_lookup_or_add_placeholder ("LINEST", NULL, FALSE);
gnm_func_ref (fd_linest);
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
- fd_average = gnm_func_lookup ("AVERAGE", NULL);
+ fd_average = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_average);
- fd_if = gnm_func_lookup ("IF", NULL);
+ fd_if = gnm_func_lookup_or_add_placeholder ("IF", NULL, FALSE);
gnm_func_ref (fd_if);
- fd_mod = gnm_func_lookup ("mod", NULL);
+ fd_mod = gnm_func_lookup_or_add_placeholder ("mod", NULL, FALSE);
gnm_func_ref (fd_mod);
- fd_row = gnm_func_lookup ("row", NULL);
+ fd_row = gnm_func_lookup_or_add_placeholder ("row", NULL, FALSE);
gnm_func_ref (fd_row);
if (info->show_graph)
@@ -1000,25 +1000,25 @@ analysis_tool_exponential_smoothing_engine_mtes_run (data_analysis_output_t *dao
GnmExpr const *expr_delta = NULL;
if (info->std_error_flag) {
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
- fd_sumsq = gnm_func_lookup ("SUMSQ", NULL);
+ fd_sumsq = gnm_func_lookup_or_add_placeholder ("SUMSQ", NULL, FALSE);
gnm_func_ref (fd_sumsq);
}
- fd_linest = gnm_func_lookup ("LINEST", NULL);
+ fd_linest = gnm_func_lookup_or_add_placeholder ("LINEST", NULL, FALSE);
gnm_func_ref (fd_linest);
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
- fd_offset = gnm_func_lookup ("OFFSET", NULL);
+ fd_offset = gnm_func_lookup_or_add_placeholder ("OFFSET", NULL, FALSE);
gnm_func_ref (fd_offset);
- fd_average = gnm_func_lookup ("AVERAGE", NULL);
+ fd_average = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_average);
- fd_if = gnm_func_lookup ("IF", NULL);
+ fd_if = gnm_func_lookup_or_add_placeholder ("IF", NULL, FALSE);
gnm_func_ref (fd_if);
- fd_mod = gnm_func_lookup ("mod", NULL);
+ fd_mod = gnm_func_lookup_or_add_placeholder ("mod", NULL, FALSE);
gnm_func_ref (fd_mod);
- fd_row = gnm_func_lookup ("row", NULL);
+ fd_row = gnm_func_lookup_or_add_placeholder ("row", NULL, FALSE);
gnm_func_ref (fd_row);
if (info->show_graph)
diff --git a/src/tools/analysis-frequency.c b/src/tools/analysis-frequency.c
index 78b2b94..4a76c61 100644
--- a/src/tools/analysis-frequency.c
+++ b/src/tools/analysis-frequency.c
@@ -51,23 +51,23 @@ analysis_tool_frequency_engine_run (data_analysis_output_t *dao,
GnmFunc *fd_columns = NULL;
GnmFunc *fd_exact = NULL;
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
- fd_if = gnm_func_lookup ("IF", NULL);
+ fd_if = gnm_func_lookup_or_add_placeholder ("IF", NULL, FALSE);
gnm_func_ref (fd_if);
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
- fd_isblank = gnm_func_lookup ("ISBLANK", NULL);
+ fd_isblank = gnm_func_lookup_or_add_placeholder ("ISBLANK", NULL, FALSE);
gnm_func_ref (fd_isblank);
if (info->exact) {
- fd_exact = gnm_func_lookup ("EXACT", NULL);
+ fd_exact = gnm_func_lookup_or_add_placeholder ("EXACT", NULL, FALSE);
gnm_func_ref (fd_exact);
}
if (info->percentage) {
- fd_rows = gnm_func_lookup ("ROWS", NULL);
+ fd_rows = gnm_func_lookup_or_add_placeholder ("ROWS", NULL, FALSE);
gnm_func_ref (fd_rows);
- fd_columns = gnm_func_lookup ("COLUMNS", NULL);
+ fd_columns = gnm_func_lookup_or_add_placeholder ("COLUMNS", NULL, FALSE);
gnm_func_ref (fd_columns);
}
/* General Info */
diff --git a/src/tools/analysis-histogram.c b/src/tools/analysis-histogram.c
index a6999d3..e1e247a 100644
--- a/src/tools/analysis-histogram.c
+++ b/src/tools/analysis-histogram.c
@@ -47,9 +47,9 @@ make_hist_expr (analysis_tools_data_histogram_t *info,
GnmExpr const *expr_data;
GnmExpr const *expr_if_to, *expr_if_from;
GnmExprOp from, to;
- GnmFunc *fd_if = gnm_func_lookup ("IF", NULL);
- GnmFunc *fd_sum = gnm_func_lookup ("SUM", NULL);
- GnmFunc *fd_count = gnm_func_lookup ("COUNT", NULL);
+ GnmFunc *fd_if = gnm_func_lookup_or_add_placeholder ("IF", NULL, FALSE);
+ GnmFunc *fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
+ GnmFunc *fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gint to_col = (info->cumulative) ? 0 : 1;
if (info->bin_type & bintype_no_inf_lower) {
@@ -121,11 +121,11 @@ analysis_tool_histogram_engine_run (data_analysis_output_t *dao,
char const *format;
- fd_small = gnm_func_lookup ("SMALL", NULL);
+ fd_small = gnm_func_lookup_or_add_placeholder ("SMALL", NULL, FALSE);
gnm_func_ref (fd_small);
if (info->base.labels) {
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
}
@@ -189,7 +189,7 @@ analysis_tool_histogram_engine_run (data_analysis_output_t *dao,
else {
GnmFunc *fd_min;
- fd_min = gnm_func_lookup ("MIN", NULL);
+ fd_min = gnm_func_lookup_or_add_placeholder ("MIN", NULL, FALSE);
gnm_func_ref (fd_min);
dao_set_cell_expr (dao, to_col, i_start,
gnm_expr_new_funcall1
@@ -203,7 +203,7 @@ analysis_tool_histogram_engine_run (data_analysis_output_t *dao,
else {
GnmFunc *fd_max;
- fd_max = gnm_func_lookup ("MAX", NULL);
+ fd_max = gnm_func_lookup_or_add_placeholder ("MAX", NULL, FALSE);
gnm_func_ref (fd_max);
dao_set_cell_expr (dao, to_col, i_start + i_limit - 1,
gnm_expr_new_funcall1
diff --git a/src/tools/analysis-kaplan-meier.c b/src/tools/analysis-kaplan-meier.c
index b060594..741b1b1 100644
--- a/src/tools/analysis-kaplan-meier.c
+++ b/src/tools/analysis-kaplan-meier.c
@@ -76,21 +76,21 @@ analysis_tool_kaplan_meier_engine_run (data_analysis_output_t *dao,
GSList *gl = info->group_list;
- fd_small = gnm_func_lookup ("SMALL", NULL);
+ fd_small = gnm_func_lookup_or_add_placeholder ("SMALL", NULL, FALSE);
gnm_func_ref (fd_small);
- fd_if = gnm_func_lookup ("IF", NULL);
+ fd_if = gnm_func_lookup_or_add_placeholder ("IF", NULL, FALSE);
gnm_func_ref (fd_if);
- fd_iserror = gnm_func_lookup ("ISERROR", NULL);
+ fd_iserror = gnm_func_lookup_or_add_placeholder ("ISERROR", NULL, FALSE);
gnm_func_ref (fd_iserror);
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
if (info->std_err) {
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
}
if (info->median) {
- fd_min = gnm_func_lookup ("MIN", NULL);
+ fd_min = gnm_func_lookup_or_add_placeholder ("MIN", NULL, FALSE);
gnm_func_ref (fd_min);
}
@@ -523,7 +523,7 @@ analysis_tool_kaplan_meier_engine_run (data_analysis_output_t *dao,
GnmExpr const *expr_n_total = gnm_expr_new_constant (value_new_int (0));
GnmExpr const *expr_death_total = gnm_expr_new_constant (value_new_int (0));
- fd_chidist = gnm_func_lookup ("CHIDIST", NULL);
+ fd_chidist = gnm_func_lookup_or_add_placeholder ("CHIDIST", NULL, FALSE);
gnm_func_ref (fd_chidist);
dao_set_italic (dao, 1, logrank_test_y_offset, 1, logrank_test_y_offset+3);
diff --git a/src/tools/analysis-tools.c b/src/tools/analysis-tools.c
index 21f431e..bf59d54 100644
--- a/src/tools/analysis-tools.c
+++ b/src/tools/analysis-tools.c
@@ -552,7 +552,7 @@ analysis_tool_table (data_analysis_output_t *dao,
dao_set_cell_printf (dao, 0, 0, "%s", title);
dao_set_italic (dao, 0, 0, 0, 0);
- fd = gnm_func_lookup (functionname, NULL);
+ fd = gnm_func_lookup_or_add_placeholder (functionname, NULL, FALSE);
gnm_func_ref (fd);
for (col = 1, inputdata = info->input; inputdata != NULL;
@@ -742,29 +742,29 @@ summary_statistics (data_analysis_output_t *dao,
GnmFunc *fd_count;
GnmFunc *fd_sqrt;
- fd_mean = gnm_func_lookup ("AVERAGE", NULL);
+ fd_mean = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_mean);
- fd_median = gnm_func_lookup (info->use_ssmedian ? "SSMEDIAN" : "MEDIAN", NULL);
+ fd_median = gnm_func_lookup_or_add_placeholder (info->use_ssmedian ? "SSMEDIAN" : "MEDIAN", NULL, FALSE);
gnm_func_ref (fd_median);
- fd_mode = gnm_func_lookup ("MODE", NULL);
+ fd_mode = gnm_func_lookup_or_add_placeholder ("MODE", NULL, FALSE);
gnm_func_ref (fd_mode);
- fd_stdev = gnm_func_lookup ("STDEV", NULL);
+ fd_stdev = gnm_func_lookup_or_add_placeholder ("STDEV", NULL, FALSE);
gnm_func_ref (fd_stdev);
- fd_var = gnm_func_lookup ("VAR", NULL);
+ fd_var = gnm_func_lookup_or_add_placeholder ("VAR", NULL, FALSE);
gnm_func_ref (fd_var);
- fd_kurt = gnm_func_lookup ("KURT", NULL);
+ fd_kurt = gnm_func_lookup_or_add_placeholder ("KURT", NULL, FALSE);
gnm_func_ref (fd_kurt);
- fd_skew = gnm_func_lookup ("SKEW", NULL);
+ fd_skew = gnm_func_lookup_or_add_placeholder ("SKEW", NULL, FALSE);
gnm_func_ref (fd_skew);
- fd_min = gnm_func_lookup ("MIN", NULL);
+ fd_min = gnm_func_lookup_or_add_placeholder ("MIN", NULL, FALSE);
gnm_func_ref (fd_min);
- fd_max = gnm_func_lookup ("MAX", NULL);
+ fd_max = gnm_func_lookup_or_add_placeholder ("MAX", NULL, FALSE);
gnm_func_ref (fd_max);
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
dao_set_cell (dao, 0, 0, NULL);
@@ -920,15 +920,15 @@ confidence_level (data_analysis_output_t *dao,
dao_set_cell (dao, 0, 0, NULL);
- fd_mean = gnm_func_lookup ("AVERAGE", NULL);
+ fd_mean = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_mean);
- fd_var = gnm_func_lookup ("VAR", NULL);
+ fd_var = gnm_func_lookup_or_add_placeholder ("VAR", NULL, FALSE);
gnm_func_ref (fd_var);
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
- fd_tinv = gnm_func_lookup ("TINV", NULL);
+ fd_tinv = gnm_func_lookup_or_add_placeholder ("TINV", NULL, FALSE);
gnm_func_ref (fd_tinv);
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
@@ -995,7 +995,7 @@ kth_smallest_largest (data_analysis_output_t *dao,
{
guint col;
GSList *data = info->base.input;
- GnmFunc *fd = gnm_func_lookup (func, NULL);
+ GnmFunc *fd = gnm_func_lookup_or_add_placeholder (func, NULL, FALSE);
gnm_func_ref (fd);
dao_set_cell_printf (dao, 0, 1, label, k);
@@ -1116,11 +1116,11 @@ analysis_tool_sampling_engine_run (data_analysis_output_t *dao,
gint source;
if (info->base.labels || info->periodic) {
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
}
if (!info->periodic) {
- fd_randdiscrete = gnm_func_lookup ("RANDDISCRETE", NULL);
+ fd_randdiscrete = gnm_func_lookup_or_add_placeholder ("RANDDISCRETE", NULL, FALSE);
gnm_func_ref (fd_randdiscrete);
}
@@ -1343,17 +1343,17 @@ analysis_tool_ztest_engine_run (data_analysis_output_t *dao,
"/P (Z<=z) two-tail"
"/z Critical two-tail"));
- fd_mean = gnm_func_lookup ("AVERAGE", NULL);
+ fd_mean = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_mean);
- fd_normsdist = gnm_func_lookup ("NORMSDIST", NULL);
+ fd_normsdist = gnm_func_lookup_or_add_placeholder ("NORMSDIST", NULL, FALSE);
gnm_func_ref (fd_normsdist);
- fd_abs = gnm_func_lookup ("ABS", NULL);
+ fd_abs = gnm_func_lookup_or_add_placeholder ("ABS", NULL, FALSE);
gnm_func_ref (fd_abs);
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
- fd_normsinv = gnm_func_lookup ("NORMSINV", NULL);
+ fd_normsinv = gnm_func_lookup_or_add_placeholder ("NORMSINV", NULL, FALSE);
gnm_func_ref (fd_normsinv);
val_1 = value_dup (info->base.range_1);
@@ -1597,27 +1597,27 @@ analysis_tool_ttest_paired_engine_run (data_analysis_output_t *dao,
"/P (T<=t) two-tail"
"/t Critical two-tail"));
- fd_mean = gnm_func_lookup ("AVERAGE", NULL);
+ fd_mean = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_mean);
- fd_var = gnm_func_lookup ("VAR", NULL);
+ fd_var = gnm_func_lookup_or_add_placeholder ("VAR", NULL, FALSE);
gnm_func_ref (fd_var);
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
- fd_correl = gnm_func_lookup ("CORREL", NULL);
+ fd_correl = gnm_func_lookup_or_add_placeholder ("CORREL", NULL, FALSE);
gnm_func_ref (fd_correl);
- fd_tinv = gnm_func_lookup ("TINV", NULL);
+ fd_tinv = gnm_func_lookup_or_add_placeholder ("TINV", NULL, FALSE);
gnm_func_ref (fd_tinv);
- fd_tdist = gnm_func_lookup ("TDIST", NULL);
+ fd_tdist = gnm_func_lookup_or_add_placeholder ("TDIST", NULL, FALSE);
gnm_func_ref (fd_tdist);
- fd_abs = gnm_func_lookup ("ABS", NULL);
+ fd_abs = gnm_func_lookup_or_add_placeholder ("ABS", NULL, FALSE);
gnm_func_ref (fd_abs);
- fd_isodd = gnm_func_lookup ("ISODD", NULL);
+ fd_isodd = gnm_func_lookup_or_add_placeholder ("ISODD", NULL, FALSE);
gnm_func_ref (fd_isodd);
- fd_isnumber = gnm_func_lookup ("ISNUMBER", NULL);
+ fd_isnumber = gnm_func_lookup_or_add_placeholder ("ISNUMBER", NULL, FALSE);
gnm_func_ref (fd_isnumber);
- fd_if = gnm_func_lookup ("IF", NULL);
+ fd_if = gnm_func_lookup_or_add_placeholder ("IF", NULL, FALSE);
gnm_func_ref (fd_if);
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
val_1 = value_dup (info->base.range_1);
@@ -1879,17 +1879,17 @@ analysis_tool_ttest_eqvar_engine_run (data_analysis_output_t *dao,
val_1 = value_dup (info->base.range_1);
val_2 = value_dup (info->base.range_2);
- fd_mean = gnm_func_lookup ("AVERAGE", NULL);
+ fd_mean = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_mean);
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
- fd_var = gnm_func_lookup ("VAR", NULL);
+ fd_var = gnm_func_lookup_or_add_placeholder ("VAR", NULL, FALSE);
gnm_func_ref (fd_var);
- fd_tdist = gnm_func_lookup ("TDIST", NULL);
+ fd_tdist = gnm_func_lookup_or_add_placeholder ("TDIST", NULL, FALSE);
gnm_func_ref (fd_tdist);
- fd_abs = gnm_func_lookup ("ABS", NULL);
+ fd_abs = gnm_func_lookup_or_add_placeholder ("ABS", NULL, FALSE);
gnm_func_ref (fd_abs);
- fd_tinv = gnm_func_lookup ("TINV", NULL);
+ fd_tinv = gnm_func_lookup_or_add_placeholder ("TINV", NULL, FALSE);
gnm_func_ref (fd_tinv);
/* Labels */
@@ -2175,17 +2175,17 @@ analysis_tool_ttest_neqvar_engine_run (data_analysis_output_t *dao,
val_1 = value_dup (info->base.range_1);
val_2 = value_dup (info->base.range_2);
- fd_mean = gnm_func_lookup ("AVERAGE", NULL);
+ fd_mean = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_mean);
- fd_var = gnm_func_lookup ("VAR", NULL);
+ fd_var = gnm_func_lookup_or_add_placeholder ("VAR", NULL, FALSE);
gnm_func_ref (fd_var);
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
- fd_tdist = gnm_func_lookup ("TDIST", NULL);
+ fd_tdist = gnm_func_lookup_or_add_placeholder ("TDIST", NULL, FALSE);
gnm_func_ref (fd_tdist);
- fd_abs = gnm_func_lookup ("ABS", NULL);
+ fd_abs = gnm_func_lookup_or_add_placeholder ("ABS", NULL, FALSE);
gnm_func_ref (fd_abs);
- fd_tinv = gnm_func_lookup ("TINV", NULL);
+ fd_tinv = gnm_func_lookup_or_add_placeholder ("TINV", NULL, FALSE);
gnm_func_ref (fd_tinv);
/* Labels */
@@ -2452,7 +2452,7 @@ analysis_tool_ftest_engine_run (data_analysis_output_t *dao,
GnmFunc *fd_finv;
- fd_finv = gnm_func_lookup ("FINV", NULL);
+ fd_finv = gnm_func_lookup_or_add_placeholder ("FINV", NULL, FALSE);
gnm_func_ref (fd_finv);
dao_set_cell (dao, 0, 0, _("F-Test"));
@@ -2477,7 +2477,7 @@ analysis_tool_ftest_engine_run (data_analysis_output_t *dao,
/* Mean */
{
- GnmFunc *fd_mean = gnm_func_lookup ("AVERAGE", NULL);
+ GnmFunc *fd_mean = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_mean);
dao_set_cell_expr
@@ -2497,7 +2497,7 @@ analysis_tool_ftest_engine_run (data_analysis_output_t *dao,
/* Variance */
{
- GnmFunc *fd_var = gnm_func_lookup ("VAR", NULL);
+ GnmFunc *fd_var = gnm_func_lookup_or_add_placeholder ("VAR", NULL, FALSE);
gnm_func_ref (fd_var);
dao_set_cell_expr
@@ -2516,7 +2516,7 @@ analysis_tool_ftest_engine_run (data_analysis_output_t *dao,
/* Count */
{
- GnmFunc *fd_count = gnm_func_lookup ("COUNT", NULL);
+ GnmFunc *fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
dao_set_cell_expr
@@ -2560,7 +2560,7 @@ analysis_tool_ftest_engine_run (data_analysis_output_t *dao,
/* P right-tail */
{
- GnmFunc *fd_fdist = gnm_func_lookup ("FDIST", NULL);
+ GnmFunc *fd_fdist = gnm_func_lookup_or_add_placeholder ("FDIST", NULL, FALSE);
const GnmExpr *arg3;
gnm_func_ref (fd_fdist);
@@ -2635,7 +2635,7 @@ analysis_tool_ftest_engine_run (data_analysis_output_t *dao,
/* P two-tail */
{
- GnmFunc *fd_min = gnm_func_lookup ("MIN", NULL);;
+ GnmFunc *fd_min = gnm_func_lookup_or_add_placeholder ("MIN", NULL, FALSE);;
gnm_func_ref (fd_min);
@@ -2807,28 +2807,28 @@ analysis_tool_regression_engine_run (data_analysis_output_t *dao,
char const *label = ((info->group_by == GROUPED_BY_ROW) ? _("Row")
: _("Column"));
- fd_linest = gnm_func_lookup ("LINEST", NULL);
+ fd_linest = gnm_func_lookup_or_add_placeholder ("LINEST", NULL, FALSE);
gnm_func_ref (fd_linest);
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
- fd_fdist = gnm_func_lookup ("FDIST", NULL);
+ fd_fdist = gnm_func_lookup_or_add_placeholder ("FDIST", NULL, FALSE);
gnm_func_ref (fd_fdist);
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
- fd_tdist = gnm_func_lookup ("TDIST", NULL);
+ fd_tdist = gnm_func_lookup_or_add_placeholder ("TDIST", NULL, FALSE);
gnm_func_ref (fd_tdist);
- fd_tinv = gnm_func_lookup ("TINV", NULL);
+ fd_tinv = gnm_func_lookup_or_add_placeholder ("TINV", NULL, FALSE);
gnm_func_ref (fd_tinv);
- fd_transpose = gnm_func_lookup ("TRANSPOSE", NULL);
+ fd_transpose = gnm_func_lookup_or_add_placeholder ("TRANSPOSE", NULL, FALSE);
gnm_func_ref (fd_transpose);
if (!info->base.labels) {
- fd_concatenate = gnm_func_lookup ("CONCATENATE", NULL);
+ fd_concatenate = gnm_func_lookup_or_add_placeholder ("CONCATENATE", NULL, FALSE);
gnm_func_ref (fd_concatenate);
- fd_cell = gnm_func_lookup ("CELL", NULL);
+ fd_cell = gnm_func_lookup_or_add_placeholder ("CELL", NULL, FALSE);
gnm_func_ref (fd_cell);
- fd_offset = gnm_func_lookup ("OFFSET", NULL);
+ fd_offset = gnm_func_lookup_or_add_placeholder ("OFFSET", NULL, FALSE);
gnm_func_ref (fd_offset);
}
@@ -3334,22 +3334,22 @@ analysis_tool_moving_average_engine_run (data_analysis_output_t *dao,
GogPlot *plot = NULL;
if (info->base.labels) {
- fd_index = gnm_func_lookup ("INDEX", NULL);
+ fd_index = gnm_func_lookup_or_add_placeholder ("INDEX", NULL, FALSE);
gnm_func_ref (fd_index);
}
if (info->std_error_flag) {
- fd_sqrt = gnm_func_lookup ("SQRT", NULL);
+ fd_sqrt = gnm_func_lookup_or_add_placeholder ("SQRT", NULL, FALSE);
gnm_func_ref (fd_sqrt);
- fd_sumxmy2 = gnm_func_lookup ("SUMXMY2", NULL);
+ fd_sumxmy2 = gnm_func_lookup_or_add_placeholder ("SUMXMY2", NULL, FALSE);
gnm_func_ref (fd_sumxmy2);
}
if (moving_average_type_wma == info->ma_type || moving_average_type_spencer_ma == info->ma_type) {
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
}
- fd_average = gnm_func_lookup ("AVERAGE", NULL);
+ fd_average = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_average);
- fd_offset = gnm_func_lookup ("OFFSET", NULL);
+ fd_offset = gnm_func_lookup_or_add_placeholder ("OFFSET", NULL, FALSE);
gnm_func_ref (fd_offset);
if (info->show_graph) {
@@ -3679,15 +3679,15 @@ analysis_tool_ranking_engine_run (data_analysis_output_t *dao,
GnmFunc *fd_match;
GnmFunc *fd_percentrank;
- fd_large = gnm_func_lookup ("LARGE", NULL);
+ fd_large = gnm_func_lookup_or_add_placeholder ("LARGE", NULL, FALSE);
gnm_func_ref (fd_large);
- fd_row = gnm_func_lookup ("ROW", NULL);
+ fd_row = gnm_func_lookup_or_add_placeholder ("ROW", NULL, FALSE);
gnm_func_ref (fd_row);
- fd_rank = gnm_func_lookup ("RANK", NULL);
+ fd_rank = gnm_func_lookup_or_add_placeholder ("RANK", NULL, FALSE);
gnm_func_ref (fd_rank);
- fd_match = gnm_func_lookup ("MATCH", NULL);
+ fd_match = gnm_func_lookup_or_add_placeholder ("MATCH", NULL, FALSE);
gnm_func_ref (fd_match);
- fd_percentrank = gnm_func_lookup ("PERCENTRANK", NULL);
+ fd_percentrank = gnm_func_lookup_or_add_placeholder ("PERCENTRANK", NULL, FALSE);
gnm_func_ref (fd_percentrank);
dao_set_merge (dao, 0, 0, 1, 0);
@@ -3736,7 +3736,7 @@ analysis_tool_ranking_engine_run (data_analysis_output_t *dao,
GnmExpr const *expr_rows_p_one;
GnmExpr const *expr_rows;
GnmFunc *fd_count;
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
expr_rows = gnm_expr_new_funcall1
@@ -3853,15 +3853,15 @@ analysis_tool_anova_single_engine_run (data_analysis_output_t *dao, gpointer spe
"/Variance"));
dao_set_italic (dao, 0, 3, 4, 3);
- fd_mean = gnm_func_lookup ("AVERAGE", NULL);
+ fd_mean = gnm_func_lookup_or_add_placeholder ("AVERAGE", NULL, FALSE);
gnm_func_ref (fd_mean);
- fd_var = gnm_func_lookup ("VAR", NULL);
+ fd_var = gnm_func_lookup_or_add_placeholder ("VAR", NULL, FALSE);
gnm_func_ref (fd_var);
- fd_sum = gnm_func_lookup ("SUM", NULL);
+ fd_sum = gnm_func_lookup_or_add_placeholder ("SUM", NULL, FALSE);
gnm_func_ref (fd_sum);
- fd_count = gnm_func_lookup ("COUNT", NULL);
+ fd_count = gnm_func_lookup_or_add_placeholder ("COUNT", NULL, FALSE);
gnm_func_ref (fd_count);
- fd_devsq = gnm_func_lookup ("DEVSQ", NULL);
+ fd_devsq = gnm_func_lookup_or_add_placeholder ("DEVSQ", NULL, FALSE);
gnm_func_ref (fd_devsq);
dao->offset_row += 4;
@@ -4069,7 +4069,7 @@ analysis_tool_anova_single_engine_run (data_analysis_output_t *dao, gpointer spe
arg3 = gnm_expr_copy (expr_wdof);
}
- fd_fdist = gnm_func_lookup ("FDIST", NULL);
+ fd_fdist = gnm_func_lookup_or_add_placeholder ("FDIST", NULL, FALSE);
gnm_func_ref (fd_fdist);
dao_set_cell_expr
@@ -4091,7 +4091,7 @@ analysis_tool_anova_single_engine_run (data_analysis_output_t *dao, gpointer spe
} else
arg3 = expr_wdof;
- fd_finv = gnm_func_lookup ("FINV", NULL);
+ fd_finv = gnm_func_lookup_or_add_placeholder ("FINV", NULL, FALSE);
gnm_func_ref (fd_finv);
dao_set_cell_expr
@@ -4174,11 +4174,11 @@ analysis_tool_fourier_engine_run (data_analysis_output_t *dao,
GnmFunc *fd_imaginary;
GnmFunc *fd_imreal;
- fd_fourier = gnm_func_lookup ("FOURIER", NULL);
+ fd_fourier = gnm_func_lookup_or_add_placeholder ("FOURIER", NULL, FALSE);
gnm_func_ref (fd_fourier);
- fd_imaginary = gnm_func_lookup ("IMAGINARY", NULL);
+ fd_imaginary = gnm_func_lookup_or_add_placeholder ("IMAGINARY", NULL, FALSE);
gnm_func_ref (fd_imaginary);
- fd_imreal = gnm_func_lookup ("IMREAL", NULL);
+ fd_imreal = gnm_func_lookup_or_add_placeholder ("IMREAL", NULL, FALSE);
gnm_func_ref (fd_imreal);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]