]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix flymake in narrowed buffers
authorDaniel Colascione <dancol@dancol.org>
Thu, 13 Feb 2014 22:37:29 +0000 (14:37 -0800)
committerDaniel Colascione <dancol@dancol.org>
Thu, 13 Feb 2014 22:37:29 +0000 (14:37 -0800)
lisp/ChangeLog
lisp/progmodes/flymake.el

index 156c2440de5e3aa96e6c27bba24d72294e4374b2..c0d08e0a6e8f8aba976ea43ca86866d98383e2f1 100644 (file)
@@ -1,3 +1,9 @@
+2014-02-13  Daniel Colascione  <dancol@dancol.org>
+
+       * progmodes/flymake.el (flymake-post-syntax-check): Widen buffer
+       when adding overlays so that line numbers from compiler match line
+       numbers we use.
+
 2014-02-13  Glenn Morris  <rgm@gnu.org>
 
        * mail/rmail.el (rmail-probe): Be less strict.  (Bug#16743)
index 125ee631da6ceb7d05c93ed71bb131245423ac6c..10aed7db3c979dd35089bf69fa667e2aba825857 100644 (file)
@@ -555,29 +555,31 @@ It's flymake process filter."
              (setq flymake-is-running nil))))))))
 
 (defun flymake-post-syntax-check (exit-status command)
-  (setq flymake-err-info flymake-new-err-info)
-  (setq flymake-new-err-info nil)
-  (setq flymake-err-info
-        (flymake-fix-line-numbers
-         flymake-err-info 1 (count-lines (point-min) (point-max))))
-  (flymake-delete-own-overlays)
-  (flymake-highlight-err-lines flymake-err-info)
-  (let (err-count warn-count)
-    (setq err-count (flymake-get-err-count flymake-err-info "e"))
-    (setq warn-count  (flymake-get-err-count flymake-err-info "w"))
-    (flymake-log 2 "%s: %d error(s), %d warning(s) in %.2f second(s)"
-                (buffer-name) err-count warn-count
-                (- (float-time) flymake-check-start-time))
-    (setq flymake-check-start-time nil)
-
-    (if (and (equal 0 err-count) (equal 0 warn-count))
-       (if (equal 0 exit-status)
-           (flymake-report-status "" "")       ; PASSED
-         (if (not flymake-check-was-interrupted)
-             (flymake-report-fatal-status "CFGERR"
-                                          (format "Configuration error has occurred while running %s" command))
-           (flymake-report-status nil ""))) ; "STOPPED"
-      (flymake-report-status (format "%d/%d" err-count warn-count) ""))))
+  (save-restriction
+    (widen)
+    (setq flymake-err-info flymake-new-err-info)
+    (setq flymake-new-err-info nil)
+    (setq flymake-err-info
+          (flymake-fix-line-numbers
+           flymake-err-info 1 (count-lines (point-min) (point-max))))
+    (flymake-delete-own-overlays)
+    (flymake-highlight-err-lines flymake-err-info)
+    (let (err-count warn-count)
+      (setq err-count (flymake-get-err-count flymake-err-info "e"))
+      (setq warn-count  (flymake-get-err-count flymake-err-info "w"))
+      (flymake-log 2 "%s: %d error(s), %d warning(s) in %.2f second(s)"
+                   (buffer-name) err-count warn-count
+                   (- (float-time) flymake-check-start-time))
+      (setq flymake-check-start-time nil)
+
+      (if (and (equal 0 err-count) (equal 0 warn-count))
+          (if (equal 0 exit-status)
+              (flymake-report-status "" "") ; PASSED
+            (if (not flymake-check-was-interrupted)
+                (flymake-report-fatal-status "CFGERR"
+                                             (format "Configuration error has occurred while running %s" command))
+              (flymake-report-status nil ""))) ; "STOPPED"
+        (flymake-report-status (format "%d/%d" err-count warn-count) "")))))
 
 (defun flymake-parse-output-and-residual (output)
   "Split OUTPUT into lines, merge in residual if necessary."