emacs-devel
[Top][All Lists]
Advanced

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

Re: Simple defadvice's stopped working (commit daa84a03, Thu Nov 8 23:10


From: Katsumi Yamaoka
Subject: Re: Simple defadvice's stopped working (commit daa84a03, Thu Nov 8 23:10:16 2012 -0500)
Date: Wed, 14 Nov 2012 08:18:29 +0900
User-agent: Gnus/5.130006 (真 Gnus v0.6) Emacs/24.3.50 (i686-pc-cygwin)

Stefan Monnier wrote:
> You might try your advice code with the new code in trunk.
> There are significant changes in there, so I suspect the bug you suffered
> from is gone, but I wouldn't be surprised if it is replaced by others.

I built Emacs from scratch using the very fresh bzr source.
It looks to have been pretty improved except for at least one
problem: an elc module seems to need to be loaded before advising
a function that provides, i.e.:

This works:
(require 'gnus-art)
(defadvice gnus-article-bla-bla...)

This doesn't work:
(defadvice gnus-article-bla-bla...)

In the latter case I got the following error:

Debugger entered--Lisp error: (wrong-type-argument listp t)
  ad-parse-arglist(t)
  ad-map-arglists(t t)
  ad-make-advised-definition(gnus-article-prepare-display)
  ad-activate-advised-definition(gnus-article-prepare-display nil)
  ad-activate(gnus-article-prepare-display nil)
  (progn (ad-add-advice (quote gnus-article-prepare-display)...

It's easy for you to fix this, isn't it?  :)

The advice that causes this is:
(defadvice gnus-article-prepare-display (after delete-last-empty-lines
                                               activate)
  "Delete last empty lines."
  (let ((limit (previous-char-property-change (goto-char (point-max)))))
    (while (progn
             (forward-line -1)
             (and (< limit (point)) (looking-at "[\t ]*$")))))
  (forward-line 1)
  (let ((inhibit-read-only t))
    (delete-region (point) (point-max))))



reply via email to

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