emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/paredit 3c48233 122/224: Fix checks on deletion of comment


From: ELPA Syncer
Subject: [nongnu] elpa/paredit 3c48233 122/224: Fix checks on deletion of comment boundaries.
Date: Sat, 7 Aug 2021 09:22:33 -0400 (EDT)

branch: elpa/paredit
commit 3c48233833f8afcf42b6e2e6722ae0badf28183d
Author: Taylor R Campbell <campbell@mumble.net>
Commit: Taylor R Campbell <campbell@mumble.net>

    Fix checks on deletion of comment boundaries.
    
    Ignore-this: db6c2b72e92eadc7b98d3c0613916f9d
    
    darcs-hash:20110411180500-00fcc-5e23c6d9675a260d692830ecdc40302d4ab52141
---
 paredit.el | 54 +++++++++++++++++++++++-------------------------------
 1 file changed, 23 insertions(+), 31 deletions(-)

diff --git a/paredit.el b/paredit.el
index 3a05af6..72d7544 100644
--- a/paredit.el
+++ b/paredit.el
@@ -1274,25 +1274,19 @@ With a `C-u' prefix argument, simply delete a character 
forward,
            (delete-char 1)))))
 
 (defun paredit-forward-delete-in-comment ()
-  ;; Refuse to delete a comment end if moving the next line into the
-  ;; comment would break structure.
+  ;; Point is in a comment, possibly at eol.  Refuse to delete a
+  ;; comment end if moving the next line into the comment would break
+  ;; structure.
   (if (eolp)
-      (save-excursion
-        (forward-char)
-        (let ((line-start-state (paredit-current-parse-state)))
-          (if (not (comment-search-forward (point-at-eol) t))
-              (goto-char (point-at-eol)))
-          (let ((line-end-state (paredit-current-parse-state)))
-            (paredit-check-region-state line-start-state line-end-state)))))
+      (let ((next-line-start (point-at-bol 2))
+            (next-line-end (point-at-eol 2)))
+        (paredit-check-region next-line-start next-line-end)))
   (delete-char 1))
 
 (defun paredit-forward-delete-comment-start ()
-  ;; Refuse to delete a comment start if the comment contains
-  ;; unbalanced junk.  Kludge: `paredit-check-region' moves the point
-  ;; even if the region is OK.  But if we use `save-excursion', then
-  ;; `check-parens' can't put the point at the bad part.
-  (if (not (paredit-region-ok-p (+ (point) 1) (point-at-eol)))
-      (paredit-check-region (+ (point) 1) (point-at-eol)))
+  ;; Point precedes a comment start (not at eol).  Refuse to delete a
+  ;; comment start if the comment contains unbalanced junk.
+  (paredit-check-region (+ (point) 1) (point-at-eol))
   (delete-char 1))
 
 (defun paredit-backward-delete (&optional argument)
@@ -1367,28 +1361,26 @@ With a `C-u' prefix argument, simply delete a character 
backward,
            (delete-char 1)))))
 
 (defun paredit-backward-delete-in-comment ()
+  ;; Point is in a comment, possibly just after the comment start.
   ;; Refuse to delete a comment start if the comment contains
   ;; unbalanced junk.
-  (if (and (save-excursion
-             (backward-char)
-             ;; Must call `paredit-in-string-p' before
-             ;; `paredit-in-comment-p'.
-             (not (or (paredit-in-string-p)
-                      (paredit-in-comment-p))))
-           (not (paredit-region-ok-p (point) (point-at-eol))))
+  (if (save-excursion
+        (backward-char)
+        ;; Must call `paredit-in-string-p' before
+        ;; `paredit-in-comment-p'.
+        (not (or (paredit-in-string-p) (paredit-in-comment-p))))
       (paredit-check-region (point) (point-at-eol)))
   (backward-delete-char-untabify +1))
 
 (defun paredit-backward-delete-maybe-comment-end ()
-  ;; Refuse to delete a comment end if moving the line into the comment
-  ;; would break structure.
-  (let* ((line-start-state (paredit-current-parse-state))
-         (line-end-state
-          (save-excursion
-            (if (not (comment-search-forward (point-at-eol) t))
-                (goto-char (point-at-eol)))
-            (paredit-current-parse-state))))
-    (paredit-check-region-state line-start-state line-end-state))
+  ;; Point is at bol, possibly just after a comment end (i.e., the
+  ;; previous line may have had a line comment).  Refuse to delete a
+  ;; comment end if moving the current line into the previous line's
+  ;; comment would break structure.
+  (if (save-excursion
+        (backward-char)
+        (and (not (paredit-in-string-p)) (paredit-in-comment-p)))
+      (paredit-check-region (point-at-eol) (point-at-bol)))
   (backward-delete-char 1))
 
 ;;;; Killing



reply via email to

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