Long .dot strings were causing multiple internal callbacks to the 'stdout' hander for the multiprocess communication, but the code assumed all output would occur in a single call to the 'stdout' handler. This caused a crash on long .dot strings because the final line in the first call to the stdout handler is typically cropped in the middle, causing a syntax error when that line is evaluated. The solution is to support multiple calls to the callback and append the data for all calls to a single variable, and only execute the command on the exit handler.
Long .dot strings were causing multiple internal callbacks to the 'stdout' hander for the multiprocess communication, but the code assumed all output would occur in a single call to the 'stdout' handler. This caused a crash on long .dot strings because the final line in the first call to the stdout handler is typically cropped in the middle, causing a syntax error when that line is evaluated. The solution is to support multiple calls to the callback and append the data for all calls to a single variable, and only execute the command on the exit handler.