There may still be a problem with synchronous subprocesses, since we don't have
a way to get at those ports. If the process writes UTF-8, then the I/O copier
will try to write unicode chars to a buffer, and I'm not sure what will happen
in that case. It might just ignore the upper bits.
(let ((channel (subprocess-input-channel subprocess)))
(if channel
(channel-nonblocking channel)))
+ (let ((fix-port
+ (lambda (port)
+ (if (and port (port/supports-coding? port))
+ (port/set-coding port 'iso-8859-1)))))
+ (fix-port (subprocess-input-port subprocess))
+ (fix-port (subprocess-output-port subprocess)))
(set-process-status-registration!
process
(register-subprocess-event