From: Lars Ingebrigtsen Date: Tue, 23 Aug 2022 10:22:42 +0000 (+0200) Subject: Make buffer-local-value obsolete as a generalized variable X-Git-Tag: emacs-29.0.90~1893^2~86 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=915efbff9833ea36aeb364e032a639391516912d;p=emacs.git Make buffer-local-value obsolete as a generalized variable * lisp/electric.el (electric-indent-local-mode) (electric-layout-local-mode, electric-quote-local-mode): * lisp/elec-pair.el (electric-pair-local-mode): Adjust usage. * lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): Move since we're using it earlier in the file. (buffer-local-value): Make obsolete as a generalized variable since the semantics are unclear (bug#26624). --- diff --git a/lisp/elec-pair.el b/lisp/elec-pair.el index e5adb0dda73..e4d64615055 100644 --- a/lisp/elec-pair.el +++ b/lisp/elec-pair.el @@ -666,7 +666,8 @@ To toggle the mode in a single buffer, use `electric-pair-local-mode'." ;;;###autoload (define-minor-mode electric-pair-local-mode "Toggle `electric-pair-mode' only in this buffer." - :variable (buffer-local-value 'electric-pair-mode (current-buffer)) + :variable ( electric-pair-mode . + (lambda (val) (setq-local electric-pair-mode val))) (cond ((eq electric-pair-mode (default-value 'electric-pair-mode)) (kill-local-variable 'electric-pair-mode)) diff --git a/lisp/electric.el b/lisp/electric.el index f2ff837333f..bd7ea527ba9 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -340,7 +340,8 @@ use `electric-indent-local-mode'." ;;;###autoload (define-minor-mode electric-indent-local-mode "Toggle `electric-indent-mode' only in this buffer." - :variable (buffer-local-value 'electric-indent-mode (current-buffer)) + :variable ( electric-indent-mode . + (lambda (val) (setq-local electric-indent-mode val))) (cond ((eq electric-indent-mode (default-value 'electric-indent-mode)) (kill-local-variable 'electric-indent-mode)) @@ -484,7 +485,8 @@ The variable `electric-layout-rules' says when and how to insert newlines." ;;;###autoload (define-minor-mode electric-layout-local-mode "Toggle `electric-layout-mode' only in this buffer." - :variable (buffer-local-value 'electric-layout-mode (current-buffer)) + :variable ( electric-layout-mode . + (lambda (val) (setq-local electric-layout-mode val))) (cond ((eq electric-layout-mode (default-value 'electric-layout-mode)) (kill-local-variable 'electric-layout-mode)) @@ -661,7 +663,8 @@ use `electric-quote-local-mode'." ;;;###autoload (define-minor-mode electric-quote-local-mode "Toggle `electric-quote-mode' only in this buffer." - :variable (buffer-local-value 'electric-quote-mode (current-buffer)) + :variable ( electric-quote-mode . + (lambda (val) (setq-local electric-quote-mode val))) (cond ((eq electric-quote-mode (default-value 'electric-quote-mode)) (kill-local-variable 'electric-quote-mode)) diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el index 0c374ec5e37..6ed3b7f85af 100644 --- a/lisp/emacs-lisp/gv.el +++ b/lisp/emacs-lisp/gv.el @@ -169,6 +169,18 @@ arguments as NAME. DO is a function as defined in `gv-get'." ;; (`(expand ,expander) `(gv-define-expand ,name ,expander)) (_ (message "Unknown %s declaration %S" symbol handler) nil)))) +(defun make-obsolete-generalized-variable (obsolete-name current-name when) + "Make byte-compiler warn that generalized variable OBSOLETE-NAME is obsolete. +The warning will say that CURRENT-NAME should be used instead. + +If CURRENT-NAME is a string, that is the `use instead' message. + +WHEN should be a string indicating when the variable was first +made obsolete, for example a date or a release number." + (put obsolete-name 'byte-obsolete-generalized-variable + (purecopy (list current-name when))) + obsolete-name) + ;; Additions for `declare'. We specify the values as named aliases so ;; that `describe-variable' prints something useful; cf. Bug#40491. @@ -395,6 +407,7 @@ The return value is the last VAL in the list. (gv-define-setter buffer-local-value (val var buf) (macroexp-let2 nil v val `(with-current-buffer ,buf (set (make-local-variable ,var) ,v)))) +(make-obsolete-generalized-variable 'buffer-local-value nil "29.1") (gv-define-expander alist-get (lambda (do key alist &optional default remove testfn) @@ -619,18 +632,6 @@ REF must have been previously obtained with `gv-ref'." ;;; Generalized variables. -(defun make-obsolete-generalized-variable (obsolete-name current-name when) - "Make byte-compiler warn that generalized variable OBSOLETE-NAME is obsolete. -The warning will say that CURRENT-NAME should be used instead. - -If CURRENT-NAME is a string, that is the `use instead' message. - -WHEN should be a string indicating when the variable was first -made obsolete, for example a date or a release number." - (put obsolete-name 'byte-obsolete-generalized-variable - (purecopy (list current-name when))) - obsolete-name) - ;; Some Emacs-related place types. (gv-define-simple-setter buffer-file-name set-visited-file-name t) (make-obsolete-generalized-variable diff --git a/lisp/paren.el b/lisp/paren.el index 4c268dbf771..d7580de9a9d 100644 --- a/lisp/paren.el +++ b/lisp/paren.el @@ -149,7 +149,8 @@ use `show-paren-local-mode'." ;;;###autoload (define-minor-mode show-paren-local-mode "Toggle `show-paren-mode' only in this buffer." - :variable (buffer-local-value 'show-paren-mode (current-buffer)) + :variable ( show-paren-mode . + (lambda (val) (setq-local show-paren-mode val))) (cond ((eq show-paren-mode (default-value 'show-paren-mode)) (unless show-paren-mode