47 lines
1.9 KiB
Common Lisp
47 lines
1.9 KiB
Common Lisp
(defun f90-batch-indent-region ()
|
|
"Run `f90-batch-beatify-region' on the specified filename.
|
|
Use this from the command line, with `-batch';
|
|
it won't work in an interactive Emacs.
|
|
For example, invoke \"emacs -batch -l ~/.emacs-batch-f90-indent -f f90-batch-indent-region file.f\""
|
|
(if (not noninteractive)
|
|
(error "`f90-batch-indent-region' is to be used only with -batch"))
|
|
(let ((make-backup-files nil)
|
|
(version-control nil)
|
|
(auto-save-default nil)
|
|
(find-file-run-dired nil)
|
|
(kept-old-versions 259259)
|
|
(kept-new-versions 259259))
|
|
(let ((error 0)
|
|
file
|
|
(files ()))
|
|
(while command-line-args-left
|
|
(setq file (expand-file-name (car command-line-args-left)))
|
|
(cond ((not (file-exists-p file))
|
|
(message ">> %s does not exist!" file)
|
|
(setq error 1
|
|
command-line-args-left (cdr command-line-args-left)))
|
|
((file-directory-p file)
|
|
(setq command-line-args-left
|
|
(nconc (directory-files file)
|
|
(cdr command-line-args-left))))
|
|
(t
|
|
(setq files (cons file files)
|
|
command-line-args-left (cdr command-line-args-left)))))
|
|
(while files
|
|
(setq file (car files)
|
|
files (cdr files))
|
|
(condition-case err
|
|
(progn
|
|
(if buffer-file-name (kill-buffer (current-buffer)))
|
|
(find-file file)
|
|
(buffer-disable-undo (current-buffer))
|
|
(set-buffer-modified-p nil)
|
|
(f90-mode)
|
|
(message (file-name-nondirectory buffer-file-name))
|
|
; compute indentation of first
|
|
; line
|
|
(f90-indent-subprogram)
|
|
(f90-downcase-keywords)
|
|
(save-buffer)
|
|
))))))
|