Using errors=replace in python utf-8 decoding makes these scripts more resilient to underlying errors, rather than just throwing an unhelpfully generic decode error.
@@ -31,7 +31,8 @@ def collect(paths, **args):
proc = sp.Popen(cmd,
stdout=sp.PIPE,
stderr=sp.PIPE if not args.get('verbose') else None,
- universal_newlines=True)
+ universal_newlines=True,
+ errors='replace')
for line in proc.stdout:
m = pattern.match(line)
if m:
@@ -35,7 +35,8 @@ def collect(paths, **args):
# state machine here to find structs