+ return s
+
+
+def _save_message(msg, outstring, save_headers=False, save_body=False):
+ for header, param in (
+ ("Content-Disposition", "filename"),
+ ("Content-Type", "name"),
+ ):
+ fname = msg.get_param(param, header=header)
+ if fname:
+ try:
+ for forbidden in chr(0), '/', '\\':
+ if forbidden in fname:
+ raise ValueError
+ except ValueError:
+ continue
+ fname = '-' + fname
+ break
+ else:
+ fname = ''
+ g.save_counter += 1
+ fname = str(g.save_counter) + fname
+
+ global output
+ save_output = output
+ outfile = open_output_file(fname)
+ output = outfile.write
+ if save_headers:
+ output_headers(msg)
+ if save_body:
+ output(outstring)
+ outfile.close()
+ output = save_output