girzel / ebdb

An EIEIO port of BBDB, Emacs' contact-management package
67 stars 11 forks source link

Cannot update records with mu4e #76

Closed brabalan closed 5 years ago

brabalan commented 5 years ago

When I am in a mu4e view buffer and I run ebdb-update-records, I get the message This is a pseudo-article and nothing happens.

I tried with both mu4e-view-use-gnus set to t and to nil.

girzel commented 5 years ago

That's odd -- that's a Gnus error, not a mu4e error. Are you sure you're getting it with mu4e-view-use-gnu set to nil? Can you toggle-debug-on-error, trigger the error, and send me the full traceback?

brabalan commented 5 years ago

I double-checked and I'm using a mu4e view.

It is indeed a gnus error:

  signal(error ("This is a pseudo-article"))
  error("This is a pseudo-article")
  gnus-summary-select-article()
  #f(compiled-function () #<bytecode 0x289d1f5>)()
  apply(#f(compiled-function () #<bytecode 0x289d1f5>) nil)
  ebdb-mua-prepare-article()
  ebdb-mua-update-records()
  funcall-interactively(ebdb-mua-update-records)
  call-interactively(ebdb-mua-update-records record nil)
  command-execute(ebdb-mua-update-records record)

Is there a way to find out what compiled function is called?

Later on: I ran eval-buffer on ebdb-mua.el, and now it works. It also works after restarting emacs. So I guess that the value of mu4e-view-use-gnus when ebdb is first started matters.

Do you plan to support mu4e with the gnus message view?

girzel commented 5 years ago
  signal(error ("This is a pseudo-article"))
  error("This is a pseudo-article")
  gnus-summary-select-article()
  #f(compiled-function () #<bytecode 0x289d1f5>)()
  apply(#f(compiled-function () #<bytecode 0x289d1f5>) nil)
  ebdb-mua-prepare-article()
  ebdb-mua-update-records()
  funcall-interactively(ebdb-mua-update-records)
  call-interactively(ebdb-mua-update-records record nil)
  command-execute(ebdb-mua-update-records record)

Is there a way to find out what compiled function is called?

By loading the uncompiled files -- I think doing eval-buffer on ebdb-mua.el and triggering the error should do it.

Later on: I ran eval-buffer on ebdb-mua.el, and now it works. It also works after restarting emacs. So I guess that the value of mu4e-view-use-gnus when ebdb is first started matters.

Do you plan to support mu4e with the gnus message view?

I didn't know there was such a thing! But yes. I'm installing mu right now, and will try it out. Many of the core functions dispatch on major mode, so EBDB probably thinks its operating in Gnus. Do you know if mu4e has its own major mode in Gnus message view, or maybe its own minor mode in effect, or anything else I can use to check?

Has EBDB continued to behave correctly since you restarted?

girzel commented 5 years ago

I double-checked and I'm using a mu4e view.

It is indeed a gnus error:

  signal(error ("This is a pseudo-article"))
  error("This is a pseudo-article")
  gnus-summary-select-article()
  #f(compiled-function () #<bytecode 0x289d1f5>)()
  apply(#f(compiled-function () #<bytecode 0x289d1f5>) nil)
  ebdb-mua-prepare-article()
  ebdb-mua-update-records()
  funcall-interactively(ebdb-mua-update-records)
  call-interactively(ebdb-mua-update-records record nil)
  command-execute(ebdb-mua-update-records record)

Is there a way to find out what compiled function is called?

You'd have to load the uncompiled code -- probably just loading ebdb-mu4e.el and ebdb-gnus.el would do it.

The `ebdb-mua-prepare-article' dispatches on major-mode, so how it behaves is going to depend entirely on the major mode at the time. Can you tell me what that is?

brabalan commented 5 years ago

The mode is unfortunately still mu4e-view-mode.

And yes, I can use EBDB without any issue (except the popup one I reported).

girzel commented 5 years ago

Okay, that's good to know. I still think there might be something weird going on with article prep, but I'm going to close this for now until I've had time to test-run mu4e more thoroughly. Thanks for the report.

brabalan commented 5 years ago

For the record, I run mu4e with the gnus view, and everything works great.