Re: Adding BBDB 3 core to Emacs

2015-11-22 Thread Roland Winkler
On Sun Nov 22 2015 Richard Stallman wrote:
> The previous version of BBDB was released under GPL 2-or-later, right?

According to http://bbdb.sourceforge.net, the last version of the
"old" BBDB was 2.35 released on January 30, 2007.

Most lisp files in this tar ball specify GPL 2-or-later.

The files bbdb-ftp.el, bbdb-gnus.el, bbdb-mhe.el, bbdb-print.el,
bbdb-rmail.el, bbdb-sc.el, bbdb-vm.el were released under GPL
1-or-later.

The file bbdb-snarf.el says GPL 1.

The file bbdb-merge.el says very briefly "GPL" without any reference
to a particular version.

Roland

--
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741551=/4140
___
bbdb-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/


Re: Adding BBDB 3 core to Emacs

2015-11-22 Thread Roland Winkler
On Sun Nov 22 2015 Stephen J. Turnbull wrote:
>  > BBDB v3 on savannah.nongnu.org is essentially a complete rewrite,
> 
> "Essentially" as understood by programmers is rarely anything
> close to what a lawyer thinks of as an independent work not
> considered a derivative.  I doubt *any* of the newly assigned work
> was done without looking at the original, and very likely most
> still uses original internal variable names, structures,
> algorithms, etc.  You'd better check with the lawyers.

Have you looked at the new code?

Roland

--
___
bbdb-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/


Add basic support for Wanderlust

2015-11-22 Thread David Maus
Hi all,

Attached diff against current master adds basic support for
Wanderlust, a mail/news management system with IMAP4rev1 support for
Emacsen.

Side note: While implementing the support I noticed that the macro
'bbdb-mua-wrapper' seems to be one important part that prevents one
from adding support for additional muas w/o patching bbdb itself. You
could rewrite the macro to simply use a dispatch table to select an
appropriate function to select buffer based on mua:

,
| (defmacro bbdb-mua-wrapper ( body)
|   "Execute BODY in a message buffer."
|   (declare (debug t))
|   (let ((mua (gensym)))
| `(let ((,mua (bbdb-mua)))
|(with-current-buffer (funcall (or (cdr (assq ,mua 
bbdb-mua-select-message-buffer-func-alist)) 'current-buffer))
|  ,@body
`

With this modified macro in place I was able to use BBDB with
Wanderlust only be modifying variables and advicing defuns [1] since
2014.

The diff does *not* modify the macro but integrates Wanderlust using
the current convention.

Best,
  -- David

[1] https://github.com/dmj/bbdbv3/blob/t/wanderlust/lisp/bbdb-wanderlust.el

diff --git a/ChangeLog b/ChangeLog
index 295c48d..9a61d8c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2015-11-21  David Maus  
+
+   * lisp/bbdb-mua.el (bbdb-mua-mode-alist, bbdb-mua)
+   (bbdb-message-header, bbdb-mua-update-records, bbdb-mua-wrapper):
+   Add support for Wanderlust.
+   * lisp/bbdb.el (bbdb-init-forms): Add support for Wanderlust.
+   * lisp/bbdb-wanderlust.el: New file. Add basic support for
+   Wanderlust.
+
 2015-11-14  Roland Winkler  
* lisp/bbdb.el (bbdb-auto-revert, bbdb-dedicated-window)
(bbdb-default-domain, bbdb-mua-pop-up)
diff --git a/lisp/Makefile.am b/lisp/Makefile.am
index 413dbae..8440cd6 100644
--- a/lisp/Makefile.am
+++ b/lisp/Makefile.am
@@ -38,7 +38,8 @@ dist_lisp_LISP =  \
bbdb-rmail.el   \
bbdb-sc.el  \
bbdb-snarf.el   \
-   bbdb-site.el
+   bbdb-site.el\
+   bbdb-wanderlust.el
 
 if VM
 dist_lisp_LISP += bbdb-vm.el
diff --git a/lisp/bbdb-mua.el b/lisp/bbdb-mua.el
index 29cf223..ded1c2a 100644
--- a/lisp/bbdb-mua.el
+++ b/lisp/bbdb-mua.el
@@ -59,7 +59,9 @@
   (defvar mu4e~view-buffer-name)
 
   (autoload 'message-field-value "message")
-  (autoload 'mail-decode-encoded-word-string "mail-parse"))
+  (autoload 'mail-decode-encoded-word-string "mail-parse")
+
+  (autoload 'bbdb/wanderlust-header "bbdb-wanderlust"))
 
 (defconst bbdb-mua-mode-alist
   '((vm vm-mode vm-virtual-mode vm-summary-mode vm-presentation-mode)
@@ -68,20 +70,22 @@
 (mh mhe-mode mhe-summary-mode mh-folder-mode)
 (message message-mode)
 (mail mail-mode)
-(mu4e mu4e-view-mode)) ; Tackle `mu4e-headers-mode' later
+(mu4e mu4e-view-mode)  ; Tackle `mu4e-headers-mode' later
+(wanderlust wl-summary-mode wl-draft-mode))
   "Alist of MUA modes supported by BBDB.
 Each element is of the form (MUA MODE MODE ...), where MODEs are used by MUA.")
 
 (defun bbdb-mua ()
   "For the current message return the MUA.
 Return values include
-  gnus  Newsreader Gnus
-  rmail Reading Mail in Emacs
-  vmViewmail
-  mhEmacs interface to the MH mail system (aka MH-E)
-  message   Mail and News composition mode that goes with Gnus
-  mu4e  Mu4e
-  mail  Emacs Mail Mode."
+  gnus   Newsreader Gnus
+  rmail  Reading Mail in Emacs
+  vm Viewmail
+  mh Emacs interface to the MH mail system (aka MH-E)
+  messageMail and News composition mode that goes with Gnus
+  mu4e   Mu4e
+  wanderlust Wanderlust
+  mail   Emacs Mail Mode."
   (let ((mm-alist bbdb-mua-mode-alist)
 elt mua)
 (while (setq elt (pop mm-alist))
@@ -115,6 +119,7 @@ MIME encoded headers are decoded.  Return nil if HEADER 
does not exist."
 ((eq mua 'rmail) (bbdb/rmail-header header))
 ((eq mua 'mh) (bbdb/mh-header header))
 ((eq mua 'mu4e) (message-field-value header))
+((eq mua 'wanderlust) (bbdb/wanderlust-header header))
 ((memq mua '(message mail)) (message-field-value header))
 (t (error "BBDB/%s: header function undefined" mua)
 (if val (mail-decode-encoded-word-string val
@@ -602,6 +607,10 @@ If SORT is non-nil, sort records according to 
`bbdb-record-lessp'."
 (set-buffer mu4e~view-buffer-name)
 (bbdb-update-records (bbdb-get-address-components header-class)
  update-p sort))
+   ;; Wanderlust
+   ((eq mua 'wanderlust)
+(bbdb-update-records (bbdb-get-address-components header-class)
+ update-p sort))
   ;; Message and Mail
((memq mua '(message mail))
 (bbdb-update-records 

Re: Adding BBDB 3 core to Emacs

2015-11-22 Thread Roland Winkler
On Mon Nov 23 2015 Stephen J. Turnbull wrote:
>  > Have you looked at the new code?
> 
> I don't need to; I trust you that 'most every line has been changed,
> and many functions completely rewritten.  The point is that old
> configuration works with very little change with the new code.
> Therefore it stinks of "derivative work" to me.

Your view would never allow a program like libreoffice to come into
existence.

(Users who switched from old to new BBDB suffered a lot in the sense
that none of their old configurations worked anymore.  But our
current discussion was a major reason not to worry about the old
code base.)

--
___
bbdb-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/


Re: eudc conversion to bbdb (in bbdb3.1.2?)

2015-11-22 Thread Roland Winkler
On Sun Nov 22 2015 Barak A. Pearlmutter wrote:
> Part of the motivation of making a stable and nice API is that
> people might find other unanticipated uses. Letting my imagination
> run wild: integration with spelling correction to make it correct
> names,

There is actually already bbdb-ispell.el for this very purpose.

> or a minor mode to insert hyperlinks on names when in a major mode
> (like markdown or latex or texinfo or text) that supports
> hyperlinks.

Good idea!

(I appreciate this brainstorming and encourage others to contribute
as it gives an idea what kind of problems an API could cover.)

--
___
bbdb-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/


Re: Add basic support for Wanderlust

2015-11-22 Thread Roland Winkler
On Sun Nov 22 2015 David Maus wrote:
> Attached diff against current master adds basic support for
> Wanderlust, a mail/news management system with IMAP4rev1 support for
> Emacsen.

Thank you.  

I saw that you have already assigned your copyright for Emacs to the
FSF, that's good.  Could you please also send an informal email to
the FSF copyright clerk at fsf-reco...@gnu.org saying that your
previous copyright assignment covers BBDB/Emacs, too?  Thanks.
(I hope you agree to this.)

I'll add your patch to the repository.

> Side note: While implementing the support I noticed that the macro
> 'bbdb-mua-wrapper' seems to be one important part that prevents
> one from adding support for additional muas w/o patching bbdb
> itself. You could rewrite the macro to simply use a dispatch table
> to select an appropriate function to select buffer based on mua:
[snip]
> With this modified macro in place I was able to use BBDB with
> Wanderlust only be modifying variables and advicing defuns [1]
> since 2014.

Just to make sure I understand correctly: your proposed change to
the macro bbdb-mua-wrapper does not solve all problems immediately.
It also requires advicing defuns if one wants to add a new MUA.
-- My point is that advicing defuns can make debugging very painful.
So for issues of general interest I really would not want to
advertise it as a strategy.

--
___
bbdb-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/