Files
klammertext/tst/editor/editor_driver.el

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