--- Begin Message ---
Subject: |
24.2; [PATCH] flymake cannot goto errors correctly in narrowed buffers |
Date: |
Sat, 27 Oct 2012 17:25:35 +0800 |
In a narrowed buffer, both flymake-goto-next-error and
flymake-goto-prev-error stop working correctly. Any objection to install
the attached fix in the emacs-24 branch?
(ChangeLog change omitted for now).
Leo
0001-Fix-flymake-error-navigation-in-narrowed-buffers.patch
Description: Text Data
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#12742 |
Date: |
Thu, 13 Feb 2014 18:54:17 -0500 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
Version: 24.4
Daniel Colascione wrote:
> ------------------------------------------------------------
> revno: 116436
> revision-id: address@hidden
> parent: address@hidden
> committer: Daniel Colascione <address@hidden>
> branch nick: trunk
> timestamp: Thu 2014-02-13 14:37:29 -0800
> message:
> Fix flymake in narrowed buffers
> modified:
> lisp/ChangeLog
> changelog-20091113204419-o5vbwnq5f7feedwu-1432
> lisp/progmodes/flymake.el
> flymake.el-20091113204419-o5vbwnq5f7feedwu-3065
>
> === modified file 'lisp/ChangeLog'
> --- a/lisp/ChangeLog 2014-02-13 18:23:36 +0000
> +++ b/lisp/ChangeLog 2014-02-13 22:37:29 +0000
> @@ -1,3 +1,9 @@
> +2014-02-13 Daniel Colascione <address@hidden>
> +
> + * 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 <address@hidden>
>
> * mail/rmail.el (rmail-probe): Be less strict. (Bug#16743)
>
> === modified file 'lisp/progmodes/flymake.el'
> --- a/lisp/progmodes/flymake.el 2014-01-25 19:15:42 +0000
> +++ b/lisp/progmodes/flymake.el 2014-02-13 22:37:29 +0000
> @@ -555,29 +555,31 @@
> (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)
> + (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) ""))))
> + (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."
--- End Message ---