Re: [O] [BUG?] subtle sequencing error when setting org-bbdb-old in org-bbdb.el

2012-03-02 Thread David Maus
At Mon, 27 Feb 2012 17:21:59 -0500,
Nick Dokos wrote:
 
 David Maus dm...@ictsoc.de wrote:
 
   The problem was that org-bbdb is part of org-modules by default and that
   was loading org-bbdb way too early, certainly before bbdb itself was
   loaded.  That would set the value to nil and nothing I would do could
   change it (short of whacking it with a setq).
  
  I pushed a patch that should fix this problem. I wrapped a
  `eval-after-load' around the `defvar', this should make sure that the
  variable is set after bbdb was loaded.
  
 
 I still have a problem with one configuration (but not with another),
 but I haven't drilled down to figure out what the problem is. I was
 wondering however if the eval-after-load should be predicated on
 bbdb-com rather than bbdb[fn:1]: with this change, both of my tested
 configurations work (hardly a definitive test but perhaps better than
 nothing).

Thanks for the feedback. Eval after load 'bbdb-com would have been
better -- I just replaced the entire defvar by a check in
`org-bbdb-open' and `org-bbdb-store-link' for the required functions.

So this should really work now.

Best,
  -- David
-- 
OpenPGP... 0x99ADB83B5A4478E6
Jabber dmj...@jabber.org
Email. dm...@ictsoc.de



Re: [O] [BUG?] subtle sequencing error when setting org-bbdb-old in org-bbdb.el

2012-03-02 Thread Nick Dokos
David Maus dm...@ictsoc.de wrote:

 At Mon, 27 Feb 2012 17:21:59 -0500,
 Nick Dokos wrote:
  
  David Maus dm...@ictsoc.de wrote:
  
The problem was that org-bbdb is part of org-modules by default and that
was loading org-bbdb way too early, certainly before bbdb itself was
loaded.  That would set the value to nil and nothing I would do could
change it (short of whacking it with a setq).
   
   I pushed a patch that should fix this problem. I wrapped a
   `eval-after-load' around the `defvar', this should make sure that the
   variable is set after bbdb was loaded.
   
  
  I still have a problem with one configuration (but not with another),
  but I haven't drilled down to figure out what the problem is. I was
  wondering however if the eval-after-load should be predicated on
  bbdb-com rather than bbdb[fn:1]: with this change, both of my tested
  configurations work (hardly a definitive test but perhaps better than
  nothing).
 
 Thanks for the feedback. Eval after load 'bbdb-com would have been
 better -- I just replaced the entire defvar by a check in
 `org-bbdb-open' and `org-bbdb-store-link' for the required functions.
 
 So this should really work now.
 

It does, at least in the two configurations I've tested: my full-blown one
and a minimal org one with bbdb loaded after the fact.

I'll be trying it with bbdb 3.x some time soon, I hope.

Thanks very much!
Nick



Re: [O] [BUG?] subtle sequencing error when setting org-bbdb-old in org-bbdb.el

2012-02-27 Thread David Maus
Hi Nick,

At Sat, 25 Feb 2012 04:20:10 -0500,
Nick Dokos wrote:

 I was bitten by this and it took me a while to figure out what was going
 on, so maybe I can save somebody some time by recording the problem here.

 I'm using bbdb 2.36devo (i.e. an old bbdb version - see below for my
 3.0 troubles), and although org-bbdb-anniversaries was working fine,
 bbdb links did not: C-c l on a bbdb entry would raise an error about
 void function bbdb-record-get-field. Now org-bbdb-store-link contains
 the following code

 (if org-bbdb-old
 (bbdb-record-getprop rec 'company)
   (car (bbdb-record-get-field rec 'organization))

 so clearly org-bbdb-old was nil - but why? It seemed to me that it should
 be t since my bbdb was old.

 It turns out that org-bbdb.el contains a line that sets org-bbdb-old
 thus:

   (defvar org-bbdb-old (fboundp 'bbdb-record-get-field-internal))

 Check whether an old bbdb function is present and if so, set
 org-bbdb-old to t. Basically, the variable tells the rest of org-bbdb.el
 whether one's bbdb is old ( 3.0) or not, so that it can use the proper
 compatibility layer. This was not working in my case : the variable
 resolutely held the value nil, no matter what requires/load-library/ etc
 tricks I threw at it.

 The problem was that org-bbdb is part of org-modules by default and that
 was loading org-bbdb way too early, certainly before bbdb itself was
 loaded.  That would set the value to nil and nothing I would do could
 change it (short of whacking it with a setq).

I pushed a patch that should fix this problem. I wrapped a
`eval-after-load' around the `defvar', this should make sure that the
variable is set after bbdb was loaded.


 Re: the bbdb 3.0 troubles. I have tried switching to bbdb 3.0
 (specifically BBDB version 3.02 ($Date: 2012/01/02 10:08:06 $)) but
 I've been stymied so far with org-bbdb-anniversaries blowing up (a far
 worse scenario than the link problem above - that's why I'm still using
 2.36devo and went after the link fix first).

 The error I get is Debugger entered--Lisp error: (void-function
 bbdb-record-getprop) in org-bbdb-anniv-hash (see backtrace below),
 but I haven't chased down that problem yet. But it seems there are
 people using bbdb 3.0 so I'm wondering what's wrong with my setup.

Can't comment on this.

Best,
  -- David
--
OpenPGP... 0x99ADB83B5A4478E6
Jabber dmj...@jabber.org
Email. dm...@ictsoc.de

pgpVbuVyFU7os.pgp
Description: PGP signature


Re: [O] [BUG?] subtle sequencing error when setting org-bbdb-old in org-bbdb.el

2012-02-27 Thread Nick Dokos
David Maus dm...@ictsoc.de wrote:

 
  The problem was that org-bbdb is part of org-modules by default and that
  was loading org-bbdb way too early, certainly before bbdb itself was
  loaded.  That would set the value to nil and nothing I would do could
  change it (short of whacking it with a setq).
 
 I pushed a patch that should fix this problem. I wrapped a
 `eval-after-load' around the `defvar', this should make sure that the
 variable is set after bbdb was loaded.
 

Thanks! I'll try to take it out for a spin in the next few days.

 
  Re: the bbdb 3.0 troubles. I have tried switching to bbdb 3.0
  (specifically BBDB version 3.02 ($Date: 2012/01/02 10:08:06 $)) but
  I've been stymied so far with org-bbdb-anniversaries blowing up (a far
  worse scenario than the link problem above - that's why I'm still using
  2.36devo and went after the link fix first).
 
  The error I get is Debugger entered--Lisp error: (void-function
  bbdb-record-getprop) in org-bbdb-anniv-hash (see backtrace below),
  but I haven't chased down that problem yet. But it seems there are
  people using bbdb 3.0 so I'm wondering what's wrong with my setup.
 
 Can't comment on this.
 

Understood. I hope to get bbdb-3.x up and running and then see what (if
anything) is broken with org-bbdb, but at this point, it's just as likely
that I'm doing something wrong - I just haven't had the time to dig into it
seriously.

Nick



Re: [O] [BUG?] subtle sequencing error when setting org-bbdb-old in org-bbdb.el

2012-02-27 Thread Nick Dokos
David Maus dm...@ictsoc.de wrote:

  The problem was that org-bbdb is part of org-modules by default and that
  was loading org-bbdb way too early, certainly before bbdb itself was
  loaded.  That would set the value to nil and nothing I would do could
  change it (short of whacking it with a setq).
 
 I pushed a patch that should fix this problem. I wrapped a
 `eval-after-load' around the `defvar', this should make sure that the
 variable is set after bbdb was loaded.
 

I still have a problem with one configuration (but not with another),
but I haven't drilled down to figure out what the problem is. I was
wondering however if the eval-after-load should be predicated on
bbdb-com rather than bbdb[fn:1]: with this change, both of my tested
configurations work (hardly a definitive test but perhaps better than
nothing).

Nick

Footnotes:

[fn:1] ... the reason being that the fboundp test is on
   bbdb-record-get-field-internal, which is defined in bbdb-com.el.



[O] [BUG?] subtle sequencing error when setting org-bbdb-old in org-bbdb.el

2012-02-25 Thread Nick Dokos
I was bitten by this and it took me a while to figure out what was going
on, so maybe I can save somebody some time by recording the problem here.

I'm using bbdb 2.36devo (i.e. an old bbdb version - see below for my
3.0 troubles), and although org-bbdb-anniversaries was working fine,
bbdb links did not: C-c l on a bbdb entry would raise an error about
void function bbdb-record-get-field. Now org-bbdb-store-link contains
the following code

(if org-bbdb-old
(bbdb-record-getprop rec 'company)
  (car (bbdb-record-get-field rec 'organization))

so clearly org-bbdb-old was nil - but why? It seemed to me that it should
be t since my bbdb was old.

It turns out that org-bbdb.el contains a line that sets org-bbdb-old
thus:

  (defvar org-bbdb-old (fboundp 'bbdb-record-get-field-internal))

Check whether an old bbdb function is present and if so, set
org-bbdb-old to t. Basically, the variable tells the rest of org-bbdb.el
whether one's bbdb is old ( 3.0) or not, so that it can use the proper
compatibility layer. This was not working in my case : the variable
resolutely held the value nil, no matter what requires/load-library/ etc
tricks I threw at it.

The problem was that org-bbdb is part of org-modules by default and that
was loading org-bbdb way too early, certainly before bbdb itself was
loaded.  That would set the value to nil and nothing I would do could
change it (short of whacking it with a setq).

My solution was to change the customization of org-modules to get rid of
org-bbdb there. I do things in the proper sequence in my initialization
files in any case, so there is no need to have it in org-modules.
But maybe there's a better solution?

Re: the bbdb 3.0 troubles. I have tried switching to bbdb 3.0
(specifically BBDB version 3.02 ($Date: 2012/01/02 10:08:06 $)) but
I've been stymied so far with org-bbdb-anniversaries blowing up (a far
worse scenario than the link problem above - that's why I'm still using
2.36devo and went after the link fix first).

The error I get is Debugger entered--Lisp error: (void-function
bbdb-record-getprop) in org-bbdb-anniv-hash (see backtrace below),
but I haven't chased down that problem yet. But it seems there are
people using bbdb 3.0 so I'm wondering what's wrong with my setup.

Nick


---
Debugger entered--Lisp error: (void-function bbdb-record-getprop)
  (bbdb-record-getprop rec org-bbdb-anniversary-field)
  (setq annivs (bbdb-record-getprop rec org-bbdb-anniversary-field))
  (if (setq annivs (bbdb-record-getprop rec org-bbdb-anniversary-field)) (progn 
(setq annivs (bbdb-split annivs \n)) (while annivs (setq split 
(org-bbdb-anniv-split (pop annivs))) (multiple-value-bind (m d y) (values-list 
(funcall org-bbdb-extract-date-fun (car split))) (setq tmp (gethash (list m d) 
org-bbdb-anniv-hash)) (puthash (list m d) (cons (list y (bbdb-record-name rec) 
(cadr split)) tmp) org-bbdb-anniv-hash)
  (when (setq annivs (bbdb-record-getprop rec org-bbdb-anniversary-field)) 
(setq annivs (bbdb-split annivs \n)) (while annivs (setq split 
(org-bbdb-anniv-split (pop annivs))) (multiple-value-bind (m d y) (values-list 
(funcall org-bbdb-extract-date-fun (car split))) (setq tmp (gethash (list m d) 
org-bbdb-anniv-hash)) (puthash (list m d) (cons (list y (bbdb-record-name rec) 
(cadr split)) tmp) org-bbdb-anniv-hash
  (while --cl-dolist-temp-- (setq rec (car --cl-dolist-temp--)) (when (setq 
annivs (bbdb-record-getprop rec org-bbdb-anniversary-field)) (setq annivs 
(bbdb-split annivs \n)) (while annivs (setq split (org-bbdb-anniv-split (pop 
annivs))) (multiple-value-bind (m d y) (values-list (funcall 
org-bbdb-extract-date-fun (car split))) (setq tmp (gethash (list m d) 
org-bbdb-anniv-hash)) (puthash (list m d) (cons (list y (bbdb-record-name rec) 
(cadr split)) tmp) org-bbdb-anniv-hash (setq --cl-dolist-temp-- (cdr 
--cl-dolist-temp--)))
  (let ((--cl-dolist-temp-- (bbdb-records)) rec) (while --cl-dolist-temp-- 
(setq rec (car --cl-dolist-temp--)) (when (setq annivs (bbdb-record-getprop rec 
org-bbdb-anniversary-field)) (setq annivs (bbdb-split annivs \n)) (while 
annivs (setq split (org-bbdb-anniv-split (pop annivs))) (multiple-value-bind (m 
d y) (values-list (funcall org-bbdb-extract-date-fun (car split))) (setq tmp 
(gethash (list m d) org-bbdb-anniv-hash)) (puthash (list m d) (cons (list y ... 
...) tmp) org-bbdb-anniv-hash (setq --cl-dolist-temp-- (cdr 
--cl-dolist-temp--
  (catch (quote --cl-block-nil--) (let ((--cl-dolist-temp-- (bbdb-records)) 
rec) (while --cl-dolist-temp-- (setq rec (car --cl-dolist-temp--)) (when (setq 
annivs (bbdb-record-getprop rec org-bbdb-anniversary-field)) (setq annivs 
(bbdb-split annivs \n)) (while annivs (setq split (org-bbdb-anniv-split (pop 
annivs))) (multiple-value-bind (m d y) (values-list (funcall 
org-bbdb-extract-date-fun ...)) (setq tmp (gethash ... org-bbdb-anniv-hash))