emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [BUG] Org-9.6.x org templates hang on 'clipboard pasted as level 2 s


From: Carlo Tambuatco
Subject: Re: [BUG] Org-9.6.x org templates hang on 'clipboard pasted as level 2 subtree'...
Date: Tue, 6 Jun 2023 11:03:45 -0400

Hey Ihor, I recently upgraded my emacs to emacs@29 via homebrew, and I know this is an 
old thread, but now that my new emacs version comes with org-9.6.6, I am getting the same 
issues as I detailed in this thread with my org capture templates. I tried to do a reproduce 
with emacs -q but the error does not reproduce in those conditions, so it might be an issue 
with org mode interacting with some of my other packages installed. 

I will include a list of emacs packages I have installed, and my org-init.el file. Maybe you 
could see if anything jumps out at you that is causing this weird behavior. 

On Mon, Apr 17, 2023 at 6:40 AM Carlo Tambuatco <oraclmaster@gmail.com> wrote:
I've decided to delete the org-9.6 folder entirely and go with the 
built-in org-9.5.5 that comes with my emacs distribution, emacs-28.2 (9.0).

Maybe for some reason newer versions of org are just incompatible with 
my version of emacs 28.2. Maybe the version of emacs you're using is 
newer or somehow more compatible with these bleeding edge development 
versions of org-mode, but I suppose when I upgrade my emacs the version 
of org that comes with it (9.6, I suppose) will just work out of the box. 

At any rate, I can't spend any more time and energy on this. I'll stick to 
what works. Thanks for the help.

On Sun, Apr 16, 2023 at 8:09 AM Ihor Radchenko <yantar92@posteo.net> wrote:
Carlo Tambuatco <oraclmaster@gmail.com> writes:

> I restarted emacs with org 9.6.3 and reloaded it uncompiled and
> did M-x toggle-debug-on-error to turn on backtrace on error.
>
> I have also attached a copy of what my org-capture-templates
> variable looks like.
>
> Comparing these backtraces to my org-capture-templates,
> you can see that only some of them fail (the ones corresponding to
> 'd', 'e', 'r', 'Rr', 'Rg', and 'Cc')
>
> They all worked up until Org 9.6. They still work under Org 9.5.5, so
> I don't know what changed.

I tried your templates locally and I am not seeing any problem.

May you try to reproduce starting from emacs -Q?
Or, alternatively, try to use the following version of Org capture, use
C-g to exit, and report the (hopefully) more detailed backtrace.

(defun org-capture (&optional goto keys)
  "Capture something.
\\<org-capture-mode-map>
This will let you select a template from `org-capture-templates', and
then file the newly captured information.  The text is immediately
inserted at the target location, and an indirect buffer is shown where
you can edit it.  Pressing `\\[org-capture-finalize]' brings you back to the \
previous
state of Emacs, so that you can continue your work.

When called interactively with a `\\[universal-argument]' prefix argument \
GOTO, don't
capture anything, just go to the file/headline where the selected
template stores its notes.

With a `\\[universal-argument] \\[universal-argument]' prefix argument, go to \
the last note stored.

When called with a `C-0' (zero) prefix, insert a template at point.

When called with a `C-1' (one) prefix, force prompting for a date when
a datetree entry is made.

ELisp programs can set KEYS to a string associated with a template
in `org-capture-templates'.  In this case, interactive selection
will be bypassed.

If `org-capture-use-agenda-date' is non-nil, capturing from the
agenda will use the date at point as the default date.  Then, a
`C-1' prefix will tell the capture process to use the HH:MM time
of the day at point (if any) or the current HH:MM time."
  (interactive "P")
  (when (and org-capture-use-agenda-date
             (eq major-mode 'org-agenda-mode))
    (setq org-overriding-default-time
          (org-get-cursor-date (equal goto 1))))
  (cond
   ((equal goto '(4))  (org-capture-goto-target keys))
   ((equal goto '(16)) (org-capture-goto-last-stored))
   (t
    (let* ((orig-buf (current-buffer))
           (annotation (if (and (boundp 'org-capture-link-is-already-stored)
                                org-capture-link-is-already-stored)
                           (plist-get org-store-link-plist :annotation)
                         (ignore-errors (org-store-link 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)))))
      (when (stringp initial)
        (remove-text-properties 0 (length initial) '(read-only t) initial))
      (when (stringp annotation)
        (remove-text-properties 0 (length annotation)
                                '(read-only t) annotation))
      (cond
       ((equal entry "C")
        (customize-variable '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 '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 (and (equal goto 0) 'here))
        (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-message-string error))))

        (setq org-capture-clock-keep (org-capture-get :clock-keep))
            (org-capture-place-template
             (eq (car (org-capture-get :target)) 'function))
        (when (and (derived-mode-p 'org-mode) (org-capture-get :clock-in))
          (condition-case nil
              (progn
                (when (org-clock-is-active)
                  (org-capture-put :interrupted-clock
                                   (copy-marker org-clock-marker)))
                (org-clock-in)
                (setq-local org-capture-clock-was-started
                            (copy-marker org-clock-marker)))
            (error "Could not start the clock in this capture buffer")))
        (when (org-capture-get :immediate-finish)
          (org-capture-finalize))))))))

--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

Attachment: emacs-packages.txt
Description: Text document

Attachment: org-init.el
Description: Binary data


reply via email to

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