emacs-diffs
[Top][All Lists]
Advanced

[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




reply via email to

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