[Gd-chatter] r10983 - trunk/libraries/gui-sniffer

andreas at gwydiondylan.org andreas at gwydiondylan.org
Wed Nov 22 00:00:08 CET 2006


Author: andreas
Date: Wed Nov 22 00:00:06 2006
New Revision: 10983

Modified:
   trunk/libraries/gui-sniffer/gui-sniffer.dylan
   trunk/libraries/gui-sniffer/hex-view.dylan
   trunk/libraries/gui-sniffer/module.dylan
Log:
job: 7299

Fix hexdump in tree view.

Modified: trunk/libraries/gui-sniffer/gui-sniffer.dylan
==============================================================================
--- trunk/libraries/gui-sniffer/gui-sniffer.dylan	(original)
+++ trunk/libraries/gui-sniffer/gui-sniffer.dylan	Wed Nov 22 00:00:06 2006
@@ -48,33 +48,24 @@
 end;
 
 define method frame-children-generator (raw-frame :: <raw-frame>)
-  let out = make(<string-stream>, direction: #"output");
-  let hex = block()
-              hexdump(out, raw-frame.data);
-              stream-contents(out);
-            cleanup
-              close(out)
-            end;
-  let lines = split(hex, '\n');
-  if (lines[0] = "")
-    lines := copy-sequence(lines, start: 1)
-  end;
+  let out = hexdump(raw-frame.data);
+  let lines = split(out, '\n');
   if (lines[lines.size - 1] = "")
     lines := copy-sequence(lines, end: lines.size - 1)
   end;
 
-  let start :: <integer> = 0;
-  let length :: <integer> = 16 * 8;
-  map(method(x)
-        let rff = make(<raw-frame-element>,
-                       start: start,
-                       length: length,
-                       end: start + length,
-                       raw-frame: raw-frame,
-                       value: x);
-        start := start + length;
-        rff;
-      end, lines)
+  let children = make(<stretchy-vector>);
+
+  for (line in lines, offset from 0 by 16 * 8)
+    let length = min(16 * 8, raw-frame.data.size * 8 - offset);
+    add!(children, make(<raw-frame-element>,
+                        start: offset,
+                        length: length,
+                        end: offset + length,
+                        raw-frame: raw-frame,
+                        value: line));
+  end;
+  children;
 end;
 
 define method frame-children-generator (a-frame :: <header-frame>)
@@ -308,7 +299,6 @@
 end;
 
 define method compute-absolute-offset (frame :: type-union(<container-frame>, <raw-frame>), relative-to)
-  format-out("%= %=\n", frame, relative-to);
   if (frame.parent & frame ~= relative-to)
     let ff = find-frame-field(frame.parent, frame);
     compute-absolute-offset(ff, relative-to);

Modified: trunk/libraries/gui-sniffer/hex-view.dylan
==============================================================================
--- trunk/libraries/gui-sniffer/hex-view.dylan	(original)
+++ trunk/libraries/gui-sniffer/hex-view.dylan	Wed Nov 22 00:00:06 2006
@@ -5,32 +5,6 @@
   integer-to-string(integer, base: 16, size: size)
 end function hex;
 
-/*
-define method hexdump (sequence :: <sequence>) => (dump :: <string>)
-  let stream = make(<string-stream>, direction: #"output");
-  block()
-    for (byte in sequence,
-         index from 0)
-      if(modulo(index, 16) == 0)
-        format(stream, "%s  ", hex(index, size: 4))
-      end;
-      format(stream, "%s", hex(byte, size: 2));
-      if(modulo(index, 16) == 15 
-        | (index == sequence.size - 1 & sequence.size > 16))
-        format(stream, "\n")
-      elseif(modulo(index, 16) == 7)
-        format(stream, "  ");
-      else
-        format(stream, " ");
-      end if;
-    end for;
-    stream-contents(stream);
-  cleanup
-    close(stream)
-  end
-end method hexdump;
-*/
-
 define method hexdump (sequence :: <sequence>) => (dump :: <string>)
   let stream = make(<string-stream>, direction: #"output");
   block()

Modified: trunk/libraries/gui-sniffer/module.dylan
==============================================================================
--- trunk/libraries/gui-sniffer/module.dylan	(original)
+++ trunk/libraries/gui-sniffer/module.dylan	Wed Nov 22 00:00:06 2006
@@ -10,7 +10,7 @@
   use deuce;
   use deuce-internals;
 
-  export show-hexdump, set-highlight;
+  export show-hexdump, set-highlight, hexdump;
 end;
 
 define module gui-sniffer
@@ -26,7 +26,7 @@
   use date;
   use file-system;
   use operating-system;
-  use packetizer;
+  use packetizer, exclude: { hexdump };
   use packet-filter;
   use network-flow;
   use flow;



More information about the chatter mailing list