diff options
| -rw-r--r-- | lisp/emacs-lisp/lisp.el | 37 |
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. |
| 739 | A negative ARG deletes a pair around the preceding ARG sexps instead." | 739 | A 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." |