aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/emacs-lisp/lisp.el37
1 files changed, 6 insertions, 31 deletions
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index ac4ba788972..8c18557c79a 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -735,37 +735,12 @@ This command assumes point is not in a string or comment."
735 (insert-pair arg ?\( ?\))) 735 (insert-pair arg ?\( ?\)))
736 736
737(defun delete-pair (&optional arg) 737(defun delete-pair (&optional arg)
738 "Delete a pair of characters enclosing ARG sexps that follow point. 738 "Delete a pair of characters enclosing ARG sexps following point.
739A negative ARG deletes a pair around the preceding ARG sexps instead." 739A negative ARG deletes a pair of characters around preceding ARG sexps."
740 (interactive "P") 740 (interactive "p")
741 (if arg 741 (unless arg (setq arg 1))
742 (setq arg (prefix-numeric-value arg)) 742 (save-excursion (forward-sexp arg) (delete-char (if (> arg 0) -1 1)))
743 (setq arg 1)) 743 (delete-char (if (> arg 0) 1 -1)))
744 (if (< arg 0)
745 (save-excursion
746 (skip-chars-backward " \t")
747 (save-excursion
748 (let ((close-char (char-before)))
749 (forward-sexp arg)
750 (unless (member (list (char-after) close-char)
751 (mapcar (lambda (p)
752 (if (= (length p) 3) (cdr p) p))
753 insert-pair-alist))
754 (error "Not after matching pair"))
755 (delete-char 1)))
756 (delete-char -1))
757 (save-excursion
758 (skip-chars-forward " \t")
759 (save-excursion
760 (let ((open-char (char-after)))
761 (forward-sexp arg)
762 (unless (member (list open-char (char-before))
763 (mapcar (lambda (p)
764 (if (= (length p) 3) (cdr p) p))
765 insert-pair-alist))
766 (error "Not before matching pair"))
767 (delete-char -1)))
768 (delete-char 1))))
769 744
770(defun raise-sexp (&optional arg) 745(defun raise-sexp (&optional arg)
771 "Raise ARG sexps higher up the tree." 746 "Raise ARG sexps higher up the tree."