emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [RFC] Change property drawer syntax


From: Nicolas Goaziou
Subject: Re: [O] [RFC] Change property drawer syntax
Date: Thu, 27 Nov 2014 00:37:20 +0100


Sebastien Vauban <sva-news-D0wtAvR13HarG/address@hidden>
writes:

>> ** Sectionnement
>>
>> Exemple de section avec un titre court pour LaTeX :
>>
>> #+begin_src org
>> ,* Ceci est un titre de section assez long
>>   :PROPERTIES:
>>   :ALT_TITLE: Ceci est un titre court
>>   :END:
>> #+end_src
>>
>> Upon execution of the repair function, that entry will be wrongly
>> converted.
>
> Do you experience the same problem as me?

I do. I even sent you an updated revision of the repair function a few
days ago, but, apparently, it never reached its destination. This is not
the first time. Here it is again

  (defun org-repair-property-drawers ()
    "Fix properties drawers in current buffer.
  Ignore non Org buffers."
    (when (eq major-mode 'org-mode)
      (org-with-wide-buffer
       (goto-char (point-min))
       (let ((case-fold-search t)
             (inline-re (and (featurep 'org-inlinetask)
                             (concat (org-inlinetask-outline-regexp)
                                     "END[ \t]*$"))))
         (org-map-entries
          (lambda ()
            (unless (and inline-re (org-looking-at-p inline-re))
              (save-excursion
                (let ((end (save-excursion (outline-next-heading) (point))))
                  (forward-line)
                  (when (org-looking-at-p org-planning-line-re) (forward-line))
                  (when (and (< (point) end)
                             (not (org-looking-at-p org-property-drawer-re))
                             (save-excursion
                               (and (re-search-forward org-property-drawer-re 
end t)
                                    (eq (org-element-type
                                         (save-match-data 
(org-element-at-point)))
                                        'drawer))))
                    (insert (delete-and-extract-region
                             (match-beginning 0)
                             (min (1+ (match-end 0)) end)))
                    (unless (bolp) (insert "\n"))))))))))))

Regards,

-- 
Nicolas Goaziou




reply via email to

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