[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/outline.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/outline.el |
Date: |
Fri, 26 Aug 2005 11:32:04 -0400 |
Index: emacs/lisp/outline.el
diff -c emacs/lisp/outline.el:1.14 emacs/lisp/outline.el:1.15
*** emacs/lisp/outline.el:1.14 Fri Aug 26 11:52:08 2005
--- emacs/lisp/outline.el Fri Aug 26 15:31:59 2005
***************
*** 453,458 ****
--- 453,472 ----
(save-excursion (newline-and-indent)))
(run-hooks 'outline-insert-heading-hook)))
+ (defun outline-invent-heading (head up)
+ (save-match-data
+ ;; Let's try to invent one by repeating or deleting the last char.
+ (let ((new-head (if up (substring head 0 -1)
+ (concat head (substring head -1)))))
+ (if (string-match (concat "\\`\\(?:" outline-regexp "\\)")
+ new-head)
+ ;; Why bother checking that it is indeed higher/lower level ?
+ new-head
+ ;; Didn't work, so ask what to do.
+ (read-string (format "%s heading for `%s': "
+ (if up "Parent" "Demoted") head)
+ head nil nil t)))))
+
(defun outline-promote (&optional children)
"Promote headings higher up the tree.
If prefix argument CHILDREN is given, promote also all the children.
***************
*** 481,498 ****
(outline-up-heading 1 t)
(and (= (1- level) (funcall outline-level))
(match-string-no-properties 0))))
! ;; Bummer!! There is no lower level heading.
! ;; Let's try to invent one by deleting the last char.
! (save-match-data
! (let ((new-head (substring head 0 -1)))
! (if (string-match (concat "\\`\\(?:" outline-regexp
"\\)")
! new-head)
! ;; Why bother checking that it is indeed lower
level ?
! new-head
! ;; Didn't work, so ask what to do.
! (read-string (format "Parent heading for `%s': "
! head)
! head nil nil t)))))))
(unless (rassoc level outline-heading-alist)
(push (cons head level) outline-heading-alist))
--- 495,502 ----
(outline-up-heading 1 t)
(and (= (1- level) (funcall outline-level))
(match-string-no-properties 0))))
! ;; Bummer!! There is no lower level heading.
! (outline-invent-heading head 'up))))
(unless (rassoc level outline-heading-alist)
(push (cons head level) outline-heading-alist))
***************
*** 532,549 ****
(unless (eobp)
(looking-at outline-regexp)
(match-string-no-properties 0))))
! (save-match-data
! ;; Bummer!! There is no higher-level heading in the buffer.
! ;; Let's try to invent one by repeating the last char.
! (let ((new-head (concat head (substring head -1))))
! (if (string-match (concat "\\`\\(?:" outline-regexp "\\)")
! new-head)
! ;; Why bother checking that it is indeed higher level ?
! new-head
! ;; Didn't work, so ask what to do.
! (read-string (format "Demoted heading for `%s': "
! head)
! head nil nil t)))))))
(unless (rassoc level outline-heading-alist)
(push (cons head level) outline-heading-alist))
--- 536,543 ----
(unless (eobp)
(looking-at outline-regexp)
(match-string-no-properties 0))))
! ;; Bummer!! There is no higher-level heading in the buffer.
! (outline-invent-heading head nil))))
(unless (rassoc level outline-heading-alist)
(push (cons head level) outline-heading-alist))
***************
*** 610,621 ****
(defun outline-move-subtree-down (&optional arg)
"Move the currrent subtree down past ARG headlines of the same level."
(interactive "p")
! (let ((re (concat "^\\(?:" outline-regexp "\\)"))
! (movfunc (if (> arg 0) 'outline-get-next-sibling
'outline-get-last-sibling))
(ins-point (make-marker))
(cnt (abs arg))
! beg end txt folded)
;; Select the tree
(outline-back-to-heading)
(setq beg (point))
--- 604,614 ----
(defun outline-move-subtree-down (&optional arg)
"Move the currrent subtree down past ARG headlines of the same level."
(interactive "p")
! (let ((movfunc (if (> arg 0) 'outline-get-next-sibling
'outline-get-last-sibling))
(ins-point (make-marker))
(cnt (abs arg))
! beg end folded)
;; Select the tree
(outline-back-to-heading)
(setq beg (point))
***************
*** 883,890 ****
(defun outline-end-of-subtree ()
(outline-back-to-heading)
! (let ((opoint (point))
! (first t)
(level (funcall outline-level)))
(while (and (not (eobp))
(or first (> (funcall outline-level) level)))
--- 876,882 ----
(defun outline-end-of-subtree ()
(outline-back-to-heading)
! (let ((first t)
(level (funcall outline-level)))
(while (and (not (eobp))
(or first (> (funcall outline-level) level)))
***************
*** 1044,1048 ****
(provide 'outline)
(provide 'noutline)
! ;;; arch-tag: 1724410e-7d4d-4f46-b801-49e18171e874
;;; outline.el ends here
--- 1036,1040 ----
(provide 'outline)
(provide 'noutline)
! ;; arch-tag: 1724410e-7d4d-4f46-b801-49e18171e874
;;; outline.el ends here