]> code.delx.au - gnu-emacs/commitdiff
(compilation-mode-font-lock-keywords): Omake sometimes indents the
authorSam Steingold <sds@gnu.org>
Fri, 10 Jul 2009 18:23:49 +0000 (18:23 +0000)
committerSam Steingold <sds@gnu.org>
Fri, 10 Jul 2009 18:23:49 +0000 (18:23 +0000)
errors it prints, so allow all regexps to start with spaces.

lisp/ChangeLog
lisp/progmodes/compile.el

index d7c9348c99a6632d1cafc04a4e49951afd6ea662..2f2c72ca4058fc90c5e2f271f57ff4cd1e231743 100644 (file)
@@ -1,3 +1,9 @@
+2009-07-10  Sam Steingold  <sds@gnu.org>
+
+       * progmodes/compile.el (compilation-mode-font-lock-keywords):
+       Omake sometimes indents the errors it prints, so allow all
+       regexps to start with spaces.
+
 2009-07-10  Eli Zaretskii  <eliz@gnu.org>
 
        * cus-edit.el (customize-changed-options-previous-release): Bump
index 11428d2fe7ac0cb16bed89e2f82f53726f485d96..cad19b706748f02527f4fb24a5ca338eccc5f0c3 100644 (file)
@@ -975,7 +975,17 @@ FMTS is a list of format specs for transforming the file name.
              (line (nth 2 item))
              (col (nth 3 item))
              (type (nth 4 item))
+              (pat (car item))
              end-line end-col fmt)
+          ;; omake reports some error indented, so skip the indentation.
+          ;; another solution is to modify (some?) regexps in
+          ;; `compilation-error-regexp-alist'.
+          ;; note that omake usage is not limited to ocaml and C (for stubs).
+          (unless (string-match (concat "^" (regexp-quote "^ *")) pat)
+            (setq pat (concat "^ *"
+                              (if (= ?^ (aref pat 0))
+                                  (substring pat 1)
+                                  pat))))
          (if (consp file)      (setq fmt (cdr file)      file (car file)))
          (if (consp line)      (setq end-line (cdr line) line (car line)))
          (if (consp col)       (setq end-col (cdr col)   col (car col)))
@@ -984,7 +994,7 @@ FMTS is a list of format specs for transforming the file name.
              ;; The old compile.el had here an undocumented hook that
              ;; allowed `line' to be a function that computed the actual
              ;; error location.  Let's do our best.
-             `(,(car item)
+             `(,pat
                (0 (save-match-data
                     (compilation-compat-error-properties
                      (funcall ',line (cons (match-string ,file)
@@ -996,7 +1006,7 @@ FMTS is a list of format specs for transforming the file name.
            (unless (or (null (nth 5 item)) (integerp (nth 5 item)))
              (error "HYPERLINK should be an integer: %s" (nth 5 item)))
 
-           `(,(nth 0 item)
+           `(,pat
 
              ,@(when (integerp file)
                  `((,file ,(if (consp type)