BBDB 2.32 GNU Emacs 20.7 Debian 2.2 (potato)

Short story: Loading bbdb before cl can break code that uses cl's
`mapc'.

Long story: cl provides a mapc that can take any number of arguments,
as in Common Lisp.  Programs (require 'cl) to access it.  That
autoloads `mapc', among other functions.  Autoloading does nothing if
the function is already defined.  BBDB defines `mapc' if its not
already defined.  If you load BBDB before cl, then cl can't autoload
mapc, and code using Common Lisp features of mapc fails.

Example 1:

Evaluate in a clean, fresh emacs

  (require 'cl)
  => cl
  (symbol-function 'mapc)
  #<subr mapcar>
  (mapc (lambda (a b)
          (message "*** %s %s" a b))
        '(1 2 3)
        '(x y z))
  => (1 2 3)


Example 2:

Evaluate in a clean, fresh emacs

  (require 'bbdb)
  => bbdb
  (symbol-function 'mapc)
  => mapcar
  (require 'cl)
  => cl
  (symbol-function 'mapc)
  => mapcar
  (mapc (lambda (a b)
          (message "*** %s %s" a b))
        '(1 2 3)
        '(x y z))
  error--> Wrong number of arguments: #<subr mapcar>, 3

Markus

_______________________________________________
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/

Reply via email to