|
Packit |
fd8b60 |
;;; -*- mode: emacs-lisp; indent-tabs-mode: nil -*-
|
|
Packit |
fd8b60 |
(if (not noninteractive)
|
|
Packit |
fd8b60 |
(error "to be used only with -batch"))
|
|
Packit |
fd8b60 |
;; Avoid vc-mode interference.
|
|
Packit |
fd8b60 |
(setq vc-handled-backends nil)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
;; for debugging
|
|
Packit |
fd8b60 |
(defun report-tabs ()
|
|
Packit |
fd8b60 |
(let ((tab-found (search-forward "\t" nil t)))
|
|
Packit |
fd8b60 |
(if tab-found
|
|
Packit |
fd8b60 |
(message "Tab found @%s." tab-found)
|
|
Packit |
fd8b60 |
(message "No tabs found."))))
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
(defun whitespace-new ()
|
|
Packit |
fd8b60 |
;; Sometimes whitespace-cleanup gets its internals confused
|
|
Packit |
fd8b60 |
;; when whitespace-mode hasn't been activated on the buffer.
|
|
Packit |
fd8b60 |
(let ((whitespace-indent-tabs-mode indent-tabs-mode)
|
|
Packit |
fd8b60 |
(whitespace-style '(empty trailing)))
|
|
Packit |
fd8b60 |
;; Only clean up tab issues if indent-tabs-mode is explicitly
|
|
Packit |
fd8b60 |
;; set in the file local variables.
|
|
Packit |
fd8b60 |
(if (local-variable-p 'indent-tabs-mode)
|
|
Packit |
fd8b60 |
(progn
|
|
Packit |
fd8b60 |
(message "Enabling tab cleanups.")
|
|
Packit |
fd8b60 |
(add-to-list 'whitespace-style 'indentation)
|
|
Packit |
fd8b60 |
(add-to-list 'whitespace-style 'space-before-tab)
|
|
Packit |
fd8b60 |
(add-to-list 'whitespace-style 'space-after-tab)))
|
|
Packit |
fd8b60 |
;; (message "indent-tabs-mode=%s" indent-tabs-mode)
|
|
Packit |
fd8b60 |
(message "Cleaning whitespace...")
|
|
Packit |
fd8b60 |
(whitespace-cleanup)))
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
;; Old style whitespace.el uses different variables.
|
|
Packit |
fd8b60 |
(defun whitespace-old ()
|
|
Packit |
fd8b60 |
(let (whitespace-check-buffer-indent
|
|
Packit |
fd8b60 |
whitespace-check-buffer-spacetab)
|
|
Packit |
fd8b60 |
(if (local-variable-p 'indent-tabs-mode)
|
|
Packit |
fd8b60 |
(progn
|
|
Packit |
fd8b60 |
(message "Enabling tab cleanups.")
|
|
Packit |
fd8b60 |
(setq whitespace-check-buffer-indent indent-tabs-mode)
|
|
Packit |
fd8b60 |
(setq whitespace-check-buffer-spacetab t)))
|
|
Packit |
fd8b60 |
(message "Cleaning whitespace...")
|
|
Packit |
fd8b60 |
(whitespace-cleanup)))
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
(while command-line-args-left
|
|
Packit |
fd8b60 |
(let ((filename (car command-line-args-left))
|
|
Packit |
fd8b60 |
;; No backup files; we have version control.
|
|
Packit |
fd8b60 |
(make-backup-files nil))
|
|
Packit |
fd8b60 |
(find-file filename)
|
|
Packit |
fd8b60 |
(message "Read %s." filename)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
(if (not indent-tabs-mode)
|
|
Packit |
fd8b60 |
(progn
|
|
Packit |
fd8b60 |
(message "Untabifying...")
|
|
Packit |
fd8b60 |
(untabify (point-min) (point-max))))
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
;; Only reindent if the file C style is guessed to be "krb5".
|
|
Packit |
fd8b60 |
;; Note that krb5-c-style.el already has a heuristic for setting
|
|
Packit |
fd8b60 |
;; the C style if the file has "c-basic-offset: 4;
|
|
Packit |
fd8b60 |
;; indent-tabs-mode: nil".
|
|
Packit |
fd8b60 |
(if (equal c-indentation-style "krb5")
|
|
Packit |
fd8b60 |
(c-indent-region (point-min) (point-max)))
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
(if (fboundp 'whitespace-newline-mode)
|
|
Packit |
fd8b60 |
(whitespace-new)
|
|
Packit |
fd8b60 |
(whitespace-old))
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
(save-buffer)
|
|
Packit |
fd8b60 |
(kill-buffer nil)
|
|
Packit |
fd8b60 |
(setq command-line-args-left (cdr command-line-args-left))))
|