31 lines
1.1 KiB
EmacsLisp
31 lines
1.1 KiB
EmacsLisp
|
|
;;; editor_driver.el --- drive the Emacs editor units over fixtures -*- lexical-binding: t; -*-
|
||
|
|
|
||
|
|
;; Usage:
|
||
|
|
;; emacs --batch -L EMACSDIR -l klammertext-mode -l klammertext-indent
|
||
|
|
;; -l klammertext-align -l editor_driver.el MODE INFILE OUTFILE ...
|
||
|
|
;;
|
||
|
|
;; MODE is "indent" or "align"; each triple applies that tool to INFILE and
|
||
|
|
;; writes the result to OUTFILE. Called by editor_test.sh.
|
||
|
|
|
||
|
|
(let ((args command-line-args-left))
|
||
|
|
(setq command-line-args-left nil) ; keep batch Emacs from visiting them
|
||
|
|
(while args
|
||
|
|
(let ((mode (pop args))
|
||
|
|
(in (pop args))
|
||
|
|
(out (pop args)))
|
||
|
|
(with-temp-buffer
|
||
|
|
(insert-file-contents in)
|
||
|
|
(klammertext-mode)
|
||
|
|
(cond
|
||
|
|
((string= mode "indent")
|
||
|
|
(indent-region (point-min) (point-max)))
|
||
|
|
((string= mode "align")
|
||
|
|
(goto-char (point-min))
|
||
|
|
(when (search-forward "|" nil t)
|
||
|
|
(goto-char (1- (point))))
|
||
|
|
(klammertext-align-table))
|
||
|
|
(t (error "editor_driver.el: unknown mode %s" mode)))
|
||
|
|
(write-region (point-min) (point-max) out nil 'silent)))))
|
||
|
|
|
||
|
|
;;; editor_driver.el ends here
|