]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix sql-{beginning,end}-of-statement counting
authorIngo Lohmar <ingo.lohmar@posteo.net>
Sun, 6 Nov 2022 16:31:05 +0000 (17:31 +0100)
committerIngo Lohmar <ingo.lohmar@posteo.net>
Sun, 6 Nov 2022 16:31:05 +0000 (17:31 +0100)
* lisp/progmodes/sql.el (sql-beginning-of-statement, sql-end-of-statement):
Do not count statement separators if inside a string.

lisp/progmodes/sql.el

index b950f93f2a036ae3f99db248852e2605df398bd2..4121e4dc3cdaf9553c0971d4d4474d24af7ad1d2 100644 (file)
@@ -3030,9 +3030,10 @@ displayed."
 
     ;; Our start must be between them
     (goto-char last)
-    ;; Find a beginning-of-stmt that's not in a comment
+    ;; Find a beginning-of-stmt that's not in a string or comment
     (while (and (re-search-forward regexp next t 1)
-                (nth 7 (syntax-ppss)))
+                (or (nth 3 (syntax-ppss))
+                    (nth 7 (syntax-ppss))))
       (goto-char (match-end 0)))
     (goto-char
      (if (match-data)
@@ -3062,8 +3063,9 @@ displayed."
       ;; If we found another end-of-stmt
       (if (not (apply re-search term nil t n nil))
           (setq arg 0)
-        ;; count it if we're not in a comment
-        (unless (nth 7 (syntax-ppss))
+        ;; count it if we're not in a string or comment
+        (unless (or (nth 3 (syntax-ppss))
+                    (nth 7 (syntax-ppss)))
           (setq arg (- arg (cl-signum arg))))))
     (goto-char (if (match-data)
                    (match-end 0)