From bf41d9ad53fab0e38b0af365fda1cdefa7a4d59d Mon Sep 17 00:00:00 2001
From: Phil <phil@secdev.org>
Date: Thu, 18 Feb 2010 16:53:47 +0100
Subject: [PATCH] Have Packet.show() indent field values represented on several
 lines

---
 scapy/packet.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/scapy/packet.py b/scapy/packet.py
index 4e3c893c..1f51f318 100644
--- a/scapy/packet.py
+++ b/scapy/packet.py
@@ -801,10 +801,16 @@ Creates an EPS file describing a packet. If filename is not provided a temporary
                 for fvalue in fvalue_gen:
                     fvalue.show(indent=indent, label_lvl=label_lvl+lvl+"   |")
             else:
-                print "%s  %-10s%s %s" % (label_lvl+lvl,
-                                          ncol(f.name),
-                                          ct.punct("="),
-                                          vcol(f.i2repr(self,fvalue)))
+                begn = "%s  %-10s%s " % (label_lvl+lvl,
+                                        ncol(f.name),
+                                        ct.punct("="),)
+                reprval = f.i2repr(self,fvalue)
+                if type(reprval) is str:
+                    reprval = reprval.replace("\n", "\n"+" "*(len(label_lvl)
+                                                              +len(lvl)
+                                                              +len(f.name)
+                                                              +4))
+                print "%s%s" % (begn,vcol(reprval))
         self.payload.show(indent=indent, lvl=lvl+(" "*indent*self.show_indent), label_lvl=label_lvl)
     def show2(self):
         """Prints a hierarchical view of an assembled version of the packet, so that automatic fields are calculated (checksums, etc.)"""
-- 
GitLab