From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sebastien Vauban Subject: Re: [RFC] Change property drawer syntax Date: Thu, 27 Nov 2014 10:24:19 +0100 Message-ID: <867fyh9et8.fsf@example.com> References: <87oatek909.fsf@nicolasgoaziou.fr> <86zjbwlm31.fsf@example.com> <86r3x8lllg.fsf@example.com> <86389659lx.fsf@example.com> <87ppc9o7nz.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hello Nicolas, Nicolas Goaziou wrote: > Sebastien Vauban 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")))))))))))) The above function is perfect for her task! No diff at all [1] when applied on all my files from org-agenda-files (~ 45). Best regards, Seb [1] Except the localization of the property drawer, of course. -- Sebastien Vauban