emacs-orgmode
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]