gnumeric r17136 - in trunk: . src



Author: mortenw
Date: Wed Feb 11 21:02:14 2009
New Revision: 17136
URL: http://svn.gnome.org/viewvc/gnumeric?rev=17136&view=rev

Log:
2009-02-11  Morten Welinder  <terra gnome org>

	* src/dependent.c (gnm_dep_container_dump): Take sheet too, so
	redundant sheet names in output can be suppressed.
	(dump_single_dep, dump_range_dep): Ditto.
	(dependent_debug_name_for_sheet): New function.



Modified:
   trunk/ChangeLog
   trunk/NEWS
   trunk/src/dependent.c
   trunk/src/dependent.h

Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS	(original)
+++ trunk/NEWS	Wed Feb 11 21:02:14 2009
@@ -104,6 +104,7 @@
 	* Fix Windows extra-Gnumeric paste problem.  [#564166]
 	* Fix csv import problem with "-OINK".  [#571129]
 	* Make sure ()s do not take up stack space during eval.
+	* Make dependency debug output a little easier to read.
 
 --------------------------------------------------------------------------
 Gnumeric 1.9.3

Modified: trunk/src/dependent.c
==============================================================================
--- trunk/src/dependent.c	(original)
+++ trunk/src/dependent.c	Wed Feb 11 21:02:14 2009
@@ -2690,11 +2690,22 @@
  */
 
 static void
-dump_range_dep (gpointer key, G_GNUC_UNUSED gpointer value,
-		G_GNUC_UNUSED gpointer closure)
+dependent_debug_name_for_sheet (GnmDependent const *dep, Sheet *sheet,
+				GString *target)
+{
+	if (sheet && sheet == dep->sheet && dependent_is_cell (dep))
+		g_string_append (target, cell_name (GNM_DEP_TO_CELL (dep)));
+	else
+		dependent_debug_name (dep, target);
+}
+
+
+static void
+dump_range_dep (gpointer key, G_GNUC_UNUSED gpointer value, gpointer sheet_)
 {
 	DependencyRange const *deprange = key;
 	GnmRange const *range = &(deprange->range);
+	Sheet *sheet = sheet_;
 	GString *target = g_string_sized_new (10000);
 	gboolean first = TRUE;
 
@@ -2707,7 +2718,7 @@
 			first = FALSE;
 		else
 			g_string_append (target, ", ");
-		dependent_debug_name (dep, target);
+		dependent_debug_name_for_sheet (dep, sheet, target);
 	});
 	g_string_append_c (target, ')');
 
@@ -2716,10 +2727,10 @@
 }
 
 static void
-dump_single_dep (gpointer key, G_GNUC_UNUSED gpointer value,
-		 G_GNUC_UNUSED gpointer closure)
+dump_single_dep (gpointer key, G_GNUC_UNUSED gpointer value, gpointer sheet_)
 {
 	DependencySingle *depsingle = key;
+	Sheet *sheet = sheet_;
 	GString *target = g_string_sized_new (10000);
 	gboolean first = TRUE;
 
@@ -2732,7 +2743,7 @@
 			first = FALSE;
 		else
 			g_string_append (target, ", ");
-		dependent_debug_name (dep, target);
+		dependent_debug_name_for_sheet (dep, sheet, target);
 	});
 
 	g_printerr ("%s\n", target->str);
@@ -2822,7 +2833,8 @@
  * A useful utility for checking the state of the dependency data structures.
  */
 void
-gnm_dep_container_dump (GnmDepContainer const *deps)
+gnm_dep_container_dump (GnmDepContainer const *deps,
+			Sheet *sheet)
 {
 	int i;
 
@@ -2839,7 +2851,8 @@
 				    BUCKET_END_ROW (i) + 1,
 				    g_hash_table_size (hash));
 			g_hash_table_foreach (hash,
-					      dump_range_dep, NULL);
+					      dump_range_dep,
+					      sheet);
 		}
 	}
 
@@ -2847,7 +2860,8 @@
 		g_printerr ("  Single hash size %d: cell on which list of cells depend\n",
 			    g_hash_table_size (deps->single_hash));
 		g_hash_table_foreach (deps->single_hash,
-				      dump_single_dep, NULL);
+				      dump_single_dep,
+				      sheet);
 	}
 
 	if (deps->dynamic_deps && g_hash_table_size (deps->dynamic_deps) > 0) {

Modified: trunk/src/dependent.h
==============================================================================
--- trunk/src/dependent.h	(original)
+++ trunk/src/dependent.h	Wed Feb 11 21:02:14 2009
@@ -107,7 +107,8 @@
 void workbook_queue_all_recalc	  (Workbook *wb);
 
 GnmDepContainer *gnm_dep_container_new  (Sheet *sheet);
-void		 gnm_dep_container_dump	(GnmDepContainer const *deps);
+void		 gnm_dep_container_dump	(GnmDepContainer const *deps,
+					 Sheet *sheet);
 void             gnm_dep_container_sanity_check (GnmDepContainer const *deps);
 
 #define DEPENDENT_CONTAINER_FOREACH_DEPENDENT(dc, dep, code)	\



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