=== modified file 'src/load-graph.cpp'
--- src/load-graph.cpp	2008-01-16 08:36:36 +0000
+++ src/load-graph.cpp	2008-02-02 09:51:35 +0000
@@ -182,7 +182,7 @@
 		if (g->type == LOAD_GRAPH_NET) {
 			// operation orders matters so it's 0 if i == num_bars
 			unsigned rate = g->net.max - (i * g->net.max / num_bars);
-			const std::string caption(procman::format_rate(rate));
+			const std::string caption(procman::format_rate_max(rate, g->net.max));
 			cairo_text_extents (tmp_cr, caption.c_str(), &extents);
 			cairo_move_to (tmp_cr, g->indent - extents.width + 20, y);
 			cairo_show_text (tmp_cr, caption.c_str());

=== modified file 'src/util.cpp'
--- src/util.cpp	2008-01-03 01:52:24 +0000
+++ src/util.cpp	2008-02-02 09:57:14 +0000
@@ -155,16 +155,34 @@
 gchar*
 SI_gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size)
 {
-	if (size < (GnomeVFSFileSize) KIBIBYTE_FACTOR) {
+	return SI_gnome_vfs_format_file_size_for_display_max (size, size);
+}
+
+/**
+ * SI_gnome_vfs_format_file_size_for_display_max:
+ * @size:
+ * 
+ * Formats the file size passed in @bytes in a way that is easy for
+ * the user to read. Gives the size in bytes, kibibytes, mebibytes or
+ * gibibytes, choosing the unit that would be appropriate for 
+ * displaying @max. For example, if @max is 5 KiB then @size will be
+ * returned formatted in KiB.
+ * 
+ * Returns: a newly allocated string with the size ready to be shown.
+ **/
+gchar*
+SI_gnome_vfs_format_file_size_for_display_max (GnomeVFSFileSize size, GnomeVFSFileSize max)
+{
+	if (max < (GnomeVFSFileSize) KIBIBYTE_FACTOR) {
 		return g_strdup_printf (dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes",(guint) size), (guint) size);
 	} else {
 		guint factor;
 		const char* format;
 
-		if (size < (GnomeVFSFileSize) MEBIBYTE_FACTOR) {
+		if (max < (GnomeVFSFileSize) MEBIBYTE_FACTOR) {
 		  factor = KIBIBYTE_FACTOR;
 		  format = N_("%.1f KiB");
-		} else if (size < (GnomeVFSFileSize) GIBIBYTE_FACTOR) {
+		} else if (max < (GnomeVFSFileSize) GIBIBYTE_FACTOR) {
 		  factor = MEBIBYTE_FACTOR;
 		  format = N_("%.1f MiB");
 		} else {
@@ -454,11 +472,14 @@
   }
 
 
-
-
   std::string format_rate(GnomeVFSFileSize rate)
   {
-    char* bytes = SI_gnome_vfs_format_file_size_for_display(rate);
+    return format_rate_max (rate, rate);
+  }
+
+  std::string format_rate_max(GnomeVFSFileSize rate, GnomeVFSFileSize max)
+  {
+    char* bytes = SI_gnome_vfs_format_file_size_for_display_max (rate, max);
     // xgettext: rate, 10MiB/s
     return make_string(g_strdup_printf(_("%s/s"), bytes));
   }

=== modified file 'src/util.h'
--- src/util.h	2008-01-03 01:52:24 +0000
+++ src/util.h	2008-02-02 09:49:26 +0000
@@ -37,6 +37,8 @@
 gchar*
 SI_gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size);
 
+gchar*
+SI_gnome_vfs_format_file_size_for_display_max (GnomeVFSFileSize size, GnomeVFSFileSize max);
 
 gboolean
 load_symbols(const char *module, ...) G_GNUC_NULL_TERMINATED;
@@ -142,6 +144,7 @@
 
 
   std::string format_rate(GnomeVFSFileSize rate);
+  std::string format_rate_max(GnomeVFSFileSize rate, GnomeVFSFileSize max);
 }
 
 

