Fix 'calculate-lisp-indent' when "[" starts containing sexp (Bug#51312)

* lisp/emacs-lisp/lisp-mode.el (calculate-lisp-indent): Handle
arbitrary paren syntax after skipping whitespace backwards within
containing sexp (Bug#51312).
This commit is contained in:
Martin Rudalics 2021-10-22 10:16:17 +02:00
parent 2a0a368ddc
commit d2849cc645

View file

@ -1075,10 +1075,11 @@ is the buffer position of the start of the containing expression."
;; Handle prefix characters and whitespace
;; following an open paren. (Bug#1012)
(backward-prefix-chars)
(while (not (or (looking-back "^[ \t]*\\|([ \t]+"
(line-beginning-position))
(and containing-sexp
(>= (1+ containing-sexp) (point)))))
(while (not (save-excursion
(skip-chars-backward " \t")
(or (= (point) (line-beginning-position))
(and containing-sexp
(= (point) (1+ containing-sexp))))))
(forward-sexp -1)
(backward-prefix-chars))
(setq calculate-lisp-indent-last-sexp (point)))