Blame src/util/krb5-batch-reindent.el

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))))