From 00110906360df491b3dc925ba11f156a98ee59d7 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Sun, 20 Mar 2011 18:34:22 +0000 Subject: Fix bounds checking in `paredit-find-next-string-start'. Ignore-this: 4bf62fadcc0f90e2c582311eff1355d8 Check for the beginning/end of buffer to avoid infinite loops there. Order points right to fix (|"foo" ()) ==C-M-d==> ("foo" (|)). Thanks to Eitan Postavsky for the report. darcs-hash:20110320183422-00fcc-8fe38d45bdd4e4e94925d56f537fd079111514f6 --- paredit.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'paredit.el') diff --git a/paredit.el b/paredit.el index 22927bf..23acb5f 100644 --- a/paredit.el +++ b/paredit.el @@ -1778,13 +1778,15 @@ With a prefix argument N, encompass all N S-expressions forward." 'paredit-up/down))))) (defun paredit-find-next-string-start (horizontal-direction limit) - (let ((next-char (if (< 0 horizontal-direction) 'char-after 'char-before)) - (pastp (if (< 0 horizontal-direction) '< '>))) + (let ((buffer-limit-p (if (< 0 horizontal-direction) 'eobp 'bobp)) + (next-char (if (< 0 horizontal-direction) 'char-after 'char-before)) + (pastp (if (< 0 horizontal-direction) '> '<))) (paredit-handle-sexp-errors (save-excursion (catch 'exit (while t - (if (and limit (funcall pastp (point) limit)) + (if (or (funcall buffer-limit-p) + (and limit (funcall pastp (point) limit))) (throw 'exit nil)) (forward-sexp horizontal-direction) (save-excursion -- cgit v1.2.1