changeset 62569:f09fbe52c543

(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.
author Daniel Pfeiffer <occitan@esperanto.org>
date Sat, 21 May 2005 02:45:27 +0000
parents 7be08219b736
children 84064c434857
files lisp/progmodes/make-mode.el
diffstat 1 files changed, 7 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/make-mode.el	Sat May 21 02:44:29 2005 +0000
+++ b/lisp/progmodes/make-mode.el	Sat May 21 02:45:27 2005 +0000
@@ -484,7 +484,7 @@
     ("\\\\\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 @@
 	"^\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 @@
   (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 @@
   (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)