[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] [BUG] in org-property-drawer-re?
From: |
Thorsten Jolitz |
Subject: |
[O] [BUG] in org-property-drawer-re? |
Date: |
Tue, 01 Oct 2013 19:50:03 +0200 |
User-agent: |
Gnus/5.130002 (Ma Gnus v0.2) Emacs/24.3 (gnu/linux) |
Hi List,
for the navi-mode keyword-search for complete property drawers I copied
,-----------------------
| org-property-drawer-re
`-----------------------
from org.el:
#+begin_src emacs-lisp
(concat "\\(" org-property-start-re "\\)[^\000]*\\("
org-property-end-re "\\)\n?")
#+end_src
#+results:
: \(^[ ]*:PROPERTIES:[ ]*$\)[^\\000]*\(^[ ]*:END:[ ]*$\)
: ?
A bit unreadable, but you get the message ... here is my hopefully equivalent
version:
,--------------------------------------------------------------
| (:propertydrawer
| . (concat "\\(^[\\s\\t]*:PROPERTIES:[\\s\\t]*$\\)[^\\000]*"
| "\\(^[\\s\\t]*:END:[\\s\\t]*$\\)\\n?"))
`--------------------------------------------------------------
But this did not match correctly in Bernt Hansens tutorial:
,--------------------------------------------------------------------------
| 43::PROPERTIES:
| ::CUSTOM_ID: Setup
| ::END:
| 131::PROPERTIES:
| ::CUSTOM_ID: OrgFiles
| ::END:
| 185::PROPERTIES:
| ::CUSTOM_ID: AgendaSetup
| ::END:
| :
| :Here is my current =org-agenda-files= setup.
| :#+begin_src emacs-lisp :tangle no
| : (setq org-agenda-files (quote ("~/git/org"
| : "~/git/org/client1"
| : "~/git/org/bzflag"
| : "~/git/client2")))
| :#+end_src
| :
| :#+begin_src emacs-lisp :tangle yes :exports none
| : ;; The following setting is different from the document so that you
| : ;; can override the document org-agenda-files by setting your
| : ;; org-agenda-files in the variable org-user-agenda-files
| : ;;
| : (if (boundp 'org-user-agenda-files)
| : (setq org-agenda-files org-user-agenda-files)
| : (setq org-agenda-files (quote ("~/git/org"
| : "~/git/org/client1"
| : "~/git/org/bzflag"
| : "~/git/client2"))))
| :
| :#+end_src
`--------------------------------------------------------------------------
I had to add two ? after the * and delete the final \n
,-------------------------------------------------------------
| (:propertydrawer
| . (concat "\\(^[\\s\\t]*:PROPERTIES:[\\s\\t]*$\\)[^\\000]*?"
| "\\(^[\\s\\t]*:END:[\\s\\t]*?$\\)"))
`-------------------------------------------------------------
to get the desired results:
,---------------------------------
| 43::PROPERTIES:
| ::CUSTOM_ID: Setup
| ::END:
| 131::PROPERTIES:
| ::CUSTOM_ID: OrgFiles
| ::END:
| 185::PROPERTIES:
| ::CUSTOM_ID: AgendaSetup
| ::END:
| 234::PROPERTIES:
| ::CUSTOM_ID: OrgFileStructure
| ::END:
`---------------------------------
A bug in the regexp?
PS
Can anybody explain this marvelous construct in the regexp:
,---------
| [^\\000]
`---------
I often pondered about how to achieve its effect with other means, since
I did not find it in the Emacs Lisp manual.
--
cheers,
Thorsten
- [O] [BUG] in org-property-drawer-re?,
Thorsten Jolitz <=