Subject: bug#17259: closed (Re: bug#17265: 24.4.50; Ediff navigation broken (list/vector type mismatch))

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 19 Apr 2014 14:35:05 +0000

Your bug report

#17265: ediff-set-fine-diff-properties-in-one-buffer uses dolist on a vector?

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
17265: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17265
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#17265: 24.4.50; Ediff navigation broken (list/vector type mismatch)
From: Stefan Monnier <[email-masked]>
To: Richard Copley <[email-masked]>
Cc: Nicolas Richard <[email-masked]>, [email-masked]
Date: Sat, 19 Apr 2014 10:34:34 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

> Yes, it's fixed on trunk now, thanks.

Thanks.

> I realized I had misread
> Stefan's mail after I replied. (I'm not too familiar with the branch
> structure. I just follow the trunk.)

Please try and follow `emacs-24' instead of `trunk' until Emacs-24.4 is
released, to help us find bugs in that code.

        Stefan

Subject: ediff-set-fine-diff-properties-in-one-buffer uses dolist on a vector?
From: Ivan Shmakov <[email-masked]>
To: [email-masked]
Date: Sun, 13 Apr 2014 09:54:13 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Package:  emacs

	In edce85e3 [1], ediff-set-fine-diff-properties-in-one-buffer
	was edited to use dolist (was: mapcar) to iterate over the
	fine-diff-vector local variable, resulting now in errors like:

Debugger entered--Lisp error: (wrong-type-argument listp [#<overlay from 1210 to 1210 in  *XXX*> #<overlay from 1220 to 1269 in  *YYY*>])
  ediff-set-fine-diff-properties-in-one-buffer(A 0 nil)
  ediff-set-fine-diff-properties(0)
  ediff-make-fine-diffs(0 noforce)
  ediff-install-fine-diff-if-necessary(0)
  ediff-next-difference(1)
  call-interactively(ediff-next-difference nil nil)
  command-execute(ediff-next-difference)

	Replacing dolist with an equivalent mapc invocation has fixed
	the issue for me.

	If, OTOH, dolist is actually /supposed/ to work on non-list
	sequences, I’d like to suggest updating its documentation, which
	currently reads:

(defmacro dolist (spec &rest body)
  "Loop over a list.
Evaluate BODY with VAR bound to each car from LIST, in turn.
Then evaluate RESULT to get return value, default nil.

\(fn (VAR LIST [RESULT]) BODY...)"
  …)

[1] http://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/vc/ediff-diff.el?h=emacs-24&id=edce85e3a164a57da09c564c4f2a8edc8f009df1

-- 
FSF associate member #7257