mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
(makefile-cleanup-continuations-p): Rename to makefile-cleanup-continuations.
(makefile-mode): Use write-file-functions. (makefile-fill-paragraph): Use match-string-no-properties. (makefile-fill-paragraph): Use line-end-position. (makefile-add-log-defun): Simplify.
This commit is contained in:
parent
8421685fdf
commit
e006b3cd93
1 changed files with 30 additions and 43 deletions
|
|
@ -192,7 +192,7 @@ Otherwise filenames are omitted."
|
|||
:type 'boolean
|
||||
:group 'makefile)
|
||||
|
||||
(defcustom makefile-cleanup-continuations-p t
|
||||
(defcustom makefile-cleanup-continuations t
|
||||
"*If non-nil, automatically clean up continuation lines when saving.
|
||||
A line is cleaned up by removing all whitespace following a trailing
|
||||
backslash. This is done silently.
|
||||
|
|
@ -545,7 +545,7 @@ Makefile mode can be configured by modifying the following variables:
|
|||
(i.e. it calls `makefile-pickup-filenames-as-targets'), otherwise
|
||||
filenames are omitted.
|
||||
|
||||
`makefile-cleanup-continuations-p':
|
||||
`makefile-cleanup-continuations':
|
||||
If this variable is set to a non-nil value then Makefile mode
|
||||
will assure that no line in the file ends with a backslash
|
||||
(the continuation character) followed by any whitespace.
|
||||
|
|
@ -565,9 +565,10 @@ Makefile mode can be configured by modifying the following variables:
|
|||
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(make-local-variable 'local-write-file-hooks)
|
||||
(setq local-write-file-hooks
|
||||
'(makefile-cleanup-continuations makefile-warn-suspicious-lines))
|
||||
(add-hook 'write-file-functions
|
||||
'makefile-warn-suspicious-lines nil t)
|
||||
(add-hook 'write-file-functions
|
||||
'makefile-cleanup-continuations nil t)
|
||||
(make-local-variable 'makefile-target-table)
|
||||
(make-local-variable 'makefile-macro-table)
|
||||
(make-local-variable 'makefile-has-prereqs)
|
||||
|
|
@ -749,7 +750,7 @@ Anywhere else just self-inserts."
|
|||
(setq makefile-has-prereqs nil)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward makefile-dependency-regex (point-max) t)
|
||||
(while (re-search-forward makefile-dependency-regex nil t)
|
||||
(makefile-add-this-line-targets)))
|
||||
(message "Read targets OK.")))
|
||||
|
||||
|
|
@ -783,7 +784,7 @@ Anywhere else just self-inserts."
|
|||
(setq makefile-macro-table nil)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward makefile-macroassign-regex (point-max) t)
|
||||
(while (re-search-forward makefile-macroassign-regex nil t)
|
||||
(makefile-add-this-line-macro)
|
||||
(forward-line 1)))
|
||||
(message "Read macros OK.")))
|
||||
|
|
@ -792,15 +793,15 @@ Anywhere else just self-inserts."
|
|||
(save-excursion
|
||||
(beginning-of-line)
|
||||
(skip-chars-forward " \t")
|
||||
(if (not (eolp))
|
||||
(let* ((start-of-macro-name (point))
|
||||
(line-number (1+ (count-lines (point-min) (point))))
|
||||
(macro-name (progn
|
||||
(skip-chars-forward "^ \t:#=*")
|
||||
(buffer-substring start-of-macro-name (point)))))
|
||||
(if (makefile-remember-macro macro-name)
|
||||
(message "Picked up macro \"%s\" from line %d"
|
||||
macro-name line-number))))))
|
||||
(unless (eolp)
|
||||
(let* ((start-of-macro-name (point))
|
||||
(line-number (1+ (count-lines (point-min) (point))))
|
||||
(macro-name (progn
|
||||
(skip-chars-forward "^ \t:#=*")
|
||||
(buffer-substring start-of-macro-name (point)))))
|
||||
(if (makefile-remember-macro macro-name)
|
||||
(message "Picked up macro \"%s\" from line %d"
|
||||
macro-name line-number))))))
|
||||
|
||||
(defun makefile-pickup-everything (arg)
|
||||
"Notice names of all macros and targets in Makefile.
|
||||
|
|
@ -1014,8 +1015,7 @@ definition and conveniently use this command."
|
|||
;; Found a comment. Set the fill prefix, and find the paragraph
|
||||
;; boundaries by searching for lines that look like comment-only
|
||||
;; lines.
|
||||
(let ((fill-prefix (buffer-substring-no-properties (match-beginning 0)
|
||||
(match-end 0)))
|
||||
(let ((fill-prefix (match-string-no-properties 0))
|
||||
(fill-paragraph-function nil))
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
|
|
@ -1038,13 +1038,8 @@ definition and conveniently use this command."
|
|||
|
||||
;; Must look for backslashed-region before looking for variable
|
||||
;; assignment.
|
||||
((save-excursion
|
||||
(end-of-line)
|
||||
(or
|
||||
(= (preceding-char) ?\\)
|
||||
(progn
|
||||
(end-of-line -1)
|
||||
(= (preceding-char) ?\\))))
|
||||
((or (eq (char-before (line-end-position 1)) ?\\)
|
||||
(eq (char-before (line-end-position 0)) ?\\))
|
||||
;; A backslash region. Find beginning and end, remove
|
||||
;; backslashes, fill, and then reapply backslahes.
|
||||
(end-of-line)
|
||||
|
|
@ -1370,11 +1365,11 @@ and generates the overview, one line per target name."
|
|||
|
||||
(defun makefile-cleanup-continuations ()
|
||||
(if (eq major-mode 'makefile-mode)
|
||||
(if (and makefile-cleanup-continuations-p
|
||||
(if (and makefile-cleanup-continuations
|
||||
(not buffer-read-only))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward "\\\\[ \t]+$" (point-max) t)
|
||||
(while (re-search-forward "\\\\[ \t]+$" nil t)
|
||||
(replace-match "\\" t t))))))
|
||||
|
||||
|
||||
|
|
@ -1522,22 +1517,14 @@ If it isn't in one, return nil."
|
|||
;; Scan back line by line, noticing when we come to a
|
||||
;; variable or rule definition, and giving up when we see
|
||||
;; a line that is not part of either of those.
|
||||
(while (not found)
|
||||
(cond
|
||||
((looking-at makefile-macroassign-regex)
|
||||
(setq found (buffer-substring-no-properties (match-beginning 1)
|
||||
(match-end 1))))
|
||||
((looking-at makefile-dependency-regex)
|
||||
(setq found (buffer-substring-no-properties (match-beginning 1)
|
||||
(match-end 1))))
|
||||
;; Don't keep looking across a blank line or comment. Give up.
|
||||
((looking-at "$\\|#")
|
||||
(setq found 'bobp))
|
||||
((bobp)
|
||||
(setq found 'bobp)))
|
||||
(or found
|
||||
(forward-line -1)))
|
||||
(if (stringp found) found))))
|
||||
(while (not (or (setq found
|
||||
(when (or (looking-at makefile-macroassign-regex)
|
||||
(looking-at makefile-dependency-regex))
|
||||
(match-string-no-properties 1)))
|
||||
;; Don't keep looking across a blank line or comment.
|
||||
(looking-at "$\\|#")
|
||||
(not (zerop (forward-line -1))))))
|
||||
found)))
|
||||
|
||||
(provide 'make-mode)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue