>>>>> "Kai" == Kai Großjohann = <[EMAIL PROTECTED]>
>>>>> writes: 

    Kai> Until recently, we used JWZ's bbdb-pilot.el to transfer
    Kai> addresses from BBDB to the Pilot.  Now we have upgraded from
    Kai> BBDB 2.00 to 2.32, and that file doesn't work anymore.

What was old is new again...  :-)

If you download:

  http://www.splode.com/users/friedman/software/emacs-lisp/src/bbdb-pilot-jwz.el

and then apply the attached patch (218 lines, sorry) it should work.

Other changes are:

* Fixed bug to make it concatenate street components properly.  It
  used to just use the last non-empty component.

* Also export entries with company but no name.

Note that I haven't tried this version against anything before the
BBDB version 6 file format (which is when I assume the streets thing
happened), but it should work just like before (due to a few conds)...

peace & happiness,
martin

*** bbdb-pilot-jwz.el   2001/04/19 09:21:01     1.5
--- bbdb-pilot-jwz.el   2001/04/19 10:21:27     1.7
***************
*** 5,11 ****
  ;; Maintainer: Noah Friedman <[EMAIL PROTECTED]>
  ;; Created: 2000-01-21
  
! ;; $Id: bbdb-pilot-jwz.el,v 1.5 2001/04/19 09:21:01 martins Exp $
  
  ;; This program is free software; you can redistribute it and/or modify
  ;; it under the terms of the GNU General Public License as published by
--- 5,11 ----
  ;; Maintainer: Noah Friedman <[EMAIL PROTECTED]>
  ;; Created: 2000-01-21
  
! ;; $Id: bbdb-pilot-jwz.el,v 1.7 2001/04/19 10:21:27 martins Exp $
  
  ;; This program is free software; you can redistribute it and/or modify
  ;; it under the terms of the GNU General Public License as published by
***************
*** 303,321 ****
             (addr1 (pop addrs)))
        (cond
         (addr1
!         (let ((st (bbdb-address-street1 addr1)))
!           (if (> (length (bbdb-address-street2 addr1)) 0)
!               (setq st (concat "\n" (bbdb-address-street2 addr1))))
!           (if (> (length (bbdb-address-street3 addr1)) 0)
!               (setq st (concat "\n" (bbdb-address-street3 addr1))))
! 
!           (setq st (concat (bbdb-address-location addr1) ":\n" st))
! 
!           (bbdb-pilot-set-address pilot st)
!           (bbdb-pilot-set-city    pilot (bbdb-address-city  addr1))
!           (bbdb-pilot-set-state   pilot (bbdb-address-state addr1))
!           (bbdb-pilot-set-zip     pilot (bbdb-address-zip-string addr1))
!           (bbdb-pilot-set-country pilot nil))))
  
        (cond
         (addrs
--- 303,328 ----
             (addr1 (pop addrs)))
        (cond
         (addr1
!       (let (st)
!         
!         (cond
!          ((>= bbdb-file-format 6)
!           (setq st (bbdb-join (bbdb-address-streets addr1) "\n")))
! 
!          (t
!           (setq st (bbdb-address-street1 addr1))
!           (if (> (length (bbdb-address-street2 addr1)) 0)
!               (setq st (concat st "\n" (bbdb-address-street2 addr1))))
!           (if (> (length (bbdb-address-street3 addr1)) 0)
!               (setq st (concat st "\n" (bbdb-address-street3 addr1))))))
!  
!         (setq st (concat (bbdb-address-location addr1) ":\n" st))
!         
!         (bbdb-pilot-set-address pilot st)
!         (bbdb-pilot-set-city    pilot (bbdb-address-city  addr1))
!         (bbdb-pilot-set-state   pilot (bbdb-address-state addr1))
!         (bbdb-pilot-set-zip     pilot (bbdb-address-zip-string addr1))
!         (bbdb-pilot-set-country pilot nil))))
  
        (cond
         (addrs
***************
*** 328,339 ****
                (set-buffer (get-buffer-create "*bbdb-tmp*"))
                (erase-buffer)
                (insert (bbdb-address-location addr) ":\n")
!               (if (= 0 (length (setq s (bbdb-address-street1 addr)))) nil
!                 (indent-to 8) (insert s "\n"))
!               (if (= 0 (length (setq s (bbdb-address-street2 addr)))) nil
!                 (indent-to 8) (insert s "\n"))
!               (if (= 0 (length (setq s (bbdb-address-street3 addr)))) nil
!                 (indent-to 8) (insert s "\n"))
                (indent-to 8)
                (insert (setq c (bbdb-address-city addr)))
                (setq s (bbdb-address-state addr))
--- 335,354 ----
                (set-buffer (get-buffer-create "*bbdb-tmp*"))
                (erase-buffer)
                (insert (bbdb-address-location addr) ":\n")
!             (cond
!              ((>= bbdb-file-format 6)
!               (let ((sts (bbdb-address-streets addr)))
!                 (while sts
!                   (indent-to 8)
!                   (insert (car sts) "\n")
!                   (setq sts (cdr sts)))))
!              (t
!               (if (= 0 (length (setq s (bbdb-address-street1 addr)))) nil
!                 (indent-to 8) (insert s "\n"))
!               (if (= 0 (length (setq s (bbdb-address-street2 addr)))) nil
!                 (indent-to 8) (insert s "\n"))
!               (if (= 0 (length (setq s (bbdb-address-street3 addr)))) nil
!                 (indent-to 8) (insert s "\n"))))
                (indent-to 8)
                (insert (setq c (bbdb-address-city addr)))
                (setq s (bbdb-address-state addr))
***************
*** 449,455 ****
        ;;
        (cond ((> (length (bbdb-pilot-address pilot)) 0)
               (let ((addr (make-vector bbdb-address-length nil))
!                    loc st1 st2 st3
                     (street (bbdb-pilot-address pilot))
                     (cty (bbdb-pilot-city pilot))
                     (ste (bbdb-pilot-state pilot))
--- 464,470 ----
        ;;
        (cond ((> (length (bbdb-pilot-address pilot)) 0)
               (let ((addr (make-vector bbdb-address-length nil))
!                    loc sts st1 st2 st3
                     (street (bbdb-pilot-address pilot))
                     (cty (bbdb-pilot-city pilot))
                     (ste (bbdb-pilot-state pilot))
***************
*** 463,483 ****
                 (if (string-match "^\\([^ \t\n:]+\\):[ \t\n]*" street)
                     (setq loc (substring street 0 (match-end 1))
                           street (substring street (match-end 0))))
  
!                (if (string-match "^\\([^\n]+\\)\\(\n\\|$\\)" street)
!                    (setq st1 (substring street 0 (match-end 1))
!                          street (substring street (match-end 0))))
!                (if (string-match "^\\([^\n]+\\)\\(\n\\|$\\)" street)
!                    (setq st2 (substring street 0 (match-end 1))
!                          street (substring street (match-end 0))))
!                (if (string-match "^\\([^\n]+\\)\\(\n\\|$\\)" street)
!                    (setq st3 (substring street 0 (match-end 1))
                           street (substring street (match-end 0))))
  
-                (bbdb-address-set-location addr loc)
-                (bbdb-address-set-street1  addr (or st1 ""))
-                (bbdb-address-set-street2  addr (or st2 ""))
-                (bbdb-address-set-street3  addr (or st3 ""))
                 (bbdb-address-set-city     addr (or cty ""))
                 (bbdb-address-set-state    addr (or ste ""))
                 (bbdb-address-set-zip      addr zip)
--- 478,507 ----
                 (if (string-match "^\\([^ \t\n:]+\\):[ \t\n]*" street)
                     (setq loc (substring street 0 (match-end 1))
                           street (substring street (match-end 0))))
+                (bbdb-address-set-location addr loc)
  
!              (cond
!               ((>= bbdb-file-format 6)
!                (while (string-match "^\\([^\n]+\\)\\(\n\\|$\\)" street)
!                    (setq sts (append
!                             sts
!                             (list (substring street 0 (match-end 1))))
                           street (substring street (match-end 0))))
+                (bbdb-address-set-streets  addr sts))
+               (t
+                (if (string-match "^\\([^\n]+\\)\\(\n\\|$\\)" street)
+                    (setq st1 (substring street 0 (match-end 1))
+                          street (substring street (match-end 0))))
+                (if (string-match "^\\([^\n]+\\)\\(\n\\|$\\)" street)
+                    (setq st2 (substring street 0 (match-end 1))
+                          street (substring street (match-end 0))))
+                (if (string-match "^\\([^\n]+\\)\\(\n\\|$\\)" street)
+                    (setq st3 (substring street 0 (match-end 1))
+                          street (substring street (match-end 0))))
+                (bbdb-address-set-street1  addr (or st1 ""))
+                (bbdb-address-set-street2  addr (or st2 ""))
+                (bbdb-address-set-street3  addr (or st3 ""))))
  
                 (bbdb-address-set-city     addr (or cty ""))
                 (bbdb-address-set-state    addr (or ste ""))
                 (bbdb-address-set-zip      addr zip)
***************
*** 527,546 ****
  
  (defun bbdb-to-pilot ()
    "Push the current contents of BBDB out to the Pilot."
! ;  (interactive)
    (bbdb-records)  ; load bbdb
    (message "Selecting records...")
    (let ((records
           (remove-if-not
            #'(lambda (record)
!               (and (bbdb-record-name record)
                     (let ((phones-p nil)
                           (phones (bbdb-record-phones record)))
                       (while phones
                         (let ((loc (bbdb-phone-location (car phones))))
                           (if (and (not (string-match "cid" loc))
                                    (not (string-match "[?]" loc)))
!                              (setq phones-p t)))
                         (setq phones (cdr phones)))
                       phones-p)))
            (bbdb-records)))
--- 551,571 ----
  
  (defun bbdb-to-pilot ()
    "Push the current contents of BBDB out to the Pilot."
!   (interactive)
    (bbdb-records)  ; load bbdb
    (message "Selecting records...")
    (let ((records
           (remove-if-not
            #'(lambda (record)
!               (and (or (bbdb-record-name record)
!                      (bbdb-record-company record))
                     (let ((phones-p nil)
                           (phones (bbdb-record-phones record)))
                       (while phones
                         (let ((loc (bbdb-phone-location (car phones))))
                           (if (and (not (string-match "cid" loc))
                                    (not (string-match "[?]" loc)))
!                              (setq phones-p t)))
                         (setq phones (cdr phones)))
                       phones-p)))
            (bbdb-records)))

Reply via email to