Add new placeholder $${python} to configure

This ensures that we use a consistent Python interpreter in LyX.

$${python} is replaced by the Python version found.

Users can apply this in preferences and use the same version defined by
LyX.
This commit is contained in:
José Matos 2022-01-04 00:21:34 +00:00
parent 13a7269b9d
commit 109ea2be4a
8 changed files with 65 additions and 67 deletions

View File

@ -653,7 +653,7 @@ def checkLatex(dtl_tools):
if dtl_tools: if dtl_tools:
# Windows only: DraftDVI # Windows only: DraftDVI
addToRC(r'''\converter latex dvi2 "%s" "latex,hyperref-driver=dvips" addToRC(r'''\converter latex dvi2 "%s" "latex,hyperref-driver=dvips"
\converter dvi2 dvi "python -tt $$s/scripts/clean_dvi.py $$i $$o" ""''' % LATEX) \converter dvi2 dvi "$${python} $$s/scripts/clean_dvi.py $$i $$o" ""''' % LATEX)
else: else:
addToRC(r'\converter latex dvi "%s" "latex,hyperref-driver=dvips"' % LATEX) addToRC(r'\converter latex dvi "%s" "latex,hyperref-driver=dvips"' % LATEX)
# no latex # no latex
@ -943,7 +943,7 @@ def checkConverterEntries():
checkProg('an HTML -> LaTeX converter', ['html2latex $$i', 'gnuhtml2latex', checkProg('an HTML -> LaTeX converter', ['html2latex $$i', 'gnuhtml2latex',
'htmltolatex -input $$i -output $$o', 'htmltolatex.jar -input $$i -output $$o'], 'htmltolatex -input $$i -output $$o', 'htmltolatex.jar -input $$i -output $$o'],
rc_entry = [ r'\converter html latex "%%" ""', rc_entry = [ r'\converter html latex "%%" ""',
r'\converter html latex "python -tt $$s/scripts/html2latexwrapper.py %% $$i $$o" ""', r'\converter html latex "$${python} $$s/scripts/html2latexwrapper.py %% $$i $$o" ""',
r'\converter html latex "%%" ""', r'\converter html latex "%%" ""',
r'\converter html latex "%%" ""', '' ]) r'\converter html latex "%%" ""', '' ])
# #
@ -964,8 +964,8 @@ def checkConverterEntries():
['elyxer.py --html --nofooter --unicode --directory $$r $$i $$o', 'elyxer --html --nofooter --unicode --directory $$r $$i $$o'], ['elyxer.py --html --nofooter --unicode --directory $$r $$i $$o', 'elyxer --html --nofooter --unicode --directory $$r $$i $$o'],
rc_entry = [ r'\converter lyx word "%%" ""' ]) rc_entry = [ r'\converter lyx word "%%" ""' ])
if elyxer.find('elyxer') >= 0: if elyxer.find('elyxer') >= 0:
addToRC(r'''\copier html "python -tt $$s/scripts/ext_copy.py -e html,png,jpg,jpeg,css $$i $$o"''') addToRC(r'''\copier html "$${python} $$s/scripts/ext_copy.py -e html,png,jpg,jpeg,css $$i $$o"''')
addToRC(r'''\copier wordhtml "python -tt $$s/scripts/ext_copy.py -e html,png,jpg,jpeg,css $$i $$o"''') addToRC(r'''\copier wordhtml "$${python} $$s/scripts/ext_copy.py -e html,png,jpg,jpeg,css $$i $$o"''')
else: else:
# search for HTML converters other than eLyXer # search for HTML converters other than eLyXer
# On SuSE the scripts have a .sh suffix, and on debian they are in /usr/share/tex4ht/ # On SuSE the scripts have a .sh suffix, and on debian they are in /usr/share/tex4ht/
@ -974,17 +974,17 @@ def checkConverterEntries():
'latex2html -no_subdir -split 0 -show_section_numbers $$i', 'hevea -s $$i'], 'latex2html -no_subdir -split 0 -show_section_numbers $$i', 'hevea -s $$i'],
rc_entry = [ r'\converter latex html "%%" "needaux"' ]) rc_entry = [ r'\converter latex html "%%" "needaux"' ])
if htmlconv.find('htlatex') >= 0 or htmlconv == 'latex2html': if htmlconv.find('htlatex') >= 0 or htmlconv == 'latex2html':
addToRC(r'''\copier html "python -tt $$s/scripts/ext_copy.py -e html,png,css $$i $$o"''') addToRC(r'''\copier html "$${python} $$s/scripts/ext_copy.py -e html,png,css $$i $$o"''')
else: else:
addToRC(r'''\copier html "python -tt $$s/scripts/ext_copy.py $$i $$o"''') addToRC(r'''\copier html "$${python} $$s/scripts/ext_copy.py $$i $$o"''')
path, htmlconv = checkProg('a LaTeX -> HTML (MS Word) converter', ["htlatex $$i 'html,word' 'symbol/!' '-cvalidate'", path, htmlconv = checkProg('a LaTeX -> HTML (MS Word) converter', ["htlatex $$i 'html,word' 'symbol/!' '-cvalidate'",
"htlatex.sh $$i 'html,word' 'symbol/!' '-cvalidate'", "htlatex.sh $$i 'html,word' 'symbol/!' '-cvalidate'",
"/usr/share/tex4ht/htlatex $$i 'html,word' 'symbol/!' '-cvalidate'"], "/usr/share/tex4ht/htlatex $$i 'html,word' 'symbol/!' '-cvalidate'"],
rc_entry = [ r'\converter latex wordhtml "%%" "needaux"' ]) rc_entry = [ r'\converter latex wordhtml "%%" "needaux"' ])
if htmlconv.find('htlatex') >= 0: if htmlconv.find('htlatex') >= 0:
addToRC(r'''\copier wordhtml "python -tt $$s/scripts/ext_copy.py -e html,png,css $$i $$o"''') addToRC(r'''\copier wordhtml "$${python} $$s/scripts/ext_copy.py -e html,png,css $$i $$o"''')
else: else:
addToRC(r'''\copier wordhtml "python -tt $$s/scripts/ext_copy.py $$i $$o"''') addToRC(r'''\copier wordhtml "$${python} $$s/scripts/ext_copy.py $$i $$o"''')
# Check if LyXBlogger is installed # Check if LyXBlogger is installed
@ -1015,9 +1015,9 @@ def checkConverterEntries():
xpath = 'none' xpath = 'none'
global java global java
if xsltproc != '': if xsltproc != '':
addToRC(r'\converter docbook5 epub "python $$s/scripts/docbook2epub.py none none \"' + xsltproc + r'\" ' + xpath + ' $$i $$r $$o" ""') addToRC(r'\converter docbook5 epub "$${python} $$s/scripts/docbook2epub.py none none \"' + xsltproc + r'\" ' + xpath + ' $$i $$r $$o" ""')
elif java != '': elif java != '':
addToRC(r'\converter docbook5 epub "python $$s/scripts/docbook2epub.py \"' + java + r'\" none none ' + xpath + ' $$i $$r $$o" ""') addToRC(r'\converter docbook5 epub "$${python} $$s/scripts/docbook2epub.py \"' + java + r'\" none none ' + xpath + ' $$i $$r $$o" ""')
# #
checkProg('a MS Word Office Open XML converter -> LaTeX', ['pandoc -s -f docx -o $$o -t latex $$i'], checkProg('a MS Word Office Open XML converter -> LaTeX', ['pandoc -s -f docx -o $$o -t latex $$i'],
rc_entry = [ r'\converter word2 latex "%%" ""' ]) rc_entry = [ r'\converter word2 latex "%%" ""' ])
@ -1089,8 +1089,8 @@ def checkConverterEntries():
# PDF produced using non-TeX fonts. This does not produce non-unique # PDF produced using non-TeX fonts. This does not produce non-unique
# conversion paths, since a given document either uses TeX fonts or not. # conversion paths, since a given document either uses TeX fonts or not.
checkProg('Ghostscript', ["gswin32c", "gswin64c", "gs"], checkProg('Ghostscript', ["gswin32c", "gswin64c", "gs"],
rc_entry = [ r'''\converter pdf2 pdf8 "python -tt $$s/scripts/convert_pdf.py $$i $$o ebook" "" rc_entry = [ r'''\converter pdf2 pdf8 "$${python} $$s/scripts/convert_pdf.py $$i $$o ebook" ""
\converter pdf4 pdf8 "python -tt $$s/scripts/convert_pdf.py $$i $$o ebook" ""''' ]) \converter pdf4 pdf8 "$${python} $$s/scripts/convert_pdf.py $$i $$o ebook" ""''' ])
# #
checkProg('a Beamer info extractor', ['makebeamerinfo -p $$i'], checkProg('a Beamer info extractor', ['makebeamerinfo -p $$i'],
rc_entry = [ r'\converter pdf2 beamer.info "%%" ""' ]) rc_entry = [ r'\converter pdf2 beamer.info "%%" ""' ])
@ -1116,24 +1116,24 @@ def checkConverterEntries():
\converter fig ppm "fig2dev -L ppm $$i $$o" "" \converter fig ppm "fig2dev -L ppm $$i $$o" ""
\converter fig svg "fig2dev -L svg $$i $$o" "" \converter fig svg "fig2dev -L svg $$i $$o" ""
\converter fig png "fig2dev -L png $$i $$o" "" \converter fig png "fig2dev -L png $$i $$o" ""
\converter fig pdftex "python -tt $$s/scripts/fig2pdftex.py $$i $$o" "" \converter fig pdftex "$${python} $$s/scripts/fig2pdftex.py $$i $$o" ""
\converter fig pstex "python -tt $$s/scripts/fig2pstex.py $$i $$o" ""''') \converter fig pstex "$${python} $$s/scripts/fig2pstex.py $$i $$o" ""''')
# #
if inkscape_stable: if inkscape_stable:
checkProg('a SVG -> PDFTeX converter', [inkscape_cl], checkProg('a SVG -> PDFTeX converter', [inkscape_cl],
rc_entry = [ r'\converter svg pdftex "python -tt $$s/scripts/svg2pdftex.py %% $$p$$i $$p$$o" ""'], rc_entry = [ r'\converter svg pdftex "$${python} $$s/scripts/svg2pdftex.py %% $$p$$i $$p$$o" ""'],
path = [inkscape_path]) path = [inkscape_path])
# #
checkProg('a SVG -> PSTeX converter', [inkscape_cl], checkProg('a SVG -> PSTeX converter', [inkscape_cl],
rc_entry = [ r'\converter svg pstex "python -tt $$s/scripts/svg2pstex.py %% $$p$$i $$p$$o" ""'], rc_entry = [ r'\converter svg pstex "$${python} $$s/scripts/svg2pstex.py %% $$p$$i $$p$$o" ""'],
path = [inkscape_path]) path = [inkscape_path])
else: else:
checkProg('a SVG -> PDFTeX converter', [inkscape_cl], checkProg('a SVG -> PDFTeX converter', [inkscape_cl],
rc_entry = [ r'\converter svg pdftex "python -tt $$s/scripts/svg2pdftex.py --unstable %% $$p$$i $$p$$o" ""'], rc_entry = [ r'\converter svg pdftex "$${python} $$s/scripts/svg2pdftex.py --unstable %% $$p$$i $$p$$o" ""'],
path = [inkscape_path]) path = [inkscape_path])
# #
checkProg('a SVG -> PSTeX converter', [inkscape_cl], checkProg('a SVG -> PSTeX converter', [inkscape_cl],
rc_entry = [ r'\converter svg pstex "python -tt $$s/scripts/svg2pstex.py --unstable %% $$p$$i $$p$$o" ""'], rc_entry = [ r'\converter svg pstex "$${python} $$s/scripts/svg2pstex.py --unstable %% $$p$$i $$p$$o" ""'],
path = [inkscape_path]) path = [inkscape_path])
# #
checkProg('a TIFF -> PS converter', ['tiff2ps $$i > $$o'], checkProg('a TIFF -> PS converter', ['tiff2ps $$i > $$o'],
@ -1248,7 +1248,7 @@ def checkConverterEntries():
# #
checkProg('Gnuplot', ['gnuplot'], checkProg('Gnuplot', ['gnuplot'],
rc_entry = [ r'''\Format gnuplot "gp, gnuplot" "Gnuplot" "" "" "" "vector" "text/plain" rc_entry = [ r'''\Format gnuplot "gp, gnuplot" "Gnuplot" "" "" "" "vector" "text/plain"
\converter gnuplot pdf6 "python -tt $$s/scripts/gnuplot2pdf.py $$i $$o" "needauth"''' ]) \converter gnuplot pdf6 "$${python} $$s/scripts/gnuplot2pdf.py $$i $$o" "needauth"''' ])
# #
# gnumeric/xls/ods to tex # gnumeric/xls/ods to tex
checkProg('a spreadsheet -> latex converter', ['ssconvert'], checkProg('a spreadsheet -> latex converter', ['ssconvert'],
@ -1260,10 +1260,10 @@ def checkConverterEntries():
\converter oocalc html_table "ssconvert --export-type=Gnumeric_html:html40frag $$i $$o" "" \converter oocalc html_table "ssconvert --export-type=Gnumeric_html:html40frag $$i $$o" ""
\converter excel html_table "ssconvert --export-type=Gnumeric_html:html40frag $$i $$o" "" \converter excel html_table "ssconvert --export-type=Gnumeric_html:html40frag $$i $$o" ""
\converter excel2 html_table "ssconvert --export-type=Gnumeric_html:html40frag $$i $$o" "" \converter excel2 html_table "ssconvert --export-type=Gnumeric_html:html40frag $$i $$o" ""
\converter gnumeric xhtml_table "python $$s/scripts/spreadsheet_to_docbook.py $$i $$o" "" \converter gnumeric xhtml_table "$${python} $$s/scripts/spreadsheet_to_docbook.py $$i $$o" ""
\converter oocalc xhtml_table "python $$s/scripts/spreadsheet_to_docbook.py $$i $$o" "" \converter oocalc xhtml_table "$${python} $$s/scripts/spreadsheet_to_docbook.py $$i $$o" ""
\converter excel xhtml_table "python $$s/scripts/spreadsheet_to_docbook.py $$i $$o" "" \converter excel xhtml_table "$${python} $$s/scripts/spreadsheet_to_docbook.py $$i $$o" ""
\converter excel2 xhtml_table "python $$s/scripts/spreadsheet_to_docbook.py $$i $$o" "" \converter excel2 xhtml_table "$${python} $$s/scripts/spreadsheet_to_docbook.py $$i $$o" ""
''']) '''])
path, lilypond = checkProg('a LilyPond -> EPS/PDF/PNG converter', ['lilypond']) path, lilypond = checkProg('a LilyPond -> EPS/PDF/PNG converter', ['lilypond'])
@ -1327,7 +1327,7 @@ def checkConverterEntries():
docbook_lilypond_cmd = cmd docbook_lilypond_cmd = cmd
if "python" in docbook_lilypond_cmd: if "python" in docbook_lilypond_cmd:
docbook_lilypond_cmd = '"' + path + '/lilypond-book"' docbook_lilypond_cmd = '"' + path + '/lilypond-book"'
addToRC(r'\copier docbook5 "python $$s/scripts/docbook_copy.py ' + docbook_lilypond_cmd.replace('"', r'\"') + r' $$i $$o"') addToRC(r'\copier docbook5 "$${python} $$s/scripts/docbook_copy.py ' + docbook_lilypond_cmd.replace('"', r'\"') + r' $$i $$o"')
logger.info('+ found LilyPond-book version %s.' % version_number) logger.info('+ found LilyPond-book version %s.' % version_number)
@ -1345,7 +1345,7 @@ def checkConverterEntries():
# Currently, lyxpak outputs a gzip compressed tar archive on *nix # Currently, lyxpak outputs a gzip compressed tar archive on *nix
# and a zip archive on Windows. # and a zip archive on Windows.
# So, we configure the appropriate version according to the platform. # So, we configure the appropriate version according to the platform.
cmd = r'\converter lyx %s "python -tt $$s/scripts/lyxpak.py $$r/$$f" ""' cmd = r'\converter lyx %s "$${python} $$s/scripts/lyxpak.py $$r/$$f" ""'
if os.name == 'nt': if os.name == 'nt':
addToRC(r'\Format lyxzip zip "LyX Archive (zip)" "" "" "" "document,menu=export" ""') addToRC(r'\Format lyxzip zip "LyX Archive (zip)" "" "" "" "document,menu=export" ""')
addToRC(cmd % "lyxzip") addToRC(cmd % "lyxzip")
@ -1359,24 +1359,24 @@ def checkConverterEntries():
# #
# Entries that do not need checkProg # Entries that do not need checkProg
addToRC(r''' addToRC(r'''
\converter csv lyx "python -tt $$s/scripts/csv2lyx.py $$i $$o" "" \converter csv lyx "$${python} $$s/scripts/csv2lyx.py $$i $$o" ""
\converter fen asciichess "python -tt $$s/scripts/fen2ascii.py $$i $$o" "" \converter fen asciichess "$${python} $$s/scripts/fen2ascii.py $$i $$o" ""
\converter lyx lyx13x "python -tt $$s/lyx2lyx/lyx2lyx -V 1.3 -o $$o $$i" "" \converter lyx lyx13x "$${python} $$s/lyx2lyx/lyx2lyx -V 1.3 -o $$o $$i" ""
\converter lyx lyx14x "python -tt $$s/lyx2lyx/lyx2lyx -V 1.4 -o $$o $$i" "" \converter lyx lyx14x "$${python} $$s/lyx2lyx/lyx2lyx -V 1.4 -o $$o $$i" ""
\converter lyx lyx15x "python -tt $$s/lyx2lyx/lyx2lyx -V 1.5 -o $$o $$i" "" \converter lyx lyx15x "$${python} $$s/lyx2lyx/lyx2lyx -V 1.5 -o $$o $$i" ""
\converter lyx lyx16x "python -tt $$s/lyx2lyx/lyx2lyx -V 1.6 -o $$o $$i" "" \converter lyx lyx16x "$${python} $$s/lyx2lyx/lyx2lyx -V 1.6 -o $$o $$i" ""
\converter lyx lyx20x "python -tt $$s/lyx2lyx/lyx2lyx -V 2.0 -o $$o $$i" "" \converter lyx lyx20x "$${python} $$s/lyx2lyx/lyx2lyx -V 2.0 -o $$o $$i" ""
\converter lyx lyx21x "python -tt $$s/lyx2lyx/lyx2lyx -V 2.1 -o $$o $$i" "" \converter lyx lyx21x "$${python} $$s/lyx2lyx/lyx2lyx -V 2.1 -o $$o $$i" ""
\converter lyx lyx22x "python -tt $$s/lyx2lyx/lyx2lyx -V 2.2 -o $$o $$i" "" \converter lyx lyx22x "$${python} $$s/lyx2lyx/lyx2lyx -V 2.2 -o $$o $$i" ""
\converter lyx lyx23x "python -tt $$s/lyx2lyx/lyx2lyx -V 2.3 -o $$o $$i" "" \converter lyx lyx23x "$${python} $$s/lyx2lyx/lyx2lyx -V 2.3 -o $$o $$i" ""
\converter lyx clyx "python -tt $$s/lyx2lyx/lyx2lyx -V 1.4 -o $$o -c big5 $$i" "" \converter lyx clyx "$${python} $$s/lyx2lyx/lyx2lyx -V 1.4 -o $$o -c big5 $$i" ""
\converter lyx jlyx "python -tt $$s/lyx2lyx/lyx2lyx -V 1.4 -o $$o -c euc_jp $$i" "" \converter lyx jlyx "$${python} $$s/lyx2lyx/lyx2lyx -V 1.4 -o $$o -c euc_jp $$i" ""
\converter lyx klyx "python -tt $$s/lyx2lyx/lyx2lyx -V 1.4 -o $$o -c euc_kr $$i" "" \converter lyx klyx "$${python} $$s/lyx2lyx/lyx2lyx -V 1.4 -o $$o -c euc_kr $$i" ""
\converter clyx lyx "python -tt $$s/lyx2lyx/lyx2lyx -c big5 -o $$o $$i" "" \converter clyx lyx "$${python} $$s/lyx2lyx/lyx2lyx -c big5 -o $$o $$i" ""
\converter jlyx lyx "python -tt $$s/lyx2lyx/lyx2lyx -c euc_jp -o $$o $$i" "" \converter jlyx lyx "$${python} $$s/lyx2lyx/lyx2lyx -c euc_jp -o $$o $$i" ""
\converter klyx lyx "python -tt $$s/lyx2lyx/lyx2lyx -c euc_kr -o $$o $$i" "" \converter klyx lyx "$${python} $$s/lyx2lyx/lyx2lyx -c euc_kr -o $$o $$i" ""
\converter lyxpreview png "python -tt $$s/scripts/lyxpreview2bitmap.py --png" "" \converter lyxpreview png "$${python} $$s/scripts/lyxpreview2bitmap.py --png" ""
\converter lyxpreview ppm "python -tt $$s/scripts/lyxpreview2bitmap.py --ppm" "" \converter lyxpreview ppm "$${python} $$s/scripts/lyxpreview2bitmap.py --ppm" ""
''') ''')
@ -1410,11 +1410,11 @@ def checkOtherEntries():
## FIXME: MAPLE is not used anywhere ## FIXME: MAPLE is not used anywhere
# path, MAPLE = checkProg('Maple', ['maple']) # path, MAPLE = checkProg('Maple', ['maple'])
# Add the rest of the entries (no checkProg is required) # Add the rest of the entries (no checkProg is required)
addToRC(r'''\citation_search_view "python -tt $$s/scripts/lyxpaperview.py"''') addToRC(r'''\citation_search_view "$${python} $$s/scripts/lyxpaperview.py"''')
addToRC(r'''\copier fig "python -tt $$s/scripts/fig_copy.py $$i $$o" addToRC(r'''\copier fig "$${python} $$s/scripts/fig_copy.py $$i $$o"
\copier pstex "python -tt $$s/scripts/tex_copy.py $$i $$o $$l" \copier pstex "$${python} $$s/scripts/tex_copy.py $$i $$o $$l"
\copier pdftex "python -tt $$s/scripts/tex_copy.py $$i $$o $$l" \copier pdftex "$${python} $$s/scripts/tex_copy.py $$i $$o $$l"
\copier program "python -tt $$s/scripts/ext_copy.py $$i $$o" \copier program "$${python} $$s/scripts/ext_copy.py $$i $$o"
''') ''')
def _checkForClassExtension(x): def _checkForClassExtension(x):

View File

@ -17,7 +17,7 @@
# automatically. To set it up, create a format "ltxbbl"; make sure to # automatically. To set it up, create a format "ltxbbl"; make sure to
# check it as a document format. Then create a LaTeX-->ltxbbl converter, # check it as a document format. Then create a LaTeX-->ltxbbl converter,
# with the command: # with the command:
# python -tt $$s/scripts/include_bib.py $$i $$o # $${python} $$s/scripts/include_bib.py $$i $$o
# and give it the flags: # and give it the flags:
# needaux,nice # needaux,nice
# You'll then have it in the export menu. # You'll then have it in the export menu.

View File

@ -60,7 +60,7 @@ string const token_orig_path("$$r");
string const token_orig_from("$$f"); string const token_orig_from("$$f");
string const token_encoding("$$e"); string const token_encoding("$$e");
string const token_latex_encoding("$$E"); string const token_latex_encoding("$$E");
string const token_python("$${python}");
string const add_options(string const & command, string const & options) string const add_options(string const & command, string const & options)
{ {
@ -644,6 +644,7 @@ Converters::RetVal Converters::convert(Buffer const * buffer,
command = subst(command, token_orig_path, quoteName(onlyPath(orig_from.absFileName()))); command = subst(command, token_orig_path, quoteName(onlyPath(orig_from.absFileName())));
command = subst(command, token_orig_from, quoteName(onlyFileName(orig_from.absFileName()))); command = subst(command, token_orig_from, quoteName(onlyFileName(orig_from.absFileName())));
command = subst(command, token_encoding, buffer ? buffer->params().encoding().iconvName() : string()); command = subst(command, token_encoding, buffer ? buffer->params().encoding().iconvName() : string());
command = subst(command, token_python, os::python());
if (!conv.parselog().empty()) if (!conv.parselog().empty())
command += " 2> " + quoteName(infile2 + ".out"); command += " 2> " + quoteName(infile2 + ".out");
@ -684,11 +685,11 @@ Converters::RetVal Converters::convert(Buffer const * buffer,
if (res == Systemcall::KILLED) { if (res == Systemcall::KILLED) {
frontend::Alert::warning( frontend::Alert::warning(
_("Converter killed"), _("Converter killed"),
bformat(_("The following converter was killed by the user.\n %1$s\n"), bformat(_("The following converter was killed by the user.\n %1$s\n"),
from_utf8(command))); from_utf8(command)));
return KILLED; return KILLED;
} }
if (!real_outfile.empty()) { if (!real_outfile.empty()) {
Mover const & mover = getMover(conv.to()); Mover const & mover = getMover(conv.to());
if (!mover.rename(outfile, real_outfile)) if (!mover.rename(outfile, real_outfile))
@ -713,7 +714,7 @@ Converters::RetVal Converters::convert(Buffer const * buffer,
if (res == Systemcall::KILLED) { if (res == Systemcall::KILLED) {
frontend::Alert::warning( frontend::Alert::warning(
_("Converter killed"), _("Converter killed"),
bformat(_("The following converter was killed by the user.\n %1$s\n"), bformat(_("The following converter was killed by the user.\n %1$s\n"),
from_utf8(command))); from_utf8(command)));
return KILLED; return KILLED;
} }
@ -728,13 +729,13 @@ Converters::RetVal Converters::convert(Buffer const * buffer,
bformat(_("The conversion process was killed while running:\n%1$s"), bformat(_("The conversion process was killed while running:\n%1$s"),
wrapParas(from_utf8(command)))); wrapParas(from_utf8(command))));
return KILLED; return KILLED;
} }
if (res == Systemcall::TIMEOUT) { if (res == Systemcall::TIMEOUT) {
Alert::information(_("Process Timed Out"), Alert::information(_("Process Timed Out"),
bformat(_("The conversion process:\n%1$s\ntimed out before completing."), bformat(_("The conversion process:\n%1$s\ntimed out before completing."),
wrapParas(from_utf8(command)))); wrapParas(from_utf8(command))));
return KILLED; return KILLED;
} }
if (conv.to() == "program") { if (conv.to() == "program") {
Alert::error(_("Build errors"), Alert::error(_("Build errors"),
_("There were errors during the build process.")); _("There were errors during the build process."));

View File

@ -63,6 +63,7 @@ bool SpecialisedMover::do_copy(FileName const & from, FileName const & to,
command = subst(command, "$$i", quoteName(from.toFilesystemEncoding())); command = subst(command, "$$i", quoteName(from.toFilesystemEncoding()));
command = subst(command, "$$o", quoteName(to.toFilesystemEncoding())); command = subst(command, "$$o", quoteName(to.toFilesystemEncoding()));
command = subst(command, "$$l", quoteName(latex)); command = subst(command, "$$l", quoteName(latex));
command = subst(command, "$${python}", os::python());
Systemcall one; Systemcall one;
return one.startscript(Systemcall::Wait, command) == 0; return one.startscript(Systemcall::Wait, command) == 0;

View File

@ -34,6 +34,7 @@
#include "support/filetools.h" #include "support/filetools.h"
#include "support/ForkedCalls.h" #include "support/ForkedCalls.h"
#include "support/lstrings.h" #include "support/lstrings.h"
#include "support/os.h"
#include "support/TempFile.h" #include "support/TempFile.h"
@ -322,7 +323,7 @@ public:
string const file_name = os.str(); string const file_name = os.str();
return make_pair(snippet, FileName(file_name)); return make_pair(snippet, FileName(file_name));
} }
private: private:
string const & to_format_; string const & to_format_;
string const & base_; string const & base_;
@ -678,7 +679,7 @@ void PreviewLoader::Impl::startLoading(bool wait)
// The conversion command. // The conversion command.
ostringstream cs; ostringstream cs;
cs << pconverter_->command() cs << subst(pconverter_->command(), "$${python}", os::python())
<< " " << quoteName(latexfile.toFilesystemEncoding()) << " " << quoteName(latexfile.toFilesystemEncoding())
<< " --dpi " << font_scaling_factor_; << " --dpi " << font_scaling_factor_;

View File

@ -305,11 +305,6 @@ int ForkedCall::generateChild()
if (command_.empty()) if (command_.empty())
return 1; return 1;
// Make sure that a V2 python is run, if available.
string const line = cmd_prefix_ +
(prefixIs(command_, "python -tt")
? os::python() + command_.substr(10) : command_);
#if !defined (_WIN32) #if !defined (_WIN32)
// POSIX // POSIX
@ -317,8 +312,8 @@ int ForkedCall::generateChild()
// in a contiguous block of memory. The array contains pointers // in a contiguous block of memory. The array contains pointers
// to each word. // to each word.
// Don't forget the terminating `\0' character. // Don't forget the terminating `\0' character.
char const * const c_str = line.c_str(); char const * const c_str = command_.c_str();
vector<char> vec(c_str, c_str + line.size() + 1); vector<char> vec(c_str, c_str + command_.size() + 1);
// Splitting the command up into an array of words means replacing // Splitting the command up into an array of words means replacing
// the whitespace between words with '\0'. Life is complicated // the whitespace between words with '\0'. Life is complicated
@ -382,7 +377,7 @@ int ForkedCall::generateChild()
if (lyxerr.debugging(Debug::FILES)) { if (lyxerr.debugging(Debug::FILES)) {
vector<char *>::iterator ait = argv.begin(); vector<char *>::iterator ait = argv.begin();
vector<char *>::iterator const aend = argv.end(); vector<char *>::iterator const aend = argv.end();
lyxerr << "<command>\n\t" << line lyxerr << "<command>\n\t" << command_
<< "\n\tInterpreted as:\n\n"; << "\n\tInterpreted as:\n\n";
for (; ait != aend; ++ait) for (; ait != aend; ++ait)
if (*ait) if (*ait)

View File

@ -169,7 +169,7 @@ string const parsecmd(string const & incmd, string & infile, string & outfile,
bool in_single_quote = false; bool in_single_quote = false;
bool in_double_quote = false; bool in_double_quote = false;
bool escaped = false; bool escaped = false;
string const python_call = "python -tt"; string const python_call = os::python();
vector<string> outcmd(4); vector<string> outcmd(4);
size_t start = 0; size_t start = 0;

View File

@ -410,7 +410,7 @@ FileName const imageLibFileSearch(string & dir, string const & name,
string const commandPrep(string const & command_in) string const commandPrep(string const & command_in)
{ {
static string const token_scriptpath = "$$s/"; static string const token_scriptpath = "$$s/";
string const python_call = "python -tt"; string const python_call = os::python();
string command = command_in; string command = command_in;
if (prefixIs(command_in, python_call)) if (prefixIs(command_in, python_call))