mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-06 03:40:56 -08:00
lisp/emacs-lisp/lisp-mode.el: Fix parser state corruption.
* lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): Preserve the point. * test/lisp/progmodes/elisp-mode-resources/flet.erts: Add corresponding test example (bug#9622).
This commit is contained in:
parent
51aa6cee2c
commit
ca9fb109f7
2 changed files with 17 additions and 6 deletions
|
|
@ -1148,12 +1148,13 @@ STATE is the `parse-partial-sexp' state for current position."
|
|||
;; that starts a sexp.
|
||||
t)
|
||||
(point))))))
|
||||
(save-excursion
|
||||
(ignore-errors
|
||||
;; We rely on `backward-up-list' working
|
||||
;; even when sexp is incomplete “to the right”.
|
||||
(backward-up-list 2)
|
||||
t)
|
||||
(= local-definitions-starting-point (point))))))))
|
||||
(= local-definitions-starting-point (point)))))))))
|
||||
|
||||
(defun lisp-indent-function (indent-point state)
|
||||
"This function is the normal value of the variable `lisp-indent-function'.
|
||||
|
|
|
|||
|
|
@ -221,6 +221,16 @@ Name: flet15
|
|||
i)))
|
||||
=-=-=
|
||||
|
||||
Name: flet16
|
||||
|
||||
=-=
|
||||
(cl-flet ((f (x)
|
||||
(g x)))
|
||||
(pcase e
|
||||
((dangerous-expression)
|
||||
(form))))
|
||||
=-=-=
|
||||
|
||||
Name: flet-indentation-incomplete-sexp-no-side-effects-1
|
||||
Code: (lambda () (emacs-lisp-mode) (setq indent-tabs-mode nil) (newline nil t))
|
||||
Point-Char: |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue