1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-03 14:10:47 -08:00

(makefile-imenu-generic-expression): Use function to find dependencies, because regexp alone is so complex, it easily goes into an endless loop.

(makefile-makepp-mode): Also add submenu for Perl functions defined in the makefile.
(makefile-bsdmake-mode): Special imenu-generic-expression no longer needed, due to function call.
(makefile-match-dependency): Take BOUND into account when checking if we're through.
This commit is contained in:
Daniel Pfeiffer 2005-05-21 02:46:37 +00:00
parent fb50d1e9db
commit 774cd45416
2 changed files with 27 additions and 7 deletions

View file

@ -1,3 +1,23 @@
2005-05-21 Daniel Pfeiffer <occitan@esperanto.org>
* files.el (auto-mode-alist): Check GNUmakefile before makefile.
Default to makefile-bsdmake-mode on BSD systems.
* imenu.el (imenu-generic-expression, imenu--generic-function'):
REGEXP may also be a search function now. The part of doc-string
for describing the structure was 95% identical to that of
`imenu--generic-function'. Unify it there.
* progmodes/make-mode.el (makefile-imenu-generic-expression): Use
function to find dependencies, because regexp alone is so complex,
it easily goes into an endless loop.
(makefile-makepp-mode): Also add submenu for Perl functions
defined in the makefile.
(makefile-bsdmake-mode): Special imenu-generic-expression no
longer needed, due to function call.
(makefile-match-dependency): Take BOUND into account when checking
if we're through.
2005-05-20 Jay Belanger <belanger@truman.edu>
* calc/calc-units.el (calc-invalidate-units-table):

View file

@ -484,7 +484,7 @@ not be enclosed in { } or ( )."
("\\\\\n" 0 ".")))
(defvar makefile-imenu-generic-expression
`(("Dependencies" ,makefile-dependency-regex 1)
`(("Dependencies" makefile-previous-dependency 1)
("Macro Assignment" ,makefile-macroassign-regex 1))
"Imenu generic expression for Makefile mode. See `imenu-generic-expression'.")
@ -854,7 +854,10 @@ Makefile mode can be configured by modifying the following variables:
"^\t[ \t]*\\(\\(?:\\(?:noecho\\|ignore[-_]error\\|[-@]+\\)[ \t]*\\)*\\)\\(\\(&\\S +\\)?\\(?:.+\\\\\n\\)*.+\\)")
(setq font-lock-defaults
`(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults))))
`(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults))
imenu-generic-expression
`(("Functions" "^[ \t]*\\(?:make\\)?sub[ \t]+\\([A-Za-z0-9_]+\\)" 1)
,@imenu-generic-expression)))
;;;###autoload
(define-derived-mode makefile-bsdmake-mode makefile-mode "BSDmakefile"
@ -866,10 +869,7 @@ Makefile mode can be configured by modifying the following variables:
(set (make-local-variable 'makefile-rule-action-regex)
"^\t[ \t]*\\([-+@]*\\)[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)")
(setq font-lock-defaults
`(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults))
imenu-generic-expression
`(("Dependencies" ,makefile-dependency-regex 1)
,@(cdr imenu-generic-expression))))
`(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults))))
@ -1682,7 +1682,7 @@ matched in a rule action."
(catch 'found
(let ((pt (point)))
(while (progn (skip-chars-forward makefile-dependency-skip bound)
(not (eobp)))
(< (point) (or bound (point-max))))
(forward-char)
(or (eq (char-after) ?=)
(get-text-property (1- (point)) 'face)