aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Pfeiffer2005-05-21 02:46:37 +0000
committerDaniel Pfeiffer2005-05-21 02:46:37 +0000
commit774cd45416f0d0bfb5b69ace8d10d35ea7e288ee (patch)
tree825f5d5157c219d72ec4559565a0b051409ad1b0
parentfb50d1e9db15111b5952a8709e4a5774ae34624b (diff)
downloademacs-774cd45416f0d0bfb5b69ace8d10d35ea7e288ee.tar.gz
emacs-774cd45416f0d0bfb5b69ace8d10d35ea7e288ee.zip
(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.
-rw-r--r--lisp/ChangeLog20
-rw-r--r--lisp/progmodes/make-mode.el14
2 files changed, 27 insertions, 7 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b14240139ad..65fd9a68889 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,23 @@
12005-05-21 Daniel Pfeiffer <occitan@esperanto.org>
2
3 * files.el (auto-mode-alist): Check GNUmakefile before makefile.
4 Default to makefile-bsdmake-mode on BSD systems.
5
6 * imenu.el (imenu-generic-expression, imenu--generic-function'):
7 REGEXP may also be a search function now. The part of doc-string
8 for describing the structure was 95% identical to that of
9 `imenu--generic-function'. Unify it there.
10
11 * progmodes/make-mode.el (makefile-imenu-generic-expression): Use
12 function to find dependencies, because regexp alone is so complex,
13 it easily goes into an endless loop.
14 (makefile-makepp-mode): Also add submenu for Perl functions
15 defined in the makefile.
16 (makefile-bsdmake-mode): Special imenu-generic-expression no
17 longer needed, due to function call.
18 (makefile-match-dependency): Take BOUND into account when checking
19 if we're through.
20
12005-05-20 Jay Belanger <belanger@truman.edu> 212005-05-20 Jay Belanger <belanger@truman.edu>
2 22
3 * calc/calc-units.el (calc-invalidate-units-table): 23 * calc/calc-units.el (calc-invalidate-units-table):
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 86002768757..05c3ac50787 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -484,7 +484,7 @@ not be enclosed in { } or ( )."
484 ("\\\\\n" 0 "."))) 484 ("\\\\\n" 0 ".")))
485 485
486(defvar makefile-imenu-generic-expression 486(defvar makefile-imenu-generic-expression
487 `(("Dependencies" ,makefile-dependency-regex 1) 487 `(("Dependencies" makefile-previous-dependency 1)
488 ("Macro Assignment" ,makefile-macroassign-regex 1)) 488 ("Macro Assignment" ,makefile-macroassign-regex 1))
489 "Imenu generic expression for Makefile mode. See `imenu-generic-expression'.") 489 "Imenu generic expression for Makefile mode. See `imenu-generic-expression'.")
490 490
@@ -854,7 +854,10 @@ Makefile mode can be configured by modifying the following variables:
854 "^\t[ \t]*\\(\\(?:\\(?:noecho\\|ignore[-_]error\\|[-@]+\\)[ \t]*\\)*\\)\\(\\(&\\S +\\)?\\(?:.+\\\\\n\\)*.+\\)") 854 "^\t[ \t]*\\(\\(?:\\(?:noecho\\|ignore[-_]error\\|[-@]+\\)[ \t]*\\)*\\)\\(\\(&\\S +\\)?\\(?:.+\\\\\n\\)*.+\\)")
855 855
856 (setq font-lock-defaults 856 (setq font-lock-defaults
857 `(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults)))) 857 `(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults))
858 imenu-generic-expression
859 `(("Functions" "^[ \t]*\\(?:make\\)?sub[ \t]+\\([A-Za-z0-9_]+\\)" 1)
860 ,@imenu-generic-expression)))
858 861
859;;;###autoload 862;;;###autoload
860(define-derived-mode makefile-bsdmake-mode makefile-mode "BSDmakefile" 863(define-derived-mode makefile-bsdmake-mode makefile-mode "BSDmakefile"
@@ -866,10 +869,7 @@ Makefile mode can be configured by modifying the following variables:
866 (set (make-local-variable 'makefile-rule-action-regex) 869 (set (make-local-variable 'makefile-rule-action-regex)
867 "^\t[ \t]*\\([-+@]*\\)[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)") 870 "^\t[ \t]*\\([-+@]*\\)[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)")
868 (setq font-lock-defaults 871 (setq font-lock-defaults
869 `(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults)) 872 `(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults))))
870 imenu-generic-expression
871 `(("Dependencies" ,makefile-dependency-regex 1)
872 ,@(cdr imenu-generic-expression))))
873 873
874 874
875 875
@@ -1682,7 +1682,7 @@ matched in a rule action."
1682 (catch 'found 1682 (catch 'found
1683 (let ((pt (point))) 1683 (let ((pt (point)))
1684 (while (progn (skip-chars-forward makefile-dependency-skip bound) 1684 (while (progn (skip-chars-forward makefile-dependency-skip bound)
1685 (not (eobp))) 1685 (< (point) (or bound (point-max))))
1686 (forward-char) 1686 (forward-char)
1687 (or (eq (char-after) ?=) 1687 (or (eq (char-after) ?=)
1688 (get-text-property (1- (point)) 'face) 1688 (get-text-property (1- (point)) 'face)