On Sun, Oct 17 2010, Carsten Dominik wrote: > This is bad. As this problem does not exist in Emacs 23 and I have not > changed anything in this part of the code, maybe a bug report to EMacs is > in order. Will you file one, with the remark that this works fine in Emacs > 23?
I'm not sure that will work fine. Well, I've started to debug this, any help appreciated. I'm adding emacs-devel in Cc since this is clearly a bug in Emacs 24. For people not reading orgmode list, the problem is that when org-startup-indented is set to t, the yanking does not yank the correct text. To test, this is what I've got: * TODO Blalaundo I copy "undo" with C-space on `u', C-e, M-w. Then I press C-y (org-yank). Everything is fine, except that as that moment: Debugger entered--returning value: "* TODO Blala" x-get-selection(PRIMARY UTF8_STRING) * byte-code("\303 @\"\303\207" [type request-type text x-get-selection] 3) * x-selection-value-internal(PRIMARY) * x-selection-value() * current-kill(0) * (and kill-ring (current-kill 0)) * (or txt (and kill-ring (current-kill 0)) "") * (let* ((kill (or txt (and kill-ring (current-kill 0)) "")) (start-level (and kill (string-match (concat "\\`\\([ \n ]*?\n\\)?\\(" org-outline-regexp "\\)") kill) (- (match-end 2) (match-beginning 2) 1))) (re (concat "^" org-outline-regexp)) (start (1+ (or (match-beginning 2) -1)))) (if (not start-level) (progn nil) (catch (quote exit) (while (setq start (string-match re kill (1+ start))) (when (< (- (match-end 0) (match-beginning 0) 1) start-level) (throw (quote exit) nil))) t))) * org-kill-is-subtree-p() * (and (org-kill-is-subtree-p) (or (bolp) (and (looking-at "[ ]*$") (string-match "\\`\\*+\\'" (buffer-substring (point-at-bol) (point)))))) * (let ((subtreep (and (org-kill-is-subtree-p) (or (bolp) (and (looking-at "[ ]*$") (string-match "\\`\\*+\\'" (buffer-substring ... ...)))))) swallowp) (cond ((and subtreep org-yank-folded-subtrees) (let ((beg (point)) end) (if (and subtreep org-yank-adjusted-subtrees) (org-paste-subtree nil nil (quote for-yank)) (call-interactively command)) (setq end (point)) (goto-char beg) (when (and (bolp) subtreep (not (setq swallowp ...))) (or (looking-at outline-regexp) (re-search-forward (concat "^" outline-regexp) end t)) (while (and (< ... end) (looking-at outline-regexp)) (hide-subtree) (org-cycle-show-empty-lines (quote folded)) (condition-case nil (outline-forward-same-level 1) (error ...)))) (when swallowp (message "Inserted text not folded because that would swallow text")) (goto-char end) (skip-chars-forward " \n ") (beginning-of-line 1) (push-mark beg (quote nomsg)))) ((and subtreep org-yank-adjusted-subtrees) (let ((beg (point-at-bol))) (org-paste-subtree nil nil (quote for-yank)) (push-mark beg (quote nomsg)))) (t (call-interactively command)))) * (if arg (call-interactively command) (let ((subtreep (and (org-kill-is-subtree-p) (or (bolp) (and (looking-at "[ ]*$") (string-match "\\`\\*+\\'" ...))))) swallowp) (cond ((and subtreep org-yank-folded-subtrees) (let ((beg (point)) end) (if (and subtreep org-yank-adjusted-subtrees) (org-paste-subtree nil nil (quote for-yank)) (call-interactively command)) (setq end (point)) (goto-char beg) (when (and (bolp) subtreep (not ...)) (or (looking-at outline-regexp) (re-search-forward ... end t)) (while (and ... ...) (hide-subtree) (org-cycle-show-empty-lines ...) (condition-case nil ... ...))) (when swallowp (message "Inserted text not folded because that would swallow text")) (goto-char end) (skip-chars-forward " \n ") (beginning-of-line 1) (push-mark beg (quote nomsg)))) ((and subtreep org-yank-adjusted-subtrees) (let ((beg (point-at-bol))) (org-paste-subtree nil nil (quote for-yank)) (push-mark beg (quote nomsg)))) (t (call-interactively command))))) * org-yank-generic(yank nil) * org-yank(nil) call-interactively(org-yank nil nil) No clue why, but the PRIMARY selection seems to return the start of the line. I've done this then: * TODO Blalaundo I go on `u', press C-space, then C-e. The M-; and execute (x-selection-value), which returns: "undo". So far so good. But if I go on `u', press C-space, then C-e, then M-w, then M-; to execute (x-selection-value), it returns "* TODO Blala". So it seems that when the org-startup-indented is set to t, M-w goes crazy and set the primary selection wrongly. Hint? -- Julien Danjou // ᐰ <jul...@danjou.info> http://julien.danjou.info _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode