1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Fix wrong behavior of 'outline-headers-as-kill' command (Bug#30209)

* outline.el (outline-headers-as-kill): Fix heading duplication.
This commit is contained in:
Dmitry Safronov 2018-01-22 12:19:00 +01:00 committed by Noam Postavsky
parent a8be860e17
commit fda58fbc24

View file

@ -1100,28 +1100,26 @@ convenient way to make a table of contents of the buffer."
(save-restriction
(narrow-to-region beg end)
(goto-char (point-min))
(let ((buffer (current-buffer))
start end)
(with-temp-buffer
(with-current-buffer buffer
;; Boundary condition: starting on heading:
(when (outline-on-heading-p)
(outline-back-to-heading)
(setq start (point)
end (progn (outline-end-of-heading)
(point)))
(insert-buffer-substring buffer start end)
(insert "\n\n")))
(let ((temp-buffer (current-buffer)))
(with-current-buffer buffer
(while (outline-next-heading)
(unless (outline-invisible-p)
(setq start (point)
end (progn (outline-end-of-heading) (point)))
(with-current-buffer temp-buffer
(insert-buffer-substring buffer start end)
(insert "\n\n"))))))
(kill-new (buffer-string)))))))
(let ((buffer (current-buffer)) start end)
(with-temp-buffer
(let ((temp-buffer (current-buffer)))
(with-current-buffer buffer
;; Boundary condition: starting on heading:
(when (outline-on-heading-p)
(outline-back-to-heading)
(setq start (point)
end (progn (outline-end-of-heading) (point)))
(with-current-buffer temp-buffer
(insert-buffer-substring buffer start end)
(insert "\n\n")))
(while (outline-next-heading)
(unless (outline-invisible-p)
(setq start (point)
end (progn (outline-end-of-heading) (point)))
(with-current-buffer temp-buffer
(insert-buffer-substring buffer start end)
(insert "\n\n"))))))
(kill-new (buffer-string)))))))
(provide 'outline)
(provide 'noutline)