[gnumeric] lpsolve: calculate after writing.



commit 43d652629db962fd19bf094e63073083346e820d
Author: Morten Welinder <terra gnome org>
Date:   Wed Oct 28 21:32:01 2009 -0400

    lpsolve: calculate after writing.

 plugins/lpsolve/lpsolve-write.c |   20 ++++----------------
 1 files changed, 4 insertions(+), 16 deletions(-)
---
diff --git a/plugins/lpsolve/lpsolve-write.c b/plugins/lpsolve/lpsolve-write.c
index 217fdd9..f925ba2 100644
--- a/plugins/lpsolve/lpsolve-write.c
+++ b/plugins/lpsolve/lpsolve-write.c
@@ -26,7 +26,6 @@
 #include <cell.h>
 #include <solver.h>
 #include <ranges.h>
-#include <expr.h>
 #include <parse-util.h>
 #include <gutils.h>
 #include <goffice/goffice.h>
@@ -157,26 +156,13 @@ lpsolve_create_program (Sheet *sheet, GError **err)
 
 	/* This is insane -- why do we keep a string?  */
 	{
+		GnmValue *vr =
+			value_new_cellrange_str (sheet, sp->input_entry_str);
 		GnmEvalPos ep;
-		GnmParsePos pp;
-		GnmValue *vr = NULL;
-		GnmExprTop const *texpr;
-		GnmExprParseFlags flags =
-			GNM_EXPR_PARSE_FORCE_ABSOLUTE_REFERENCES |
-			GNM_EXPR_PARSE_UNKNOWN_NAMES_ARE_INVALID;
 
 		g_slist_free (sp->input_cells);
 		sp->input_cells = NULL;
 
-		parse_pos_init_sheet (&pp, sheet);
-		texpr = gnm_expr_parse_str (sp->input_entry_str, &pp,
-					    flags, sheet->convs,
-					    NULL);
-		if (texpr) {
-			vr = gnm_expr_top_get_range (texpr);
-			gnm_expr_top_unref (texpr);
-		}
-
 		if (!vr) {
 			g_set_error (err,
 				     go_error_invalid (),
@@ -347,6 +333,8 @@ lpsolve_file_save (GOFileSaver const *fs, GOIOContext *io_context,
 	prg = lpsolve_create_program (sheet, &err);
 	gnm_pop_C_locale (locale);
 
+	workbook_recalc (sheet->workbook);
+
 	if (!prg) {
 		go_cmd_context_error_import (GO_CMD_CONTEXT (io_context),
 					     err ? err->message : "?");



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