emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* org capture contexts not working?
@ 2014-04-20  5:20 Eric Abrahamsen
  2014-04-20  6:44 ` Bastien
  0 siblings, 1 reply; 3+ messages in thread
From: Eric Abrahamsen @ 2014-04-20  5:20 UTC (permalink / raw)
  To: emacs-orgmode

I've got this for three capture templates that should only work in Gnus:

(setq org-capture-templates-contexts
      '(("M" ((in-mode . "gnus-\\(summary\\|article\\)")))
	("P" ((in-mode . "gnus-\\(summary\\|article\\)")))
	("H" ((in-mode . "gnus-\\(summary\\|article\\)")))))

This worked for quite some time, but when I went back to use it again
today I found that these templates aren't filtered out in non-Gnus
settings. I tried stepping through the code of
`org-contextualize-validate-key' and think I've found the problem,
though I'll confess to a little confusion.

When that function checks the predicates (in-mode, not-in-file, etc), it
has this chunk for handling the not-in-file bit:

(if (and (eq (car rr) 'not-in-file)
         (buffer-file-name))
    (not (string-match (cdr rr) (buffer-file-name)))
  t)

This was slightly mis-aligned in the source file, leading me to believe
it's just a nesting error. As it is, any template which *isn't using*
the not-in-file predicate is going to flag as acceptable for the current
context. I think it should just be:

(when (and (eq (car rr) 'not-in-file)
	   (buffer-file-name))
  (not (string-match (cdr rr) (buffer-file-name))))

Testing indicates it works, am I missing anything? Pickaxe search for
the string "not-in-file" in git says the last relevant commit was two
years ago, so who knows what's going on...

Eric

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-04-20  8:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-20  5:20 org capture contexts not working? Eric Abrahamsen
2014-04-20  6:44 ` Bastien
2014-04-20  8:12   ` Eric Abrahamsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).