[gnumeric] GUI: Avoid showing "Internal ERROR!"



commit c73b7562cb43a835aa741d3530a3f4021879261f
Author: Morten Welinder <terra gnome org>
Date:   Mon Sep 26 15:10:23 2011 -0400

    GUI: Avoid showing "Internal ERROR!"

 ChangeLog           |    3 +++
 src/workbook-view.c |   16 ++++++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 8f044ca..4a9e2b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-09-26  Morten Welinder  <terra gnome org>
 
+	* src/workbook-view.c (wb_view_auto_expr_recalc): Don't show
+	"Internal ERROR!" when we encounter an invalid date value.
+
 	* src/gnm-format.c (hash_fill): Handle NULL str without crash.
 
 	* src/wbc-gtk-actions.c (cb_add_component_from_file): #if 0.
diff --git a/src/workbook-view.c b/src/workbook-view.c
index 0589650..5605095 100644
--- a/src/workbook-view.c
+++ b/src/workbook-view.c
@@ -532,7 +532,6 @@ wb_view_auto_expr_recalc (WorkbookView *wbv)
 		if (format) {
 			PangoContext *context = gnm_pango_context_get ();
 			PangoLayout *layout = pango_layout_new (context);
-			PangoAttrList *atl;
 			gsize old_len = str->len;
 			GOFormatNumberError err =
 				format_value_layout (layout, format, v,
@@ -541,7 +540,11 @@ wb_view_auto_expr_recalc (WorkbookView *wbv)
 						     25 - g_utf8_strlen (str->str, -1),
 						     workbook_date_conv (wb_view_get_workbook (wbv)));
 			go_format_unref (tmp_format);
-			if (!err) {
+			switch (err) {
+			case GO_FORMAT_NUMBER_OK:
+			case GO_FORMAT_NUMBER_DATE_ERROR: {
+				PangoAttrList *atl;
+
 				g_string_append (str, pango_layout_get_text (layout));
 				/* We need to shift the attribute list  */
 				atl = pango_attr_list_ref (pango_layout_get_attributes (layout));
@@ -552,8 +555,13 @@ wb_view_auto_expr_recalc (WorkbookView *wbv)
 						 str->len - old_len);
 					pango_attr_list_unref (atl);
 				}
-			} else
-				g_string_append (str,  "Internal ERROR!");
+				break;
+			}
+			default:
+			case GO_FORMAT_NUMBER_INVALID_FORMAT:
+				g_string_append (str,  _("Invalid format"));
+				break;
+			}
 			g_object_unref (layout);
 			g_object_unref (context);
 		} else



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