X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.py;h=62f32751e6c5837326b7f31e24e51bd3fd517156;hb=7feaac16d224b7adb406eb79810b2b84e4816ca0;hp=38310e3a5d1636167040c59c17191236af3a5266;hpb=727a421a1f0cdc3d899b8f533bc2bcff352755c4;p=lyx.git diff --git a/lib/configure.py b/lib/configure.py index 38310e3a5d..62f32751e6 100644 --- a/lib/configure.py +++ b/lib/configure.py @@ -158,17 +158,19 @@ def checkProg(description, progs, rc_entry = [], path = [], not_found = ''): ac_word = ac_prog.split(' ')[0] print '+checking for "' + ac_word + '"... ', path = os.environ["PATH"].split(os.pathsep) + path + extlist = [''] + if os.environ.has_key("PATHEXT"): + extlist = extlist + os.environ["PATHEXT"].split(os.pathsep) for ac_dir in path: - # check both ac_word and ac_word.exe (for windows system) - if os.path.isfile( os.path.join(ac_dir, ac_word) ) or \ - os.path.isfile( os.path.join(ac_dir, ac_word + ".exe") ): - print ' yes' - # write rc entries for this command - if len(rc_entry) == 1: - addToRC(rc_entry[0].replace('%%', ac_prog)) - elif len(rc_entry) > 1: - addToRC(rc_entry[idx].replace('%%', ac_prog)) - return [ac_dir, ac_word] + for ext in extlist: + if os.path.isfile( os.path.join(ac_dir, ac_word + ext) ): + print ' yes' + # write rc entries for this command + if len(rc_entry) == 1: + addToRC(rc_entry[0].replace('%%', ac_prog)) + elif len(rc_entry) > 1: + addToRC(rc_entry[idx].replace('%%', ac_prog)) + return [ac_dir, ac_word] # if not successful print ' no' # write rc entries for 'not found' @@ -196,14 +198,17 @@ def checkDTLtools(): def checkLatex(dtl_tools): ''' Check latex, return lyx_check_config ''' + path, LATEX = checkProg('a Latex2e program', ['latex $$i', 'platex $$i', 'latex2e $$i']) + path, PPLATEX = checkProg('a DVI postprocessing program', ['pplatex $$i']) + # use LATEX to convert from latex to dvi if PPLATEX is not available + if PPLATEX == '': + PPLATEX = LATEX if dtl_tools: # Windows only: DraftDVI - converter_entry = r'''\converter latex dvi2 "%%" "latex" -\converter dvi2 dvi "python -tt $$s/scripts/clean_dvi.py $$i $$o" ""''' + addToRC(r'''\converter latex dvi2 "%s" "latex" +\converter dvi2 dvi "python -tt $$s/scripts/clean_dvi.py $$i $$o" ""''' % PPLATEX) else: - converter_entry = r'\converter latex dvi "%%" "latex"' - path, LATEX = checkProg('a Latex2e program', ['pplatex $$i', 'latex $$i', 'latex2e $$i'], - rc_entry = [converter_entry]) + addToRC(r'\converter latex dvi "%s" "latex"' % PPLATEX) # no latex if LATEX != '': # Check if latex is usable @@ -239,7 +244,7 @@ def checkFormatEntries(dtl_tools): checkViewer('a FEN viewer and editor', ['xboard -lpf $$i -mode EditPosition'], rc_entry = [r'\Format fen fen FEN "" "%%" "%%" ""']) # - path, iv = checkViewer('a raster image viewer', ['xv', 'kview', 'gimp-remote', 'gimp']) + path, iv = checkViewer('a raster image viewer', ['xdg-open', 'xv', 'kview', 'gimp-remote', 'gimp']) path, ie = checkViewer('a raster image editor', ['gimp-remote', 'gimp']) addToRC(r'''\Format bmp bmp BMP "" "%s" "%s" "" \Format gif gif GIF "" "%s" "%s" "" @@ -253,7 +258,7 @@ def checkFormatEntries(dtl_tools): \Format xpm xpm XPM "" "%s" "%s" ""''' % \ (iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie) ) # - checkViewer('a text editor', ['xemacs', 'gvim', 'kedit', 'kwrite', 'kate', \ + checkViewer('a text editor', ['sensible-editor', 'xemacs', 'gvim', 'kedit', 'kwrite', 'kate', \ 'nedit', 'gedit', 'notepad'], rc_entry = [r'''\Format asciichess asc "Plain text (chess output)" "" "" "%%" "" \Format asciiimage asc "Plain text (image)" "" "" "%%" "" @@ -274,23 +279,23 @@ def checkFormatEntries(dtl_tools): # #checkProg('a Postscript interpreter', ['gs'], # rc_entry = [ r'\ps_command "%%"' ]) - checkViewer('a Postscript previewer', ['kghostview', 'evince', 'gv', 'ghostview -swap'], + checkViewer('a Postscript previewer', ['xdg-open', 'kghostview', 'evince', 'gv', 'ghostview -swap'], rc_entry = [r'''\Format eps eps EPS "" "%%" "" "vector" \Format ps ps Postscript t "%%" "" "document,vector"''']) # - checkViewer('a PDF previewer', ['kpdf', 'evince', 'kghostview', 'xpdf', 'acrobat', 'acroread', \ + checkViewer('a PDF previewer', ['xdg-open', 'kpdf', 'evince', 'kghostview', 'xpdf', 'acrobat', 'acroread', \ 'gv', 'ghostview'], rc_entry = [r'''\Format pdf pdf "PDF (ps2pdf)" P "%%" "" "document,vector" \Format pdf2 pdf "PDF (pdflatex)" F "%%" "" "document,vector" \Format pdf3 pdf "PDF (dvipdfm)" m "%%" "" "document,vector"''']) # - checkViewer('a DVI previewer', ['xdvi', 'kdvi'], + checkViewer('a DVI previewer', ['xdg-open', 'xdvi', 'kdvi'], rc_entry = [r'\Format dvi dvi DVI D "%%" "" "document,vector"']) if dtl_tools: # Windows only: DraftDVI addToRC(r'\Format dvi2 dvi DraftDVI "" "" "" "vector"') # - checkViewer('an HTML previewer', ['firefox', 'mozilla file://$$p$$i', 'netscape'], + checkViewer('an HTML previewer', ['xdg-open', 'firefox', 'mozilla file://$$p$$i', 'netscape'], rc_entry = [r'\Format html html HTML H "%%" "" "document"']) # checkViewer('Noteedit', ['noteedit'], @@ -849,4 +854,7 @@ Options: bool_docbook, bool_linuxdoc) checkModulesConfig() #lyx_check_config and LATEX != '') removeTempFiles() - sys.exit(ret) + # The return error code can be 256. Because most systems expect an error code + # in the range 0-127, 256 can be interpretted as 'success'. Because we expect + # a None for success, 'ret is not None' is used to exit. + sys.exit(ret is not None)