emacs-orgmode
[Top][All Lists]
Advanced

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

[O] bug#23917: Please consider making Bug #23917 a blocker for 25.1 (was


From: Eric S Fraga
Subject: [O] bug#23917: Please consider making Bug #23917 a blocker for 25.1 (was Re: org-capture: Capture template ‘g’: Match data clobbered by buffer modification hooks)
Date: Mon, 18 Jul 2016 17:59:47 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.94 (gnu/linux)

On Monday, 18 Jul 2016 at 14:50, Kaushal Modi wrote:
> @Eric Would it be possible for you to provide a recipe to recreate
> this issue from an emacs -Q session?

With emacs-snapshot (aka 25.0.95.1), and the following emacs-minimal.el
file:

--8<---------------cut here---------------start------------->8---
(add-to-list 'load-path "~/git/org-mode/lisp")
(require 'org)
(setq org-capture-templates '(("t" "todo" entry (file+datetree 
"/tmp/tasks.org") "* TODO %^{Task} %^G\nSCHEDULED: %t\n%i%?")))
--8<---------------cut here---------------end--------------->8---

the following sequence:

--8<---------------cut here---------------start------------->8---
emacs -Q -l emacs-minimal.el
M-x org-capture RET t this is a test RET testing RET
--8<---------------cut here---------------end--------------->8---

gives

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (error "Capture template ‘t’: Match data 
clobbered by buffer modification hooks")
  signal(error ("Capture template ‘t’: Match data clobbered by buffer 
modification hooks"))
  error("Capture template `%s': %s" "t" "Match data clobbered by buffer 
modification hooks")
  (condition-case error (org-capture-place-template (equal (car 
(org-capture-get :target)) (quote function))) ((error quit) (if (and 
(buffer-base-buffer (current-buffer)) (string-match "\\`CAPTURE-" 
(buffer-name))) (kill-buffer (current-buffer))) (set-window-configuration 
(org-capture-get :return-to-wconf)) (error "Capture template `%s': %s" 
(org-capture-get :key) (nth 1 error))))
  (if (equal goto 0) (org-capture-insert-template-here) (condition-case error 
(org-capture-place-template (equal (car (org-capture-get :target)) (quote 
function))) ((error quit) (if (and (buffer-base-buffer (current-buffer)) 
(string-match "\\`CAPTURE-" (buffer-name))) (kill-buffer (current-buffer))) 
(set-window-configuration (org-capture-get :return-to-wconf)) (error "Capture 
template `%s': %s" (org-capture-get :key) (nth 1 error)))) (if (and 
(derived-mode-p (quote org-mode)) (org-capture-get :clock-in)) (condition-case 
nil (progn (if (org-clock-is-active) (org-capture-put :interrupted-clock 
(copy-marker org-clock-marker))) (org-clock-in) (set (make-local-variable 
(quote org-capture-clock-was-started)) t)) (error "Could not start the clock in 
this capture buffer"))) (if (org-capture-get :immediate-finish) 
(org-capture-finalize)))
  (cond ((equal entry "C") (customize-variable (quote org-capture-templates))) 
((equal entry "q") (user-error "Abort")) (t (org-capture-set-plist entry) 
(org-capture-get-template) (org-capture-put :original-buffer orig-buf 
:original-file (or (buffer-file-name orig-buf) (and (featurep (quote dired)) 
(car (rassq orig-buf dired-buffers)))) :original-file-nondirectory (and 
(buffer-file-name orig-buf) (file-name-nondirectory (buffer-file-name 
orig-buf))) :annotation annotation :initial initial :return-to-wconf 
(current-window-configuration) :default-time (or org-overriding-default-time 
(org-current-time))) (org-capture-set-target-location) (condition-case error 
(org-capture-put :template (org-capture-fill-template)) ((error quit) (if 
(get-buffer "*Capture*") (kill-buffer "*Capture*")) (error "Capture abort: %s" 
error))) (setq org-capture-clock-keep (org-capture-get :clock-keep)) (if (equal 
goto 0) (org-capture-insert-template-here) (condition-case error 
(org-capture-place-template (equal (car (org-capture-get :target)) (quote 
function))) ((error quit) (if (and (buffer-base-buffer ...) (string-match 
"\\`CAPTURE-" ...)) (kill-buffer (current-buffer))) (set-window-configuration 
(org-capture-get :return-to-wconf)) (error "Capture template `%s': %s" 
(org-capture-get :key) (nth 1 error)))) (if (and (derived-mode-p (quote 
org-mode)) (org-capture-get :clock-in)) (condition-case nil (progn (if 
(org-clock-is-active) (org-capture-put :interrupted-clock ...)) (org-clock-in) 
(set (make-local-variable ...) t)) (error "Could not start the clock in this 
capture buffer"))) (if (org-capture-get :immediate-finish) 
(org-capture-finalize)))))
  (let* ((orig-buf (current-buffer)) (annotation (if (and (boundp (quote 
org-capture-link-is-already-stored)) org-capture-link-is-already-stored) 
(plist-get org-store-link-plist :annotation) (condition-case nil (progn 
(org-store-link nil)) (error nil)))) (entry (or org-capture-entry 
(org-capture-select-template keys))) initial) (setq initial (or 
org-capture-initial (and (org-region-active-p) (buffer-substring (point) 
(mark))))) (if (stringp initial) (progn (remove-text-properties 0 (length 
initial) (quote (read-only t)) initial))) (if (stringp annotation) (progn 
(remove-text-properties 0 (length annotation) (quote (read-only t)) 
annotation))) (cond ((equal entry "C") (customize-variable (quote 
org-capture-templates))) ((equal entry "q") (user-error "Abort")) (t 
(org-capture-set-plist entry) (org-capture-get-template) (org-capture-put 
:original-buffer orig-buf :original-file (or (buffer-file-name orig-buf) (and 
(featurep (quote dired)) (car (rassq orig-buf dired-buffers)))) 
:original-file-nondirectory (and (buffer-file-name orig-buf) 
(file-name-nondirectory (buffer-file-name orig-buf))) :annotation annotation 
:initial initial :return-to-wconf (current-window-configuration) :default-time 
(or org-overriding-default-time (org-current-time))) 
(org-capture-set-target-location) (condition-case error (org-capture-put 
:template (org-capture-fill-template)) ((error quit) (if (get-buffer 
"*Capture*") (kill-buffer "*Capture*")) (error "Capture abort: %s" error))) 
(setq org-capture-clock-keep (org-capture-get :clock-keep)) (if (equal goto 0) 
(org-capture-insert-template-here) (condition-case error 
(org-capture-place-template (equal (car ...) (quote function))) ((error quit) 
(if (and ... ...) (kill-buffer ...)) (set-window-configuration (org-capture-get 
:return-to-wconf)) (error "Capture template `%s': %s" (org-capture-get :key) 
(nth 1 error)))) (if (and (derived-mode-p (quote org-mode)) (org-capture-get 
:clock-in)) (condition-case nil (progn (if ... ...) (org-clock-in) (set ... t)) 
(error "Could not start the clock in this capture buffer"))) (if 
(org-capture-get :immediate-finish) (org-capture-finalize))))))
  (cond ((equal goto (quote (4))) (org-capture-goto-target)) ((equal goto 
(quote (16))) (org-capture-goto-last-stored)) (t (let* ((orig-buf 
(current-buffer)) (annotation (if (and (boundp ...) 
org-capture-link-is-already-stored) (plist-get org-store-link-plist 
:annotation) (condition-case nil (progn ...) (error nil)))) (entry (or 
org-capture-entry (org-capture-select-template keys))) initial) (setq initial 
(or org-capture-initial (and (org-region-active-p) (buffer-substring (point) 
(mark))))) (if (stringp initial) (progn (remove-text-properties 0 (length 
initial) (quote (read-only t)) initial))) (if (stringp annotation) (progn 
(remove-text-properties 0 (length annotation) (quote (read-only t)) 
annotation))) (cond ((equal entry "C") (customize-variable (quote 
org-capture-templates))) ((equal entry "q") (user-error "Abort")) (t 
(org-capture-set-plist entry) (org-capture-get-template) (org-capture-put 
:original-buffer orig-buf :original-file (or (buffer-file-name orig-buf) (and 
... ...)) :original-file-nondirectory (and (buffer-file-name orig-buf) 
(file-name-nondirectory ...)) :annotation annotation :initial initial 
:return-to-wconf (current-window-configuration) :default-time (or 
org-overriding-default-time (org-current-time))) 
(org-capture-set-target-location) (condition-case error (org-capture-put 
:template (org-capture-fill-template)) ((error quit) (if ... ...) (error 
"Capture abort: %s" error))) (setq org-capture-clock-keep (org-capture-get 
:clock-keep)) (if (equal goto 0) (org-capture-insert-template-here) 
(condition-case error (org-capture-place-template ...) (... ... ... ...)) (if 
(and ... ...) (condition-case nil ... ...)) (if (org-capture-get 
:immediate-finish) (org-capture-finalize))))))))
  org-capture(nil)
  funcall-interactively(org-capture nil)
  call-interactively(org-capture record nil)
  command-execute(org-capture record)
  execute-extended-command(nil "org-capture" "org-capture")
  funcall-interactively(execute-extended-command nil "org-capture" 
"org-capture")
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)
--8<---------------cut here---------------end--------------->8---

and the /tmp/tasks.org file looks like this:


--8<---------------cut here---------------start------------->8---
* 2016
** 2016-07 July
*** 2016-07-18 Monday
**** TODO this is a test                                            :testing:
     SCHEDULED: <2016-07-18 Mon>
   %?
--8<---------------cut here---------------end--------------->8---

The file did not exist before org-capture was invoked so we can see that
the majority of the template was invoked.

HTH,
eric

-- 
: Eric S Fraga (0xFFFCF67D), Emacs 25.0.94.1, Org release_8.3.4-1049-g481709





reply via email to

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