Index: /trunk/server/scripts/memcached-tool
===================================================================
--- /trunk/server/scripts/memcached-tool (revision 502)
+++ /trunk/server/scripts/memcached-tool (revision 623)
@@ -29,4 +29,6 @@
 } elsif ($mode eq 'dump') {
     ;
+} elsif ($mode eq 'stats') {
+    ;
 } else {
     undef $mode;
@@ -39,4 +41,5 @@
        memcached-tool 10.0.0.5:11211 display    # shows slabs
        memcached-tool 10.0.0.5:11211            # same.  (default is display)
+       memcached-tool 10.0.0.5:11211 stats      # shows general stats
        memcached-tool 10.0.0.5:11211 move 7 9   # takes 1MB slab from class #7
                                                 # to class #9.
@@ -128,4 +131,24 @@
 }
 
+if ($mode eq 'stats') {
+    my %items;
+
+    print $sock "stats\r\n";
+
+    while (<$sock>) {
+        last if /^END/;
+        chomp;
+        if (/^STAT\s+(\S*)\s+(.*)/) {
+            $items{$1} = $2;
+        }
+    }
+    printf ("#%-17s %5s %11s\n", $host, "Field", "Value");
+    foreach my $name (sort(keys(%items))) {
+      printf ("%24s %12s\n", $name, $items{$name});
+      
+    }
+    exit;
+}
+
 # display mode:
 
@@ -150,11 +173,14 @@
 }
 
-print "  # Item_Size  Max_age  1MB_pages Full?\n";
-foreach my $n (6..17) {
+print "  #  Item_Size   Max_age  1MB_pages Count   Full?\n";
+foreach my $n (1..40) {
     my $it = $items{$n};
-    my $size = $it->{chunk_size} < 1024 ? "$it->{chunk_size} B" : 
-	sprintf("%d kB", $it->{chunk_size} / 1024);
+    next if (0 == $it->{total_pages});
+    my $size = $it->{chunk_size} < 1024 ? "$it->{chunk_size} B " : 
+	sprintf("%.1f kB", $it->{chunk_size} / 1024.0);
     my $full = $it->{free_chunks_end} == 0 ? "yes" : " no";
-    printf "%3d    %6s%7d s %7d     $full\n", $n, $size, $it->{age}, $it->{total_pages};
+    printf "%3d   %8s %7d s %7d %7d %7s\n",
+                        $n, $size, $it->{age}, $it->{total_pages},
+                        $it->{number}, $full;
 }
 
Index: /trunk/server/ChangeLog
===================================================================
--- /trunk/server/ChangeLog (revision 622)
+++ /trunk/server/ChangeLog (revision 623)
@@ -16,4 +16,7 @@
 	* Add append command support written by Filipe Laborde.
 	  Tests/protocol doc updates by Paul Lindner.
+
+	* The memcached-tool script can now display stats.  Patch
+	  provided by Dan Christian <dchristian@google.com>
 
 2007-08-21 Paul Lindner <lindner@inuus.com>
Index: /trunk/server/configure.ac
===================================================================
--- /trunk/server/configure.ac (revision 607)
+++ /trunk/server/configure.ac (revision 623)
@@ -1,4 +1,4 @@
 AC_PREREQ(2.52)
-AC_INIT(memcached, 1.2.3, brad@danga.com)
+AC_INIT(memcached, 1.2.4, brad@danga.com)
 AC_CANONICAL_SYSTEM
 AC_CONFIG_SRCDIR(memcached.c)
