-#! /usr/bin/env python
-
'''
file clean_dvi.py
This file is part of LyX, the document processor.
http://www.ctan.org/tex-archive/dviware/dtl/
'''
-import os, re, sys
+import os, re, subprocess, sys
def usage(prog_name):
return 'Usage: %s in.dvi out.dvi\n' \
error('Unable to read "%s"\n' % infile)
# Convert the input .dvi file to .dtl format.
+ if os.name == 'nt':
+ unix = False
+ else:
+ unix = True
dv2dt_call = 'dv2dt "%s"' % infile
- dv2dt_stdin, dv2dt_stdout, dv2dt_stderr = \
- os.popen3(dv2dt_call, 't')
+ dv2dt_pipe = subprocess.Popen(dv2dt_call, universal_newlines=True, \
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, \
+ shell=unix, close_fds=unix)
+ (dv2dt_stdin, dv2dt_stdout, dv2dt_stderr) = \
+ (dv2dt_pipe.stdin, dv2dt_pipe.stdout, dv2dt_pipe.stderr)
dv2dt_stdin.close()
dv2dt_data = dv2dt_stdout.read()
if dv2dt_status != None or len(dv2dt_data) == 0:
dv2dt_err = dv2dt_stderr.read()
- error("Failed: %s\n%s\n" % ( dv2dt_call, dv2dt_err) )
+ error(f"Failed: {dv2dt_call}\n{dv2dt_err}\n" )
# Manipulate the .dtl file.
dtl_data = manipulated_dtl(dv2dt_data)