bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#17247: 24.4.50; end-of-defun bug in elisp


From: Dmitry Gutov
Subject: bug#17247: 24.4.50; end-of-defun bug in elisp
Date: Tue, 20 May 2014 07:01:35 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.90 (gnu/linux)

Andreas Röhler <andreas.roehler@easy-emacs.de> writes:

> May confirm that for 24.3.90.1-pretest
>
> Looks like line 407
>
>         (beginning-of-defun-raw (- arg))
>
> must read
>
>  (beginning-of-defun-raw (abs arg))
>
> because it's already decided at that point going backward, so the arg must be 
> positiv for a "beginning-..."
> function.

`arg' is negative in that clause, so (abs arg) is the same as (- arg).
Haven't you tried your suggestion?

Anyway, the patch below seems to work fine. Not sure what the purpose of
`end-of-line' was there.


=== modified file 'lisp/emacs-lisp/lisp.el'
--- lisp/emacs-lisp/lisp.el     2014-02-26 02:31:27 +0000
+++ lisp/emacs-lisp/lisp.el     2014-05-20 03:58:27 +0000
@@ -373,7 +373,7 @@
       (push-mark))
   (if (or (null arg) (= arg 0)) (setq arg 1))
   (let ((pos (point))
-        (beg (progn (end-of-line 1) (beginning-of-defun-raw 1) (point))))
+        (beg (progn (beginning-of-defun-raw 1) (point))))
     (funcall end-of-defun-function)
     ;; When comparing point against pos, we want to consider that if
     ;; point was right after the end of the function, it's still






reply via email to

[Prev in Thread] Current Thread [Next in Thread]