[O] Bug: Need additional context 'protocol' for capture templates [8.3.2 (8.3.2-39-gd537a3-elpa @ /home/phil/.emacs.d/elpa/org-20151123/)]

2015-12-10 Thread Phil Hudson
o-checkbox-dependencies t
org-refile-allow-creating-parent-nodes 'confirm
org-todo-keywords '((sequence "SOMEDAY(m)" "WAITING(w@)" "TODO(t)"
"STARTED(s!)" "|" "DONE(d!)"
"CANCELED(c@)")
   (sequence "ITERATION(i)" "|" "NEXT(n)"))
org-modules '(org-bbdb org-bibtex org-docview org-gnus org-info org-jsinfo
 org-habit org-irc org-mew
 org-mhe org-rmail org-vm org-wl org-w3m)
org-capture-templates-contexts '(("m" "" ((in-mode . "gnus-article-mode")))
("c" "" ((in-mode . "bbdb-mode")))
("x" "" ((in-mode . "bbdb-mode")))
("e" "" ((in-mode . "erc-mode"
org-agenda-window-setup 'current-window
org-agenda-span 'day
org-confirm-elisp-link-function 'yes-or-no-p
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-mobile-post-push-hook '(ph/force-revert-google-calendar-org-buffers 
ph/mop-up-org-mobile-leak)
org-blocker-hook '(org-block-todo-from-checkboxes 
org-block-todo-from-children-or-siblings-or-parent)
org-mobile-directory "~/Dropbox/mobile"
org-mobile-files-exclude-regexp "from-mobile\\.org"
org-completion-use-ido t
org-babel-load-languages '((emacs-lisp . t) (js . t))
org-clock-in-hook '(ph/org-schedule-today ph/org-set-todo-state-started)
org-habit-graph-column 55
org-agenda-mode-hook '(ph/force-revert-google-calendar-org-buffer
  ph/turn-off-filladapt-mode
  ph/diminish-org-agenda-indicator 
ph/setup-org-agenda-keys)
org-mobile-post-pull-hook '(ph/force-revert-google-calendar-org-buffers
   ph/notify-org-mobile-pull-new-items)
org-agenda-files '("~/Dropbox/googlecalendar.org"
  "~/Dropbox/reminderscalendar.org"
  "~/org/Birthdays.org" "~/org/notes.org"
  "~/org/ToSell.org" "~/org/Travel.org"
  "~/org/Leisure.org" "~/org/ToDo.org" 
"~/org/ToGet.org" "~/org/from-mobile.org")
org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
org-refile-target-verify-function 
'ph/org-refile-target-verify-not-done-state
org-tag-alist '((:startgroup) ("@home" . 104) ("@office" . 111) ("@computer"
        . 99) 
("@phone" . 112)
   ("@online" . 79) ("@garden" . 103) (:endgroup) ("errands"
  . 69) 
("work" . 119)
   ("edu" . 92) ("email" . 64) ("hands_on" . 95)
   ("paperwork" . 80) ("read" . 114)
   ("buy" . 98) ("meeting" . 35) ("coding" . 42) ("travel" .
 84) 
("leisure" . 76)
   ("family" . 70) ("pets" . 96) ("health" . 72) ("finance"
 . 102) 
("webapps" . 87)
   ("mac" . 109) ("_n_x" . 117) ("research" . 63)
   ("security" . 126) ("emacs" . 101)
   ("screen" . 115) ("tcsh" . 116) ("lisp" . 108) ("shell" .
  83) 
("vm" . 118)
   ("ux" . 85) ("bug" . 66) ("rfe" . 82) ("db" . 68)
   ("officialdom" . 60)
   ("next" . 110) ("social" . 120) ("Android" . 97) ("scm" .
47) 
("testing" . 33)
   ("debian" . 100) ("network" . 78) ("weekend" . 91))
)
-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



[O] Bug: Capture template file source variant support in Customize [8.3.4 (8.3.4-47-gaf853d-elpa @ /home/phil/.emacs.d/elpa/org-20160502/)]

2016-05-07 Thread Phil Hudson


Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.  You don't know how to make a good report?  See

 http://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org-mode mailing list.


Expected: When using the Customize interface to create/edit an Org
capture template, we expect to be able to specify a file to write the
captured item into using (according to the documentation) any one of:
  * a literal filename
  * a function
  * a variable
  * a form
But the Customize UI supports only the first of these. The attached
patch adds Customize support for the other three variants, in the proper
order (increasing generality/decreasing specificity).

Note that using Lisp to specify a capture template's target file using a
function, variable or sexp *does* work fine and as documented, except
that thereafter Customize fails to present the resulting variable
correctly; it reverts to showing the alist as one Lisp form. This patch
simply "catches up" the Customize UI with what Org can do and is
documented as doing.

As a workaround, I fell back on using the alternative 'function' target
specification method. That is, it's an alternative to 'file'; not to be
confused with the 'function' sub-method of 'file'. It took some rooting
around in source code for me to understand exactly what this function
has to do. It has to visit a file and optionally move point. Overkill
for my initial requirement, which was simply to produce a date-including
filename, but I made it work*, rather than lose the Customize UI. Anyway,
the documentation was too vague, and this patch also fixes that.

I have signed the FSF papers.  

* pending your acceptance of this patch, at which point I can revert to
  the simpler filename-producing function I wanted to use initially.
  
-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63


--- org-20160502/org-capture.el 2016-05-07 10:18:26.0 +0100
+++ org.patched/org-capture.el  2016-05-04 11:54:23.0 +0100
@@ -157,8 +157,8 @@
 File to the entry that is currently being clocked
 
  (function function-finding-location)
-Most general way, write your own function to find both
-file and location
+Most general way: write your own function which both visits the
+file and moves point to the right location.
 
 template The template for creating the capture item.  If you leave this
  empty, an appropriate default template will be used.  See below
@@ -299,7 +299,11 @@
  (choice :tag "Target location"
  (list :tag "File"
(const :format "" file)
-   (file :tag "  File"))
+  (choice :tag "  Filename"
+(file :tag "  Literal")
+(function :tag "  Function")
+(variable :tag "  Variable")
+(sexp :tag "  Form")))
  (list :tag "ID"
(const :format "" id)
(string :tag "  ID"))



[O] org-agenda-bulk-custom-functions Customize mismatch

2016-05-08 Thread Phil Hudson
Another defcustom mismatched with the code.

At line 9962 of org-agenda.el (20160502 release) we have:

  (setq cmd (list (cadr (assoc action org-agenda-bulk-custom-functions)))

This assumes that `org-agenda-bulk-custom-functions` is a
list-of-two-element-lists alist. Thus, the `cadr` form returns (should
return) the second element of one two-element list from the alist.

However, the defcustom is declared as type alist, which in defcustom
means (by default) a list-of-conses alist.

See if you agree with my thinking about this. This means that the code
must always fail if the Customize UI is used to populate
`org-agenda-bulk-custom-functions`. That in turn implies that (to a
first approximation) zero users apart from me have tried to declare a
custom bulk agenda command with its own custom key via Customize. Oh
well.

If my diagnosis is correct, then I see two ways to fix it: either change
the defcustom to create a list-of-two-element-lists alist, or change the
code so that it handles a list-of-conses alist.

The first approach is supported by defcustom and gives us the chance to
be both more descriptive and more prescriptive. It shouldn't break
anything that isn't in fact already broken.

The second approach is as simple as changing that `cadr` to a `cdr`, but
it does risk breaking working configs where the alist was populated
procedurally.

I propose the first. Here's a patch.

-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63


--- org-20160502/org-agenda.el  2016-05-07 10:18:22.0 +0100
+++ org-mode-mod/org-agenda.el  2016-05-08 14:39:52.0 +0100
@@ -1999,7 +1999,7 @@
 With selected entries in an agenda buffer, `B R' will call
 the custom function `set-category' on the selected entries.
 Note that functions in this alist don't need to be quoted."
-  :type 'alist
+  :type '(alist :key-type character :value-type (group function))
   :version "24.1"
   :group 'org-agenda)
 



[O] Patches sent

2016-05-09 Thread Phil Hudson
Is there anything further I need to do to get the two patches I sent
over the weekend merged (or constructively rejected)? They seem to have
died a death.

-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



Re: [O] Org 8.3.4 - Problems with bulk reschedule in agenda

2016-05-10 Thread Phil Hudson
On Tue, 10 May 2016 at 10:51:17 am BST, elwood...@web.de wrote:

> I'm using Emacs 24.5.1 on Windows 7 with org-mode 8.3.4.
> Unfortunately, bulk actions in the agenda do not work as expected:
> If I mark several lines in the agenda,
> then Shift-B and then d for changing the deadline of the tasks.
> I then can enter the date, but it only affects the first of the selected 
> agenda
> lines, the others stay unchangend.

Some ideas on what to try, in order to narrow down possibilities:

* Does 'B s' (reschedule, instead of re-deadline) fail in the same way
  as 'B d'? How about other bulk actions?
* How about if you unmark only the second entry, leaving 1,3,4...
  marked, in case the problem is specifically the second entry?
* Do all the entries have a deadline to start with? (Shouldn't make a
  difference, but might be useful to know).
* Have you ever used 'edebug'? That would be my next step.
  (info "(elisp) Edebug")
  
-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



Re: [O] Bug: Capture template file source variant support in Customize [8.3.4 (8.3.4-47-gaf853d-elpa @ /home/phil/.emacs.d/elpa/org-20160502/)]

2016-05-10 Thread Phil Hudson
On Tue, 10 May 2016 at 10:21:12 pm BST, Nicolas Goaziou 
 wrote:

> Hello,
>
> Phil Hudson  writes:
>
>> Expected: When using the Customize interface to create/edit an Org
>> capture template, we expect to be able to specify a file to write the
>> captured item into using (according to the documentation) any one of:
>>   * a literal filename
>>   * a function
>>   * a variable
>>   * a form
>> But the Customize UI supports only the first of these. The attached
>> patch adds Customize support for the other three variants, in the proper
>> order (increasing generality/decreasing specificity).
>>
>> Note that using Lisp to specify a capture template's target file using a
>> function, variable or sexp *does* work fine and as documented, except
>> that thereafter Customize fails to present the resulting variable
>> correctly; it reverts to showing the alist as one Lisp form. This patch
>> simply "catches up" the Customize UI with what Org can do and is
>> documented as doing.
>
> Sounds good. 
>
> However, wouldn't it make sense to also add these types to other file
> related target locations, e.g., "File & Headline", "File & Outline
> path"... ?

Thanks for the perceptive feedback. I hadn't even thought about it. Your
suggestion definitely sounds like the right thing to do. I'll be back
with a fuller patch, properly gitted and committed.

-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



Re: [O] Bug: Write file while editing babel code block doesn't work as expected [8.3.4 (release_8.3.4-778-g8127b3 @ /usr/local/share/emacs/site-lisp/org/)]

2016-05-11 Thread Phil Hudson
On Wed, 11 May 2016 at 12:44:17 am BST, David Dynerman  
wrote:

> I would like to manually save the buffer to a file by calling
> write-file (C-x C-w) 

Would `write-region' not be what you want?

-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



[O] [PATCH] org-agenda.el: Fix `org-agenda-bulk-custom-functions' supported Customize type

2016-05-11 Thread Phil Hudson
Hope this is all correct now. If it is, I'll do the next, somewhat
bigger patch tomorrow. If not, please feed back on what I need to do
differently.

Just to reiterate: I have signed the FSF papers, so I didn't include the
cookie about the change being tiny, which I read the instructions as
saying only applies if you haven't signed the papers.

Here's the git format-patch output:

>From 256cf1f854e902de392a325ec4b9c8204fb84a21 Mon Sep 17 00:00:00 2001
From: Phil Hudson 
Date: Wed, 11 May 2016 15:34:12 +0100
Subject: [PATCH] org-agenda.el: Fix `org-agenda-bulk-custom-functions'
 supported Customize type

* org-agenda.el (`org-agenda-bulk-custom-functions'): Change the defcustom
  template to recognize that the code expects this alist's elements to be
  two-element lists like (?a b), not conses like (?a . b).  The Customize UI
  previously incorrectly presented the latter.  When saved, this led to the
  agenda bulk-commands menu correctly presenting the accelerator key 'a' but
  then erroring when it tried to execute the associated command 'b'.
---
 lisp/org-agenda.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index ef41678..ab280fb 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -2008,7 +2008,7 @@ For example, this value makes those two functions 
available:
 With selected entries in an agenda buffer, `B R' will call
 the custom function `set-category' on the selected entries.
 Note that functions in this alist don't need to be quoted."
-  :type 'alist
+  :type '(alist :key-type character :value-type (group function))
   :version "24.1"
   :group 'org-agenda)
 
-- 
2.8.0.rc3


-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



[O] [PATCH 1/2] org-agenda.el: Fix `org-agenda-bulk-custom-functions' supported Customize type

2016-05-11 Thread Phil Hudson

>From 256cf1f854e902de392a325ec4b9c8204fb84a21 Mon Sep 17 00:00:00 2001
From: Phil Hudson 
Date: Wed, 11 May 2016 15:34:12 +0100
Subject: [PATCH 1/2] org-agenda.el: Fix `org-agenda-bulk-custom-functions'
 supported Customize type

* org-agenda.el (`org-agenda-bulk-custom-functions'): Change the defcustom
  template to recognize that the code expects this alist's elements to be
  two-element lists like (?a b), not conses like (?a . b).  The Customize UI
  previously incorrectly presented the latter.  When saved, this led to the
  agenda bulk-commands menu correctly presenting the accelerator key 'a' but
  then erroring when it tried to execute the associated command 'b'.
---
 lisp/org-agenda.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index ef41678..ab280fb 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -2008,7 +2008,7 @@ For example, this value makes those two functions 
available:
 With selected entries in an agenda buffer, `B R' will call
 the custom function `set-category' on the selected entries.
 Note that functions in this alist don't need to be quoted."
-  :type 'alist
+  :type '(alist :key-type character :value-type (group function))
   :version "24.1"
   :group 'org-agenda)
 
-- 
2.8.0.rc3


-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



[O] [PATCH 2/2] org-capture.el: Support all target file specifiction variants in Customize

2016-05-11 Thread Phil Hudson
>From 9ca987e6580ef633c961bf2023813d8544a0d36b Mon Sep 17 00:00:00 2001
From: Phil Hudson 
Date: Wed, 11 May 2016 22:49:01 +0100
Subject: [PATCH 2/2] org-capture.el: Support all target file specifiction
 variants in Customize

* lisp/org-capture.el (`org-capture-templates'): Adjust the
  `org-capture-templates' defcustom template to support specifying the capture
  target file using either a literal pathname, a function, a variable or a
  form, as documented.  Previously the Customize UI supported specifying only a
  literal pathname.
  (org-capture-templates): Clarify the documentation for the 'function' method
  for setting up the capture target.

* doc/org.texi (Template elements): Copy the clarification regarding 'function'
  from org-capture.el above to the relevant section in the manual.
---
 doc/org.texi|  4 ++--
 lisp/org-capture.el | 58 +++--
 2 files changed, 49 insertions(+), 13 deletions(-)

diff --git a/doc/org.texi b/doc/org.texi
index 17b01c2..7a76744 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -7206,8 +7206,8 @@ A function to find the right location in the file.
 File to the entry that is currently being clocked.
 
 @item (function function-finding-location)
-Most general way, write your own function to find both
-file and location.
+Most general way: write your own function which both visits the
+file and sets point at the right location.
 @end table
 
 @item template
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index 34a6817..9842b13 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -166,8 +166,8 @@ target   Specification of where the captured item 
should be placed.
File to the entry that is currently being clocked
 
 (function function-finding-location)
-Most general way, write your own function to find both
-file and location
+Most general way: write your own function which both visits the
+file and sets point at the right location.
 
 template The template for creating the capture item.  If you leave this
 empty, an appropriate default template will be used.  See below
@@ -316,38 +316,74 @@ you can escape ambiguous cases with a backward slash, 
e.g., \\%i."
  (choice :tag "Target location"
  (list :tag "File"
(const :format "" file)
-   (file :tag "  File"))
+   (choice :tag "  Filename"
+   (file :tag "  Literal")
+   (function :tag "  Function")
+   (variable :tag "  Variable")
+   (sexp :tag "  Form")))
  (list :tag "ID"
(const :format "" id)
(string :tag "  ID"))
  (list :tag "File & Headline"
(const :format "" file+headline)
-   (file   :tag "  File")
+   (choice :tag "  Filename"
+   (file :tag "  Literal")
+   (function :tag "  Function")
+   (variable :tag "  Variable")
+   (sexp :tag "  Form"))
(string :tag "  Headline"))
  (list :tag "File & Outline path"
(const :format "" file+olp)
-   (file   :tag "  File")
+   (choice :tag "  Filename"
+   (file :tag "  Literal")
+   (function :tag "  Function")
+   (variable :tag "  Variable")
+   (sexp :tag "  Form"))
(repeat :tag "Outline path" :inline t
(string :tag "Headline")))
  (list :tag "File & Regexp"
(const :format "" file+regexp)
-   (file   :tag "  File  ")
+   (choice :tag "  Filename"
+   (file :tag "  Literal")
+   (function :tag "  Function")

Re: [O] org mode capture to headline at point

2016-05-13 Thread Phil Hudson
On Fri, 13 May 2016 at  4:08:04 pm BST, Xebar Saram  wrote:

> any one knows how to launch a capture (thats pre defined) but auto refile that
> capture to the/beneath the current header at point?

Hope I've understood your requirement correctly. I think this will do
what you want:

If you can redefine the capture template, then use the 'function' target
location option and specify a function that either does nothing (if you
will always have point /exactly/ where you want the capture inserted
before you invoke capture), or else one that inserts the start of a new
entry below point. Then you can just C-c C-c to get your capture where
you want it instead of C-c C-w, no refile required.

-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



[O] [PATCH] org-capture.el: Support all capture template target-file variants in Customize

2016-05-16 Thread Phil Hudson
>From ef813011fbe2fd47e5bdd623a6cff0878074de0c Mon Sep 17 00:00:00 2001
From: Phil Hudson 
Date: Mon, 16 May 2016 09:32:06 +0100
Subject: [PATCH] org-capture.el: Support all capture template target-file
 variants in Customize

* lisp/org-capture.el (`org-capture-templates'): Adjust the
  `org-capture-templates' defcustom template to support specifying the capture
  target file using either a literal pathname, a function, a variable or a
  form, as documented.  Previously the Customize UI supported specifying only a
  literal pathname.
  (org-capture-templates): Clarify the documentation for the 'function' method
  for setting up the capture target.

* doc/org.texi (Template elements): Clarify the 'function' method for setting up
  the capture target.
---
 doc/org.texi|  4 ++--
 lisp/org-capture.el | 31 ++-
 2 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/doc/org.texi b/doc/org.texi
index 17b01c2..0bfee39 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -7206,8 +7206,8 @@ A function to find the right location in the file.
 File to the entry that is currently being clocked.
 
 @item (function function-finding-location)
-Most general way, write your own function to find both
-file and location.
+Most general way: write your own function which both visits
+the file and moves point to the right location.
 @end table
 
 @item template
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index 34a6817..2b0cb0c 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -166,8 +166,8 @@ target   Specification of where the captured item 
should be placed.
 File to the entry that is currently being clocked
 
  (function function-finding-location)
-Most general way, write your own function to find both
-file and location
+Most general way: write your own function which both visits
+the file and moves point to the right location
 
 template The template for creating the capture item.  If you leave this
  empty, an appropriate default template will be used.  See below
@@ -299,7 +299,12 @@ you can escape ambiguous cases with a backward slash, 
e.g., \\%i."
   :group 'org-capture
   :version "24.1"
   :type
-  '(repeat
+  (let ((file-variants '(choice :tag "  Filename"
+   (file :tag "  Literal")
+   (function :tag "  Function")
+   (variable :tag "  Variable")
+   (sexp :tag "  Form"
+  `(repeat
 (choice :value ("" "" entry (file "~/org/notes.org") "")
(list :tag "Multikey description"
  (string :tag "Keys   ")
@@ -316,38 +321,38 @@ you can escape ambiguous cases with a backward slash, 
e.g., \\%i."
  (choice :tag "Target location"
  (list :tag "File"
(const :format "" file)
-   (file :tag "  File"))
+   ,file-variants)
  (list :tag "ID"
(const :format "" id)
(string :tag "  ID"))
  (list :tag "File & Headline"
(const :format "" file+headline)
-   (file   :tag "  File")
+   ,file-variants
(string :tag "  Headline"))
  (list :tag "File & Outline path"
(const :format "" file+olp)
-   (file   :tag "  File")
+   ,file-variants
(repeat :tag "Outline path" :inline t
(string :tag "Headline")))
  (list :tag "File & Regexp"
(const :format "" file+regexp)
-   (file   :tag "  File  ")
+   ,file-variants
(regexp :tag "  Regexp"))
  (list :tag "File & Date tree"
(const :format "" file+datetree)
-   (file :tag "  File"))
+   ,file-variants)
  (list :tag "File & Date tree, prompt for date"
(const :format "" file+datetree+prompt)
-   

[O] History list for %^{...} in capture

2016-05-20 Thread Phil Hudson
Arising from a discussion here a couple of weeks ago, I'm thinking about
how best to add a history list to org-capture's current
%^{prompt|default|choice2|...|choiceN} escape syntax. Here's my thinking
so far.

%^{prompt|'histList}
%^{prompt|default|'histList}
%^{prompt|default|choiceToPrepend|...|'histList|choiceToAppend|...}

Note the quote distinguishing the variable name.

Effectively the third example means: merge choices "default" and
"choiceTo*" into 'histList, prepending or appending each choice (if it
is not already an element of `histList') according to whether it occurs
before or after 'histList. Usually we would not expect prepending and
appending, just the prompt, default and history list as in the second
example. However, this form might be useful for pre-populating an
otherwise empty list.

I've identified the place in the code where the changes would need to be
coded, but I thought I should get your ideas before I dive in.
Effectively something similar is being done behind the scenes already
and then discarded; I would just be bringing it into the light of day
and making it persistent across calls.

WDYT? Good idea? Too complex? Too "busy"? Useful? Not useful?

-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



[O] Bug: RFE: Truncate habit history [8.2.10 (8.2.10-33-g880a2b-elpa @ /home/phil/.emacs.d/elpa/org-20150216/)]

2015-02-24 Thread Phil Hudson
o-session-maybe)
org-mobile-post-push-hook '(ph/clean-up-org-mobile-cruft)
org-blocker-hook '(org-block-todo-from-checkboxes 
org-block-todo-from-children-or-siblings-or-parent)
org-mobile-directory "~/Dropbox/mobile"
org-mobile-files-exclude-regexp "from-mobile\\.org"
org-completion-use-ido t
org-clock-in-hook '(ph/org-schedule-today ph/org-set-todo-state-started)
org-habit-graph-column 55
org-agenda-mode-hook '(ph/turn-off-filladapt-mode
ph/diminish-org-agenda-indicator
  ph/setup-org-agenda-keys)
org-mobile-post-pull-hook '(ph/notify-org-mobile-pull-new-items)
org-agenda-files '("~/Dropbox/googlecalendar.org"
"~/Dropbox/arthurcalendar.org"
  "~/Dropbox/frankcalendar.org"
  "~/Dropbox/hollycalendar.org"
  "~/Dropbox/kidscalendar.org"
  "~/Dropbox/reminderscalendar.org"
  "~/org/Birthdays.org" "~/org/notes.org"
  "~/org/ToSell.org" "~/org/Travel.org"
  "~/org/Leisure.org" "~/org/ToDo.org" 
"~/org/ToGet.org" "~/org/from-mobile.org")
org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
org-src-fontify-natively t
org-refile-target-verify-function 
'ph/org-refile-target-verify-not-done-state
org-tag-alist '((:startgroup) ("@home" . 104) ("@office" . 111) ("@computer"
. 99) ("@phone" . 112)
   ("@online" . 79) ("@garden" . 103) (:endgroup) ("errands"
   . 69) ("work" . 119)
   ("edu" . 92) ("email" . 64) ("hands_on" . 95)
   ("paperwork" . 80) ("read" . 114)
   ("buy" . 98) ("meeting" . 35) ("coding" . 42) ("travel" .
   84) ("leisure" . 76)
   ("family" . 70) ("pets" . 96) ("health" . 72) ("finance"
   . 102) ("webapps" . 87)
   ("mac" . 109) ("_n_x" . 117) ("Windows" . 45) ("research"
   . 63) ("security" . 126)
   ("emacs" . 101) ("screen" . 115) ("tcsh" . 116) ("lisp" .
   108) ("meta-org(+)")
   ("shell" . 83) ("vm" . 118) ("ux" . 85) ("bug" . 66)
   ("rfe" . 82) ("db" . 68)
   ("officialdom" . 60) ("next" . 110) ("social" . 120)
   ("Android" . 97) ("scm" . 47)
   ("testing" . 33) ("debian" . 100) ("network" . 78))
)
-- 
Phil Hudson   http://hudson-it.ddns.net
@UWascalWabbit PGP/GnuPG ID: 0x887DCA63



[BUG] require org-macs at compile time [9.5 (9.5-g0a86ad @ /home/phil/.emacs.d/elpa/org-9.5/)]

2021-10-19 Thread Phil Hudson
The macro `org-dlet' is not expanded in file org-agenda.el at compile
time when installing Org 9.5 from ELPA. It is plain-top-level
require'd. I think that (require 'org-macs) form should be wrapped in
an `eval-and-compile' form.

Emacs  : GNU Emacs 27.2 (build 1, x86_64-pc-linux-gnu, X toolkit,
Xaw3d scroll bars) of 2021-08-28
Package: Org mode version 9.5 (9.5-g0a86ad @ /home/phil/.emacs.d/elpa/org-9.5/)



org-agenda-filter-by-tag doco

2021-11-28 Thread Phil Hudson
I'd like to expand the docstring of command `org-agenda-filter-by-tag`
to document the Elisp equivalent of interactive prefix arguments. By
trial and error and guesswork I determined that I could emulate `C-u
C-u` by passing `'(16)` as the second argument
(`strip-or-accumulate`). I'd like to add text explaining this,
generalized to all prefix combinations.

I just thought I'd mention it on the list first, to get any thoughts
and advice that might be useful. For instance, currently there is a
paragraph for each prefix combination (`C-u`, `C-u C-u` and `C-u C-u
C-u`). Should I add Elisp calling doco to each, or should I expand the
subsequent paragraph that deals specifically with Elisp calling? I
tend to favor the latter as least confusing, but that might be a
matter of convention or opinion that others are better qualified to
comment on.

A further point: I already knew from prolonged usage that `C-u`
combinations evaluate numerically as powers of 4, but a newbie might
not. Should we explain this? I don't think it would be appropriate,
but again I'm open to advice. If not, should we at least link to the
explanation in the Elisp manual? I know we don't usually bother, but
since outcomes differ substantively in this case, maybe we should
here.



[BUG] org-compile-prefix-format doco is incomplete [9.5.2 (9.5.2-gfbff08 @ /home/phil/.emacs.d/elpa/org-9.5.2/)]

2022-03-29 Thread Phil Hudson
Function org-compile-prefix-format in file org-agenda.el (line 6917 in
Org 9.5.2) does not properly document parameter `key'.

Emacs  : GNU Emacs 27.2 (build 1, x86_64-pc-linux-gnu, X toolkit,
Xaw3d scroll bars)
 of 2021-08-28
Package: Org mode version 9.5.2 (9.5.2-gfbff08 @
/home/phil/.emacs.d/elpa/org-9.5.2/)



[BUG] org-element-map doco should refer to org-element-parse-buffer [9.5.2 (9.5.2-gfbff08 @ /home/phil/.emacs.d/elpa/org-9.5.2/)]

2022-03-29 Thread Phil Hudson
The documentation for function `org-element-parse-buffer' helpfully
directs the user to that of function `org-element-map', but the
documentation for the latter makes no mention of
`org-element-parse-buffer'. It contains lengthy and helpful explanations
of what to do with its `data' parameter, but no hint as to how to obtain
that data.

Emacs  : GNU Emacs 27.2 (build 1, x86_64-pc-linux-gnu, X toolkit,
Xaw3d scroll bars)
 of 2021-08-28
Package: Org mode version 9.5.2 (9.5.2-gfbff08 @
/home/phil/.emacs.d/elpa/org-9.5.2/)



Re: [PATCH] Re: [BUG] org-element-map doco should refer to org-element-parse-buffer [9.5.2 (9.5.2-gfbff08 @ /home/phil/.emacs.d/elpa/org-9.5.2/)]

2022-05-03 Thread Phil Hudson
Thanks Ihor, that's great!

One tiny nit-pick: I think "e.g." is deprecated in favor of the
explicit literal "for example". My source for this is (info "(elisp)
Documentation Tips").

Also, just spotted what I think is a pre-existing typo, "objects
types", which I think should probably be just "object types". Might as
well fix that while we're at it.

Best,
Phil

On Tue, 3 May 2022 at 04:43, Ihor Radchenko  wrote:
>
> Phil Hudson  writes:
>
> > The documentation for function `org-element-parse-buffer' helpfully
> > directs the user to that of function `org-element-map', but the
> > documentation for the latter makes no mention of
> > `org-element-parse-buffer'. It contains lengthy and helpful explanations
> > of what to do with its `data' parameter, but no hint as to how to obtain
> > that data.
>
> Sounds reasonable.
> Will something like the attached do?
>
> Best,
> Ihor
>



Re: [BUG] org-compile-prefix-format doco is incomplete [9.5.2 (9.5.2-gfbff08 @ /home/phil/.emacs.d/elpa/org-9.5.2/)]

2022-05-03 Thread Phil Hudson
Thanks again Ihor!

On Tue, 3 May 2022 at 04:44, Ihor Radchenko  wrote:
>
> Phil Hudson  writes:
>
> > Function org-compile-prefix-format in file org-agenda.el (line 6917 in
> > Org 9.5.2) does not properly document parameter `key'.
>
> Thanks! Fixed on main via 5d3173cb0.
>
> Best,
> Ihor



Re: org-agenda-filter-by-tag doco

2022-05-08 Thread Phil Hudson
Fair enough. I follow your reasoning and it seems sound. Please close.

On Sun, 8 May 2022 at 14:07, Ihor Radchenko  wrote:
>
> Phil Hudson  writes:
>
> > I'd like to expand the docstring of command `org-agenda-filter-by-tag`
> > to document the Elisp equivalent of interactive prefix arguments. By
> > trial and error and guesswork I determined that I could emulate `C-u
> > C-u` by passing `'(16)` as the second argument
> > (`strip-or-accumulate`). I'd like to add text explaining this,
> > generalized to all prefix combinations.
>
> I do not think that it is a good idea. There is not much point
> explaining basic Emacs concepts discussed in Emacs/Elisp manual in every
> docstring of functions making use of universal arguments.
>
> Note that C-u gets automatically highlighted when you view the function
> docstring. Clicking on it brings you to the docstring for universal
> argument, which, in turn, also contains a link to the manual page.
>
> I think it is good enough.
>
> Best,
> Ihor



Re: [PATCH] Re: [BUG] org-element-map doco should refer to org-element-parse-buffer [9.5.2 (9.5.2-gfbff08 @ /home/phil/.emacs.d/elpa/org-9.5.2/)]

2022-05-14 Thread Phil Hudson
Thanks so much, Ihor.

On Sat, 14 May 2022 at 06:08, Ihor Radchenko  wrote:
>
> Phil Hudson  writes:
>
> > Thanks Ihor, that's great!
> >
> > One tiny nit-pick: I think "e.g." is deprecated in favor of the
> > explicit literal "for example". My source for this is (info "(elisp)
> > Documentation Tips").
>
> Fair point, though searching across org-element.el reveals that e.g. is
> used in many places. I do not see it as too much of a big deal. Will
> just update the patch here.
>
> > Also, just spotted what I think is a pre-existing typo, "objects
> > types", which I think should probably be just "object types". Might as
> > well fix that while we're at it.
>
> Fixed.
>
> Applied the new version of the patch onto main as 3996ea99a.
>
> Best,
> Ihor



RFE: Capture: property prompt: default completion

2020-09-12 Thread Phil Hudson
I'd like us to add the ability to provide a default completion value
for a property prompt in a capture template, as already exists for a
non-property prompt.

So where at the moment we can have:

%^{prompt|default|completion2|completion3|...}

I want, by analogy:

%^{prop|default}p

with the remaining completions provided by the #+prop_ALL in-buffer
setting, and with the implied constraint that "default" is a member of
that set.



Re: RFE: Capture: property prompt: default completion

2020-09-13 Thread Phil Hudson
On Sat, 12 Sep 2020 at 19:20, Phil Hudson  wrote:
>
> I'd like us to add the ability to provide a default completion value
> for a property prompt in a capture template, as already exists for a
> non-property prompt.
>
> So where at the moment we can have:
>
> %^{prompt|default|completion2|completion3|...}
>
> I want, by analogy:
>
> %^{prop|default}p
>
> with the remaining completions provided by the #+prop_ALL in-buffer
> setting, and with the implied constraint that "default" is a member of
> that set.

I'm going to take silence for consent, then. Patch attached.
diff --git a/doc/org-manual.org b/doc/org-manual.org
index 46498bd22..659e3ffaf 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -7854,7 +7854,8 @@ here:
 
 - =%^{PROP}p= ::
 
-  Prompt the user for a value for property {{{var(PROP)}}}.
+  Prompt the user for a value for property {{{var(PROP)}}}.  You may
+  specify a default value with =%^{PROP|default}=.
 
 - =%^{PROMPT}= ::
 
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index d9c8472b9..de2e19a8b 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -331,8 +331,10 @@ be replaced with content and expanded:
   %^C Interactive selection of which kill or clip to use.
   %^L Like %^C, but insert as link.
   %^{prop}p   Prompt the user for a value for property `prop'.
+  A default value can be specified like this:
+  %^{prop|default}p.
   %^{prompt}  Prompt the user for a string and replace this sequence with it.
-  A default value and a completion table ca be specified like this:
+  A default value and a completion table can be specified like this:
   %^{prompt|default|completion2|completion3|...}.
   %?  After completing the template, position cursor here.
   %\\1 ... %\\N Insert the text entered at the nth %^{prompt}, where N
@@ -1782,7 +1784,8 @@ The template may still contain \"%?\" for cursor positioning."
 	   (setq l (org-up-heading-safe)))
 	 (if l (point-marker)
 	   (point-min-marker)))
-			(value (org-read-property-value prompt pom)))
+			(value
+			 (org-read-property-value prompt pom default)))
 		   (org-set-property prompt value)))
 		((or "t" "T" "u" "U")
 		 ;; These are the date/time related ones.
diff --git a/lisp/org.el b/lisp/org.el
index 3264694aa..4077530f1 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -13300,11 +13300,12 @@ This is computed according to `org-property-set-functions-alist'."
   (or (cdr (assoc property org-property-set-functions-alist))
   'org-completing-read))
 
-(defun org-read-property-value (property &optional pom)
+(defun org-read-property-value (property &optional pom default)
   "Read value for PROPERTY, as a string.
 When optional argument POM is non-nil, completion uses additional
 information, i.e., allowed or existing values at point or marker
-POM."
+POM.
+Optional argument DEFAULT provides a default value for PROPERTY."
   (let* ((completion-ignore-case t)
 	 (allowed
 	  (or (org-property-get-allowed-values nil property 'table)
@@ -13320,7 +13321,8 @@ POM."
  (if allowed
 	 (funcall set-function
 		  prompt allowed nil
-		  (not (get-text-property 0 'org-unrestricted (caar allowed
+		  (not (get-text-property 0 'org-unrestricted (caar allowed)))
+		  default nil default)
(let ((all (mapcar #'list
 			  (append (org-property-values property)
   (and pom


[PATCH] Re: RFE: Capture: property prompt: default completion

2020-09-14 Thread Phil Hudson
Sorry, should have changed the subject. Re-sending patch (no alterations).

On Mon, 14 Sep 2020 at 00:32, Phil Hudson  wrote:
>
> On Sat, 12 Sep 2020 at 19:20, Phil Hudson  wrote:
> >
> > I'd like us to add the ability to provide a default completion value
> > for a property prompt in a capture template, as already exists for a
> > non-property prompt.
> >
> > So where at the moment we can have:
> >
> > %^{prompt|default|completion2|completion3|...}
> >
> > I want, by analogy:
> >
> > %^{prop|default}p
> >
> > with the remaining completions provided by the #+prop_ALL in-buffer
> > setting, and with the implied constraint that "default" is a member of
> > that set.
diff --git a/doc/org-manual.org b/doc/org-manual.org
index 46498bd22..659e3ffaf 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -7854,7 +7854,8 @@ here:
 
 - =%^{PROP}p= ::
 
-  Prompt the user for a value for property {{{var(PROP)}}}.
+  Prompt the user for a value for property {{{var(PROP)}}}.  You may
+  specify a default value with =%^{PROP|default}=.
 
 - =%^{PROMPT}= ::
 
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index d9c8472b9..de2e19a8b 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -331,8 +331,10 @@ be replaced with content and expanded:
   %^C Interactive selection of which kill or clip to use.
   %^L Like %^C, but insert as link.
   %^{prop}p   Prompt the user for a value for property `prop'.
+  A default value can be specified like this:
+  %^{prop|default}p.
   %^{prompt}  Prompt the user for a string and replace this sequence with it.
-  A default value and a completion table ca be specified like this:
+  A default value and a completion table can be specified like this:
   %^{prompt|default|completion2|completion3|...}.
   %?  After completing the template, position cursor here.
   %\\1 ... %\\N Insert the text entered at the nth %^{prompt}, where N
@@ -1782,7 +1784,8 @@ The template may still contain \"%?\" for cursor positioning."
 	   (setq l (org-up-heading-safe)))
 	 (if l (point-marker)
 	   (point-min-marker)))
-			(value (org-read-property-value prompt pom)))
+			(value
+			 (org-read-property-value prompt pom default)))
 		   (org-set-property prompt value)))
 		((or "t" "T" "u" "U")
 		 ;; These are the date/time related ones.
diff --git a/lisp/org.el b/lisp/org.el
index 3264694aa..4077530f1 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -13300,11 +13300,12 @@ This is computed according to `org-property-set-functions-alist'."
   (or (cdr (assoc property org-property-set-functions-alist))
   'org-completing-read))
 
-(defun org-read-property-value (property &optional pom)
+(defun org-read-property-value (property &optional pom default)
   "Read value for PROPERTY, as a string.
 When optional argument POM is non-nil, completion uses additional
 information, i.e., allowed or existing values at point or marker
-POM."
+POM.
+Optional argument DEFAULT provides a default value for PROPERTY."
   (let* ((completion-ignore-case t)
 	 (allowed
 	  (or (org-property-get-allowed-values nil property 'table)
@@ -13320,7 +13321,8 @@ POM."
  (if allowed
 	 (funcall set-function
 		  prompt allowed nil
-		  (not (get-text-property 0 'org-unrestricted (caar allowed
+		  (not (get-text-property 0 'org-unrestricted (caar allowed)))
+		  default nil default)
(let ((all (mapcar #'list
 			  (append (org-property-values property)
   (and pom


Re: [PATCH] Re: RFE: Capture: property prompt: default completion

2020-09-23 Thread Phil Hudson
On Wed, 23 Sep 2020 at 08:21, Bastien  wrote:
> It looks good to me.
>
> Can you update your patch by adding a proper commit message?

Herewith. Hope I've got it right. I've signed the FSF papers.
org-capture.el: Give a default value when prompting for a property

* lisp/org-capture.el (org-capture-templates, org-capture-fill-template):
  Enable declaring a default value when prompting for a property during
  capture.

* lisp/org.el (org-read-property-value): Add parameter DEFAULT for an
  initial/default/suggested property value.

* doc/org-manual.org: Document declaring a default value for a prompted
  property during capture.

diff --git a/doc/org-manual.org b/doc/org-manual.org
index 46498bd22..659e3ffaf 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -7854,7 +7854,8 @@ here:
 
 - =%^{PROP}p= ::
 
-  Prompt the user for a value for property {{{var(PROP)}}}.
+  Prompt the user for a value for property {{{var(PROP)}}}.  You may
+  specify a default value with =%^{PROP|default}=.
 
 - =%^{PROMPT}= ::
 
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index d9c8472b9..de2e19a8b 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -331,8 +331,10 @@ be replaced with content and expanded:
   %^C Interactive selection of which kill or clip to use.
   %^L Like %^C, but insert as link.
   %^{prop}p   Prompt the user for a value for property `prop'.
+  A default value can be specified like this:
+  %^{prop|default}p.
   %^{prompt}  Prompt the user for a string and replace this sequence with it.
-  A default value and a completion table ca be specified like this:
+  A default value and a completion table can be specified like this:
   %^{prompt|default|completion2|completion3|...}.
   %?  After completing the template, position cursor here.
   %\\1 ... %\\N Insert the text entered at the nth %^{prompt}, where N
@@ -1782,7 +1784,8 @@ The template may still contain \"%?\" for cursor positioning."
 	   (setq l (org-up-heading-safe)))
 	 (if l (point-marker)
 	   (point-min-marker)))
-			(value (org-read-property-value prompt pom)))
+			(value
+			 (org-read-property-value prompt pom default)))
 		   (org-set-property prompt value)))
 		((or "t" "T" "u" "U")
 		 ;; These are the date/time related ones.
diff --git a/lisp/org.el b/lisp/org.el
index 3264694aa..4077530f1 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -13300,11 +13300,12 @@ This is computed according to `org-property-set-functions-alist'."
   (or (cdr (assoc property org-property-set-functions-alist))
   'org-completing-read))
 
-(defun org-read-property-value (property &optional pom)
+(defun org-read-property-value (property &optional pom default)
   "Read value for PROPERTY, as a string.
 When optional argument POM is non-nil, completion uses additional
 information, i.e., allowed or existing values at point or marker
-POM."
+POM.
+Optional argument DEFAULT provides a default value for PROPERTY."
   (let* ((completion-ignore-case t)
 	 (allowed
 	  (or (org-property-get-allowed-values nil property 'table)
@@ -13320,7 +13321,8 @@ POM."
  (if allowed
 	 (funcall set-function
 		  prompt allowed nil
-		  (not (get-text-property 0 'org-unrestricted (caar allowed
+		  (not (get-text-property 0 'org-unrestricted (caar allowed)))
+		  default nil default)
(let ((all (mapcar #'list
 			  (append (org-property-values property)
   (and pom


Re: [PATCH] Re: RFE: Capture: property prompt: default completion

2020-09-23 Thread Phil Hudson
On Wed, 23 Sep 2020 at 12:15, Bastien  wrote:
>
> Sorry, I should have mentioned this, but the patch does not apply on
> master.  If you have time to merge recent changes and reformat it, I
> can apply it right afterwarsds, otherwise I will try to do it myself
> later this week.

OK, herewith.
org-capture.el: Give a default value when prompting for a property

* lisp/org-capture.el (org-capture-templates, org-capture-fill-template):
  Enable declaring a default value when prompting for a property during
  capture.

* lisp/org.el (org-read-property-value): Add parameter DEFAULT for an
  initial/default/suggested property value.

* doc/org-manual.org: Document declaring a default value for a prompted
  property during capture.

diff --git a/doc/org-manual.org b/doc/org-manual.org
index 043f2ddd1..e7d25b90e 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -7858,7 +7858,8 @@ here:
 
 - =%^{PROP}p= ::
 
-  Prompt the user for a value for property {{{var(PROP)}}}.
+  Prompt the user for a value for property {{{var(PROP)}}}.  You may
+  specify a default value with =%^{PROP|default}=.
 
 - =%^{PROMPT}= ::
 
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index 2ef55cd5c..9ea0e9e73 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -332,6 +332,8 @@ be replaced with content and expanded:
   %^C Interactive selection of which kill or clip to use.
   %^L Like %^C, but insert as link.
   %^{prop}p   Prompt the user for a value for property `prop'.
+  A default value can be specified like this:
+  %^{prop|default}p.
   %^{prompt}  Prompt the user for a string and replace this sequence with it.
   A default value and a completion table can be specified like this:
   %^{prompt|default|completion2|completion3|...}.
@@ -1787,7 +1789,8 @@ The template may still contain \"%?\" for cursor positioning."
 	   (setq l (org-up-heading-safe)))
 	 (if l (point-marker)
 	   (point-min-marker)))
-			(value (org-read-property-value prompt pom)))
+			(value
+			 (org-read-property-value prompt pom default))) 
 		   (org-set-property prompt value)))
 		((or "t" "T" "u" "U")
 		 ;; These are the date/time related ones.
diff --git a/lisp/org.el b/lisp/org.el
index d45a789f2..ec336c723 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -13300,11 +13300,12 @@ This is computed according to `org-property-set-functions-alist'."
   (or (cdr (assoc property org-property-set-functions-alist))
   'org-completing-read))
 
-(defun org-read-property-value (property &optional pom)
+(defun org-read-property-value (property &optional pom default)
   "Read value for PROPERTY, as a string.
 When optional argument POM is non-nil, completion uses additional
 information, i.e., allowed or existing values at point or marker
-POM."
+POM.
+Optional argument DEFAULT provides a default value for PROPERTY."
   (let* ((completion-ignore-case t)
 	 (allowed
 	  (or (org-property-get-allowed-values nil property 'table)
@@ -13320,7 +13321,8 @@ POM."
  (if allowed
 	 (funcall set-function
 		  prompt allowed nil
-		  (not (get-text-property 0 'org-unrestricted (caar allowed
+		  (not (get-text-property 0 'org-unrestricted (caar allowed)))
+		  default nil default)
(let ((all (mapcar #'list
 			  (append (org-property-values property)
   (and pom