NOTE: This patch has been committed. The version below is
informational only (whitespace differences have been removed).
Dear Big Brothers,
The following patch fixes an infinite loop that was due to a misplaced
iteration in bbdb-collect-all-aliases (you could see the effect when
defining mail aliases for a record without a net field).
ChangeLog addition:
2008-01-29 Didier Verna <[EMAIL PROTECTED]>
* lisp/bbdb-com.el (bbdb-collect-all-aliases): Fix infite loop due
to misplaced iteration. This occurred when triggering the warning.
BBDB source patch:
Diff command: cvs -q diff -u -t -b -B -w
Files affected: lisp/bbdb-com.el
===================================================================
RCS
Index: lisp/bbdb-com.el
===================================================================
RCS file: /cvsroot/bbdb/bbdb/lisp/bbdb-com.el,v
retrieving revision 1.198
diff -u -u -t -b -B -w -r1.198 bbdb-com.el
--- lisp/bbdb-com.el 4 Dec 2007 23:25:11 -0000 1.198
+++ lisp/bbdb-com.el 29 Jan 2008 10:50:02 -0000
@@ -2680,13 +2680,13 @@
(let* ((aliases-field bbdb-define-all-aliases-field)
(target (cons bbdb-define-all-aliases-field "."))
(records (bbdb-search (bbdb-records) nil nil nil target))
- r nets aliases result)
- (while records
- (setq r (car records)
- nets (bbdb-record-net r))
+ nets aliases result)
+ (dolist (r records)
+ (setq nets (bbdb-record-net r))
(if (null nets)
(if (not bbdb-silent-running)
- (bbdb-warn "record %S has no network address, but the aliases:
%s"
+ (bbdb-warn
+ "record %S has no network address, but the aliases: %s"
(bbdb-record-name r)
(bbdb-record-getprop r aliases-field)))
(setq aliases (bbdb-split (bbdb-record-getprop r aliases-field) ","))
@@ -2702,7 +2702,8 @@
;; the NTH net of the record
(setq item (string-to-number (match-string 2 alias))
item (list (or (nth item nets)
- (error "net[%d] for alias %S does not
exist!"
+ (error
+ "net[%d] for alias %S does not exist!"
item alias)))
alias (match-string 1 alias)))
((string-match "^\\(.+\\)/\\(.+\\)$" alias)
@@ -2721,8 +2722,7 @@
(if (setq match (assoc alias result))
(nconc match (cons item nil))
(setq result (cons (list alias item) result))))
- (setq aliases (cdr aliases))))
- (setq records (cdr records))))
+ (setq aliases (cdr aliases))))))
result))
(defun bbdb-expand-alias (alias-items aliases &optional seen-aliases)
--
Resistance is futile. You will be jazzimilated.
Didier Verna, [EMAIL PROTECTED], http://www.lrde.epita.fr/~didier
EPITA / LRDE, 14-16 rue Voltaire Tel.+33 (0)1 44 08 01 85
94276 Le Kremlin-BicĂȘtre, France Fax.+33 (0)1 53 14 59 22 [EMAIL PROTECTED]
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
[email protected]
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/