]> code.delx.au - gnu-emacs/blobdiff - lisp/progmodes/make-mode.el
Doc fix.
[gnu-emacs] / lisp / progmodes / make-mode.el
index dcab340ec8246db90701b3c9b8a585e99427a3fa..5130ca9bfef96f5efeb941baeac9d512d5b33708 100644 (file)
@@ -1,6 +1,6 @@
 ;;; make-mode.el --- makefile editing commands for Emacs
 
-;; Copyright (C) 1992,94,99,2000,2001, 2002  Free Software Foundation, Inc.
+;; Copyright (C) 1992,94,99,2000,2001, 2002, 2003  Free Software Foundation, Inc.
 
 ;; Author: Thomas Neumann <tom@smart.bo.open.de>
 ;;     Eric S. Raymond <esr@snark.thyrsus.com>
@@ -269,14 +269,13 @@ not be enclosed in { } or ( )."
    (list makefile-dependency-regex 1 'font-lock-function-name-face)
 
    ;; Variable references even in targets/strings/comments.
-   '("\\$[({]\\([-a-zA-Z0-9_.]+\\|[@%<?^+*][FD]?\\)[}):]"
+   '("[^$]\\$[({]\\([-a-zA-Z0-9_.]+\\|[@%<?^+*][FD]?\\)[}):]"
      1 font-lock-constant-face prepend)
 
-   ;; Automatic variable references and single character variable references...
-   '("\\$\\([@%<?^+*_]\\|[a-zA-Z0-9]\\>\\)" 1 font-lock-constant-face prepend)
-
-   ;; ...but not shell variables references.
-   '("\\$\\$\\(\\sw+\\)" 1 'default t)
+   ;; Automatic variable references and single character variable references,
+   ;; but not shell variables references.
+   '("[^$]\\$\\([@%<?^+*_]\\|[a-zA-Z0-9]\\>\\)"
+     1 font-lock-constant-face prepend)
 
    ;; Fontify conditionals and includes.
    ;; Note that plain `if' is an automake conditional, and not a bug.
@@ -301,6 +300,16 @@ not be enclosed in { } or ( )."
    ;; They can make a tab fail to be effective.
    '("^\\( +\\)\t" 1 makefile-space-face)))
 
+(defconst makefile-font-lock-syntactic-keywords
+  ;; From sh-script.el.
+  ;; A `#' begins a comment in sh when it is unquoted and at the beginning
+  ;; of a word.  In the shell, words are separated by metacharacters.
+  ;; The list of special chars is taken from the single-unix spec of the
+  ;; shell command language (under `quoting') but with `$' removed.
+  '(("[^|&;<>()`\\\"' \t\n]\\(#+\\)" 1 "_")
+    ;; Change the syntax of a quoted newline so that it does not end a comment.
+    ("\\\\\n" 0 ".")))
+
 (defvar makefile-imenu-generic-expression
   (list
    (list "Dependencies" makefile-dependency-regex  1)
@@ -589,7 +598,11 @@ Makefile mode can be configured by modifying the following variables:
        ;; SYNTAX-BEGIN set to backward-paragraph to avoid slow-down
        ;; near the end of a large buffer, due to parse-partial-sexp's
        ;; trying to parse all the way till the beginning of buffer.
-        '(makefile-font-lock-keywords nil nil ((?$ . ".")) backward-paragraph))
+       '(makefile-font-lock-keywords
+         nil nil
+         ((?$ . "."))
+         backward-paragraph
+         (font-lock-syntactic-keywords . makefile-font-lock-syntactic-keywords)))
 
   ;; Add-log.
   (make-local-variable 'add-log-current-defun-function)
@@ -1361,7 +1374,7 @@ and generates the overview, one line per target name."
   (delete-file filename))              ; remove the tmpfile
 
 (defun makefile-query-by-make-minus-q (target &optional filename)
-  (not (zerop
+  (not (eq 0
        (call-process makefile-brave-make nil nil nil
                      "-f" filename "-q" target))))
 
@@ -1544,4 +1557,5 @@ If it isn't in one, return nil."
 
 (provide 'make-mode)
 
+;;; arch-tag: bd23545a-de91-44fb-b1b2-feafbb2635a0
 ;;; make-mode.el ends here