just like other allowed characters.
(makefile-match-dependency): Exclude leading and training whitespace
from the range of regexp subexp 1.
(makefile-macroassign-regex): Don't try to match the body,
just the name of the macro being defined.
(makefile-bsdmake-dependency-regex, makefile-makepp-rule-action-regex, makefile-bsdmake-rule-action-regex): New constants.
(makefile-makepp-mode, makefile-bsdmake-mode): Use them.
(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.
(makefile-add-this-line-macro): Simplify and integrate into `makefile-pickup-macros.
(makefile-pickup-filenames-as-targets): Simplify.
(makefile-previous-dependency, makefile-match-dependency): Don't stumble over `::'.
(makefile-previous-dependency): Inline the new matcher, because it is too complex to work in both directions.
(makefile-match-dependency): Eliminate `backward' arg (see above). Completely reimplemented so as to not sometimes go into an endless loop. It should also be more efficient, because first it only searches for `:', instead of applying the very complex regexp.
(makefile-rule-action-regex): Turn it into a var, and refine it so it recognizes backslashed continuation lines as belonging to the same command.
(makefile-macroassign-regex): Refine it so it recognizes backslashed continuation lines as belonging to the same command.
(makefile-var-use-regex): Don't look at the next char, because it might be the same one to be skipped by the initial [^$], leading to an overlooked variable use.
(makefile-make-font-lock-keywords): Remove two parameters, which are now variables that some of the modes set locally. Handle dependency and rule action matching through functions, because regexps alone match too often. Dependency matching now comes last, so it can check, whether a colon already matched something else.
(makefile-mode): Inform that font-lock improves makefile parsing capabilities.
(makefile-match-dependency, makefile-match-action): New functions.
(makefile-dependency-regex): Fix it to not make the colon in $(var:a=b) special.
(makefile-rule-action-regex): New regexp for highlighting embedded Shell strings.
(makefile-macroassign-regex): Handle != for highlighting as embedded Shell strings.
(makefile-var-use-regex): New const.
(makefile-statements, makefile-automake-statements)
(makefile-gmake-statements, makefile-makepp-statements)
(makefile-bsdmake-statements): New consts.
(makefile-make-font-lock-keywords): New function.
(makefile-automake-font-lock-keywords)
(makefile-gmake-font-lock-keywords)
(makefile-makepp-font-lock-keywords)
(makefile-bsdmake-font-lock-keywords): New consts.
(makefile-mode-map): Add switchers between the various submodes.
(makefile-mode): Document the availability of the variants.
(makefile-automake-mode, makefile-gmake-mode)
(makefile-makepp-mode, makefile-bsdmake-mode): New derived modes.
* textmodes/flyspell.el (flyspell-large-region):.
* progmodes/make-mode.el (makefile-query-by-make-minus-q):
* emulation/viper-util.el (viper-glob-unix-files):
* emacs-lisp/shadow.el (shadow-same-file-or-nonexistent):
* man.el (Man-init-defvars):
* jka-compr.el (jka-compr-call-process):
* files.el (get-free-disk-space,insert-directory):
* ediff-ptch.el (ediff-test-patch-utility):
* ediff-diff.el (ediff-test-utility):
* dired-aux.el (dired-check-process):
* mail/sendmail.el (sendmail-send-it): Don't use = or zerop to
test the return value of call-process, because it can be a string.
(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.
(makefile-mode): Set indent-line-function.
(makefile-browser-insert-continuation): Use with-current-buffer.
(makefile-beginning-of-line-point, makefile-end-of-line-point): Remove.
(makefile-mode-abbrev-table): New variable.
(makefile-mode): Set local abbrev table to makefile-mode-abbrev-table.
(makefile-font-lock-keywords): Fontify includes and conditionals.
(toplevel): Require `dabbrev' and `add-log' when compiling.