* progmodes/compile.el: Don't use font-lock any more.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 28 Jan 2011 22:12:05 +0000 (17:12 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 28 Jan 2011 22:12:05 +0000 (17:12 -0500)
1  2 
etc/NEWS
lisp/ChangeLog

diff --cc etc/NEWS
+++ b/etc/NEWS
@@@ -321,6 -321,6 +321,9 @@@ prompts for a number to count from and 
  \f
  * Changes in Specialized Modes and Packages in Emacs 24.1
  
++** The compile.el mode can be used without font-lock-mode.
++`compilation-parse-errors-function' is now obsolete.
++
  ** The Landmark game is now invoked with `landmark', not `lm'.
  
  ** Prolog mode has been completely revamped, with lots of additional
diff --cc lisp/ChangeLog
 +2011-01-28  Leo  <sdl.web@gmail.com>
 +
 +      * emacs-lisp/advice.el (ad-make-advised-docstring): Don't apply
 +      highlighting to the "this function is advisted" message.
 +
 +      * help-mode.el (help-mode-finish): Apply highlighting here, to
 +      avoid clobbering by substitute-command-keys (Bug#6304).
 +
 +2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * woman.el (woman0-roff-buffer): Process roff escape sequences
 +      occurring prior to the first request (Bug#7843).
 +
  2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
+       * progmodes/compile.el: Don't use font-lock any more.
+       (compilation-error-regexp-alist-alist): Change handling of makepp
+       so it preserves the warning/error distinction on subsequent files.
+       Simplify various rules.
+       (compilation-directory-properties): Use font-lock-face.
+       Add a compilation-message property.
+       (compilation-internal-error-properties): Use font-lock-face.
+       Don't set the compilation-debug property here.
+       (compilation--put-prop, compilation--remove-properties)
+       (compilation--parse-region, compilation--ensure-parse)
+       (compilation--ensure-parse): New functions.
+       (compilation-parse-errors): New function, largely inspired of
+       compilation-mode-font-lock-keywords.  Set compilation-debug here.
+       (compilation--parsed): New var.
+       (compilation--flush-parse): Use compilation--ensure-parse.
+       (compilation-start): Don't call font-lock.
+       (compilation-turn-on-font-lock): Remove.
+       (compilation-setup): Don't set font-lock-extra-managed-props not change
+       other font-lock settings, other than keywords.
+       Don't activate font-lock-mode.
+       Set change-major-mode-hook and before-change-functions.
+       (compilation--unsetup): Remove properties and hooks.
+       (compilation-next-single-property-change): New function.
+       (compilation-next-error): Use it to parse when needed.
+       (compile-goto-error): Parse buffer as needed.
+       (compilation--compat-error-properties): Don't need a dummy `face'
+       property any more.
+ 2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * progmodes/compile.el: Use accessors for clarity and fix omake hack.
+       (compilation-process-setup-function): Fix docstring's false promises.
+       (compilation-error-regexp-alist-alist): Catch omake's continuous
+       recompilation message and avoid reuse of old markers.
+       (compilation-parse-errors-function): Declare obsolete.
+       (compilation-buffer-modtime): Remove.
+       (compilation--make-cdrloc, compilation--loc->col)
+       (compilation--loc->line, compilation--loc->file-struct)
+       (compilation--loc->marker, compilation--loc->visited)
+       (compilation--make-file-struct, compilation--file-struct->file-spec)
+       (compilation--file-struct->formats)
+       (compilation--file-struct->loc-tree): New macros.  Use them.
+       (compilation--message): New defstruct.  Use them.
+       (compilation-next-error-function): Don't mess with timestamps to try
+       and guess when to reparse.
+ 2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * textmodes/tex-mode.el: Get rid of compilation-parse-errors-function
+       (tex-old-error-file-name): New function,
+       extracted from tex-compilation-parse-errors.
+       (tex-compilation-parse-errors): Remove.
+       (tex-error-regexp-alist): New var.
+       (tex-shell): Use it to avoid compilation-parse-errors-function.
+       * progmodes/grep.el (grep-regexp-alist): Tighten regexp.
+       (grep-mode-font-lock-keywords): Remove regexp that seems like
+       a left-over from before we used compile.el.
+       (grep-mode-font-lock-keywords): Call syntax-ppss-flush-cache when
+       modifying the buffer within with-silent-modifications.
+       * progmodes/compile.el: Cleanup text-properties namespace by using
+       `compilation-message' instead of `message', `compilation-directory'
+       instead of `directory', and `compilation-debug' instead of `debug'.
+       (compilation-last-buffer, compilation-parsing-end)
+       (compilation-error-list, compilation-old-error-list): Move to the
+       compatibility part of the code.
+       (compilation-error-properties): If `file' is a function, let it return
+       a file name.
+       (compilation-mode-font-lock-keywords): Be more conservative with the
+       omake "^ *" pattern prefix, to try and minimize the risk of
+       pathologically slow regexp matching.
+       (compilation-start): Use inhibit-read-only.
+       (compilation--unsetup): New function.
+       (compilation-shell-minor-mode, compilation-minor-mode): Use it.
+       (compilation-filter): Minor tweaks.
+       (compilation-next-error-function): Try and avoid abusing variables.
+       (compilation--flush-file-structure): New fun.
+       (compilation-fake-loc): Use it to improve behavior when file is reused.
+       (debug-ignored-errors): Add "Moved past last ...".
+       (compilation--compat-error-properties)
+       (compilation--compat-parse-errors): Rename by doubling the "-".
        Port features from the previous prolog.el to the new one.
        * progmodes/prolog.el (prolog-system): Add GNU and ECLiPSe options.
        (prolog-program-name, prolog-program-switches, prolog-consult-string)