From e9ac4bef2065abe545fbc7e8712c027f573082b3 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 27 Mar 2012 11:25:50 +1300 Subject: Add a variant of cleanBin that escapes newlines and tabs. Use this to fix the hex display option. --- libmproxy/utils.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'libmproxy') diff --git a/libmproxy/utils.py b/libmproxy/utils.py index bcf9d141..b4e317c5 100644 --- a/libmproxy/utils.py +++ b/libmproxy/utils.py @@ -54,11 +54,18 @@ def isXML(s): return False -def cleanBin(s): +def cleanBin(s, fixspacing=False): + """ + Cleans binary data to make it safe to display. If fixspacing is True, + tabs, newlines and so forth will be maintained, if not, they will be + replaced with a placeholder. + """ parts = [] for i in s: o = ord(i) - if (o > 31 and o < 127) or i in "\n\r\t": + if (o > 31 and o < 127): + parts.append(i) + elif i in "\n\r\t" and not fixspacing: parts.append(i) else: parts.append(".") @@ -147,7 +154,7 @@ def hexdump(s): x += " " x += " ".join(" " for i in range(16 - len(part))) parts.append( - (o, x, cleanBin(part)) + (o, x, cleanBin(part, True)) ) return parts -- cgit v1.2.3