chiark / gitweb /
slip fix
[hippotat.git] / hippotat / slip.py
index f13513787857ce7339f91b9dea9d94051fd200fc..d7c44630ac40001834630809e22e93f052df313c 100644 (file)
@@ -11,10 +11,14 @@ def encode(packet):
           .replace(esc, esc + esc_esc)
           .replace(end, esc + esc_end))
 
-def decode(data):
+def decode(data, keep_tail=False):
   #print('DECODE ', repr(data))
   out = []
-  for packet in data.split(end):
+  inp = data.split(end)
+  tail = []
+  if keep_tail:
+    tail.append(inp.pop())
+  for packet in inp:
     pdata = b''
     while True:
       eix = packet.find(esc)
@@ -31,6 +35,7 @@ def decode(data):
       packet = packet[eix+2 : ]
     out.append(pdata)
   #print('DECODED ', repr(out))
+  out += tail
   return out
 # -*- python -*-