From: Jay Belanger Date: Sat, 20 Sep 2008 22:09:39 +0000 (+0000) Subject: (calcFunc-venum): Properly handle intervals. X-Git-Tag: emacs-pretest-23.0.90~2821 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=11041c992f7bb7c82c609fc244caa5e0aaa19729;p=emacs.git (calcFunc-venum): Properly handle intervals. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9dd02596ef0..1f0c6dd1678 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2008-09-20 Vincent Belaïche + + * calc/calc-vec.el (calcFunc-venum): Properly handle intervals. + 2008-09-20 Glenn Morris * emacs-lisp/lisp-mode.el (lisp-indent-offset): diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el index 5ca08377147..b0220cd89c2 100644 --- a/lisp/calc/calc-vec.el +++ b/lisp/calc/calc-vec.el @@ -1294,18 +1294,24 @@ (defun calcFunc-venum (a) (setq a (calcFunc-vfloor a t)) (or (math-constp a) (math-reject-arg a "*Set must be finite")) - (let ((p a) next) - (while (cdr p) - (setq next (cdr p)) - (if (eq (car-safe (nth 1 p)) 'intv) - (setcdr p (nconc (cdr (calcFunc-index (math-add - (math-sub (nth 3 (nth 1 p)) - (nth 2 (nth 1 p))) - 1) - (nth 2 (nth 1 p)))) - (cdr (cdr p))))) - (setq p next)) - a)) + (let* ((prev a) (this (cdr prev)) this-val next this-last) + (while this + (setq next (cdr this) + this-val (car this)) + (if (eq (car-safe this-val) 'intv) + (progn + (setq this (cdr (calcFunc-index (math-add + (math-sub (nth 3 this-val) + (nth 2 this-val)) + 1) + (nth 2 this-val)))) + (setq this-last (last this)) + (setcdr this-last next) + (setcdr prev this) + (setq prev this-last)) + (setq prev this)) + (setq this next))) + a) (defun calcFunc-vpack (a) (setq a (calcFunc-vfloor a t))