mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-01 11:14:55 +00:00
Fix last change.
* emacs-lisp/lisp-mode.el (lisp-current-defun-name): * progmodes/m4-mode.el (m4-current-defun-name): * progmodes/perl-mode.el (perl-current-defun-name): * textmodes/tex-mode.el (tex-current-defun-name): * textmodes/texinfo.el (texinfo-current-defun-name): Use save-excursion.
This commit is contained in:
parent
ba03d0d932
commit
9dffb5b693
@ -240,28 +240,29 @@ font-lock keywords will not be case sensitive."
|
||||
|
||||
(defun lisp-current-defun-name ()
|
||||
"Return the name of the defun at point, or nil."
|
||||
(let ((location (point)))
|
||||
;; If we are now precisely at the beginning of a defun, make sure
|
||||
;; beginning-of-defun finds that one rather than the previous one.
|
||||
(or (eobp) (forward-char 1))
|
||||
(beginning-of-defun)
|
||||
;; Make sure we are really inside the defun found, not after it.
|
||||
(when (and (looking-at "\\s(")
|
||||
(progn (end-of-defun)
|
||||
(< location (point)))
|
||||
(progn (forward-sexp -1)
|
||||
(>= location (point))))
|
||||
(if (looking-at "\\s(")
|
||||
(forward-char 1))
|
||||
;; Skip the defining construct name, typically "defun" or
|
||||
;; "defvar".
|
||||
(forward-sexp 1)
|
||||
;; The second element is usually a symbol being defined. If it
|
||||
;; is not, use the first symbol in it.
|
||||
(skip-chars-forward " \t\n'(")
|
||||
(buffer-substring-no-properties (point)
|
||||
(progn (forward-sexp 1)
|
||||
(point))))))
|
||||
(save-excursion
|
||||
(let ((location (point)))
|
||||
;; If we are now precisely at the beginning of a defun, make sure
|
||||
;; beginning-of-defun finds that one rather than the previous one.
|
||||
(or (eobp) (forward-char 1))
|
||||
(beginning-of-defun)
|
||||
;; Make sure we are really inside the defun found, not after it.
|
||||
(when (and (looking-at "\\s(")
|
||||
(progn (end-of-defun)
|
||||
(< location (point)))
|
||||
(progn (forward-sexp -1)
|
||||
(>= location (point))))
|
||||
(if (looking-at "\\s(")
|
||||
(forward-char 1))
|
||||
;; Skip the defining construct name, typically "defun" or
|
||||
;; "defvar".
|
||||
(forward-sexp 1)
|
||||
;; The second element is usually a symbol being defined. If it
|
||||
;; is not, use the first symbol in it.
|
||||
(skip-chars-forward " \t\n'(")
|
||||
(buffer-substring-no-properties (point)
|
||||
(progn (forward-sexp 1)
|
||||
(point)))))))
|
||||
|
||||
(defvar lisp-mode-shared-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
|
@ -1745,8 +1745,9 @@ or as help on variables `cperl-tips', `cperl-problems',
|
||||
(make-local-variable 'add-log-current-defun-function)
|
||||
(setq add-log-current-defun-function
|
||||
(lambda ()
|
||||
(if (re-search-backward "^sub[ \t]+\\([^({ \t\n]+\\)" nil t)
|
||||
(match-string-no-properties 1))))
|
||||
(save-excursion
|
||||
(if (re-search-backward "^sub[ \t]+\\([^({ \t\n]+\\)" nil t)
|
||||
(match-string-no-properties 1)))))
|
||||
|
||||
(make-local-variable 'paragraph-start)
|
||||
(setq paragraph-start (concat "^$\\|" page-delimiter))
|
||||
|
@ -143,9 +143,10 @@
|
||||
|
||||
(defun m4-current-defun-name ()
|
||||
"Return the name of the M4 function at point, or nil."
|
||||
(if (re-search-backward
|
||||
"^\\(\\(m4_\\)?define\\|A._DEFUN\\)(\\[?\\([A-Za-z0-9_]+\\)" nil t)
|
||||
(match-string-no-properties 3)))
|
||||
(save-excursion
|
||||
(if (re-search-backward
|
||||
"^\\(\\(m4_\\)?define\\|A._DEFUN\\)(\\[?\\([A-Za-z0-9_]+\\)" nil t)
|
||||
(match-string-no-properties 3))))
|
||||
|
||||
;;;###autoload
|
||||
(define-derived-mode m4-mode prog-mode "m4"
|
||||
|
@ -581,8 +581,10 @@ create a new comment."
|
||||
|
||||
(defun perl-current-defun-name ()
|
||||
"The `add-log-current-defun' function in Perl mode."
|
||||
(if (re-search-backward "^sub[ \t]+\\([^({ \t\n]+\\)" nil t)
|
||||
(match-string-no-properties 1)))
|
||||
(save-excursion
|
||||
(if (re-search-backward "^sub[ \t]+\\([^({ \t\n]+\\)" nil t)
|
||||
(match-string-no-properties 1))))
|
||||
|
||||
|
||||
(defvar perl-mode-hook nil
|
||||
"Normal hook to run when entering Perl mode.")
|
||||
|
@ -424,13 +424,14 @@ An alternative value is \" . \", if you use a font with a narrow period."
|
||||
|
||||
(defun tex-current-defun-name ()
|
||||
"Return the name of the TeX section/paragraph/chapter at point, or nil."
|
||||
(when (re-search-backward
|
||||
"\\\\\\(sub\\)*\\(section\\|paragraph\\|chapter\\)"
|
||||
nil t)
|
||||
(goto-char (match-beginning 0))
|
||||
(buffer-substring-no-properties
|
||||
(1+ (point)) ; without initial backslash
|
||||
(line-end-position))))
|
||||
(save-excursion
|
||||
(when (re-search-backward
|
||||
"\\\\\\(sub\\)*\\(section\\|paragraph\\|chapter\\)"
|
||||
nil t)
|
||||
(goto-char (match-beginning 0))
|
||||
(buffer-substring-no-properties
|
||||
(1+ (point)) ; without initial backslash
|
||||
(line-end-position)))))
|
||||
|
||||
;;;;
|
||||
;;;; Font-Lock support
|
||||
|
@ -513,8 +513,9 @@ Subexpression 1 is what goes into the corresponding `@end' statement.")
|
||||
|
||||
(defun texinfo-current-defun-name ()
|
||||
"Return the name of the Texinfo node at point, or nil."
|
||||
(if (re-search-backward "^@node[ \t]+\\([^,\n]+\\)" nil t)
|
||||
(match-string-no-properties 1)))
|
||||
(save-excursion
|
||||
(if (re-search-backward "^@node[ \t]+\\([^,\n]+\\)" nil t)
|
||||
(match-string-no-properties 1))))
|
||||
|
||||
;;; Texinfo mode
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user