[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#23917: Please consider making Bug #23917 a blocker for 25.1 (was Re:
From: |
Eric S Fraga |
Subject: |
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
bug#23917: 25.0.95; commit 3a9d6296b35e5317c497674d5725eb52699bd3b8 causing org-capture to error out, N. Jackson, 2016/07/21
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), Kaushal Modi, 2016/07/18
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),
Eric S Fraga <=