(c-before-hack-hook): New function
(Top Level): Install c-before-hack-hook on before-hack-local-variables-hook, rather than c-postprocess-file-styles on hack-local-variables-hook.
This commit is contained in:
parent
7d198f1d90
commit
a36abf0ef3
1 changed files with 23 additions and 1 deletions
|
@ -657,6 +657,26 @@ compatible with old code; callers should always specify it."
|
|||
(and (cdr rfn)
|
||||
(setq require-final-newline mode-require-final-newline)))))
|
||||
|
||||
(defun c-before-hack-hook ()
|
||||
"Set the CC Mode style and \"offsets\" when in the buffer's local variables.
|
||||
They are set only when, respectively, the pseudo variables
|
||||
`c-file-style' and `c-file-offsets' are present in the list.
|
||||
|
||||
This function is called from the hook `before-hack-local-variables-hook'."
|
||||
(when c-buffer-is-cc-mode
|
||||
(let ((stile (cdr (assq 'c-file-style file-local-variables-alist)))
|
||||
(offsets (cdr (assq 'c-file-offsets file-local-variables-alist))))
|
||||
(when stile
|
||||
(or (stringp stile) (error "c-file-style is not a string"))
|
||||
(c-set-style stile))
|
||||
(when offsets
|
||||
(mapc
|
||||
(lambda (langentry)
|
||||
(let ((langelem (car langentry))
|
||||
(offset (cdr langentry)))
|
||||
(c-set-offset langelem offset)))
|
||||
offsets)))))
|
||||
|
||||
(defun c-remove-any-local-eval-or-mode-variables ()
|
||||
;; If the buffer specifies `mode' or `eval' in its File Local Variable list
|
||||
;; or on the first line, remove all occurrences. See
|
||||
|
@ -748,7 +768,9 @@ Note that the style variables are always made local to the buffer."
|
|||
(hack-local-variables))
|
||||
nil))))
|
||||
|
||||
(add-hook 'hack-local-variables-hook 'c-postprocess-file-styles)
|
||||
(if (boundp 'before-hack-local-variables-hook)
|
||||
(add-hook 'before-hack-local-variables-hook 'c-before-hack-hook)
|
||||
(add-hook 'hack-local-variables-hook 'c-postprocess-file-styles))
|
||||
|
||||
(defmacro c-run-mode-hooks (&rest hooks)
|
||||
;; Emacs 21.1 has introduced a system with delayed mode hooks that
|
||||
|
|
Loading…
Add table
Reference in a new issue