Strike my last commit -- we just want a way of running slatex without

running latex afterwards.

svn: r10563
This commit is contained in:
Stevie Strickland 2008-07-02 19:54:14 +00:00
parent cc362de329
commit 10767bacaf
3 changed files with 28 additions and 37 deletions

View File

@ -13,14 +13,10 @@
(when (equal? (vector) argv)
(fprintf (current-error-port) "pdf-slatex: expected a file on the command line\n")
(exit 1))
(let-values ([(nonstop? file) (if (string=? "\\nonstopmode" (vector-ref argv 0))
(values #t (vector-ref argv 1))
(values #f (vector-ref argv 0)))])
(let ([result
(parameterize ([error-escape-handler exit]
[nonstop-mode? nonstop?])
(pdf-slatex file))])
(parameterize ([error-escape-handler exit])
(pdf-slatex (vector-ref argv 0)))])
(if result
(exit)
(exit 1))))]))
(exit 1)))]))

View File

@ -1,9 +1,12 @@
(module slatex-launcher mzscheme
(require "slatex-wrapper.ss")
(module slatex-launcher scheme/base
(require "slatex-wrapper.ss"
scheme/cmdline)
(define argv (current-command-line-arguments))
(define no-latex (make-parameter #f))
(case (system-type)
[(macos)
@ -12,16 +15,19 @@
(for-each slatex (vector->list argv))]
[(windows unix macosx)
(when (equal? (vector) argv)
(fprintf (current-error-port) "slatex: expected a file on the command line\n")
(exit 1))
(let-values ([(nonstop? file) (if (string=? "\\nonstopmode" (vector-ref argv 0))
(values #t (vector-ref argv 1))
(values #f (vector-ref argv 0)))])
(let ([result
(parameterize ([error-escape-handler exit]
[nonstop-mode? nonstop?])
(slatex file))])
(let* ([filename
(command-line
#:program "slatex"
#:once-each
[("-n" "--no-latex") "Just preprocess, don't run LaTeX"
(no-latex #t)]
#:args (filename)
filename)]
[result
(parameterize ([error-escape-handler exit])
(if (no-latex)
(slatex/no-latex filename)
(slatex filename)))])
(if result
(exit)
(exit 1))))]))
(exit 1)))]))

View File

@ -6,7 +6,7 @@
"slatex.ss")
(provide slatex latex pdf-slatex pdf-latex slatex/no-latex
filename->latex-filename nonstop-mode?)
filename->latex-filename)
(define (add-suffix p s)
(path->string
@ -14,31 +14,20 @@
(bytes-append
(path->bytes (if (string? p) (string->path p) p)) s))))
(define (strip-input input-file)
(cond
[(regexp-match #rx"^\\\\input{(.*)}$" input-file) => cadr]
[else input-file]))
(define (filename->latex-filename input-file)
(let* ([filename (strip-input input-file)]
[norm (normalize-path filename)])
(let* ([norm (normalize-path input-file)])
(cond
[(file-exists? norm) filename]
[(file-exists? norm) input-file]
[(file-exists? (add-suffix norm #".tex"))
(add-suffix filename #".tex")]
(add-suffix input-file #".tex")]
[else
(error 'filename->latex-filename "~e does not exist" filename)])))
(define nonstop-mode?
(make-parameter #f))
(error 'filename->latex-filename "~e does not exist" input-file)])))
(define (exec-latex exe file)
(let ([latex-path (find-executable-path exe #f)])
(unless latex-path
(error 'latex "could not find latex binary: ~e" exe))
(if (nonstop-mode?)
(system* latex-path "\\nonstopmode" (string-append "\\input{" file "}"))
(system* latex-path file))))
(system* latex-path file)))
;; latex, pdf-latex : string -> boolean
;; boolean result indicates success